ADR-306: Extract component-taxonomy skill; retire test-driven-development - #55
Merged
Merged
Conversation
…n-development skill
…ment Splits test-driven-development into behavior-driven-development (E2E-first/ E2E-confirm wrapper) and tdd-practices (AAA/red-for-the-right-reason/frozen- Arrange-Act/naming rules), and extracts the Wrapper/Testable/Orchestrator tier definitions into a standalone component-taxonomy skill so spec-first-draft and Developer's ad hoc triage share one copy instead of two. Sweeps every reference across the eight in-scope files (tdd-tester.md, tdd-implementer.md, tdd-refactorer.md, tdd-red-turn, tdd-green-turn, tdd-refactor-turn, implement-tdd, code-change-expectations) plus spec-first-draft to point at the correct successor skill. implement-task's own reference is left untouched — it belongs to ADR-303's still-open rework.
build-and-test: Python test resultsStatus: ✅ Passed Test log |
jodavis-claude
commented
Jul 6, 2026
jodavis-claude
left a comment
Collaborator
Author
There was a problem hiding this comment.
Reviewed ADR-306 against its exit criteria (task brief in the workflow context file) and CONTRIBUTING.md. All 10 exit criteria are met:
component-taxonomy/SKILL.md— Wrapper/Testable/Orchestrator tiers + property-level Wrapper carve-out, verbatim from the spec (diffed byte-for-byte).behavior-driven-development/SKILL.md— former steps 1/3 oftest-driven-development, renumbered 1-2; step 1 verbatim, step 2 deliberately reworded to drop a dangling reference to the removed per-component step (documented).tdd-practices/SKILL.md— four rule bodies (AAA, red-for-the-right-reason, frozen-Arrange/Act, naming) byte-identical to the retired skill.test-driven-development/SKILL.mddeleted;grep -rl test-driven-development plugins/on the branch returns exactlyimplement-task/SKILL.md, matching the expected post-task state.spec-first-draft/SKILL.mdnow invokescomponent-taxonomyinstead of restating tiers inline.tdd-tester.md/tdd-implementer.md/tdd-refactorer.md,tdd-red-turn/tdd-green-turn/tdd-refactor-turn,implement-tdd/SKILL.md, andcode-change-expectations/SKILL.mdall carry exactly the citation treatment the brief specifies (verified line-by-line).- Dry runs for the verbatim moves, the reference sweep, and the synthetic
spec-first-draftComponent Breakdown scenario are all documented in the work summary.
Two non-blocking notes below (one process/sequencing risk worth eyes-on, one minor self-review accuracy nit) — inline comments follow. Approving; neither blocks this PR since both are pre-existing spec-level scope decisions or are already substantively satisfied.
jodavis-claude
marked this pull request as ready for review
July 6, 2026 19:26
jodavis
approved these changes
Jul 6, 2026
jodavis
enabled auto-merge (squash)
July 6, 2026 19:36
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.
Work item
ADR-306: Extract the Wrapper/Testable/Orchestrator tier definitions out of
_spec_TddForImplementation.mdinto a new, standalonecomponent-taxonomyskill, and retiretest-driven-developmententirely by splitting it intobehavior-driven-development(theE2E-first / E2E-confirm wrapper) and
tdd-practices(the AAA / red-for-the-right-reason /frozen-Arrange-Act / naming rules) — then sweep every already-merged reference site to point at
the correct successor.
Changes
plugins/dev-team/skills/component-taxonomy/SKILL.md(new) — Wrapper/Testable/Orchestratortier definitions, the property-level Wrapper carve-out, and the "classifies production
components only" paragraph, moved verbatim from the spec's "Component taxonomy" decision.
user-invocable: false, noargument-hint.plugins/dev-team/skills/behavior-driven-development/SKILL.md(new) — former step 1 (writeE2E/API tests first) and step 3 (confirm E2E tests pass) of the retired
test-driven-developmentskill, renumbered 1–2. Keptargument-hint: <task context or exit criteria>from the retired skill.plugins/dev-team/skills/tdd-practices/SKILL.md(new) — former "Practice rules" section (AAAstructure, red-must-fail-for-the-right-reason, frozen-Arrange/Act, naming convention),
byte-identical to the retired skill's four rule bodies.
plugins/dev-team/skills/test-driven-development/SKILL.md— deleted.plugins/dev-team/skills/spec-first-draft/SKILL.md— replaced the inlineWrapper/Testable/Orchestrator bullet list with a one-sentence invocation of
component-taxonomy. Component Breakdown table template and isolation-pattern authoringguidance left unchanged (ADR-297's scope).
plugins/dev-team/agents/tdd-tester.md,agents/tdd-implementer.md,agents/tdd-refactorer.md—
test-driven-developmentcitations renamed totdd-practices.plugins/dev-team/skills/tdd-red-turn/SKILL.md,skills/tdd-refactor-turn/SKILL.md— build/test-command sentence drops the
test-driven-developmenthalf (now citescode-change-expectationsalone); Skills-list citation renamed totdd-practices.plugins/dev-team/skills/tdd-green-turn/SKILL.md— three citations: inline "Practice rules"reference and Skills-list entry renamed to
tdd-practices; build/test-command sentence dropsthe
test-driven-developmenthalf.plugins/dev-team/skills/implement-tdd/SKILL.md— stale no-Components-in-scope fallback bulletremoved outright; build/test-command sentence drops the
test-driven-developmenthalf;"E2E re-run" reference renamed to
behavior-driven-development; bundled Skills-list bulletsplit into two, citing
tdd-practicesandbehavior-driven-developmentseparately.plugins/dev-team/skills/code-change-expectations/SKILL.md— TDD pointer now points atimplement-task's dispatcher instead of the retired skill (the instruction described theretired step-2 procedure, not a straight rename).
Design decisions
tdd-practices's Practice rules section literally unchanged (4 bullets) rather thanadding a new "logging" bullet — the exit criterion's parenthetical restates epic-level context;
logging already lives solely in
code-change-expectations's coverage checklist.spec-first-draft's replacement text is a short pointer sentence tocomponent-taxonomy;isolation-pattern authoring guidance stays inline (ADR-297's scope).
behavior-driven-development's step 2 wording is a deliberate reword ("Once implementation iscomplete" instead of "Once all components are implemented") to avoid a dangling reference to
the dropped per-component step.
component-taxonomyandtdd-practicesfollow thecode-change-expectations/missing-test-harnessreference-skill convention (user-invocable: false, noargument-hint);behavior-driven-developmentkeeps the retired skill'sargument-hint.grep -rl test-driven-development plugins/after all edits returnsonly
plugins/dev-team/skills/implement-task/SKILL.md, which is explicitly out of scope(belongs to ADR-303's still-open PR ADR-303: Rewrite implement-task as a per-component dispatcher, add implement-direct #54).
plugin.jsonversion bump is out of scope (ADR-304).runtime code and no existing test harness for skill prose; verified instead via dry runs
(verbatim-move
diffchecks, reference-sweepgrepcheck, and a syntheticspec-first-draftComponent Breakdown dry run), documented in the task's work summary.