Skip to content

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.

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.

A versioned charter contains free-text goals and a risk envelope:

FieldCurrent behavior
max_auto_sizeHard approval-time limit on the largest proposed track slate size: small, medium, large, or epic.
preferGuidance included in the Strategist prompt.
avoidGuidance included in the Strategist prompt.
escalate_whenGuidance 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.

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
  • cooldown or cron cadence
  • 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.

A snapshot proposal contains:

  • intent and rationale
  • portfolio directives for existing tracks
  • creates directives 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.

Snapshots use four stored statuses:

proposed → approved → active → superseded

Approval 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.

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.