Skip to content

Commit d0609d4

Browse files
committed
refactor(skills): merge acceptance into plan with narrative structure
Acceptance criteria now live inside plan.md. The plan template leads with Solution Overview, Why This Approach, and How It Will Work before slices and acceptance. Removes standalone acceptance.md from scaffold.
1 parent 7e87cda commit d0609d4

2 files changed

Lines changed: 19 additions & 17 deletions

File tree

apps/skills/plannotator-setup-goal/SKILL.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: plannotator-setup-goal
3-
description: Create reviewed Codex goal setup packages for long-running /goal work. Use when the user wants to turn an idea, plan, backlog, project mission, or vague objective into durable goal files under a project goals slug folder, with Plannotator review gates for brief, plan, acceptance, verification, blockers, and the final /goal prompt.
3+
description: Create reviewed Codex goal setup packages for long-running /goal work. Use when the user wants to turn an idea, backlog, project mission, or vague objective into durable goal files under a project goals slug folder, with Plannotator review gates for brief, narrative plan with acceptance criteria, verification, blockers, and the final /goal prompt.
44
---
55

66
# Plannotator Setup Goal
@@ -23,7 +23,6 @@ Create a durable goal package in the current project at `goals/<slug>/` so Codex
2323
5. Draft and refine the critical documents in this order:
2424
- `brief.md`
2525
- `plan.md`
26-
- `acceptance.md`
2726
- `verification.md`
2827
- `blockers.md`
2928
- `goal-prompt.md`
@@ -40,9 +39,7 @@ Create a durable goal package in the current project at `goals/<slug>/` so Codex
4039

4140
`brief.md` must state the mission, context, constraints, non-goals, ask-before rules, and concise done condition.
4241

43-
`plan.md` must split the work into concrete slices with sequencing, dependencies, risks, and phase boundaries. For large missions, prefer several sequential goals over one endless goal.
44-
45-
`acceptance.md` must be an auditable checklist. Every important requirement needs observable evidence. Include commands, files, screenshots, PR state, or manual checks as applicable.
42+
`plan.md` is the central reviewed planning artifact. It must read like a clear solution narrative, not just a technical checklist. Include what is being built, why this approach is appropriate, how the solution will work, the main implementation slices, risks, phase boundaries, and acceptance criteria. Every important acceptance item needs observable evidence. For large missions, prefer several sequential goals over one endless goal.
4643

4744
`verification.md` must list exact verification commands and manual checks. Include expected pass conditions and where evidence should be recorded.
4845

@@ -68,7 +65,7 @@ Include:
6865
- outcome
6966
- relevant files
7067
- constraints and non-goals
71-
- acceptance evidence
68+
- plan acceptance criteria and evidence
7269
- verification commands
7370
- ask-before rules
7471
- instruction to use `goals/<slug>/` as the durable plan and append evidence to `progress.jsonl`
@@ -84,8 +81,8 @@ Avoid:
8481

8582
Before finalizing, verify:
8683
- The goal has one clear finish line.
87-
- The plan can be executed in slices.
88-
- Acceptance can be audited from real artifacts.
84+
- The plan explains what, why, and how before listing work slices.
85+
- The plan acceptance criteria can be audited from real artifacts.
8986
- Verification commands are concrete.
9087
- Risky actions have ask-before rules.
9188
- The final `/goal` prompt tells Codex where the goal files live.

apps/skills/plannotator-setup-goal/scripts/scaffold_goal.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,18 @@ def brief(title: str, objective: str) -> str:
5555
def plan(title: str) -> str:
5656
return f"""# Plan: {title}
5757
58+
## Solution Overview
59+
60+
TODO: Describe what is being built in plain language. Explain the shape of the solution before diving into tasks.
61+
62+
## Why This Approach
63+
64+
TODO: Explain why this direction is appropriate for the project, user goal, constraints, and risk level.
65+
66+
## How It Will Work
67+
68+
TODO: Describe the main moving parts, data flow, user flow, files, APIs, or systems involved. Keep this narrative enough that a reviewer can understand the intended solution.
69+
5870
## Slices
5971
6072
| Slice | Purpose | Main files or systems | Done when | Risks |
@@ -73,13 +85,8 @@ def plan(title: str) -> str:
7385
## Steering Notes
7486
7587
- TODO: Capture taste calls, product preferences, or review checkpoints the user should steer during execution.
76-
"""
77-
78-
79-
def acceptance(title: str) -> str:
80-
return f"""# Acceptance: {title}
8188
82-
## Checklist
89+
## Acceptance Criteria
8390
8491
- [ ] TODO: Requirement with concrete observable evidence.
8592
- [ ] TODO: Requirement with concrete observable evidence.
@@ -149,8 +156,7 @@ def goal_prompt(slug: str, title: str, objective: str) -> str:
149156
150157
Use `goals/{slug}/` as the durable source of truth:
151158
- Read `brief.md` for the mission, context, constraints, non-goals, and ask-before rules.
152-
- Follow `plan.md` slice by slice.
153-
- Treat `acceptance.md` as the completion checklist.
159+
- Follow `plan.md` for the solution overview, implementation slices, risks, and acceptance criteria.
154160
- Run the checks in `verification.md` and record evidence.
155161
- Append concrete progress and proof to `progress.jsonl`.
156162
- Pause and ask the user for anything listed in `blockers.md` or any similarly risky unresolved decision.
@@ -192,7 +198,6 @@ def main() -> int:
192198
files = {
193199
"brief.md": brief(args.title, args.objective),
194200
"plan.md": plan(args.title),
195-
"acceptance.md": acceptance(args.title),
196201
"verification.md": verification(args.title),
197202
"blockers.md": blockers(args.title),
198203
"goal-prompt.md": goal_prompt(slug, args.title, args.objective),

0 commit comments

Comments
 (0)