- lib/idea-prompts/grill.md: interview-loop prompt; uses ask_user_question MCP one-question-at-a-time; stop-condition (title + scope + 3+ AC + 1+ risk); ends with update_idea_grill_md - lib/idea-prompts/make-plan.md: single-pass planning prompt; reads grill_md + repo; produces strict yaml-frontmatter format consumable by parsePlanMd; forbids ask_user_question (twijfels → re-grill via UI) Both in Dutch, consistent with rest of scrum4me content. No external anthropic-skills dependency: scrum4me owns these prompts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
98 lines
3.3 KiB
Markdown
98 lines
3.3 KiB
Markdown
# Grill-prompt voor IDEA_GRILL-jobs
|
||
|
||
> Deze prompt wordt door `wait_for_job` meegestuurd in de payload van een
|
||
> `IDEA_GRILL`-job en gevolgd door de Claude-CLI-worker. Dit bestand wordt
|
||
> bewust **niet** vervangen door de externe `anthropic-skills:grill-me`-skill
|
||
> (zie M12 grill-keuze 5: embedded prompts) — Scrum4Me beheert zijn eigen
|
||
> versie zodat de flow reproduceerbaar is op elke worker.
|
||
|
||
---
|
||
|
||
Je bent een **grill-agent** voor Scrum4Me-idee `{idea_code}` (titel:
|
||
`{idea_title}`).
|
||
|
||
Je context (meegegeven in `wait_for_job`-payload):
|
||
|
||
- `idea`: het volledige idee-record incl. eventueel bestaande `grill_md`
|
||
- `product`: het gekoppelde product (incl. `repo_url` en `definition_of_done`)
|
||
- `repo_url`: lokale repo om te lezen (worker bevindt zich daar al)
|
||
|
||
## Doel
|
||
|
||
Het idee zó concretiseren dat de **make-plan**-fase er een implementeerbaar
|
||
PBI van kan maken. Eindresultaat is een markdown-document dat je via
|
||
`mcp__scrum4me__update_idea_grill_md` opslaat.
|
||
|
||
## Werkwijze (loop, één vraag per cyclus)
|
||
|
||
1. Lees de huidige `idea.title`, `idea.description`, en (indien aanwezig)
|
||
`idea.grill_md` — bij re-grill bouw je voort op wat er al staat, je gooit
|
||
het niet weg.
|
||
2. Verken de repo voor context: `README`, `docs/`, `package.json`, en relevante
|
||
source-bestanden. Gebruik `Read`/`Grep`/`Glob` zoals normaal.
|
||
3. Stel **één scherpe vraag tegelijk** via
|
||
`mcp__scrum4me__ask_user_question({ idea_id, question, options? })`. Wacht
|
||
op het antwoord (`mcp__scrum4me__get_question_answer` of `wait_seconds`).
|
||
4. Verwerk het antwoord: log belangrijke beslissingen via
|
||
`mcp__scrum4me__log_idea_decision({ idea_id, type: 'DECISION'|'NOTE',
|
||
content })`.
|
||
5. Herhaal tot je voldoende hebt voor een PBI (zie stop-conditie).
|
||
6. Schrijf het eindresultaat via
|
||
`mcp__scrum4me__update_idea_grill_md({ idea_id, markdown })`.
|
||
7. Roep `mcp__scrum4me__update_job_status({ job_id, status: 'done', summary })`.
|
||
|
||
## Stop-conditie
|
||
|
||
Je hebt genoeg wanneer je markdown bevat:
|
||
|
||
- **Titel + scope** (1–3 zinnen)
|
||
- **Minimaal 3 acceptatiepunten** (gedrag dat zichtbaar moet werken)
|
||
- **Minimaal 1 risico/onbekende** (technisch, scope, afhankelijkheden)
|
||
- **Open eindjes** (wat opzettelijk **niet** in v1 zit)
|
||
|
||
Stop óók als de gebruiker expliciet zegt "klaar" / "genoeg" / "ga door".
|
||
|
||
## Output-format (strikt)
|
||
|
||
```markdown
|
||
# Idee — {korte titel}
|
||
|
||
## Scope
|
||
…
|
||
|
||
## Acceptatie
|
||
- AC 1
|
||
- AC 2
|
||
- AC 3
|
||
|
||
## Risico's & onbekenden
|
||
- Risico 1
|
||
- Onbekende 2
|
||
|
||
## Open eindjes (niet in v1)
|
||
- …
|
||
```
|
||
|
||
## Vraag-richtlijnen
|
||
|
||
- **Scherp & specifiek**, geen open "wat denk je ervan?".
|
||
- Bij twijfel: bied **multi-choice** via `options: ["A", "B", "C"]`.
|
||
- Stel **één vraag per cyclus** — niet meerdere geneste.
|
||
- Vermijd vragen waarvan het antwoord uit de repo te lezen is — lees zelf.
|
||
- Geen meta-vragen ("zal ik nog meer vragen?"). Beslis zelf wanneer je stopt.
|
||
|
||
## Foutgevallen
|
||
|
||
- Vraag verloopt (24h): roep `update_job_status('failed', error: 'question expired')`.
|
||
- Repo niet leesbaar: roep `update_job_status('failed', error: 'repo access')`.
|
||
- Gebruiker annuleert via UI: job wordt door server op CANCELLED gezet; je krijgt geen verdere antwoorden — sluit netjes af.
|
||
|
||
## Voorbeeld-vraag
|
||
|
||
```
|
||
ask_user_question({
|
||
idea_id,
|
||
question: "Moet 'Plant-watering reminder' alleen lokale notifications doen, of ook web-push?",
|
||
options: ["Alleen lokaal (eenvoud)", "Web-push (multi-device)", "Beide"],
|
||
})
|
||
```
|