[#101] feat: sprint planning with skills (/refine-story, /plan-tasks, /write-issue)#110
Conversation
… re-root, target dir - Bug 1: doCopyAndUpdateLinks now returns skillNameMap from copyDirectoryWithTransforms; update/install handlers accumulate map across registries and rewrite skill refs in non-skills registries (e.g., AGENTS.md /next → /pair-process-next) - Bug 2: flatten+prefix registries use baseTarget as effectiveDatasetRoot so link re-rooting maps node_modules source paths to installed target paths - Bug 3: baseTarget option allows CLI entry point to override CWD for pnpm --filter - Extract postCopyOps helper to keep handler functions under line limit - 9 regression tests (4 update, 4 install, 1 operations unit) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… ordering) - T-2: /refine-story SKILL.md — section-level idempotent refinement, composes /write-issue - user-story-template.md: functional sections first, technical sections last - task-template.md: add Dependency Graph + AC Coverage in Task Breakdown Format Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- T-3: task-level idempotent breakdown, AC coverage validation - Composes /write-issue for PM tool updates - Appends condensed TA + checklist + Dependency Graph + AC Coverage + detailed tasks Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- T-4: skill composition section delegates to /refine-story - Manual workflow preserved as fallback - Quality checklist, HALT conditions, key principles retained Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- T-5: skill composition section delegates to /plan-tasks - Manual workflow preserved as fallback - Quality checklist, HALT conditions, key principles retained Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… --filter - dispatcher refactored to context object (DispatchContext) for lint compliance - cli.ts reads INIT_CWD and passes as baseTarget through dispatcher - handler precedence: options.baseTarget > config.target > fs.cwd() - 6 regression tests: 2 dispatcher, 2 update handler, 2 install handler Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21de8ff to
558b791
Compare
applySkillRefsToNonSkillRegistries only processed canonical targets via resolveTarget. Secondary targets (mode: copy) were skipped. Now iterates all non-symlink targets per registry. Extracted rewriteSkillRefsInTarget helper to stay under complexity limit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…gets) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- unset INIT_CWD in run_pair so smoke tests use actual CWD - document target resolution order: INIT_CWD > [target] arg > CWD - add monorepo usage section to workflows guide Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add language tags (text/bash) to all bare fenced code blocks in dataset .skills/ SKILL.md sources, AGENTS.md, eslint-config README - Collapse consecutive blank lines in observability-requirements.md and responsibility-matrix.md - Regenerate distributed files via pair update Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
rucka
left a comment
There was a problem hiding this comment.
Code Review — PR #110
Reviewer: Claude (AI-assisted)
Date: 2026-02-12
Story: #101 — Sprint planning with skills
Review Type: Feature
Decision: TECH-DEBT (Approved — track debt separately)
Review Summary
3 new Agent Skills (/refine-story, /plan-tasks, /write-issue), 2 how-to files thinned to orchestrators, CLI bug fixes (skill ref rewriting, INIT_CWD, secondary targets), template updates, docs, and markdown lint cleanup. 56 files, +3239/-1898.
Business Value: Sprint planning workflow fully covered by skills. Completes Circle 1 (daily dev workflow).
Quality Gates: PASS
| Gate | Status |
|---|---|
| Lint | PASS |
| ts:check | PASS |
| Tests | PASS (81 test suites, 299+ tests) |
| Prettier | PASS |
Code Review Findings
Positive Feedback
- Excellent test coverage: 17+ regression tests for 4 bug fixes, each with dedicated suites in both install and update handlers
- Consistent skill design: All 3 new skills follow check→skip→act→verify pattern rigorously (25+ instances per skill)
- Clean composition interfaces: /write-issue properly documents composition by /refine-story and /plan-tasks
- Correct template paths: All skill references to templates verified against actual files
- Strong TypeScript typing: Discriminated unions, proper Map typing, no
anyin changed code - How-to thinning well-executed: how-to-08 (287→104 lines), how-to-09 (358→126 lines) — both standalone readable
Minor Issues
- Code duplication —
applySkillRefsToNonSkillRegistries,rewriteSkillRefsInTarget,postCopyOps,resolveDatasetRootduplicated betweeninstall/handler.tsandupdate/handler.ts(~150 lines). Recommend extracting to shared module. - Missing JSDoc — Internal handler helpers lack documentation (35% in install, 25% in update). Complex functions like
rewriteSkillRefsInTargetwould benefit from JSDoc. - Graceful degradation wording —
/refine-storyand/plan-tasksmark/write-issueas Required in composition table but describe graceful degradation in notes. Minor inconsistency, not blocking.
Definition of Done: 14/15
All criteria met except "Code reviewed and merged" (this review completes the review part).
Tech Debt: 9 items flagged
| Severity | Count | Key Items |
|---|---|---|
| High | 2 | Handler code duplication (~150 lines identical) |
| Medium | 2 | Documentation gaps in handler modules |
| Low | 5 | Context type inconsistency, missing inline comments, sequential file processing |
Recommendation: Track handler duplication as tech debt item for next refactoring pass.
Adoption Compliance: Level 4
No /verify-adoption or /assess-stack installed. No new dependencies added. No adoption changes needed.
Risk Assessment
| Risk | Impact | Probability | Mitigation |
|---|---|---|---|
| Handler duplication diverges over time | Medium | Medium | Extract shared module in next story |
| Skill content evolves without tests | Low | Low | Manual validation sufficient for markdown skills |
Verdict
APPROVED (TECH-DEBT) — No critical or major issues. All quality gates pass. All AC met. Minor duplication debt tracked for future resolution.
- Added Custom Gate Registry to way-of-working.md adoption - Added Step 5 (Custom Gates) + Step 5.C (first-time setup) to verify-quality SKILL.md - Documented Custom Gate Registry schema in quality-gates.md - Fixed MD040, MD036, MD060, MD031, MD032 across dataset - Regenerated distributed copies + fixed MD060 table alignment Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…egration Add markdownlint-cli as centralized tooling (tools/markdownlint-config) following eslint/prettier pattern. Wire mdlint:fix into quality-gate. Fix MD040/MD001/MD022/MD032 across all workspaces. Register custom gate in project adoption. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
888247d to
d351cf5
Compare
- postCopyOps → #registry/operations (co-located with stripMarkersFromTarget, distributeToSecondaryTargets) - rewriteSkillRefsInTarget + applySkillRefsToNonSkillRegistries → #registry/skill-refs (new, with SkillRefContext type) - resolveDatasetRoot → #config/kb-resolver (co-located with getKnowledgeHubDatasetPath) - Eliminates ~93 lines of duplication between install/update handlers - Fixes context type inconsistency (UpdateContext vs inline object) - 17 new unit tests for extracted functions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tech Debt ResolutionAll 9 items from the code review addressed in HIGH (2) — Handler duplication eliminated
MEDIUM (2) — Documentation + type consistency
LOW (5) — Minor items
Stats
|
Summary
What Changed
3 new Agent Skills for sprint planning (
/refine-story,/plan-tasks,/write-issue), how-to thinning to orchestrators, KB distribution pipeline bug fixes, centralized@pair/markdownlint-configtooling, and markdown lint cleanup.Why This Change
Sprint planning skills enable structured, idempotent workflows for story refinement and task breakdown — composing
/write-issuefor PM tool integration. How-to files become thin orchestrators that delegate procedural detail to skills, reducing duplication and improving maintainability. Markdownlint centralized config ensures consistent MD quality across all workspaces.Story Context
User Story: As a product engineer planning sprint work with AI assistance, I want to invoke
/refine-storyand/plan-taskswhich compose/write-issuefor PM tool integration, withhow-to-08andhow-to-09thinned to orchestrators, so that story refinement and task breakdown follow a structured process that produces properly formatted issues in the adopted PM tool.Acceptance Criteria: 11 ACs — all covered. See #101 for full Given-When-Then details.
Closes #101
Changes Made
Implementation Details
/write-issuecapability skill — PM tool abstraction, template-driven formatting,$idcreate/update, extensible type system, no tool fallback/refine-storyprocess skill — section-level idempotent refinement (selection → requirements → technical → sprint readiness → documentation)/plan-tasksprocess skill — task-level idempotent breakdown (story analysis → task identification → definition → dependency graph → AC coverage)how-to-08thinned from ~287→104 lines (orchestrator only)how-to-09thinned from ~358→126 lines (orchestrator only)user-story-template.mdfunctional-first ordering,task-template.mdDependency Graph + AC Coverage)INIT_CWDoverride forpnpm --filter, skillNameMap propagation, link re-rooting@pair/markdownlint-configintools/(following eslint/prettier pattern),mdlint:fixwired into quality-gate, Custom Gate Registry updated in project adoptionFiles Changed
.skills/process/refine-story/SKILL.md,.skills/process/plan-tasks/SKILL.md,.skills/capability/write-issue/SKILL.mdtools/markdownlint-config/(package.json, .markdownlint.jsonc, .markdownlintignore, bin scripts)how-to-08,how-to-09,how-to-10,how-to-11,user-story-template.md,task-template.md,AGENTS.md, 10 SKILL.md sources (MD040 fixes), 2 quality-assurance docs (MD012 fixes)cli.ts,dispatcher.ts,update/handler.ts,install/handler.ts,operations.ts+ all test filescommands.md,cli-workflows.md,cli-contracts.md,README.md,eslint-config/README.mdscripts/smoke-tests/lib/utils.sh,turbo.json,pnpm-workspace.yaml,package.json.pair/adoption/tech/way-of-working.md(Custom Gate Registry).claude/skills/(10 files),AGENTS.md,CLAUDE.md,.pair/(distributed copies)Testing
Test Coverage
pnpm smoke-tests) — fixedINIT_CWDleak from pnpm invocationTest Results
Testing Strategy
Quality Assurance
Code Quality Checklist
rewriteSkillRefsInTargethelper)Documentation
commands.md,cli-workflows.md)cli-workflows.md)cli-contracts.mdupdated with INIT_CWD precedenceREADME.mdupdated with target descriptionReviewer Guide
Review Focus Areas
/refine-story,/plan-tasks,/write-issueSKILL.md files follow the check→skip→act→verify pattern and composition interfacehow-to-08andhow-to-09retained orchestration flow without duplicating skill contentupdate/handler.ts:260-305,install/handler.ts:206-249)user-story-template.mdfunctional-first ordering,task-template.mdDependency Graph + AC Coverage formattools/markdownlint-config/pattern consistency with eslint/prettier, quality-gate integrationTesting the Changes