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

83 lines
4 KiB
Markdown

# 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-codex`s 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.py`s 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.py`s `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.