Merge pull request #8 from madhura68/docs/auto-pr-reality

docs(claude): worker pusht en maakt PR niet meer zelf
This commit is contained in:
Janpeter Visser 2026-05-06 00:43:09 +02:00 committed by GitHub
commit 70cfe0374e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -9,12 +9,18 @@ je rol; het wordt automatisch geladen door `claude -p` vanuit
- Je bent ingelogd via een **dedicated agent-user** in Scrum4Me, niet - Je bent ingelogd via een **dedicated agent-user** in Scrum4Me, niet
als de eindgebruiker. Commits, story-logs en `claude_jobs.claimed_by_token_id` als de eindgebruiker. Commits, story-logs en `claude_jobs.claimed_by_token_id`
zullen jouw token tonen. zullen jouw token tonen.
- Je hebt **geen push-rechten**. Geen SSH-keys op deze container, geen - Je hebt **geen handmatige push- of PR-acties nodig.** De
`~/.gitconfig` met push-credentials. Lokale commits zijn welkom; pushen `scrum4me-mcp`-server (zelfde container) doet de push automatisch
is iets wat de eindgebruiker zelf doet na review. zodra jij `update_job_status('done')` aanroept, en maakt — als het
product `auto_pr=true` heeft — direct een PR aan met auto-merge
(squash) actief. Roep dus geen `git push` of `gh pr create` zelf aan;
laat de MCP-laag dat doen.
- Je opereert binnen `/tmp/job-<id>` per job. Buiten die directory en - Je opereert binnen `/tmp/job-<id>` per job. Buiten die directory en
buiten `/var/log/agent` heb je niets te zoeken. buiten `/var/log/agent` heb je niets te zoeken.
Volledige documentatie van de auto-PR-keten: `docs/runbooks/auto-pr-flow.md`
in de Scrum4Me-repo.
## Operationele loop (verplicht) ## Operationele loop (verplicht)
Wanneer je geseed wordt met *"Pak de volgende job uit de Scrum4Me-queue"* Wanneer je geseed wordt met *"Pak de volgende job uit de Scrum4Me-queue"*
@ -33,11 +39,16 @@ of equivalent:
ST-code in de titel). ST-code in de titel).
5. Voer de project-verificaties uit die de project-CLAUDE.md voorschrijft 5. Voer de project-verificaties uit die de project-CLAUDE.md voorschrijft
(typisch `npm run lint && npm test && npm run build`). (typisch `npm run lint && npm test && npm run build`).
6. **Niet pushen.** Lokaal committen op een feature-branch is goed. 6. **Niet zelf pushen of PR's maken.** Lokaal committen op een
feature-branch is goed. De MCP-tool `update_job_status('done')`
verzorgt push + auto-PR + auto-merge zelf (mits `Product.auto_pr=true`).
7. Roep `mcp__scrum4me__update_job_status` aan met: 7. Roep `mcp__scrum4me__update_job_status` aan met:
- `status: "done"` als verificaties slaagden, plus `branch` en - `status: "done"` als verificaties slaagden, plus `branch` en
`summary`. `summary`.
- `status: "failed"` met `error` als iets onomkeerbaar misging. - `status: "failed"` met `error` als iets onomkeerbaar misging.
- Bij `done`: de tool pusht je commits automatisch en maakt
zo nodig een PR aan met auto-merge actief. Verwacht dus dat
de respons `pushed_at` en `pr_url` kan bevatten.
8. Roep `mcp__scrum4me__check_queue_empty` aan (geen args). Dit is een 8. Roep `mcp__scrum4me__check_queue_empty` aan (geen args). Dit is een
synchrone non-blocking poll die in één keer teruggeeft of er nog synchrone non-blocking poll die in één keer teruggeeft of er nog
werk in de queue staat: werk in de queue staat:
@ -78,8 +89,14 @@ Niet gokken. Niet aannemen.
## Wat je NIET doet ## Wat je NIET doet
- Geen `git push`, ook niet naar `origin/<branch>` van een feature-branch. - Geen handmatige `git push`. De MCP-tool `update_job_status('done')`
- Geen `npm publish`, `vercel deploy`, of welke release-actie dan ook. pusht zelf via `pushBranchForJob`. Een eigen push verstoort de
pushed_at-tracking en kan branch-conflicts veroorzaken met
sibling-jobs in dezelfde story.
- Geen `gh pr create` of `gh pr merge`. De MCP-tool `maybeCreateAutoPr`
doet dit afhankelijk van `Product.auto_pr`.
- Geen `npm publish`, `vercel deploy`, of welke release-actie dan ook
buiten de PR-flow om.
- Geen edits buiten `/tmp/job-*` (geen `~/.bashrc`, geen `/etc/...`, - Geen edits buiten `/tmp/job-*` (geen `~/.bashrc`, geen `/etc/...`,
geen andere shares). geen andere shares).
- Geen credentials uitprinten of in commit-messages stoppen — `.env` - Geen credentials uitprinten of in commit-messages stoppen — `.env`