Build Log
ForgeKit Command, and a Foreman That Can Close What Is Already Live
October 10, 2026
Alloy now has a cockpit that shows what ForgeKit is made of and what is actually happening in it, and it says plainly where it cannot see. Getting there exposed three places the system had been quietly wrong: discarded reviews, requests counted as closed, and a deploy that never built.
Timeline
What shipped
forgekit-os/command/ — components.json (hand-declared components and integrations), registry.json (generated from git-tracked files only), risk-register.json (R1-R13), test-evidence.json
forgekit-os/scripts/command/build-registry.mjs with a --check mode, wired into test:os
products/alloy/lib/command/ — events, projection, outcomes, steward (rules S1-S8, reports only), sources for Owner Loop, Vercel, Scout, Witness and Resend
products/alloy/components/command/ and the owner-only /command page: eight perspectives, layered architecture graph, replay, risks, tests, Steward
products/alloy/app/api/webhooks/resend/route.ts + products/alloy/lib/webhooks/resend.ts — signed delivery webhook that stores a domain and a hash, never an address (not yet enabled: no secret set)
products/alloy/lib/db/schema.ts — witness_reviews and resend_events tables
forgekit-os/scripts/witness/ — classifier fix (witness.mjs), mirror.mjs, provision-witness-store.mjs; .claude/hooks/witness-stop.mjs kicks the mirror
forgekit-os/scripts/lib/railway-watch.mjs + forgekit-os/scripts/deploy-alloy.mjs — force a Railway build when a merge changes only files Alloy reads at runtime; two post-deploy checks repaired on Windows
docs/command/ — foreman-role.md, steward-operating-model.md, gaps-and-limitations.md, reliability-assessment.md, witness-and-sterling-records.md
Foreman CLOSE_ALREADY_LIVE recipe, granted to MedinaCHF only; owner-loop-coordinator-resolve and owner-loop-backfill-canonical workflows
Owner Loop fixes: candidate fetch before promotion, no re-dispatch while a human decision is pending, a resolved block's reason cleared on every success close
products/medinaCHF production: foreman_recovery_attempts table provisioned (Zeb approved)
experiments/FretHero/frontend/vite.config.js — dev server stops watching 4.6 GB it never imports
“I assume some of this is accounted for on the what command cannot see section, but I don't see any action to take”