2.8 KiB
Predictor Agent
Role: Abstract adversary (the "goblin"). Runs a 2-step formula (preflight → find-weakness-and-act) via interactive tmux Claude session (sonnet). Finds the project's biggest weakness, challenges planner claims, and generates evidence through explore/exploit decisions:
- Explore (low confidence) — file a
prediction/unreviewedissue for the planner to triage - Exploit (high confidence) — file a prediction AND dispatch a formula
via an
actionissue to generate evidence before the planner even runs
The predictor's own prediction history (open + closed issues) serves as its memory — it reviews what was actioned, dismissed, or deferred to decide where to focus next. No hardcoded signal categories; Claude decides where to look based on available data: prerequisite tree, evidence directories, VISION.md, RESOURCES.md, open issues, agent logs, and external signals (via web search).
Files up to 5 actions per run (predictions + dispatches combined). Each exploit counts as 2 (prediction + action dispatch). The predictor MUST NOT emit feature work — only observations challenging claims, exposing gaps, and surfacing risks.
Trigger: predictor-run.sh runs daily at 06:00 UTC via cron (1h before
the planner at 07:00). Guarded by PID lock (/tmp/predictor-run.lock) and
memory check (skips if available RAM < 2000 MB).
Key files:
predictor/predictor-run.sh— Cron wrapper + orchestrator: lock, memory guard, sources disinto project config, builds prompt with formula + Codeberg API reference, creates tmux session (sonnet), monitors phase file, handles crash recovery viarun_formula_and_monitorformulas/run-predictor.toml— Execution spec: two steps (preflight, find-weakness-and-act) withneedsdependencies. Claude reviews prediction history, explores/exploits weaknesses, and files issues in a single interactive session
Environment variables consumed:
CODEBERG_TOKEN,CODEBERG_REPO,CODEBERG_API,PROJECT_NAME,PROJECT_REPO_ROOTPRIMARY_BRANCH,CLAUDE_MODEL(set to sonnet by predictor-run.sh)MATRIX_TOKEN,MATRIX_ROOM_ID,MATRIX_HOMESERVER— Notifications (optional)
Lifecycle: predictor-run.sh (daily 06:00 cron) → lock + memory guard →
load formula + context (AGENTS.md, RESOURCES.md, VISION.md, prerequisite-tree.md)
→ create tmux session → Claude fetches prediction history (open + closed) →
reviews track record (actioned/dismissed/watching) → finds weaknesses
(prerequisite tree gaps, thin evidence, stale watches, external risks) →
dedup against existing open predictions → explore (file prediction) or exploit
(file prediction + dispatch formula via action issue) → PHASE:done.
The planner's Phase 1 later triages these predictions.