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.1 KiB
4.1 KiB
Intent: Research-Spalten-Konfiguration bei Drag und Ausführung anwenden
Ziel
Wird eine Karte per Drag von recherche_angefordert nach
recherche_laeuft gezogen, liest trigger.py die dann gespeicherte
column_config["recherche_laeuft"] (Runtime, Modell, Reasoning-Effort)
statt nur der globalen board_runtime() und legt sie im Job-Payload
ab; worker.pys run_research() nimmt diese Werte entgegen und
verwendet sie statt der bisher rein Env-Var-basierten Researcher-
Defaults (BOARD_RESEARCHER_CODEX_MODEL u. a.).
Umfang
board-agent/trigger.py,update_phase(), Zweignew_phase == "recherche_laeuft"(aktuell Zeile 545-552): analog zum Builder-Triggerconfig = load_column_config()["recherche_laeuft"]lesen undwrite_job(..., job_type="research", runtime=config["runtime"], **extra)mitextranur für nicht-leeremodel/reasoning_effortfüllen (gleiche Semantik wie inboard-builder-trigger-column-configbeschrieben — leere Werte dürfen nicht als explizite leere Zeichenkette im Payload landen).board-agent/worker.py:run_research(slug, research_intent_path, runtime="codex", model=None, reasoning_effort=None)(aktuell Zeile 638) um die beiden neuen optionalen Parameter erweitern.- Die beiden
append_model_options(...)-Aufrufe (Codex-Zweig, Zeile 660-664) bzw.append_claude_model_options(command)(Claude-Zweig, Zeile 695) so anpassen, dass bei gesetztemmodel/reasoning_effort-Parameter dieser statt des bisherigenos.environ.get("BOARD_RESEARCHER_CODEX_MODEL", "")bzw. des Claude-Env-Var-Defaults verwendet wird —model/reasoningbleibenNone, wenn der Aufrufer nichts übergibt, sodass der bestehende Env-Var-Fallback exakt wie bisher greift. process_job()sresearch-Zweig (aktuell um Zeile 861-915) liestpayload.get("model")/payload.get("reasoning_effort")und reicht sie anrun_research(...)durch.
board-agent/test_board_agent.py: Test, dercolumn_config["recherche_laeuft"]vor dem Drag setzt und prüft, dass der resultierende Job-Payload die Felder enthält; sowie ein Test fürrun_research()mit explizitemmodel/reasoning_effortgegenüber dem bisherigen reinen Env-Var-Verhalten (z. B. per Monkeypatch/Fake-Subprocess wie in den bestehenden Tests fürrun_research(), falls vorhanden).
Explizit ausgeschlossen
- Kein Iterationslimit für Research — es existiert kein Analogon zu
AGENT_BUILDER_ITERATION_LIMITim Research-Pfad, daher kein entsprechendes Feld. - Keine Änderung an
agent-codex/builder.py— Research läuft vollständig innerhalb vonworker.py, es gibt keine Weitergabe an einen separaten Agenten-Prozess wie beim Builder. - Kein UI (Scope von
board-column-config-frontend-headers). - Keine Änderung an Builder- oder Review-Pfaden.
Annahmen
board-column-config-backend-stateist bereits gemergt.- Die bisherigen Env-Vars
BOARD_RESEARCHER_CODEX_MODEL/BOARD_RESEARCHER_CODEX_REASONING_EFFORTsowie das entsprechende Claude-Pendant bleiben als Fallback-Default bestehen, wenncolumn_config["recherche_laeuft"]keinen Override enthält.
Offene Risiken / offene Fragen
append_claude_model_options()liest ihren Claude-Env-Var-Default aktuell aus den globalenAGENT_BUILDER_CLAUDE_MODEL/AGENT_BUILDER_CLAUDE_REASONING_EFFORT-Namen (siehecommon.pyZeile 421-436), nicht aus researcherspezifischen Namen wie beim Codex-Zweig — vorhandene Asymmetrie im bestehenden Code, die dieses Intent nicht auflöst, nur respektiert (expliziter Parameter auscolumn_configüberschreibt in beiden Fällen unabhängig vom jeweiligen Env-Var-Namen).
Erfolgskriterien
- Eine Karte, die mit einer vom Default abweichenden
column_config["recherche_laeuft"]-Konfiguration nachrecherche_laeuftgezogen wird, löst einen Research-Lauf mit genau diesem Modell/Reasoning-Effort aus (verifizierbar am tatsächlich aufgerufenen Kommando bzw. an einem Test mit Fake-Subprocess). - Unveränderte Default-Konfiguration führt zu identischem Verhalten wie vor diesem Intent (Env-Var-Fallback).
- Bestehende Research-Tests bleiben grün, neue Tests sind grün.