Build Log · October 23, 2026
Scout recommends, Zeb sends
Scout now makes its own research calls and brings Zeb only recommendations he can act on by sending; an independent audit found 8 defects in the first build, all fixed before deploy. First session run under the SmithV2 instruction set.
- Scout
- Alloy
- Pioneer
- Owner authority
- SmithV2
- commits (Scout, Alloy, charges)
- 13
- Scout tests on the test branch (16 new)
- 77/77
- audit defects found and fixed before deploy (3 high)
- 8
- real Scout cycles run (#21-#25 plus #23 follow-up)
- 6
- recommendations reached Zeb's inbox from the first cycle
- 4
commits (Scout, Alloy, charges)
Scout tests on the test branch (16 new)
audit defects found and fixed before deploy (3 high)
real Scout cycles run (#21-#25 plus #23 follow-up)
recommendations reached Zeb's inbox from the first cycle
Timeline
Start
ignite v2
SmithV2 instruction set loaded as a session-level override; no files swapped
Charge 1
Field Report #9
Found the MedinaCHF experiment already running; added a non-causal credit baseline and a learning-loop question for Scout
Charge 2
Pioneer Discovery charge
About half already built; added brokering + bottleneck mechanisms, fixed an unreadable brief, ran Experiments B and C plus a follow-up
Charge 3
Scout recommends, Zeb sends
Council-reviewed model; recommendations table, guards, governor, auto track, Alloy inbox, schedule on
Audit
8 defects
Adversarial audit + Witness: resume re-paused, sent signal lost, raw inserts unguarded, races; all fixed with tests
Live
First cycle under the model
Cycle #24 corrected Witness findings and surfaced 4 stranded drafts as recommendations
Charge 4
Field Report #10
Bottleneck case from ForgeKit's own capability; Zeb declined its offer-change recommendation for now
What shipped
products/scout/lib/db/schema.ts: recommendations table (kind message|decision, one lifecycle, expiry), team_members.resumed_at, one-open-per-draft unique index; applied and verified on Scout's test and main branches
products/scout/scripts/grant-agent-role.ts: scout_runner may insert recommendations (status forced proposed, running cycle required, expiry clamped 1-30 days, real evidence, reversibility for decisions, pending draft for messages) and may only supersede its own open, undecided one
products/scout/lib/domain/research.ts: proposeRecommendation, getProblem, getHypothesis, correctedEvidence; createDraft refuses claims citing corrected evidence; update_hypothesis refuses the brief's clipped text
products/scout/lib/domain/authority.ts: decideRecommendation; reject/revoke -> declined, send -> sent, failed send -> undelivered, late confirmed send corrects undelivered -> sent; resume sets resumedAt
products/scout/lib/domain/operation.ts: expireRecommendations (expired, undelivered, corrected-evidence retirement), run governor (5h wait after a usage-limit stop, pause after 3 failures without a closing summary), resolveAutoTrack, brief trimmed to 38KB measured on the bytes Scout receives
products/scout/scout/mcp-server.ts: propose_recommendation, get_problem, get_hypothesis tools; end_cycle nextTrack; request_decision narrowed to facts; compact JSON output
products/scout/lib/domain/witness.ts: Witness reviews recommendations and the questions Scout asks Zeb
products/scout/scout/CHARTER.md: decision rights rewritten (Scout owns operating choices, business decisions are recommendations); mechanisms 7 (cross-domain brokering) and 8 (bottleneck migration with control, value and falsifier questions); Experiments B and C; learning-loop question on trial
products/scout/scripts/run-cycle.ts and .github/workflows/scout-cycle.yml: --track auto (schedule default); repo variable SCOUT_SCHEDULE_ENABLED=true
products/alloy/lib/scout/queries.ts, actions.ts, app/w/[slug]/scout/page.tsx: recommendations inbox (message -> review and send, decision -> yes/no with reason), recent outcomes, pause reason; deployed to Railway (build containing 366f4e53 verified)
products/scout/tests/recommendations.test.ts and domain.test.ts: 16 new real-DB tests, one per audit finding plus brief clipping and the cycle #25 replace flow
forgekit-os/charges/scout-recommends-zeb-sends-2026-10-23.md: the Charge, with results
forgekit-os/charges/medinachf-discovery-experiment-2026-10-21.md: non-causal historical baseline of 15 planning-credit requests, with the filter rule and all 13 exclusions
.claude/rules/gates.md: Verification Gate evidence-verb row for reported identifiers and unopened-content clearances
“Scout is responsible for leveraging pioneer and doing the leg work and bringing forward recommendations, not decisions. This should be autonomous where my involvement is limited to sending communications.”