ForgeKitFORGEKIT

Build Log

Alloy Milestone 4, Tickets 5-7 — Signals, Evidence, and Milestone Close

July 23, 2026

Signals and Evidence became source-aware, five services' duplicated invariants were consolidated into one shared primitive, and Milestone 4 (One History) closed with a clean full-suite acceptance run.

AlloyHistorySignalsEvidenceInvariantsMilestone Close
3
tickets accepted (5, 6, 7)
4
feature/docs commits
83
unit tests passing at close
14
authenticated Playwright tests passing at close

Timeline

Ticket 5 review
Pre-implementation Crucible council
Architecture/QE/Steward review found the historical Signal read path was broken — reading a top-level spins field that misses spins in 111 of 178 real sessions.
Ticket 5 build
Signals and Evidence, source-aware
Two fully separate projection services; Evidence's live section stays honestly empty by design.
Ticket 5 crucible:post
Post-build audit and correction
Added a reuse{} scope-boundary drift test and a spin-placeholder drift warning; both verified live against the real corpus.
Ticket 6 review
Design-tier Crucible council
Architect/QE/Steward: extract identity-collision + ordering as pipeline invariants, backfill degraded-state where it's a real gap, test capability correspondence — do not abstract capability vocabulary.
Ticket 6 build
Cross-service invariant consolidation
Shared identity guard wired into 8 sites across 5 services; degraded-state backfilled onto Ticket 1 only after a real conflict with Ticket 3's locked design was found and resolved with Zeb.
Ticket 7
Preserved milestone acceptance run
83 unit tests, 14 authenticated two-owner Playwright tests, clean build, in one final pass. Milestone 4 complete.

What shipped

products/alloy/lib/signals/ — source-aware Signal projection (live issue-flagged events + historical spins, corrected to read chapters[].spins[])

products/alloy/lib/evidence/ — source-aware Evidence projection (historical reuse{}/patterns[] only; live section is a fixed honest empty state)

products/alloy/lib/history-shared/ — temporal.ts, product-association.ts, identity-guard.ts, plus invariants.test.ts and capability-correspondence.test.ts

products/alloy/lib/deferred-prevention.ts — split out of the deleted legacy lib/signals.ts

Backfilled SourceStatus/isDegraded onto lib/history/ (Ticket 1) for parity with Tickets 4/5A/5B

Corrected fabricated grading language on SignalSummaryPanel and EvidenceHealthPanel

products/alloy/tests/e2e/milestone4-ticket5a-signals.spec.ts and milestone4-ticket5b-evidence.spec.ts

products/alloy/docs/milestone-4-ticket-5/6/7-browser-acceptance.md and updated milestone-4-one-history.md, operating-baseline.md

A Council recommendation is a hypothesis about the codebase, not a verified fact.

Milestone 4 Ticket 6 close