Skip to content

Add Attest factory MVP observation scaffold - #88

Closed
reason-machines[bot] wants to merge 4 commits into
mainfrom
feat/attest-factory-mvp-scaffold
Closed

reason-machines[bot] wants to merge 4 commits into
mainfrom
feat/attest-factory-mvp-scaffold

Conversation

@reason-machines

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

Copy link
Copy Markdown
Contributor

Class: C (proposed component boundary; draft only)
Agent-platform: Reason
Admitted-by: pending (owner: Mateo)
Reviewed-by: none recorded
Objective: Align the existing Attest observation bridge with the current receipt/v0 and spec-mode contract.

Tags: syberwork, attest, n3, factory, scaffold

What changed

  • Kept receipt import in the existing adapters/attest_observe.py path. It reads <attest_home>/receipts/<case_id>.json and emits a SyberWork observation; no second adapter tree was added.
  • Enforced the receipt/v0 required fields and recognized authority/disposition values; accepted optional ticket, app, and worker, rejected unknown top-level fields, and rejected receipts claiming verified: true.
  • For disposition: implemented, added a projection naming the ticket title and app.patch_sha256. For evidence.after.status == "proven", recorded the Kane re-check projection. The receipt and observation envelope remain verified: false.
  • Kept Kane's reported re-check distinct from SyberWork's effect reconciliation: an Attest observation cannot settle an unrelated external write; SyberWork must still reconcile its destination.
  • Added a spec-mode fixture and tests. The offline slice now reads the contract-shaped receipt fixture, and the docs explain the verification boundary.

Checks

  • PYTHONPATH=. python3 -m unittest discover -s tests -p test_attest_bridge.py -v — passed (8 tests).
  • PYTHONPATH=. python3 -m unittest discover -s tests — passed (568 tests; 25 skipped for unavailable optional dependencies).
  • PYTHONPATH=. python3 examples/attest_factory_slice.py — passed with the offline fixture.
  • python3 adapters/attest_observe.py syberlabs/attest_bridge/attest-receipt-v0-spec-fixture.json — passed; emitted implementation and Kane re-check projections with verified: false.
  • End-to-end CLI check using the spec-mode receipt fixture on PR Add thin Attest receipt observation CLI #89's branch — passed.
  • git diff --check and JSON parsing — passed.

Limits

The PR #89 fixture is a receipt sample from a live Kane/OpenAI spec-mode run; Attest and Kane were not run live in this session. Receipt provenance is not cryptographically authenticated. The Kane projection is observation data, not a SyberWork reconciled event. A JSON Schema validator package was unavailable, so the schema was syntax-parsed and its contract behavior was exercised through the bridge tests; full schema-validator execution was not run. This remains source-checkout scaffolding; no production deployment or external write was tested.

Contributors

Open in Reason

Contributors

reason-machines Bot and others added 3 commits October 24, 2026 21:58
Co-authored-by: sykosyber <132870419+sykosyber@users.noreply.github.com>
Co-authored-by: sykosyber <132870419+sykosyber@users.noreply.github.com>
Co-authored-by: sykosyber <132870419+sykosyber@users.noreply.github.com>
Co-authored-by: sykosyber <132870419+sykosyber@users.noreply.github.com>

Copy link
Copy Markdown
Member

Superseded for the Kane Factory receipt bridge by #89 (session 33b5a177). Keep this PR draft; do not expand scope. Captain (~16:20 PDT): #89 holds the bridge work.

@cursor

cursor Bot commented Oct 25, 2026

Copy link
Copy Markdown

Closing as superseded by #89 (merged as 7f70fde), per the earlier note on this PR. The branch stays on the remote, so this can be reopened.

Why it's superseded

  • examples/attest_receipt_observe.py on main covers the same job: it validates attest.receipt/v0, accepts the spec-mode ticket/app/worker fields, projects implemented and the Kane re-check, and keeps verified: false.
  • Main's CLI accepts both of this PR's fixtures (attest-receipt-v0-fixture.json, attest-receipt-v0-spec-fixture.json).
  • This PR's adapters/attest_observe.py rejects main's doc-mode sample examples/fixtures/attest_receipt_v0_sample.json with evidence.before is missing fields: observed. That sample has the shape of the live receipts verified on Add thin Attest receipt observation CLI #89, so the stricter check here would refuse real receipts.
  • Nothing else on main or any open branch imports syberlabs/attest_bridge. Adding a new package to syberlabs is a Class C seam (AGENTS.md), and it has no consumer here apart from the example. The AuthorityDecision/HandoffPackage ideas are still recorded in the study in Study Attest integration for the SyberWork software factory #86.

Receipt-path mismatch

@sykosyber sykosyber closed this Oct 25, 2026
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