- Update AGENTS.md watermarks to current HEAD (9ec0c02)
- lib/AGENTS.md: document parse-deps.sh inline scan now skips fenced
code blocks to prevent false positives from code examples in issue bodies
- No blocked issues to review
- Pending actions: none
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
<!-- last-reviewed: 9ec0c0221032979bd4440b9fd67f2072f1de01be
|
|
# Predictor Agent
|
|
|
|
**Role**: Risk oracle and opportunity spotter (the "goblin"). Runs a 3-step
|
|
formula (preflight → collect-signals → analyze-and-predict) via interactive
|
|
tmux Claude session (sonnet). Collects three categories of signals:
|
|
|
|
1. **Health signals** — CI pipeline trends (Woodpecker), stale issues, agent
|
|
health (tmux sessions + logs), resource patterns (RAM, disk, load, containers)
|
|
2. **Outcome signals** — output freshness (formula journals/artifacts), capacity
|
|
utilization (idle agents vs dispatchable backlog), throughput (closed issues,
|
|
merged PRs, churn detection)
|
|
3. **External signals** — dependency security advisories, upstream breaking
|
|
changes, deprecation notices, ecosystem shifts (via targeted web search)
|
|
|
|
Files up to 5 `prediction/unreviewed` issues for the Planner to triage.
|
|
Predictions cover both "things going wrong" and "opportunities being missed".
|
|
The predictor MUST NOT emit feature work — only observations about health,
|
|
outcomes, and external risks/opportunities.
|
|
|
|
**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 via `run_formula_and_monitor`
|
|
- `formulas/run-predictor.toml` — Execution spec: three steps (preflight,
|
|
collect-signals, analyze-and-predict) with `needs` dependencies. Claude
|
|
collects signals and files prediction issues in a single interactive session
|
|
|
|
**Environment variables consumed**:
|
|
- `CODEBERG_TOKEN`, `CODEBERG_REPO`, `CODEBERG_API`, `PROJECT_NAME`, `PROJECT_REPO_ROOT`
|
|
- `PRIMARY_BRANCH`, `CLAUDE_MODEL` (set to sonnet by predictor-run.sh)
|
|
- `WOODPECKER_TOKEN`, `WOODPECKER_SERVER` — CI pipeline trend queries (optional; skipped if unset)
|
|
- `MATRIX_TOKEN`, `MATRIX_ROOM_ID`, `MATRIX_HOMESERVER` — Notifications (optional)
|
|
|
|
**Lifecycle**: predictor-run.sh (daily 06:00 cron) → lock + memory guard →
|
|
load formula + context → create tmux session → Claude collects signals
|
|
(health: CI trends, stale issues, agent health, resources; outcomes: output
|
|
freshness, capacity utilization, throughput; external: dependency advisories,
|
|
ecosystem changes via web search) → dedup against existing open predictions →
|
|
file `prediction/unreviewed` issues → `PHASE:done`.
|
|
The planner's Phase 1 later triages these predictions.
|