Use after code review - implement ALL findings; any finding not fixed MUST have tracking issue created; no finding disappears without trace
Implements ALL code review findings by either fixing them or creating tracking issues for deferrals. Automatically triggered after comprehensive reviews to ensure no finding disappears without trace.
/plugin marketplace add troykelly/claude-skills/plugin install issue-driven-development@troykelly-skillsThis skill is limited to using the following tools:
Address EVERY finding from code review. Findings are either FIXED or DEFERRED with tracking issues.
Core principle: Minor issues accumulate into major problems.
The rule: If it was worth noting, it's worth tracking.
ABSOLUTE REQUIREMENT: Every finding results in ONE of:
There is NO third option. "Won't fix without tracking" is NOT permitted.
1 unclear variable name +
1 missing null check +
1 inconsistent style +
1 outdated comment =
Confusing, fragile code
"This minor issue can wait" →
"That minor issue can wait too" →
"We don't fix minor issues" →
Technical debt mountain
Every finding addressed →
High standards maintained →
Quality becomes habit
From comprehensive-review, you have:
### Findings
1. [Critical] SQL injection in findUser()
2. [Major] N+1 query in getOrders()
3. [Minor] Variable 'x' should be renamed
4. [Minor] Missing JSDoc on helper()
5. [Minor] Inconsistent quote style
Every finding becomes a todo:
- [ ] Fix SQL injection in findUser()
- [ ] Fix N+1 query in getOrders()
- [ ] Rename variable 'x' to descriptive name
- [ ] Add JSDoc to helper()
- [ ] Fix quote style to use single quotes
Work through the list. For each finding:
deferred-finding skill)# Create tracking issue for deferred finding
gh issue create \
--title "[Finding] [Description] (from #123)" \
--label "review-finding,depth:1" \
--body "[Full deferred-finding template]"
# Create spawned-from label if needed
gh label create "spawned-from:#123" --color "C2E0C6" 2>/dev/null || true
gh issue edit [NEW_ISSUE] --add-label "spawned-from:#123"
Before considering done:
# Re-run linting
pnpm lint
# Re-run tests
pnpm test
# Re-run type check
pnpm typecheck
All checks must pass.
After all findings addressed, update artifact in issue comment:
These require code changes:
// Finding: SQL injection in findUser()
// Before
return db.query(`SELECT * FROM users WHERE username = '${username}'`);
// After
return db.query('SELECT * FROM users WHERE username = ?', [username]);
// Finding: Variable 'x' should be renamed
// Before
const x = users.filter(u => u.active);
// After
const activeUsers = users.filter(user => user.isActive);
// Finding: Missing JSDoc on helper()
// Before
function helper(data: Data): Result {
// After
/**
* Transforms raw data into the expected result format.
*
* @param data - Raw data from the API
* @returns Transformed result ready for display
*/
function helper(data: Data): Result {
// Finding: Inconsistent quote style
// Before
const name = "Alice";
const greeting = 'Hello';
// After (using project standard: single quotes)
const name = 'Alice';
const greeting = 'Hello';
| Reason | Example | Requires |
|---|---|---|
| Out of scope | Architectural change | Tracking issue |
| External dependency | Infrastructure change | Tracking issue |
| Breaking change | Major version bump | Tracking issue |
| Separate concern | Independent feature | Tracking issue |
| Excuse | Reality | Action |
|---|---|---|
| "It's minor" | Minor compounds | Fix now |
| "Takes too long" | Debt takes longer | Fix now |
| "Good enough" | Never enough | Fix now |
| "Not important" | Then why note it? | Fix now |
| "Do it later" | Without tracking? No. | Fix or create issue |
ABSOLUTE: No deferral without tracking issue.
# WRONG - Deferred without tracking
"We'll fix the SQL injection later" # NO
# RIGHT - Deferred with tracking
gh issue create --title "[Finding] SQL injection in findUser (from #123)" ...
# Then link #456 in review artifact
After addressing all findings:
# Linting
pnpm lint
# Type checking
pnpm typecheck
# Tests
pnpm test
# Build
pnpm build
git diff
Verify:
Quick pass through 7 criteria to ensure fixes didn't introduce new issues.
Before moving on from review:
| Pushback | Response |
|---|---|
| "We can fix minors later" | Without tracking? No. Create issue or fix now. |
| "This is slowing us down" | Debt slows you down more. |
| "It's not important" | Then why was it noted? |
| "Good enough" | Good enough is never enough. |
| "The reviewer is being picky" | Attention to detail is valuable. |
This skill is called by:
issue-driven-development - Step 10This skill follows:
comprehensive-review - Generates the findingsThis skill uses:
deferred-finding - For creating tracking issuesThis skill ensures:
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.