feat(ST-mmuwreer): add check_queue_empty stap + allowedTools

CLAUDE.md: nieuwe stap 8 in operationele loop — agent roept
check_queue_empty aan na update_job_status('done'). Bij empty=true
exit batch direct ipv 600s wait_for_job-poll.

bin/run-agent.sh: voeg mcp__scrum4me__check_queue_empty toe aan
ALLOWED_TOOLS zodat de agent de tool ook daadwerkelijk mag aanroepen.

Vereist: scrum4me-mcp v0.3.0+ in MCP_GIT_REF (na merge bumpen + rebuild).

Re-doet werk uit `bd6b91e` dat in eerdere agent-run verloren ging
omdat verify_task_against_plan errorde (origin/main hard-coded; bug
in scrum4me-mcp opgevangen in PBI cmoq1j2e2001dvt17scif1flj).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-03 19:37:43 +02:00
parent 482a5b900e
commit 834e7912e7
2 changed files with 13 additions and 4 deletions

View file

@ -38,11 +38,20 @@ of equivalent:
- `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.
8. Roep `bash /opt/agent/bin/job-cleanup.sh <job_id>` aan om de 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
werk in de queue staat:
- `empty: false` → ga direct naar stap 3 (`wait_for_job` opnieuw).
- `empty: true` → batch is klaar; geef recap en exit. Geen extra
`wait_for_job`-call die 600 s blokt.
9. Roep `bash /opt/agent/bin/job-cleanup.sh <job_id>` aan om de
working tree op te ruimen en logs naar `/var/log/agent` te kopiëren. working tree op te ruimen en logs naar `/var/log/agent` te kopiëren.
3. Roep **direct opnieuw** `wait_for_job` aan. Stop niet, vraag niets. 3. Op basis van stap 8: bij `empty: false` opnieuw `wait_for_job`; bij
`empty: true` direct naar stap 4. Stop niet midden in de loop, vraag
niets.
4. Pas wanneer `wait_for_job` na de volledige block-time terugkomt zonder 4. Pas wanneer `wait_for_job` na de volledige block-time terugkomt zonder
claim, sluit de turn af met een korte recap (aantal jobs, success/fail). claim, óf `check_queue_empty` empty=true retourneerde, sluit de turn
af met een korte recap (aantal jobs, success/fail).
## Foutscenario's ## Foutscenario's

View file

@ -45,7 +45,7 @@ SEED_PROMPT='Pak de volgende job uit de Scrum4Me-queue en draai de queue leeg vo
# Tools-allowlist: alle MCP-tools die scrum4me-mcp aanbiedt + standaard # Tools-allowlist: alle MCP-tools die scrum4me-mcp aanbiedt + standaard
# file/bash-tools. Geen WebFetch, geen WebSearch — de agent heeft die # file/bash-tools. Geen WebFetch, geen WebSearch — de agent heeft die
# niet nodig en uitsluiting verkleint het surface. # niet nodig en uitsluiting verkleint het surface.
ALLOWED_TOOLS='Read,Edit,Write,Bash,Grep,Glob,mcp__scrum4me__health,mcp__scrum4me__list_products,mcp__scrum4me__get_claude_context,mcp__scrum4me__wait_for_job,mcp__scrum4me__update_job_status,mcp__scrum4me__update_task_status,mcp__scrum4me__update_task_plan,mcp__scrum4me__log_implementation,mcp__scrum4me__log_test_result,mcp__scrum4me__log_commit,mcp__scrum4me__create_pbi,mcp__scrum4me__create_story,mcp__scrum4me__create_task,mcp__scrum4me__create_todo,mcp__scrum4me__ask_user_question,mcp__scrum4me__get_question_answer,mcp__scrum4me__list_open_questions,mcp__scrum4me__cancel_question' ALLOWED_TOOLS='Read,Edit,Write,Bash,Grep,Glob,mcp__scrum4me__health,mcp__scrum4me__list_products,mcp__scrum4me__get_claude_context,mcp__scrum4me__wait_for_job,mcp__scrum4me__check_queue_empty,mcp__scrum4me__update_job_status,mcp__scrum4me__update_task_status,mcp__scrum4me__update_task_plan,mcp__scrum4me__log_implementation,mcp__scrum4me__log_test_result,mcp__scrum4me__log_commit,mcp__scrum4me__create_pbi,mcp__scrum4me__create_story,mcp__scrum4me__create_task,mcp__scrum4me__create_todo,mcp__scrum4me__ask_user_question,mcp__scrum4me__get_question_answer,mcp__scrum4me__list_open_questions,mcp__scrum4me__cancel_question'
CONSEC_FAILURES=0 CONSEC_FAILURES=0
BACKOFF=${AGENT_BACKOFF_START} BACKOFF=${AGENT_BACKOFF_START}