@lifeaitools/rdc-skills 0.24.11 → 0.24.13
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 +1 -1
- package/.github/workflows/self-test.yml +34 -34
- package/README.md +82 -10
- package/commands/build.md +181 -181
- package/commands/collab.md +180 -180
- package/commands/deploy.md +148 -148
- package/commands/fixit.md +105 -105
- package/commands/handoff.md +173 -173
- package/commands/overnight.md +218 -218
- package/commands/plan.md +158 -158
- package/commands/preplan.md +131 -131
- package/commands/prototype.md +145 -145
- package/commands/report.md +99 -99
- package/commands/review.md +120 -120
- package/commands/status.md +86 -86
- package/commands/watch.md +8 -2
- package/commands/workitems.md +127 -127
- package/git-sha.json +1 -1
- package/guides/agent-bootstrap.md +195 -195
- package/guides/agents/backend.md +102 -102
- package/guides/agents/content.md +94 -94
- package/guides/agents/cs2.md +56 -56
- package/guides/agents/data.md +86 -86
- package/guides/agents/design.md +77 -77
- package/guides/agents/frontend.md +91 -91
- package/guides/agents/infrastructure.md +81 -81
- package/guides/agents/setup.md +272 -272
- package/guides/agents/verify.md +119 -119
- package/guides/agents/viz.md +106 -106
- package/package.json +2 -2
- package/scripts/install-rdc-skills.js +46 -4
- package/scripts/self-test.mjs +1454 -1454
- package/skills/build/SKILL.md +554 -554
- package/skills/collab/SKILL.md +239 -239
- package/skills/deploy/SKILL.md +541 -541
- package/skills/design/SKILL.md +205 -205
- package/skills/fixit/SKILL.md +165 -165
- package/skills/handoff/SKILL.md +200 -200
- package/skills/overnight/SKILL.md +251 -251
- package/skills/plan/SKILL.md +314 -314
- package/skills/preplan/SKILL.md +90 -90
- package/skills/prototype/SKILL.md +150 -150
- package/skills/rdc-brochurify/SKILL.md +5 -0
- package/skills/release/SKILL.md +140 -140
- package/skills/report/SKILL.md +100 -100
- package/skills/review/SKILL.md +152 -152
- package/skills/self-test/SKILL.md +127 -123
- package/skills/status/SKILL.md +99 -99
- package/skills/tests/MATRIX.md +53 -0
- package/skills/tests/README.md +15 -3
- package/skills/tests/rdc-brochure.test.json +20 -0
- package/skills/tests/rdc-co-develop.test.json +15 -0
- package/skills/tests/rdc-collab.test.json +15 -0
- package/skills/tests/rdc-convert.test.json +20 -0
- package/skills/tests/rdc-fs-mcp.test.json +21 -0
- package/skills/tests/rdc-help.test.json +15 -0
- package/skills/tests/rdc-housekeeping.test.json +15 -0
- package/skills/tests/rdc-lifeai-brochure-author.test.json +20 -0
- package/skills/tests/rdc-rdc-brochurify.test.json +23 -0
- package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +20 -0
- package/skills/tests/rdc-rpms-filemap.test.json +15 -0
- package/skills/tests/rdc-self-test.test.json +15 -0
- package/skills/tests/rdc-status.test.json +0 -1
- package/skills/tests/rdc-terminal-config.test.json +15 -0
- package/skills/tests/rdc-watch.test.json +24 -0
- package/skills/watch/SKILL.md +96 -90
- package/skills/workitems/SKILL.md +151 -151
- package/tests/install-rdc-skills.test.mjs +21 -0
package/skills/fixit/SKILL.md
CHANGED
|
@@ -1,165 +1,165 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: rdc:fixit
|
|
3
|
-
description: "Usage `rdc:fixit <description>` — Quick fix under 5 files / 30 min that does not warrant a full plan→build cycle. Creates a minimal work item, makes the change, commits, runs a mandatory code-review pass (pr-review-toolkit:code-reviewer), closes. The only sanctioned bypass of rdc:build."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
|
7
|
-
> Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
|
|
8
|
-
> One checklist upfront, updated in place, shown again at end with a 1-line verdict.
|
|
9
|
-
|
|
10
|
-
> If dispatching subagents or running as a subagent: read `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` first (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md`), then `{PROJECT_ROOT}/.rdc/guides/engineering-behavior.md` (fallback: `{PROJECT_ROOT}/.rdc/guides/engineering-behavior.md`).
|
|
11
|
-
|
|
12
|
-
> **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# rdc:fixit — Sanctioned Quick Fix
|
|
16
|
-
|
|
17
|
-
## When to Use
|
|
18
|
-
- Typo or single-line text correction
|
|
19
|
-
- Config value change (env vars, constants, feature flags)
|
|
20
|
-
- Emergency hotfix that cannot wait for a full build cycle
|
|
21
|
-
- Dependency version bump
|
|
22
|
-
- CSS/styling tweak on a single component
|
|
23
|
-
- Broken import or export fix
|
|
24
|
-
- Single-file logic correction
|
|
25
|
-
|
|
26
|
-
## When NOT to Use — escalate to rdc:build instead
|
|
27
|
-
- New feature of any size
|
|
28
|
-
- Refactor touching >5 files
|
|
29
|
-
- Anything requiring architecture decisions
|
|
30
|
-
- Work that will take longer than 30 minutes
|
|
31
|
-
- Schema changes or migrations
|
|
32
|
-
|
|
33
|
-
## Arguments
|
|
34
|
-
- `rdc:fixit <description>` — fix the described issue
|
|
35
|
-
|
|
36
|
-
## Procedure
|
|
37
|
-
|
|
38
|
-
### 1. Scope check (mandatory — do this before touching any file)
|
|
39
|
-
|
|
40
|
-
Will this fix touch more than **5 files** or take more than **30 minutes**?
|
|
41
|
-
|
|
42
|
-
- **YES** → Stop. Use `/rdc:build` instead. Explain to the user why.
|
|
43
|
-
- **NO** → Continue.
|
|
44
|
-
|
|
45
|
-
### 2. Create a minimal work item (before touching any code)
|
|
46
|
-
|
|
47
|
-
```sql
|
|
48
|
-
SELECT insert_work_item(
|
|
49
|
-
p_title := 'fixit: <description>',
|
|
50
|
-
p_item_type := 'bug',
|
|
51
|
-
p_priority := 'urgent',
|
|
52
|
-
p_status := 'in_progress',
|
|
53
|
-
p_source := 'fixit'
|
|
54
|
-
);
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Note the returned `id`.
|
|
58
|
-
|
|
59
|
-
### 3. Write the fixit session marker
|
|
60
|
-
|
|
61
|
-
Write to `{USER_HOME}/.claude/fixit.marker`:
|
|
62
|
-
```
|
|
63
|
-
<work_item_id>
|
|
64
|
-
<ISO timestamp>
|
|
65
|
-
<description>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
This signals the Stop hook that fixit is handling its own documentation.
|
|
69
|
-
|
|
70
|
-
### 4. Make the fix
|
|
71
|
-
|
|
72
|
-
Do the minimal work. Scope creep rule: if you discover the fix requires more than originally scoped, **stop immediately**:
|
|
73
|
-
1. Close the work item: `update_work_item_status('<id>', 'blocked', '["Escalated — scope exceeded fixit threshold"]')`
|
|
74
|
-
2. Delete the marker file
|
|
75
|
-
3. Tell the user to use `/rdc:build` instead
|
|
76
|
-
|
|
77
|
-
Apply `guides/engineering-behavior.md`: state material assumptions in the
|
|
78
|
-
implementation report, avoid speculative abstractions, touch only required
|
|
79
|
-
files, and verify behavior before moving the work item to `review`.
|
|
80
|
-
|
|
81
|
-
### 5. Commit
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
git add <specific files only — never git add -A for a fixit>
|
|
85
|
-
git commit -m "fix(<scope>): <description>"
|
|
86
|
-
if [ "$RDC_TEST" != "1" ]; then
|
|
87
|
-
git push origin {development-branch}
|
|
88
|
-
else
|
|
89
|
-
echo "[RDC_TEST] skipping git push origin {development-branch}"
|
|
90
|
-
fi
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### 5.5 Mandatory code-review gate (before submitting implementation report)
|
|
94
|
-
|
|
95
|
-
⛔ **No fixit closes without a code-review pass.** Even single-file changes go through review.
|
|
96
|
-
|
|
97
|
-
Dispatch ONE `pr-review-toolkit:code-reviewer` agent on the fixit commit:
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
Agent({
|
|
101
|
-
subagent_type: "pr-review-toolkit:code-reviewer",
|
|
102
|
-
description: "fixit code review",
|
|
103
|
-
prompt: "Review `git show HEAD` on the development branch. Focus on:
|
|
104
|
-
bugs, logic errors, security, project-convention adherence (.claude/rules/*).
|
|
105
|
-
Confidence-based filtering — high-confidence findings only.
|
|
106
|
-
Return CODE_REVIEW_COMPLETE with: { critical_count, high_count, medium_count,
|
|
107
|
-
low_count, findings: [{severity, file:line, issue, suggested_fix}] }."
|
|
108
|
-
})
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
**Severity gate:**
|
|
112
|
-
- `critical` or `high` findings → fix in this same fixit session (do not escalate to rdc:build for the fix itself; the original fixit owns the cleanup), re-commit, re-run review until clean
|
|
113
|
-
- `medium` or `low` findings → record in `implementation_report.flags`; proceed to close
|
|
114
|
-
- Zero findings → proceed to close
|
|
115
|
-
|
|
116
|
-
Under `RDC_TEST=1`: echo `[RDC_TEST] skipping code-review dispatch` and proceed.
|
|
117
|
-
|
|
118
|
-
### 6. Close and clean up
|
|
119
|
-
|
|
120
|
-
Submit implementation report first, move to review, then close as validator:
|
|
121
|
-
|
|
122
|
-
```sql
|
|
123
|
-
SELECT submit_implementation_report('<id>'::uuid,
|
|
124
|
-
'{"tldr":"<one sentence>","assumptions":[],"deviations":[],"uncertainty":[],"detail":"<what was fixed>","flags":[],"transactional":false,"memory_records":[],"codeflow_post":{"agent_session_id":"<agent-session-id>","summary":"<what changed and why>","files_changed":["<path>"],"verification":["<command/evidence>"],"commit":"<hash optional>"}}'::jsonb
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
SELECT update_work_item_status('<id>'::uuid, 'review',
|
|
128
|
-
'["Fixed via rdc:fixit; ready for validation"]'::jsonb,
|
|
129
|
-
'<agent-session-id>',
|
|
130
|
-
'agent'
|
|
131
|
-
);
|
|
132
|
-
|
|
133
|
-
SELECT update_work_item_status('<id>'::uuid, 'done',
|
|
134
|
-
'["Validator verified rdc:fixit report, CodeFlow post, and checklist evidence"]'::jsonb,
|
|
135
|
-
'<validator-session-id>',
|
|
136
|
-
'validator'
|
|
137
|
-
);
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
If the fix touched a transactional flow, API boundary, or package contract, set `"transactional": true` and populate `memory_records` (see `agent-bootstrap.md`), then run:
|
|
141
|
-
```bash
|
|
142
|
-
node scripts/work-item-memory.mjs <work-item-id>
|
|
143
|
-
# Note: verify script exists first: ls {PROJECT_ROOT}/scripts/work-item-memory.mjs
|
|
144
|
-
# If the script is absent, skip this step and note it in the implementation report.
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
rm {USER_HOME}/.claude/fixit.marker
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### 7. Confirm to user
|
|
152
|
-
|
|
153
|
-
Report: what was fixed, file(s) changed, commit hash. One sentence.
|
|
154
|
-
|
|
155
|
-
## Rules
|
|
156
|
-
- Work item created BEFORE any code change — never after
|
|
157
|
-
- `git add` specific files only — never `-A` or `.` for a fixit
|
|
158
|
-
- Branch: development branch always
|
|
159
|
-
- Never run `pnpm build` — not needed for a fixit
|
|
160
|
-
- If scope expands mid-fix: stop, escalate to rdc:build, don't finish under fixit
|
|
161
|
-
- Marker file must be cleaned up whether fix succeeds or escalates
|
|
162
|
-
|
|
163
|
-
## Capture lessons (exit step)
|
|
164
|
-
|
|
165
|
-
Before the final verdict line, follow `.rdc/guides/lessons-learned-spec.md` § Capture procedure. If this run taught something non-obvious — a first root-cause theory that turned out wrong, the documented/standard path not working, a missing gate or check that cost a round, or a surprising tool/infra behavior — write one `.rdc/lessons/<YYYY-MM-DD>-fixit-<short-slug>.md` per lesson using the schema in that spec. Set `scope` (`simple` | `architectural`) and `status` (`open`, or `applied` if you shipped the fix in this same run, with the commit linked). Commit the lesson file(s) on `develop` alongside the run's other commits, and note "N lessons captured" in your verdict/summary. A run that taught nothing writes nothing — absence is the default.
|
|
1
|
+
---
|
|
2
|
+
name: rdc:fixit
|
|
3
|
+
description: "Usage `rdc:fixit <description>` — Quick fix under 5 files / 30 min that does not warrant a full plan→build cycle. Creates a minimal work item, makes the change, commits, runs a mandatory code-review pass (pr-review-toolkit:code-reviewer), closes. The only sanctioned bypass of rdc:build."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
|
7
|
+
> Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
|
|
8
|
+
> One checklist upfront, updated in place, shown again at end with a 1-line verdict.
|
|
9
|
+
|
|
10
|
+
> If dispatching subagents or running as a subagent: read `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` first (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md`), then `{PROJECT_ROOT}/.rdc/guides/engineering-behavior.md` (fallback: `{PROJECT_ROOT}/.rdc/guides/engineering-behavior.md`).
|
|
11
|
+
|
|
12
|
+
> **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# rdc:fixit — Sanctioned Quick Fix
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
- Typo or single-line text correction
|
|
19
|
+
- Config value change (env vars, constants, feature flags)
|
|
20
|
+
- Emergency hotfix that cannot wait for a full build cycle
|
|
21
|
+
- Dependency version bump
|
|
22
|
+
- CSS/styling tweak on a single component
|
|
23
|
+
- Broken import or export fix
|
|
24
|
+
- Single-file logic correction
|
|
25
|
+
|
|
26
|
+
## When NOT to Use — escalate to rdc:build instead
|
|
27
|
+
- New feature of any size
|
|
28
|
+
- Refactor touching >5 files
|
|
29
|
+
- Anything requiring architecture decisions
|
|
30
|
+
- Work that will take longer than 30 minutes
|
|
31
|
+
- Schema changes or migrations
|
|
32
|
+
|
|
33
|
+
## Arguments
|
|
34
|
+
- `rdc:fixit <description>` — fix the described issue
|
|
35
|
+
|
|
36
|
+
## Procedure
|
|
37
|
+
|
|
38
|
+
### 1. Scope check (mandatory — do this before touching any file)
|
|
39
|
+
|
|
40
|
+
Will this fix touch more than **5 files** or take more than **30 minutes**?
|
|
41
|
+
|
|
42
|
+
- **YES** → Stop. Use `/rdc:build` instead. Explain to the user why.
|
|
43
|
+
- **NO** → Continue.
|
|
44
|
+
|
|
45
|
+
### 2. Create a minimal work item (before touching any code)
|
|
46
|
+
|
|
47
|
+
```sql
|
|
48
|
+
SELECT insert_work_item(
|
|
49
|
+
p_title := 'fixit: <description>',
|
|
50
|
+
p_item_type := 'bug',
|
|
51
|
+
p_priority := 'urgent',
|
|
52
|
+
p_status := 'in_progress',
|
|
53
|
+
p_source := 'fixit'
|
|
54
|
+
);
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Note the returned `id`.
|
|
58
|
+
|
|
59
|
+
### 3. Write the fixit session marker
|
|
60
|
+
|
|
61
|
+
Write to `{USER_HOME}/.claude/fixit.marker`:
|
|
62
|
+
```
|
|
63
|
+
<work_item_id>
|
|
64
|
+
<ISO timestamp>
|
|
65
|
+
<description>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
This signals the Stop hook that fixit is handling its own documentation.
|
|
69
|
+
|
|
70
|
+
### 4. Make the fix
|
|
71
|
+
|
|
72
|
+
Do the minimal work. Scope creep rule: if you discover the fix requires more than originally scoped, **stop immediately**:
|
|
73
|
+
1. Close the work item: `update_work_item_status('<id>', 'blocked', '["Escalated — scope exceeded fixit threshold"]')`
|
|
74
|
+
2. Delete the marker file
|
|
75
|
+
3. Tell the user to use `/rdc:build` instead
|
|
76
|
+
|
|
77
|
+
Apply `guides/engineering-behavior.md`: state material assumptions in the
|
|
78
|
+
implementation report, avoid speculative abstractions, touch only required
|
|
79
|
+
files, and verify behavior before moving the work item to `review`.
|
|
80
|
+
|
|
81
|
+
### 5. Commit
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
git add <specific files only — never git add -A for a fixit>
|
|
85
|
+
git commit -m "fix(<scope>): <description>"
|
|
86
|
+
if [ "$RDC_TEST" != "1" ]; then
|
|
87
|
+
git push origin {development-branch}
|
|
88
|
+
else
|
|
89
|
+
echo "[RDC_TEST] skipping git push origin {development-branch}"
|
|
90
|
+
fi
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 5.5 Mandatory code-review gate (before submitting implementation report)
|
|
94
|
+
|
|
95
|
+
⛔ **No fixit closes without a code-review pass.** Even single-file changes go through review.
|
|
96
|
+
|
|
97
|
+
Dispatch ONE `pr-review-toolkit:code-reviewer` agent on the fixit commit:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Agent({
|
|
101
|
+
subagent_type: "pr-review-toolkit:code-reviewer",
|
|
102
|
+
description: "fixit code review",
|
|
103
|
+
prompt: "Review `git show HEAD` on the development branch. Focus on:
|
|
104
|
+
bugs, logic errors, security, project-convention adherence (.claude/rules/*).
|
|
105
|
+
Confidence-based filtering — high-confidence findings only.
|
|
106
|
+
Return CODE_REVIEW_COMPLETE with: { critical_count, high_count, medium_count,
|
|
107
|
+
low_count, findings: [{severity, file:line, issue, suggested_fix}] }."
|
|
108
|
+
})
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Severity gate:**
|
|
112
|
+
- `critical` or `high` findings → fix in this same fixit session (do not escalate to rdc:build for the fix itself; the original fixit owns the cleanup), re-commit, re-run review until clean
|
|
113
|
+
- `medium` or `low` findings → record in `implementation_report.flags`; proceed to close
|
|
114
|
+
- Zero findings → proceed to close
|
|
115
|
+
|
|
116
|
+
Under `RDC_TEST=1`: echo `[RDC_TEST] skipping code-review dispatch` and proceed.
|
|
117
|
+
|
|
118
|
+
### 6. Close and clean up
|
|
119
|
+
|
|
120
|
+
Submit implementation report first, move to review, then close as validator:
|
|
121
|
+
|
|
122
|
+
```sql
|
|
123
|
+
SELECT submit_implementation_report('<id>'::uuid,
|
|
124
|
+
'{"tldr":"<one sentence>","assumptions":[],"deviations":[],"uncertainty":[],"detail":"<what was fixed>","flags":[],"transactional":false,"memory_records":[],"codeflow_post":{"agent_session_id":"<agent-session-id>","summary":"<what changed and why>","files_changed":["<path>"],"verification":["<command/evidence>"],"commit":"<hash optional>"}}'::jsonb
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
SELECT update_work_item_status('<id>'::uuid, 'review',
|
|
128
|
+
'["Fixed via rdc:fixit; ready for validation"]'::jsonb,
|
|
129
|
+
'<agent-session-id>',
|
|
130
|
+
'agent'
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
SELECT update_work_item_status('<id>'::uuid, 'done',
|
|
134
|
+
'["Validator verified rdc:fixit report, CodeFlow post, and checklist evidence"]'::jsonb,
|
|
135
|
+
'<validator-session-id>',
|
|
136
|
+
'validator'
|
|
137
|
+
);
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
If the fix touched a transactional flow, API boundary, or package contract, set `"transactional": true` and populate `memory_records` (see `agent-bootstrap.md`), then run:
|
|
141
|
+
```bash
|
|
142
|
+
node scripts/work-item-memory.mjs <work-item-id>
|
|
143
|
+
# Note: verify script exists first: ls {PROJECT_ROOT}/scripts/work-item-memory.mjs
|
|
144
|
+
# If the script is absent, skip this step and note it in the implementation report.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
rm {USER_HOME}/.claude/fixit.marker
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### 7. Confirm to user
|
|
152
|
+
|
|
153
|
+
Report: what was fixed, file(s) changed, commit hash. One sentence.
|
|
154
|
+
|
|
155
|
+
## Rules
|
|
156
|
+
- Work item created BEFORE any code change — never after
|
|
157
|
+
- `git add` specific files only — never `-A` or `.` for a fixit
|
|
158
|
+
- Branch: development branch always
|
|
159
|
+
- Never run `pnpm build` — not needed for a fixit
|
|
160
|
+
- If scope expands mid-fix: stop, escalate to rdc:build, don't finish under fixit
|
|
161
|
+
- Marker file must be cleaned up whether fix succeeds or escalates
|
|
162
|
+
|
|
163
|
+
## Capture lessons (exit step)
|
|
164
|
+
|
|
165
|
+
Before the final verdict line, follow `.rdc/guides/lessons-learned-spec.md` § Capture procedure. If this run taught something non-obvious — a first root-cause theory that turned out wrong, the documented/standard path not working, a missing gate or check that cost a round, or a surprising tool/infra behavior — write one `.rdc/lessons/<YYYY-MM-DD>-fixit-<short-slug>.md` per lesson using the schema in that spec. Set `scope` (`simple` | `architectural`) and `status` (`open`, or `applied` if you shipped the fix in this same run, with the commit linked). Commit the lesson file(s) on `develop` alongside the run's other commits, and note "N lessons captured" in your verdict/summary. A run that taught nothing writes nothing — absence is the default.
|