@lifeaitools/rdc-skills 0.24.11 → 0.24.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.github/workflows/self-test.yml +34 -34
  3. package/README.md +82 -10
  4. package/commands/build.md +181 -181
  5. package/commands/collab.md +180 -180
  6. package/commands/deploy.md +148 -148
  7. package/commands/fixit.md +105 -105
  8. package/commands/handoff.md +173 -173
  9. package/commands/overnight.md +218 -218
  10. package/commands/plan.md +158 -158
  11. package/commands/preplan.md +131 -131
  12. package/commands/prototype.md +145 -145
  13. package/commands/report.md +99 -99
  14. package/commands/review.md +120 -120
  15. package/commands/status.md +86 -86
  16. package/commands/watch.md +8 -2
  17. package/commands/workitems.md +127 -127
  18. package/git-sha.json +1 -1
  19. package/guides/agent-bootstrap.md +195 -195
  20. package/guides/agents/backend.md +102 -102
  21. package/guides/agents/content.md +94 -94
  22. package/guides/agents/cs2.md +56 -56
  23. package/guides/agents/data.md +86 -86
  24. package/guides/agents/design.md +77 -77
  25. package/guides/agents/frontend.md +91 -91
  26. package/guides/agents/infrastructure.md +81 -81
  27. package/guides/agents/setup.md +272 -272
  28. package/guides/agents/verify.md +119 -119
  29. package/guides/agents/viz.md +106 -106
  30. package/package.json +2 -2
  31. package/scripts/install-rdc-skills.js +46 -4
  32. package/scripts/self-test.mjs +1454 -1454
  33. package/skills/build/SKILL.md +554 -554
  34. package/skills/collab/SKILL.md +239 -239
  35. package/skills/deploy/SKILL.md +541 -541
  36. package/skills/design/SKILL.md +205 -205
  37. package/skills/fixit/SKILL.md +165 -165
  38. package/skills/handoff/SKILL.md +200 -200
  39. package/skills/overnight/SKILL.md +251 -251
  40. package/skills/plan/SKILL.md +314 -314
  41. package/skills/preplan/SKILL.md +90 -90
  42. package/skills/prototype/SKILL.md +150 -150
  43. package/skills/rdc-brochurify/SKILL.md +5 -0
  44. package/skills/release/SKILL.md +140 -140
  45. package/skills/report/SKILL.md +100 -100
  46. package/skills/review/SKILL.md +152 -152
  47. package/skills/self-test/SKILL.md +127 -123
  48. package/skills/status/SKILL.md +99 -99
  49. package/skills/tests/MATRIX.md +53 -0
  50. package/skills/tests/README.md +15 -3
  51. package/skills/tests/rdc-brochure.test.json +20 -0
  52. package/skills/tests/rdc-co-develop.test.json +15 -0
  53. package/skills/tests/rdc-collab.test.json +15 -0
  54. package/skills/tests/rdc-convert.test.json +20 -0
  55. package/skills/tests/rdc-fs-mcp.test.json +21 -0
  56. package/skills/tests/rdc-help.test.json +15 -0
  57. package/skills/tests/rdc-housekeeping.test.json +15 -0
  58. package/skills/tests/rdc-lifeai-brochure-author.test.json +20 -0
  59. package/skills/tests/rdc-rdc-brochurify.test.json +23 -0
  60. package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +20 -0
  61. package/skills/tests/rdc-rpms-filemap.test.json +15 -0
  62. package/skills/tests/rdc-self-test.test.json +15 -0
  63. package/skills/tests/rdc-status.test.json +0 -1
  64. package/skills/tests/rdc-terminal-config.test.json +15 -0
  65. package/skills/tests/rdc-watch.test.json +24 -0
  66. package/skills/watch/SKILL.md +96 -90
  67. package/skills/workitems/SKILL.md +151 -151
  68. package/tests/install-rdc-skills.test.mjs +21 -0
