docs(implementation): document TDD project-policy override - #1054
Conversation
|
Claude finished @kyle-sexton's task in 1m 32s —— View job Code Review
This is a well-scoped, well-executed documentation PR. The core objective — making the existing project-policy override explicitly discoverable across all execution surfaces without changing the TDD-by-default identity — is accomplished cleanly. Here are my findings, most significant first. Minor issue:
|
|
Claude finished @kyle-sexton's task in 30s —— View job Security Review — PR #1054
FindingsNo security issues found. All six changed files are pure documentation and metadata:
None of the changes introduce code execution paths, new permissions, external URLs, credential handling, injection surfaces, supply-chain dependencies, or GitHub Actions modifications. The diff presents no attack surface beyond the existing plugin runtime that loads these files. |
|
Claude finished @kyle-sexton's task in 1m 17s —— View job Code Review — PR #1054 (re-review after
|
| Surface | Verdict |
|---|---|
| README Configuration section | ✅ "TDD remains the fallback when the consuming project's CLAUDE.md or rules do not declare another cadence." |
| SKILL.md step 2 item 3 | ✅ "TDD is the fallback when the consuming project does not declare another testing cadence … A consumer can opt out in its CLAUDE.md / rules" |
feature.md step 5 |
✅ "first honor the consuming project's testing cadence … that project policy overrides the test-first instructions in this step" |
bugfix.md step 1 + pitfalls |
✅ Both now qualified; "test-first, always" is gone |
Unchanged items confirmed intentional
- SKILL.md frontmatter: still
"TDD by default"in the one-line description. Brevity is appropriate for a summary field; the full qualifier lives in step 2. The PR description explicitly states this preserves the plugin's "TDD-by-default identity" — the trade-off is deliberate. plugin.jsondescription: still"TDD-by-default cadence"for the same reason.refactor.md: left untouched. It carries no test-first instructions, so there is nothing to qualify.
Semver and changelog
- 0.7.8 → 0.7.9 patch bump is appropriate for a documentation-only, no-behavior-change PR.
CHANGELOG.md## [0.7.9]entry is well-structured, scoped correctly, and cross-references issue implementation: TDD-by-default fires when consumer CLAUDE.md is silent — no userConfig toggle #406.
Verdict
Both commits are clean. No outstanding issues. This PR is ready to merge.
|
Claude finished @kyle-sexton's task in 1m 51s —— View job Security Review — PR #1054
FindingsNo security issues found. All six changed files are pure documentation and metadata:
Pre-computed shell context ( Prompt-injection surface: the skill None of the changes introduce code execution paths, new permissions, external URLs, credential handling, injection surfaces, supply-chain dependencies, or GitHub Actions modifications. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9925c11724
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
🔒 babysit-prs lane claiming this PR for on-branch fix work this cycle (amendment-round: 16, safe tier). Will fix clear branch-owned findings and push; will not resolve threads or merge (safe tier). |
…d-off-switch # Conflicts: # plugins/implementation/.claude-plugin/plugin.json # plugins/implementation/CHANGELOG.md
|
Claude finished @kyle-sexton's task in 1m 30s —— View job Code Review — PR #1054 (re-review after rebase onto
|
| Finding | Source | Commit | Status |
|---|---|---|---|
bugfix.md pitfall "Write the test first" unqualified |
Prior Claude review | 9925c11 |
✅ Resolved — now scoped to the test-first fallback |
bugfix.md step 4 and first checkpoint reference step-1 failing test without conditionality |
Codex review | bd92091 |
✅ Resolved — both now defer to project's declared cadence |
Consistency check across all four updated surfaces
All surfaces now agree: project policy overrides the fallback; TDD is the fallback when the project is silent.
| Surface | Key text | Verdict |
|---|---|---|
README.md lines 80–90 |
"TDD remains the fallback when the consuming project's CLAUDE.md or rules do not declare another cadence." |
✅ |
SKILL.md step 3, line 68 |
"TDD is the fallback … That project policy overrides this fallback and the mode context guidance" | ✅ |
feature.md step 5, line 11 |
"first honor the consuming project's testing cadence … that project policy overrides the test-first instructions in this step" | ✅ |
bugfix.md step 1 + step 4 + checkpoint + pitfalls |
All four locations now carry the "under the test-first fallback … otherwise follow the project's declared cadence" qualifier | ✅ |
Version number in PR description is stale (informational only)
The PR body references "0.7.8 → 0.7.9" — written before the branch was rebased. The actual diff shows 0.9.0 → 0.9.1, which is correct: a patch bump for a documentation-only, no-behavior-change PR. Not a code issue; the description was authored prior to the rebase. Code is correct.
Unchanged items confirmed intentional
SKILL.mdfrontmatter /plugin.jsondescription: both still read "TDD by default" / "TDD-by-default cadence." Brevity is appropriate for one-line summary fields; the full qualifier lives in step 3. Deliberate.context/refactor.md: untouched. It contains no test-first instructions. Correct.feature.mdcheckpoints: "tests green" is cadence-agnostic (tests must pass at commit time regardless of when they were written) — no qualification needed.
Verdict
All commits are clean. No outstanding issues. This PR is ready to merge.
|
Claude finished @kyle-sexton's task in 49s —— View job Security Review — PR #1054
FindingsNo security issues found. All six changed files are pure documentation and metadata:
Trust-delegation surface (confirmed intentional, no new risk): The updated skill prose now explicitly directs the implementation plugin to honor Pre-computed shell context ( None of the changes introduce code execution paths, new permissions, external URLs, credential handling, injection surfaces, supply-chain dependencies, or GitHub Actions modifications. Note: The PR description references a version bump from |
Closes #406
Summary
Documents the implementation plugin's existing project-level testing-cadence override without changing its advertised TDD-by-default identity. TDD remains the fallback when a consuming project is silent; an explicit testing policy in the project's
CLAUDE.mdor rules now clearly takes precedence in every execution mode.This gives teams a discoverable, repository-scoped opt-out while keeping the plugin's zero-configuration default unchanged.
Fix
/implementation:implementcadence that project policy overrides both the fallback and mode-context guidance.test-first, always.userConfigkey deferred, matching the accepted operator decision.Research
The implementation follows Anthropic's current official scope model:
CLAUDE.mdas team-shared instruction space for build/test instructions, coding standards, and common workflows.userConfigas user/managed-scoped and states that project and local plugin-option entries are ignored.Together, those sources support keeping testing cadence in project instructions rather than introducing a user-scoped plugin option.
Verification
test-first, always.claude plugin validate plugins/implementation— passed before and after rebasing.git diff --check origin/main...HEAD— passed after rebasing.## [0.7.9]entry.plugins/implementation/**.origin/mainatb123108ed745c51478d77737a2a01480623fd2ae.Local disclosure: the repository's canonical Bash changed-skill/changelog wrappers and markdownlint were not completed locally. The default
bashcommand resolves to an unconfigured WSL environment, direct Git Bash wrapper attempts exceeded the strict local timebox, and no standalone markdownlint binary is installed. The focused direct equivalents above passed; canonical wrappers and markdownlint are left to required CI.Related