Build #438 slice 2: subagent-start composes the dispatch brief #441
Labels
No labels
P0
P1
P2
P3
bug
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#441
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#438 (map-driven os-sdlc runner build spec). Design: docs/os-sdlc-rebuild/map-runner-design.md. Settled decisions + guard-manifest process: docs/os-sdlc-rebuild/interface-sketches.md.
Pre-build gate
First step before any code: run the seam-design pass per docs/os-sdlc-rebuild/seam-design-prompt.md to produce this slice's interface sketch. The sketch is the guard manifest: any class, public method, or signature change beyond it → stop, comment on this ticket, do not write it.
What to build
The E4 entrypoint gives a starting agent its brief: claims the pending handoff for the implementation (empty for the entry agent), composes node instructions plus the enrichments the node's map data names (ticket_brief for the entry node), and creates the dispatch row referencing the claimed handoff in one insert (ADR-0135). The entry agent's brief carries the original ticket instructions. Sketch-time decision to settle: whether a node's instructions value is literal text or a file path.
Acceptance criteria
Blocked by
Origin
Work started: building slice 2 via the TDD loop on branch build/438-slice-2. Seam-design sketch approved with D14 (implementation-scoped unclaimed-only handoff claim, schema 7), D15 (StartSubagent + Arrival + BriefComposer/BriefFacts), D16 option C (instructions literal + optional brief: path).
Resolution
Done: Slice 2 built TDD-first on build/438-slice-2, merged to main (commit
947ea98, merge441a8ed). E4 subagent-start claims the implementation's oldest unclaimed handoff (schema 7, implementation-scoped, D14), composes the dispatch brief from the map node's literal instructions plus its optional brief: file (D16 option C) and the ticket body via the tracker port, and creates the dispatch row in one insert. StartSubagent/Arrival/BriefComposer/BriefFacts per D15; old RoundCommands helpers deleted.Evidence: ruby -Ilib tests/all.rb: 817 runs, 2094 assertions, 0 failures (verified by orchestrator; 6 new CLI tests incl. claim scoping, unclaimed-only, single-insert, missing_brief_file exit 3). rubocop zero offenses on all slice-touched files, no disables. No real tea/network calls in tests.
Follow-ups: BriefComposer's facts: constructor param is currently unused (ticket assembly lives in StartSubagent); the slice-3 seam-design pass must either use it or amend the sketch to drop it. Handoff.agent_type producer-vs-target semantics deferred to slice 3 by the sketch. Both are owned by the slice-3 seam pass on existing ticket #442; no new tickets filed.