board-agent's own README documents docs/intent/ and docs/research-intent/ as tracked corpus directories, and docs/review/<slug>.md as the reviewer's persisted report per card - but the pipeline only writes these files to the checkout, it never commits them itself. This had built up a backlog of intent/review docs for cards already marked deployed or archiviert in the live board state, which were sitting uncommitted in the working tree. Adds that backlog as-is: the originating intents, their reviewer reports, the research-intent/research pair for the board UX evaluation, and one standalone process-retrospective report (board-review-pipeline-context- overhead.md, same genre as the two already-tracked audit reports in docs/review/). No code changes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T7UVrKsttMP9a6FiGFna9b
4 KiB
4 KiB
Intent: Builder-Job-Payload-Felder bis in die agent-codex-Queue durchreichen
Ziel
Die in board-builder-trigger-column-config neu eingeführten
Payload-Felder model/reasoning_effort/iteration_limit eines
Builder-Jobs aus BOARD_INBOX_DIR werden von worker.py beim
Übersetzen in ../agent-codexs eigenes Queue-Schema
(AGENT_BUILDER_QUEUE_DIR) nicht verworfen, sondern unverändert in
den dortigen Job-Payload übernommen.
Umfang
board-agent/worker.py,enqueue_builder_job()(aktuell Zeile 508-538): Signatur um optionale Parametermodel=None,reasoning_effort=None,iteration_limit=Noneerweitern; imwrite_payload(...)-Dict (Zeile 526-537) diese Felder nur aufnehmen, wenn nichtNone(gleiche „kein Feld statt leerer Wert"-Regel wie in den vorgelagerten Trigger-Intents, damitagent-codex/builder.pys späterepayload.get(...)-Fallback-Logik intakt bleibt).process_job()s Builder-Zweig (aktuell Zeile 1008-1018): liestpayload.get("model"),payload.get("reasoning_effort"),payload.get("iteration_limit")aus demBOARD_INBOX_DIR-Job und reicht sie an den erweitertenenqueue_builder_job(...)-Aufruf (Zeile 1012) durch.completion_watcher.pysenqueue_builder_retry_job()(aktuell Zeile 84-98, ruftworker.enqueue_builder_job(slug, intent_path, on_complete_dir, runtime)auf, Zeile 95): unverändert lassen, ruft weiterhin ohne die neuen Parameter auf (automatischer Wiederholungsversuch nachlimit_reachedverwendet bewusst wieder die Env-Var-Defaults, keine erneutecolumn_config-Lookup nötig, da außerhalb des Scopes dieses Splits — siehe Risiken unten).board-agent/test_board_agent.py: Test, der einenBOARD_INBOX_DIR- Job mitmodel/reasoning_effort/iteration_limitverarbeitet und prüft, dass die inAGENT_BUILDER_QUEUE_DIRgeschriebene Datei dieselben Felder enthält; sowie ein Test ohne diese Felder, der prüft, dass der Queue-Payload sie ebenfalls nicht enthält (keinNone/leerer Platzhalter).
Explizit ausgeschlossen
- Keine Änderung an
agent-codex/builder.py— dass diese Felder dort gelesen und angewendet werden, ist Scope vonagent-codex-builder-payload-model-override. - Kein Rückwirken auf den automatischen
limit_reached-Retry-Pfad (enqueue_builder_retry_job()) — der bleibt bei den bisherigen Env-Var-Defaults; siehe „Offene Risiken". - Keine Änderung an Research- oder Review-Pfaden.
Annahmen
board-builder-trigger-column-configist bereits gemergt und liefert die drei Felder mit den hier vorausgesetzten Namen imBOARD_INBOX_DIR-Job-Payload.- Der Feldname im Queue-Payload für
agent-codexist identisch zum Feldnamen imBOARD_INBOX_DIR-Payload (model,reasoning_effort,iteration_limit) — keine Umbenennung beim Übersetzen.
Offene Risiken / offene Fragen
- Der automatische
limit_reached-Retry (enqueue_builder_retry_job()) verwendet nach diesem Intent weiterhin nur Env-Var-Defaults statt der ursprünglich für den Job gewähltencolumn_config-Werte — eine Karte, die mit einem Nicht-Default-Modell durch Builder lief, an ihrem Iterationslimit hängen blieb und automatisch neu versucht wird, verliert dabei ihre ursprüngliche Modellwahl. Das ist eine bewusste Scope-Grenze dieses Splits (der automatische Retry-Mechanismus selbst ist Gegenstand anderer, bereits existierender Intents/Commits, z. B. „board-agent: fix ReadWritePaths gap blocking automatic limit_reached retry") und sollte, falls unerwünscht, als eigenständiges Folge-Intent behandelt werden statt hier mitgelöst zu werden.
Erfolgskriterien
- Ein Builder-Job mit
model/reasoning_effort/iteration_limitimBOARD_INBOX_DIR-Payload erzeugt eineAGENT_BUILDER_QUEUE_DIR- Datei mit denselben Feldern und unverändertem Wert. - Ein Builder-Job ohne diese Felder erzeugt eine Queue-Datei ohne diese Schlüssel (kein Breaking Change für bestehende/alte Jobs).
- Bestehende Tests für
enqueue_builder_job()/process_job()bleiben grün, neue Tests sind grün.