ace-retro 0.16.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.
- checksums.yaml +7 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-retro.yml +19 -0
- data/.ace-defaults/retro/config.yml +16 -0
- data/CHANGELOG.md +252 -0
- data/LICENSE +21 -0
- data/README.md +40 -0
- data/Rakefile +13 -0
- data/docs/demo/ace-retro-getting-started.gif +0 -0
- data/docs/demo/ace-retro-getting-started.tape.yml +33 -0
- data/docs/demo/fixtures/README.md +3 -0
- data/docs/demo/fixtures/sample.txt +1 -0
- data/docs/getting-started.md +77 -0
- data/docs/handbook.md +60 -0
- data/docs/usage.md +141 -0
- data/exe/ace-retro +22 -0
- data/handbook/skills/as-handbook-selfimprove/SKILL.md +31 -0
- data/handbook/skills/as-retro-create/SKILL.md +26 -0
- data/handbook/skills/as-retro-synthesize/SKILL.md +26 -0
- data/handbook/templates/retro/retro.template.md +194 -0
- data/handbook/workflow-instructions/retro/create.wf.md +141 -0
- data/handbook/workflow-instructions/retro/selfimprove.wf.md +197 -0
- data/handbook/workflow-instructions/retro/synthesize.wf.md +94 -0
- data/lib/ace/retro/atoms/retro_file_pattern.rb +40 -0
- data/lib/ace/retro/atoms/retro_frontmatter_defaults.rb +42 -0
- data/lib/ace/retro/atoms/retro_id_formatter.rb +37 -0
- data/lib/ace/retro/atoms/retro_validation_rules.rb +82 -0
- data/lib/ace/retro/cli/commands/create.rb +87 -0
- data/lib/ace/retro/cli/commands/doctor.rb +204 -0
- data/lib/ace/retro/cli/commands/list.rb +63 -0
- data/lib/ace/retro/cli/commands/show.rb +55 -0
- data/lib/ace/retro/cli/commands/update.rb +117 -0
- data/lib/ace/retro/cli.rb +70 -0
- data/lib/ace/retro/models/retro.rb +40 -0
- data/lib/ace/retro/molecules/retro_config_loader.rb +93 -0
- data/lib/ace/retro/molecules/retro_creator.rb +165 -0
- data/lib/ace/retro/molecules/retro_display_formatter.rb +95 -0
- data/lib/ace/retro/molecules/retro_doctor_fixer.rb +404 -0
- data/lib/ace/retro/molecules/retro_doctor_reporter.rb +257 -0
- data/lib/ace/retro/molecules/retro_frontmatter_validator.rb +120 -0
- data/lib/ace/retro/molecules/retro_loader.rb +119 -0
- data/lib/ace/retro/molecules/retro_mover.rb +80 -0
- data/lib/ace/retro/molecules/retro_resolver.rb +57 -0
- data/lib/ace/retro/molecules/retro_scanner.rb +56 -0
- data/lib/ace/retro/molecules/retro_structure_validator.rb +193 -0
- data/lib/ace/retro/organisms/retro_doctor.rb +199 -0
- data/lib/ace/retro/organisms/retro_manager.rb +210 -0
- data/lib/ace/retro/version.rb +7 -0
- data/lib/ace/retro.rb +41 -0
- metadata +165 -0
data/docs/usage.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: user
|
|
3
|
+
purpose: CLI reference for ace-retro commands and options.
|
|
4
|
+
ace-docs:
|
|
5
|
+
last-updated: '2026-03-22'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ace-retro CLI Reference
|
|
9
|
+
|
|
10
|
+
Complete command reference for `ace-retro`.
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
gem install ace-retro
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Global Options
|
|
19
|
+
|
|
20
|
+
All commands support:
|
|
21
|
+
|
|
22
|
+
| Flag | Description |
|
|
23
|
+
|------|-------------|
|
|
24
|
+
| `-q`, `--quiet` | Suppress non-essential output |
|
|
25
|
+
| `-v`, `--verbose` | Show verbose output |
|
|
26
|
+
| `-d`, `--debug` | Show debug output |
|
|
27
|
+
| `-h`, `--help` | Show command help |
|
|
28
|
+
|
|
29
|
+
## Commands
|
|
30
|
+
|
|
31
|
+
### ace-retro create TITLE
|
|
32
|
+
|
|
33
|
+
Create a new retrospective.
|
|
34
|
+
|
|
35
|
+
| Option | Alias | Description |
|
|
36
|
+
|--------|-------|-------------|
|
|
37
|
+
| `--type` | `-t` | Retro type: `standard`, `conversation-analysis`, `self-review` |
|
|
38
|
+
| `--tags` | `-T` | Comma-separated tags |
|
|
39
|
+
| `--move-to` | `-m` | Create directly in a target folder (for example `archive`) |
|
|
40
|
+
| `--dry-run` | `-n` | Preview without writing |
|
|
41
|
+
| `--gc`, `--git-commit` | | Auto-commit changes |
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
ace-retro create "Sprint Review" --type standard --tags sprint,team
|
|
45
|
+
ace-retro create "Session Review" --type conversation-analysis
|
|
46
|
+
ace-retro create "Release Retro" --move-to archive
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### ace-retro show REF
|
|
50
|
+
|
|
51
|
+
Show one retro by full 6-char ID or 3-char shortcut.
|
|
52
|
+
|
|
53
|
+
| Option | Description |
|
|
54
|
+
|--------|-------------|
|
|
55
|
+
| `--path` | Print file path only |
|
|
56
|
+
| `--content` | Print raw markdown content |
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ace-retro show q7w
|
|
60
|
+
ace-retro show 8ppq7w --path
|
|
61
|
+
ace-retro show q7w --content
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### ace-retro list
|
|
65
|
+
|
|
66
|
+
List retros with optional filtering.
|
|
67
|
+
|
|
68
|
+
| Option | Alias | Description |
|
|
69
|
+
|--------|-------|-------------|
|
|
70
|
+
| `--status` | `-s` | Filter by status (`active`, `done`) |
|
|
71
|
+
| `--type` | `-t` | Filter by type |
|
|
72
|
+
| `--tags` | `-T` | Filter by tags (comma-separated, any match) |
|
|
73
|
+
| `--in` | `-i` | Folder scope: `next` (root only), `all`, `archive` |
|
|
74
|
+
| `--root` | `-r` | Override retros root path |
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
ace-retro list
|
|
78
|
+
ace-retro list --in all
|
|
79
|
+
ace-retro list --in archive --type standard
|
|
80
|
+
ace-retro list --status active --tags sprint,team
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### ace-retro update REF
|
|
84
|
+
|
|
85
|
+
Update frontmatter fields and/or move a retro between folders.
|
|
86
|
+
|
|
87
|
+
| Option | Description |
|
|
88
|
+
|--------|-------------|
|
|
89
|
+
| `--set` | Set scalar metadata: `key=value` (repeatable) |
|
|
90
|
+
| `--add` | Add to array field: `key=value` (repeatable) |
|
|
91
|
+
| `--remove` | Remove from array field: `key=value` (repeatable) |
|
|
92
|
+
| `--move-to`, `-m` | Move retro to folder (`archive`, `next`) |
|
|
93
|
+
| `--gc`, `--git-commit` | Auto-commit changes |
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
ace-retro update q7w --set status=done
|
|
97
|
+
ace-retro update q7w --set status=done --set title="Refined title"
|
|
98
|
+
ace-retro update q7w --add tags=reviewed --remove tags=in-progress
|
|
99
|
+
ace-retro update q7w --set status=done --move-to archive
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### ace-retro doctor
|
|
103
|
+
|
|
104
|
+
Run health checks across retros.
|
|
105
|
+
|
|
106
|
+
| Option | Alias | Description |
|
|
107
|
+
|--------|-------|-------------|
|
|
108
|
+
| `--auto-fix` | `-f` | Auto-fix safe issues |
|
|
109
|
+
| `--auto-fix-with-agent` | | Auto-fix then launch agent for unresolved items |
|
|
110
|
+
| `--model` | | Provider:model for agent session |
|
|
111
|
+
| `--errors-only` | | Show only errors |
|
|
112
|
+
| `--no-color` | | Disable colored output |
|
|
113
|
+
| `--json` | | Emit JSON output |
|
|
114
|
+
| `--dry-run` | `-n` | Preview fixes without applying |
|
|
115
|
+
| `--check` | | Limit to check: `frontmatter` (YAML metadata block at file top), `structure`, `scope` |
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
ace-retro doctor
|
|
119
|
+
ace-retro doctor --auto-fix
|
|
120
|
+
ace-retro doctor --auto-fix --dry-run
|
|
121
|
+
ace-retro doctor --check frontmatter
|
|
122
|
+
ace-retro doctor --json
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Common Commands
|
|
126
|
+
|
|
127
|
+
| Command | What it does |
|
|
128
|
+
|---------|-------------|
|
|
129
|
+
| `ace-retro create "..." --type standard` | Create a retrospective |
|
|
130
|
+
| `ace-retro show <ref>` | Display one retro |
|
|
131
|
+
| `ace-retro list --in all` | List active and archived retros |
|
|
132
|
+
| `ace-retro update <ref> --set status=done` | Update metadata |
|
|
133
|
+
| `ace-retro update <ref> --move-to archive` | Archive a retro |
|
|
134
|
+
| `ace-retro doctor` | Validate retro health |
|
|
135
|
+
|
|
136
|
+
## Runtime Help
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
ace-retro help
|
|
140
|
+
ace-retro <command> --help
|
|
141
|
+
```
|
data/exe/ace-retro
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require_relative "../lib/ace/retro"
|
|
5
|
+
require_relative "../lib/ace/retro/cli"
|
|
6
|
+
|
|
7
|
+
# No args → show help
|
|
8
|
+
args = ARGV.empty? ? ["--help"] : ARGV
|
|
9
|
+
|
|
10
|
+
# Handle SIGINT with exit code 130
|
|
11
|
+
trap("INT") { exit 130 }
|
|
12
|
+
|
|
13
|
+
# Start ace-support-cli with exception-based exit code handling (per ADR-023)
|
|
14
|
+
begin
|
|
15
|
+
Ace::Retro::RetroCLI.start(args)
|
|
16
|
+
rescue Ace::Support::Cli::Error => e
|
|
17
|
+
warn e.message
|
|
18
|
+
exit(e.exit_code)
|
|
19
|
+
rescue ArgumentError => e
|
|
20
|
+
warn "Error: #{e.message}"
|
|
21
|
+
exit(1)
|
|
22
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: as-handbook-selfimprove
|
|
3
|
+
description: Analyze mistakes to improve processes, then fix the immediate issue
|
|
4
|
+
# bundle: wfi://retro/selfimprove
|
|
5
|
+
# agent: general-purpose
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools:
|
|
8
|
+
- Bash(ace-bundle:*)
|
|
9
|
+
- Read
|
|
10
|
+
- Write
|
|
11
|
+
- Edit
|
|
12
|
+
- Grep
|
|
13
|
+
- Glob
|
|
14
|
+
argument-hint: [description of what went wrong]
|
|
15
|
+
last_modified: 2026-03-10
|
|
16
|
+
source: ace-retro
|
|
17
|
+
integration:
|
|
18
|
+
targets:
|
|
19
|
+
- claude
|
|
20
|
+
- codex
|
|
21
|
+
- gemini
|
|
22
|
+
- opencode
|
|
23
|
+
- pi
|
|
24
|
+
providers: {}
|
|
25
|
+
skill:
|
|
26
|
+
kind: workflow
|
|
27
|
+
execution:
|
|
28
|
+
workflow: wfi://retro/selfimprove
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
Load and run `ace-bundle wfi://retro/selfimprove` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: as-retro-create
|
|
3
|
+
description: Create task retrospective documenting learnings and improvements
|
|
4
|
+
# bundle: wfi://retro/create
|
|
5
|
+
# context: no-fork
|
|
6
|
+
# agent: general-purpose
|
|
7
|
+
user-invocable: true
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Bash(ace-task:*)
|
|
10
|
+
- Bash(ace-bundle:*)
|
|
11
|
+
- Bash(ace-git-commit:*)
|
|
12
|
+
- Read
|
|
13
|
+
- Write
|
|
14
|
+
- TodoWrite
|
|
15
|
+
argument-hint: [retro-title]
|
|
16
|
+
last_modified: 2026-01-10
|
|
17
|
+
source: ace-task
|
|
18
|
+
skill:
|
|
19
|
+
kind: workflow
|
|
20
|
+
execution:
|
|
21
|
+
workflow: wfi://retro/create
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Load and run `ace-bundle wfi://retro/create` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
|
|
26
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: as-retro-synthesize
|
|
3
|
+
description: Synthesize retrospectives into patterns and improvement recommendations
|
|
4
|
+
# bundle: wfi://retro/synthesize
|
|
5
|
+
# context: no-fork
|
|
6
|
+
# agent: general-purpose
|
|
7
|
+
user-invocable: true
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Bash(ace-task:*)
|
|
10
|
+
- Bash(ace-bundle:*)
|
|
11
|
+
- Bash(ace-git-commit:*)
|
|
12
|
+
- Read
|
|
13
|
+
- Write
|
|
14
|
+
- Grep
|
|
15
|
+
- TodoWrite
|
|
16
|
+
last_modified: 2026-01-10
|
|
17
|
+
source: ace-task
|
|
18
|
+
skill:
|
|
19
|
+
kind: workflow
|
|
20
|
+
execution:
|
|
21
|
+
workflow: wfi://retro/synthesize
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Load and run `ace-bundle wfi://retro/synthesize` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
|
|
26
|
+
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: template
|
|
3
|
+
title: "Reflection: [Topic/Date]"
|
|
4
|
+
purpose: Documentation for ace-retro/handbook/templates/retro/retro.template.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-01
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Reflection: [Topic/Date]
|
|
11
|
+
|
|
12
|
+
**Date**: YYYY-MM-DD
|
|
13
|
+
**Context**: [Brief description of what this reflection covers]
|
|
14
|
+
**Author**: [Name or identifier]
|
|
15
|
+
**Type**: [Standard | Conversation Analysis | Self-Review]
|
|
16
|
+
|
|
17
|
+
## What Went Well
|
|
18
|
+
|
|
19
|
+
- [Positive outcome or successful approach]
|
|
20
|
+
- [Effective pattern discovered]
|
|
21
|
+
- [Good decision that paid off]
|
|
22
|
+
|
|
23
|
+
## What Could Be Improved
|
|
24
|
+
|
|
25
|
+
- [Challenge encountered]
|
|
26
|
+
- [Inefficiency identified]
|
|
27
|
+
- [Area needing attention]
|
|
28
|
+
|
|
29
|
+
## Key Learnings
|
|
30
|
+
|
|
31
|
+
- [Important insight gained]
|
|
32
|
+
- [New understanding developed]
|
|
33
|
+
- [Valuable lesson learned]
|
|
34
|
+
|
|
35
|
+
## Conversation Analysis (For conversation-based reflections)
|
|
36
|
+
|
|
37
|
+
### Challenge Patterns Identified
|
|
38
|
+
|
|
39
|
+
#### High Impact Issues
|
|
40
|
+
|
|
41
|
+
- **[Challenge Type]**: [Description]
|
|
42
|
+
- Occurrences: [Number of times this pattern appeared]
|
|
43
|
+
- Impact: [Description of delays/rework caused]
|
|
44
|
+
- Root Cause: [Analysis of underlying issue]
|
|
45
|
+
|
|
46
|
+
#### Medium Impact Issues
|
|
47
|
+
|
|
48
|
+
- **[Challenge Type]**: [Description]
|
|
49
|
+
- Occurrences: [Number of times this pattern appeared]
|
|
50
|
+
- Impact: [Description of inefficiencies caused]
|
|
51
|
+
|
|
52
|
+
#### Low Impact Issues
|
|
53
|
+
|
|
54
|
+
- **[Challenge Type]**: [Description]
|
|
55
|
+
- Occurrences: [Number of times this pattern appeared]
|
|
56
|
+
- Impact: [Minor inconveniences]
|
|
57
|
+
|
|
58
|
+
### Improvement Proposals
|
|
59
|
+
|
|
60
|
+
#### Process Improvements
|
|
61
|
+
|
|
62
|
+
- [Specific workflow enhancement]
|
|
63
|
+
- [Documentation improvement]
|
|
64
|
+
- [Better validation step]
|
|
65
|
+
|
|
66
|
+
#### Tool Enhancements
|
|
67
|
+
|
|
68
|
+
- [Command improvement suggestion]
|
|
69
|
+
- [Tool capability request]
|
|
70
|
+
- [Automation opportunity]
|
|
71
|
+
|
|
72
|
+
#### Communication Protocols
|
|
73
|
+
|
|
74
|
+
- [Clearer requirement gathering]
|
|
75
|
+
- [Better confirmation process]
|
|
76
|
+
- [Enhanced feedback loop]
|
|
77
|
+
|
|
78
|
+
### Token Limit & Truncation Issues
|
|
79
|
+
|
|
80
|
+
- **Large Output Instances**: [Count and description]
|
|
81
|
+
- **Truncation Impact**: [Information lost, workflow disruption]
|
|
82
|
+
- **Mitigation Applied**: [How issues were resolved]
|
|
83
|
+
- **Prevention Strategy**: [Future avoidance approach]
|
|
84
|
+
|
|
85
|
+
## Action Items
|
|
86
|
+
|
|
87
|
+
### Stop Doing
|
|
88
|
+
|
|
89
|
+
- [Practice or approach to discontinue]
|
|
90
|
+
- [Ineffective pattern to avoid]
|
|
91
|
+
|
|
92
|
+
### Continue Doing
|
|
93
|
+
|
|
94
|
+
- [Successful practice to maintain]
|
|
95
|
+
- [Effective approach to keep using]
|
|
96
|
+
|
|
97
|
+
### Start Doing
|
|
98
|
+
|
|
99
|
+
- [New practice to adopt]
|
|
100
|
+
- [Improvement to implement]
|
|
101
|
+
|
|
102
|
+
## Technical Details
|
|
103
|
+
|
|
104
|
+
(Optional: Specific technical insights, code patterns, or implementation notes)
|
|
105
|
+
|
|
106
|
+
## Automation Insights
|
|
107
|
+
|
|
108
|
+
### Identified Opportunities
|
|
109
|
+
|
|
110
|
+
- **[Process/Task Name]**: [What could be automated]
|
|
111
|
+
- Current approach: [How it's done manually now]
|
|
112
|
+
- Automation proposal: [How it could be automated]
|
|
113
|
+
- Expected time savings: [Estimated reduction in effort]
|
|
114
|
+
- Implementation complexity: [Low/Medium/High]
|
|
115
|
+
|
|
116
|
+
### Priority Automations
|
|
117
|
+
|
|
118
|
+
1. **[High Priority Item]**: [Brief description and impact]
|
|
119
|
+
2. **[Medium Priority Item]**: [Brief description and impact]
|
|
120
|
+
3. **[Low Priority Item]**: [Brief description and impact]
|
|
121
|
+
|
|
122
|
+
## Tool Proposals
|
|
123
|
+
|
|
124
|
+
### Missing Dev-Tools
|
|
125
|
+
|
|
126
|
+
- **Tool Name**: `[proposed-command-name]`
|
|
127
|
+
- Purpose: [What problem it solves]
|
|
128
|
+
- Expected usage: `[example command usage]`
|
|
129
|
+
- Key features: [Main capabilities needed]
|
|
130
|
+
- Similar to: [Existing tools it relates to, if any]
|
|
131
|
+
|
|
132
|
+
### Enhancement Requests
|
|
133
|
+
|
|
134
|
+
- **Existing Tool**: `[tool-name]`
|
|
135
|
+
- Enhancement: [What capability to add]
|
|
136
|
+
- Use case: [Why this enhancement is needed]
|
|
137
|
+
- Workaround: [Current alternative approach]
|
|
138
|
+
|
|
139
|
+
## Workflow Proposals
|
|
140
|
+
|
|
141
|
+
### New Workflows Needed
|
|
142
|
+
|
|
143
|
+
- **Workflow Name**: `[workflow-name].wf.md`
|
|
144
|
+
- Purpose: [What process it would streamline]
|
|
145
|
+
- Trigger: [When/how it would be invoked]
|
|
146
|
+
- Key steps: [High-level process outline]
|
|
147
|
+
- Expected frequency: [How often it would be used]
|
|
148
|
+
|
|
149
|
+
### Workflow Enhancements
|
|
150
|
+
|
|
151
|
+
- **Existing Workflow**: `[workflow-name].wf.md`
|
|
152
|
+
- Enhancement: [What to improve]
|
|
153
|
+
- Rationale: [Why this change would help]
|
|
154
|
+
- Impact: [Benefits of the enhancement]
|
|
155
|
+
|
|
156
|
+
## Cookbook Opportunities
|
|
157
|
+
|
|
158
|
+
### Patterns Worth Documenting
|
|
159
|
+
|
|
160
|
+
- **Pattern Name**: [Descriptive name for the pattern]
|
|
161
|
+
- Context: [When this pattern applies]
|
|
162
|
+
- Solution approach: [Core technique or method]
|
|
163
|
+
- Example scenario: [Concrete use case]
|
|
164
|
+
- Reusability: [How often this comes up]
|
|
165
|
+
|
|
166
|
+
### Proposed Cookbooks
|
|
167
|
+
|
|
168
|
+
- **Cookbook Title**: `[cookbook-name].cookbook.md`
|
|
169
|
+
- Problem it solves: [Clear problem statement]
|
|
170
|
+
- Target audience: [Who would benefit]
|
|
171
|
+
- Prerequisites: [Required knowledge/tools]
|
|
172
|
+
- Key sections: [Main topics to cover]
|
|
173
|
+
|
|
174
|
+
## Pattern Identification
|
|
175
|
+
|
|
176
|
+
### Reusable Code Snippets
|
|
177
|
+
|
|
178
|
+
- **Snippet Purpose**: [What it accomplishes]
|
|
179
|
+
```[language]
|
|
180
|
+
# Code snippet or pattern
|
|
181
|
+
```
|
|
182
|
+
- Use cases: [Where this could be reused]
|
|
183
|
+
- Variations: [How it might be adapted]
|
|
184
|
+
|
|
185
|
+
### Template Opportunities
|
|
186
|
+
|
|
187
|
+
- **Template Type**: [What kind of template]
|
|
188
|
+
- Common structure: [Repeated pattern identified]
|
|
189
|
+
- Variables needed: [What would be parameterized]
|
|
190
|
+
- Expected usage: [How often it would be used]
|
|
191
|
+
|
|
192
|
+
## Additional Context
|
|
193
|
+
|
|
194
|
+
(Optional: Links to relevant PRs, tasks, or documentation)
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: workflow
|
|
3
|
+
title: Create Retro Workflow Instruction
|
|
4
|
+
purpose: Documentation for ace-retro/handbook/workflow-instructions/retro/create.wf.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-01
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Create Retro Workflow Instruction
|
|
11
|
+
|
|
12
|
+
## Goal
|
|
13
|
+
|
|
14
|
+
Capture observations, learnings, and improvement ideas from development work. Retros document insights that help improve future processes and outcomes.
|
|
15
|
+
|
|
16
|
+
## Prerequisites
|
|
17
|
+
|
|
18
|
+
- Understanding of what to capture (learnings, challenges, improvements)
|
|
19
|
+
- Current working session or specific context to reflect upon
|
|
20
|
+
|
|
21
|
+
## Process Steps
|
|
22
|
+
|
|
23
|
+
### 1. Determine Retro Context
|
|
24
|
+
|
|
25
|
+
Identify the scope and subject of the retro:
|
|
26
|
+
|
|
27
|
+
- **User-provided topic**: Use the specific topic, task, or time period given
|
|
28
|
+
- **Current session**: Self-review the working session for patterns and learnings
|
|
29
|
+
- **Task completion**: Reflect on a completed task or feature
|
|
30
|
+
|
|
31
|
+
### 2. Generate a Slug
|
|
32
|
+
|
|
33
|
+
Create a concise, descriptive slug from the topic:
|
|
34
|
+
|
|
35
|
+
- Use lowercase with hyphens: `oauth-integration-challenges`
|
|
36
|
+
- Keep it short but descriptive: `sprint-23-learnings`
|
|
37
|
+
- Include relevant context: `ace-test-runner-fixes`
|
|
38
|
+
|
|
39
|
+
### 3. Create the Retro File
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Basic creation
|
|
43
|
+
ace-retro create "topic-slug"
|
|
44
|
+
|
|
45
|
+
# With type and tags
|
|
46
|
+
ace-retro create "topic-slug" --type standard --tags sprint,team
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Read the created file path from the command output.
|
|
50
|
+
|
|
51
|
+
### 4. Populate the Retro
|
|
52
|
+
|
|
53
|
+
Use the template format from `tmpl://retro/retro` to structure content. Fill each section with meaningful insights from the retro context.
|
|
54
|
+
|
|
55
|
+
**Core sections to populate:**
|
|
56
|
+
|
|
57
|
+
- **What Went Well** — successful approaches, effective patterns, good decisions
|
|
58
|
+
- **What Could Be Improved** — challenges, inefficiencies, areas needing attention
|
|
59
|
+
- **Key Learnings** — insights gained, new understanding, valuable lessons
|
|
60
|
+
- **Action Items** — stop/continue/start doing items
|
|
61
|
+
|
|
62
|
+
**Optional enhancement sections** (use when relevant):
|
|
63
|
+
|
|
64
|
+
- Automation Insights
|
|
65
|
+
- Tool Proposals
|
|
66
|
+
- Workflow Proposals
|
|
67
|
+
|
|
68
|
+
### 5. Gather Content via Reflection
|
|
69
|
+
|
|
70
|
+
**Reflection Prompts:**
|
|
71
|
+
|
|
72
|
+
- What was the main goal of this work?
|
|
73
|
+
- What obstacles were encountered?
|
|
74
|
+
- How were problems solved?
|
|
75
|
+
- What would you do differently?
|
|
76
|
+
- What patterns emerged?
|
|
77
|
+
- What knowledge was gained?
|
|
78
|
+
|
|
79
|
+
**For session-based retros**, review:
|
|
80
|
+
|
|
81
|
+
- Recent git commits and changes
|
|
82
|
+
- Challenges faced and how they were resolved
|
|
83
|
+
- Successful approaches worth repeating
|
|
84
|
+
|
|
85
|
+
**When review session data is available** (e.g., after review cycles in an assignment), analyze:
|
|
86
|
+
|
|
87
|
+
- Review sessions in `.ace-local/review/sessions/` for the current branch/PR
|
|
88
|
+
- Load each session's `feedback-synthesis/feedback-synthesis.cleaned.json` for structured findings
|
|
89
|
+
- Load each session's `metadata.yml` for model performance data (duration, success rate)
|
|
90
|
+
|
|
91
|
+
Cross-cycle review analysis prompts:
|
|
92
|
+
|
|
93
|
+
- Which feedback items recurred across cycles? (indicates systematic issues vs. one-off nits)
|
|
94
|
+
- What was the false-positive rate per reviewer model? (findings marked invalid without code changes)
|
|
95
|
+
- How did severity calibration differ across models? (e.g., one model flags high-priority items that others miss)
|
|
96
|
+
- Did later review cycles (code-fit, code-shine) catch qualitatively different issues than early ones (code-valid)?
|
|
97
|
+
- What percentage of feedback items led to actual code changes vs. being dismissed?
|
|
98
|
+
|
|
99
|
+
Capture these observations in the retro under a **Review Cycle Analysis** subsection within "Key Learnings".
|
|
100
|
+
|
|
101
|
+
### 6. Finalize
|
|
102
|
+
|
|
103
|
+
- Ensure populated sections have meaningful content
|
|
104
|
+
- Remove empty optional sections
|
|
105
|
+
- Verify with `ace-retro list` to confirm the retro appears
|
|
106
|
+
|
|
107
|
+
### 7. Commit the Retro
|
|
108
|
+
|
|
109
|
+
Commit the retro file so the artifact is preserved in the branch history:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
ace-git-commit .ace-retros/ -i "retro for <context>"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
This is especially important when running inside a fork subtree, where uncommitted files would be lost when the fork process exits.
|
|
116
|
+
|
|
117
|
+
## Best Practices
|
|
118
|
+
|
|
119
|
+
**DO:**
|
|
120
|
+
|
|
121
|
+
- Be honest about challenges and failures
|
|
122
|
+
- Focus on actionable improvements
|
|
123
|
+
- Include specific examples
|
|
124
|
+
- Keep entries concise but complete
|
|
125
|
+
- Date and contextualize retros
|
|
126
|
+
|
|
127
|
+
**DON'T:**
|
|
128
|
+
|
|
129
|
+
- Make it a blame session
|
|
130
|
+
- Be vague or generic
|
|
131
|
+
- Skip the action items
|
|
132
|
+
- Leave sections empty without removing them
|
|
133
|
+
- Write novels — keep it focused
|
|
134
|
+
|
|
135
|
+
## Success Criteria
|
|
136
|
+
|
|
137
|
+
- Retro created via `ace-retro create` with appropriate slug
|
|
138
|
+
- Key sections populated with meaningful content
|
|
139
|
+
- Action items clearly defined
|
|
140
|
+
- Insights captured for future reference
|
|
141
|
+
- Retro file committed to the branch
|