Retrospectives
The Retrospectives tab (/repos/<owner>/<name>/retrospectives) shows what Colony has learned from completed issues in this repository — where implementation scope drifted from plan, how issues resolved, which failure modes recurred, and what candidate observations are ready for promotion into the intelligence store.
Data is loaded from GET /pipeline/repos/<owner>/<name>/retrospectives. Every metric on this tab is scoped to issues whose retrospective records were created within the selected window.
Window selector
Section titled “Window selector”A dropdown at the top of the tab lets you choose the lookback window: 7 days, 30 days (default), or 90 days. Changing the window reloads all five sections.
Outcome distribution
Section titled “Outcome distribution”The Outcome Distribution card shows how completed issues resolved, broken down by outcome classification. Each bar represents one outcome category (e.g. success, partial, failure) alongside a count for the selected window.
The outcome classification is recorded by the retrospector agent when an issue completes. Outcomes are sourced from the outcome_classification column of issue_retrospectives. Only issues with a non-null classification appear.
See Outcome Distribution in the Metrics reference for the canonical definition and calculation.
Empty state: “No outcome data recorded in this window.” Appears when no issues in the window have a recorded outcome_classification. Check the current status tab for in-flight issues that have not yet completed.
Plan drift
Section titled “Plan drift”The Plan Drift card compares the number of files Colony planned to touch against the number it actually touched, for each issue in the window.
The headline figure is the plan drift rate — the fraction of issues where actual file scope differed from planned scope:
plan drift rate = (touchedMore + touchedFewer) / totalRetrospectivesWithFileDataWhere totalRetrospectivesWithFileData is the count of issues whose retrospective records have both planned_files and actual_files as valid JSON arrays. Issues missing either field are counted separately as noData and excluded from the rate denominator.
Below the rate, three rows break down the population:
| Row | Meaning |
|---|---|
| Touched more files | Actual file count exceeded planned file count. |
| Touched fewer files | Actual file count was below planned file count. |
| Matched plan | Actual and planned file counts were equal. |
Empty state: “No file scope data available for this window. Drift data accumulates as issues complete with planned-vs-actual file records.” Appears when no issues in the window have both planned and actual file arrays recorded.
A rising drift rate means the analyzer is systematically under-scoping or over-scoping the work; review planning prompts to reduce drift.
See Plan Drift Rate in the Metrics reference for the canonical definition, calculation, and action guidance.
Failure patterns
Section titled “Failure patterns”The Failure Patterns card aggregates recurring error signatures and failure modes Colony encountered while completing issues in the window.
Patterns are drawn from two fields on each issue_retrospectives row:
failures.items— a JSON array of individual failure descriptions.failures.root_causes— a JSON array of identified root causes.
Both arrays are merged, lowercased, and trimmed. Duplicate strings are counted across all retrospectives in the window. The top 20 patterns by frequency are shown, each with a bar proportional to its count.
Empty state: “No failure patterns recorded in this window.” Appears when no issues in the window recorded any failure items or root causes. Check Pipeline Live for issues that may have stalled without completing.
Aggregated lessons
Section titled “Aggregated lessons”The Aggregated Lessons card surfaces what Colony learned from successfully completed issues in the window — patterns that worked and coupling relationships it noticed.
Lessons are drawn from two fields on each issue_retrospectives row:
lessons.successful_patterns— a JSON array of approaches that worked well.lessons.new_couplings— a JSON array of coupling relationships observed between files or modules.
Both arrays are merged, lowercased, and trimmed. Duplicate strings are counted. The top 20 lessons by frequency are shown. A recurring lesson across many issues indicates a durable pattern worth promoting into the intelligence store.
Empty state: “No lessons accumulated in this window.” Appears when no completed issues in the window recorded any successful patterns or couplings.
Candidate intelligence awaiting promotion
Section titled “Candidate intelligence awaiting promotion”The Candidate Intelligence Awaiting Promotion card lists observations that the retrospector agent has flagged as potentially worth adding to the curated intelligence store. These are not yet promoted — they are candidates for review.
Each entry shows:
- Issue number — a link to the issue that generated the observation.
- Kind badge — the category of knowledge (see table below).
- Text — the observation text.
Kinds are drawn from the candidate_intelligence JSONB column of issue_retrospectives:
| Kind | Display | Description |
|---|---|---|
invariant | invariant | A constraint that should remain true across the codebase. |
playbook_item | playbook item | A step-by-step procedure Colony should apply to this class of task. |
failure_pattern | failure pattern | A recurring error signature or root cause to watch for. |
intelligence | intelligence | General-purpose knowledge about the codebase or how it should be approached. |
Entries are ordered with should_promote = true items first, then by recency. Up to 100 candidates are shown per window.
Empty state: “No candidate intelligence in this window.” Appears when no retrospectives in the window produced candidate observations. View the intelligence store to review items already promoted.
Related metrics
Section titled “Related metrics”The Retrospectives tab surfaces issue-level drift and outcome data. For rolling repo and org health signals — Block Rate, Failure-Blocked Rate, Mean Cost / Issue, Mean Turns / Issue, Reimplement Loop Rate, and Dead Letter Rate — see the Rolling Health KPIs section in the Metrics reference. Those metrics are computed over a rolling baseline window and are not shown on this tab.