@lifeaitools/rdc-skills 0.24.13 → 0.24.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/commands/help.md +49 -67
- package/git-sha.json +1 -1
- package/package.json +2 -2
- package/skills/help/SKILL.md +22 -1
- package/tests/help-surface.test.mjs +33 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rdc",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.14",
|
|
4
4
|
"description": "RDC typed-agent dispatch skill suite for Claude Code — plan, build, review, overnight unattended builds with work-item tracking and TDD enforcement.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "LIFEAI",
|
package/commands/help.md
CHANGED
|
@@ -1,90 +1,72 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rdc:help
|
|
3
3
|
description: >-
|
|
4
|
-
Usage `rdc:help` or `rdc` —
|
|
4
|
+
Usage `rdc:help` or `rdc` — manifest-driven menu of all rdc:* skills with
|
|
5
|
+
argument syntax, requirements, decision hints, and direct MCP/curl access.
|
|
5
6
|
---
|
|
6
7
|
|
|
7
|
-
>
|
|
8
|
-
> Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
|
|
8
|
+
> **Output contract:** Checklist/table output only. No raw MCP/JSON/log dumps.
|
|
9
9
|
|
|
10
|
+
# rdc:help — Manifest-Driven Command Reference
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
Print a concise command reference from the plugin manifest, then stop. Do not
|
|
13
|
+
ask which command to run unless the user explicitly asks for a recommendation.
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
## Source Of Truth
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
Resolve the manifest in this order and use the first existing file:
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| `rdc:plan` | `rdc:plan <topic> [--unattended]` — architecture + epic/tasks |
|
|
21
|
-
| `rdc:build` | `rdc:build <epic-id\|topic> [--unattended]` — dispatch agents, commit, close items |
|
|
22
|
-
| `rdc:review` | `rdc:review [--unattended]` — typecheck, tests, fix, commit |
|
|
23
|
-
| `rdc:report` | `rdc:report [--unattended]` — write `.rdc/reports/YYYY-MM-DD.md` |
|
|
24
|
-
| `rdc:overnight` | `rdc:overnight [epic-id\|label=X]` — chain preplan→plan→build→review→report |
|
|
25
|
-
| `rdc:status` | `rdc:status` — read-only dashboard |
|
|
26
|
-
| `rdc:fixit` | `rdc:fixit <description>` — bypass the loop, <5 files / <30 min |
|
|
19
|
+
1. `{PLUGIN_ROOT}/.claude-plugin/plugin.json`
|
|
20
|
+
2. `C:/Dev/rdc-skills/.claude-plugin/plugin.json`
|
|
21
|
+
3. `~/.claude/plugins/cache/rdc-skills/rdc-skills/latest/.claude-plugin/plugin.json`
|
|
27
22
|
|
|
28
|
-
|
|
23
|
+
Read `skills_meta` from the manifest. Group entries by `category` in this order:
|
|
24
|
+
`planning`, `build`, `deploy`, `release`, `dev-loop`, `reporting`, `tooling`,
|
|
25
|
+
`infra`.
|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
|---|---|
|
|
32
|
-
| `rdc:deploy` | `rdc:deploy <slug> [build-id]` · `rdc:deploy new <slug>` · `rdc:deploy diagnose <slug>` · `rdc:deploy audit [--fix]` |
|
|
33
|
-
| `rdc:release` | `rdc:release <repo> [version]` · `rdc:release <repo> --patch\|--minor\|--major` · `rdc:release <repo> --dry-run` |
|
|
27
|
+
For each row, show:
|
|
34
28
|
|
|
35
|
-
|
|
29
|
+
```text
|
|
30
|
+
{slash} — {usage} — needs: {requires or "(none)"} — cf: {yes|no}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
At the end, render a short decision tree from `skills_meta[].triggers`.
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
| `rdc:handoff` | `rdc:handoff <topic>` — finalize plan → work items for CLI |
|
|
40
|
-
| `rdc:prototype` | `rdc:prototype <description>` — JSX mock for review |
|
|
41
|
-
| `rdc:workitems` | `rdc:workitems <add\|update\|done\|list\|epics> [args]` |
|
|
42
|
-
| `rdc:collab` | `rdc:collab --session <id>` — claude.ai bidirectional relay |
|
|
43
|
-
| `rdc:design` | `rdc:design <command\|brief>` — RDC/Studio design, tokens, palettes, themes, Rampa CLI |
|
|
35
|
+
If the manifest is unreachable, say `manifest fallback used` and render the
|
|
36
|
+
static fallback table from `skills/help/SKILL.md`.
|
|
44
37
|
|
|
45
|
-
##
|
|
38
|
+
## Direct MCP / curl Access
|
|
46
39
|
|
|
47
|
-
|
|
40
|
+
Show this block after the command table so non-Claude callers have the same
|
|
41
|
+
entry point:
|
|
48
42
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- `guides/agents/viz.md` — [agent-only — dispatched by rdc:build, not user-invocable]
|
|
57
|
-
- `guides/agents/setup.md` — [agent-only — dispatched by rdc:build, not user-invocable]
|
|
58
|
-
- `guides/agents/verify.md` — [agent-only — dispatched by rdc:build, not user-invocable]
|
|
43
|
+
```text
|
|
44
|
+
MCP endpoint: https://rdc-skills.regendevcorp.com/mcp
|
|
45
|
+
Health: curl -s https://rdc-skills.regendevcorp.com/health
|
|
46
|
+
Header: Accept: application/json, text/event-stream
|
|
47
|
+
Tools: rdc_skill_list, rdc_skill_search, rdc_skill_get
|
|
48
|
+
Variants: cli for Claude Code/Codex/local terminal; cloud for claude.ai
|
|
49
|
+
```
|
|
59
50
|
|
|
60
|
-
|
|
51
|
+
Minimal curl examples:
|
|
61
52
|
|
|
62
|
-
|
|
53
|
+
```bash
|
|
54
|
+
curl -s -X POST https://rdc-skills.regendevcorp.com/mcp \
|
|
55
|
+
-H 'Content-Type: application/json' \
|
|
56
|
+
-H 'Accept: application/json, text/event-stream' \
|
|
57
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"rdc_skill_list","arguments":{}}}'
|
|
63
58
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"plan this out" / "architect" → rdc:plan <topic>
|
|
69
|
-
"build it" / "go" / "execute" → rdc:build <topic>
|
|
70
|
-
"run overnight" / "while I sleep" → rdc:overnight
|
|
71
|
-
"quick fix" / "hotfix" / "typo" → rdc:fixit <desc>
|
|
72
|
-
"review" / "is it clean" → rdc:review
|
|
73
|
-
"report" / "summarize" → rdc:report
|
|
74
|
-
"status" / "where are we" → rdc:status
|
|
75
|
-
"deploy" / "ship" → rdc:deploy <slug>
|
|
76
|
-
"release" / "publish" → rdc:release <repo>
|
|
77
|
-
"hand this off" / "give to agents" → rdc:handoff
|
|
78
|
-
"show me what it looks like" → rdc:prototype
|
|
79
|
-
"add to backlog" / "create a ticket" → rdc:workitems
|
|
80
|
-
"design/tokens/palette/theme" → rdc:design <command>
|
|
81
|
-
"what commands" / "what skills" → rdc:help
|
|
59
|
+
curl -s -X POST https://rdc-skills.regendevcorp.com/mcp \
|
|
60
|
+
-H 'Content-Type: application/json' \
|
|
61
|
+
-H 'Accept: application/json, text/event-stream' \
|
|
62
|
+
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"rdc_skill_get","arguments":{"name":"build","variant":"cli"}}}'
|
|
82
63
|
```
|
|
83
64
|
|
|
84
|
-
## Hard
|
|
65
|
+
## Hard Rules
|
|
85
66
|
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
67
|
+
- `cf: yes` skills must consult CodeFlow before acting.
|
|
68
|
+
- Never run `pnpm build` at monorepo root. Use scoped typecheck/tests.
|
|
69
|
+
- Never commit to `main` without explicit approval.
|
|
70
|
+
- Never overlap agents on the same files.
|
|
71
|
+
- Update work items in real time for skills that require work-items RPCs.
|
|
72
|
+
- Credentials come from clauth: `curl -s http://127.0.0.1:52437/v/<service>`.
|
package/git-sha.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifeaitools/rdc-skills",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.14",
|
|
4
4
|
"description": "RDC typed-agent dispatch skill suite for Claude Code - plan, build, review, overnight builds",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"rdc-design": "node scripts/rdc-design-cli.mjs",
|
|
36
36
|
"test:hooks": "node scripts/test-rdc-hooks.mjs",
|
|
37
37
|
"test:truth-gate": "node tests/run-evidence-gate.test.mjs && node tests/work-item-exit-gate-l2.test.mjs && node tests/work-item-exit-gate-l3.test.mjs && node tests/require-work-item-on-commit.test.mjs && node tests/harness-gates.test.mjs",
|
|
38
|
-
"test:acceptance": "node tests/acceptance.test.mjs && node tests/install-rdc-skills.test.mjs",
|
|
38
|
+
"test:acceptance": "node tests/acceptance.test.mjs && node tests/install-rdc-skills.test.mjs && node tests/help-surface.test.mjs",
|
|
39
39
|
"acceptance": "node scripts/acceptance.mjs --changed",
|
|
40
40
|
"test:mcp": "node tests/mcp.test.mjs",
|
|
41
41
|
"test:mcp:remote": "node tests/mcp.test.mjs --remote",
|
package/skills/help/SKILL.md
CHANGED
|
@@ -21,7 +21,8 @@ description: "Usage `rdc:help` — Show all rdc:* skills with usage, requirement
|
|
|
21
21
|
3. Group entries by `category` in this order: `planning, build, deploy, release, dev-loop, reporting, tooling, infra`.
|
|
22
22
|
4. For each entry render one row: `{slash} — {usage} — needs: {requires.join(',')} — cf: {codeflow_required ? 'yes' : 'no'}`.
|
|
23
23
|
5. Print a Decision Tree at the end that maps natural-language phrases to skills, derived from each entry's `triggers[]`.
|
|
24
|
-
6.
|
|
24
|
+
6. Print the Direct MCP / curl Access block so non-Claude callers have the same entry point.
|
|
25
|
+
7. Hard rules section at the bottom (see below — verbatim).
|
|
25
26
|
|
|
26
27
|
## Required output format
|
|
27
28
|
|
|
@@ -86,6 +87,26 @@ RDC SKILLS — manifest: .claude-plugin/plugin.json @ v{version}
|
|
|
86
87
|
"claude.ai relay" / "collab session" → /rdc:collab
|
|
87
88
|
"palette" / "studio design" / "tokens" → /rdc:design
|
|
88
89
|
|
|
90
|
+
## Direct MCP / curl Access
|
|
91
|
+
|
|
92
|
+
MCP endpoint: https://rdc-skills.regendevcorp.com/mcp
|
|
93
|
+
Health: curl -s https://rdc-skills.regendevcorp.com/health
|
|
94
|
+
Header: Accept: application/json, text/event-stream
|
|
95
|
+
Tools: rdc_skill_list, rdc_skill_search, rdc_skill_get
|
|
96
|
+
Variants: cli for Claude Code/Codex/local terminal; cloud for claude.ai
|
|
97
|
+
|
|
98
|
+
List skills:
|
|
99
|
+
curl -s -X POST https://rdc-skills.regendevcorp.com/mcp \
|
|
100
|
+
-H 'Content-Type: application/json' \
|
|
101
|
+
-H 'Accept: application/json, text/event-stream' \
|
|
102
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"rdc_skill_list","arguments":{}}}'
|
|
103
|
+
|
|
104
|
+
Fetch a skill:
|
|
105
|
+
curl -s -X POST https://rdc-skills.regendevcorp.com/mcp \
|
|
106
|
+
-H 'Content-Type: application/json' \
|
|
107
|
+
-H 'Accept: application/json, text/event-stream' \
|
|
108
|
+
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"rdc_skill_get","arguments":{"name":"build","variant":"cli"}}}'
|
|
109
|
+
|
|
89
110
|
## Hard rules
|
|
90
111
|
|
|
91
112
|
- `cf: yes` skills MUST consult CodeFlow before acting. Hooks fail-closed on unreachable CodeFlow for these.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
4
|
+
import { dirname, join, resolve } from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
|
|
7
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
const root = resolve(__dirname, '..');
|
|
9
|
+
|
|
10
|
+
const files = {
|
|
11
|
+
readme: join(root, 'README.md'),
|
|
12
|
+
skillHelp: join(root, 'skills', 'help', 'SKILL.md'),
|
|
13
|
+
commandHelp: join(root, 'commands', 'help.md'),
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const docs = Object.fromEntries(
|
|
17
|
+
Object.entries(files).map(([key, file]) => [key, readFileSync(file, 'utf8')]),
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
for (const [name, text] of Object.entries(docs)) {
|
|
21
|
+
assert.match(text, /https:\/\/rdc-skills\.regendevcorp\.com\/mcp/, `${name} must expose production MCP endpoint`);
|
|
22
|
+
assert.match(text, /Accept: application\/json, text\/event-stream/, `${name} must show Streamable HTTP Accept header`);
|
|
23
|
+
assert.match(text, /rdc_skill_list/, `${name} must mention rdc_skill_list`);
|
|
24
|
+
assert.match(text, /rdc_skill_get/, `${name} must mention rdc_skill_get`);
|
|
25
|
+
assert.doesNotMatch(text, /https:\/\/rdc-skills\.dev\.regendevcorp\.com\/mcp/, `${name} must not point callers at dev MCP`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
assert.match(docs.skillHelp, /manifest-driven/i, 'skill help should be manifest-driven');
|
|
29
|
+
assert.match(docs.commandHelp, /manifest-driven/i, 'command help should be manifest-driven');
|
|
30
|
+
assert.doesNotMatch(docs.commandHelp, /Print the full usage menu below verbatim/, 'command help must not use stale static menu wording');
|
|
31
|
+
assert.doesNotMatch(docs.commandHelp, /get\/<service>/, 'command help must use current clauth /v/<service> wording');
|
|
32
|
+
|
|
33
|
+
console.log('help surface tests — PASS');
|