Skip to content

refactor(board-schema): single-source the park discriminant in issue-tracker - #19

Merged
SSFSKIM merged 1 commit into
mainfrom
ticket-registration-routing
Jul 17, 2026
Merged

refactor(board-schema): single-source the park discriminant in issue-tracker#19
SSFSKIM merged 1 commit into
mainfrom
ticket-registration-routing

Conversation

@SSFSKIM

@SSFSKIM SSFSKIM commented Jul 17, 2026

Copy link
Copy Markdown
Owner

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 to ready-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 --check clean.

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.

…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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant