@lifeaitools/rdc-skills 0.24.38 → 0.24.39

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.
Files changed (191) hide show
  1. package/.claude/settings.json +15 -15
  2. package/.claude-plugin/marketplace.json +21 -21
  3. package/.claude-plugin/plugin.json +1371 -1371
  4. package/.github/workflows/publish.yml +34 -34
  5. package/.github/workflows/self-test.yml +58 -58
  6. package/CHANGELOG.md +310 -310
  7. package/LICENSE +21 -21
  8. package/MANIFEST.md +221 -221
  9. package/README.md +377 -377
  10. package/README.sandbox.md +3 -3
  11. package/assets/watcher/viewer.html +164 -164
  12. package/bin/rdc-skills-mcp.mjs +316 -316
  13. package/commands/build.md +183 -183
  14. package/commands/collab.md +180 -180
  15. package/commands/deploy.md +152 -152
  16. package/commands/design.md +31 -31
  17. package/commands/edit.md +28 -28
  18. package/commands/fixit.md +124 -124
  19. package/commands/handoff.md +173 -173
  20. package/commands/help.md +95 -95
  21. package/commands/overnight.md +220 -220
  22. package/commands/plan.md +158 -158
  23. package/commands/preplan.md +131 -131
  24. package/commands/prototype.md +145 -145
  25. package/commands/release.md +49 -49
  26. package/commands/report.md +99 -99
  27. package/commands/review.md +120 -120
  28. package/commands/self-test.md +113 -113
  29. package/commands/status.md +86 -86
  30. package/commands/watch.md +98 -98
  31. package/commands/workitems.md +137 -137
  32. package/git-sha.json +1 -1
  33. package/guides/agent-bootstrap.md +295 -295
  34. package/guides/agents/backend.md +104 -104
  35. package/guides/agents/content.md +94 -94
  36. package/guides/agents/cs2.md +56 -56
  37. package/guides/agents/data.md +87 -87
  38. package/guides/agents/design.md +77 -77
  39. package/guides/agents/frontend.md +92 -92
  40. package/guides/agents/infrastructure.md +81 -81
  41. package/guides/agents/setup.md +281 -281
  42. package/guides/agents/verify.md +151 -151
  43. package/guides/agents/viz.md +106 -106
  44. package/guides/backend.md +146 -146
  45. package/guides/content.md +147 -147
  46. package/guides/cs2.md +190 -190
  47. package/guides/data.md +123 -123
  48. package/guides/design.md +116 -116
  49. package/guides/engineering-behavior.md +43 -43
  50. package/guides/escalation-protocol.md +125 -125
  51. package/guides/frontend.md +151 -151
  52. package/guides/history-md-spec.md +297 -297
  53. package/guides/infrastructure.md +179 -179
  54. package/guides/lessons-learned-spec.md +153 -153
  55. package/guides/output-contract.md +108 -108
  56. package/guides/publish-md-spec.md +289 -289
  57. package/guides/rdc-skills-startup.md +30 -30
  58. package/guides/verify.md +11 -11
  59. package/hooks/check-cwd.js +31 -31
  60. package/hooks/check-rdc-environment.js +164 -164
  61. package/hooks/check-services.js +6 -6
  62. package/hooks/check-stale-work-items.js +19 -19
  63. package/hooks/foreground-process-gate.js +128 -128
  64. package/hooks/gate-watchdog-selfcheck.js +257 -257
  65. package/hooks/hook-logger.js +25 -25
  66. package/hooks/lib/run-evidence-gate.mjs +241 -241
  67. package/hooks/no-stop-open-epics.js +127 -127
  68. package/hooks/post-tool-batch-gate.js +203 -203
  69. package/hooks/post-work-check.js +21 -21
  70. package/hooks/postcompact-log.js +13 -13
  71. package/hooks/precompact-log.js +13 -13
  72. package/hooks/rate-limit-retry.js +46 -46
  73. package/hooks/rdc-invocation-marker.js +157 -157
  74. package/hooks/rdc-output-contract-gate.js +94 -94
  75. package/hooks/require-work-item-on-commit.js +294 -294
  76. package/hooks/restart-brief.js +19 -19
  77. package/hooks/run-hidden-hook.ps1 +47 -47
  78. package/hooks/task-completed-gate.js +274 -274
  79. package/hooks/work-item-exit-gate.js +944 -944
  80. package/lib/catalog.mjs +236 -236
  81. package/lib/cloud-rewrite.mjs +155 -155
  82. package/package.json +56 -56
  83. package/rules/work-items-rpc.md +520 -520
  84. package/scaffold/templates/HISTORY.md.template +39 -39
  85. package/scaffold/templates/PUBLISH.md.template +21 -21
  86. package/scaffold/templates/brochure-studio-default.html +70 -70
  87. package/scripts/acceptance.mjs +502 -502
  88. package/scripts/fixtures/guides/bad-guide.md +15 -15
  89. package/scripts/fixtures/guides-clean/good-guide.md +16 -16
  90. package/scripts/install-rdc-skills.js +1289 -1289
  91. package/scripts/install.ps1 +202 -202
  92. package/scripts/install.sh +132 -132
  93. package/scripts/lib/assertions.mjs +287 -287
  94. package/scripts/lib/manifest-schema.mjs +754 -754
  95. package/scripts/lib/runner.mjs +465 -465
  96. package/scripts/lib/sandbox.mjs +435 -435
  97. package/scripts/prepack.mjs +32 -32
  98. package/scripts/rdc-brochure.mjs +464 -464
  99. package/scripts/rdc-design-cli.mjs +134 -134
  100. package/scripts/rebuild-mcp.mjs +107 -107
  101. package/scripts/self-test.mjs +1460 -1460
  102. package/scripts/stamp-git-sha.mjs +29 -29
  103. package/scripts/test-guide-validator.mjs +196 -196
  104. package/scripts/test-rdc-hooks.mjs +145 -145
  105. package/scripts/uninstall.ps1 +77 -77
  106. package/scripts/uninstall.sh +69 -69
  107. package/scripts/update.ps1 +43 -43
  108. package/scripts/update.sh +43 -43
  109. package/scripts/validate-place-histories.js +461 -461
  110. package/scripts/validate-publish-manifests.js +424 -424
  111. package/scripts/watch-init.mjs +100 -100
  112. package/skills/brochure/SKILL.md +107 -107
  113. package/skills/build/SKILL.md +563 -563
  114. package/skills/channel-formatter/SKILL.md +533 -533
  115. package/skills/co-develop/SKILL.md +196 -196
  116. package/skills/collab/SKILL.md +239 -239
  117. package/skills/convert/SKILL.md +140 -140
  118. package/skills/deploy/SKILL.md +541 -541
  119. package/skills/design/SKILL.md +211 -211
  120. package/skills/design/reference/ownership.md +16 -16
  121. package/skills/design/reference/rampa.md +92 -92
  122. package/skills/design/reference/studio-model.md +153 -153
  123. package/skills/edit/SKILL.md +98 -98
  124. package/skills/fixit/SKILL.md +165 -165
  125. package/skills/fs-mcp/SKILL.md +148 -148
  126. package/skills/handoff/SKILL.md +236 -200
  127. package/skills/help/SKILL.md +143 -143
  128. package/skills/housekeeping/SKILL.md +189 -189
  129. package/skills/lifeai-brochure-author/SKILL.md +340 -340
  130. package/skills/overnight/SKILL.md +251 -251
  131. package/skills/plan/SKILL.md +345 -345
  132. package/skills/preplan/SKILL.md +90 -90
  133. package/skills/prototype/SKILL.md +150 -150
  134. package/skills/rdc-brochurify/SKILL.md +245 -245
  135. package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
  136. package/skills/release/SKILL.md +140 -140
  137. package/skills/report/SKILL.md +100 -100
  138. package/skills/review/SKILL.md +152 -152
  139. package/skills/rpms-filemap/SKILL.cloud.md +111 -111
  140. package/skills/rpms-filemap/SKILL.md +111 -111
  141. package/skills/self-test/SKILL.md +132 -132
  142. package/skills/status/SKILL.md +99 -99
  143. package/skills/terminal-config/SKILL.md +62 -62
  144. package/skills/tests/MATRIX.md +54 -54
  145. package/skills/tests/README.md +47 -47
  146. package/skills/tests/rdc-brochure.test.json +34 -34
  147. package/skills/tests/rdc-build.test.json +36 -36
  148. package/skills/tests/rdc-channel-formatter.test.json +45 -45
  149. package/skills/tests/rdc-co-develop.test.json +29 -29
  150. package/skills/tests/rdc-collab.test.json +29 -29
  151. package/skills/tests/rdc-convert.test.json +35 -35
  152. package/skills/tests/rdc-deploy.test.json +30 -30
  153. package/skills/tests/rdc-design.test.json +27 -27
  154. package/skills/tests/rdc-edit.test.json +29 -29
  155. package/skills/tests/rdc-fixit.test.json +36 -36
  156. package/skills/tests/rdc-fs-mcp.test.json +36 -36
  157. package/skills/tests/rdc-handoff.test.json +28 -28
  158. package/skills/tests/rdc-help.test.json +29 -29
  159. package/skills/tests/rdc-housekeeping.test.json +31 -31
  160. package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
  161. package/skills/tests/rdc-overnight.test.json +37 -37
  162. package/skills/tests/rdc-plan.test.json +27 -27
  163. package/skills/tests/rdc-preplan.test.json +31 -31
  164. package/skills/tests/rdc-prototype.test.json +28 -28
  165. package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
  166. package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
  167. package/skills/tests/rdc-release.test.json +29 -29
  168. package/skills/tests/rdc-report.test.json +28 -28
  169. package/skills/tests/rdc-review.test.json +29 -29
  170. package/skills/tests/rdc-rpms-filemap.test.json +28 -28
  171. package/skills/tests/rdc-self-test.test.json +24 -24
  172. package/skills/tests/rdc-status.test.json +29 -29
  173. package/skills/tests/rdc-terminal-config.test.json +29 -29
  174. package/skills/tests/rdc-watch.test.json +24 -24
  175. package/skills/tests/rdc-workitems.test.json +27 -27
  176. package/skills/watch/SKILL.md +97 -97
  177. package/skills/workitems/SKILL.md +151 -151
  178. package/tests/acceptance.test.mjs +59 -59
  179. package/tests/channel-formatter.contract.test.mjs +251 -251
  180. package/tests/curl-surface.test.mjs +289 -289
  181. package/tests/harness-gates.test.mjs +325 -325
  182. package/tests/help-surface.test.mjs +61 -61
  183. package/tests/install-rdc-skills.test.mjs +49 -49
  184. package/tests/manifest-contract-fields.test.mjs +78 -78
  185. package/tests/mcp.test.mjs +271 -271
  186. package/tests/require-work-item-on-commit.test.mjs +162 -162
  187. package/tests/run-evidence-gate.test.mjs +82 -82
  188. package/tests/skill-test-matrix.test.mjs +66 -66
  189. package/tests/validate-skills.js +27 -27
  190. package/tests/work-item-exit-gate-l2.test.mjs +368 -368
  191. package/tests/work-item-exit-gate-l3.test.mjs +197 -197
