refactor(board-schema): single-source the park discriminant in issue-tracker - #19
Merged
Conversation
…racker owns it, protocols route Live dogfood failure (ida-solution obra#490): the implement worker's vendored park-discriminant summary lacked the dependency-park case, so a worker blocked on sibling tickets parked needs-info instead of cutting edges and returning to ready-for-agent — stranding the ticket outside the unblock sweep. Root cause: duplicated schema prose drifts. - issue-tracker SKILL.md: the discriminant paragraph is now the single authoritative copy — enriched with the note contracts, the ENUMERABLE rule, and the new dependency-wait rule (edges + ready-for-agent, never a park state; the sweep re-surfaces it, which no park state does). - implementing-tickets SKILL.md: the Verdict fail branch routes to doperpowers:issue-tracker instead of restating the discriminant; keeps only worker-side mechanics (orientation summary, crisp turn end) and a one-line guard for the observed failure (dependency-wait ≠ park). - operation-manual.md: discriminant section reduced to the routing. - implement-decompose.md: gate-triage routes through the ticket contract; restated state mappings dropped. - orchestrating-daemons SKILL.md: who-unparks pointer retargeted from implementing-tickets to the schema owner. - tests: RED-first — 10 new single-source invariants (canonical copy location, no re-vendored definitions, retargeted pointers). Audited and left as-is: reviewing-prs (registration already routes via the issue-tracker ticket contract; its state writes are role authority), triaging-feedback (its Codex-SDK sandbox worker cannot load skills — vendoring there is a live harness constraint; registration itself routes through board-register.sh).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Live-dogfood-motivated single-sourcing of the board schema: the park discriminant (and state vocabulary) now lives only in doperpowers:issue-tracker; worker protocols route to it instead of restating it.
Motivating failure (observed, ida-solution obra#490): an implement worker finished its independent build, was blocked only on sibling tickets, and parked
needs-info— because its protocol's vendored discriminant summary had no dependency-park arm. The schema-correct move (blocked-by edges + back toready-for-agent, so the unblock sweep auto-resurfaces it) was written in issue-tracker all along; the worker never had a reason to open it. Duplicated doctrine drifted; this PR deletes the duplicates.Also possible only since PR #17: every worker is now a Claude-harness session with the Skill tool, so routing to a skill is a live instruction for daemon workers (the old codex-CLI workers had no such tool — that constraint was why the vendoring existed).
Changes: issue-tracker discriminant paragraph becomes the canonical enriched copy (note contracts, ENUMERABLE rule, new dependency-wait rule); implementing-tickets SKILL.md + operation-manual route instead of restating; implement-decompose trims restated mappings; orchestrating-daemons pointer retargeted. Audited and deliberately untouched: reviewing-prs (already routes; state writes are role authority) and triaging-feedback (Codex-SDK sandbox worker can't load skills — vendoring there is a live harness constraint).
Validation: RED-first (10 new invariants failing before the prose edits), then all six suites green (protocol content, daemon, codex-legacy, review-dispatch, land-dispatch, codex-plugin sync), shell lint,
git diff --checkclean.Authored by Claude Fable 5 (claude-fable-5) on Claude Code with the doperpowers plugin, from a live dogfood session steered by the human partner.