Skip to content

feat: itd-80 phase 4 — host-delegated fidelity verdict ingest to Audit Notes - #26

Merged
REPPL merged 1 commit into
mainfrom
auto/itd-80-phase4-fidelity-ingest
Jul 11, 2026
Merged

feat: itd-80 phase 4 — host-delegated fidelity verdict ingest to Audit Notes#26
REPPL merged 1 commit into
mainfrom
auto/itd-80-phase4-fidelity-ingest

Conversation

@REPPL

@REPPL REPPL commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Phase 4 of the intent-lifecycle automation (itd-80), on top of #24 (merged). This closes the loop: a shipped intent now carries a host-delegated fidelity audit.

What's in this PR

  • The intent's ## Audit Notes is the single source of truth — no side receipt store. Reconcile (on abcd spec close) writes an OWED marker at the ship-move and emits a review request to .abcd/.work.local/reviews/ (ephemeral; the host runs the reviewer).
  • abcd intent review ingest --verdict-json <path> schema- and semantic-gates the host reviewer's VSA-shaped verdict, then idempotently replaces the marker with per-criterion verdicts + a honoured/diverged/missing audit (each entry rendering its cited file:line evidence) + pinned provenance (verifier / rubric_hash / prompt_hash / input attestations).
  • Fail-closed: an unsolicited verdict (no parked marker) is rejected with no write; a malformed, out-of-enum, or partial (not every criterion judged) verdict → DEAD_LETTER with the raw payload retained and all criteria INCONCLUSIVE — never a partial apply. Re-ingest is a true no-op.
  • Ships the host-delegated markdown reviewer agents/intent-fidelity-reviewer.md (Role 1).

Reviews (both independent, not the implementer's self-review)

  • security-reviewer: PASS. Fuzzed the HTML-comment-marker neutraliser (491k execs) and traced forgery / replay / path-traversal / partial-write — all held. Three low-severity trusted-worktree notes, non-blocking.
  • ruthless-reviewer: one FIX-FIRST — a partial verdict (judging a subset of criteria) was accepted and locked in by the idempotency short-circuit. Fixed test-first (len(seen)==k → DEAD_LETTER, multi-criterion test). Also folded in: require + render the attestation chain (the SOTA plan's pinned provenance), idempotent emit, error-wrap + TOCTOU-note nits.

Quality

  • Test-first throughout; make preflight + make record-lint green. No new dependencies. Verified end-to-end through the built binary (draft → plan → close → ingest → re-ingest no-op).

Next

Phase 5 — dogfood: drive itd-80 itself through the pipeline so it ships with a machine-generated audit.

Assisted-by: Claude:claude-opus-4-8

…t Notes

The intent-lifecycle audit closes the loop. The intent's ## Audit Notes is
the single source of truth (no side receipt store): reconcile writes an OWED
marker at the ship-move and emits a review request to .abcd/.work.local/;
'abcd intent review ingest --verdict-json <path>' schema- and semantic-gates
the host reviewer's VSA-shaped verdict, then idempotently replaces the marker
with per-criterion verdicts + a honoured/diverged/missing audit (each with
cited file:line evidence) + pinned provenance (verifier/rubric/prompt/
attestation). Fail-closed: unsolicited verdict rejected; malformed or
partial (not all criteria judged) verdict → DEAD_LETTER, raw payload retained,
criteria INCONCLUSIVE, never partial. Ships the host-delegated markdown agent
agents/intent-fidelity-reviewer.md.

Two independent reviews: security-reviewer PASS (fuzzed the marker neutraliser,
no forgery/replay/traversal/partial-write); ruthless-reviewer FIX-FIRST (a
partial verdict was accepted and locked in) fixed test-first, plus provenance
rendering, idempotent emit, and nits. Part of itd-80.

Assisted-by: Claude:claude-opus-4-8
@REPPL
REPPL merged commit 058072d into main Jul 11, 2026
12 checks passed
@REPPL
REPPL deleted the auto/itd-80-phase4-fidelity-ingest branch July 11, 2026 21:42
REPPL added a commit that referenced this pull request Jul 12, 2026
The acceptance test for itd-80's own slice: itd-80 driven drafts->planned->
shipped by the machinery it specifies, not by hand. Live cycle on the on-main
pipeline (PRs #22/#24/#26):
  abcd intent plan itd-80   -> mints spc-2 (spc-1 reserved by itd-3 skipped),
                               links, moves drafts->planned
  abcd spec close spc-2     -> reconcile ships itd-80 planned->shipped, parks
                               OWED review rcp-1c213fa02f85
  abcd intent review ingest -> machine fidelity audit written to ## Audit Notes;
                               re-ingest is a verified no-op
Rollup 6 MET / 1 MET_WITH_CONCERNS / 0 NOT_MET / 0 INCONCLUSIVE. The one concern
(ac-3): the review request references the delivered diff as host-supplied rather
than abcd-captured — a deliberate adr-25 transport-agnostic divergence. Adds the
spc-2 native spec record (closed). record-lint green throughout (spec_lifecycle
cross-check on the new spc-2<->itd-80 link passes).

Assisted-by: Claude:claude-opus-4-8
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