Vervangt de lange seed-prompt-loop door een Node-runner die per iteratie
precies één geclaimde job afhandelt. Eén Claude-invocation = één job met
de juiste per-kind config (model/permission-mode/effort/allowed_tools)
volgens PBI-67's resolveJobConfig.
- T-18/19/20/21: bin/run-one-job.ts (nieuw, ESM tsx). Imports direct uit
/opt/scrum4me-mcp/src/. Stappen: auth → quota-probe → claim met
LISTEN-fallback 270s → getFullJobContext → attachWorktreeToJob (TASK)
→ payload schrijven → CLI-args bouwen + mapBudgetToEffort → spawn claude
→ token-expiry detection → rollbackClaim bij exit≠0 zonder
update_job_status → cleanup. Logging met ISO-timestamps voor elke fase.
setInterval(60s) lease-renewal alleen voor SPRINT_IMPLEMENTATION.
- T-22: bin/run-agent.sh — SEED_PROMPT + ALLOWED_TOOLS verwijderd; claude
-p vervangen door `tsx /opt/agent/bin/run-one-job.ts`. TOKEN_EXPIRED
detectie uitgebreid met exit_code==3 trigger.
- T-23: CLAUDE.md herschreven — operationele loop weg, architectuur-
uitleg toegevoegd, hardstop-regels (geen wait_for_job, check_queue_empty,
job_heartbeat, git push).
T-24 smoke-test gedeferd tot na merge scrum4me-mcp PR (Dockerfile clone't
via MCP_GIT_REF, default 'main'); zie test_result-log voor verificatie-
commando's.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PER_TASK-loop uitgebreid met verify_task_against_plan en update_task_status
vóór update_job_status (eenmalige investering, ook PER_TASK-flow profiteert).
Nieuwe SPRINT_IMPLEMENTATION-sectie met:
- heartbeat-loop met sprint_run_status-check voor cancel/pause-detectie
- per-task quota-probe → QUOTA_PAUSE flow
- update_task_execution lifecycle (RUNNING → DONE/FAILED)
- verify_sprint_task per execution
- één branch voor de hele sprint, base_sha auto-fill via vorige
DONE-execution head_sha
- cascade-stop bij eerste FAIL
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drukt M13 pre-flight quota-gate op de batch-loop:
- ALLOWED_TOOLS in run-agent.sh uitgebreid met
mcp__scrum4me__get_worker_settings + worker_heartbeat (anders mag
Claude ze niet aanroepen ondanks dat ze geregistreerd zijn).
- CLAUDE.md operationele loop krijgt stap 0 vóór wait_for_job:
get_worker_settings → bin/worker-quota-probe.sh →
worker_heartbeat → sleep-tot-reset bij low quota.
Hierna draait de complete keten end-to-end: worker meet quota,
rapporteert aan server, NavBar toont stand-by-badge wanneer pct <
user.min_quota_pct.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reflecteer de werkelijkheid: de scrum4me-mcp tool update_job_status
('done') roept pushBranchForJob + maybeCreateAutoPr aan. Auto-merge
(squash) wordt door dezelfde tool aangezet (scrum4me-mcp PR #23).
CLAUDE.md zei eerder expliciet "geen push-rechten" en "Niet pushen"
— dat klopt niet meer als auto_pr=true op het product staat. Worker
moet juist NIET handmatig pushen of PR's maken; dat verstoort de
pushed_at-tracking en kan branch-conflicts geven.
Verwijst naar Scrum4Me docs/runbooks/auto-pr-flow.md voor de
volledige keten.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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>