From one-horizon
Turn recent work into an engineering retro with shipped work, patterns, and momentum in one place. Use when asked to "weekly retro", "what did we ship", "engineering retrospective", "retro this sprint", or "team retro". Proactively suggest at the end of a work week or sprint. Requires One Horizon MCP.
npx claudepluginhub onehorizonai/skills --plugin one-horizonThis skill uses the workspace's default tool permissions.
Generate a personal or team engineering retrospective from One Horizon.
Analyzes git commit history for engineering retrospectives, tracking work patterns, code quality metrics, trends, per-person breakdowns, shipping streaks, and actionable improvements. Use for 'retro', weekly reviews, or 'what did we ship'.
Conducts project or sprint retrospectives by gathering data from status reports, velocity metrics, and artifacts; structures what went well, improvements, and generates actionable items with owners and due dates. Use at sprint ends, milestones, or reviews.
Structures PM weekly reviews by synthesizing metrics, shipped progress, blockers, insights, and next-week priorities into shareable updates. For end-of-week summaries or planning sessions.
Share bugs, ideas, or general feedback.
Generate a personal or team engineering retrospective from One Horizon.
7d.24h, 7d, 14d, and 30d.compare to compare the current window against the immediately prior same-length window.list-my-teams.list-my-teams returns exactly one team, use it.Use One Horizon as the source of truth. Do not fall back to git unless the user explicitly asks for repository-level metrics too.
For personal scope, fetch:
my-work-recap({
"startDate": "<iso-start>",
"endDate": "<iso-end>"
})
list-completed-work({
"startDate": "<iso-start>",
"endDate": "<iso-end>"
})
list-planned-work()
list-blockers()
For team scope:
list-my-teams or find-team-member if the user named a person.team-work-recap({
"teamId": "<teamId>",
"startDate": "<iso-start>",
"endDate": "<iso-end>"
})
list-completed-work({
"teamId": "<teamId>",
"startDate": "<iso-start>",
"endDate": "<iso-end>"
})
list-planned-work({ "teamId": "<teamId>" })
list-blockers({ "teamId": "<teamId>" })
For per-person analysis, use the team member list from list-my-teams, then fetch member-level work only for contributors active in the window or people called out by the user:
list-completed-work({
"teamId": "<teamId>",
"userId": "<userId>",
"startDate": "<iso-start>",
"endDate": "<iso-end>"
})
list-planned-work({
"teamId": "<teamId>",
"userId": "<userId>"
})
list-blockers({
"teamId": "<teamId>",
"userId": "<userId>"
})
Use get-task-details only for the biggest ships, ambiguous task titles, or to extract richer Products, Goals, components, and labels for hotspot analysis.
Build a summary table with the strongest available One Horizon signals:
| Metric | Meaning |
|---|---|
| Completed items | Total completed work in the window |
| Contributors | Distinct people with completed work |
| Initiatives advanced | Completed items linked to initiatives or initiative work surfaced in recap |
| Bugs fixed | Bug tasks or work explicitly marked isBugFix |
| Planned still open | Current planned work not finished yet |
| Current blockers | Open blocked items now |
| Active days | Distinct completion dates in the window |
| Throughput/day | Completed items divided by active days |
| Interrupt ratio | Bug fixes or reactive work divided by completed items |
| Quality investment ratio | Test, refactor, docs, or hardening work divided by completed items |
For code-quality metrics, prefer explicit booleans such as isBugFix, isTest, isDocumentation, isRefactor, and isNewFeature when present. If they are missing, infer conservatively from task type, title, and labels, and say the metric is inferred.
Also derive:
For each active contributor, compute:
Write 2-4 sentences per person:
What they shipped: concrete summary of their work and focus areas.Praise: 1-2 specific strengths anchored in actual completed items.Growth area: 1 concrete investment suggestion anchored in the data, framed as leveling up rather than criticism.If only one person contributed, skip the team breakdown and write a deeper personal section instead.
Persist retro history in the current workspace under .context/retros/.
.context/retros/YYYY-MM-DD-N.json.Use a compact schema like:
{
"date": "2026-04-01",
"scope": "team",
"teamId": "team_123",
"teamName": "Platform",
"window": "7d",
"startDate": "2026-03-25T00:00:00+01:00",
"endDate": "2026-04-01T23:59:59+02:00",
"metrics": {
"completed": 18,
"contributors": 4,
"initiativesAdvanced": 6,
"bugsFixed": 5,
"plannedStillOpen": 7,
"blockers": 2,
"activeDays": 5,
"throughputPerDay": 3.6,
"interruptRatio": 0.28,
"qualityInvestmentRatio": 0.33
},
"people": {
"Alex": {
"completed": 7,
"bugsFixed": 1,
"topAreas": ["checkout", "crm"]
}
},
"tweetable": "Week of Mar 25: 18 items shipped, 4 contributors, 6 initiative moves, 5 bug fixes, quality investment 33%"
}
If no prior retro exists, say that it is the first recorded retro for that scope and window.
Structure the response in this order:
## Engineering Retro: <date range>## Your week## Team highlightsFormatting rules:
## for the main sections.Wins, Friction and follow-through, and Next-week focus.Section intent:
Summary table: the compact factual snapshot.Trends vs last retro: only include meaningful deltas, not every metric.Delivery mix and quality signals: explain what kind of work dominated and whether the team invested in quality.Work patterns: call out timing, clustering, carryover, or interruption patterns.Your week or Team highlights: explain the concrete work that mattered most.Wins: specific shipped outcomes, not generic praise.Friction and follow-through: blockers, churn, carryover, or process debt that deserves attention.Next-week focus: the 2-4 most important follow-through items or habits.Scope rules:
## Your week and do not include a team breakdown.## Your week.## Team highlights and include a short per-person subsection only when it adds signal.Thin-data rules:
Trends vs last retro entirely and mention first-run status in the TLDR or closing line.Friction and follow-through as a short sentence instead of a padded list.For work-pattern analysis, use completion timestamps if the data includes them: