Strategy
The optional Strategist turns a repository charter and recent pipeline signals into a proposed strategy snapshot. It does not write code, edit issues, or change active tracks on its own. A human must approve a proposal before supported track changes become active.
Inputs and output
Section titled “Inputs and output”Each scheduled or on-demand run loads:
- the repository’s active charter
- the currently active snapshot, if one exists
- the current track list
- signals such as open findings, pipeline outcomes, cost concentration, and activity by area
It builds one prompt and makes one LLM call with one turn. The response is validated and stored as one proposed snapshot. A run fails if the repository has no active charter.
Charter
Section titled “Charter”A versioned charter contains free-text goals and a risk envelope:
| Field | Current behavior |
|---|---|
max_auto_size | Hard approval-time limit on the largest proposed track slate size: small, medium, large, or epic. |
prefer | Guidance included in the Strategist prompt. |
avoid | Guidance included in the Strategist prompt. |
escalate_when | Guidance included in the Strategist prompt. |
Only max_auto_size is enforced as a hard gate by the snapshot application path. The free-text lists influence the LLM proposal but are not a general policy engine.
Tracks and prompt versions
Section titled “Tracks and prompt versions”A track is a named, repository-scoped category of self-improvement work. Its stored metadata includes:
- a stable name and code-host label
- enabled or paused status
cooldownorcroncadence- cooldown minutes and, for cron cadence, an expression
- a proposal slate describing how many candidates of each size analysis should offer
- a numeric weight
- an active prompt version
A prompt version stores a seed issue title, seed issue body, and instructions used when analyzing that self-improvement seed.
weight is part of the strategy portfolio and proposal data. The current seeding loop evaluates every enabled track independently; weight does not by itself make one track seed more frequently or give its issue higher task-queue priority.
Snapshot contents
Section titled “Snapshot contents”A snapshot proposal contains:
intentandrationaleportfoliodirectives for existing trackscreatesdirectives for new tracks- names of tracks to retire
A portfolio directive can propose track status, weight, cadence, proposal slate, and a pinned or new prompt. Which directive fields can be applied through a particular UI or deployment path is deployment-specific; approval should be reviewed against the resulting track configuration.
Lifecycle and approval
Section titled “Lifecycle and approval”Snapshots use four stored statuses:
proposed → approved → active → supersededApproval validates that the proposal is based on the current active snapshot and that proposed slate sizes fit max_auto_size. Applying it activates the new snapshot and supersedes the previous active one. Exactly one snapshot is active for the repository at a time; older snapshots remain as history.
The scheduled cycle produces proposals only. It does not approve them, create self-improvement issues, or run development. Those are separate approval, seeding, and pipeline steps.
Relationship to self-improvement
Section titled “Relationship to self-improvement”Strategy changes the configuration that self-improvement will use on later seeding cycles. Self-improvement then creates seed issues according to each enabled track’s cadence and requires a candidate-selection step before implementation.
See Self-Improvement for that execution path and Configuration Schema for supported setup fields.