@@ -1,179 +1,179 @@
1
- # Infrastructure Agent Guide — Base
2
- > Role-based context for infra/deployment/DevOps agents. Generic patterns across projects.
3
-
4
- ---
5
-
6
- ## Rule 1: NEVER Work Around Broken Infrastructure
7
-
8
- When a service is unavailable, STOP and report BLOCKED. Do not:
9
- - Use curl when service APIs are down
10
- - Use workarounds or alternative approaches
11
- - Skip verification steps
12
- - Assume service will return to normal
13
-
14
- **Report immediately:**
15
-
16
- ```
17
- BLOCKED: [service name] is not responding.
18
-
19
- Fix: [specific action for your project's infrastructure stack]
20
-
21
- I cannot proceed until this is resolved.
22
- ```
23
-
24
- ---
25
-
26
- ## Deployment Tools
27
-
28
- Check project overlay for:
29
- - Primary deployment platform (Coolify, Vercel, AWS, GCP, etc.)
30
- - MCP connectors or REST API access
31
- - Authentication method (API token, OAuth, etc.)
32
- - Credential location (clauth daemon, env vars, etc.)
33
-
34
- ---
35
-
36
- ## Server Infrastructure
37
-
38
- The project specifies:
39
- - Server IP/hostname
40
- - Dashboard URL
41
- - Default region/availability zones
42
- - Server/environment IDs (UUIDs or identifiers)
43
-
44
- ---
45
-
46
- ## DNS Rules
47
-
48
- The project specifies:
49
- - Wildcard DNS patterns vs individual records
50
- - Cloudflare or other DNS provider
51
- - Proxy rules (orange cloud, DNS-only, etc.)
52
- - SSL/TLS provisioning method
53
-
54
- Check overlay for **critical rules** — DNS misconfigurations break deployments.
55
-
56
- ---
57
-
58
- ## Deployment Registry
59
-
60
- The project likely has a registry/database table tracking all deployments. Before ANY deploy, verify:
61
- ```
62
- Lookup: <slug> or <domain>
63
- Returns: UUID, repo location, build command, build type, domain, status
64
- ```
65
-
66
- **NEVER guess** UUIDs, domains, or build commands. Always look them up.
67
-
68
- ---
69
-
70
- ## Watch Paths
71
-
72
- For monorepo deploys, the project specifies:
73
- - Watch path patterns per app type
74
- - Why watch paths matter (prevents unnecessary rebuilds)
75
- - How to set watch paths (usually via API or config)
76
-
77
- Without correct watch paths, every push triggers ALL apps to rebuild.
78
-
79
- ---
80
-
81
- ## Build Types
82
-
83
- The project specifies supported build types:
84
- - Next.js monorepo
85
- - Vite / Node
86
- - Static HTML
87
- - Docker
88
- - etc.
89
-
90
- Check overlay for:
91
- - Build pack (nixpacks, docker, static, etc.)
92
- - Required environment variables
93
- - Node version constraints
94
- - Build command and install command
95
-
96
- ---
97
-
98
- ## Environment Tiers
99
-
100
- The project specifies deployment environments:
101
- - **development** -- free to experiment
102
- - **staging** -- test before production
103
- - **production** -- live traffic, needs confirmation
104
-
105
- Check overlay for which tier each app is in and confirmation requirements.
106
-
107
- ---
108
-
109
- ## Deploy Checklist
110
-
111
- Standard pattern:
112
- 1. Check git status (divergence, unpushed commits)
113
- 2. Confirm with user (especially for production)
114
- 3. Push to trigger auto-deploy (if webhook configured)
115
- 4. Verify deployment success (health check, status endpoint)
116
- 5. Check cache headers (if behind CDN)
117
-
118
- ---
119
-
120
- ## New App Deployment
121
-
122
- The project specifies:
123
- - DNS pattern (wildcard subdomains vs custom domains)
124
- - Coolify/deployment platform setup
125
- - GitHub repo connection
126
- - Watch paths configuration
127
- - Registry update requirement
128
-
129
- ---
130
-
131
- ## Credential Safety
132
-
133
- - MCP connectors first (if available)
134
- - clauth daemon second (localhost:52437)
135
- - Never print keys to stdout
136
- - Never hardcode credentials
137
- - Never ask user for keys
138
- - If daemon is down: report BLOCKED
139
-
140
- ---
141
-
142
- ## Git Workflow
143
-
144
- The project specifies:
145
- - Primary branch for features (develop, main, etc.)
146
- - Force-push rules (usually: NEVER force-push main)
147
- - Commit message format
148
- - Auto-commit patterns
149
-
150
- ---
151
-
152
- ## Service Health Checks
153
-
154
- The project specifies how to health-check each service:
155
- - Ping endpoint
156
- - Status endpoint
157
- - Log location
158
- - Fallback if primary method fails
159
-
160
- ---
161
-
162
- ## Troubleshooting Patterns
163
-
164
- The project specifies common issues and fixes:
165
- - 502/503 errors (check container logs, port mismatch)
166
- - Disk full (clean Docker cache)
167
- - SSL provisioning failures (check DNS config)
168
- - Build failures (check environment variables, Node version)
169
-
170
- ---
171
-
172
- ## Specialist Context — Read Project Overlay
173
-
174
- Your task may require reading additional project-specific guides for:
175
- - Full deployment registry schema
176
- - Complete DNS rules (critical for subdomains)
177
- - Build type details
178
- - CI/CD pipeline configuration
179
- - Scaling and performance tuning
1
+ # Infrastructure Agent Guide — Base
2
+ > Role-based context for infra/deployment/DevOps agents. Generic patterns across projects.
3
+
4
+ ---
5
+
6
+ ## Rule 1: NEVER Work Around Broken Infrastructure
7
+
8
+ When a service is unavailable, STOP and report BLOCKED. Do not:
9
+ - Use curl when service APIs are down
10
+ - Use workarounds or alternative approaches
11
+ - Skip verification steps
12
+ - Assume service will return to normal
13
+
14
+ **Report immediately:**
15
+
16
+ ```
17
+ BLOCKED: [service name] is not responding.
18
+
19
+ Fix: [specific action for your project's infrastructure stack]
20
+
21
+ I cannot proceed until this is resolved.
22
+ ```
23
+
24
+ ---
25
+
26
+ ## Deployment Tools
27
+
28
+ Check project overlay for:
29
+ - Primary deployment platform (Coolify, Vercel, AWS, GCP, etc.)
30
+ - MCP connectors or REST API access
31
+ - Authentication method (API token, OAuth, etc.)
32
+ - Credential location (clauth daemon, env vars, etc.)
33
+
34
+ ---
35
+
36
+ ## Server Infrastructure
37
+
38
+ The project specifies:
39
+ - Server IP/hostname
40
+ - Dashboard URL
41
+ - Default region/availability zones
42
+ - Server/environment IDs (UUIDs or identifiers)
43
+
44
+ ---
45
+
46
+ ## DNS Rules
47
+
48
+ The project specifies:
49
+ - Wildcard DNS patterns vs individual records
50
+ - Cloudflare or other DNS provider
51
+ - Proxy rules (orange cloud, DNS-only, etc.)
52
+ - SSL/TLS provisioning method
53
+
54
+ Check overlay for **critical rules** — DNS misconfigurations break deployments.
55
+
56
+ ---
57
+
58
+ ## Deployment Registry
59
+
60
+ The project likely has a registry/database table tracking all deployments. Before ANY deploy, verify:
61
+ ```
62
+ Lookup: <slug> or <domain>
63
+ Returns: UUID, repo location, build command, build type, domain, status
64
+ ```
65
+
66
+ **NEVER guess** UUIDs, domains, or build commands. Always look them up.
67
+
68
+ ---
69
+
70
+ ## Watch Paths
71
+
72
+ For monorepo deploys, the project specifies:
73
+ - Watch path patterns per app type
74
+ - Why watch paths matter (prevents unnecessary rebuilds)
75
+ - How to set watch paths (usually via API or config)
76
+
77
+ Without correct watch paths, every push triggers ALL apps to rebuild.
78
+
79
+ ---
80
+
81
+ ## Build Types
82
+
83
+ The project specifies supported build types:
84
+ - Next.js monorepo
85
+ - Vite / Node
86
+ - Static HTML
87
+ - Docker
88
+ - etc.
89
+
90
+ Check overlay for:
91
+ - Build pack (nixpacks, docker, static, etc.)
92
+ - Required environment variables
93
+ - Node version constraints
94
+ - Build command and install command
95
+
96
+ ---
97
+
98
+ ## Environment Tiers
99
+
100
+ The project specifies deployment environments:
101
+ - **development** -- free to experiment
102
+ - **staging** -- test before production
103
+ - **production** -- live traffic, needs confirmation
104
+
105
+ Check overlay for which tier each app is in and confirmation requirements.
106
+
107
+ ---
108
+
109
+ ## Deploy Checklist
110
+
111
+ Standard pattern:
112
+ 1. Check git status (divergence, unpushed commits)
113
+ 2. Confirm with user (especially for production)
114
+ 3. Push to trigger auto-deploy (if webhook configured)
115
+ 4. Verify deployment success (health check, status endpoint)
116
+ 5. Check cache headers (if behind CDN)
117
+
118
+ ---
119
+
120
+ ## New App Deployment
121
+
122
+ The project specifies:
123
+ - DNS pattern (wildcard subdomains vs custom domains)
124
+ - Coolify/deployment platform setup
125
+ - GitHub repo connection
126
+ - Watch paths configuration
127
+ - Registry update requirement
128
+
129
+ ---
130
+
131
+ ## Credential Safety
132
+
133
+ - MCP connectors first (if available)
134
+ - clauth daemon second (localhost:52437)
135
+ - Never print keys to stdout
136
+ - Never hardcode credentials
137
+ - Never ask user for keys
138
+ - If daemon is down: report BLOCKED
139
+
140
+ ---
141
+
142
+ ## Git Workflow
143
+
144
+ The project specifies:
145
+ - Primary branch for features (develop, main, etc.)
146
+ - Force-push rules (usually: NEVER force-push main)
147
+ - Commit message format
148
+ - Auto-commit patterns
149
+
150
+ ---
151
+
152
+ ## Service Health Checks
153
+
154
+ The project specifies how to health-check each service:
155
+ - Ping endpoint
156
+ - Status endpoint
157
+ - Log location
158
+ - Fallback if primary method fails
159
+
160
+ ---
161
+
162
+ ## Troubleshooting Patterns
163
+
164
+ The project specifies common issues and fixes:
165
+ - 502/503 errors (check container logs, port mismatch)
166
+ - Disk full (clean Docker cache)
167
+ - SSL provisioning failures (check DNS config)
168
+ - Build failures (check environment variables, Node version)
169
+
170
+ ---
171
+
172
+ ## Specialist Context — Read Project Overlay
173
+
174
+ Your task may require reading additional project-specific guides for:
175
+ - Full deployment registry schema
176
+ - Complete DNS rules (critical for subdomains)
177
+ - Build type details
178
+ - CI/CD pipeline configuration
179
+ - Scaling and performance tuning
@@ -1,153 +1,153 @@
1
- ---
2
- mdk_schema_version: "1.0"
3
- doc_type: guide
4
- system: claude-workflow
5
- status: active
6
- owner: infrastructure
7
- created: 2026-06-08
8
- last_reviewed: 2026-06-08
9
- source_of_truth: true
10
- supersedes: []
11
- depends_on:
12
- - ".claude/rules/architectural-change-approval.md"
13
- - ".rdc/guides/output-contract.md"
14
- tags: [rdc, lessons-learned, skills, housekeeping, adaptive]
15
- ---
16
-
17
- # Lessons-Learned Capture & Triage — Spec
18
-
19
- > Auto-referenced by long-running `rdc:*` skills at exit, and by `rdc:housekeeping` for triage.
20
- > Goal: make the fleet an **interactive adaptive modeler** — every run that teaches us
21
- > something writes it down, and the weekly housekeeping pass turns those lessons into
22
- > actual fixes (rules, skill docs, work_items).
23
-
24
- ---
25
-
26
- ## Why this exists
27
-
28
- Lessons learned during a run (a non-obvious infra trap, a wrong assumption, a missing
29
- gate, a tooling gotcha) used to survive only if someone hand-wrote a memory. This system
30
- makes capture a **routine exit step** of every long skill, and triage a **routine phase**
31
- of the weekly housekeeping. Capture is cheap and append-only; triage is where fixes happen.
32
-
33
- Precedent: brochurify's `rdc-extract-verifier-rules` already does read-log → cluster →
34
- propose-rule for one domain. This generalizes that pattern fleet-wide.
35
-
36
- ---
37
-
38
- ## Storage — directory of per-lesson files
39
-
40
- Lessons live in **`.rdc/lessons/`**, one markdown file per lesson:
41
-
42
- ```
43
- .rdc/lessons/<YYYY-MM-DD>-<skill>-<short-slug>.md
44
- ```
45
-
46
- - One file per lesson (NOT a single appended file) so parallel agents finishing at the
47
- same time never collide on one file in git.
48
- - `<skill>` is the capturing skill (`build`, `deploy`, `overnight`, `fixit`, `plan`,
49
- `preplan`, `review`, `release`, `collab`).
50
- - `<short-slug>` is 2–4 kebab words naming the lesson.
51
-
52
- A run that taught nothing writes nothing — **absence is the default**. Only write a lesson
53
- when something was genuinely learned (see § When to capture).
54
-
55
- ---
56
-
57
- ## Lesson file schema
58
-
59
- ```markdown
60
- ---
61
- id: <YYYY-MM-DD>-<skill>-<short-slug>
62
- date: "<YYYY-MM-DD>"
63
- skill: build | deploy | overnight | fixit | plan | preplan | review | release | collab
64
- session: <session-id or short ref>
65
- scope: simple | architectural # triage routing — see § Scope gate
66
- status: open | triaged | applied | wont-fix
67
- area: infra | skill | guide | rule | schema | ui | content | other
68
- links:
69
- commits: [] # SHAs that relate to the lesson
70
- memory: [] # memory file slugs, if a memory was also written
71
- work_items: [] # work_item UUIDs spawned during triage
72
- ---
73
-
74
- ## What happened
75
- <one paragraph — the concrete situation, with evidence (exit code, file:line, command)>
76
-
77
- ## Root cause
78
- <one paragraph — the evidenced cause, not a guess>
79
-
80
- ## The fix / rule
81
- <what should change so this never recurs: a rule edit, skill-doc line, code change,
82
- or a check. If already applied in the same run, say so and link the commit.>
83
- ```
84
-
85
- `scope` is the single most important field — it routes triage:
86
-
87
- - **`simple`** — a doc line, a one-file fix, a config tweak, a clarifying sentence in a
88
- skill, a missing grep guard. Housekeeping applies these directly.
89
- - **`architectural`** — anything matching `.claude/rules/architectural-change-approval.md`
90
- (rule/CLAUDE.md/ARCHITECTURE.md edits, cross-cutting refactors, schema reshape, public
91
- API/MCP changes, skill-contract changes affecting multiple skills). Housekeeping does
92
- NOT apply these; it surfaces them via `AskUserQuestion` for explicit approval first.
93
-
94
- When unsure, mark `architectural`.
95
-
96
- ---
97
-
98
- ## When to capture (at skill exit)
99
-
100
- Write a lesson when ANY of these were true during the run:
101
-
102
- 1. A root cause turned out to be different from the first theory (a wrong assumption).
103
- 2. The standard/documented path didn't work and you had to do something non-obvious.
104
- 3. A gate, check, or doc was missing and its absence cost a round.
105
- 4. A tool/infra behaved in a surprising way (exit codes, caching, serve/PM2/webhook quirks).
106
- 5. A hook blocked you and the block revealed a real gap (not just your mistake).
107
-
108
- Do NOT capture: routine success, your own one-off typo, anything already fully documented
109
- in a rule/guide. If a durable user preference or correction was involved, also write a
110
- `memory` (this spec and memory are complementary — link them).
111
-
112
- ---
113
-
114
- ## Capture procedure (the exit step long skills call)
115
-
116
- At the end of a long skill run, before the final verdict line:
117
-
118
- 1. Decide if anything qualifies (§ When to capture). If not, write nothing and move on.
119
- 2. For each lesson, write `.rdc/lessons/<date>-<skill>-<slug>.md` using the schema above.
120
- Set `status: open` (or `applied` if you already shipped the fix in this same run, with
121
- the commit linked).
122
- 3. Set `scope` honestly (`simple` vs `architectural`).
123
- 4. Commit the lesson file(s) on `develop` alongside the run's other commits.
124
- 5. Mention in the verdict/summary that N lessons were captured.
125
-
126
- ---
127
-
128
- ## Triage procedure (rdc:housekeeping, weekly)
129
-
130
- `rdc:housekeeping` adds a **Lessons triage** phase:
131
-
132
- 1. Read all `.rdc/lessons/*.md` with `status: open`.
133
- 2. Cluster by `area` + root-cause similarity (dedupe repeats into one fix).
134
- 3. For each cluster:
135
- - `scope: simple` → apply the fix directly (rule line, skill-doc edit, config, guard),
136
- commit it, set the lesson(s) `status: applied` and link the commit.
137
- - `scope: architectural` → do NOT edit. Present the issue + options via
138
- `AskUserQuestion` (per `architectural-change-approval.md`). On approval, apply via the
139
- correct lifecycle (rdc-skills tag/push for skills; cited commit for rules) and set
140
- `status: applied`. If deferred, set `status: triaged` and spawn a `work_item`.
141
- - Not worth fixing → `status: wont-fix` with a one-line reason.
142
- 4. Summarize in the housekeeping report: captured / applied / escalated / deferred counts.
143
-
144
- Lessons are never silently deleted — `applied` and `wont-fix` files stay as the audit trail.
145
-
146
- ---
147
-
148
- ## Skills that capture (the long-running set)
149
-
150
- `build` · `deploy` · `overnight` · `fixit` · `plan` · `preplan` · `review` · `release` · `collab`
151
-
152
- Each references this spec from a final "§ Capture lessons" step. A Stop-hook backstop warns
153
- when one of these skills ends a run with findings but no new `.rdc/lessons/` file.
1
+ ---
2
+ mdk_schema_version: "1.0"
3
+ doc_type: guide
4
+ system: claude-workflow
5
+ status: active
6
+ owner: infrastructure
7
+ created: 2026-06-08
8
+ last_reviewed: 2026-06-08
9
+ source_of_truth: true
10
+ supersedes: []
11
+ depends_on:
12
+ - ".claude/rules/architectural-change-approval.md"
13
+ - ".rdc/guides/output-contract.md"
14
+ tags: [rdc, lessons-learned, skills, housekeeping, adaptive]
15
+ ---
16
+
17
+ # Lessons-Learned Capture & Triage — Spec
18
+
19
+ > Auto-referenced by long-running `rdc:*` skills at exit, and by `rdc:housekeeping` for triage.
20
+ > Goal: make the fleet an **interactive adaptive modeler** — every run that teaches us
21
+ > something writes it down, and the weekly housekeeping pass turns those lessons into
22
+ > actual fixes (rules, skill docs, work_items).
23
+
24
+ ---
25
+
26
+ ## Why this exists
27
+
28
+ Lessons learned during a run (a non-obvious infra trap, a wrong assumption, a missing
29
+ gate, a tooling gotcha) used to survive only if someone hand-wrote a memory. This system
30
+ makes capture a **routine exit step** of every long skill, and triage a **routine phase**
31
+ of the weekly housekeeping. Capture is cheap and append-only; triage is where fixes happen.
32
+
33
+ Precedent: brochurify's `rdc-extract-verifier-rules` already does read-log → cluster →
34
+ propose-rule for one domain. This generalizes that pattern fleet-wide.
35
+
36
+ ---
37
+
38
+ ## Storage — directory of per-lesson files
39
+
40
+ Lessons live in **`.rdc/lessons/`**, one markdown file per lesson:
41
+
42
+ ```
43
+ .rdc/lessons/<YYYY-MM-DD>-<skill>-<short-slug>.md
44
+ ```
45
+
46
+ - One file per lesson (NOT a single appended file) so parallel agents finishing at the
47
+ same time never collide on one file in git.
48
+ - `<skill>` is the capturing skill (`build`, `deploy`, `overnight`, `fixit`, `plan`,
49
+ `preplan`, `review`, `release`, `collab`).
50
+ - `<short-slug>` is 2–4 kebab words naming the lesson.
51
+
52
+ A run that taught nothing writes nothing — **absence is the default**. Only write a lesson
53
+ when something was genuinely learned (see § When to capture).
54
+
55
+ ---
56
+
57
+ ## Lesson file schema
58
+
59
+ ```markdown
60
+ ---
61
+ id: <YYYY-MM-DD>-<skill>-<short-slug>
62
+ date: "<YYYY-MM-DD>"
63
+ skill: build | deploy | overnight | fixit | plan | preplan | review | release | collab
64
+ session: <session-id or short ref>
65
+ scope: simple | architectural # triage routing — see § Scope gate
66
+ status: open | triaged | applied | wont-fix
67
+ area: infra | skill | guide | rule | schema | ui | content | other
68
+ links:
69
+ commits: [] # SHAs that relate to the lesson
70
+ memory: [] # memory file slugs, if a memory was also written
71
+ work_items: [] # work_item UUIDs spawned during triage
72
+ ---
73
+
74
+ ## What happened
75
+ <one paragraph — the concrete situation, with evidence (exit code, file:line, command)>
76
+
77
+ ## Root cause
78
+ <one paragraph — the evidenced cause, not a guess>
79
+
80
+ ## The fix / rule
81
+ <what should change so this never recurs: a rule edit, skill-doc line, code change,
82
+ or a check. If already applied in the same run, say so and link the commit.>
83
+ ```
84
+
85
+ `scope` is the single most important field — it routes triage:
86
+
87
+ - **`simple`** — a doc line, a one-file fix, a config tweak, a clarifying sentence in a
88
+ skill, a missing grep guard. Housekeeping applies these directly.
89
+ - **`architectural`** — anything matching `.claude/rules/architectural-change-approval.md`
90
+ (rule/CLAUDE.md/ARCHITECTURE.md edits, cross-cutting refactors, schema reshape, public
91
+ API/MCP changes, skill-contract changes affecting multiple skills). Housekeeping does
92
+ NOT apply these; it surfaces them via `AskUserQuestion` for explicit approval first.
93
+
94
+ When unsure, mark `architectural`.
95
+
96
+ ---
97
+
98
+ ## When to capture (at skill exit)
99
+
100
+ Write a lesson when ANY of these were true during the run:
101
+
102
+ 1. A root cause turned out to be different from the first theory (a wrong assumption).
103
+ 2. The standard/documented path didn't work and you had to do something non-obvious.
104
+ 3. A gate, check, or doc was missing and its absence cost a round.
105
+ 4. A tool/infra behaved in a surprising way (exit codes, caching, serve/PM2/webhook quirks).
106
+ 5. A hook blocked you and the block revealed a real gap (not just your mistake).
107
+
108
+ Do NOT capture: routine success, your own one-off typo, anything already fully documented
109
+ in a rule/guide. If a durable user preference or correction was involved, also write a
110
+ `memory` (this spec and memory are complementary — link them).
111
+
112
+ ---
113
+
114
+ ## Capture procedure (the exit step long skills call)
115
+
116
+ At the end of a long skill run, before the final verdict line:
117
+
118
+ 1. Decide if anything qualifies (§ When to capture). If not, write nothing and move on.
119
+ 2. For each lesson, write `.rdc/lessons/<date>-<skill>-<slug>.md` using the schema above.
120
+ Set `status: open` (or `applied` if you already shipped the fix in this same run, with
121
+ the commit linked).
122
+ 3. Set `scope` honestly (`simple` vs `architectural`).
123
+ 4. Commit the lesson file(s) on `develop` alongside the run's other commits.
124
+ 5. Mention in the verdict/summary that N lessons were captured.
125
+
126
+ ---
127
+
128
+ ## Triage procedure (rdc:housekeeping, weekly)
129
+
130
+ `rdc:housekeeping` adds a **Lessons triage** phase:
131
+
132
+ 1. Read all `.rdc/lessons/*.md` with `status: open`.
133
+ 2. Cluster by `area` + root-cause similarity (dedupe repeats into one fix).
134
+ 3. For each cluster:
135
+ - `scope: simple` → apply the fix directly (rule line, skill-doc edit, config, guard),
136
+ commit it, set the lesson(s) `status: applied` and link the commit.
137
+ - `scope: architectural` → do NOT edit. Present the issue + options via
138
+ `AskUserQuestion` (per `architectural-change-approval.md`). On approval, apply via the
139
+ correct lifecycle (rdc-skills tag/push for skills; cited commit for rules) and set
140
+ `status: applied`. If deferred, set `status: triaged` and spawn a `work_item`.
141
+ - Not worth fixing → `status: wont-fix` with a one-line reason.
142
+ 4. Summarize in the housekeeping report: captured / applied / escalated / deferred counts.
143
+
144
+ Lessons are never silently deleted — `applied` and `wont-fix` files stay as the audit trail.
145
+
146
+ ---
147
+
148
+ ## Skills that capture (the long-running set)
149
+
150
+ `build` · `deploy` · `overnight` · `fixit` · `plan` · `preplan` · `review` · `release` · `collab`
151
+
152
+ Each references this spec from a final "§ Capture lessons" step. A Stop-hook backstop warns
153
+ when one of these skills ends a run with findings but no new `.rdc/lessons/` file.