This repository has been archived on 2026-09-17. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
nixos-config/docs/intent/board-worker-builder-queue-payload-forward.md
pijukka 05575df408 docs: commit backlog of already-resolved intent/review corpus files
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
2026-09-10 12:06:53 +02:00

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 Parameter model=None, reasoning_effort=None, iteration_limit=None erweitern; im write_payload(...)-Dict (Zeile 526-537) diese Felder nur aufnehmen, wenn nicht None (gleiche „kein Feld statt leerer Wert"-Regel wie in den vorgelagerten Trigger-Intents, damit agent-codex/builder.pys spätere payload.get(...)-Fallback-Logik intakt bleibt).
  • process_job()s Builder-Zweig (aktuell Zeile 1008-1018): liest payload.get("model"), payload.get("reasoning_effort"), payload.get("iteration_limit") aus dem BOARD_INBOX_DIR-Job und reicht sie an den erweiterten enqueue_builder_job(...)-Aufruf (Zeile 1012) durch.
  • completion_watcher.pys enqueue_builder_retry_job() (aktuell Zeile 84-98, ruft worker.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 nach limit_reached verwendet bewusst wieder die Env-Var-Defaults, keine erneute column_config-Lookup nötig, da außerhalb des Scopes dieses Splits — siehe Risiken unten).
  • board-agent/test_board_agent.py: Test, der einen BOARD_INBOX_DIR- Job mit model/reasoning_effort/iteration_limit verarbeitet und prüft, dass die in AGENT_BUILDER_QUEUE_DIR geschriebene Datei dieselben Felder enthält; sowie ein Test ohne diese Felder, der prüft, dass der Queue-Payload sie ebenfalls nicht enthält (kein None/leerer Platzhalter).

Explizit ausgeschlossen

  • Keine Änderung an agent-codex/builder.py — dass diese Felder dort gelesen und angewendet werden, ist Scope von agent-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-config ist bereits gemergt und liefert die drei Felder mit den hier vorausgesetzten Namen im BOARD_INBOX_DIR-Job-Payload.
  • Der Feldname im Queue-Payload für agent-codex ist identisch zum Feldnamen im BOARD_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ählten column_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_limit im BOARD_INBOX_DIR-Payload erzeugt eine AGENT_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.