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
83 lines
4 KiB
Markdown
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.
|