@olegkoval/agent-skills 1.32.0 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +3 -1
- package/.cursor-plugin/index.json +10 -0
- package/.grok-plugin/index.json +10 -0
- package/.kiro/steering/retro-analysis.md +186 -0
- package/.kiro/steering/wrap-up.md +77 -0
- package/.windsurf/rules/retro-analysis.md +185 -0
- package/.windsurf/rules/wrap-up.md +76 -0
- package/README.md +6 -4
- package/catalog/skills.json +49 -0
- package/collections/software-development.json +2 -0
- package/package.json +1 -1
- package/packages/software-development/add-to-my-skills/adapters/codex/README.md +16 -2
- package/packages/software-development/retro-analysis/SKILL.md +195 -0
- package/packages/software-development/retro-analysis/adapters/claude/plugin.json +5 -0
- package/packages/software-development/retro-analysis/adapters/claude/skills/retro-analysis/SKILL.md +196 -0
- package/packages/software-development/retro-analysis/adapters/codex/README.md +16 -0
- package/packages/software-development/retro-analysis/adapters/cursor/plugin.json +6 -0
- package/packages/software-development/retro-analysis/adapters/cursor/skills/retro-analysis/SKILL.md +197 -0
- package/packages/software-development/retro-analysis/adapters/grok/plugin.json +6 -0
- package/packages/software-development/retro-analysis/adapters/grok/skills/retro-analysis/SKILL.md +196 -0
- package/packages/software-development/retro-analysis/adapters/kiro/steering/retro-analysis.md +186 -0
- package/packages/software-development/retro-analysis/adapters/windsurf/rules/retro-analysis.md +185 -0
- package/packages/software-development/wrap-up/SKILL.md +86 -0
- package/packages/software-development/wrap-up/adapters/claude/plugin.json +5 -0
- package/packages/software-development/wrap-up/adapters/claude/skills/wrap-up/SKILL.md +87 -0
- package/packages/software-development/wrap-up/adapters/codex/README.md +17 -0
- package/packages/software-development/wrap-up/adapters/cursor/plugin.json +6 -0
- package/packages/software-development/wrap-up/adapters/cursor/skills/wrap-up/SKILL.md +88 -0
- package/packages/software-development/wrap-up/adapters/grok/plugin.json +6 -0
- package/packages/software-development/wrap-up/adapters/grok/skills/wrap-up/SKILL.md +87 -0
- package/packages/software-development/wrap-up/adapters/kiro/steering/wrap-up.md +77 -0
- package/packages/software-development/wrap-up/adapters/windsurf/rules/wrap-up.md +76 -0
package/catalog/skills.json
CHANGED
|
@@ -766,6 +766,55 @@
|
|
|
766
766
|
"grok"
|
|
767
767
|
]
|
|
768
768
|
},
|
|
769
|
+
{
|
|
770
|
+
"name": "wrap-up",
|
|
771
|
+
"lookupName": "olko:wrap-up",
|
|
772
|
+
"category": "software-development",
|
|
773
|
+
"path": "packages/software-development/wrap-up",
|
|
774
|
+
"description": "Verify a completed task against its original objective, confirm applicable checks, and safely tidy task-owned artifacts, worktrees, and local branches.",
|
|
775
|
+
"tags": [
|
|
776
|
+
"delivery",
|
|
777
|
+
"verification",
|
|
778
|
+
"cleanup",
|
|
779
|
+
"git",
|
|
780
|
+
"worktrees",
|
|
781
|
+
"release-hygiene"
|
|
782
|
+
],
|
|
783
|
+
"adapters": [
|
|
784
|
+
"codex",
|
|
785
|
+
"claude",
|
|
786
|
+
"cursor",
|
|
787
|
+
"copilot",
|
|
788
|
+
"windsurf",
|
|
789
|
+
"kiro",
|
|
790
|
+
"grok"
|
|
791
|
+
]
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"name": "retro-analysis",
|
|
795
|
+
"lookupName": "olko:retro-analysis",
|
|
796
|
+
"category": "software-development",
|
|
797
|
+
"path": "packages/software-development/retro-analysis",
|
|
798
|
+
"description": "Produce repository, comparison, and cross-project engineering retrospectives from delivery, code-quality, work-pattern, and trend evidence.",
|
|
799
|
+
"tags": [
|
|
800
|
+
"retrospective",
|
|
801
|
+
"metrics",
|
|
802
|
+
"git",
|
|
803
|
+
"productivity",
|
|
804
|
+
"code-quality",
|
|
805
|
+
"trends",
|
|
806
|
+
"planning"
|
|
807
|
+
],
|
|
808
|
+
"adapters": [
|
|
809
|
+
"codex",
|
|
810
|
+
"claude",
|
|
811
|
+
"cursor",
|
|
812
|
+
"copilot",
|
|
813
|
+
"windsurf",
|
|
814
|
+
"kiro",
|
|
815
|
+
"grok"
|
|
816
|
+
]
|
|
817
|
+
},
|
|
769
818
|
{
|
|
770
819
|
"name": "ai-tools-setup",
|
|
771
820
|
"lookupName": "olko:ai-tools-setup",
|
package/package.json
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
-
# Codex
|
|
1
|
+
# Codex Adapter for add-to-my-skills
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This is the Codex-specific adapter for the `olko:add-to-my-skills` skill. The canonical workflow is in
|
|
4
|
+
`../../SKILL.md`.
|
|
5
|
+
|
|
6
|
+
## Usage
|
|
7
|
+
|
|
8
|
+
Invoke it when a skill from another repository or a catalog page should become a first-class package:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
Use the olko:add-to-my-skills skill to bring this skill into the catalog, generate all adapters, validate it, and publish the change.
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
For Codex, resolve a supplied `skills.olegkoval.com/skills/<name>/` URL to its canonical GitHub or local
|
|
15
|
+
source before copying. Preserve unrelated dirty work, prefer an isolated worktree, update the canonical
|
|
16
|
+
`SKILL.md` before generated adapters, run `npm run build` and `npm test`, and report commit/push/PR state
|
|
17
|
+
separately from local validation.
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: retro-analysis
|
|
3
|
+
description: Produce a recurring engineering retrospective from repository history, delivery evidence, work patterns, code-quality signals, and prior snapshots, with repository, comparison, and cross-project modes.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: Oleg Koval
|
|
7
|
+
tags:
|
|
8
|
+
- retrospective
|
|
9
|
+
- metrics
|
|
10
|
+
- git
|
|
11
|
+
- productivity
|
|
12
|
+
- code-quality
|
|
13
|
+
- trends
|
|
14
|
+
- planning
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Retro Analysis
|
|
18
|
+
|
|
19
|
+
Run a factual engineering retrospective over a defined time window. The purpose is to explain what changed, how the work happened, what quality signals say, what was learned, and what should improve next. This is an analysis workflow, not a performance-ranking or blame exercise.
|
|
20
|
+
|
|
21
|
+
Use it manually at the end of a day, week, sprint, or release; on a recurring schedule; or when asked what was shipped, where time went, or how delivery quality is trending. When a specific implementation has just reached its goal, run this analysis before or alongside `olko:wrap-up` so the delivery audit and the broader retrospective remain distinct.
|
|
22
|
+
|
|
23
|
+
## Invocation
|
|
24
|
+
|
|
25
|
+
Accept one of these arguments:
|
|
26
|
+
|
|
27
|
+
- no argument or `7d`: the previous seven calendar days
|
|
28
|
+
- `24h`: the previous 24 hours
|
|
29
|
+
- `14d` or `30d`: the previous N calendar days
|
|
30
|
+
- `compare` or `compare 14d`: compare the selected window with the immediately preceding window of equal length
|
|
31
|
+
- `global`, `global 14d`: aggregate across discoverable repositories and agent sessions
|
|
32
|
+
|
|
33
|
+
If the argument is invalid, print the accepted forms and stop. Do not silently choose a different window.
|
|
34
|
+
|
|
35
|
+
Calendar windows are aligned to midnight in the operator's local timezone. A short hourly window may use a relative timestamp. State the resolved start, end, timezone, scope, and comparison window at the beginning of the report.
|
|
36
|
+
|
|
37
|
+
## Safety and evidence rules
|
|
38
|
+
|
|
39
|
+
- Be read-only by default. Do not push, merge, deploy, close issues, edit source, or rewrite history.
|
|
40
|
+
- A local retro may write one task-owned snapshot under `.context/retros/` when that directory exists or when persistence is explicitly requested. Never overwrite an existing snapshot; use a date and window-specific filename.
|
|
41
|
+
- Do not fetch or refresh remote refs unless the user or the surrounding workflow authorized that read-side state change. If refs may be stale, say so and use the available evidence.
|
|
42
|
+
- Preserve dirty work, untracked files, existing snapshots, credentials, and unrelated temporary artifacts.
|
|
43
|
+
- Never infer delivery from a local commit. Treat local Git, remote/PR state, CI, deployment, and device or human QA as separate evidence gates.
|
|
44
|
+
- Do not expose secrets, tokens, private prompts, or raw session content. Use aggregate counts and redacted references only.
|
|
45
|
+
- Missing data is `UNKNOWN`, not zero. Distinguish “none found” from “not available”.
|
|
46
|
+
- Do not turn commit count, lines changed, hours, or AI-assisted activity into a simplistic productivity score. Use them as context for the narrative.
|
|
47
|
+
|
|
48
|
+
## 1. Establish scope and baseline
|
|
49
|
+
|
|
50
|
+
For repository mode:
|
|
51
|
+
|
|
52
|
+
1. Identify the repository, current branch, `HEAD`, configured author, base branch, and working-tree state.
|
|
53
|
+
2. Preserve and report pre-existing dirty paths; do not include their changes as delivered work unless the evidence links them to the window.
|
|
54
|
+
3. Use the repository's local timezone for calendar boundaries. Use UTC timestamps in stored machine-readable data.
|
|
55
|
+
4. Read only relevant project documentation and task artifacts needed to interpret the changes. Do not invent milestones, objectives, or acceptance criteria.
|
|
56
|
+
5. Locate prior snapshots in `.context/retros/` and load the immediately preceding comparable snapshot when available.
|
|
57
|
+
|
|
58
|
+
For global mode:
|
|
59
|
+
|
|
60
|
+
1. Discover repositories from the configured workspace locations or an existing discovery tool. If discovery is unavailable, report that limitation and continue with explicitly supplied paths.
|
|
61
|
+
2. For each repository, collect the same bounded evidence as repository mode and skip missing, inaccessible, or non-Git directories.
|
|
62
|
+
3. Optionally include available agent/session summaries or tool telemetry, but only as aggregate, redacted evidence. Do not require a specific agent vendor, plugin, or telemetry format.
|
|
63
|
+
4. Keep per-project results separate before producing cross-project totals. Never hide a repository-level failure in an aggregate.
|
|
64
|
+
|
|
65
|
+
## 2. Collect raw evidence
|
|
66
|
+
|
|
67
|
+
Capture enough raw data to reproduce the analysis. Prefer stable Git/provider CLIs already present in the environment. Save only the normalized snapshot unless raw artifacts were explicitly requested.
|
|
68
|
+
|
|
69
|
+
### Repository history
|
|
70
|
+
|
|
71
|
+
Collect, bounded to the resolved window and scope:
|
|
72
|
+
|
|
73
|
+
- commit hash, author, timestamp, subject, body, and parent information
|
|
74
|
+
- insertions, deletions, files changed, and test-file versus production-file changes
|
|
75
|
+
- commit type signals from Conventional Commit prefixes, labels, or equivalent repository conventions
|
|
76
|
+
- pull request or merge request references present in commits, and provider state when a provider CLI is available
|
|
77
|
+
- changed-file frequency, churn, and hotspots; distinguish generated, vendored, lockfile, and source files when possible
|
|
78
|
+
- per-author commit and file ownership signals, including co-authors and AI-assisted markers only when explicitly present
|
|
79
|
+
|
|
80
|
+
Use `git log --shortstat` or equivalent for commit-level change counts and `git diff --numstat` or equivalent for test/source proportions. If a command cannot run, record the command and reason; do not substitute invented values.
|
|
81
|
+
|
|
82
|
+
### Delivery and quality signals
|
|
83
|
+
|
|
84
|
+
Inspect only signals that exist in the repository or authorized provider tooling:
|
|
85
|
+
|
|
86
|
+
- branch and remote tracking state, current PR title/body, review state, and current-head checks
|
|
87
|
+
- test files, test commands, recent test-related commits, and known failing or skipped checks
|
|
88
|
+
- changelog, release notes, issue/task references, and plan artifacts when present
|
|
89
|
+
- TODO/backlog markers when a project-maintained backlog exists
|
|
90
|
+
- regression fixes, reverted changes, follow-up fixes, and repeated failure patterns
|
|
91
|
+
- optional review or static-analysis summaries, clearly labeling unavailable or rate-limited providers
|
|
92
|
+
|
|
93
|
+
Never call an absent test suite “healthy”; report `NOT_AVAILABLE`. Never call a skipped check green.
|
|
94
|
+
|
|
95
|
+
### Work-pattern signals
|
|
96
|
+
|
|
97
|
+
When timestamps are available:
|
|
98
|
+
|
|
99
|
+
- build an hour-of-day histogram in local time
|
|
100
|
+
- group commits or activity into sessions separated by at least 45 minutes of inactivity
|
|
101
|
+
- classify sessions as deep (3+ hours), medium (1–3 hours), or micro (<1 hour)
|
|
102
|
+
- count active days, longest streak, and context switches between repositories or work areas
|
|
103
|
+
|
|
104
|
+
Treat commit timestamps as a proxy, not proof of keyboard time. If session telemetry exists, prefer it and name the source.
|
|
105
|
+
|
|
106
|
+
## 3. Compute the analysis
|
|
107
|
+
|
|
108
|
+
Use the evidence to calculate, or explicitly mark unavailable, the following dimensions:
|
|
109
|
+
|
|
110
|
+
### Shipping and scope
|
|
111
|
+
|
|
112
|
+
- features, fixes, refactors, docs, tests, chores, and releases shipped
|
|
113
|
+
- commits, weighted commits, active days, contributors, and referenced PRs
|
|
114
|
+
- version range or release identifiers when the repository exposes them
|
|
115
|
+
- logical lines changed and raw lines changed, reported separately
|
|
116
|
+
- plan or objective items completed, deferred, or still open when a plan is available
|
|
117
|
+
|
|
118
|
+
### Quality and maintainability
|
|
119
|
+
|
|
120
|
+
- test lines or test files changed relative to production changes
|
|
121
|
+
- test commands run and their current result
|
|
122
|
+
- regressions, reverts, repeated fixes, and hotspots with high churn
|
|
123
|
+
- type, lint, build, security, review, and release signals when available
|
|
124
|
+
- backlog/TODO health only when there is a maintained source to inspect
|
|
125
|
+
|
|
126
|
+
Do not reward large diffs or penalize small ones without explaining their context. A small change that closes a high-value objective can be the most important shipment.
|
|
127
|
+
|
|
128
|
+
### Focus and delivery flow
|
|
129
|
+
|
|
130
|
+
- commit-type mix and fix ratio; flag a high fix ratio as a signal for investigation, not a diagnosis
|
|
131
|
+
- PR/MR size buckets and time-to-merge when provider data is available
|
|
132
|
+
- work sessions, time-of-day distribution, context switching, and focus patterns
|
|
133
|
+
- planned versus unplanned work, if the plan and change evidence support the comparison
|
|
134
|
+
- the single most consequential shipment or decision, with evidence and caveats
|
|
135
|
+
|
|
136
|
+
### People and collaboration
|
|
137
|
+
|
|
138
|
+
For multi-author work, provide a factual per-author view of commits, change volume, areas touched, review or PR participation, and notable contributions. Include a team view of ownership concentration, cross-review, handoffs, and shared hotspots. Avoid ranking people by raw LOC or commit count.
|
|
139
|
+
|
|
140
|
+
Use the configured Git author as the personal focus only when it is unambiguous. Otherwise produce a team report and state that no personal identity was selected.
|
|
141
|
+
|
|
142
|
+
## 4. Compare and track trends
|
|
143
|
+
|
|
144
|
+
For `compare` or any window with a prior snapshot:
|
|
145
|
+
|
|
146
|
+
- compare features/fixes, commits, active days, contributors, PRs, change volume, test signals, regressions, and backlog movement
|
|
147
|
+
- identify meaningful directional changes and explain whether the evidence is strong, weak, or incomplete
|
|
148
|
+
- preserve the same metric definitions between periods; do not compare a repository window to a global window as if they were equivalent
|
|
149
|
+
- report streaks, recurring hotspots, repeated failure modes, and unresolved improvements only when snapshots support them
|
|
150
|
+
|
|
151
|
+
Store a JSON snapshot with stable keys, UTC timestamps, resolved window, scope, repository identity, commit/PR identifiers, metric values, evidence limitations, and a short list of findings. Keep narrative prose out of fields intended for machine comparison. A snapshot is an aid to future analysis, not a source of truth that overrides current evidence.
|
|
152
|
+
|
|
153
|
+
## 5. Produce the report
|
|
154
|
+
|
|
155
|
+
Lead with a concise, shareable summary of the period. Then use this order:
|
|
156
|
+
|
|
157
|
+
1. **Scope and evidence** — window, timezone, repositories, branch/base, sources, and limitations.
|
|
158
|
+
2. **Summary table** — shipping, activity, quality, and delivery metrics with `UNKNOWN` where needed.
|
|
159
|
+
3. **What shipped** — the most important features, fixes, releases, or decisions, tied to commits/PRs.
|
|
160
|
+
4. **Trends** — comparison with the previous period, if available.
|
|
161
|
+
5. **Time and sessions** — active days, session shape, time distribution, and context switching.
|
|
162
|
+
6. **Quality and test health** — checks, regressions, churn hotspots, review signals, and open risks.
|
|
163
|
+
7. **Plan completion** — objective items completed, deferred, or missing evidence.
|
|
164
|
+
8. **Focus and collaboration** — personal or team analysis with fair context.
|
|
165
|
+
9. **Top wins** — three evidence-backed wins when enough evidence exists.
|
|
166
|
+
10. **Improvements** — three concrete, small, actionable improvements; fewer is fine when evidence is limited.
|
|
167
|
+
11. **Next-period habits** — explicit habits or experiments with an owner or trigger when known.
|
|
168
|
+
12. **Limitations** — missing refs, unavailable provider data, stale telemetry, dirty work, or ambiguous attribution.
|
|
169
|
+
|
|
170
|
+
Use compact tables for exact metrics and prose for interpretation. Label inference as inference. Link or name evidence paths/commit IDs where useful, but never paste private content.
|
|
171
|
+
|
|
172
|
+
## 6. End-of-task handoff
|
|
173
|
+
|
|
174
|
+
If this run is explicitly closing a completed implementation, continue with `olko:wrap-up`:
|
|
175
|
+
|
|
176
|
+
- use the retro to check that the delivered work matches the original idea and to capture follow-up items
|
|
177
|
+
- let `wrap-up` perform the separate local/remote/PR/CI/deployment/QA gates and task-owned cleanup
|
|
178
|
+
- preserve the retro snapshot and report any limitation instead of deleting evidence
|
|
179
|
+
|
|
180
|
+
For a periodic or global retrospective, do not clean worktrees, branches, logs, or temporary files unless the user explicitly asks for that separate cleanup. Analysis alone must not alter delivery state.
|
|
181
|
+
|
|
182
|
+
## Minimal final status
|
|
183
|
+
|
|
184
|
+
End every run with:
|
|
185
|
+
|
|
186
|
+
```text
|
|
187
|
+
RETRO_STATUS: DONE | DONE_WITH_LIMITATIONS | BLOCKED
|
|
188
|
+
WINDOW: <resolved window and timezone>
|
|
189
|
+
SCOPE: <repository or repositories>
|
|
190
|
+
SNAPSHOT: <path, NOT_WRITTEN, or NOT_AVAILABLE>
|
|
191
|
+
TOP_FINDINGS: <short summary>
|
|
192
|
+
NEXT_ACTIONS: <short actionable list>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Use `BLOCKED` only when the requested scope cannot be analyzed safely or the required evidence is inaccessible. A partial but clearly labeled report is `DONE_WITH_LIMITATIONS`.
|
package/packages/software-development/retro-analysis/adapters/claude/skills/retro-analysis/SKILL.md
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: retro-analysis
|
|
3
|
+
description: Produce a recurring engineering retrospective from repository history, delivery evidence, work patterns, code-quality signals, and prior snapshots, with repository, comparison, and cross-project modes.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: Oleg Koval
|
|
7
|
+
tags:
|
|
8
|
+
- retrospective
|
|
9
|
+
- metrics
|
|
10
|
+
- git
|
|
11
|
+
- productivity
|
|
12
|
+
- code-quality
|
|
13
|
+
- trends
|
|
14
|
+
- planning
|
|
15
|
+
---
|
|
16
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
17
|
+
|
|
18
|
+
# Retro Analysis
|
|
19
|
+
|
|
20
|
+
Run a factual engineering retrospective over a defined time window. The purpose is to explain what changed, how the work happened, what quality signals say, what was learned, and what should improve next. This is an analysis workflow, not a performance-ranking or blame exercise.
|
|
21
|
+
|
|
22
|
+
Use it manually at the end of a day, week, sprint, or release; on a recurring schedule; or when asked what was shipped, where time went, or how delivery quality is trending. When a specific implementation has just reached its goal, run this analysis before or alongside `olko:wrap-up` so the delivery audit and the broader retrospective remain distinct.
|
|
23
|
+
|
|
24
|
+
## Invocation
|
|
25
|
+
|
|
26
|
+
Accept one of these arguments:
|
|
27
|
+
|
|
28
|
+
- no argument or `7d`: the previous seven calendar days
|
|
29
|
+
- `24h`: the previous 24 hours
|
|
30
|
+
- `14d` or `30d`: the previous N calendar days
|
|
31
|
+
- `compare` or `compare 14d`: compare the selected window with the immediately preceding window of equal length
|
|
32
|
+
- `global`, `global 14d`: aggregate across discoverable repositories and agent sessions
|
|
33
|
+
|
|
34
|
+
If the argument is invalid, print the accepted forms and stop. Do not silently choose a different window.
|
|
35
|
+
|
|
36
|
+
Calendar windows are aligned to midnight in the operator's local timezone. A short hourly window may use a relative timestamp. State the resolved start, end, timezone, scope, and comparison window at the beginning of the report.
|
|
37
|
+
|
|
38
|
+
## Safety and evidence rules
|
|
39
|
+
|
|
40
|
+
- Be read-only by default. Do not push, merge, deploy, close issues, edit source, or rewrite history.
|
|
41
|
+
- A local retro may write one task-owned snapshot under `.context/retros/` when that directory exists or when persistence is explicitly requested. Never overwrite an existing snapshot; use a date and window-specific filename.
|
|
42
|
+
- Do not fetch or refresh remote refs unless the user or the surrounding workflow authorized that read-side state change. If refs may be stale, say so and use the available evidence.
|
|
43
|
+
- Preserve dirty work, untracked files, existing snapshots, credentials, and unrelated temporary artifacts.
|
|
44
|
+
- Never infer delivery from a local commit. Treat local Git, remote/PR state, CI, deployment, and device or human QA as separate evidence gates.
|
|
45
|
+
- Do not expose secrets, tokens, private prompts, or raw session content. Use aggregate counts and redacted references only.
|
|
46
|
+
- Missing data is `UNKNOWN`, not zero. Distinguish “none found” from “not available”.
|
|
47
|
+
- Do not turn commit count, lines changed, hours, or AI-assisted activity into a simplistic productivity score. Use them as context for the narrative.
|
|
48
|
+
|
|
49
|
+
## 1. Establish scope and baseline
|
|
50
|
+
|
|
51
|
+
For repository mode:
|
|
52
|
+
|
|
53
|
+
1. Identify the repository, current branch, `HEAD`, configured author, base branch, and working-tree state.
|
|
54
|
+
2. Preserve and report pre-existing dirty paths; do not include their changes as delivered work unless the evidence links them to the window.
|
|
55
|
+
3. Use the repository's local timezone for calendar boundaries. Use UTC timestamps in stored machine-readable data.
|
|
56
|
+
4. Read only relevant project documentation and task artifacts needed to interpret the changes. Do not invent milestones, objectives, or acceptance criteria.
|
|
57
|
+
5. Locate prior snapshots in `.context/retros/` and load the immediately preceding comparable snapshot when available.
|
|
58
|
+
|
|
59
|
+
For global mode:
|
|
60
|
+
|
|
61
|
+
1. Discover repositories from the configured workspace locations or an existing discovery tool. If discovery is unavailable, report that limitation and continue with explicitly supplied paths.
|
|
62
|
+
2. For each repository, collect the same bounded evidence as repository mode and skip missing, inaccessible, or non-Git directories.
|
|
63
|
+
3. Optionally include available agent/session summaries or tool telemetry, but only as aggregate, redacted evidence. Do not require a specific agent vendor, plugin, or telemetry format.
|
|
64
|
+
4. Keep per-project results separate before producing cross-project totals. Never hide a repository-level failure in an aggregate.
|
|
65
|
+
|
|
66
|
+
## 2. Collect raw evidence
|
|
67
|
+
|
|
68
|
+
Capture enough raw data to reproduce the analysis. Prefer stable Git/provider CLIs already present in the environment. Save only the normalized snapshot unless raw artifacts were explicitly requested.
|
|
69
|
+
|
|
70
|
+
### Repository history
|
|
71
|
+
|
|
72
|
+
Collect, bounded to the resolved window and scope:
|
|
73
|
+
|
|
74
|
+
- commit hash, author, timestamp, subject, body, and parent information
|
|
75
|
+
- insertions, deletions, files changed, and test-file versus production-file changes
|
|
76
|
+
- commit type signals from Conventional Commit prefixes, labels, or equivalent repository conventions
|
|
77
|
+
- pull request or merge request references present in commits, and provider state when a provider CLI is available
|
|
78
|
+
- changed-file frequency, churn, and hotspots; distinguish generated, vendored, lockfile, and source files when possible
|
|
79
|
+
- per-author commit and file ownership signals, including co-authors and AI-assisted markers only when explicitly present
|
|
80
|
+
|
|
81
|
+
Use `git log --shortstat` or equivalent for commit-level change counts and `git diff --numstat` or equivalent for test/source proportions. If a command cannot run, record the command and reason; do not substitute invented values.
|
|
82
|
+
|
|
83
|
+
### Delivery and quality signals
|
|
84
|
+
|
|
85
|
+
Inspect only signals that exist in the repository or authorized provider tooling:
|
|
86
|
+
|
|
87
|
+
- branch and remote tracking state, current PR title/body, review state, and current-head checks
|
|
88
|
+
- test files, test commands, recent test-related commits, and known failing or skipped checks
|
|
89
|
+
- changelog, release notes, issue/task references, and plan artifacts when present
|
|
90
|
+
- TODO/backlog markers when a project-maintained backlog exists
|
|
91
|
+
- regression fixes, reverted changes, follow-up fixes, and repeated failure patterns
|
|
92
|
+
- optional review or static-analysis summaries, clearly labeling unavailable or rate-limited providers
|
|
93
|
+
|
|
94
|
+
Never call an absent test suite “healthy”; report `NOT_AVAILABLE`. Never call a skipped check green.
|
|
95
|
+
|
|
96
|
+
### Work-pattern signals
|
|
97
|
+
|
|
98
|
+
When timestamps are available:
|
|
99
|
+
|
|
100
|
+
- build an hour-of-day histogram in local time
|
|
101
|
+
- group commits or activity into sessions separated by at least 45 minutes of inactivity
|
|
102
|
+
- classify sessions as deep (3+ hours), medium (1–3 hours), or micro (<1 hour)
|
|
103
|
+
- count active days, longest streak, and context switches between repositories or work areas
|
|
104
|
+
|
|
105
|
+
Treat commit timestamps as a proxy, not proof of keyboard time. If session telemetry exists, prefer it and name the source.
|
|
106
|
+
|
|
107
|
+
## 3. Compute the analysis
|
|
108
|
+
|
|
109
|
+
Use the evidence to calculate, or explicitly mark unavailable, the following dimensions:
|
|
110
|
+
|
|
111
|
+
### Shipping and scope
|
|
112
|
+
|
|
113
|
+
- features, fixes, refactors, docs, tests, chores, and releases shipped
|
|
114
|
+
- commits, weighted commits, active days, contributors, and referenced PRs
|
|
115
|
+
- version range or release identifiers when the repository exposes them
|
|
116
|
+
- logical lines changed and raw lines changed, reported separately
|
|
117
|
+
- plan or objective items completed, deferred, or still open when a plan is available
|
|
118
|
+
|
|
119
|
+
### Quality and maintainability
|
|
120
|
+
|
|
121
|
+
- test lines or test files changed relative to production changes
|
|
122
|
+
- test commands run and their current result
|
|
123
|
+
- regressions, reverts, repeated fixes, and hotspots with high churn
|
|
124
|
+
- type, lint, build, security, review, and release signals when available
|
|
125
|
+
- backlog/TODO health only when there is a maintained source to inspect
|
|
126
|
+
|
|
127
|
+
Do not reward large diffs or penalize small ones without explaining their context. A small change that closes a high-value objective can be the most important shipment.
|
|
128
|
+
|
|
129
|
+
### Focus and delivery flow
|
|
130
|
+
|
|
131
|
+
- commit-type mix and fix ratio; flag a high fix ratio as a signal for investigation, not a diagnosis
|
|
132
|
+
- PR/MR size buckets and time-to-merge when provider data is available
|
|
133
|
+
- work sessions, time-of-day distribution, context switching, and focus patterns
|
|
134
|
+
- planned versus unplanned work, if the plan and change evidence support the comparison
|
|
135
|
+
- the single most consequential shipment or decision, with evidence and caveats
|
|
136
|
+
|
|
137
|
+
### People and collaboration
|
|
138
|
+
|
|
139
|
+
For multi-author work, provide a factual per-author view of commits, change volume, areas touched, review or PR participation, and notable contributions. Include a team view of ownership concentration, cross-review, handoffs, and shared hotspots. Avoid ranking people by raw LOC or commit count.
|
|
140
|
+
|
|
141
|
+
Use the configured Git author as the personal focus only when it is unambiguous. Otherwise produce a team report and state that no personal identity was selected.
|
|
142
|
+
|
|
143
|
+
## 4. Compare and track trends
|
|
144
|
+
|
|
145
|
+
For `compare` or any window with a prior snapshot:
|
|
146
|
+
|
|
147
|
+
- compare features/fixes, commits, active days, contributors, PRs, change volume, test signals, regressions, and backlog movement
|
|
148
|
+
- identify meaningful directional changes and explain whether the evidence is strong, weak, or incomplete
|
|
149
|
+
- preserve the same metric definitions between periods; do not compare a repository window to a global window as if they were equivalent
|
|
150
|
+
- report streaks, recurring hotspots, repeated failure modes, and unresolved improvements only when snapshots support them
|
|
151
|
+
|
|
152
|
+
Store a JSON snapshot with stable keys, UTC timestamps, resolved window, scope, repository identity, commit/PR identifiers, metric values, evidence limitations, and a short list of findings. Keep narrative prose out of fields intended for machine comparison. A snapshot is an aid to future analysis, not a source of truth that overrides current evidence.
|
|
153
|
+
|
|
154
|
+
## 5. Produce the report
|
|
155
|
+
|
|
156
|
+
Lead with a concise, shareable summary of the period. Then use this order:
|
|
157
|
+
|
|
158
|
+
1. **Scope and evidence** — window, timezone, repositories, branch/base, sources, and limitations.
|
|
159
|
+
2. **Summary table** — shipping, activity, quality, and delivery metrics with `UNKNOWN` where needed.
|
|
160
|
+
3. **What shipped** — the most important features, fixes, releases, or decisions, tied to commits/PRs.
|
|
161
|
+
4. **Trends** — comparison with the previous period, if available.
|
|
162
|
+
5. **Time and sessions** — active days, session shape, time distribution, and context switching.
|
|
163
|
+
6. **Quality and test health** — checks, regressions, churn hotspots, review signals, and open risks.
|
|
164
|
+
7. **Plan completion** — objective items completed, deferred, or missing evidence.
|
|
165
|
+
8. **Focus and collaboration** — personal or team analysis with fair context.
|
|
166
|
+
9. **Top wins** — three evidence-backed wins when enough evidence exists.
|
|
167
|
+
10. **Improvements** — three concrete, small, actionable improvements; fewer is fine when evidence is limited.
|
|
168
|
+
11. **Next-period habits** — explicit habits or experiments with an owner or trigger when known.
|
|
169
|
+
12. **Limitations** — missing refs, unavailable provider data, stale telemetry, dirty work, or ambiguous attribution.
|
|
170
|
+
|
|
171
|
+
Use compact tables for exact metrics and prose for interpretation. Label inference as inference. Link or name evidence paths/commit IDs where useful, but never paste private content.
|
|
172
|
+
|
|
173
|
+
## 6. End-of-task handoff
|
|
174
|
+
|
|
175
|
+
If this run is explicitly closing a completed implementation, continue with `olko:wrap-up`:
|
|
176
|
+
|
|
177
|
+
- use the retro to check that the delivered work matches the original idea and to capture follow-up items
|
|
178
|
+
- let `wrap-up` perform the separate local/remote/PR/CI/deployment/QA gates and task-owned cleanup
|
|
179
|
+
- preserve the retro snapshot and report any limitation instead of deleting evidence
|
|
180
|
+
|
|
181
|
+
For a periodic or global retrospective, do not clean worktrees, branches, logs, or temporary files unless the user explicitly asks for that separate cleanup. Analysis alone must not alter delivery state.
|
|
182
|
+
|
|
183
|
+
## Minimal final status
|
|
184
|
+
|
|
185
|
+
End every run with:
|
|
186
|
+
|
|
187
|
+
```text
|
|
188
|
+
RETRO_STATUS: DONE | DONE_WITH_LIMITATIONS | BLOCKED
|
|
189
|
+
WINDOW: <resolved window and timezone>
|
|
190
|
+
SCOPE: <repository or repositories>
|
|
191
|
+
SNAPSHOT: <path, NOT_WRITTEN, or NOT_AVAILABLE>
|
|
192
|
+
TOP_FINDINGS: <short summary>
|
|
193
|
+
NEXT_ACTIONS: <short actionable list>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Use `BLOCKED` only when the requested scope cannot be analyzed safely or the required evidence is inaccessible. A partial but clearly labeled report is `DONE_WITH_LIMITATIONS`.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Codex adapter: retro-analysis
|
|
2
|
+
|
|
3
|
+
Use this adapter when the user asks for a retrospective, trend review, “what did we ship?”, recurring engineering analysis, or a cross-project/global retro.
|
|
4
|
+
|
|
5
|
+
Invoke it as `olko:retro-analysis` with `24h`, `7d`, `14d`, `30d`, `compare`, `compare 14d`, or `global [window]`. Resolve calendar windows in the user's local timezone and state the exact scope before analyzing it.
|
|
6
|
+
|
|
7
|
+
Codex-specific defaults:
|
|
8
|
+
|
|
9
|
+
- Use repository Git evidence and `gh` provider evidence when available; keep local, remote, PR, CI, deployment, and device/human QA claims separate.
|
|
10
|
+
- Inspect the repository's existing scripts and instructions before running checks. For Node projects, use the project's `npm run` scripts rather than raw `node` commands.
|
|
11
|
+
- Preserve dirty worktrees and unrelated artifacts. Do not fetch, push, merge, deploy, delete branches, or clean temporary files as a side effect of analysis.
|
|
12
|
+
- Treat unavailable or stale provider/session data as a limitation, not as a zero or a green result.
|
|
13
|
+
- Write only the bounded `.context/retros/` snapshot described by the canonical skill when persistence is in scope; never include secrets or raw private session content.
|
|
14
|
+
- If the retrospective closes a completed implementation, follow it with `olko:wrap-up` for the delivery receipt and task-owned cleanup.
|
|
15
|
+
|
|
16
|
+
Return the full narrative report followed by the canonical `RETRO_STATUS` block. Do not convert the report into a delivery claim unless `olko:wrap-up` has separately verified delivery.
|