Closes the gap that ADR-102 left open: snapshot-only manifests can't
answer "when did this fix regress?" Adds a JSONL temporal log + extracts
the witness toolkit into ruflo-core as an optional plugin asset that
any project can adopt — not just ruflo's own monorepo.
What's new
──────────
1. verification-history.jsonl — one append-only line per regen with
{ commit, issuedAt, manifestHash, summary, fixes: { id: {sha256,
markerVerified} } }. Format choices: JSONL for cheap appends and
minimal git diffs; per-fix object for O(1) lookup.
2. plugins/ruflo-core/scripts/witness/ — project-agnostic toolkit
- lib.mjs shared regen + history primitives
- init.mjs bootstrap empty manifest into any repo
- regen.mjs sign + append history
- verify.mjs validate signature + markers (no ruflo CLI dep)
- history.mjs query temporal log (summary, regressions, timeline)
3. plugins/ruflo-core/{skills,commands,agents}/witness*
Slash command + skill doc + curator agent — Claude Code surface area.
4. scripts/regen-witness.mjs — thin wrapper, delegates to plugin lib.
Reads project-specific NEW_FIXES from a committed witness-fixes.json
instead of inline literals. Single source of truth in the plugin.
5. .github/workflows/v3-ci.yml — witness-verify job gains a follow-on
`history.mjs summary` step that surfaces transitions since the last
snapshot (newly regressed / passing / added / removed fixes).
Empirically verified
────────────────────
Before refactor: 81/81 verified, 1 history entry
After refactor: 81/81 verified, 1 history entry, signature reproducible
signature, marker, sha256 all match across the move.
Plugin scripts run standalone without ruflo CLI installed — only
@noble/ed25519 required. Adopters get full witness capability by
copying plugins/ruflo-core/scripts/witness/ into their repo.
Refs #1868 — implementation issue
ADR-103 — design + rationale + residual risk
Co-Authored-By: RuFlo <ruv@ruv.net>
* fix(agents): coder agents now read docs/adr/*.md alongside docs/SPEC.md (#1749)
Issue #1749 (Coder agents ignore ADRs and only reference docs/SPEC.md)
documents real architectural drift in spec-driven workflows: the
Architect agent generates ADRs under docs/adr/, then Backend / Frontend
coders are spawned and only consult docs/SPEC.md, ignoring the ADRs
entirely. Code ends up out of sync with the architectural contract.
This change updates three coder agent definitions to declare ADRs as
authoritative inputs alongside SPEC.md:
- .claude/agents/core/coder.md (the Task-tool default `coder` subagent)
- .claude/agents/templates/implementer-sparc-coder.md (SPARC Refinement
/ Completion phase coder template)
- plugins/ruflo-core/agents/coder.md (the plugin form)
Each now contains an "Authoritative project documents" section that:
1. Mandates reading docs/SPEC.md AND docs/adr/*.md before
architecture/scope-affecting work
2. States the contract explicitly: SPEC describes WHAT, ADRs describe
HOW. ADRs are *binding* unless superseded by a newer Accepted ADR.
3. Calls out the multi-agent case explicitly: ADRs are the cross-agent
contract that prevents bounded-context drift between parallel
backend / frontend / tester implementations.
4. Tells coders that on conflict, they MUST surface it (propose either
following the ADR or drafting a successor) rather than silently
diverging.
No code generation behavior change — only the prompts spawned coder
agents see. Closes#1749.
Co-Authored-By: RuFlo <ruv@ruv.net>
* fix(agents): also wire ADR-awareness into sparc-coder template + ruflo-core/agents/coder.md (#1749)
Companion to the previous commit on this branch. The first commit only
landed for .claude/agents/core/coder.md because the Edit tool requires
Read first for the other two files. This commit adds the same
"Authoritative project documents" section to:
- .claude/agents/templates/implementer-sparc-coder.md (SPARC coder)
- plugins/ruflo-core/agents/coder.md (plugin form)
Closes#1749 — all three coder agent variants now mandate reading
docs/adr/*.md alongside docs/SPEC.md.
Co-Authored-By: RuFlo <ruv@ruv.net>
---------
Co-authored-by: Reuven <cohen@ruv-mac-mini.local>