@lifeaitools/rdc-skills 0.37.8 → 0.37.9
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 +73 -1
- package/README.md +1 -0
- package/clauth-plugin.json +1 -1
- package/commands/flow.md +16 -15
- package/commands/mode.md +6 -0
- package/data/rpms-kinds.snapshot.json +2485 -0
- package/git-sha.json +1 -1
- package/package.json +2 -2
- package/scripts/gen-rpms-kind-tables.mjs +210 -0
- package/scripts/lib/plugins/static-call-reference.mjs +109 -0
- package/scripts/lib/plugins/treesitter.mjs +13 -3
- package/skills/new/SKILL.md +154 -0
- package/skills/open/SKILL.md +50 -11
- package/skills/regen-media/SKILL.md +122 -17
- package/tests/lib/jsx-references.test.mjs +113 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rdc",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.9",
|
|
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",
|
|
@@ -2120,6 +2120,78 @@
|
|
|
2120
2120
|
"enabled_default": true,
|
|
2121
2121
|
"codeflow_required": false,
|
|
2122
2122
|
"purpose": "orient before working: position, target from the registry, and the harness shape"
|
|
2123
|
+
},
|
|
2124
|
+
"new": {
|
|
2125
|
+
"name": "new",
|
|
2126
|
+
"slash": "rdc:new",
|
|
2127
|
+
"category": "dev-loop",
|
|
2128
|
+
"usage": "rdc:new <slug> --product-type <t> [--environment <e> --host-type <t> --url <u>]",
|
|
2129
|
+
"args": {
|
|
2130
|
+
"positional": [
|
|
2131
|
+
{
|
|
2132
|
+
"name": "slug",
|
|
2133
|
+
"required": true,
|
|
2134
|
+
"description": "the new product's registry slug",
|
|
2135
|
+
"accepts": "string"
|
|
2136
|
+
}
|
|
2137
|
+
],
|
|
2138
|
+
"flags": [
|
|
2139
|
+
{
|
|
2140
|
+
"name": "product-type",
|
|
2141
|
+
"required": true,
|
|
2142
|
+
"description": "one of the 11 declared product classes (app, site-ts, site-html, package, share-app, prototype, model, mcp, documentation, corpus, artifact)",
|
|
2143
|
+
"accepts": "string"
|
|
2144
|
+
},
|
|
2145
|
+
{
|
|
2146
|
+
"name": "environment",
|
|
2147
|
+
"required": false,
|
|
2148
|
+
"description": "deployment environment to also register (dev, prod, ...) — dev-only is the normal outcome",
|
|
2149
|
+
"accepts": "string"
|
|
2150
|
+
},
|
|
2151
|
+
{
|
|
2152
|
+
"name": "host-type",
|
|
2153
|
+
"required": false,
|
|
2154
|
+
"description": "runtime for the registered environment (coolify, pm2, ...)",
|
|
2155
|
+
"accepts": "string"
|
|
2156
|
+
},
|
|
2157
|
+
{
|
|
2158
|
+
"name": "url",
|
|
2159
|
+
"required": false,
|
|
2160
|
+
"description": "the registered environment's URL",
|
|
2161
|
+
"accepts": "string"
|
|
2162
|
+
}
|
|
2163
|
+
]
|
|
2164
|
+
},
|
|
2165
|
+
"requires": [
|
|
2166
|
+
"supabase",
|
|
2167
|
+
"git"
|
|
2168
|
+
],
|
|
2169
|
+
"produces": [
|
|
2170
|
+
"repo_registry_writes",
|
|
2171
|
+
"app_deployments_writes"
|
|
2172
|
+
],
|
|
2173
|
+
"default_model": "haiku",
|
|
2174
|
+
"triggers": [
|
|
2175
|
+
"create a new app",
|
|
2176
|
+
"scaffold a new site",
|
|
2177
|
+
"register a new package",
|
|
2178
|
+
"rdc:new",
|
|
2179
|
+
"new product",
|
|
2180
|
+
"start a new repo",
|
|
2181
|
+
"add a new deployment environment"
|
|
2182
|
+
],
|
|
2183
|
+
"follows": [],
|
|
2184
|
+
"leads_to": [
|
|
2185
|
+
"open",
|
|
2186
|
+
"plan",
|
|
2187
|
+
"build",
|
|
2188
|
+
"deploy"
|
|
2189
|
+
],
|
|
2190
|
+
"sandbox_aware": false,
|
|
2191
|
+
"output_contract": "guides/output-contract.md",
|
|
2192
|
+
"enabled_default": true,
|
|
2193
|
+
"codeflow_required": false,
|
|
2194
|
+
"purpose": "scaffold and register a new product (rdc-harness create), then its deployment environment(s) (rdc-harness new) -- the create-time gap /rdc:open's gate-only design left unwrapped"
|
|
2123
2195
|
}
|
|
2124
2196
|
},
|
|
2125
2197
|
"commands_meta": {
|
package/README.md
CHANGED
|
@@ -333,6 +333,7 @@ skills/
|
|
|
333
333
|
help/SKILL.md (manifest-driven skill index)
|
|
334
334
|
housekeeping/SKILL.md (weekly maintenance audit)
|
|
335
335
|
lifeai-brochure-author/SKILL.md (brochure JSX authoring)
|
|
336
|
+
new/SKILL.md (product scaffolding and registration)
|
|
336
337
|
new-model/SKILL.md (reference model registration gate)
|
|
337
338
|
onramp/SKILL.md (Place Fund phase-1 enrollment)
|
|
338
339
|
open/SKILL.md (orient first: position, target, harness shape)
|
package/clauth-plugin.json
CHANGED
package/commands/flow.md
CHANGED
|
@@ -45,44 +45,44 @@ rdc:flow normal # clear — back to no flow declared
|
|
|
45
45
|
|
|
46
46
|
## Steps
|
|
47
47
|
|
|
48
|
+
**One direct script call, nothing more.** `$LIFEAI_ENV/bin/rdc-flow.mjs` is the CLI over
|
|
49
|
+
`hooks/lib/rdc-flow.mjs` — run it, read its printed JSON, done. There is no research step:
|
|
50
|
+
do not read this file's own source or reconstruct the call by hand, and do not fall back to
|
|
51
|
+
an inline `node -e "import(...)"` — the CLI already does the right sequence internally. The
|
|
52
|
+
call itself is fast (~0.1–0.2s measured live); if a turn spends more than a few seconds on
|
|
53
|
+
this, that time is the agent reading docs, not the script running.
|
|
54
|
+
|
|
48
55
|
### 1. Read the current state
|
|
49
56
|
|
|
50
57
|
```bash
|
|
51
|
-
node
|
|
58
|
+
node $LIFEAI_ENV/bin/rdc-flow.mjs status
|
|
52
59
|
```
|
|
53
60
|
|
|
54
|
-
|
|
61
|
+
Prints BOTH axes at once — the declared flow AND any live `rdc-mode.mjs` hotfix/maintenance window — because a relaxed mode overrides a required flow (loosest state wins) and a status check that only showed flow would miss that override entirely. Report `flow` (or `null` if nothing declared — the fail-closed default), `flowReason`/`flowSetBy`/`flowSetAt` when set, and `mode` (`normal` unless a hotfix/maintenance window is open), with `modeReason`/`modeMinutesLeft` when it isn't.
|
|
55
62
|
|
|
56
63
|
### 2. Setting a plain work-shape flow — no reason required
|
|
57
64
|
|
|
58
65
|
```bash
|
|
59
|
-
node
|
|
66
|
+
node $LIFEAI_ENV/bin/rdc-flow.mjs <flow>
|
|
60
67
|
```
|
|
61
68
|
|
|
62
69
|
### 3. Setting hotfix or maintenance — a reason is REQUIRED
|
|
63
70
|
|
|
64
|
-
Refuse to proceed without one — both setters throw on an empty reason for these two values, by design: an unexplained disarm is how a temporary state becomes permanent.
|
|
65
|
-
|
|
66
|
-
Guard relaxation reads the **mode** store (`rdc-mode.mjs` `isRelaxedFor()`); the work-item
|
|
67
|
-
exemption reads the **flow** store. `setFlow` alone relaxes no guard, so this one command
|
|
68
|
-
writes both — `setFlowOrMode` routes `hotfix`/`maintenance` to `setMode`, then `setFlow`
|
|
69
|
-
records the flow:
|
|
70
|
-
|
|
71
71
|
```bash
|
|
72
|
-
node
|
|
72
|
+
node $LIFEAI_ENV/bin/rdc-flow.mjs <hotfix|maintenance> "<reason>"
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
The CLI refuses (exit 1, no state written) without one — an unexplained disarm is how a temporary state becomes permanent. It also writes both stores itself: guard relaxation reads the **mode** store (`rdc-mode.mjs` `isRelaxedFor()`); the work-item exemption reads the **flow** store; a bare `setFlow` would relax no guard, so the CLI calls `setFlowOrMode` then `setFlow` internally and prints the merged result of both.
|
|
76
76
|
|
|
77
|
-
Then state plainly, in the checklist: **which guards are now relaxed, that the safety set is still armed, and that this stays active until explicitly cleared (no TTL — active management, not a silent timer).**
|
|
77
|
+
Read the printed state: `flow` and `mode` must both show the name — the CLI itself throws if they disagree, so a clean exit already proves this. Then state plainly, in the checklist: **which guards are now relaxed, that the safety set is still armed, and that this stays active until explicitly cleared (no TTL — active management, not a silent timer).**
|
|
78
78
|
|
|
79
79
|
### 4. Returning to normal
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
node
|
|
82
|
+
node $LIFEAI_ENV/bin/rdc-flow.mjs normal
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
Clears both stores in one call; a hotfix mode left open after the flow is cleared would keep guards relaxed.
|
|
86
86
|
|
|
87
87
|
Do this **as soon as the incident is over**, or the moment the declared work-shape changes.
|
|
88
88
|
|
|
@@ -98,5 +98,6 @@ Do this **as soon as the incident is over**, or the moment the declared work-sha
|
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
100
|
node --test $LIFEAI_ENV/tests/rdc-flow.test.mjs
|
|
101
|
+
node --test $LIFEAI_ENV/tests/rdc-flow-cli.test.mjs
|
|
101
102
|
node --test C:/Dev/rdc-harness/fsm-daemon/tests/matrix.test.js
|
|
102
103
|
```
|
package/commands/mode.md
CHANGED
|
@@ -12,6 +12,12 @@ description: rdc:mode [status|hotfix "<reason>" [minutes]|normal] — show or se
|
|
|
12
12
|
> default) — one FSM surface instead of two. This skill's underlying code
|
|
13
13
|
> (`rdc-mode.mjs`) is untouched and still works; new work should use
|
|
14
14
|
> `rdc:flow hotfix "<reason>"` instead of `rdc:mode hotfix ...`.
|
|
15
|
+
>
|
|
16
|
+
> **And `rdc:flow` itself is now a direct script call, not a doc to read:**
|
|
17
|
+
> `node $LIFEAI_ENV/bin/rdc-flow.mjs hotfix "<reason>"` — no inline `node -e`,
|
|
18
|
+
> no TTL/minutes option (flow-routed hotfix/maintenance never carries one, by
|
|
19
|
+
> design). This page's own `node -e` steps below are the legacy `rdc:mode`
|
|
20
|
+
> path (the only one with a `minutes` window) and stay as documented.
|
|
15
21
|
|
|
16
22
|
# rdc:mode — operating mode
|
|
17
23
|
|