@@ -1,99 +1,99 @@
1
- ---
2
- name: rdc:status
3
- description: "Usage `rdc:status` — Read-only snapshot of open epics, work items, Coolify health, blockers, and next recommended action. Safe to call anytime. Start here when disoriented or resuming a session."
4
- ---
5
-
6
- > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
7
- > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
8
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
9
-
10
- > If dispatching subagents or running as a subagent: read `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` first (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md`).
11
-
12
-
13
- # rdc:status — Project Dashboard
14
-
15
- ## When to Use
16
- - Start of any session
17
- - Project lead asks "what's the status", "where are we", "what's open"
18
- - Before deciding what to work on next
19
-
20
- ## Procedure
21
-
22
- 1. **Open epics:**
23
- ```sql
24
- SELECT get_open_epics();
25
- ```
26
-
27
- 2. **Work item counts by status:**
28
- ```sql
29
- SELECT status, count(*) FROM work_items
30
- WHERE status != 'archived'
31
- GROUP BY status ORDER BY status;
32
- ```
33
-
34
- 3. **Items by label/project (top 10 labels):**
35
- ```sql
36
- SELECT unnest(labels) as label, count(*),
37
- count(*) FILTER (WHERE status = 'done') as done,
38
- count(*) FILTER (WHERE status = 'todo') as todo,
39
- count(*) FILTER (WHERE status = 'in_progress') as wip
40
- FROM work_items
41
- GROUP BY label ORDER BY count DESC LIMIT 10;
42
- ```
43
-
44
- 4. **Recent activity (last 48 hours):**
45
- ```sql
46
- SELECT title, status, updated_at
47
- FROM work_items
48
- WHERE updated_at > now() - interval '48 hours'
49
- ORDER BY updated_at DESC LIMIT 15;
50
- ```
51
-
52
- 5. **Git status:**
53
- ```bash
54
- git log --oneline -10
55
- git status
56
- git branch -v
57
- ```
58
-
59
- 6. **Dev server health (PM2):**
60
- SSH into the Coolify server and check PM2 process state:
61
- ```bash
62
- # Note: clauth key name for the SSH key may vary by project. Common names: ssh-key-path, vultr-ssh-key, dev-ssh-key.
63
- # Check available keys with: curl -s http://127.0.0.1:52437/list-services
64
- SSH_KEY=$(curl -s http://127.0.0.1:52437/v/ssh-key-path)
65
- ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no root@64.237.54.189 "pm2 jlist 2>/dev/null"
66
- ```
67
- Parse the JSON array — for each process note `name`, `pm2_env.status` (online/stopped/errored), and `pm2_env.pm_uptime`.
68
- If SSH fails or PM2 returns nothing, note "PM2 unreachable" and continue.
69
-
70
- 7. **Infrastructure health** (if MCP available):
71
- - Get infrastructure overview or diagnose issues
72
- - Report any apps with failed builds or down containers
73
-
74
- 8. **Present as a compact dashboard:**
75
- ```
76
- ## Open Epics (N)
77
- <table>
78
-
79
- ## Work Items: X done | Y todo | Z in_progress
80
-
81
- ## Recent (48h)
82
- <list>
83
-
84
- ## Dev Servers (PM2)
85
- online: studio canvas lifeai ... stopped: issho-invest
86
-
87
- ## Deployments
88
- <green/red/yellow status>
89
-
90
- ## Recommended Next
91
- <highest priority unstarted epic>
92
- ```
93
-
94
- ## Rules
95
- - Keep output concise — this is a glance, not a deep dive
96
- - Always end with a recommendation for what to work on next
97
- - After the Recommended Next section, suggest which guide file from `.rdc/guides/` (fallback: `.rdc/guides/`) the recommended work would need
98
- - Use database MCP for queries (not raw curl)
99
- - If infrastructure MCP is unavailable, skip deployment status and note it
1
+ ---
2
+ name: rdc:status
3
+ description: "Usage `rdc:status` — Read-only snapshot of open epics, work items, Coolify health, blockers, and next recommended action. Safe to call anytime. Start here when disoriented or resuming a session."
4
+ ---
5
+
6
+ > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
7
+ > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
8
+ > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
9
+
10
+ > If dispatching subagents or running as a subagent: read `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` first (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md`).
11
+
12
+
13
+ # rdc:status — Project Dashboard
14
+
15
+ ## When to Use
16
+ - Start of any session
17
+ - Project lead asks "what's the status", "where are we", "what's open"
18
+ - Before deciding what to work on next
19
+
20
+ ## Procedure
21
+
22
+ 1. **Open epics:**
23
+ ```sql
24
+ SELECT get_open_epics();
25
+ ```
26
+
27
+ 2. **Work item counts by status:**
28
+ ```sql
29
+ SELECT status, count(*) FROM work_items
30
+ WHERE status != 'archived'
31
+ GROUP BY status ORDER BY status;
32
+ ```
33
+
34
+ 3. **Items by label/project (top 10 labels):**
35
+ ```sql
36
+ SELECT unnest(labels) as label, count(*),
37
+ count(*) FILTER (WHERE status = 'done') as done,
38
+ count(*) FILTER (WHERE status = 'todo') as todo,
39
+ count(*) FILTER (WHERE status = 'in_progress') as wip
40
+ FROM work_items
41
+ GROUP BY label ORDER BY count DESC LIMIT 10;
42
+ ```
43
+
44
+ 4. **Recent activity (last 48 hours):**
45
+ ```sql
46
+ SELECT title, status, updated_at
47
+ FROM work_items
48
+ WHERE updated_at > now() - interval '48 hours'
49
+ ORDER BY updated_at DESC LIMIT 15;
50
+ ```
51
+
52
+ 5. **Git status:**
53
+ ```bash
54
+ git log --oneline -10
55
+ git status
56
+ git branch -v
57
+ ```
58
+
59
+ 6. **Dev server health (PM2):**
60
+ SSH into the Coolify server and check PM2 process state:
61
+ ```bash
62
+ # Note: clauth key name for the SSH key may vary by project. Common names: ssh-key-path, vultr-ssh-key, dev-ssh-key.
63
+ # Check available keys with: curl -s http://127.0.0.1:52437/list-services
64
+ SSH_KEY=$(curl -s http://127.0.0.1:52437/v/ssh-key-path)
65
+ ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no root@64.237.54.189 "pm2 jlist 2>/dev/null"
66
+ ```
67
+ Parse the JSON array — for each process note `name`, `pm2_env.status` (online/stopped/errored), and `pm2_env.pm_uptime`.
68
+ If SSH fails or PM2 returns nothing, note "PM2 unreachable" and continue.
69
+
70
+ 7. **Infrastructure health** (if MCP available):
71
+ - Get infrastructure overview or diagnose issues
72
+ - Report any apps with failed builds or down containers
73
+
74
+ 8. **Present as a compact dashboard:**
75
+ ```
76
+ ## Open Epics (N)
77
+ <table>
78
+
79
+ ## Work Items: X done | Y todo | Z in_progress
80
+
81
+ ## Recent (48h)
82
+ <list>
83
+
84
+ ## Dev Servers (PM2)
85
+ online: studio canvas lifeai ... stopped: issho-invest
86
+
87
+ ## Deployments
88
+ <green/red/yellow status>
89
+
90
+ ## Recommended Next
91
+ <highest priority unstarted epic>
92
+ ```
93
+
94
+ ## Rules
95
+ - Keep output concise — this is a glance, not a deep dive
96
+ - Always end with a recommendation for what to work on next
97
+ - After the Recommended Next section, suggest which guide file from `.rdc/guides/` (fallback: `.rdc/guides/`) the recommended work would need
98
+ - Use database MCP for queries (not raw curl)
99
+ - If infrastructure MCP is unavailable, skip deployment status and note it
@@ -0,0 +1,53 @@
1
+ # RDC Skill Test Suite Matrix
2
+
3
+ Current coverage: 29 manifests for 29 skill directories.
4
+
5
+ The manifest layer verifies each skill can be started from a realistic caller prompt in an isolated `RDC_TEST=1` sandbox. The acceptance harness records the engine stream, extracted tool calls, stdout/stderr artifacts, rendered assistant output, failures, lessons learned, and next build optimizations under `.rdc/reports/`.
6
+
7
+ `rdc:channel-formatter` currently has the strongest content acceptance fixture: it asserts source-grounded social-pack output, forbidden-claim absence, and observable corpus or web-search tool routing. `rdc:watch` adds a focus-safety negative check. The remaining manifests are basic behavioral smoke tests and should gain deeper acceptance assertions as each skill is touched.
8
+
9
+ | Skill | Manifest | Fixture prompt class | Assertions | Acceptance depth |
10
+ |---|---|---|---|---|
11
+ | `rdc:brochure` | `rdc-brochure.test.json` | HTML-to-PDF brochure fixture | `exit_code`, `stdout_contains` | Basic manifest |
12
+ | `rdc:build` | `rdc-build.test.json` | Unattended build from sandbox label | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
13
+ | `rdc:channel-formatter` | `rdc-channel-formatter.test.json` | Long article to social content pack | `exit_code`, `stdout_contains` | Output contains, output not contains, tool-call routing |
14
+ | `rdc:co-develop` | `rdc-co-develop.test.json` | Coordination status | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
15
+ | `rdc:collab` | `rdc-collab.test.json` | Claude session relay fixture | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
16
+ | `rdc:convert` | `rdc-convert.test.json` | Markdown-to-Word conversion fixture | `exit_code`, `stdout_contains` | Basic manifest |
17
+ | `rdc:deploy` | `rdc-deploy.test.json` | Deployment diagnosis | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
18
+ | `rdc:design` | `rdc-design.test.json` | Studio palette audit | `exit_code`, `stdout_contains` | Basic manifest |
19
+ | `rdc:fixit` | `rdc-fixit.test.json` | Tiny sandbox typo fix | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
20
+ | `rdc:fs-mcp` | `rdc-fs-mcp.test.json` | File-system bridge read fixture | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
21
+ | `rdc:handoff` | `rdc-handoff.test.json` | Stub work handoff | `exit_code`, `stdout_contains` | Basic manifest |
22
+ | `rdc:help` | `rdc-help.test.json` | Help menu rendering | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
23
+ | `rdc:housekeeping` | `rdc-housekeeping.test.json` | Read-only housekeeping audit | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
24
+ | `rdc:lifeai-brochure-author` | `rdc-lifeai-brochure-author.test.json` | JSX compliance review fixture | `exit_code`, `stdout_contains` | Basic manifest |
25
+ | `rdc:overnight` | `rdc-overnight.test.json` | Label-based overnight queue drain | `exit_code`, `stdout_contains` | Basic manifest |
26
+ | `rdc:plan` | `rdc-plan.test.json` | Health-endpoint planning prompt | `exit_code`, `stdout_contains` | Basic manifest |
27
+ | `rdc:preplan` | `rdc-preplan.test.json` | Rate-limiter research prompt | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
28
+ | `rdc:prototype` | `rdc-prototype.test.json` | Tiny component prototype prompt | `exit_code`, `stdout_contains` | Basic manifest |
29
+ | `rdc:rdc-brochurify` | `rdc-rdc-brochurify.test.json` | Read-only markdown Brochurify fixture | `exit_code`, `stdout_contains` | Sandbox output and no-follow-up negative checks |
30
+ | `rdc:rdc-extract-verifier-rules` | `rdc-rdc-extract-verifier-rules.test.json` | Enhancement-log verifier fixture | `exit_code`, `stdout_contains` | Basic manifest |
31
+ | `rdc:release` | `rdc-release.test.json` | Dry-run package release | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
32
+ | `rdc:report` | `rdc-report.test.json` | Unattended report generation | `exit_code`, `stdout_contains` | Basic manifest |
33
+ | `rdc:review` | `rdc-review.test.json` | Unattended review gate | `exit_code`, `stdout_contains` | Basic manifest |
34
+ | `rdc:rpms-filemap` | `rdc-rpms-filemap.test.json` | Canonical location lookup | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
35
+ | `rdc:self-test` | `rdc-self-test.test.json` | Strict self-test prompt | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
36
+ | `rdc:status` | `rdc-status.test.json` | Read-only status snapshot | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
37
+ | `rdc:terminal-config` | `rdc-terminal-config.test.json` | Hidden-window launch policy audit | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
38
+ | `rdc:watch` | `rdc-watch.test.json` | Watcher initialization prompt | `exit_code`, `stdout_contains` | Test-mode no-open output, tool-call routing, and focus-event negative checks |
39
+ | `rdc:workitems` | `rdc-workitems.test.json` | Work-item epic listing | `commits_made`, `exit_code`, `stdout_contains` | Basic manifest |
40
+
41
+ ## What The Tests Accomplish
42
+
43
+ - Verify every installed RDC skill has at least one executable caller-facing prompt.
44
+ - Exercise the `RDC_TEST=1` sandbox contract so build tests do not publish, deploy, or mutate production services.
45
+ - Capture observed engine events and extracted tool calls for periodic inspection.
46
+ - Preserve stdout, stderr, and rendered assistant output as report artifacts.
47
+ - Make content-producing skills eligible for deeper source-fidelity checks through the optional `acceptance` block.
48
+
49
+ ## Next Coverage Upgrades
50
+
51
+ - Add tool-call assertions to read/research skills (`rdc:preplan`, `rdc:fs-mcp`, `rdc:co-develop`, `rdc:collab`).
52
+ - Add artifact existence checks for output-producing skills (`rdc:brochure`, `rdc:convert`, `rdc:prototype`, `rdc:report`).
53
+ - Add negative safety assertions for skills that open windows, launch terminals, deploy, release, or write commits.
@@ -1,7 +1,10 @@
1
1
  # Tier 2 Test Manifests
2
2
 
3
- Each rdc:* skill has a colocated test manifest at `skills/tests/rdc-<name>.test.json`.
4
- These drive the Tier 2 behavioral runner (`scripts/self-test.mjs --tier2`).
3
+ Each RDC skill directory has a colocated test manifest at `skills/tests/rdc-<name>.test.json`.
4
+ There are currently 29 manifests for 29 skill directories. These drive the Tier 2
5
+ behavioral runner and the build acceptance harness.
6
+
7
+ See `MATRIX.md` for the current skill-by-skill coverage table.
5
8
 
6
9
  ## Schema
7
10
 
@@ -13,14 +16,23 @@ is the source of truth. Top-level fields:
13
16
  - `description` (string) — what this test verifies
14
17
  - `fixture` (object) — prompt, precondition files, env vars
15
18
  - `assertions` (object) — what to check after the skill runs
19
+ - `acceptance` (object, optional) — assistant output and recorded tool-call assertions
16
20
  - `teardown` (object) — cleanup policy
17
21
 
22
+ `acceptance` supports:
23
+
24
+ - `output_contains` — strings that must appear in the rendered assistant output
25
+ - `output_not_contains` — strings that must not appear in the rendered assistant output
26
+ - `tool_calls_include_any` — at least one recorded tool call with a listed name
27
+ - `tool_calls_include_all` — all listed tool-call names must be recorded
28
+ - `tool_calls_argument_matches` — tool-call argument regex matchers for source/corpus/tool routing checks
29
+
18
30
  ## Authoring a manifest
19
31
 
20
32
  1. Start from an existing manifest in this dir
21
33
  2. Set `fixture.env.RDC_TEST = "1"` (required — sandbox contract)
22
34
  3. Write assertions tight enough to catch real regressions but not flaky
23
- 4. Run `node scripts/self-test.mjs --tier2 --skill rdc:<name>` to smoke-test
35
+ 4. Run `node scripts/acceptance.mjs --skill rdc:<name>` to capture the transcript, tool calls, and lessons learned
24
36
  5. Commit manifest + any skill changes together
25
37
 
26
38
  For content-producing skills, include both positive and negative output checks.
@@ -0,0 +1,20 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:brochure",
4
+ "description": "Brochure renders a small HTML fixture to a PDF artifact under RDC_TEST without modifying source inputs.",
5
+ "fixture": {
6
+ "prompt": "rdc:brochure docs/source/brochure-fixture.html --out .rdc/reports/brochure-fixture.pdf --format Letter",
7
+ "precondition_files": [
8
+ {
9
+ "path": "docs/source/brochure-fixture.html",
10
+ "content": "<!doctype html><html><head><meta charset=\"utf-8\"><title>Fixture Brochure</title><style>@page{size:Letter;margin:0.75in}body{font-family:serif}h1{color:#234}</style></head><body><h1>Fixture Brochure</h1><p>This is a tiny print-ready brochure fixture for RDC skill acceptance.</p></body></html>"
11
+ }
12
+ ],
13
+ "env": { "RDC_TEST": "1" }
14
+ },
15
+ "assertions": {
16
+ "exit_code": 0,
17
+ "stdout_contains": ["PDF", "Pages", "Size"]
18
+ },
19
+ "teardown": { "reset_branch": true }
20
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:co-develop",
4
+ "description": "Co-develop status/list path is caller-safe under RDC_TEST and does not send a peer message.",
5
+ "fixture": {
6
+ "prompt": "rdc:co-develop status",
7
+ "env": { "RDC_TEST": "1" }
8
+ },
9
+ "assertions": {
10
+ "exit_code": 0,
11
+ "commits_made": { "min": 0 },
12
+ "stdout_contains": ["Verdict"]
13
+ },
14
+ "teardown": { "reset_branch": true }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:collab",
4
+ "description": "Collab validates the missing/fixture session path without mutating git under RDC_TEST.",
5
+ "fixture": {
6
+ "prompt": "rdc:collab --session self-test-fixture",
7
+ "env": { "RDC_TEST": "1" }
8
+ },
9
+ "assertions": {
10
+ "exit_code": 0,
11
+ "commits_made": { "min": 0 },
12
+ "stdout_contains": ["Verdict"]
13
+ },
14
+ "teardown": { "reset_branch": true }
15
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:convert",
4
+ "description": "Convert exposes the portable build-corpus command reference and recognizes a caller conversion request under RDC_TEST.",
5
+ "fixture": {
6
+ "prompt": "rdc:convert help for converting markdown to Word in a sandbox; do not install packages or launch GUI",
7
+ "precondition_files": [
8
+ {
9
+ "path": "docs/source/convert-fixture.md",
10
+ "content": "# Convert Fixture\n\nThis markdown document proves the caller-facing convert path can accept a source file and report an output artifact.\n"
11
+ }
12
+ ],
13
+ "env": { "RDC_TEST": "1" }
14
+ },
15
+ "assertions": {
16
+ "exit_code": 0,
17
+ "stdout_contains": ["build-corpus", "Markdown", "Word"]
18
+ },
19
+ "teardown": { "reset_branch": true }
20
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:fs-mcp",
4
+ "description": "FS MCP skill explains the local-script versus MCP access boundary for a read-only file task.",
5
+ "fixture": {
6
+ "prompt": "rdc:fs-mcp read docs/source/fs-mcp-fixture.md and summarize the access path",
7
+ "precondition_files": [
8
+ {
9
+ "path": "docs/source/fs-mcp-fixture.md",
10
+ "content": "# FS MCP Fixture\n\nThis fixture exists so the skill can demonstrate a read-only filesystem access handoff.\n"
11
+ }
12
+ ],
13
+ "env": { "RDC_TEST": "1" }
14
+ },
15
+ "assertions": {
16
+ "exit_code": 0,
17
+ "commits_made": { "min": 0 },
18
+ "stdout_contains": ["FS MCP", "access path"]
19
+ },
20
+ "teardown": { "reset_branch": true }
21
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:help",
4
+ "description": "Help renders the manifest-driven command reference and decision tree without external writes.",
5
+ "fixture": {
6
+ "prompt": "rdc:help",
7
+ "env": { "RDC_TEST": "1" }
8
+ },
9
+ "assertions": {
10
+ "exit_code": 0,
11
+ "commits_made": { "min": 0 },
12
+ "stdout_contains": ["rdc:help", "Decision tree"]
13
+ },
14
+ "teardown": { "reset_branch": true }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:housekeeping",
4
+ "description": "Housekeeping audit runs read-only checks under RDC_TEST and reports a caller-facing verdict.",
5
+ "fixture": {
6
+ "prompt": "rdc:housekeeping",
7
+ "env": { "RDC_TEST": "1" }
8
+ },
9
+ "assertions": {
10
+ "exit_code": 0,
11
+ "commits_made": { "min": 0 },
12
+ "stdout_contains": ["Verdict"]
13
+ },
14
+ "teardown": { "reset_branch": true }
15
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:lifeai-brochure-author",
4
+ "description": "LifeAI brochure author contract rejects raw HTML and returns brochure-kit component guidance.",
5
+ "fixture": {
6
+ "prompt": "rdc:lifeai-brochure-author review this JSX fixture for brochure-kit compliance: docs/source/brochure-author-fixture.tsx",
7
+ "precondition_files": [
8
+ {
9
+ "path": "docs/source/brochure-author-fixture.tsx",
10
+ "content": "export default function Fixture(){ return <div><h1>Raw HTML Fixture</h1><p>This should be rewritten with brochure-kit components.</p></div>; }\n"
11
+ }
12
+ ],
13
+ "env": { "RDC_TEST": "1" }
14
+ },
15
+ "assertions": {
16
+ "exit_code": 0,
17
+ "stdout_contains": ["brochure-kit", "Raw HTML"]
18
+ },
19
+ "teardown": { "reset_branch": true }
20
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:rdc-brochurify",
4
+ "description": "Brochurify orchestrator accepts a markdown source fixture and reports sandboxed orchestration state.",
5
+ "fixture": {
6
+ "prompt": "rdc:rdc-brochurify docs/source/brochurify-fixture.md --mode read-only --theme editorial-neutral",
7
+ "precondition_files": [
8
+ {
9
+ "path": "docs/source/brochurify-fixture.md",
10
+ "content": "# Brochurify Fixture\n\nA short source document for a read-only brochure orchestration smoke test.\n"
11
+ }
12
+ ],
13
+ "env": { "RDC_TEST": "1" }
14
+ },
15
+ "assertions": {
16
+ "exit_code": 0,
17
+ "stdout_contains": ["Brochurify", "Wave 1"]
18
+ },
19
+ "acceptance": {
20
+ "output_not_contains": ["Want me to", "Would you like me to"]
21
+ },
22
+ "teardown": { "reset_branch": true }
23
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:rdc-extract-verifier-rules",
4
+ "description": "Verifier-rule extraction reads a tiny enhancement-log fixture and reports candidate-rule status without opening a PR.",
5
+ "fixture": {
6
+ "prompt": "rdc:rdc-extract-verifier-rules --since 2026-01-01 --auto-merge=false docs/source/enhancement-log-fixture.jsonl",
7
+ "precondition_files": [
8
+ {
9
+ "path": "docs/source/enhancement-log-fixture.jsonl",
10
+ "content": "{\"input_fingerprint\":\"fixture-1\",\"reason\":\"raw div used in brochure JSX\",\"snippet\":\"<div>bad</div>\"}\n{\"input_fingerprint\":\"fixture-1\",\"reason\":\"raw div used in brochure JSX\",\"snippet\":\"<div>bad</div>\"}\n{\"input_fingerprint\":\"fixture-1\",\"reason\":\"raw div used in brochure JSX\",\"snippet\":\"<div>bad</div>\"}\n"
11
+ }
12
+ ],
13
+ "env": { "RDC_TEST": "1" }
14
+ },
15
+ "assertions": {
16
+ "exit_code": 0,
17
+ "stdout_contains": ["candidate", "FP"]
18
+ },
19
+ "teardown": { "reset_branch": true }
20
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:rpms-filemap",
4
+ "description": "RPMS file map answers a placement question using canonical homes and Rule #1 language.",
5
+ "fixture": {
6
+ "prompt": "rdc:rpms-filemap where should a project report and entity context live?",
7
+ "env": { "RDC_TEST": "1" }
8
+ },
9
+ "assertions": {
10
+ "exit_code": 0,
11
+ "commits_made": { "min": 0 },
12
+ "stdout_contains": ["RULE #1", "Canonical"]
13
+ },
14
+ "teardown": { "reset_branch": true }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:self-test",
4
+ "description": "Self-test strict mode validates all skill metadata and emits the package validation verdict.",
5
+ "fixture": {
6
+ "prompt": "rdc:self-test --strict",
7
+ "env": { "RDC_TEST": "1" }
8
+ },
9
+ "assertions": {
10
+ "exit_code": 0,
11
+ "commits_made": { "min": 0 },
12
+ "stdout_contains": ["PASS", "strict"]
13
+ },
14
+ "teardown": { "reset_branch": true }
15
+ }
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "manifest_version": 1,
3
3
  "skill": "rdc:status",
