docs(skill): default to full six-section template on issue creation (SMI-4344)#22
Merged
Merged
Conversation
…SMI-4344)
The AC validator enforces a floor (120-char body, 2+ AC items) but not a
target depth, so issues often land near that floor. Shift the default depth
to the full template (Context → Problem → Proposal → Acceptance Criteria →
Verification → Out of Scope); brevity is opt-in via explicit user phrasing
("quick issue", "one-liner", "just the AC", etc.).
Changes are instruction-layer only — no validator, exit-code, or API changes:
- SKILL.md: depth-rule paragraph in bullet #1; inline template expanded to
six sections; MCP callout notes depth ≠ validation
- docs/issue-template.md: six-section skeleton + populated Full example
- scripts/lib/issue-description.ts: buildIssueTemplate() returns six
sections (drops Notes, adds Problem / Proposal / Verification)
- scripts/__tests__/issue-description.test.ts: assertions updated for new
shape
Full-example body dogfooded through `validate-description --stdin` → exit 0.
All 49 tests pass.
Co-Authored-By: claude-flow <ruv@ruv.net>
Co-Authored-By: Claude <noreply@anthropic.com>
|
🎉 This PR is included in version 3.2.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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
buildIssueTemplate()returns the new six-section shape, sonpm run ops -- create-issue --templateprints the same skeleton SKILL.md teaches.docs/issue-template.mdadds a fully populated Full example (~350-char body) so Claude has a pattern to match, not just a rule to follow. Example body passesvalidate-description --stdinat exit 0.No validator, exit-code, or API changes. Same tiered-enforcement model as the MCP gate: instructions + retroactive
lint-issuesaudit.Closes SMI-4344.
Why
The AC validator at
scripts/lib/issue-description.tsenforces a floor (MIN_BODY_CHARS=120,MIN_AC_ITEMS=2, placeholder rejection) but not a target depth. Issues created via the CLI or MCP routinely land near that floor — just enough to pass — because Claude Code's default tone is terse. Reviewers then lack the Context, Problem, Proposal, Verification, and risk notes that older plan-driven issues carried.Recent evidence: SMI-4326 and SMI-4327 both passed
validate-description --stdinat exit 0, but read as brief. This PR makes detail the default and terseness explicit.Test plan
In-session verification (done)
npm run build— typecheck + esbuild cleannpm test— 49/49 tests green (incl. updatedbuildIssueTemplateassertions)npm run ops -- create-issue --template— prints the new six-section skeletonvalidate-description --stdin→ exit 0Clean-context verification (must run in a fresh Claude Code session after merge)
AC #3 of SMI-4344 requires a test issue created from a vague prompt without the word "detailed". This can only be validated honestly outside the session that designed the fix. Protocol after merge:
## Context,## Proposal(or## Problem),## Acceptance Criteria, and## VerificationIf Claude produces only Context + AC (the old floor-passing shape), iterate on SKILL.md bullet #1 phrasing.
Risks
npm run lint-issuesaudits retroactively.ProblemintoContextand droppingVerificationwhen AC is self-evidently testable — collapse deliberately, not by default.Plan
Full plan at
~/.claude/plans/smi-4344-default-verbose.md(local to author; not checked in).🤖 Generated with Claude Code