Self-Improvement
Self-improvement (SI) is an optional issue-seeding loop. An enabled track periodically creates an issue that asks Colony to find improvement candidates in a repository. It does not bypass analysis, human selection, development, or review.
What a track controls
Section titled “What a track controls”Each stored track has a name, label, enabled state, cadence, proposal slate, weight, and active prompt version. The prompt version provides:
- the title and body of the seed issue
- instructions the analyzer uses to identify candidate improvements
The proposal slate specifies the candidate sizes and counts to offer—for example, two small candidates and one medium candidate. Weight is stored for strategy portfolio decisions; the current seeding loop does not use it to increase seed frequency or queue priority.
Cadence and cooldown
Section titled “Cadence and cooldown”Seeding runs only when self-improvement is enabled, a track store is available, and the track itself is enabled. Before creating anything, Colony checks that the track has no open, non-completed linked SI issue. A track therefore has at most one open SI issue at a time.
For cooldown cadence:
- the first seed can be created immediately when there is no completed issue
- later seeds wait until
cooldown_minuteshas elapsed since the latest linked issue completed
The cooldown is completion-based, not time since creation. An open issue blocks the next seed regardless of elapsed time. Cancelling a linked SI issue records completion for this purpose, so the normal cooldown starts from cancellation.
For cron cadence:
- the first seed can be created immediately
- later seeds are eligible when the most recent UTC occurrence of the cron expression is later than the latest completion
- an open linked issue still blocks seeding
Invalid or missing cron expressions do not seed.
From seed to candidate selection
Section titled “From seed to candidate selection”When eligible, Colony:
- Loads the track’s active prompt version, with configured or built-in fallback text.
- Creates a real issue using that stored title and body.
- Persists the pipeline issue and track link as the authoritative records.
- Applies the track label to the code-host issue on a best-effort basis.
- Runs analysis using the track instructions and proposal slate.
The seeder does not dynamically fill the seed body with recent repository signals. Repository inspection happens during analysis.
The analyzer posts a candidate list for human selection and waits for clarification. A human selects a candidate or requests another slate. After selection:
- small or medium work can proceed to development
- large work returns through analysis for decomposition
- epic work enters planning and decomposition
From there, the selected work uses the same development, automated review, merge policy, and recovery paths as other pipeline issues.
Relationship to Strategy
Section titled “Relationship to Strategy”Tracks can be managed directly. The optional Strategist can also propose changes to track status, cadence, weight, proposal slate, and prompts, but its snapshot requires human approval. Strategy proposals do not themselves seed an issue.
See Strategy and Configuration Schema for the two configuration layers.