@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.
- package/.claude/settings.json +15 -15
- package/.claude-plugin/marketplace.json +21 -21
- package/.claude-plugin/plugin.json +1371 -1371
- package/.github/workflows/publish.yml +34 -34
- package/.github/workflows/self-test.yml +58 -58
- package/CHANGELOG.md +310 -310
- package/LICENSE +21 -21
- package/MANIFEST.md +221 -221
- package/README.md +377 -377
- package/README.sandbox.md +3 -3
- package/assets/watcher/viewer.html +164 -164
- package/bin/rdc-skills-mcp.mjs +316 -316
- package/commands/build.md +183 -183
- package/commands/collab.md +180 -180
- package/commands/deploy.md +152 -152
- package/commands/design.md +31 -31
- package/commands/edit.md +28 -28
- package/commands/fixit.md +124 -124
- package/commands/handoff.md +173 -173
- package/commands/help.md +95 -95
- package/commands/overnight.md +220 -220
- package/commands/plan.md +158 -158
- package/commands/preplan.md +131 -131
- package/commands/prototype.md +145 -145
- package/commands/release.md +49 -49
- package/commands/report.md +99 -99
- package/commands/review.md +120 -120
- package/commands/self-test.md +113 -113
- package/commands/status.md +86 -86
- package/commands/watch.md +98 -98
- package/commands/workitems.md +137 -137
- package/git-sha.json +1 -1
- package/guides/agent-bootstrap.md +295 -295
- package/guides/agents/backend.md +104 -104
- package/guides/agents/content.md +94 -94
- package/guides/agents/cs2.md +56 -56
- package/guides/agents/data.md +87 -87
- package/guides/agents/design.md +77 -77
- package/guides/agents/frontend.md +92 -92
- package/guides/agents/infrastructure.md +81 -81
- package/guides/agents/setup.md +281 -281
- package/guides/agents/verify.md +151 -151
- package/guides/agents/viz.md +106 -106
- package/guides/backend.md +146 -146
- package/guides/content.md +147 -147
- package/guides/cs2.md +190 -190
- package/guides/data.md +123 -123
- package/guides/design.md +116 -116
- package/guides/engineering-behavior.md +43 -43
- package/guides/escalation-protocol.md +125 -125
- package/guides/frontend.md +151 -151
- package/guides/history-md-spec.md +297 -297
- package/guides/infrastructure.md +179 -179
- package/guides/lessons-learned-spec.md +153 -153
- package/guides/output-contract.md +108 -108
- package/guides/publish-md-spec.md +289 -289
- package/guides/rdc-skills-startup.md +30 -30
- package/guides/verify.md +11 -11
- package/hooks/check-cwd.js +31 -31
- package/hooks/check-rdc-environment.js +164 -164
- package/hooks/check-services.js +6 -6
- package/hooks/check-stale-work-items.js +19 -19
- package/hooks/foreground-process-gate.js +128 -128
- package/hooks/gate-watchdog-selfcheck.js +257 -257
- package/hooks/hook-logger.js +25 -25
- package/hooks/lib/run-evidence-gate.mjs +241 -241
- package/hooks/no-stop-open-epics.js +127 -127
- package/hooks/post-tool-batch-gate.js +203 -203
- package/hooks/post-work-check.js +21 -21
- package/hooks/postcompact-log.js +13 -13
- package/hooks/precompact-log.js +13 -13
- package/hooks/rate-limit-retry.js +46 -46
- package/hooks/rdc-invocation-marker.js +157 -157
- package/hooks/rdc-output-contract-gate.js +94 -94
- package/hooks/require-work-item-on-commit.js +294 -294
- package/hooks/restart-brief.js +19 -19
- package/hooks/run-hidden-hook.ps1 +47 -47
- package/hooks/task-completed-gate.js +274 -274
- package/hooks/work-item-exit-gate.js +944 -944
- package/lib/catalog.mjs +236 -236
- package/lib/cloud-rewrite.mjs +155 -155
- package/package.json +56 -56
- package/rules/work-items-rpc.md +520 -520
- package/scaffold/templates/HISTORY.md.template +39 -39
- package/scaffold/templates/PUBLISH.md.template +21 -21
- package/scaffold/templates/brochure-studio-default.html +70 -70
- package/scripts/acceptance.mjs +502 -502
- package/scripts/fixtures/guides/bad-guide.md +15 -15
- package/scripts/fixtures/guides-clean/good-guide.md +16 -16
- package/scripts/install-rdc-skills.js +1289 -1289
- package/scripts/install.ps1 +202 -202
- package/scripts/install.sh +132 -132
- package/scripts/lib/assertions.mjs +287 -287
- package/scripts/lib/manifest-schema.mjs +754 -754
- package/scripts/lib/runner.mjs +465 -465
- package/scripts/lib/sandbox.mjs +435 -435
- package/scripts/prepack.mjs +32 -32
- package/scripts/rdc-brochure.mjs +464 -464
- package/scripts/rdc-design-cli.mjs +134 -134
- package/scripts/rebuild-mcp.mjs +107 -107
- package/scripts/self-test.mjs +1460 -1460
- package/scripts/stamp-git-sha.mjs +29 -29
- package/scripts/test-guide-validator.mjs +196 -196
- package/scripts/test-rdc-hooks.mjs +145 -145
- package/scripts/uninstall.ps1 +77 -77
- package/scripts/uninstall.sh +69 -69
- package/scripts/update.ps1 +43 -43
- package/scripts/update.sh +43 -43
- package/scripts/validate-place-histories.js +461 -461
- package/scripts/validate-publish-manifests.js +424 -424
- package/scripts/watch-init.mjs +100 -100
- package/skills/brochure/SKILL.md +107 -107
- package/skills/build/SKILL.md +563 -563
- package/skills/channel-formatter/SKILL.md +533 -533
- package/skills/co-develop/SKILL.md +196 -196
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +140 -140
- package/skills/deploy/SKILL.md +541 -541
- package/skills/design/SKILL.md +211 -211
- package/skills/design/reference/ownership.md +16 -16
- package/skills/design/reference/rampa.md +92 -92
- package/skills/design/reference/studio-model.md +153 -153
- package/skills/edit/SKILL.md +98 -98
- package/skills/fixit/SKILL.md +165 -165
- package/skills/fs-mcp/SKILL.md +148 -148
- package/skills/handoff/SKILL.md +236 -200
- package/skills/help/SKILL.md +143 -143
- package/skills/housekeeping/SKILL.md +189 -189
- package/skills/lifeai-brochure-author/SKILL.md +340 -340
- package/skills/overnight/SKILL.md +251 -251
- package/skills/plan/SKILL.md +345 -345
- package/skills/preplan/SKILL.md +90 -90
- package/skills/prototype/SKILL.md +150 -150
- package/skills/rdc-brochurify/SKILL.md +245 -245
- package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
- package/skills/release/SKILL.md +140 -140
- package/skills/report/SKILL.md +100 -100
- package/skills/review/SKILL.md +152 -152
- package/skills/rpms-filemap/SKILL.cloud.md +111 -111
- package/skills/rpms-filemap/SKILL.md +111 -111
- package/skills/self-test/SKILL.md +132 -132
- package/skills/status/SKILL.md +99 -99
- package/skills/terminal-config/SKILL.md +62 -62
- package/skills/tests/MATRIX.md +54 -54
- package/skills/tests/README.md +47 -47
- package/skills/tests/rdc-brochure.test.json +34 -34
- package/skills/tests/rdc-build.test.json +36 -36
- package/skills/tests/rdc-channel-formatter.test.json +45 -45
- package/skills/tests/rdc-co-develop.test.json +29 -29
- package/skills/tests/rdc-collab.test.json +29 -29
- package/skills/tests/rdc-convert.test.json +35 -35
- package/skills/tests/rdc-deploy.test.json +30 -30
- package/skills/tests/rdc-design.test.json +27 -27
- package/skills/tests/rdc-edit.test.json +29 -29
- package/skills/tests/rdc-fixit.test.json +36 -36
- package/skills/tests/rdc-fs-mcp.test.json +36 -36
- package/skills/tests/rdc-handoff.test.json +28 -28
- package/skills/tests/rdc-help.test.json +29 -29
- package/skills/tests/rdc-housekeeping.test.json +31 -31
- package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
- package/skills/tests/rdc-overnight.test.json +37 -37
- package/skills/tests/rdc-plan.test.json +27 -27
- package/skills/tests/rdc-preplan.test.json +31 -31
- package/skills/tests/rdc-prototype.test.json +28 -28
- package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
- package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
- package/skills/tests/rdc-release.test.json +29 -29
- package/skills/tests/rdc-report.test.json +28 -28
- package/skills/tests/rdc-review.test.json +29 -29
- package/skills/tests/rdc-rpms-filemap.test.json +28 -28
- package/skills/tests/rdc-self-test.test.json +24 -24
- package/skills/tests/rdc-status.test.json +29 -29
- package/skills/tests/rdc-terminal-config.test.json +29 -29
- package/skills/tests/rdc-watch.test.json +24 -24
- package/skills/tests/rdc-workitems.test.json +27 -27
- package/skills/watch/SKILL.md +97 -97
- package/skills/workitems/SKILL.md +151 -151
- package/tests/acceptance.test.mjs +59 -59
- package/tests/channel-formatter.contract.test.mjs +251 -251
- package/tests/curl-surface.test.mjs +289 -289
- package/tests/harness-gates.test.mjs +325 -325
- package/tests/help-surface.test.mjs +61 -61
- package/tests/install-rdc-skills.test.mjs +49 -49
- package/tests/manifest-contract-fields.test.mjs +78 -78
- package/tests/mcp.test.mjs +271 -271
- package/tests/require-work-item-on-commit.test.mjs +162 -162
- package/tests/run-evidence-gate.test.mjs +82 -82
- package/tests/skill-test-matrix.test.mjs +66 -66
- package/tests/validate-skills.js +27 -27
- package/tests/work-item-exit-gate-l2.test.mjs +368 -368
- package/tests/work-item-exit-gate-l3.test.mjs +197 -197
package/guides/infrastructure.md
CHANGED
|
@@ -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.
|