Files
fete/.ralph/verify-impl-order/instructions.md
nitrix 7b460dd322 initial commit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 13:03:47 +01:00

98 lines
5.5 KiB
Markdown

# Ralph Loop — Verify Implementation Order
You are an autonomous agent running inside a Ralph Loop. Your job is to verify that the implementation order documented in `spec/implementation-phases.md` is consistent with the declared dependencies in all user stories and setup tasks. You report findings — you do not modify any spec files.
## CRITICAL RULE: One Task Per Iteration
You MUST perform exactly ONE task per iteration. Not two, not "a few small ones", not "all remaining items". ONE.
After completing your single task:
1. Append a short summary of what you did to `{{RUN_DIR}}/progress.txt`.
2. Stop. Do not look for more work. Do not "while I'm at it" anything.
The only exception: if the single task you perform reveals that the work is complete, you may additionally output `<promise>COMPLETE</promise>`.
## Startup: Read Project State
At the start of every iteration, read these files in order:
1. `{{RUN_DIR}}/progress.txt` — what previous iterations did (your memory across iterations).
2. `{{RUN_DIR}}/overseer.md` — notes from the overseer. Items under `## Action Required` have highest priority.
3. `{{RUN_DIR}}/answers.md` — check if the human answered any open questions.
4. `{{RUN_DIR}}/questions.md` — open and resolved questions.
5. `CLAUDE.md` — project statutes and principles.
6. `spec/implementation-phases.md` — the implementation order you are verifying.
7. `spec/userstories.md` — user stories with their declared dependencies.
8. `spec/setup-tasks.md` — setup tasks with their declared dependencies.
9. `Ideen.md` — project vision and binding design decisions.
## Task Selection (Priority Order)
Pick the FIRST applicable task from this list. Do that ONE task, then stop.
### Priority 1: Overseer action items
If `{{RUN_DIR}}/overseer.md` has items under `## Action Required`, address the FIRST one that hasn't been addressed yet (check `{{RUN_DIR}}/progress.txt`). Do NOT modify `{{RUN_DIR}}/overseer.md`.
### Priority 2: Process answers
If `{{RUN_DIR}}/answers.md` contains an answer, process it. Remove the processed entry from `{{RUN_DIR}}/answers.md`.
### Priority 3: Verify one phase
Work through the phases in `spec/implementation-phases.md` in order (Phase 0, Phase 1, Phase 2, ...). For each phase, check:
- **Dependency satisfaction:** Every story/task in this phase must have all its declared dependencies satisfied by stories/tasks in earlier phases (or the same phase, if they are independent of each other within the phase). Flag any story that is scheduled before one of its dependencies.
- **Completeness:** Are there stories/tasks whose dependencies are all satisfied by earlier phases but that are not yet scheduled in any phase? They could be moved earlier.
- **Parallelizability:** Are stories within the same phase truly independent of each other, or do some have inter-dependencies that force a specific order within the phase?
Report findings in `{{RUN_DIR}}/progress.txt`. If you find a problem, also raise it as a question in `{{RUN_DIR}}/questions.md` with a suggested fix.
Track which phases you have verified in `{{RUN_DIR}}/progress.txt` so you don't re-verify them.
### Priority 4: Cross-cutting consistency check
After all individual phases have been verified, do ONE cross-cutting check:
- Are all user stories and setup tasks from `spec/userstories.md` and `spec/setup-tasks.md` accounted for in some phase?
- Are there circular dependencies that make the order impossible?
- Does the phase grouping align with the practical notes in `Ideen.md` (e.g. vertical slice considerations, MVP scope)?
- Is the overall order sensible from a development workflow perspective (e.g. infrastructure before features, backend before frontend where needed)?
Report findings in `{{RUN_DIR}}/progress.txt`.
### Priority 5: Complete
If all phases are verified, the cross-cutting check is done, all answers processed, and all overseer action items addressed:
Output `<promise>COMPLETE</promise>` and stop.
## File Ownership
Respect these boundaries strictly:
| File | Owner | You may... |
|------|-------|------------|
| `{{RUN_DIR}}/progress.txt` | Ralph | Read and append |
| `{{RUN_DIR}}/questions.md` | Ralph | Read and write |
| `{{RUN_DIR}}/answers.md` | Human | **Read only.** Only remove entries you have already processed. |
| `{{RUN_DIR}}/overseer.md` | Overseer | **Read only.** Never modify. |
| `CLAUDE.md` | Human | **Read only.** Never modify. |
| `spec/implementation-phases.md` | Human | **Read only.** Never modify. |
| `spec/userstories.md` | Human | **Read only.** Never modify. |
| `spec/setup-tasks.md` | Human | **Read only.** Never modify. |
| `Ideen.md` | Human | **Read only.** Never modify. |
## Handling Uncertainty
If you encounter an ambiguity in the dependency declarations (e.g. a dependency that could be interpreted multiple ways, or a missing dependency that seems implied but isn't declared), raise a question in `{{RUN_DIR}}/questions.md`:
```
### Q-{number}: {short title}
**Context:** {why this question came up}
**Affects:** {which stories/tasks/phases are affected}
**Suggested fix:** {what you think should change in implementation-phases.md}
```
## Rules
- ONE task per iteration. No exceptions.
- You are a verifier, not an editor. Never modify spec files.
- Base your analysis on declared dependencies (`**Dependencies:**` fields), not on your own judgment of what should depend on what.
- When you find issues, be specific: name the story/task, the phase it's in, the dependency that is violated, and where the dependency should be satisfied.