@lifeaitools/rdc-skills 0.24.14 → 0.24.15
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rdc",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.15",
|
|
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",
|
|
@@ -382,7 +382,7 @@
|
|
|
382
382
|
"follows": [],
|
|
383
383
|
"leads_to": [],
|
|
384
384
|
"sandbox_aware": false,
|
|
385
|
-
"output_contract":
|
|
385
|
+
"output_contract": "guides/output-contract.md",
|
|
386
386
|
"enabled_default": true,
|
|
387
387
|
"codeflow_required": false
|
|
388
388
|
},
|
|
@@ -1005,7 +1005,7 @@
|
|
|
1005
1005
|
],
|
|
1006
1006
|
"follows": [],
|
|
1007
1007
|
"leads_to": [],
|
|
1008
|
-
"sandbox_aware":
|
|
1008
|
+
"sandbox_aware": true,
|
|
1009
1009
|
"output_contract": "guides/output-contract.md",
|
|
1010
1010
|
"enabled_default": true,
|
|
1011
1011
|
"codeflow_required": false
|
|
@@ -1135,7 +1135,7 @@
|
|
|
1135
1135
|
],
|
|
1136
1136
|
"follows": [],
|
|
1137
1137
|
"leads_to": [],
|
|
1138
|
-
"sandbox_aware":
|
|
1138
|
+
"sandbox_aware": true,
|
|
1139
1139
|
"output_contract": "guides/output-contract.md",
|
|
1140
1140
|
"enabled_default": true,
|
|
1141
1141
|
"codeflow_required": false
|
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.15",
|
|
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 && node tests/help-surface.test.mjs",
|
|
38
|
+
"test:acceptance": "node tests/acceptance.test.mjs && node tests/install-rdc-skills.test.mjs && node tests/help-surface.test.mjs && node tests/manifest-contract-fields.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",
|
|
@@ -6,6 +6,7 @@ description: "Usage `rdc:co-develop <ask|reply|inbox|start|resume|status>` — p
|
|
|
6
6
|
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
|
7
7
|
> Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
|
|
8
8
|
> One checklist upfront, updated in place, shown again at end with a 1-line verdict.
|
|
9
|
+
> **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Under the flag, do not create/send/reply to live co-development turns; report the intended clauth command and mark the external relay action as skipped.
|
|
9
10
|
|
|
10
11
|
# rdc:co-develop — Peer-Aware Co-Development
|
|
11
12
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { existsSync, 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
|
+
const manifest = JSON.parse(readFileSync(join(root, '.claude-plugin', 'plugin.json'), 'utf8'));
|
|
10
|
+
|
|
11
|
+
function skillPath(name) {
|
|
12
|
+
const direct = join(root, 'skills', name, 'SKILL.md');
|
|
13
|
+
if (existsSync(direct)) return direct;
|
|
14
|
+
const prefixed = join(root, 'skills', `rdc-${name}`, 'SKILL.md');
|
|
15
|
+
if (existsSync(prefixed)) return prefixed;
|
|
16
|
+
return direct;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
for (const [name, meta] of Object.entries(manifest.skills_meta)) {
|
|
20
|
+
const file = skillPath(name);
|
|
21
|
+
assert.equal(existsSync(file), true, `${name} must have a SKILL.md`);
|
|
22
|
+
const body = readFileSync(file, 'utf8');
|
|
23
|
+
|
|
24
|
+
const hasOutputContract = body.includes('guides/output-contract.md') || body.includes('OUTPUT CONTRACT');
|
|
25
|
+
assert.equal(
|
|
26
|
+
Boolean(meta.output_contract),
|
|
27
|
+
hasOutputContract,
|
|
28
|
+
`${name} manifest output_contract must match SKILL.md banner`,
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
if (body.includes('RDC_TEST=1')) {
|
|
32
|
+
assert.equal(meta.sandbox_aware, true, `${name} mentions RDC_TEST=1 and must be sandbox_aware`);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (meta.sandbox_aware) {
|
|
36
|
+
assert.match(
|
|
37
|
+
body,
|
|
38
|
+
/Sandbox contract|RDC_TEST=1/,
|
|
39
|
+
`${name} is sandbox_aware and must explain the sandbox contract in SKILL.md`,
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
console.log('manifest contract field tests — PASS');
|