
plan-format
by XcluEzy7
AG4ONE - Unified agentic engineering workflow combining GWD methodology, Serena semantic analysis, and Ralph autonomous looping for next-generation AI pair programming across multiple platforms
SKILL.md
name: plan-format description: Reference for creating Claude-executable plans (PLAN.md)
Key insight: PLAN.md IS the executable prompt. It contains everything Claude needs to execute the phase, including objective, context references, tasks, verification, success criteria, and output specification.
<core_principle> A plan is Claude-executable when Claude can read the PLAN.md and immediately start implementing without asking clarifying questions.
If Claude has to guess, interpret, or make assumptions - the task is too vague. </core_principle>
---
phase: XX-name
plan: NN
type: execute
wave: N # Execution wave (1, 2, 3...). Pre-computed at plan time.
depends_on: [] # Plan IDs this plan requires (e.g., ["01-01"])
files_modified: [] # Files this plan modifies
autonomous: true # false if plan has checkpoints
---
| Field | Required | Purpose |
|---|---|---|
phase | Yes | Phase identifier (e.g., 01-foundation) |
plan | Yes | Plan number within phase (e.g., 01, 02) |
type | Yes | execute for standard plans, tdd for TDD plans |
wave | Yes | Execution wave number (1, 2, 3...). Pre-computed during planning. |
depends_on | Yes | Array of plan IDs this plan requires. |
files_modified | Yes | Files this plan touches. |
autonomous | Yes | true if no checkpoints, false if has checkpoints |
Wave is pre-computed: /gwd:plan-phase assigns wave numbers based on depends_on. /gwd:execute-phase reads wave directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed.
Checkpoint handling: Plans with autonomous: false require user interaction. They run in their assigned wave but pause at checkpoints.
<prompt_structure> Every PLAN.md follows this XML structure:
---
phase: XX-name
plan: NN
type: execute
wave: N
depends_on: []
files_modified: [path/to/file.ts]
autonomous: true
---
<objective>
[What and why]
Purpose: [...]
Output: [...]
</objective>
<execution_context>
@~/.claude/ag4one/workflows/execute-plan.md
@~/.claude/ag4one/templates/summary.md
[If checkpoints exist:]
@~/.claude/ag4one/references/checkpoints.md
</execution_context>
<context>
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
[Only if genuinely needed:]
@.planning/phases/XX-name/XX-YY-SUMMARY.md
@relevant/source/files.ts
</context>
<tasks>
<task type="auto">
<name>Task N: [Name]</name>
<files>[paths]</files>
<action>[what to do, what to avoid and WHY]</action>
<verify>[command/check]</verify>
<done>[criteria]</done>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<what-built>[what Claude automated]</what-built>
<how-to-verify>[numbered verification steps]</how-to-verify>
<resume-signal>[how to continue - "approved" or describe issues]</resume-signal>
</task>
<task type="checkpoint:decision" gate="blocking">
<decision>[what needs deciding]</decision>
<context>[why this matters]</context>
<options>
<option id="option-a"><name>[Name]</name><pros>[pros]</pros><cons>[cons]</cons></option>
<option id="option-b"><name>[Name]</name><pros>[pros]</pros><cons>[cons]</cons></option>
</options>
<resume-signal>[how to indicate choice]</resume-signal>
</task>
</tasks>
<verification>
[Overall phase checks]
</verification>
<success_criteria>
[Measurable completion]
</success_criteria>
<output>
[SUMMARY.md specification]
</output>
</prompt_structure>
<task_anatomy> Every task has four required fields:
Good: src/app/api/auth/login/route.ts, prisma/schema.prisma
Bad: "the auth files", "relevant components"
Be specific. If you don't know the file path, figure it out first.
Good: "Create POST endpoint that accepts {email, password}, validates using bcrypt against User table, returns JWT in httpOnly cookie with 15-min expiry. Use jose library (not jsonwebtoken - CommonJS issues with Next.js Edge runtime)."
Bad: "Add authentication", "Make login work"
Include: technology choices, data structures, behavior details, pitfalls to avoid.
Good:
npm testpassescurl -X POST /api/auth/loginreturns 200 with Set-Cookie header- Build completes without errors
Bad: "It works", "Looks good", "User can log in"
Must be executable - a command, a test, an observable behavior.
Good: "Valid credentials return 200 + JWT cookie, invalid credentials return 401"
Bad: "Authentication is complete"
Should be testable without subjective judgment. </task_anatomy>
<task_types>
Tasks have a type attribute that determines how they execute:
Structure:
<task type="auto">
<name>Task 3: 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 library, set as httpOnly cookie (15-min expiry). Return 200. On mismatch, return 401.</action>
<verify>curl -X POST localhost:3000/api/auth/login returns 200 with Set-Cookie header</verify>
<done>Valid credentials → 200 + cookie. Invalid → 401.</done>
</task>
Use for: Everything Claude can do independently (code, tests, builds, file operations).
Structure:
<task type="checkpoint:human-action" gate="blocking">
<action>[Unavoidable manual step - email link, 2FA code]</action>
<instructions>
[What Claude already automated]
[The ONE thing requiring human action]
</instructions>
<verification>[What Claude can check afterward]</verification>
<resume-signal>[How to continue]</resume-signal>
</task>
Use ONLY for: Email verification links, SMS 2FA codes, manual approvals with no API, 3D Secure payment flows.
Do NOT use for: Anything with a CLI (Vercel, Stripe, Upstash, Railway, GitHub), builds, tests, file creation, deployments.
Execution: Claude automates everything with CLI/API, stops only for truly unavoidable manual steps.
Structure:
<task type="checkpoint:human-verify" gate="blocking">
<what-built>Responsive dashboard layout</what-built>
<how-to-verify>
1. Run: npm run dev
2. Visit: http://localhost:3000/dashboard
3. Desktop (>1024px): Verify sidebar left, content right
4. Tablet (768px): Verify sidebar collapses to hamburger
5. Mobile (375px): Verify single column, bottom nav
6. Check: No layout shift, no horizontal scroll
</how-to-verify>
<resume-signal>Type "approved" or describe issues</resume-signal>
</task>
Use for: UI/UX verification, visual design checks, animation smoothness, accessibility testing.
Execution: Claude builds the feature, stops, provides testing instructions, waits for approval/feedback.
Structure:
<task type="checkpoint:decision" gate="blocking">
<decision>Select authentication provider</decision>
<context>We need user authentication. Three approaches with different tradeoffs:</context>
<options>
<option id="supabase">
<name>Supabase Auth</name>
<pros>Built-in with Supabase, generous free tier</pros>
<cons>Less customizable UI, tied to ecosystem</cons>
</option>
<option id="clerk">
<name>Clerk</name>
<pros>Beautiful pre-built UI, best DX</pros>
<cons>Paid after 10k MAU</cons>
</option>
<option id="nextauth">
<name>NextAuth.js</name>
<pros>Free, self-hosted, maximum control</pros>
<cons>More setup, you manage security</cons>
</option>
</options>
<resume-signal>Select: supabase, clerk, or nextauth</resume-signal>
</task>
Use for: Technology selection, architecture decisions, design choices, feature prioritization.
Execution: Claude presents options with balanced pros/cons, waits for decision, proceeds with chosen direction.
When to use checkpoints:
- Visual/UX verification (after Claude builds) →
checkpoint:human-verify - Implementation direction choice →
checkpoint:decision - Truly unavoidable manual actions (email links, 2FA) →
checkpoint:human-action(rare)
When NOT to use checkpoints:
- Anything with CLI/API (Claude automates it) →
type="auto" - Deployments (Vercel, Railway, Fly) →
type="auto"with CLI - Creating resources (Upstash, Stripe, GitHub) →
type="auto"with CLI/API - File operations, tests, builds →
type="auto"
Golden rule: If Claude CAN automate it, Claude MUST automate it.
Checkpoint impact on parallelization:
- Plans with checkpoints set
autonomous: falsein frontmatter - Non-autonomous plans execute after parallel wave or in main context
- Subagent pauses at checkpoint, returns to orchestrator
- Orchestrator presents checkpoint to user
- User responds
- Orchestrator resumes agent with
resume: agent_id
See ./checkpoints.md for comprehensive checkpoint guidance.
</task_types>
<tdd_plans> TDD work uses dedicated plans.
TDD features require 2-3 execution cycles (RED → GREEN → REFACTOR), each with file reads, test runs, and potential debugging. This is fundamentally heavier than standard tasks and would consume 50-60% of context if embedded in a multi-task plan.
When to create a TDD plan:
- Business logic with defined inputs/outputs
- API endpoints with request/response contracts
- Data transformations and parsing
- Validation rules
- Algorithms with testable behavior
When to use standard plans (skip TDD):
- UI layout and styling
- Configuration changes
- Glue code connecting existing components
- One-off scripts
Heuristic: Can you write expect(fn(input)).toBe(output) before writing fn?
→ Yes: Create a TDD plan (one feature per plan)
→ No: Use standard plan, add tests after if needed
See ./tdd.md for TDD plan structure and execution guidance.
</tdd_plans>
<context_references> Use @file references to load context for the prompt:
<context>
@.planning/PROJECT.md # Project vision
@.planning/ROADMAP.md # Phase structure
@.planning/STATE.md # Current position
# Only include prior SUMMARY if genuinely needed:
# - This plan imports types from prior plan
# - Prior plan made decision affecting this plan
# Independent plans need NO prior SUMMARY references.
@src/lib/db.ts # Existing database setup
@src/types/user.ts # Existing type definitions
</context>
Reference files that Claude needs to understand before implementing.
Anti-pattern: Reflexive chaining (02 refs 01, 03 refs 02). Only reference what you actually need. </context_references>
<verification_section> Overall phase verification (beyond individual task verification):
<verification>
Before declaring phase complete:
- [ ] `npm run build` succeeds without errors
- [ ] `npm test` passes all tests
- [ ] No TypeScript errors
- [ ] Feature works end-to-end manually
</verification>
</verification_section>
<success_criteria_section> Measurable criteria for phase completion:
<success_criteria>
- All tasks completed
- All verification checks pass
- No errors or warnings introduced
- JWT auth flow works end-to-end
- Protected routes redirect unauthenticated users
</success_criteria>
</success_criteria_section>
<output_section> Specify the SUMMARY.md structure:
<output>
After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
</output>
</output_section>
<specificity_levels> <too_vague>
<task type="auto">
<name>Task 1: Add authentication</name>
<files>???</files>
<action>Implement auth</action>
<verify>???</verify>
<done>Users can authenticate</done>
</task>
Claude: "How? What type? What library? Where?" </too_vague>
<just_right>
<task type="auto">
<name>Task 1: 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 library, set as httpOnly cookie (15-min expiry). Return 200. On mismatch, return 401. Use jose instead of jsonwebtoken (CommonJS issues with Edge).</action>
<verify>curl -X POST localhost:3000/api/auth/login -H "Content-Type: application/json" -d '{"email":"test@test.com","password":"test123"}' returns 200 with Set-Cookie header containing JWT</verify>
<done>Valid credentials → 200 + cookie. Invalid → 401. Missing fields → 400.</done>
</task>
Claude can implement this immediately. </just_right>
<note_on_tdd> TDD candidates get dedicated plans.
If email validation warrants TDD, create a TDD plan for it. See ./tdd.md for TDD plan structure.
</note_on_tdd>
<too_detailed> Writing the actual code in the plan. Trust Claude to implement from clear instructions. </too_detailed> </specificity_levels>
<anti_patterns> <vague_actions>
- "Set up the infrastructure"
- "Handle edge cases"
- "Make it production-ready"
- "Add proper error handling"
These require Claude to decide WHAT to do. Specify it. </vague_actions>
<unverifiable_completion>
- "It works correctly"
- "User experience is good"
- "Code is clean"
- "Tests pass" (which tests? do they exist?)
These require subjective judgment. Make it objective. </unverifiable_completion>
<missing_context>
- "Use the standard approach"
- "Follow best practices"
- "Like the other endpoints"
Claude doesn't know your standards. Be explicit. </missing_context> </anti_patterns>
<sizing_tasks> Good task size: 15-60 minutes of Claude work.
Too small: "Add import statement for bcrypt" (combine with related task) Just right: "Create login endpoint with JWT validation" (focused, specific) Too big: "Implement full authentication system" (split into multiple plans)
If a task takes multiple sessions, break it down. If a task is trivial, combine with related tasks.
Note on scope: If a phase has >3 tasks or spans multiple subsystems, split into multiple plans using the naming convention {phase}-{plan}-PLAN.md. See ./scope-estimation.md for guidance.
</sizing_tasks>
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です