feat: propagate ADR binding decisions through work plan to task executor#125
Merged
Conversation
Add an end-to-end propagation path for ADR implementation-binding decisions: ADR -> work plan (ADR Bindings table) -> task (Binding Decisions section) -> task-executor (pre-implementation and Exit Gate Compliance Checks). - plan-template / task-template: ADR Bindings and Binding Decisions tables with a 5-value Axis enum (placement | dependency_direction | contract_schema | data_flow | persistence) so executors consult an explicit column instead of inferring constraint type from free text - work-planner: classify each binding decision by axis; resolve ADR paths via glob `docs/adr/ADR-XXXX-*.md` to align with the actual ADR naming convention - task-decomposer: propagate ADR Bindings rows (including Axis) to per-task Binding Decisions; also propagate Design-to-Plan Traceability rows - task-executor / -frontend: Binding Decision Check before TDD cycle with Y/N/Unknown evaluation, Exit Gate re-evaluates every row, and binding_decision_violation escalation with axis per failure - subagents-orchestration-guide: extend task-executor escalation_type enum with binding_decision_violation - design-template: use `docs/adr/ADR-XXXX.md` placeholder so ADR references are unambiguous downstream - Trim per-file context size in task-executor*, task-executor-frontend and subagents-orchestration-guide while preserving fixed regions (entry/step/exit gates, judgment criteria, JSON schemas, stop points, handoff contracts) - Bump version to 0.19.2 and resync plugin mirrors Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Self-review of the ADR binding propagation diff surfaced four
prompt-principle issues introduced during this PR; all are corrected here.
- subagents-orchestration-guide: drop "the orchestrator coordinates
but does not implement" — the preceding sentence already states the
positive role boundary; the negative clause was redundant and a
BP-001 violation.
- task-decomposer: rewrite "Skip when not provided" / "Skip when the
work plan has no ..." (ADR Binding Propagation step 4 and Design
Traceability Propagation step 3) as positive conditionals
("Apply only when ...").
- work-planner: change "exact glob matching is not required at this
stage" to "layer/component-level mapping is sufficient at this
stage" (positive permissive form).
- task-decomposer: change Compliance Check example labels from prose
form ("dependency direction:") to enum form
("`dependency_direction`:") so the labels match the canonical
Axis values used in the work plan and task templates.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Axisenum (placement | dependency_direction | contract_schema | data_flow | persistence) so executors consult an explicit column instead of inferring the constraint type from free text.binding_decision_violation(includingaxisper failure row) and reflects the new type in the orchestrator contract (subagents-orchestration-guide).work-plannernow globsdocs/adr/ADR-XXXX-*.mdto match the actualADR-[4-digit]-[title].mdnaming convention and escalates on 0 / 2+ matches.design_compliance_violationinstead of leaving the schema ambiguous.task-executor,task-executor-frontend, andsubagents-orchestration-guidewhile preserving protected regions (entry / step / exit gates, judgment criteria, JSON schemas, stop points, handoff contracts).Files affected (SoT)
agents/work-planner.md— new section 5c "Map ADR Decisions to Tasks" with axis classification and glob-based path resolutionagents/task-decomposer.md— ADR Binding Propagation and Design Traceability Propagation stepsagents/task-executor.md/task-executor-frontend.md— Binding Decision Check, Exit Gate re-evaluation,binding_decision_violationescalation schema withaxisskills/documentation-criteria/references/plan-template.md— ADR Bindings table withAxiscolumnskills/documentation-criteria/references/task-template.md— Binding Decisions section withAxiscolumnskills/documentation-criteria/references/design-template.md— explicitdocs/adr/ADR-XXXX.mdplaceholder under Prerequisite ADRsskills/subagents-orchestration-guide/SKILL.md—binding_decision_violationadded totask-executorescalation enumAll four plugin mirrors (
dev-workflows,dev-workflows-frontend,dev-workflows-fullstack,dev-skills) are kept in sync viascripts/sync-plugins.mjs.Per-file context-pressure reduction
Each subagent loads only its own definition plus the skills declared in its frontmatter, so per-file size is what affects context pressure:
agents/task-executor.mdagents/task-executor-frontend.mdskills/subagents-orchestration-guide/SKILL.mdReductions are limited to duplicated explanatory prose; gates, schemas, and judgment criteria are untouched.
Test plan
npm run sync:checkpasses (mirrors in sync)claude plugin validate .claude-plugin/marketplace.jsonpasses (no warnings)claude plugin validate ./dev-workflows,./dev-workflows-frontend,./dev-workflows-fullstack,./dev-skillsall passnpm run check:skills-indexpassesYagainst the planned implementation, and the Exit Gate re-evaluates every row against the final implementation🤖 Generated with Claude Code