Skip to content

implementation: TDD-by-default fires when consumer CLAUDE.md is silent — no userConfig toggle #406

Description

@kyle-sexton

Plugin: implementation · Categories: hardcoded opinion (1), missing externalization (2) — designed default, low severity
Source: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)

Findings

  • plugins/implementation/skills/implement/SKILL.md:3 (description), SKILL.md:67 — "TDD is the default — skip only when genuinely impractical"
  • plugins/implementation/skills/implement/context/feature.md:11
  • plugins/implementation/skills/implement/context/bugfix.md:7 — "Reproduce first (test-first, always)"

Why flagged

Strong methodology opinion applied as the default-when-silent. Mitigations exist: TDD-by-default is the plugin's advertised identity (plugin.json description), and SKILL.md:67 defers to the consuming project's own testing conventions (CLAUDE.md/rules) — so seam-3 externalization is present. Gap: when the consumer CLAUDE.md is silent the opinionated default fires, and there is no userConfig toggle (README:76: plugin "declares no userConfig options"). Under PLUGIN-PHILOSOPHY this is a defensible rung-4 safe default — filed for triage visibility because it is the plugin's most load-bearing baked opinion.

Fix direction

If a consumer must disable the TDD default without editing prose, the sanctioned surface is a userConfig boolean (e.g. tdd_default) read into the cadence, alongside the existing seam-3 consumer CLAUDE.md deferral. Not a hardcode swap.

Metadata

Metadata

Assignees

Labels

needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: readyTriaged, unblocked, and fully specified; eligible to pick up.wayfind: designWayfind decision item: design-space or domain-model decision; human in the loop.

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions