.agent/skills/planner/SKILL.md
Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification
npx skillsauth add athility/krashitos-ai-os-portfolio GSD PlannerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Core responsibilities:
You are planning for ONE person (the user) and ONE implementer (the AI).
PLAN.md is NOT a document that gets transformed into a prompt. PLAN.md IS the prompt. It contains:
When planning a phase, you are writing the prompt that will execute it.
AI degrades when it perceives context pressure and enters "completion mode."
| Context Usage | Quality | AI State | |---------------|---------|----------| | 0-30% | PEAK | Thorough, comprehensive | | 30-50% | GOOD | Confident, solid work | | 50-70% | DEGRADING | Efficiency mode begins | | 70%+ | POOR | Rushed, minimal |
The rule: Stop BEFORE quality degrades. Plans should complete within ~50% context.
Aggressive atomicity: More plans, smaller scope, consistent quality. Each plan: 2-3 tasks max.
No enterprise process. No approval gates.
Plan -> Execute -> Ship -> Learn -> Repeat
Anti-enterprise patterns to avoid:
If it sounds like corporate PM theater, delete it.
Discovery is MANDATORY unless you can prove current context exists.
Pure internal work, existing patterns only
/research-phase, produces RESEARCH.mdDepth indicators:
For niche domains (3D, games, audio, shaders, ML), suggest /research-phase before /plan.
Every task has four required fields:
<files>Exact file paths created or modified.
src/app/api/auth/login/route.ts, prisma/schema.prisma<action>Specific implementation instructions, including what to avoid and WHY.
<verify>How to prove the task is complete.
npm test passes, curl -X POST /api/auth/login returns 200 with Set-Cookie header<done>Acceptance criteria — measurable state of completion.
| Type | Use For | Autonomy |
|------|---------|----------|
| auto | Everything AI can do independently | Fully autonomous |
| checkpoint:human-verify | Visual/functional verification | Pauses for user |
| checkpoint:decision | Implementation choices | Pauses for user |
| checkpoint:human-action | Truly unavoidable manual steps (rare) | Pauses for user |
Automation-first rule: If AI CAN do it via CLI/API, AI MUST do it. Checkpoints are for verification AFTER automation, not for manual work.
Split into multiple plans when:
3 tasks in a plan
5 files per task
| Task Pattern | Typical Context | |--------------|-----------------| | CRUD endpoint | 5-10% | | Component with state | 10-15% | | Integration with external API | 15-20% | | Complex business logic | 15-25% | | Database schema + migrations | 10-15% |
Prefer vertical slices: Each plan delivers a complete feature path.
✅ Vertical (preferred):
Plan 1: User registration (API + DB + validation)
Plan 2: User login (API + session + cookie)
❌ Horizontal (avoid):
Plan 1: All database models
Plan 2: All API endpoints
Plans in the same wave MUST NOT modify the same files.
If two plans need the same file:
---
phase: {N}
plan: {M}
wave: {W}
depends_on: []
files_modified: []
autonomous: true
user_setup: []
must_haves:
truths: []
artifacts: []
---
# Plan {N}.{M}: {Descriptive Name}
<objective>
{What this plan accomplishes}
Purpose: {Why this matters}
Output: {What artifacts will be created}
</objective>
<context>
Load for context:
- .gsd/SPEC.md
- .gsd/ARCHITECTURE.md (if exists)
- {relevant source files}
</context>
<tasks>
<task type="auto">
<name>{Clear task name}</name>
<files>{exact/file/paths.ext}</files>
<action>
{Specific instructions}
AVOID: {common mistake} because {reason}
</action>
<verify>{command or check}</verify>
<done>{measurable criteria}</done>
</task>
</tasks>
<verification>
After all tasks, verify:
- [ ] {Must-have 1}
- [ ] {Must-have 2}
</verification>
<success_criteria>
- [ ] All tasks verified
- [ ] Must-haves confirmed
</success_criteria>
| Field | Required | Purpose |
|-------|----------|---------|
| phase | Yes | Phase number |
| plan | Yes | Plan number within phase |
| wave | Yes | Execution wave (1, 2, 3...) |
| depends_on | Yes | Plan IDs this plan requires |
| files_modified | Yes | Files this plan touches |
| autonomous | Yes | true if no checkpoints |
| user_setup | No | Human-required setup items |
| must_haves | Yes | Goal-backward verification |
When external services involved:
user_setup:
- service: stripe
why: "Payment processing"
env_vars:
- name: STRIPE_SECRET_KEY
source: "Stripe Dashboard -> Developers -> API keys"
dashboard_config:
- task: "Create webhook endpoint"
location: "Stripe Dashboard -> Developers -> Webhooks"
Only include what AI literally cannot do (account creation, secret retrieval).
Forward planning asks: "What should we build?" Goal-backward planning asks: "What must be TRUE for the goal to be achieved?"
Forward planning produces tasks. Goal-backward planning produces requirements that tasks must satisfy.
must_haves:
truths:
- "User can log in with valid credentials"
- "Invalid credentials are rejected with 401"
artifacts:
- "src/app/api/auth/login/route.ts exists"
- "JWT cookie is httpOnly"
key_links:
- "Login endpoint validates against User table"
Detect TDD fit when:
---
phase: {N}
plan: {M}
type: tdd
wave: {W}
---
# TDD Plan: {Feature}
## Red Phase
<task type="auto">
<name>Write failing tests</name>
<files>tests/{feature}.test.ts</files>
<action>Write tests for: {behavior}</action>
<verify>npm test shows RED (failing)</verify>
<done>Tests written, all failing</done>
</task>
## Green Phase
<task type="auto">
<name>Implement to pass tests</name>
<files>src/{feature}.ts</files>
<action>Minimal implementation to pass tests</action>
<verify>npm test shows GREEN</verify>
<done>All tests passing</done>
</task>
## Refactor Phase
<task type="auto">
<name>Refactor with confidence</name>
<files>src/{feature}.ts</files>
<action>Improve code quality (tests protect)</action>
<verify>npm test still GREEN</verify>
<done>Code clean, tests passing</done>
</task>
When /verify finds gaps, create targeted fix plans:
gap_closure: true
Gap closure plans:
/execute {N} --gaps-onlyPLANS_CREATED: {N}
WAVE_STRUCTURE:
Wave 1: [plan-1, plan-2]
Wave 2: [plan-3]
FILES: [list of PLAN.md paths]
GAP_PLANS_CREATED: {N}
GAPS_ADDRESSED: [gap-ids]
FILES: [list of gap PLAN.md paths]
CHECKPOINT: {type}
QUESTION: {what needs user input}
OPTIONS: [choices if applicable]
<task type="auto">
<name>Add authentication</name>
<action>Implement auth</action>
<verify>???</verify>
</task>
<task type="auto">
<name>Create login endpoint with JWT</name>
<files>src/app/api/auth/login/route.ts</files>
<action>
POST endpoint accepting {email, password}.
Query User by email, compare password with bcrypt.
On match: create JWT with jose, set httpOnly cookie, return 200.
On mismatch: return 401.
</action>
<verify>curl -X POST localhost:3000/api/auth/login returns 200 + Set-Cookie</verify>
<done>Valid creds → 200 + cookie. Invalid → 401.</done>
</task>
# Bad: Every plan refs previous
context:
- .gsd/phases/1/01-SUMMARY.md # Plan 2 refs 1
- .gsd/phases/1/02-SUMMARY.md # Plan 3 refs 2
# Good: Only ref when truly needed
context:
- .gsd/SPEC.md
- src/types.ts # Actually needed
development
Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.
tools
Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.
tools
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
tools
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.