M5b spec approved; decisions: bxcore, the one shared crate

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-26 01:40:32 -07:00
co-authored by Claude Opus 5.5
parent 0a3b8d70dc
commit a13d584f7a
2 changed files with 2 additions and 1 deletions
+1
View File
@@ -6,6 +6,7 @@ Newest first. A decision that changes `docs/design.md` lands in the same commit
| Date | Decision | Reason | | Date | Decision | Reason |
|---|---|---| |---|---|---|
| 2026-09-26 | `proto` becomes `bxcore`, the one shared crate: it keeps everything `proto` held and gains `secrets` (behind a Cargo feature that `loopd` never enables) and `sanitize`; later shared code goes there too. The rule becomes: every role depends on `bxcore` and on no other workspace crate, and `bxcore` depends on no workspace crate. The rename is made by changing the crate and manifests and fixing what the build reports, not by search-and-replace. | Owner's decision (M5b design). A second shared crate for secrets was the alternative; one crate keeps the rule simple. Not `core`, which shadows Rust's own crate (checked). A spike found the four layers the rename touches (compiler, formatting, fixture path strings, the crate-dependency check); M5b spec, section 3. |
| 2026-09-26 | Every commit holding work by Ornith or another local model ends with `Co-Authored-By: <model> <agent@wntrmute.dev>`, the model named as in `OPENCODE_MODEL` after the provider (for example `ornith-1.5-35b-a3b`). `tools/run-plan.sh` puts the exact line in the session prompt and stops a run whose commit lacks it; the log's Model column is filled the same way. When the design model commits a local model's work, it adds that line beside its own. It replaces the `Implemented-By` trailer. | Owner's rule, for tracking which model wrote what across the owner's repositories. The implementer often cannot know its own model, so the driver supplies the name. `f98ec2a`. | | 2026-09-26 | Every commit holding work by Ornith or another local model ends with `Co-Authored-By: <model> <agent@wntrmute.dev>`, the model named as in `OPENCODE_MODEL` after the provider (for example `ornith-1.5-35b-a3b`). `tools/run-plan.sh` puts the exact line in the session prompt and stops a run whose commit lacks it; the log's Model column is filled the same way. When the design model commits a local model's work, it adds that line beside its own. It replaces the `Implemented-By` trailer. | Owner's rule, for tracking which model wrote what across the owner's repositories. The implementer often cannot know its own model, so the driver supplies the name. `f98ec2a`. |
| 2026-09-26 | Boxmaker adopts the combined Ornith guidance (`~/projects/ornith/GUIDANCE.md`, from this repository's `ASSESSMENT.md` and two others'): in `AGENTS.md`, experiments under `.state/scratch/`, a refused tool call does not end a turn, one `todo!()` at a time, the gate's 600000 ms timeout, commit messages by `git commit -F` (`0356c87`); a project `opencode.json` with an `implement` agent whose permissions deny reads outside the repository, edits to the plans and design documents, subagents, web access and destructive git commands (`31fe078`); in the driver, a 90-minute session limit and a message for a `stopped` row (`411d9e0`); a pre-handover checklist, `docs/plans/CHECKLIST.md` (`224617e`); and in task files, environment facts and pasted contracts. Two driver guards are trials, switched on for M5b's run and judged at its review: `RESUME=1` (one resume when a session leaves work uncommitted) and `SLOTS_URL` (stop a session when no llama slot has been busy for 10 minutes). Not adopted yet: a verdict classifier, the spec-extraction pipeline (for M5c's Honcho contract, if needed), smaller `tool_output` limits and a custom agent prompt. | Owner's decision. Each adopted item answers a recorded failure in one of the three projects; the trials and the omissions are the guide's own untested items, taken one at a time so their effect can be seen. OpenCode settings were checked against its 1.18.30 schema and permission docs. | | 2026-09-26 | Boxmaker adopts the combined Ornith guidance (`~/projects/ornith/GUIDANCE.md`, from this repository's `ASSESSMENT.md` and two others'): in `AGENTS.md`, experiments under `.state/scratch/`, a refused tool call does not end a turn, one `todo!()` at a time, the gate's 600000 ms timeout, commit messages by `git commit -F` (`0356c87`); a project `opencode.json` with an `implement` agent whose permissions deny reads outside the repository, edits to the plans and design documents, subagents, web access and destructive git commands (`31fe078`); in the driver, a 90-minute session limit and a message for a `stopped` row (`411d9e0`); a pre-handover checklist, `docs/plans/CHECKLIST.md` (`224617e`); and in task files, environment facts and pasted contracts. Two driver guards are trials, switched on for M5b's run and judged at its review: `RESUME=1` (one resume when a session leaves work uncommitted) and `SLOTS_URL` (stop a session when no llama slot has been busy for 10 minutes). Not adopted yet: a verdict classifier, the spec-extraction pipeline (for M5c's Honcho contract, if needed), smaller `tool_output` limits and a custom agent prompt. | Owner's decision. Each adopted item answers a recorded failure in one of the three projects; the trials and the omissions are the guide's own untested items, taken one at a time so their effect can be seen. OpenCode settings were checked against its 1.18.30 schema and permission docs. |
| 2026-09-25 | P24, Milestones: M5b splits. M5b is hardening (the sanitizer, tag neutralisation in `loopd`, image links escaped in `gatewayd`, the invalid-arguments reason, and the secret store made available to every role, which the Honcho keys of M5c will need), which needs neither `roncho` nor Honcho and closes a gap open since M3. Honcho becomes M5c, planned once `roncho` has a tagged release. The scheduler and compaction move from M5c to M5d. Documents and decision rows written before this date use the old numbers. | Owner's decision, 2026-09-25. The hardening can be specified and run now; the Honcho half waits on `roncho` (`docs/specs/2026-09-25-roncho-requirements.md`). | | 2026-09-25 | P24, Milestones: M5b splits. M5b is hardening (the sanitizer, tag neutralisation in `loopd`, image links escaped in `gatewayd`, the invalid-arguments reason, and the secret store made available to every role, which the Honcho keys of M5c will need), which needs neither `roncho` nor Honcho and closes a gap open since M3. Honcho becomes M5c, planned once `roncho` has a tagged release. The scheduler and compaction move from M5c to M5d. Documents and decision rows written before this date use the old numbers. | Owner's decision, 2026-09-25. The hardening can be specified and run now; the Honcho half waits on `roncho` (`docs/specs/2026-09-25-roncho-requirements.md`). |
+1 -1
View File
@@ -1,6 +1,6 @@
# M5b design: hardening # M5b design: hardening
Status: draft for the owner's review, 2026-09-26; the points of section 14 answered the same day. Status: approved by the owner, 2026-09-26, with the points of section 14 answered the same day.
M5b is the hardening half of the old M5b (P24): it needs neither `roncho` nor Honcho, and it closes M5b is the hardening half of the old M5b (P24): it needs neither `roncho` nor Honcho, and it closes
a gap that has been open since M3. Every decision below was made with the owner during the design a gap that has been open since M3. Every decision below was made with the owner during the design
(2026-09-25 and 26) and is recorded in `docs/decisions.md` or cited here. (2026-09-25 and 26) and is recorded in `docs/decisions.md` or cited here.