
Dev Workflow Planning
- 152 installs
- 73 repo stars
- Updated July 13, 2026
- vasilyu1983/ai-agents-public
Helps with automation & workflows tasks.
About
dev-workflow-planning is a Claude Code skill for automation & workflows. It helps solo builders move faster with AI-assisted development.
- dev-workflow-planning
- Automation & Workflows
- AI-coding skill
Dev Workflow Planning by the numbers
- 152 all-time installs (skills.sh)
- +9 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #654 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vasilyu1983/ai-agents-public --skill dev-workflow-planningAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 152 |
|---|---|
| repo stars | ★ 73 |
| Last updated | July 13, 2026 |
| Repository | vasilyu1983/ai-agents-public ↗ |
What it does
Helps with automation & workflows tasks.
Files
Workflow Planning Skill - Quick Reference
This skill enables structured, systematic development workflows. The assistant should apply these patterns when users need to break down complex projects, create implementation plans, or execute multi-step development tasks with clear checkpoints.
Inspired by: Obra Superpowers patterns for structured agent workflows.
---
Quick Reference
| Command | Purpose | When to Use |
|---|---|---|
/brainstorm | Generate ideas and approaches | Starting new features, exploring solutions |
/write-plan | Create detailed implementation plan | Before coding, after requirements clarification |
/execute-plan | Implement plan step-by-step | When plan is approved, ready to code |
/checkpoint | Review progress, adjust plan | Mid-implementation, after major milestones |
/summarize | Capture learnings, document decisions | End of session, before context reset |
When to Use This Skill
The assistant should invoke this skill when a user requests:
- Break down a complex feature into steps
- Create an implementation plan
- Brainstorm approaches to a problem
- Execute a multi-step development task
- Track progress on a project
- Review and adjust mid-implementation
---
The Three-Phase Workflow
Phase 1: Brainstorm
Purpose: Explore the problem space and generate potential solutions.
/brainstorm [topic or problem]
OUTPUT:
1. Problem Understanding
- What are we solving?
- Who is affected?
- What are the constraints?
2. Potential Approaches (3-5)
- Approach A: [description, pros, cons]
- Approach B: [description, pros, cons]
- Approach C: [description, pros, cons]
3. Questions to Resolve
- [List of unknowns needing clarification]
4. Recommended Approach
- [Selected approach with justification]Phase 2: Write Plan
Purpose: Create a detailed, actionable implementation plan.
/write-plan [feature or task]
OUTPUT:
## Implementation Plan: [Feature Name]
### Goal
[Single sentence describing the outcome]
### Success Criteria
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
### Steps (with estimates)
#### Step 1: [Name] (~Xh)
- What: [specific actions]
- Files: [files to modify/create]
- Dependencies: [what must exist first]
- Verification: [how to confirm done]
### Risks & Mitigations
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| Risk 1 | Medium | High | Plan B if... |
### Open Questions
- [Questions to resolve before starting]Dependency Graph for Parallel Execution
When a plan will be executed with multiple subagents, each task must declare its dependencies explicitly. This enables the orchestrator to determine which tasks can run in parallel.
### Task Dependency Graph
| Task ID | Name | depends_on | Files | Agent Scope |
|---------|------|------------|-------|-------------|
| T1 | Setup database schema | [] | db/schema.sql | db-engineer |
| T2 | Create API routes | [T1] | src/routes/*.ts | backend-dev |
| T3 | Build auth middleware | [T1] | src/middleware/auth.ts | backend-dev |
| T4 | Frontend components | [] | src/components/*.tsx | frontend-dev |
| T5 | Integration tests | [T2, T3, T4] | tests/integration/*.test.ts | qa-agent |Rules for dependency graphs:
- Every task declares
depends_on: []with explicit task IDs (empty array = no blockers). - Tasks with no dependencies can start immediately (in parallel).
- No circular dependencies — the graph must be a DAG (directed acyclic graph).
- Each task should specify its file ownership to prevent parallel conflicts.
Parallel Execution Strategies
Swarm Waves (Accuracy-First) — Launch one subagent per unblocked task, in dependency-respecting waves. Wait for each wave to complete before launching the next. Best for production code and complex interdependencies.
Super Swarms (Speed-First) — Launch as many subagents as possible at once, regardless of dependencies. Best for prototypes and greenfield scaffolding. Expect merge conflicts.
See references/planning-templates.md for the full swarm-ready plan template.
Phase 3: Execute Plan
Purpose: Implement the plan systematically with checkpoints.
/execute-plan [plan reference]
EXECUTION PATTERN:
1. Load the plan
2. For each step:
a. Announce: "Starting Step X: [name]"
b. Execute actions
c. Verify completion
d. Report: "Step X complete. [brief summary]"
3. After completion:
a. Run all verification criteria
b. Report final status---
Worktree-First Delivery
For production coding sessions, wrap /execute-plan with a delivery guardrail:
1. Create one isolated worktree per feature. 2. Execute only the approved plan scope in that worktree. 3. Run repo-defined quality gate(s) before PR (example: npm run test:analytics-gate). 4. Open one focused PR per feature branch.
./scripts/git/feature-workflow.sh start <feature-slug>
cd .worktrees/<feature-slug>
# implement plan steps
../../scripts/git/feature-workflow.sh gate
../../scripts/git/feature-workflow.sh pr --title "feat: <summary>"---
Agent Session Management
Key rules from production experience (Feb 2026):
- One feature per session. Context exhaustion causes rework. A sprawling session (38 messages, 3+ continuations) produced multiple errors; a focused session (5 messages) shipped clean.
- Write a plan before touching 3+ files. Sessions with pre-written numbered plans had near-zero rework.
- Verify SDK types before executing plan steps. Documentation may describe APIs that no longer match actual TypeScript definitions.
See references/session-patterns.md for the full production evidence table and checkpoint protocol for long sessions.
---
Command Preflight Protocol
Before broad edits, tests, or reviews — run a 60-second preflight: 1. pwd / git branch --show-current / ls -la 2. test -e <path> to verify target paths before heavy commands 3. npx <tool> --help to validate flags before first use 4. Quote paths containing [], *, ?, or spaces
See references/operational-checklists.md for the full git/branch safety preflight, E2E/server preflight, shell safety gate, and SDK type verification.
---
Structured Patterns
Hypothesis-Driven Development
PATTERN: Test assumptions before committing
Before implementing:
1. State hypothesis: "If we [action], then [expected outcome]"
2. Define experiment: "To test this, we will [minimal test]"
3. Execute experiment
4. Evaluate: "Hypothesis confirmed/rejected because [evidence]"
5. Proceed or pivot based on resultIncremental Implementation
Build in verifiable increments: smallest testable unit → implement and verify → expand scope → verify at each expansion → integrate and verify whole.
See references/planning-templates.md for an authentication feature example with 5 increments.
Progress Tracking
PATTERN: Maintain visible progress
[X] Step 1: Create database schema
[X] Step 2: Implement API endpoints
[IN PROGRESS] Step 3: Add frontend form
[ ] Step 4: Write tests
Current: Step 3 of 4 (75% complete)
Blockers: None
Next: Complete form validationWork in Progress (WIP) Limits
Limit concurrent work: individual (2-3 tasks), team stories (team size + 1), in-progress column (3-5 items), code review (2-3 PRs). If limits are never reached, lower them. If constantly blocked, investigate the bottleneck.
See references/planning-templates.md for the full WIP limits reference and setting guidelines.
---
Milestone Checkpointing and Scope Budgeting
For multi-step execution, constrain scope and checkpoint progress at milestone boundaries.
- Define explicit session scope at start:
1-2deliverables only. - If a new request expands beyond scope, create a follow-up milestone.
Milestone Checkpoint Contract
At each milestone, record:
- completed outputs (files/features/tests)
- verification results (commands + pass/fail)
- unresolved blockers
- next bounded action
Stop Conditions
Stop and rescope when any occur:
- repeated nonzero failures without new evidence
- context churn (re-reading same files repeatedly)
- more than 3 independent domains active in one session
See references/session-scope-budgeting.md for full scope budgeting model and enforcement rules.
---
Session Management
Starting a Session
Session initialized.
- Project: [name]
- Goal: [today's objective]
- Context loaded: [files, previous decisions]
- Plan status: [steps remaining]
Ready to continue from: [last checkpoint]Ending a Session
/summarize
OUTPUT:
## Session Summary
### Completed
- [List of completed items]
### In Progress
- [Current state of incomplete work]
### Decisions Made
- [Key decisions with rationale]
### Next Session
- [ ] [First task for next time]
### Context to Preserve
[Critical information for continuity]---
Decision Framework
When faced with choices:
1. State the decision clearly
2. List options (2-4)
3. For each option: Pros / Cons / Effort / Risk
4. Recommendation with justification
5. Reversibility assessment
Example:
| Option | Pros | Cons | Effort | Risk |
|--------|------|------|--------|------|
| JWT | Stateless, scalable | Token management | 2 days | Low |
| Sessions | Simple, secure | Server state | 1 day | Low |
| OAuth only | No passwords | External dependency | 3 days | Medium |
Recommendation: Sessions for MVP, plan JWT migration for scale.---
Integration with Other Skills
With Testing Skill
/write-plan with TDD:
Step 1: Write failing test
Step 2: Implement minimal code
Step 3: Verify test passes
Step 4: Refactor
Step 5: Add edge case testsWith Architecture Skill
/brainstorm system design:
1. Requirements clarification
2. Component identification
3. Interface definition
4. Data flow mapping
5. Implementation plan---
Definition of Ready / Done (DoR/DoD)
[assets/template-dor-dod.md](assets/template-dor-dod.md) - Checklists for work readiness and completion.
[assets/template-work-item-ticket.md](assets/template-work-item-ticket.md) - Ticket template with DoR/DoD and testable acceptance criteria.
Key sections: Definition of Ready / Done checklists, Acceptance Criteria templates (Gherkin), Estimation Guidelines (story point scale 1-21+), Planning Levels (Roadmap → Sprint → Task), Cross-Functional RACI.
---
Do / Avoid
GOOD: Do
- Check DoR before pulling work into sprint
- Verify DoD before marking complete
- Size stories using reference scale
- Slice large stories (>8 points)
- Document acceptance criteria upfront
- Include risk buffer in estimates
BAD: Avoid
- Starting work without clear acceptance criteria
- Declaring "done" without testing
- Working on stories too big to finish in sprint
- Skipping code review "to save time"
- Deploying without staging verification
---
Anti-Patterns
| Anti-Pattern | Problem | Fix |
|---|---|---|
| No DoR | Unclear requirements discovered mid-sprint | Gate sprint entry with DoR |
| Soft DoD | "Done" means different things | Written DoD checklist |
| Mega-stories | Never finish, hard to track | Slice to <8 points |
| Missing AC | Built wrong thing | Gherkin format AC |
| No ownership | Work falls through cracks | RACI for every epic |
| Hope-based estimates | Always late | Use reference scale + buffer |
---
AI/Automation
Note: AI can assist but should not replace human judgment on priorities and acceptance.
- Generate acceptance criteria - Draft from story description (needs review)
- Suggest story slicing - Based on complexity analysis
- Dependency mapping - Identify blocking relationships
- AI-augmented planning - Use LLMs to draft plans, but validate assumptions
AI-generated criteria and estimates require human calibration before committing to them.
---
Navigation
Resources
- references/planning-templates.md - Plan templates, incremental implementation, WIP limits
- references/session-patterns.md - Multi-session management, production lessons (Feb 2026)
- references/session-scope-budgeting.md - Scope budgeting rules and stop/rescope criteria
- references/operational-checklists.md - Preflight protocols, verification, failure ledger, subagent limits
- references/flow-metrics.md - DORA metrics, WIP limits, flow optimization
- references/agile-ceremony-patterns.md - Sprint ceremonies, retrospectives, facilitation patterns
- references/technical-debt-management.md - Debt classification, prioritization, remediation workflows
- references/remote-async-workflows.md - Async-first patterns, distributed team coordination
- assets/template-dor-dod.md - DoR/DoD checklists, estimation, cross-functional coordination
- assets/template-work-item-ticket.md - Work item ticket template
- assets/template-milestone-checkpoint.md - Milestone checkpoint record
- data/sources.json - Workflow methodology references
Related Skills
- ../software-architecture-design/SKILL.md - System design planning
- ../docs-ai-prd/SKILL.md - Requirements to plan conversion
- ../qa-testing-strategy/SKILL.md - TDD workflow integration
- ../qa-debugging/SKILL.md - Systematic debugging plans
Definition of Ready / Done (DoR/DoD) Templates
Standard checklists for ensuring work items are ready to start and truly complete.
---
Definition of Ready (DoR)
Work items must pass this checklist before being pulled into a sprint/iteration.
User Story DoR Checklist
- [ ] Title: Clear, concise, describes the outcome
- [ ] User story format: "As a [user], I want [goal], so that [benefit]"
- [ ] Acceptance criteria: 3-7 testable conditions defined
- [ ] Sized: Story points or T-shirt size assigned
- [ ] Dependencies: External dependencies identified and unblocked
- [ ] Design: UX/UI mockups available (if applicable)
- [ ] Technical feasibility: Spike completed (if high uncertainty)
- [ ] Testable: QA understands how to verify
- [ ] Small enough: Can be completed in one sprint
Bug DoR Checklist
- [ ] Reproduction steps: Clear steps to reproduce
- [ ] Expected vs actual: Documented behavior difference
- [ ] Environment: Browser, OS, device, version specified
- [ ] Severity: Impact level assigned (Critical/High/Medium/Low)
- [ ] Screenshots/logs: Evidence attached
- [ ] Assignable: Root cause area identified
Technical Task DoR Checklist
- [ ] Scope: Clear boundaries defined
- [ ] Exit criteria: How we know it's done
- [ ] Approach: Technical approach agreed
- [ ] Dependencies: Upstream work complete
- [ ] Reviewable: Someone available to review
---
Definition of Done (DoD)
Work items must pass this checklist before being marked complete.
Feature DoD Checklist
Code Quality
- [ ] Code written and follows style guide
- [ ] Code reviewed and approved
- [ ] No new linter warnings/errors
- [ ] No hardcoded secrets or credentials
- [ ] Error handling implemented
Testing
- [ ] Unit tests written and passing
- [ ] Integration tests passing
- [ ] Edge cases covered
- [ ] No regression in existing tests
- [ ] Manual smoke test completed (if applicable)
Documentation
- [ ] Code comments for complex logic
- [ ] API documentation updated (if applicable)
- [ ] README updated (if applicable)
- [ ] Changelog entry added (if applicable)
Deployment
- [ ] Deployed to staging environment
- [ ] Verified in staging
- [ ] Feature flag configured (if applicable)
- [ ] No breaking changes to API (or versioned)
Acceptance
- [ ] Acceptance criteria verified
- [ ] Product owner accepted
- [ ] No blockers for production release
Bug Fix DoD Checklist
- [ ] Bug no longer reproducible
- [ ] Regression test added
- [ ] Root cause documented
- [ ] Related issues checked
- [ ] Fix reviewed and approved
- [ ] Deployed and verified
Spike DoD Checklist
- [ ] Question answered with evidence
- [ ] Recommendation documented
- [ ] Next steps identified
- [ ] Time box respected
- [ ] Findings shared with team
---
Acceptance Criteria Templates
Format: Given/When/Then (Gherkin)
Feature: User login
Scenario: Successful login with valid credentials
Given I am on the login page
When I enter valid username and password
And I click the login button
Then I should be redirected to the dashboard
And I should see a welcome message
Scenario: Failed login with invalid password
Given I am on the login page
When I enter valid username and invalid password
And I click the login button
Then I should see an error message "Invalid credentials"
And I should remain on the login pageFormat: Bullet List
## Acceptance Criteria
- [ ] User can enter email and password
- [ ] Login button is disabled until both fields have values
- [ ] Invalid credentials show error message
- [ ] Successful login redirects to dashboard
- [ ] Session expires after 30 minutes of inactivity
- [ ] "Remember me" extends session to 7 daysFormat: Rule-Based
## Acceptance Criteria
**Rule 1: Email validation**
- Email must be valid format
- Email must not be already registered (for signup)
- Error message shown for invalid email
**Rule 2: Password requirements**
- Minimum 8 characters
- At least one uppercase, one lowercase, one number
- Strength indicator updates in real-time
**Rule 3: Rate limiting**
- Max 5 failed attempts per 15 minutes
- Lockout message shown on 6th attempt
- Account unlocks automatically after 15 minutes---
Estimation Guidelines
Story Point Reference Scale
| Points | Effort | Complexity | Uncertainty | Example |
|---|---|---|---|---|
| 1 | Hours | Low | Known | Fix typo, update copy |
| 2 | Half day | Low | Known | Add simple field to form |
| 3 | 1-2 days | Medium | Mostly known | New CRUD endpoint |
| 5 | 3-5 days | Medium | Some unknowns | New feature with UI |
| 8 | 1 week | High | Significant unknowns | Integration with external API |
| 13 | 1-2 weeks | High | Many unknowns | Split this story |
| 21+ | Too big | N/A | Too high | Definitely split |
Slicing Strategies
SPIDR Framework:
- Spike: Reduce uncertainty first
- Paths: Split by user flow variations
- Interfaces: Split by input/output channels
- Data: Split by data types or subsets
- Rules: Split by business rules
Example: Split by Paths
Before: "User can manage their profile"
After:
- User can view their profile
- User can edit their name
- User can change their email (with verification)
- User can upload profile photo
- User can delete their accountRisk Buffers
| Confidence | Multiplier | When to Use |
|---|---|---|
| High | 1.0x | Well-understood, done before |
| Medium | 1.3x | Some unknowns, familiar tech |
| Low | 1.5x | New tech, external dependencies |
| Very Low | 2.0x | First time, high uncertainty |
---
Planning Levels
Roadmap -> Milestone -> Sprint -> Task
| Level | Horizon | Granularity | Owner |
|---|---|---|---|
| Roadmap | 6-12 months | Themes, outcomes | Product |
| Milestone | 1-3 months | Epics, features | Product + Tech |
| Sprint | 1-2 weeks | User stories | Team |
| Task | Hours-days | Implementation steps | Developer |
Example Hierarchy
Roadmap: Q1 2025 - Improve user onboarding
|-- Milestone: Reduce time-to-value by 50%
| |-- Epic: Guided setup wizard
| | |-- Story: First-time user sees wizard
| | |-- Story: User can skip wizard
| | `-- Story: Wizard tracks completion
| `-- Epic: Interactive tutorials
| |-- Story: Tutorial for core feature
| `-- Story: Tutorial progress saved
`-- Milestone: Reduce churn in first week
`-- Epic: Proactive engagement
|-- Story: Day 2 email with tips
`-- Story: In-app progress indicators---
Cross-Functional Coordination
RACI Matrix Template
| Activity | Product | Engineering | Design | QA | Security |
|---|---|---|---|---|---|
| Define requirements | A | C | C | I | C |
| Design solution | C | A | R | I | C |
| Implement | I | A/R | C | I | C |
| Review code | I | A | I | I | C |
| Test | C | C | I | A/R | I |
| Security review | I | C | I | I | A/R |
| Deploy | I | A/R | I | I | C |
| Accept | A/R | I | I | C | I |
R = Responsible, A = Accountable, C = Consulted, I = Informed
Handoff Checklist
Design -> Engineering
- [ ] Mockups/wireframes complete
- [ ] Design specs documented
- [ ] Edge cases discussed
- [ ] Assets exported
Engineering -> QA
- [ ] Feature deployed to staging
- [ ] Test data prepared
- [ ] Acceptance criteria clear
- [ ] Known limitations documented
QA -> Product
- [ ] All acceptance criteria verified
- [ ] Test results documented
- [ ] Bugs filed and triaged
- [ ] Sign-off requested
---
Do / Avoid
GOOD: Do
- Check DoR before pulling work
- Verify DoD before marking complete
- Size stories using reference scale
- Slice large stories (>8 points)
- Document acceptance criteria upfront
- Include risk buffer in estimates
- Coordinate handoffs explicitly
BAD: Avoid
- Starting work without clear acceptance criteria
- Declaring "done" without testing
- Estimating without understanding scope
- Working on stories too big to finish in sprint
- Skipping code review "to save time"
- Deploying without staging verification
- Assuming handoffs happen automatically
---
Anti-Patterns
| Anti-Pattern | Problem | Fix |
|---|---|---|
| No DoR | Unclear requirements discovered mid-sprint | Gate sprint entry with DoR |
| Soft DoD | "Done" means different things | Written DoD checklist |
| Mega-stories | Never finish, hard to track | Slice to <8 points |
| Missing AC | Built wrong thing | Gherkin format AC |
| No ownership | Work falls through cracks | RACI for every epic |
| Hope-based estimates | Always late | Use reference scale + buffer |
---
Optional: AI/Automation
Note: AI can assist but should not replace human judgment on priorities and acceptance.
AI-Assisted Planning
- Generate acceptance criteria draft from story description
- Suggest story slicing based on complexity analysis
- Identify missing edge cases in requirements
Automation Tools
- JIRA/Linear templates with DoR/DoD checklists
- CI/CD gates that verify DoD items
- Automated test coverage reporting
Bounded Claims
- AI-generated acceptance criteria need human review
- Story point estimates require team calibration
- Dependency mapping suggestions need validation
---
Related Templates
- planning-templates.md - Feature/bug/spike plans
- session-patterns.md - Multi-session workflows
---
Last Updated: December 2025
Template: Milestone Checkpoint
Milestone
- Milestone ID:
M-__ - Scope:
___________________________________________ - Date:
YYYY-MM-DD - Owner:
___________________________________________
Completed
______________________________________________________________________________________________
Verification Evidence
| Check | Command/Evidence | Result |
|---|---|---|
| Lint/type | pass/fail | |
| Tests | pass/fail | |
| Build/run | pass/fail |
Blockers / Risks
______________________________________________________________________________________________
Scope Drift Check
- New requests outside milestone scope?
yes / no - If yes, deferred milestone ID:
M-__
Next Bounded Action
_________________________________________________
Status
- [ ] Milestone complete
- [ ] Follow-up required
Work Item Ticket Template (DoR/DoD + Acceptance Criteria)
Copy-paste into Jira/Linear/GitHub Issues to make work scannable, testable, and releasable.
---
Core
Summary
- Title:
- Type: feature / bug / tech debt / spike
- Owner:
- Priority:
- Milestone/Sprint:
- Stakeholders:
Problem Statement
- What is broken or missing?
- Who is impacted?
- Why now?
Scope
- In scope:
- Out of scope:
Context / Links
- PRD/RFC:
- Designs:
- Logs/metrics:
- Related tickets:
Acceptance Criteria (Required)
Pick one style and keep it testable.
Option A: checklist
- [ ] AC1:
- [ ] AC2:
- [ ] AC3:
Option B: Given/When/Then
Scenario: ...
Given ...
When ...
Then ...Definition of Ready (Gate to Start)
Use the checklist and don't start until it's satisfied:
- [ ] DoR complete (see
assets/template-dor-dod.md) - [ ] Dependencies identified and unblocked
- [ ] Security/privacy considerations captured (PII/PHI/PCI, auth scope)
- [ ] Operability requirements captured (logging/metrics/tracing, alerts, runbook impact)
- [ ] Rollout strategy chosen (flag, canary, staged)
Definition of Done (Gate to Close)
- [ ] DoD complete (see
assets/template-dor-dod.md) - [ ] Tests added/updated (unit + integration as applicable)
- [ ] Observability updated (dashboards/alerts if needed)
- [ ] Docs updated (public/internal)
- [ ] Rollback plan documented
Implementation Plan (Tasks)
- [ ] Task 1:
- [ ] Task 2:
- [ ] Task 3:
Risks and Mitigations
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
Validation Plan
- How will we verify in staging?
- What metrics/SLOs are expected to move?
- What is the rollback trigger?
---
Optional: AI/Automation
- Draft acceptance criteria from the problem statement (human-reviewed)
- Suggest task breakdown and dependencies (human-validated)
- Produce a test plan outline and rollout checklist (human-owned)
Bounded Claims
- AI drafts can miss edge cases and operational constraints.
- Priorities and trade-offs require team calibration.
{
"metadata": {
"title": "Workflow Planning - Sources",
"description": "High-signal sources for planning levels, Definition of Ready/Done, slicing, acceptance criteria, and delivery/flow metrics",
"last_updated": "2026-01-17"
},
"planning_and_flow": [
{
"name": "DORA (DevOps Research and Assessment)",
"url": "https://dora.dev/",
"description": "Delivery and reliability metrics and research summaries (lead time, deployment frequency, MTTR, change failure rate)",
"add_as_web_search": true
},
{
"name": "DORA 5 Metrics (2025 Update)",
"url": "https://cd.foundation/blog/2025/10/16/dora-5-metrics/",
"description": "Addition of Reliability as fifth DORA metric",
"add_as_web_search": true
},
{
"name": "DORA Metrics 2025 Best Practices",
"url": "https://www.oobeya.io/blog/dora-metrics-2025-best-practices",
"description": "2025 benchmarks, AI impact on metrics, calculation best practices",
"add_as_web_search": true
},
{
"name": "Scrum Guide (Definition of Done, Sprint Planning)",
"url": "https://scrumguides.org/scrum-guide.html",
"description": "Official Scrum Guide reference for DoD and sprint planning",
"add_as_web_search": true
},
{
"name": "Agile Alliance - Definition of Ready",
"url": "https://www.agilealliance.org/glossary/definition-of-ready/",
"description": "Definition of Ready concept and common usage",
"add_as_web_search": false
},
{
"name": "Shape Up",
"url": "https://basecamp.com/shapeup",
"description": "Appetite-based scoping and shaping work before execution",
"add_as_web_search": true
},
{
"name": "Atlassian WIP Limits Guide",
"url": "https://www.atlassian.com/agile/kanban/wip-limits",
"description": "WIP limits best practices for Kanban flow optimization",
"add_as_web_search": true
},
{
"name": "Scrumban Framework Guide",
"url": "https://monday.com/blog/rnd/scrumban/",
"description": "Hybrid Scrum-Kanban methodology with planning triggers",
"add_as_web_search": true
}
],
"acceptance_criteria_and_specs": [
{
"name": "Gherkin Syntax Reference",
"url": "https://cucumber.io/docs/gherkin/reference/",
"description": "Given/When/Then syntax reference for acceptance criteria",
"add_as_web_search": true
}
],
"org_and_coordination": [
{
"name": "Team Topologies",
"url": "https://teamtopologies.com/",
"description": "Team interaction modes and organizational patterns for faster delivery with lower cognitive load",
"add_as_web_search": true
}
],
"optional_ai": [
{
"name": "Planning automation with Claude Code (Optional)",
"url": "https://www.anthropic.com/engineering/claude-code-best-practices",
"description": "Optional AI-assisted workflows for planning (requires human validation)",
"add_as_web_search": true,
"optional": true
},
{
"name": "Addy Osmani - LLM Coding Workflow 2026",
"url": "https://addyosmani.com/blog/ai-coding-workflow/",
"description": "Planning-first approach for AI-assisted development, scope management patterns",
"add_as_web_search": true,
"optional": true
}
]
}
Agile Ceremony Patterns
Operational reference for running effective agile ceremonies — sprint planning, standups, retrospectives, sprint reviews, backlog refinement, and PI planning. Covers facilitation techniques, timeboxing, async alternatives, and anti-patterns.
Freshness anchor: January 2026 — aligned with Scrum Guide 2020, SAFe 6.0, and current remote-first tooling (Linear, Jira, Miro, Notion).
---
Ceremony Quick Reference
| Ceremony | Frequency | Timebox | Attendees | Output |
|---|---|---|---|---|
| Sprint Planning | Start of sprint | 2h (2-week sprint) | Team + PO | Sprint goal, committed backlog |
| Daily Standup | Daily | 15 min | Team | Blockers surfaced, sync |
| Sprint Review / Demo | End of sprint | 1h | Team + stakeholders | Feedback, acceptance |
| Retrospective | End of sprint | 1.5h | Team only | Action items (max 3) |
| Backlog Refinement | Mid-sprint (1-2x) | 1h | Team + PO | Estimated, ready stories |
| PI Planning | Quarterly (SAFe) | 2 days | Multiple teams | PI objectives, dependencies |
---
Sprint Planning
Decision Tree: Planning Approach
Does the team have stable velocity (>3 sprints of data)?
├── YES → Capacity-based planning
│ ├── Calculate capacity: team members × available days × focus factor
│ ├── Pull stories up to capacity from refined backlog
│ └── Commit to sprint goal, not individual stories
└── NO (new team, changing composition)
└── Goal-based planning
├── Define sprint goal first
├── Pull minimum stories to achieve goal
├── Leave buffer (30-40% of estimated capacity)
└── Track velocity to calibrate future sprintsSprint Planning Agenda
| Phase | Duration | Activity |
|---|---|---|
| 1. Context (What) | 20 min | PO presents sprint goal, top priorities, any dependencies |
| 2. Capacity check | 10 min | Team calculates available capacity (PTO, meetings, support rotation) |
| 3. Story selection (What) | 30 min | Team pulls stories from refined backlog, asks clarifying questions |
| 4. Task breakdown (How) | 45 min | Team breaks stories into tasks, identifies unknowns |
| 5. Commitment | 15 min | Team confirms sprint goal and committed scope |
Capacity Calculation
Team capacity = Σ (team member available days × focus factor)
Focus factor:
- New team: 0.5-0.6
- Established team: 0.7-0.8
- Experienced team: 0.8-0.85
- Never assume 1.0
Deductions:
- PTO / holidays
- On-call / support rotation
- Company meetings / all-hands
- Onboarding new members (both mentor and mentee)Sprint Planning Checklist
- [ ] Sprint goal is a single sentence describing the outcome
- [ ] Stories are refined (acceptance criteria exist, estimated)
- [ ] Dependencies on other teams identified and communicated
- [ ] Tech debt allocation included (target 15-20% of capacity)
- [ ] Team members confirmed availability for the sprint
- [ ] No story exceeds 50% of sprint capacity (split if larger)
- [ ] Sprint goal is visible in the team's workspace
---
Daily Standup
Format Options
| Format | How it works | Best for |
|---|---|---|
| Three Questions | Each person: yesterday/today/blockers | Small teams (3-5), co-located |
| Walk the Board | Review tickets right-to-left on the board | Larger teams, focus on flow |
| Focus + Blockers | Each person: focus today + any blockers | Fast, outcome-oriented |
| Async Written | Written update in Slack/Linear by 10am | Distributed teams, timezone gaps |
Walk-the-Board Protocol
1. Open the sprint board
2. Start from the rightmost column (closest to done)
3. For each ticket in progress:
- Who is working on it?
- Is it on track to move today?
- Any blockers?
4. Skip items not started (they are the plan, not the status)
5. Flag anything at risk of not completing this sprintAsync Standup Template
## Daily Update — [Name] — [Date]
**Focus today:**
- [Primary task/ticket]
- [Secondary task if applicable]
**Blockers:**
- [Blocker description] → need [specific help from specific person]
**FYI:**
- [Optional: anything the team should know]Standup Facilitation Rules
- [ ] Start on time, every time (don't wait for latecomers)
- [ ] Standing / camera-on to maintain energy
- [ ] Timebox individual updates to 2 minutes
- [ ] Parking lot for discussions that need >30 seconds
- [ ] Rotate facilitator weekly (builds ownership)
- [ ] End with: "Who needs help today?"
---
Retrospective
Format Selection Guide
| Format | Best for | Duration | Energy level |
|---|---|---|---|
| Start / Stop / Continue | Quick, general health check | 45 min | Low effort |
| 4Ls (Liked, Learned, Lacked, Longed for) | Balanced reflection | 60 min | Medium |
| Mad / Sad / Glad | Emotional temperature check | 45 min | Medium |
| Sailboat (wind/anchor/rocks/island) | Visual, metaphor-driven | 60 min | High |
| Timeline | After incidents or long sprints | 90 min | High |
| Lean Coffee | Team chooses topics, democratic | 60 min | Medium |
Retrospective Facilitation Agenda
| Phase | Duration | Activity |
|---|---|---|
| 1. Set the stage | 5 min | Check-in question, set safety |
| 2. Gather data | 15 min | Silent writing on stickies/cards |
| 3. Group and vote | 10 min | Affinity grouping, dot voting (3 votes each) |
| 4. Discuss top items | 20 min | Deep dive on top 2-3 voted topics |
| 5. Define actions | 10 min | Max 3 action items with owners and due dates |
| 6. Close | 5 min | Rate the retro (1-5), thank the team |
Action Item Rules
- Maximum 3 action items per retro (more won't get done)
- Each action item has a single owner (not "the team")
- Each action item has a due date (default: next retro)
- Review previous retro actions at the start of each retro
- Track completion rate — if <50%, reduce to 1-2 actions
Psychological Safety Checklist
- [ ] Vegas rule stated ("what's said here stays here")
- [ ] Facilitator is NOT the manager (rotate, or use external facilitator)
- [ ] Anonymous input option available (sticky notes, digital cards)
- [ ] No blame language ("the process failed" not "you failed")
- [ ] Manager speaks last (if present at all)
- [ ] Follow through on action items (broken trust kills future retros)
---
Sprint Review / Demo
Sprint Review Agenda
| Phase | Duration | Activity |
|---|---|---|
| 1. Sprint goal recap | 5 min | PO states the sprint goal and whether it was met |
| 2. Demo completed work | 30 min | Team demos working software (not slides) |
| 3. Stakeholder feedback | 15 min | Structured feedback, questions, concerns |
| 4. Backlog impact | 10 min | PO discusses how feedback affects upcoming priorities |
Demo Preparation Checklist
- [ ] Demo environment prepared and tested before the meeting
- [ ] Demo script covers the user flow, not technical implementation
- [ ] Each demo item tied to a user story or sprint goal
- [ ] Backup plan if live demo fails (screenshots, recording)
- [ ] Non-completed items mentioned (transparency, not hidden)
- [ ] Stakeholder questions captured for backlog consideration
---
Backlog Refinement
Refinement Session Structure
| Phase | Duration | Activity |
|---|---|---|
| 1. Review upcoming priorities | 10 min | PO presents next sprint candidates |
| 2. Story walkthrough | 30 min | Team asks questions, clarifies acceptance criteria |
| 3. Estimation | 15 min | Team estimates using chosen method |
| 4. Ready check | 5 min | Each story passes Definition of Ready |
Definition of Ready Checklist
- [ ] User story follows format: "As a [who], I want [what], so that [why]"
- [ ] Acceptance criteria are specific and testable
- [ ] Technical approach discussed (no unknown unknowns)
- [ ] Dependencies identified and unblocked (or plan exists)
- [ ] Story sized to complete within one sprint
- [ ] UX designs attached (if applicable)
- [ ] Edge cases documented
Estimation Methods
| Method | How | Best for |
|---|---|---|
| Story Points (Fibonacci) | Relative sizing: 1, 2, 3, 5, 8, 13 | Teams wanting relative complexity |
| T-Shirt Sizing | XS, S, M, L, XL | Quick estimation, high-level planning |
| #NoEstimates | Count stories, assume similar size | Teams with consistently small stories |
| Time-based (hours) | Direct time estimate | Teams with predictable work types |
Estimation Anti-Patterns
- Spending >5 minutes debating 5 vs 8 points — pick the higher one and move on
- Estimating without acceptance criteria — refuse to estimate, send back to PO
- One person dominating estimates — use simultaneous reveal (planning poker)
- Averaging estimates — discuss the gap, understand different assumptions
- Re-estimating completed stories — velocity self-corrects over time
---
PI Planning (SAFe)
PI Planning Agenda (2 Days)
| Day | Time | Activity |
|---|---|---|
| Day 1 AM | 2h | Business context, product vision, architecture vision |
| Day 1 PM | 3h | Team breakouts: draft PI plans, identify dependencies |
| Day 1 Close | 1h | Draft plan review, management review |
| Day 2 AM | 2h | Team breakouts: adjust plans, resolve dependencies |
| Day 2 PM | 2h | Final plan review, confidence vote, planning retrospective |
PI Planning Outputs
- [ ] PI objectives for each team (SMART format)
- [ ] Program board showing cross-team dependencies
- [ ] Risks identified with ROAM classification (Resolved, Owned, Accepted, Mitigated)
- [ ] Confidence vote: average ≥3 out of 5 (re-plan if below)
- [ ] Uncommitted objectives clearly marked (stretch goals)
---
Anti-Patterns
| Anti-Pattern | Ceremony | Problem | Fix |
|---|---|---|---|
| Status report standup | Daily | Manager asks for updates, not team sync | Use walk-the-board, rotate facilitator |
| Sprint planning = story assignment | Planning | No team ownership of commitment | Team pulls work, self-assigns during sprint |
| Skipping retros when "things are fine" | Retro | Missed improvement opportunities, stagnation | Always run retros, vary the format |
| Demo with slides, no working software | Review | Stakeholders can't give meaningful feedback | Demo real features in test environment |
| Refinement = estimation only | Refinement | Stories enter sprint with unclear requirements | Focus on understanding and acceptance criteria first |
| Sprint goal is a list of tickets | Planning | No cohesion, can't make scope tradeoffs | Sprint goal is one sentence, an outcome |
| Same retro format every time | Retro | Team disengages, goes through the motions | Rotate formats quarterly |
| No action item follow-through | Retro | Team stops raising issues, learned helplessness | Review actions at start of every retro |
| 60-minute standup | Daily | Problem-solving in standup instead of parking lot | Strict 15-min timebox, take topics offline |
| Inviting everyone to every ceremony | All | Decision paralysis, wasted time | Core team only; stakeholders to review/demo |
---
Cross-References
dev-workflow-planning/references/technical-debt-management.md— allocating debt work in sprint planningdev-workflow-planning/references/remote-async-workflows.md— async alternatives to ceremoniesstartup-hiring-and-management/references/remote-team-management.md— managing distributed agile teamsqa-testing-strategy/SKILL.md— integrating testing into sprint workflowsoftware-architecture-design/SKILL.md— architecture decisions in refinement
Flow Metrics Reference
Delivery performance metrics, WIP limits, and flow optimization patterns.
---
DORA Metrics (5 Keys - 2025 Update)
DORA metrics measure software delivery performance. In 2025, Reliability was added as the 5th metric.
The Five Metrics
| Metric | Definition | Elite Benchmark (2025) |
|---|---|---|
| Deployment Frequency | How often you deploy to production | Multiple times per day (elite) |
| Lead Time for Changes | Time from commit to production | Under 1 hour (elite) |
| Change Failure Rate | % of deployments causing incidents | < 5% |
| Time to Recover (MTTR) | Time to restore service after incident | Under 1 hour |
| Reliability | Meeting SLOs for availability/performance | Consistently meets targets |
Source: DORA 5 Metrics, DORA.dev
Using DORA Metrics
BEST PRACTICES:
1. Measure all 5 metrics together (not in isolation)
2. Use for improvement, not punishment
3. Reduce batch size to improve all metrics
4. Set clear benchmarks against industry standards
5. Cross-functional team ownership of metrics
ANTI-PATTERNS:
- High deployment frequency + high change failure rate
- Low lead time + no reliability monitoring
- Gaming metrics instead of improving process---
WIP Limits
Work in Progress limits restrict concurrent items in workflow stages.
Why WIP Limits Work
- Makes blockers visible - Can't hide behind "busy"
- Reduces context switching - Focus on completion
- Improves throughput - Encourages finishing before starting
- Shortens cycle time - Items flow faster through the system
Recommended WIP Limits
| Level | Limit | Formula |
|---|---|---|
| Individual tasks | 2-3 | Cognitive limit |
| Team stories | Team size + 1 | Allow pairing |
| In Progress column | 3-5 | Force completion |
| Code Review | 2-3 | Prevent bottleneck |
| Testing | 3-5 | Match capacity |
Setting and Adjusting
INITIAL SETUP:
1. Start with team size + 1
2. Monitor for 2-4 weeks
3. Track where items get stuck
ADJUSTMENT RULES:
- Limits never reached -> Lower them
- Constantly blocked -> Investigate root cause (don't raise limit)
- Frequent exceptions -> Limit too low or process issue
WHEN TO VIOLATE:
- Emergency production fix
- Unblocking critical path
- Always document and review in retroSource: Atlassian WIP Limits
---
Cycle Time vs Lead Time
LEAD TIME
Request -> Backlog -> In Progress -> Done
| |
+-- WAIT TIME ---------+-- CYCLE TIME
Work actively started| Metric | Measures | Use For |
|---|---|---|
| Lead Time | Request to delivery | Customer perspective |
| Cycle Time | Work started to done | Team efficiency |
| Wait Time | Request to work started | Backlog health |
Flow Efficiency
Flow Efficiency = (Active Work Time / Total Lead Time) * 100
BENCHMARKS:
- < 15% - Significant waste, lots of waiting
- 15-40% - Typical for most teams
- > 40% - High-performing team
IMPROVEMENT:
1. Reduce WIP to decrease wait time
2. Remove handoff delays
3. Automate repetitive steps
4. Co-locate dependent work---
Scrumban Hybrid
Combines Scrum's structured planning with Kanban's continuous flow.
When to Use Scrumban
- Mixed work types (features, bugs, urgent requests)
- Need sprint structure but flexible priorities
- Transitioning from Scrum to more flow-based approach
Key Practices
| Practice | Description |
|---|---|
| Planning Triggers | Plan when ready queue < 5-10 items (not fixed sprint) |
| WIP Limits | Per-column limits on Kanban board |
| Daily Standups | Keep from Scrum |
| Retrospectives | Keep from Scrum |
| No Sprint Commitment | Pull work as capacity allows |
Source: Monday Scrumban Guide
---
Throughput and Predictability
Measuring Throughput
Throughput = Items completed / Time period
TRACKING:
- Stories per sprint
- Bugs fixed per week
- Features shipped per month
USE FOR:
- Forecasting delivery dates
- Capacity planning
- Identifying trendsMonte Carlo Forecasting
Use historical throughput data to predict completion dates:
INPUTS:
- Last 10-20 sprints of throughput data
- Number of items remaining
OUTPUT:
- Probability distribution of completion dates
- "85% confidence: Done by March 15"
BETTER THAN:
- Single-point estimates
- "Gut feel" predictions---
Quick Reference
DORA Quick Check
Answer these for your team:
1. How often do you deploy? ___ 2. How long from commit to production? ___ 3. What % of deploys cause incidents? ___ 4. How long to recover from incidents? ___ 5. Do you consistently meet SLOs? ___
Compare to DORA benchmarks.
WIP Limit Checklist
- [ ] WIP limits defined for each column
- [ ] Limits visible on board
- [ ] Team agrees on violation policy
- [ ] Blockers escalated immediately
- [ ] Reviewed in retrospectives
Flow Health Indicators
| Indicator | Healthy | Unhealthy |
|---|---|---|
| WIP | Within limits | Constantly at/over limit |
| Blockers | Resolved in < 1 day | Aging > 3 days |
| Cycle Time | Stable week-over-week | Increasing trend |
| Queue Size | < 2 sprints of work | Growing backlog |
---
Navigation
- Back to SKILL.md
- Planning Templates
- Session Patterns
---
Last Updated: January 2026
Operational Checklists
Pre-flight checks, verification protocols, and failure handling patterns for reliable dev sessions.
---
Command Preflight Protocol
Run this before broad edits, test runs, or multi-file reviews.
60-Second Preflight
1. Confirm context:
pwdgit branch --show-currentls -la
2. Verify target paths before running heavy commands:
test -e <path>orrg --files <root> | head- Prefer discovery first, then exact-path commands.
3. Validate command flags against actual tool version:
- Example: run
npx eslint --helpbefore assuming legacy flags like--file.
4. Quote glob-sensitive paths (especially App Router segments):
- Use
'app/src/app/ask/[category]/page.tsx'to avoid shell glob expansion errors.
5. Fail fast on path errors:
- If command reports missing path/pattern, stop and re-derive repository shape before continuing.
Git/Branch Safety Preflight
Run before checkout, merge, and commit:
git status --porcelain(must be clean or intentionally scoped)test -f .git/index.lock && ps aux | rg "[g]it"(lock/process check)- If switching branches with local changes, commit or stash first.
E2E/Server Preflight
Before Playwright/full E2E:
- Verify target app dir exists (
test -d app) - Verify web server port is free (
lsof -i :3001) - Ensure test file/glob exists before running (
rg --files tests/e2e | rg <pattern>)
---
Shell Safety Gate
Run before any file/CLI operation:
1. Path check: test -e <path> (or ls <path>) before sed/cat/rg on a file. 2. Quote dynamic paths and patterns. 3. For multi-pattern ripgrep, always use -e form:
rg -n -e "pattern one" -e "pattern two" <targets>4. For paths with glob chars ([], *, ?) or spaces, use quoting/escaping.
---
CLI Compatibility Probe
Before first use in a session, run one capability probe and cache syntax for the rest of the task:
npx eslint --help
npx vitest --help
npx tsc --helpUse probed syntax, not assumed flags.
---
Tiered Verification Protocol
Run checks in this order:
1. Edited-file lint/type checks. 2. Feature-scope tests. 3. Full lint/type/build gate once before handoff.
If the same baseline failure repeats unchanged twice, stop re-running broad checks and either:
- narrow scope, or
- record a baseline waiver in the handoff.
---
Failure Ledger
After every failed command, capture:
- Command
- Failure class (path/glob/flag/env/baseline)
- What changed before retry
Do not retry an identical command without changing inputs/environment.
---
Done/Not Done Closure Contract
Every execution summary must end with:
Done: completed acceptance criteriaNot done: remaining items/blockersChecks run: exact commands run + pass/fail/skipNext required action: one concrete next step
---
SDK Type Verification
Plans written from documentation may reference APIs that don't match actual SDK TypeScript types. Before executing a plan step that calls an external SDK, grep the actual TypeScript definitions:
# Example: verify Stripe SDK types before using planned API calls
grep -r "total_count" node_modules/stripe/types/ || echo "NOT FOUND — check actual type"Common mismatches found in production:
stripe.customers.list().total_count→ SDK hasdata.lengthinvoice.subscription→ API changed toinvoice.parent.subscription_details.subscription
---
Fan-Out Limits for Subagents
- Max 3 active subagents at once.
- Assign each subagent a file ownership boundary.
- Merge after each batch before spawning new subagents.
Practical Batch Pattern
Batch 1: discovery + plan
Batch 2: implementation in one domain
Batch 3: verification + fixups
Batch 4: handoff summaryCheckpoint Contract (every batch)
Report in one block:
- what changed,
- what was verified,
- what is blocked,
- exact next command.
---
Navigation
- Back to SKILL.md
- Session Scope Budgeting
- Session Patterns
Planning Templates
Copy-paste templates for common planning scenarios.
---
Feature Implementation Plan
## Implementation Plan: [Feature Name]
### Goal
[Single sentence describing the outcome]
### Success Criteria
- [ ] Criterion 1: [Measurable outcome]
- [ ] Criterion 2: [Measurable outcome]
- [ ] Criterion 3: [Measurable outcome]
### Prerequisites
- [ ] [Dependency or setup required before starting]
### Steps
#### Step 1: [Name]
- **What**: [Specific actions to take]
- **Files**: [Files to modify/create]
- **Verification**: [How to confirm done]
#### Step 2: [Name]
- **What**: [Specific actions to take]
- **Files**: [Files to modify/create]
- **Verification**: [How to confirm done]
#### Step 3: [Name]
- **What**: [Specific actions to take]
- **Files**: [Files to modify/create]
- **Verification**: [How to confirm done]
### Risks & Mitigations
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| [Risk 1] | Low/Med/High | Low/Med/High | [Plan B] |
### Open Questions
- [ ] [Question to resolve before/during implementation]---
Bug Fix Plan
## Bug Fix Plan: [Issue Title]
### Problem Statement
[What's broken and how it manifests]
### Reproduction Steps
1. [Step to reproduce]
2. [Step to reproduce]
3. [Expected vs actual behavior]
### Root Cause Hypothesis
[What you believe is causing the issue]
### Fix Strategy
1. [Approach to fix]
2. [Files to modify]
3. [Testing approach]
### Verification
- [ ] Bug no longer reproducible
- [ ] Existing tests pass
- [ ] New regression test added
- [ ] No side effects observed---
Refactoring Plan
## Refactoring Plan: [Component/Module]
### Current State
[What exists now and why it's problematic]
### Target State
[What it should look like after refactoring]
### Constraints
- [ ] Must maintain backward compatibility
- [ ] No behavior changes
- [ ] All tests must pass
### Steps (in order of execution)
#### Phase 1: Preparation
- [ ] Add missing test coverage
- [ ] Document current behavior
#### Phase 2: Refactoring
- [ ] [Specific refactoring step]
- [ ] [Specific refactoring step]
#### Phase 3: Verification
- [ ] Run full test suite
- [ ] Manual smoke test
- [ ] Performance comparison
### Rollback Plan
[How to revert if something goes wrong]---
Spike/Research Plan
## Spike: [Research Topic]
### Question to Answer
[Specific question this spike will answer]
### Time Box
[Maximum time to spend: e.g., 2 hours]
### Success Criteria
- [ ] Question answered with evidence
- [ ] Recommendation documented
- [ ] Next steps identified
### Research Approach
1. [What to investigate first]
2. [What to investigate second]
3. [How to validate findings]
### Output
- Summary of findings
- Recommendation with justification
- Proof of concept (if applicable)---
Migration Plan
## Migration Plan: [From X to Y]
### Scope
- **Affected systems**: [List]
- **Affected users**: [Count/groups]
- **Data to migrate**: [Type and volume]
### Pre-Migration
- [ ] Backup existing data
- [ ] Notify stakeholders
- [ ] Set up rollback procedure
### Migration Steps
1. [ ] [Step with specific commands/actions]
2. [ ] [Verification checkpoint]
3. [ ] [Next step]
### Post-Migration
- [ ] Verify data integrity
- [ ] Run smoke tests
- [ ] Monitor for errors (24h)
### Rollback Procedure
[Exact steps to revert if needed]
### Communication Plan
| When | What | Who |
|------|------|-----|
| Before | Migration notice | All users |
| During | Status updates | Stakeholders |
| After | Completion notice | All users |---
Daily/Sprint Planning
## [Date] Planning
### Today's Goal
[One sentence: what success looks like today]
### Priority Tasks
1. [ ] [Highest priority task]
2. [ ] [Second priority]
3. [ ] [Third priority]
### Blockers
- [Any blockers to address first]
### Carry-over from Yesterday
- [Incomplete items from previous session]
### End of Day Checkpoint
- [ ] Goal achieved?
- [ ] What blocked progress?
- [ ] What's first tomorrow?---
Swarm-Ready Implementation Plan
Use this template when the plan will be executed by multiple parallel subagents.
## Implementation Plan: [Feature Name]
### Goal
[Single sentence describing the outcome]
### Success Criteria
- [ ] Criterion 1: [Measurable outcome]
- [ ] Criterion 2: [Measurable outcome]
### Task Dependency Graph
| Task ID | Name | depends_on | Files (owned) | Agent Role |
|---------|------|------------|----------------|------------|
| T1 | [Task name] | [] | [file paths] | [role] |
| T2 | [Task name] | [T1] | [file paths] | [role] |
| T3 | [Task name] | [] | [file paths] | [role] |
| T4 | [Task name] | [T1, T3] | [file paths] | [role] |
### Execution Strategy
- [ ] **Swarm Waves** (accuracy-first: launch unblocked tasks per wave)
- [ ] **Super Swarms** (speed-first: launch all tasks, resolve conflicts after)
### Task Details
#### T1: [Name]
- **What**: [specific actions]
- **Files to create/modify**: [full paths]
- **Interface contracts**: [what this task exposes for dependent tasks]
- **Acceptance criteria**: [how to verify done]
- **Implementation steps**:
1. [Step]
2. [Step]
#### T2: [Name]
- **What**: [specific actions]
- **Depends on**: T1 (needs [specific output/file from T1])
- **Files to create/modify**: [full paths]
- **Acceptance criteria**: [how to verify done]
- **Implementation steps**:
1. [Step]
2. [Step]
### Shared Interfaces
[Document any files, types, or contracts that multiple tasks depend on.
Define these before launching parallel work.]
### Conflict Resolution
[If using Super Swarms: which agent's output takes priority for shared files?
What's the merge strategy?]
### Risks & Mitigations
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| Merge conflict on shared types | Medium | Medium | Define interfaces upfront |---
Incremental Implementation Pattern
Build in verifiable increments — identify the smallest testable unit, implement and verify, then expand scope.
Example — User Authentication feature:
| Increment | What to Build | Verify By |
|---|---|---|
| 1 | Basic login form (no backend) | Form renders, submits |
| 2 | API endpoint (hardcoded response) | Returns 200 |
| 3 | Database integration | Reads/writes real users |
| 4 | Session management | Session persists across requests |
| 5 | Password reset flow | Full reset cycle works |
---
WIP Limits Reference
WIP limits restrict maximum items in each workflow stage. Benefits: makes blockers visible, reduces context switching, often increases throughput.
Recommended Limits
| Level | Limit | Rationale |
|---|---|---|
| Individual | 2-3 tasks | Minimize context switching |
| Team (stories) | Team size + 1 | Allow pairing without blocking |
| In Progress column | 3-5 items | Force completion before starting |
| Code Review | 2-3 PRs | Prevent review bottleneck |
Setting WIP Limits
1. Start with team size + 1 2. Monitor for 2-4 weeks 3. If limits never reached → lower them 4. If constantly blocked → investigate bottleneck, don't raise limit 5. Adjust based on actual flow data
When to Violate (thoughtfully)
- Emergency production fix
- Unblocking another team
- Document the exception and review in retro
---
Navigation
- Back to SKILL.md
- Session Patterns
Remote Async-First Workflows
Operational reference for running async-first development workflows — documentation-driven development, RFC/ADR decision processes, async standups, distributed team coordination, meeting minimization, and async retrospectives.
Freshness anchor: January 2026 — aligned with current tooling: Linear, Notion, Loom, Slack workflows, GitHub Discussions, and async-first practices from GitLab, Doist, and Basecamp.
---
Async vs Sync Decision Tree
Does this need to happen in real-time?
├── YES (requires sync)
│ ├── Incident response / live debugging
│ ├── Sensitive feedback (performance reviews, conflict resolution)
│ ├── Complex negotiation with high ambiguity
│ ├── Team bonding / social connection
│ └── Brainstorming requiring rapid iteration (timebox to 30 min)
└── NO (default to async)
├── Status updates → Written standup
├── Code review → PR comments
├── Design decisions → RFC document
├── Knowledge sharing → Loom video or written doc
├── Sprint planning → Pre-populated board + async review
├── Retrospective → Async collection + optional short sync discussion
└── Announcements → Written post with Q&A threadMeeting Necessity Checklist
Before scheduling a meeting, verify:
- [ ] Could this be a document? (default: yes)
- [ ] Could this be a Loom video? (for demos, walkthroughs)
- [ ] Could this be a Slack thread? (for quick decisions)
- [ ] Does this require back-and-forth discussion that would take >10 async messages?
- [ ] Are all required participants in overlapping timezone hours?
- [ ] Is the outcome clearly defined (not "discuss X")?
If all answers favor async, do not schedule a meeting.
---
Documentation-Driven Development
Core Principle
Write the document before writing the code. If you can't explain it in writing, you don't understand it well enough to build it.
Document-First Workflow
1. Write the RFC/design doc
└── Describe: problem, proposed solution, alternatives, risks
2. Share for async review
└── Set review deadline (48-72 hours)
└── Tag specific reviewers, not "everyone"
3. Collect feedback
└── Reviewers comment directly on the document
└── Author responds to all comments
4. Decide
└── Author summarizes decision and rationale
└── Escalate unresolved disagreements to a short sync call
5. Build
└── Reference the RFC in all related PRs
└── Update the doc if implementation deviates
6. Archive
└── Mark as "Implemented" with link to final PR/deploymentRFC (Request for Comments) Template
# RFC: [Title]
**Author:** [name]
**Status:** Draft | In Review | Accepted | Rejected | Implemented
**Created:** 2026-01-15
**Review deadline:** 2026-01-18
**Reviewers:** @person1, @person2, @person3
## Problem Statement
- [1-3 bullet points describing the problem]
- [Quantify impact if possible]
## Proposed Solution
- [Description of the approach]
- [Key design decisions and their rationale]
## Alternatives Considered
| Alternative | Pros | Cons | Why not chosen |
|---|---|---|---|
| [Option A] | [pros] | [cons] | [reason] |
| [Option B] | [pros] | [cons] | [reason] |
## Technical Design
- [Architecture diagram or description]
- [API contracts or data models]
- [Migration plan if applicable]
## Risks and Mitigations
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| [risk] | [H/M/L] | [H/M/L] | [plan] |
## Rollout Plan
- [ ] Phase 1: [what, when]
- [ ] Phase 2: [what, when]
- [ ] Rollback plan: [how]
## Open Questions
- [ ] [Question 1] — @person to answer
- [ ] [Question 2] — needs investigation
## Decision Log
- [Date]: [Decision made and rationale]ADR (Architecture Decision Record) Template
# ADR-NNN: [Short title of decision]
**Status:** Proposed | Accepted | Deprecated | Superseded by ADR-XXX
**Date:** 2026-01-15
**Deciders:** [names]
## Context
- [What forces are at play]
- [Why a decision is needed now]
## Decision
- [What we decided]
## Consequences
- [Positive outcomes]
- [Negative outcomes and tradeoffs]
- [Follow-up actions needed]ADR Management Rules
- [ ] ADRs are numbered sequentially (ADR-001, ADR-002, ...)
- [ ] ADRs are stored in
docs/adr/ordocs/decisions/ - [ ] ADRs are never deleted — superseded ADRs link to the replacement
- [ ] ADRs are referenced in related PRs and code comments
- [ ] Quarterly review of recent ADRs to verify decisions still hold
---
Async Standup Patterns
Written Standup (Slack/Linear)
Schedule: Post by team's latest timezone 10:00 AM local time.
## Standup — [Name] — 2026-01-15
**Completed yesterday:**
- [PROJ-123] Finished API endpoint for user search
- Code review on [PROJ-145]
**Focus today:**
- [PROJ-130] Implement pagination for search results
- Pair with @sarah on auth integration (scheduled 2pm UTC)
**Blockers:**
- Waiting on design review for [PROJ-135] — @designer ETA?
**FYI:**
- Out tomorrow afternoon (dentist appointment)Loom Video Standup
Use when:
- Demonstrating visual work (UI, design, dashboards)
- Explaining complex technical context
- Team prefers face-to-face but timezones prevent it
Format:
- Maximum 3 minutes per person
- Screen share optional (show code, UI, or board)
- Post in dedicated Slack channel with timestamp summary
- Viewers watch at 1.5x speed, comment in thread
Standup Bot Configuration
| Tool | Setup | Features |
|---|---|---|
| Geekbot (Slack) | /geekbot setup | Scheduled prompts, thread collection, analytics |
| Linear Standup | Built-in | Pulls from ticket activity, auto-generates |
| Slack Workflow | Workflow Builder | Custom questions, scheduled triggers |
| Notion Standup DB | Template database | Structured entries, rollup views |
Async Standup Rules
- [ ] Post window defined (e.g., within first 2 hours of your workday)
- [ ] Blockers get immediate attention (don't wait for someone to read)
- [ ] Tag specific people when you need something from them
- [ ] Link to tickets/PRs rather than describing them
- [ ] Read and react to teammates' standups within 4 hours
- [ ] Weekly summary auto-generated from daily posts
---
Timezone-Distributed Coordination
Overlap Windows Strategy
Team across US Pacific, US Eastern, UK, India:
PST: 06:00 ████████████████████ 22:00
EST: 09:00 ████████████████████ 01:00
GMT: 14:00 ████████████████████ 06:00
IST: 19:30 ████████████████████ 11:30
Overlap (all four): NONE
Overlap (PST+EST+GMT): 14:00-17:00 GMT (06:00-09:00 PST)
Overlap (EST+GMT+IST): 14:00-17:30 GMT (19:30-23:00 IST)Coordination Patterns by Timezone Gap
| Gap | Pattern | Example |
|---|---|---|
| 0-3 hours | Near-sync, overlap meetings ok | US East + US West |
| 4-6 hours | Async-default, 1-2 overlap hours for sync | US East + UK |
| 7-10 hours | Async-first, intentional handoff docs | US West + India |
| 11+ hours | Follow-the-sun, relay-style handoff | US West + Australia |
Handoff Document Template
## End-of-Day Handoff — [Name] — 2026-01-15
**What I worked on:**
- [PROJ-123] — Status: In Review, PR #456
- [PROJ-130] — Status: Blocked (see below)
**Needs attention from next timezone:**
- PR #456 needs review — context: [brief explanation]
- [PROJ-130] blocked on API response from third-party — if response arrives, proceed with [specific instructions]
**Decisions made today:**
- Chose approach B for caching (see RFC-015 comment thread)
**Don't touch:**
- [PROJ-140] — waiting for design, do not start implementationDistributed Team Checklist
- [ ] Core hours defined for each timezone pairing (not one global core hour)
- [ ] No meetings outside anyone's 8am-6pm local time
- [ ] Meeting recordings posted with timestamps for key decisions
- [ ] Shared calendar shows each person's working hours
- [ ] Decision-making defaults to async with 48h response window
- [ ] Urgent escalation path defined (and rarely used)
---
Tool Configuration
Communication Layer Map
| Purpose | Tool | Async/Sync | Response Expectation |
|---|---|---|---|
| Quick questions | Slack (channel) | Async | Within 4 hours |
| Urgent/incident | Slack (DM or @channel) | Near-sync | Within 30 min |
| Decisions | RFC/ADR (Notion, GitHub) | Async | Within 48-72 hours |
| Status updates | Standup bot (Geekbot, Slack) | Async | Daily |
| Deep discussion | Document comments (Notion, Google Docs) | Async | Within 48 hours |
| Code review | PR comments (GitHub, GitLab) | Async | Within 24 hours |
| Demo / walkthrough | Loom video | Async | Watch within 24 hours |
| Brainstorming | Sync call or FigJam/Miro | Sync | Scheduled |
| Social / bonding | Optional video call | Sync | Voluntary |
Slack Configuration for Async
- [ ] Channel naming convention:
#team-[name],#proj-[name],#standup-[name] - [ ] Notification schedule set per timezone (no pings outside work hours)
- [ ] Threads used for all replies (not top-level messages)
- [ ] Important decisions summarized in a pinned message or doc (not buried in Slack)
- [ ] "Do not disturb" hours configured for each timezone
- [ ] Weekly digest of key decisions posted to
#team-[name]-decisions
Linear/Jira Async Workflow
- [ ] Ticket status changes trigger Slack notifications to project channel
- [ ] Comments on tickets preferred over Slack for project discussion (searchable, permanent)
- [ ] Sprint board visible to all (no access gatekeeping)
- [ ] Automated weekly velocity/burndown report posted to channel
---
Async Retrospectives
Async Retro Process
Day 1-3: Collection Phase
├── Retro board open (Miro, EasyRetro, Notion)
├── Team members add cards at their own pace
├── Categories: What went well | What didn't | Ideas for improvement
└── Encouraged: 3+ cards per person minimum
Day 4: Voting Phase (async)
├── Each person gets 3-5 votes
├── Vote on cards across all categories
└── Deadline: end of day
Day 5: Discussion + Actions
├── Option A: Short sync call (30 min) to discuss top 3 voted items
├── Option B: Facilitator writes summary, proposes actions in document
│ └── Team has 24h to comment/adjust
└── Output: Max 3 action items with owners and due datesWhen to Use Sync vs Async Retro
| Factor | Async Retro | Sync Retro |
|---|---|---|
| Timezone spread | >6 hours | <4 hours |
| Team size | >8 people | 3-7 people |
| Psychological safety | High (established team) | Building (new team) |
| Sprint outcome | Normal | After incident or major failure |
| Team energy | Meeting fatigue is high | Team wants face time |
---
Meeting Minimization Strategies
Meeting Audit Process
1. List all recurring meetings for the team
2. For each meeting, answer:
├── What decision or outcome does this produce?
├── Could this outcome be achieved async?
├── Who actually needs to attend (vs who is invited)?
└── What is the cost? (attendees × duration × hourly rate)
3. Categorize:
├── KEEP: Clear outcome, requires sync, right attendees
├── SHORTEN: Outcome ok, but meeting is too long
├── CONVERT: Can be done async (document, Loom, Slack)
└── KILL: No clear outcome, habit meeting
4. Implement changes, review in 4 weeksMeeting Replacement Patterns
| Meeting Type | Async Replacement |
|---|---|
| Status update | Written standup or dashboard |
| Knowledge share | Loom video or written guide |
| Design review | RFC document with comment period |
| Sprint planning | Pre-populated board + async confirmation |
| Demo | Recorded Loom + feedback form |
| All-hands | Written update + AMA thread |
| 1:1 (some) | Async check-in document + sync when needed |
Meeting Rules for Async-First Teams
- [ ] Default meeting length: 25 minutes (not 30), 50 minutes (not 60)
- [ ] Every meeting has an agenda shared 24h in advance
- [ ] No agenda, no meeting (attendees can decline)
- [ ] Meetings produce a written summary within 1 hour (not 1 day)
- [ ] Recordings available for all meetings (async participants)
- [ ] "No meeting" days: Tuesday and Thursday (or team's choice)
- [ ] Meeting-free weeks once per quarter (deep work focus)
---
Anti-Patterns
| Anti-Pattern | Problem | Fix |
|---|---|---|
| "Quick call" for every question | Interrupts deep work, timezone-excluding | Post in Slack with 4-hour response expectation |
| No written record of sync meetings | Decisions lost, absent members uninformed | Written summary required within 1 hour of every meeting |
| Slack as source of truth | Important context buried in scrollback | Decisions go in docs/tickets; Slack is ephemeral |
| Async but no response SLA | Messages ignored for days, async breaks down | Define and enforce response windows per channel type |
| Forcing sync across 12+ hour timezone gap | Unsustainable for someone (always early/late) | Rotate meeting times or go fully async |
| Document everything, read nothing | Information overload, nobody reads | Summarize, use structured templates, limit length |
| No social connection | Team feels isolated, trust erodes | Optional social calls, virtual coffee, team channels |
| Async standup becomes a chore | Low-effort copy-paste updates | Rotate format, add "FYI" and "appreciation" sections |
| Over-indexing on tools | Tool switching overhead, context fragmentation | Consolidate: one project tool, one docs tool, one chat tool |
| No escalation path for urgent items | Async response times block critical work | Define "urgent" criteria and direct-message protocol |
---
Cross-References
dev-workflow-planning/references/agile-ceremony-patterns.md— ceremony formats including async variantsdev-workflow-planning/references/technical-debt-management.md— tracking debt decisions via ADRsstartup-hiring-and-management/references/remote-team-management.md— broader remote team managementstartup-hiring-and-management/references/culture-and-values-design.md— async culture designstartup-hiring-and-management/references/founder-delegation-patterns.md— delegation in async environments
Session Patterns
Patterns for managing multi-session projects with a coding assistant.
---
The Session Lifecycle
SESSION START
1. Load context (project memory, previous session notes)
2. Review current plan status
3. Identify today's goal
ACTIVE WORK
- Execute plan steps
- Track progress visibly
- Checkpoint at milestones
SESSION END
1. Summarize completed work
2. Document decisions made
3. Capture context for next session
4. Update project memory if needed---
Pattern 1: Context Handoff
Problem: The assistant loses context between sessions. How do you maintain continuity?
Solution: Use structured session summaries stored in a project memory file (e.g., CLAUDE.md, AGENTS.md) or a dedicated session-notes.md.
## Session Summary: [Date]
### Completed
- [x] Implemented user authentication API
- [x] Added JWT token generation
- [x] Created login/logout endpoints
### In Progress
- [ ] Frontend login form (50% done, form exists, validation pending)
### Decisions Made
1. Using JWT over sessions for stateless auth
2. Token expiry set to 24 hours
3. Refresh tokens stored in httpOnly cookies
### Blockers
- Need design review for password reset flow
### Next Session: Start Here
1. Complete login form validation
2. Add error handling for auth failures
3. Implement "remember me" checkbox
### Files Modified
- src/auth/jwt.ts (new)
- src/api/routes/auth.ts (new)
- src/middleware/authenticate.ts (new)---
Pattern 2: Checkpoint Recovery
Problem: Session interrupted mid-task. How do you resume safely?
Solution: Frequent micro-checkpoints during complex work.
/checkpoint [after each significant action]
CHECKPOINT FORMAT:
================
Time: [timestamp]
Last Action: [what was just completed]
Current State: [what exists now]
Next Action: [what comes next]
Rollback Point: [how to undo if needed]
================
Example:
================
Time: 14:32
Last Action: Created database migration for users table
Current State: Migration file exists, not yet applied
Next Action: Run migration, then create User model
Rollback Point: Delete migration file, no DB changes yet
================---
Pattern 3: Multi-Day Project Tracking
Problem: Large projects span many sessions. How do you track overall progress?
Solution: Maintain a project status file updated each session.
# Project: [Name]
## Overall Progress
Progress: 40% complete
## Milestones
- [x] M1: Project setup and scaffolding (Day 1)
- [x] M2: Database schema and models (Day 2)
- [CURRENT] M3: API endpoints (Day 3-4)
- [ ] M4: Frontend integration (Day 5-6)
- [ ] M5: Testing and polish (Day 7)
## Session Log
| Date | Focus | Outcome |
|------|-------|---------|
| Dec 1 | Setup | Project scaffolded, deps installed |
| Dec 2 | Models | 5 models created, migrations run |
| Dec 3 | API | 3/8 endpoints done |
## Current Sprint
Focus: Complete API endpoints
Tasks:
- [x] GET /users
- [x] POST /users
- [x] GET /users/:id
- [ ] PUT /users/:id
- [ ] DELETE /users/:id
- [ ] GET /posts
- [ ] POST /posts
- [ ] GET /posts/:id
## Blockers Log
| Date | Blocker | Resolution |
|------|---------|------------|
| Dec 2 | DB connection issues | Fixed .env config |---
Pattern 4: Decision Log
Problem: Forgetting why decisions were made leads to revisiting them.
Solution: Maintain an append-only decision log.
# Decision Log
## DEC-001: Authentication Method
**Date**: 2024-12-01
**Decision**: Use JWT tokens over server-side sessions
**Context**: Building stateless API for mobile app
**Alternatives Considered**:
- Sessions: Simpler but requires sticky sessions
- OAuth only: Too complex for MVP
**Rationale**: JWT allows horizontal scaling, mobile-friendly
**Consequences**: Need token refresh logic, secure storage on client
## DEC-002: Database Choice
**Date**: 2024-12-01
**Decision**: PostgreSQL over MongoDB
**Context**: Relational data with complex queries needed
**Rationale**: Strong consistency, better for financial data
**Consequences**: Need to design schema upfront
## DEC-003: [Next Decision]
...---
Pattern 5: Context Window Management
Problem: Long sessions fill context window, degrading performance.
Solution: If your platform supports clearing/compacting context, use it intentionally with preserved context.
CONTEXT MANAGEMENT WORKFLOW:
1. Before clearing, extract critical context:
/summarize -> Save to session-notes.md
2. Clear context:
/clear
3. Reload essential context:
"Read project memory and session-notes.md, then continue with [task]"
WHEN TO CLEAR:
- Switching to unrelated task
- After completing major milestone
- When responses slow down
- After ~50+ back-and-forth messages
WHAT TO PRESERVE:
- Current plan and progress
- Recent decisions
- Active file paths
- Uncommitted changes---
Pattern 6: Parallel Workstreams
Problem: Multiple features in progress simultaneously.
Solution: Track workstreams separately with clear boundaries.
# Active Workstreams
## Workstream A: Authentication
Status: [YELLOW] In Progress (70%)
Branch: feature/auth
Last Updated: Dec 3
Next Action: Implement password reset
## Workstream B: Dashboard UI
Status: [GREEN] Ready for Review
Branch: feature/dashboard
Last Updated: Dec 2
Next Action: Awaiting design approval
## Workstream C: API Rate Limiting
Status: [RED] Blocked
Branch: feature/rate-limit
Blocker: Need Redis setup in staging
Next Action: Wait for DevOps
---
## Today's Focus: Workstream A
[Detailed tasks for current session]---
Anti-Patterns to Avoid
1. Context Hoarding
Bad: Never clearing context, hoping the assistant remembers everything Good: Regular summarize -> clear -> reload cycles
2. No Checkpoints
Bad: Working for hours without saving progress Good: Checkpoint after each completed step
3. Vague Handoffs
Bad: "Continue where we left off" Good: "Read session-notes.md, we're on Step 3 of the auth implementation"
4. Decision Amnesia
Bad: Rediscussing the same choices each session Good: Reference decision log: "Per DEC-001, we're using JWT"
---
Quick Reference Commands
/session-start [project] -> Load context, show status
/checkpoint -> Save current progress
/summarize -> Generate session summary
/clear -> Reset context (after summarize!)
/status -> Show project progress---
---
Lessons from Production (Feb 2026)
Evidence from real coding sessions showing what works and what fails at scale.
Context Exhaustion Is the Dominant Constraint
A single session covering 5 workstreams (i18n, auth, products, retention, docs) ran to 121MB / 33 context continuations. Each continuation lost detail from prior context, causing repeated investigation of known failures, redundant file reads, and solutions contradicting earlier decisions.
Rule: One feature per session. If scope creep appears during execution, checkpoint and start a fresh session for the new scope.
| Session Style | Messages | Context Continuations | Errors | Outcome |
|---|---|---|---|---|
| Focused (chart gating) | 5 | 0 | 0 | Clean, zero rework |
| Medium (crush UI + BirthTimeInput) | 8 | 0 | 1 rewrite | Good after UX audit |
| Sprawling (3D + retention + quota + crush + i18n + docs) | 38 | 3+ | Multiple | Several errors, context loss |
| Massive (full redesign implementation) | 100+ | 33 | Many | Completed but costly |
Pre-Written Plans Eliminate Rework
Sessions with pre-written, numbered step plans had near-zero rework:
- Docs actualization (11 steps, 10 files): zero rework, linear execution
- i18n refactor (5 phases, 7 tasks): systematic, minimal rework
Sessions without plans had 1-3 rewrites (e.g., BirthTimeInput: v1 → v2 after UX skill audit).
Rule: For any task touching 3+ files, write a plan first with: 1. Numbered steps with specific file paths 2. Verification criteria per step 3. Dependencies between steps
Checkpoint Protocol for Long Sessions
If a session must span multiple features: 1. After completing each feature, summarize: what changed, what was verified, what's pending 2. Commit completed work before starting next feature 3. If context starts feeling thin (repeating file reads, losing track of changes), start a new session 4. Transfer context via a written summary in the plan file, not by relying on conversation history
Proactive Plan-Doc Reading
Before implementing any feature step: 1. Check if a plan/spec doc exists for the current feature. 2. Read the relevant section of the plan before writing code. 3. Do not rely on user to paste plan context — proactively find and load it.
This prevents building features that contradict the agreed plan or miss requirements documented elsewhere.
---
Navigation
- Back to SKILL.md
- Planning Templates
Session Scope Budgeting
Use this reference to keep long-running execution sessions reliable.
Core Rule
One session should optimize for shipping one bounded outcome, not starting many partially complete streams.
Scope Budget Model
S: session scope budget (deliverables)- Default
S = 1..2deliverables - If incoming tasks exceed
S, split into follow-up milestones
Drift Signals
Rescope when you detect:
- repeated re-reading of same files without new decisions
- increasing nonzero command retries without new evidence
- competing priorities across more than 3 domains
Milestone Pattern
1. Discovery + plan 2. Implementation (single domain) 3. Verification + fixups 4. Handoff
Enforcement
At each milestone, produce checkpoint record with:
- done
- blocked
- evidence
- next bounded step
Technical Debt Management
Operational reference for identifying, categorizing, tracking, prioritizing, and systematically reducing technical debt. Covers the debt quadrant model, detection patterns, sprint allocation strategies, and stakeholder communication.
Freshness anchor: January 2026 — aligned with current SonarQube 10.x metrics, CodeClimate, and industry technical debt management practices.
---
Technical Debt Quadrant
| Deliberate | Accidental | |
|---|---|---|
| Reckless | "We don't have time for design" — shipping knowingly bad code under pressure | "What's a design pattern?" — shipping bad code due to lack of knowledge |
| Prudent | "We must ship now and deal with consequences" — conscious tradeoff with payback plan | "Now we know how we should have done it" — learning-driven debt discovered after implementation |
Quadrant Decision Guide
Was the debt introduced knowingly?
├── YES (Deliberate)
│ ├── Was there a payback plan?
│ │ ├── YES → Prudent Deliberate (acceptable, track and schedule payback)
│ │ └── NO → Reckless Deliberate (escalate, requires immediate planning)
│ └── Document the tradeoff in ADR
└── NO (Accidental)
├── Was the team skilled?
│ ├── YES → Prudent Accidental (learning-driven, normal, refactor when revisiting)
│ └── NO → Reckless Accidental (invest in training, pair programming)
└── Document the discovery and remediation approach---
Debt Identification Patterns
Code-Level Indicators
| Signal | Detection Method | Tool |
|---|---|---|
| High cyclomatic complexity | Static analysis | SonarQube, CodeClimate, ESLint (complexity rule) |
| Large files / long methods | Line count thresholds | wc -l, IDE warnings, custom linting |
| Code duplication | Duplicate detection | SonarQube, jscpd, PMD CPD |
| Outdated dependencies | Dependency age analysis | Renovate dashboard, npm outdated, Dependabot |
| Low test coverage | Coverage reporting | Istanbul/c8, pytest-cov, JaCoCo |
| TODO/FIXME/HACK comments | Pattern search | `rg "TODO\ |
| Inconsistent error handling | Code review, linting | Custom ESLint/Clippy rules |
| Dead code | Coverage + static analysis | Knip (JS), vulture (Python), dead_code_checker |
Architecture-Level Indicators
| Signal | How to detect |
|---|---|
| Circular dependencies | Dependency graph analysis (Madge, deptrac) |
| God services / modules | Fan-in/fan-out metrics, module size |
| Shared mutable state | Code review, race condition reports |
| Tight coupling | Change coupling analysis (which files always change together) |
| Missing abstractions | Same logic duplicated across services |
| Schema debt | Migration count, workaround columns, JSON blob columns |
Process-Level Indicators
| Signal | Metric |
|---|---|
| Increasing deploy time | Track CI/CD pipeline duration over time |
| Rising bug rate | Bug count per sprint trending up |
| Onboarding difficulty | Time for new dev to first meaningful PR |
| Fear of change | Team avoids touching certain areas |
| Incident repeat rate | Same root cause appearing in multiple incidents |
Automated Detection Checklist
- [ ] SonarQube / CodeClimate configured with quality gate
- [ ] Dependency freshness dashboard (Renovate, Dependabot)
- [ ] Test coverage tracked and trending visible
- [ ] CI pipeline duration tracked weekly
- [ ] Code complexity metrics in PR checks
- [ ] Knip / tree-shaking for dead code detection
- [ ] Architecture fitness functions (dependency rules) in CI
---
Tracking Systems
Tagging Approach
Label: tech-debt
Sub-labels:
- tech-debt/code-quality
- tech-debt/dependencies
- tech-debt/testing
- tech-debt/architecture
- tech-debt/infrastructure
- tech-debt/documentation
Priority:
- P1: Actively causing bugs or incidents
- P2: Slowing down feature development measurably
- P3: Will become P2 within 2-3 months
- P4: Improvement opportunity, no urgencyTech Debt Ticket Template
## Tech Debt: [Title]
**Category:** [code-quality | dependencies | testing | architecture | infrastructure]
**Quadrant:** [Prudent Deliberate | Reckless Deliberate | Prudent Accidental | Reckless Accidental]
**Priority:** [P1 | P2 | P3 | P4]
### Current State
- What exists today and why it's a problem
### Impact
- How this debt affects velocity / quality / reliability
- Quantify if possible (e.g., "adds 10 min to every deploy")
### Proposed Solution
- What the fix looks like
- Estimated effort: [S | M | L | XL]
### Acceptance Criteria
- [ ] [Specific measurable outcome]
- [ ] [Tests passing, metrics improved, etc.]
### Context
- When was this debt introduced and why
- Link to original ADR/PR if available
- Review date: [date to re-evaluate priority]ADR (Architecture Decision Record) for Debt
# ADR-NNN: [Decision that creates known debt]
**Status:** Accepted
**Date:** 2026-01-15
**Deciders:** [names]
## Context
[Why we're making this tradeoff]
## Decision
[What we decided to do, knowing it creates debt]
## Debt Created
- [Specific debt item 1]
- [Specific debt item 2]
## Payback Plan
- [When and how we'll address each item]
- Review date: [specific date, max 3 months out]
## Consequences
- Positive: [immediate benefit]
- Negative: [ongoing cost until addressed]---
Sprint Allocation Strategies
Strategy Comparison
| Strategy | How it works | Best for | Risk |
|---|---|---|---|
| 20% Rule | Reserve 20% of sprint capacity for debt | Steady-state teams | Debt work gets deprioritized when under pressure |
| Debt Sprints | Dedicate entire sprint to debt every N sprints | Teams with accumulated large debt | Stakeholders resist "no feature" sprints |
| Boy Scout Rule | Leave code better than you found it | Ongoing, organic improvement | Only fixes debt in actively-changed areas |
| Tech Debt Thursday | One day per week dedicated to debt | Small teams, predictable schedule | Fragmented work, hard to tackle large items |
| Interleaving | Alternate: 1 debt story per 3 feature stories | Balanced teams | Requires discipline in story selection |
| Debt Budget | Quarterly hours budget allocated to debt | Enterprise, measurable | Budget may be cut first during crunch |
Decision Tree: Choosing a Strategy
How much debt has accumulated?
├── CRITICAL (causing incidents, blocking features)
│ └── Debt Sprint(s) — dedicate full capacity until stable
├── HIGH (measurably slowing velocity)
│ └── 30% allocation until under control, then drop to 20%
├── MODERATE (noticeable but manageable)
│ └── 20% Rule + Boy Scout Rule
└── LOW (well-maintained codebase)
└── Boy Scout Rule + occasional debt storiesMaking the 20% Rule Work
- [ ] Tech debt stories are estimated and planned like feature stories
- [ ] Sprint planning explicitly allocates debt capacity
- [ ] Debt stories have acceptance criteria (not "clean up X")
- [ ] Debt work counts toward velocity (same estimation system)
- [ ] Track debt resolution rate alongside feature delivery
- [ ] If debt allocation is skipped, carry forward (don't lose it)
---
Prioritization Framework
Impact-Effort Matrix for Tech Debt
High Impact
│
┌──────────┼──────────┐
│ DO NEXT │ DO FIRST │
│ (Plan) │ (Sprint) │
│ │ │
────┼──────────┼──────────┼────
│ │ │
│ CONSIDER │ QUICK WIN│
│(Backlog) │ (Now) │
│ │ │
└──────────┼──────────┘
│
Low Impact
High Effort Low EffortPrioritization Scoring
| Factor | Weight | Score (1-5) | Calculation |
|---|---|---|---|
| Incident frequency caused by this debt | 3x | [1-5] | weight × score |
| Developer time wasted per week | 3x | [1-5] | weight × score |
| Number of teams/services affected | 2x | [1-5] | weight × score |
| Risk of worsening if left untreated | 2x | [1-5] | weight × score |
| Effort to fix | 1x (inverse) | [1-5] | weight × (6 - score) |
| Total | Sum = priority score |
Urgency Signals (Promote to P1)
- Debt item was root cause in last 2 incidents
- Team velocity dropped >20% and debt is a contributing factor
- Security vulnerability in the debt area
- Regulatory compliance at risk
- Key team member leaving who understands the debt area
---
Stakeholder Communication
Framing Tech Debt for Non-Technical Stakeholders
| Instead of... | Say... |
|---|---|
| "We need to refactor the codebase" | "We need to reduce the time it takes to ship new features" |
| "Our code quality is bad" | "Each new feature is taking 30% longer than it should" |
| "We have technical debt" | "We've been making speed-over-quality tradeoffs that are now slowing us down" |
| "We need a debt sprint" | "We need to invest one sprint in reliability to prevent the incidents we've been having" |
| "The architecture is wrong" | "Our current design limits us to X; changing it enables Y" |
Debt Health Dashboard
| Metric | Target | Current | Trend |
|---|---|---|---|
| Dependency age (avg) | <6 months | [value] | [arrow] |
| Test coverage | >80% | [value]% | [arrow] |
| CI pipeline duration | <10 min | [value] min | [arrow] |
| Bug rate per sprint | <3 | [value] | [arrow] |
| Code complexity (avg) | <10 | [value] | [arrow] |
| Tech debt story throughput | ≥20% of velocity | [value]% | [arrow] |
| Incidents with debt root cause | 0 | [value] | [arrow] |
Reporting Cadence
| Audience | Frequency | Content |
|---|---|---|
| Engineering team | Every retro | Debt items resolved, new debt discovered |
| Engineering manager | Biweekly | Debt health metrics, allocation adherence |
| Product manager | Sprint planning | Debt items competing for capacity, impact framing |
| Leadership / CTO | Monthly / quarterly | Debt health dashboard, trend analysis, investment request |
---
Prevention Patterns
Preventing New Debt Accumulation
- [ ] Definition of Done includes code review, tests, and documentation
- [ ] PR template asks: "Does this introduce known technical debt? If yes, link the tracking ticket."
- [ ] Architecture Decision Records (ADRs) required for significant design choices
- [ ] Complexity limits enforced in CI (fail PR if cyclomatic complexity >15)
- [ ] Dependency update automation (Renovate/Dependabot) with auto-merge for patches
- [ ] Quarterly architecture review to catch drift early
- [ ] "Debt introduced" label added to PRs that knowingly add debt
Code Review Debt Gates
During code review, check:
├── New TODO/FIXME comments → Must link to a tracking ticket
├── Copied/pasted code blocks → Must extract to shared module or justify
├── Skipped tests with reason "will add later" → Must link to ticket with due date
├── Workaround for upstream bug → Must link to upstream issue
└── "Quick fix" in incident response → Must link to follow-up cleanup ticket---
Anti-Patterns
| Anti-Pattern | Problem | Fix |
|---|---|---|
| "We'll fix it later" without tracking | Debt is forgotten, accumulates silently | Every "later" gets a ticket, no exceptions |
| Big-bang rewrite | High risk, long freeze, often fails | Incremental refactoring, strangler fig pattern |
| Debt sprint every quarter | Too infrequent, debt piles up between | Continuous allocation (20% rule) |
| Only addressing code-level debt | Architecture and process debt ignored | Categorize all debt types, include in tracking |
| No stakeholder visibility | Debt budget cut first during crunch | Regular reporting with business impact framing |
| Treating all debt as equal priority | High-impact debt waits behind trivial items | Use prioritization scoring, not FIFO |
| Perfectionism disguised as debt reduction | Gold-plating instead of pragmatic fixes | Define acceptance criteria, scope the fix |
| Measuring only coverage numbers | Coverage without meaningful assertions | Track mutation testing score, not just line coverage |
| Individual heroics to fix debt | Unsustainable, burns out contributors | Systematic allocation, team responsibility |
---
Cross-References
dev-workflow-planning/references/agile-ceremony-patterns.md— allocating debt in sprint planningdev-workflow-planning/references/remote-async-workflows.md— async debt tracking and RFC processsoftware-clean-code-standard/references/code-complexity-metrics.md— measuring code qualityqa-refactoring/SKILL.md— refactoring strategies for debt reductionqa-refactoring/references/characterization-testing.md— testing legacy code before refactoringsoftware-architecture-design/SKILL.md— architecture-level debt decisions