원클릭으로
goat-plan
Use when starting a non-trivial implementation that needs structured task breakdown with progress tracking.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when starting a non-trivial implementation that needs structured task breakdown with progress tracking.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when a decision or analysis needs multi-lens critique to surface blind spots before shipping.
Use when diagnosing a bug, unexpected behaviour, system failure, or unfamiliar code that needs structured investigation.
Use when evaluating test coverage gaps, planning test strategy, or assessing testing risk for code changes.
Use when reviewing a diff, PR, or set of code changes, or auditing a codebase area for quality issues. Triggers: 'review this', 'code review', 'audit X', 'look at these changes'.
Use when assessing security implications of code changes, architecture decisions, or new features.
Use when you describe an outcome and need the right goat-* workflow chosen for you.
| name | goat-plan |
| description | Use when starting a non-trivial implementation that needs structured task breakdown with progress tracking. |
| goat-flow-skill-version | 1.11.0 |
Read .goat-flow/skill-docs/skill-preamble.md for shared conventions.
On full-depth, also read .goat-flow/skill-docs/skill-conventions.md.
Use when work needs milestone tracking. goat-plan manages gitignored coordination files in .goat-flow/plans/<active>/.
Use for milestones, replans, rescope, resume-from-plan. NOT this skill: tests → run them; debug → /goat-debug; review → /goat-review; security → /goat-security; gaps → /goat-qa; critique → /goat-critique; question → answer directly.
| Excuse | Reality |
|---|---|
| "Show milestones first, files later" | File-Write creates milestone artifacts immediately. Read-Only Analysis is for inline plans. |
| "Vague tasks are fine - implementer will figure it out" | Tasks without file paths, replacement text, and verification commands are not executable by a cold-start agent. Four recurrences of untickable checkboxes traced to vague tasks. |
| "Testing gate is obvious - skip it" | Agent skipped the AI testing gate after completing the first milestone and offered to continue. The gate caught what the agent missed. |
| "Bare task path means start implementing" | Path-only context is data, not delegation. Bare task paths must not update .active, milestone status, checkboxes, or code. |
Path-only guard runs first. If the user message is only a task/milestone path, or an ambiguous context phrase such as "look at this task directory" or "here's the task dir", choose Path-Only Intake / Read-Only Orientation. Read only minimal index/status files. Do NOT update .active, milestone status fields, task checkboxes, or code. If .active points elsewhere, mention it and offer to switch only on approval. Implementation requires "start", "implement", "resume", "mark in progress and begin", or "fix code". Plan-file writes require "update", "rewrite", "write", "create", or "fix" tied to the plan file. Before any write after an ambiguous path, checkpoint and stop.
Check for existing milestones first:
.goat-flow/plans/.active as an advisory local pointer (one-line file naming a subdir), not a setup invariant..active exists and names an existing subdir, scan only that subdir for milestone files..active is missing or names a missing subdir, treat as normal local churn. List top-level entries in .goat-flow/plans/ excluding archives, prefer dirs with recent M*.md files, ask which plan is current, and offer to write/update .active. Do NOT report a stale/missing .active as a setup failure.git log won't track them - check file modification dates instead..goat-flow/plans/ (e.g. milestones/, tasks/). Sibling-version subdirs hold deferred or completed work and are NOT scanned unless .active is missing or points nowhere. If found, note them.If starting fresh: identify what is being built, the riskiest part, kill criteria, and run the preamble's learning-loop retrieval for the target area.
Pick exactly one mode. Apply these signals in order - stop at the first that matches:
.goat-flow/plans/<active>/..goat-flow/plans/<active>/.If ambiguous, ask. Never silently pick.
Minimum viable input: What to build. Everything else can be inferred or asked.
CHECKPOINT (Path-Only Intake): "Mode: Path-Only Intake. Orientation summary for [path]: [status]. Active plan pointer: [state]. Next action needed from user."
CHECKPOINT (all other modes): "Mode: [Named-File Update | Read-Only Analysis | Small File-Write | File-Write]. Creating milestones for [feature]. Riskiest part: [risk]. Kill criteria: [criteria]. Proceeding to milestone breakdown."
Structure the work into milestones using these archetypes. Adapt the count to the project - small features might need 2, large ones might need 5+.
Spike-first rule: If uncertain about a library, API, performance characteristic, or integration point - that uncertainty goes in Milestone 1 as a spike, not Milestone 3 as a risk.
Do not drop a spike, intake, or kill criteria to satisfy milestone count, deadline pressure, or requests for less ceremony.
Objective, Tasks (risk-tagged checkboxes), Assumptions to validate, Exit criteria (binary pass/fail), Testing gate (static/contract + automated + manual + acceptance), Mid-implementation proof, Kill criteria, Depends on, Read first, Deferred (items intentionally cut with pointers; state explicitly if nothing deferred). Field details and examples: references/milestone-examples.md.
Tag every task within a milestone:
Ordering rule: All [RISKY] first, then [CORE], then [SAFE] within each milestone.
Structural check: If a milestone has no [RISKY] tasks but contains uncertainty, the plan is wrong and the milestone must be revised.
Every milestone testing gate includes a Static / Contract Check section (language-appropriate linters, type checkers, and static analysis that must pass before behavioural tests run - detect from project structure) plus Automated, Manual, and Acceptance sections. Manual testing gates are checkbox lists, not prose. Each item: one action + one expected result.
Good tasks are concrete actions with a target or exit criterion, not vague wishes. Each task should fit one coding session; split if bigger.
Cold-start bar: Every milestone must be executable by a fresh agent without prior context. Include files to read and verification commands.
Specificity calibration: Pin file paths when cited by exit criteria or downstream milestones. Use concept names when location is an implementation detail.
Test tasks per flow: For milestones that create user-facing components, include explicit test tasks per component or flow, not just a general test gate.
Assumptions are beliefs about the system, not tasks. Tick with evidence when validated. If invalidated, update the plan immediately. See references/milestone-examples.md for format and examples.
CHECKPOINT: Read-Only Analysis presents milestones inline and stops. Write modes go to Phase 2 to write files; no Phase 1 approval pause.
The delivery path maps 1:1 to the mode picked in Step 0. Do exactly the mode's block; do not cross modes mid-flow.
.goat-flow/plans/.active, milestone status, checkboxes, or code.User explicitly asked to edit an existing plan file. Path-only references do not qualify.
Analysis signals triggered this mode.
.goat-flow/plans/.Transition out: On "write these to files" / "let's go ahead", switch to Mode 4 using approved Phase 1 output. If prior-turn/session, re-read instructions, .active, named sources. Do NOT re-run breakdown.
CHECKPOINT: "Milestones for [feature] (no files written). Say 'write to files' to persist, or adjust first."
Low blast radius, 1-2 milestones, no analysis signals. Write artifacts using File Artifact Rules, then present paths + summary. No inline-first prompt.
Write artifacts immediately. Do NOT invoke/ask about /goat-critique; run it only on request.
For a fresh plan, create a slugged task directory and update .goat-flow/plans/.active to that slug in the same batch. Write one milestone per .goat-flow/plans/<active>/M*.md file.
Filename format: start with M so dashboard and task tooling can discover it; use a readable slug, e.g. Milestone-prove-api-integration.md.
File format: use existing milestone structure: title, Status, Objective, Depends on, Kill criteria, Read first, Assumptions, Tasks (risk-tagged), Exit Criteria, Testing Gate (static/contract + automated + manual + acceptance), Mid-implementation proof.
ISSUE.md: Write ISSUE.md in the task directory alongside milestone files. Format: references/issue-format.md. Three sections: Why (benefits), What (requirements, future tense), How (developer checklist with checkboxes). Keep stakeholder-readable - no file-level detail. Add "Out of scope" for deliberate exclusions.
Backlog file: If deferred items exist, write backlog.md with priority tiers (Next / Later / Maybe).
CHECKPOINT: "Milestone files + ISSUE.md written to .goat-flow/plans/<active>/. Ready to start implementation."
Prompted README/ADR gate: "Load-bearing decisions [X, Y, Z] - write ADRs + README now, or milestone files only?"
Reference verification: After writing milestone files, grep every inline reference code and verify it resolves to a file on disk.
After each milestone completes, both gates must pass before the next begins. Apply the Proof Gate from skill-preamble.md.
AI Verification Gate: Verify every task is ticked, every exit criterion met with evidence from this session, and the testing gate passed with proof (not recollection). Surface any gap.
BLOCKING GATE (Human Verification): Present files changed, exit criteria with evidence, and assumptions validated or invalidated. "M[N] complete. Approve to proceed with M[N+1], or adjust?"
After approval: capture learnings, re-read the next milestone and update invalidated assumptions/tasks/exit criteria, set status: prior → complete, next → in-progress.
If updates are needed mid-flight, follow the milestone retrospective protocol in skill-conventions.md; never change milestones silently.
Status-aware reminder: When setting the last milestone to complete, add: "All milestones now complete. Ready to run Phase 4 close-out when you are."
When all milestones reach complete or human-verification-pending, the plan enters Phase 4. Both gates must pass before the plan is considered finished.
Before presenting completion, verify:
complete or human-verification-pending[x] across all milestone filesIf any item fails, surface it - do not silently close with incomplete gates.
Consolidated UNVERIFIED checklist: Aggregate all UNVERIFIED items from testing gates across milestones into a single walkthrough list.
Architecture staleness check: If .goat-flow/architecture.md predates the plan's implementation, prompt: "Architecture may be stale - update now or defer?"
BLOCKING GATE: Present completion summary: files changed, milestone statuses, exit-criteria evidence, invalidated assumptions.
"All milestones complete. Review changes before I close this plan."
Plan is NOT complete until the human explicitly approves.
complete.goat-flow/plans/ - human decides archival.active, status, checkboxes, or code from path-only intake/goat-critique from /goat-plan; run critique only on requestThe output depends on the mode picked in Step 0:
.goat-flow/plans/<active>/ plus a concise summary..goat-flow/plans/<active>/.Summary format for presentation:
## Milestones for [feature]
### Milestone 01: [name] - [archetype]
**Objective:** [1-2 sentences]
**Tasks:** [N] | **Exit criteria:** [N] | **Testing gate:** [auto + manual + acceptance]
**Kill criteria:** [condition]
### Milestone 02: [name] - [archetype]
...
**Total milestones:** [N] | **Estimated sessions:** [rough guess]
**Riskiest milestone:** M[N] because [reason]
**Kill criteria summary:** [what would stop the entire effort]
Terse-first: Lead with the answer. One sentence per bullet. Strip qualifiers. Skip closing offers. Applies to informational output and summaries, not gate prompts or evidence-tagged findings.