Skip to content

Add thin Attest receipt observation CLI - #89

Merged
sykosyber merged 2 commits into
mainfrom
feat/kane-factory-receipt-bridge
Oct 24, 2026
Merged

sykosyber merged 2 commits into
mainfrom
feat/kane-factory-receipt-bridge

Conversation

@reason-machines

@reason-machines reason-machines Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Class: R
Agent-platform: Reason
Admitted-by: self (Class R)
Reviewed-by: independent Reason code review (Session 3ac97359-4537-4dd4-a1bc-d7dfd1998f10)
Objective: Add a SyberWork CLI that imports Attest v0 receipts as unverified observations, including spec-mode implementation receipts.

Change

  • Added examples/attest_receipt_observe.py to load a receipt from a filesystem path and print Work.observe-compatible JSON.
  • The CLI accepts the required attest.receipt/v0 fields plus optional spec-mode ticket, app, and worker; unknown top-level fields and receipts claiming verified: true are rejected.
  • For disposition: implemented, the observation value includes the ticket title and app.patch_sha256. When evidence.after.status == "proven", it records destination verification as a Kane re-check. The receipt and observation remain verified: false.
  • Included the supplied doc-mode sample and a spec-mode fixture. No adapters/, syberlabs/attest_bridge/, or Attest files were changed.

Checks

  • PYTHONPATH=. python -m unittest discover -s tests -p test_attest_receipt_observe_example.py -v — passed (7 tests).
  • python examples/attest_receipt_observe.py examples/fixtures/attest_receipt_v0_sample.json — passed; printed observation JSON with verified: false.
  • python examples/attest_receipt_observe.py examples/fixtures/attest_receipt_v0_spec_sample.json — passed; included implementation title/digest and Kane re-check metadata while keeping verified: false.
  • PYTHONPATH=. python3 -m unittest discover -s tests -q — passed (567 tests, 25 skipped).
  • PYTHONPATH=. python3 -m conformance.run — passed (23 golden traces matched).
  • git diff --check — passed.

Limitations

The CLI prints observation arguments; it does not append them to a SyberWork case or authenticate receipt provenance. No deployment or production behavior was exercised.

Implemented and tested; not deployed.

Contributors

Open in Reason

Co-authored-by: sykosyber <132870419+sykosyber@users.noreply.github.com>
@sykosyber

Copy link
Copy Markdown
Member

Verified against real receipts from today's live Kane runs: examples/attest_receipt_observe.py accepts both b6cea0443ed1-c07-30 (Vite, disposition repaired) and e076e93255b6-c10-27 (counter, disposition handoff_implementation) and emits the observation with verified: false. Good.

One change needed before Attest's next demo case: Attest is adding spec mode (attest prove <spec> --app <dir>), where a missing capability becomes a ticket and the OpenAI API implements it in a candidate copy of the app. Those receipts carry two extra optional top-level fields:

  • ticket: {"path": ".../tickets/<case_id>.md", "title": "Missing capability: ..."}
  • app: {"original": "<dir>", "candidate": "<dir>", "patch_sha256": "<sha256>"}

and use authority.decision: "implementation_required" and disposition: "implemented" | "unresolved". Please accept ticket and app as optional fields (still reject truly unknown ones), map implemented to an observation that names the ticket and the app patch digest, and add a test with such a receipt. Keep verified: false. No changes to SyberLabs/attest before 18:00 PDT.

@sykosyber

Copy link
Copy Markdown
Member

Follow-up task (dispatch CLI, deadline 16:40 PDT): see SyberLabs/attest#10 (latest comment).

Co-authored-by: sykosyber <132870419+sykosyber@users.noreply.github.com>
@reason-machines

Copy link
Copy Markdown
Contributor Author

Spec-mode support is on the PR: ticket and app are accepted as optional receipt fields, implemented receipts add the ticket title and app patch digest to the observation, and the fixture test confirms both receipt and observation remain verified: false. The focused suite passes (7 tests).

@sykosyber
sykosyber marked this pull request as ready for review October 24, 2026 23:24
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T23:39:01.186375Z e94552d Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant