- Each task commits immediately after completion (feat/fix/test/refactor) - Plan completion commits metadata only (docs: SUMMARY + STATE + ROADMAP) - Git history becomes primary context source for future Claude sessions - Better bisect granularity, failure recovery, and revert capabilities Changes: - execute-phase.md: Added <task_commit> protocol and per-task commit flow - execute-plan.md: Updated commit rules and success criteria - git-integration.md: New task-completion format, strategy rationale - tdd.md: Aligned TDD commits with standard task commit pattern - summary.md: Added Task Commits section with commit hashes - README.md: Rewrote git history section with atomic commit benefits - scope-estimation.md: Clarified commit counts per plan - principles.md: Added <atomic_commits> section explaining strategy Each plan now produces 3-4 commits (2-3 task commits + 1 metadata commit) instead of single monolithic commit. Optimizes observability for solo developer + Claude Code workflow.
4.4 KiB
<solo_developer_claude>
You are planning for ONE person (the user) and ONE implementer (Claude).
- No teams, stakeholders, ceremonies, coordination overhead
- User is the visionary/product owner
- Claude is the builder
- Estimate effort in Claude execution time, not human dev time </solo_developer_claude>
<plans_are_prompts>
PLAN.md is not a document that gets transformed into a prompt. PLAN.md IS the prompt. It contains:
- Objective (what and why)
- Context (@file references)
- Tasks (with verification criteria)
- Success criteria (measurable)
When planning a phase, you are writing the prompt that will execute it. </plans_are_prompts>
<initialization_leverage>
The most leveraged moment is project initialization.
- Deep questioning here = better everything downstream
- Garbage in = garbage out
- Spend the tokens on context gathering
- Don't rush to "the work" </initialization_leverage>
<scope_control>
Plans must complete within reasonable context usage.
Quality degradation curve:
- 0-30% context: Peak quality
- 30-50% context: Good quality
- 50-70% context: Degrading quality
- 70%+ context: Poor quality
Solution: Aggressive atomicity - split into small, focused plans.
- 2-3 tasks per plan maximum
- Each plan independently executable
- Better to have many small plans than few large ones </scope_control>
<claude_automates>
If Claude CAN do it via CLI/API/tool, Claude MUST do it.
Checkpoints are for:
- Verification - Human confirms Claude's work (visual, UX)
- Decision - Human makes implementation choice
Not for:
- Deploying (use CLI)
- Creating resources (use CLI/API)
- Running builds/tests (use Bash)
- Writing files (use Write tool) </claude_automates>
<deviation_rules>
Plans are guides, not straitjackets. During execution:
- Auto-fix bugs - Fix immediately, document
- Auto-add critical - Security/correctness gaps, add immediately
- Auto-fix blockers - Can't proceed, fix immediately
- Ask about architectural - Major changes, stop and ask
- Log enhancements - Nice-to-haves, log to Issues, continue </deviation_rules>
<test_driven_when_beneficial>
Use TDD when the work WOULD benefit from it. Not dogma—pragmatism.
TDD candidates (write test first):
- Business logic with defined inputs/outputs
- API endpoints and handlers
- Data transformations and parsing
- Validation rules
- State machines and workflows
- Anything where you can describe expected behavior before implementing
Skip TDD for:
- UI layout and styling
- Exploratory prototyping
- One-off scripts and migrations
- Configuration changes
- Glue code with no logic
Decision heuristic:
Can you write expect(fn(input)).toBe(output) before writing fn?
→ Yes: TDD will help
→ No: Write implementation first, add tests after if needed
TDD task structure: When TDD applies, structure tasks as test-first:
- Write failing test (red)
- Implement to pass (green)
- Refactor if needed
This is about design quality, not test coverage metrics. </test_driven_when_beneficial>
<ship_fast>
No enterprise process. No approval gates.
Plan → Execute → Ship → Learn → Repeat
Milestones mark shipped versions (v1.0 → v1.1 → v2.0). </ship_fast>
<atomic_commits>
Git commits = context engineering for Claude.
Each task gets its own commit immediately after completion:
- Format:
{type}({phase}-{plan}): {task-description} - Types: feat, fix, test, refactor, perf, chore, docs
- One final metadata commit per plan:
docs({phase}-{plan}): complete [plan-name]
Why per-task commits:
- Git history becomes primary context source for future Claude sessions
git bisectfinds exact failing task, not just failing plan- Each task independently revertable
- Better failure recovery (task 1 committed ✅, retry task 2)
- Observability optimized for AI workflow, not human browsing
Plans produce 3-4 commits total:
- 2-3 task commits (working code)
- 1 metadata commit (SUMMARY + STATE + ROADMAP)
See ~/.claude/get-shit-done/references/git-integration.md for complete strategy.
</atomic_commits>
<anti_enterprise>
NEVER include:
- Team structures, RACI matrices
- Stakeholder management
- Sprint ceremonies
- Human dev time estimates (hours, days, weeks—Claude works differently)
- Change management processes
- Documentation for documentation's sake
If it sounds like corporate PM theater, delete it. </anti_enterprise>