@lifeaitools/rdc-skills 0.24.42 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.json +15 -15
- package/.claude-plugin/marketplace.json +21 -21
- package/.claude-plugin/plugin.json +1518 -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 +375 -376
- 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 +150 -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 +145 -151
- 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 +57 -57
- 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 +482 -482
- 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 +502 -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 +538 -533
- package/skills/co-develop/SKILL.md +196 -196
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +167 -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 +203 -165
- package/skills/fs-mcp/SKILL.md +148 -148
- package/skills/handoff/SKILL.md +236 -236
- package/skills/help/SKILL.md +143 -143
- package/skills/housekeeping/SKILL.md +160 -219
- package/skills/lifeai-brochure-author/SKILL.md +340 -340
- package/skills/onramp/SKILL.md +248 -0
- 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/onramp.test.json +87 -0
- 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 +28 -32
- 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/rdc-brochure.test.mjs +125 -125
- 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/RELEASE.md +0 -42
- package/tests/housekeeping-lessons-triage.test.mjs +0 -49
- package/tests/lessons-pipeline-contract.test.mjs +0 -27
- package/tests/release-contract.test.mjs +0 -16
|
@@ -1,159 +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>
|
|
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
65
|
scope: simple | architectural # triage routing — see § Scope gate
|
|
66
|
-
|
|
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
|
|
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
81
|
<what should change so this never recurs: a rule edit, skill-doc line, code change,
|
|
82
|
-
or a check.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
or a check. If already applied in the same run, say so and link the commit.>
|
|
83
|
+
```
|
|
84
|
+
|
|
86
85
|
`scope` is the single most important field — it routes triage:
|
|
87
|
-
|
|
88
|
-
- **`simple`** — a doc line, a one-file fix, a config tweak, a clarifying sentence in a
|
|
89
|
-
skill, a missing grep guard. Housekeeping
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
+
|
|
96
94
|
When unsure, mark `architectural`.
|
|
97
95
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
`memory` (this spec and memory are complementary — link them).
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## Capture procedure (the exit step long skills call)
|
|
126
|
-
|
|
127
|
-
At the end of a long skill run, before the final verdict line:
|
|
128
|
-
|
|
129
|
-
1. Decide if anything qualifies (§ When to capture). If not, write nothing and move on.
|
|
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.
|
|
130
119
|
2. For each lesson, write `.rdc/lessons/<date>-<skill>-<slug>.md` using the schema above.
|
|
131
|
-
Set `
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
+
|
|
138
128
|
## Triage procedure (rdc:housekeeping, weekly)
|
|
139
129
|
|
|
140
|
-
`rdc:housekeeping`
|
|
141
|
-
|
|
142
|
-
1.
|
|
143
|
-
2.
|
|
144
|
-
3.
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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,108 +1,108 @@
|
|
|
1
|
-
# RDC Skill Output Contract
|
|
2
|
-
> Every `rdc:*` skill MUST follow this contract. Non-negotiable.
|
|
3
|
-
|
|
4
|
-
## Why
|
|
5
|
-
|
|
6
|
-
The user has zero visibility when skills narrate tool calls and dump raw output.
|
|
7
|
-
A wall of JSON, MCP responses, and "let me check X..." chatter buries the one
|
|
8
|
-
thing they need: **is this working or not, and what step are we on?**
|
|
9
|
-
|
|
10
|
-
## The contract
|
|
11
|
-
|
|
12
|
-
1. **One checklist per invocation.** Show it upfront, update it in place as items
|
|
13
|
-
progress, print it again at the end with a 1-line verdict.
|
|
14
|
-
|
|
15
|
-
2. **Checklist markers:**
|
|
16
|
-
- `[ ]` pending
|
|
17
|
-
- `[~]` in progress (currently executing)
|
|
18
|
-
- `[x]` done
|
|
19
|
-
- `[!]` failed
|
|
20
|
-
- `[-]` skipped (with one-word reason in parens)
|
|
21
|
-
|
|
22
|
-
3. **NO narration of tool calls.** Forbidden phrases: "Let me...", "I'll check...",
|
|
23
|
-
"Now reading...", "Let me fetch...", "Let me verify...". Tool calls happen
|
|
24
|
-
silently. The checklist is the communication channel.
|
|
25
|
-
|
|
26
|
-
4. **NO raw tool output in chat.** No MCP JSON, no log dumps, no UUIDs, no
|
|
27
|
-
SQL result tables, no curl bodies — unless a checklist item explicitly asks
|
|
28
|
-
for one (e.g., "show HTTP status"). Everything else is consumed silently and
|
|
29
|
-
folded into checklist state.
|
|
30
|
-
|
|
31
|
-
5. **Failures are one sentence.** When `[!]` fires, print ONE sentence on what
|
|
32
|
-
failed and what you're doing about it. Stack traces, full error messages,
|
|
33
|
-
and debug dumps go in memory, not in chat.
|
|
34
|
-
|
|
35
|
-
6. **Verdict line.** End every invocation with one line:
|
|
36
|
-
- `✅ <skill>: <outcome> in Nm Ns`
|
|
37
|
-
- `⚠️ <skill>: <N findings> — <next action>`
|
|
38
|
-
- `❌ <skill>: <one-sentence reason>`
|
|
39
|
-
|
|
40
|
-
⛔ **The verdict emoji (✅ / ⚠️ / ❌) MUST be the FIRST character of the final
|
|
41
|
-
line — never prefix it with `**Verdict:**` or any other text.** The enforcing
|
|
42
|
-
Stop-hook checks that a line *begins* with the emoji; `**Verdict:** ✅ PASS …`
|
|
43
|
-
reads as a verdict to a human but FAILS the machine check because the line
|
|
44
|
-
starts with `**Verdict:`, not `✅` (lesson 2026-06-08-collab-verdict-line-must-start-with-emoji).
|
|
45
|
-
|
|
46
|
-
> This guide is the source under `guides/output-contract.md`; it is mirrored to
|
|
47
|
-
> `regen-root/.rdc/guides/output-contract.md` by the installer. Edit only the
|
|
48
|
-
> rdc-skills source here — never the mirror.
|
|
49
|
-
|
|
50
|
-
7. **Interactive checklists only when human input is required.** If the skill
|
|
51
|
-
needs a decision (pick an epic, confirm a destructive op), ask ONE question,
|
|
52
|
-
then resume.
|
|
53
|
-
|
|
54
|
-
8. **TaskCreate is internal.** If you use TaskCreate/TodoWrite for internal
|
|
55
|
-
tracking, that's fine — but the checklist shown to the user is the one
|
|
56
|
-
defined in the skill's markdown, not the raw task list.
|
|
57
|
-
|
|
58
|
-
## Template
|
|
59
|
-
|
|
60
|
-
Every skill invocation prints, in order:
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
<Skill Name>: <one-line subject>
|
|
64
|
-
[ ] Step 1
|
|
65
|
-
[ ] Step 2
|
|
66
|
-
[ ] Step 3
|
|
67
|
-
...
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
Then executes silently, re-rendering the checklist when state changes (tools
|
|
71
|
-
like CLI agents that stream output should refresh in place). At the end:
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
<Skill Name>: <one-line subject>
|
|
75
|
-
[x] Step 1
|
|
76
|
-
[x] Step 2
|
|
77
|
-
[x] Step 3
|
|
78
|
-
✅ <verdict>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## What the skill may additionally emit
|
|
82
|
-
|
|
83
|
-
- **One question at a time** when input is required
|
|
84
|
-
- **One-sentence status updates** at major state transitions (optional)
|
|
85
|
-
- **Final artifacts** if the skill's output is itself a file/report/diff — link,
|
|
86
|
-
don't inline the full content
|
|
87
|
-
|
|
88
|
-
## What the skill MUST NOT emit
|
|
89
|
-
|
|
90
|
-
- Tool call narration
|
|
91
|
-
- Raw MCP responses
|
|
92
|
-
- JSON dumps
|
|
93
|
-
- Log tails
|
|
94
|
-
- SQL result grids
|
|
95
|
-
- UUIDs unless asked
|
|
96
|
-
- "I'm going to..." preambles
|
|
97
|
-
- "Let me now..." transitions
|
|
98
|
-
- Summaries of what just happened (the checklist shows it)
|
|
99
|
-
- Apologies for verbosity
|
|
100
|
-
|
|
101
|
-
## Enforcement
|
|
102
|
-
|
|
103
|
-
If a skill violates this contract, the user will say "squelch" — at which point
|
|
104
|
-
any in-flight narration stops, only the checklist + verdict is shown for the
|
|
105
|
-
remainder of the session.
|
|
106
|
-
|
|
107
|
-
Skills SHOULD self-enforce by treating every tool call as silent and every
|
|
108
|
-
user-facing emission as a deliberate checklist update.
|
|
1
|
+
# RDC Skill Output Contract
|
|
2
|
+
> Every `rdc:*` skill MUST follow this contract. Non-negotiable.
|
|
3
|
+
|
|
4
|
+
## Why
|
|
5
|
+
|
|
6
|
+
The user has zero visibility when skills narrate tool calls and dump raw output.
|
|
7
|
+
A wall of JSON, MCP responses, and "let me check X..." chatter buries the one
|
|
8
|
+
thing they need: **is this working or not, and what step are we on?**
|
|
9
|
+
|
|
10
|
+
## The contract
|
|
11
|
+
|
|
12
|
+
1. **One checklist per invocation.** Show it upfront, update it in place as items
|
|
13
|
+
progress, print it again at the end with a 1-line verdict.
|
|
14
|
+
|
|
15
|
+
2. **Checklist markers:**
|
|
16
|
+
- `[ ]` pending
|
|
17
|
+
- `[~]` in progress (currently executing)
|
|
18
|
+
- `[x]` done
|
|
19
|
+
- `[!]` failed
|
|
20
|
+
- `[-]` skipped (with one-word reason in parens)
|
|
21
|
+
|
|
22
|
+
3. **NO narration of tool calls.** Forbidden phrases: "Let me...", "I'll check...",
|
|
23
|
+
"Now reading...", "Let me fetch...", "Let me verify...". Tool calls happen
|
|
24
|
+
silently. The checklist is the communication channel.
|
|
25
|
+
|
|
26
|
+
4. **NO raw tool output in chat.** No MCP JSON, no log dumps, no UUIDs, no
|
|
27
|
+
SQL result tables, no curl bodies — unless a checklist item explicitly asks
|
|
28
|
+
for one (e.g., "show HTTP status"). Everything else is consumed silently and
|
|
29
|
+
folded into checklist state.
|
|
30
|
+
|
|
31
|
+
5. **Failures are one sentence.** When `[!]` fires, print ONE sentence on what
|
|
32
|
+
failed and what you're doing about it. Stack traces, full error messages,
|
|
33
|
+
and debug dumps go in memory, not in chat.
|
|
34
|
+
|
|
35
|
+
6. **Verdict line.** End every invocation with one line:
|
|
36
|
+
- `✅ <skill>: <outcome> in Nm Ns`
|
|
37
|
+
- `⚠️ <skill>: <N findings> — <next action>`
|
|
38
|
+
- `❌ <skill>: <one-sentence reason>`
|
|
39
|
+
|
|
40
|
+
⛔ **The verdict emoji (✅ / ⚠️ / ❌) MUST be the FIRST character of the final
|
|
41
|
+
line — never prefix it with `**Verdict:**` or any other text.** The enforcing
|
|
42
|
+
Stop-hook checks that a line *begins* with the emoji; `**Verdict:** ✅ PASS …`
|
|
43
|
+
reads as a verdict to a human but FAILS the machine check because the line
|
|
44
|
+
starts with `**Verdict:`, not `✅` (lesson 2026-06-08-collab-verdict-line-must-start-with-emoji).
|
|
45
|
+
|
|
46
|
+
> This guide is the source under `guides/output-contract.md`; it is mirrored to
|
|
47
|
+
> `regen-root/.rdc/guides/output-contract.md` by the installer. Edit only the
|
|
48
|
+
> rdc-skills source here — never the mirror.
|
|
49
|
+
|
|
50
|
+
7. **Interactive checklists only when human input is required.** If the skill
|
|
51
|
+
needs a decision (pick an epic, confirm a destructive op), ask ONE question,
|
|
52
|
+
then resume.
|
|
53
|
+
|
|
54
|
+
8. **TaskCreate is internal.** If you use TaskCreate/TodoWrite for internal
|
|
55
|
+
tracking, that's fine — but the checklist shown to the user is the one
|
|
56
|
+
defined in the skill's markdown, not the raw task list.
|
|
57
|
+
|
|
58
|
+
## Template
|
|
59
|
+
|
|
60
|
+
Every skill invocation prints, in order:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
<Skill Name>: <one-line subject>
|
|
64
|
+
[ ] Step 1
|
|
65
|
+
[ ] Step 2
|
|
66
|
+
[ ] Step 3
|
|
67
|
+
...
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Then executes silently, re-rendering the checklist when state changes (tools
|
|
71
|
+
like CLI agents that stream output should refresh in place). At the end:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
<Skill Name>: <one-line subject>
|
|
75
|
+
[x] Step 1
|
|
76
|
+
[x] Step 2
|
|
77
|
+
[x] Step 3
|
|
78
|
+
✅ <verdict>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## What the skill may additionally emit
|
|
82
|
+
|
|
83
|
+
- **One question at a time** when input is required
|
|
84
|
+
- **One-sentence status updates** at major state transitions (optional)
|
|
85
|
+
- **Final artifacts** if the skill's output is itself a file/report/diff — link,
|
|
86
|
+
don't inline the full content
|
|
87
|
+
|
|
88
|
+
## What the skill MUST NOT emit
|
|
89
|
+
|
|
90
|
+
- Tool call narration
|
|
91
|
+
- Raw MCP responses
|
|
92
|
+
- JSON dumps
|
|
93
|
+
- Log tails
|
|
94
|
+
- SQL result grids
|
|
95
|
+
- UUIDs unless asked
|
|
96
|
+
- "I'm going to..." preambles
|
|
97
|
+
- "Let me now..." transitions
|
|
98
|
+
- Summaries of what just happened (the checklist shows it)
|
|
99
|
+
- Apologies for verbosity
|
|
100
|
+
|
|
101
|
+
## Enforcement
|
|
102
|
+
|
|
103
|
+
If a skill violates this contract, the user will say "squelch" — at which point
|
|
104
|
+
any in-flight narration stops, only the checklist + verdict is shown for the
|
|
105
|
+
remainder of the session.
|
|
106
|
+
|
|
107
|
+
Skills SHOULD self-enforce by treating every tool call as silent and every
|
|
108
|
+
user-facing emission as a deliberate checklist update.
|