4
- "timeout_ms": 180000,
5
4
  "description": "Status is read-only: prints kanban + health, makes no commits.",
6
5
  "fixture": {
7
6
  "prompt": "rdc:status",
@@ -0,0 +1,15 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:terminal-config",
4
+ "description": "Terminal config audits focus-safe launch policy without changing Windows Terminal settings.",
5
+ "fixture": {
6
+ "prompt": "rdc:terminal-config audit hidden-window launch policy and do not write settings",
7
+ "env": { "RDC_TEST": "1" }
8
+ },
9
+ "assertions": {
10
+ "exit_code": 0,
11
+ "commits_made": { "min": 0 },
12
+ "stdout_contains": ["hidden-window", "No settings written"]
13
+ },
14
+ "teardown": { "reset_branch": true }
15
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "skill": "rdc:watch",
4
+ "description": "Watch initializes or describes the live viewer in RDC_TEST mode without launching a foreground browser.",
5
+ "fixture": {
6
+ "prompt": "rdc:watch",
7
+ "env": { "RDC_TEST": "1" }
8
+ },
9
+ "assertions": {
10
+ "exit_code": 0,
11
+ "stdout_contains": ["Verdict"]
12
+ },
13
+ "acceptance": {
14
+ "output_contains": ["not opened because RDC_TEST=1"],
15
+ "output_not_contains": ["SetForegroundWindow", "AppActivate", "BringWindowToTop", "SwitchToThisWindow"],
16
+ "tool_calls_argument_matches": [
17
+ {
18
+ "tools": ["Bash"],
19
+ "pattern": "watch-init\\.mjs"
20
+ }
21
+ ]
22
+ },
23
+ "teardown": { "reset_branch": true }
24
+ }