You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: skills/interview-and-create-plan/SKILL.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,7 @@ Make sure you understand what is going on and what the user actually wants.
28
28
-**Discuss concrete scenarios.** When domain relationships come up, stress-test them with specific scenarios. Invent edge cases that force the user to be precise about the boundaries between concepts.
29
29
-**Cross-reference with code.** When the user states how something works, check whether the code agrees. If you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible — which is right?"
30
30
-**Discuss the domain itself** — the fundamental meanings of words; the types / primitives relevant to the plan; their interactions, invariants, and implications.
31
+
-**Surface and state assumptions.** Make implicit assumptions explicit and say them back to the user for confirmation — about the domain, how the existing code behaves, data shapes, external systems, and what "done" means. An unstated assumption is a silent risk; when the user nods past something, name the assumption you're both making and ask if it holds. Note which ones you're confident about versus guessing.
31
32
-**Ask about success criteria.** What does success look like? What is the ultimate goal? How will we know it's done? (This becomes the Definition of Done — and should align with the loop's `verify.command`.)
32
33
33
34
### 2. Sketch
@@ -60,7 +61,9 @@ Write the plan to the path the loop reads `PLAN.md` from. **Do not assume the re
60
61
opencode-ralph-rlm plan-path
61
62
```
62
63
63
-
Write your `PLAN.md` to that path. Keep the headings the loop expects — at minimum `## Goal`, `## Definition of Done`, and `## Milestones` — and add `## Open Questions`, `## Invariants`, `## Decisions`, and `## Notes` as needed.
64
+
Write your `PLAN.md` to that path. Keep the headings the loop expects — at minimum `## Goal`, `## Definition of Done`, and `## Milestones` — and add `## Assumptions`, `## Open Questions`, `## Invariants`, `## Decisions`, and `## Notes` as needed.
65
+
66
+
State the **assumptions** the plan rests on explicitly in `## Assumptions` — both confirmed and unconfirmed, so a fresh worker (which has no chat history) inherits them. For any assumption that is **load-bearing and not yet verified** (e.g. "the API returns X", "this function has no side effects", "the table is already indexed"), add an early milestone to **test/validate it first** — a cheap probe beats discovering a wrong assumption after several attempts. An unconfirmed assumption that everything depends on is the single biggest risk to the loop.
0 commit comments