Skip to content

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.

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.

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.

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) / totalRetrospectivesWithFileData

Where 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:

RowMeaning
Touched more filesActual file count exceeded planned file count.
Touched fewer filesActual file count was below planned file count.
Matched planActual 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.

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.

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.

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:

KindDisplayDescription
invariantinvariantA constraint that should remain true across the codebase.
playbook_itemplaybook itemA step-by-step procedure Colony should apply to this class of task.
failure_patternfailure patternA recurring error signature or root cause to watch for.
intelligenceintelligenceGeneral-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.

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.