@lifeaitools/rdc-skills 0.31.2 → 0.34.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.
Files changed (73) hide show
  1. package/.claude-plugin/plugin.json +8 -8
  2. package/.github/workflows/publish.yml +35 -3
  3. package/.github/workflows/self-test.yml +34 -34
  4. package/CHANGELOG.md +348 -348
  5. package/MANIFEST.md +224 -224
  6. package/README.md +2 -2
  7. package/clauth-plugin.json +85 -0
  8. package/deploy/install-systemd.sh +0 -0
  9. package/ecosystem.local.config.cjs +18 -0
  10. package/guides/agent-bootstrap.md +195 -195
  11. package/guides/agents/backend.md +102 -102
  12. package/guides/agents/content.md +94 -94
  13. package/guides/agents/cs2.md +56 -56
  14. package/guides/agents/data.md +86 -86
  15. package/guides/agents/design.md +77 -77
  16. package/guides/agents/frontend.md +91 -91
  17. package/guides/agents/infrastructure.md +81 -81
  18. package/guides/agents/setup.md +272 -272
  19. package/guides/agents/verify.md +119 -119
  20. package/guides/agents/viz.md +106 -106
  21. package/guides/lessons-learned-spec.md +1 -1
  22. package/guides/orchestration-epic.md +17 -17
  23. package/package.json +3 -2
  24. package/scripts/clean-malformed-registrations.js +257 -0
  25. package/scripts/postinstall.js +142 -0
  26. package/scripts/self-test.mjs +1459 -1459
  27. package/skills/behavior-audit/SKILL.md +1 -1
  28. package/skills/behavior-audit/agents/openai.yaml +4 -4
  29. package/skills/brochure/SKILL.md +1 -1
  30. package/skills/{rdc-brochurify → brochurify}/SKILL.md +1 -1
  31. package/skills/build/SKILL.md +1 -1
  32. package/skills/channel-formatter/SKILL.md +1 -1
  33. package/skills/co-develop/SKILL.md +1 -1
  34. package/skills/collab/SKILL.md +1 -1
  35. package/skills/convert/SKILL.md +1 -1
  36. package/skills/deploy/SKILL.md +1 -1
  37. package/skills/design/SKILL.md +1 -1
  38. package/skills/edit/SKILL.md +1 -1
  39. package/skills/env/SKILL.md +1 -1
  40. package/skills/{rdc-extract-verifier-rules → extract-verifier-rules}/SKILL.md +1 -1
  41. package/skills/fixit/SKILL.md +1 -1
  42. package/skills/fs-mcp/SKILL.md +1 -1
  43. package/skills/handoff/SKILL.md +1 -1
  44. package/skills/help/SKILL.md +1 -1
  45. package/skills/housekeeping/SKILL.md +1 -1
  46. package/skills/onramp/SKILL.md +1 -1
  47. package/skills/overnight/SKILL.md +1 -1
  48. package/skills/plan/SKILL.md +1 -1
  49. package/skills/preplan/SKILL.md +1 -1
  50. package/skills/prototype/SKILL.md +1 -1
  51. package/skills/refactor/SKILL.md +1 -1
  52. package/skills/regen-media/SKILL.md +1 -1
  53. package/skills/release/SKILL.md +1 -1
  54. package/skills/report/SKILL.md +1 -1
  55. package/skills/review/SKILL.md +1 -1
  56. package/skills/self-test/SKILL.md +1 -1
  57. package/skills/status/SKILL.md +1 -1
  58. package/skills/terminal-config/SKILL.md +1 -1
  59. package/skills/tests/MATRIX.md +2 -2
  60. package/skills/tests/onramp.test.json +101 -101
  61. package/skills/tests/rdc-env.test.json +12 -12
  62. package/skills/tests/rdc-new-model.test.json +12 -12
  63. package/skills/tests/rdc-refactor.test.json +29 -29
  64. package/skills/tests/rdc-regen-media.test.json +29 -29
  65. package/skills/watch/SKILL.md +1 -1
  66. package/skills/workitems/SKILL.md +1 -1
  67. package/tests/channel-formatter.contract.test.mjs +2 -2
  68. package/tests/clauth-plugin-postinstall.test.mjs +256 -0
  69. package/tests/mcp.test.mjs +1 -1
  70. package/tests/plugin-cache-clean-install.test.mjs +76 -0
  71. package/tests/plugin-namespace-names.test.mjs +125 -0
  72. /package/skills/tests/{rdc-rdc-brochurify.test.json → rdc-brochurify.test.json} +0 -0
  73. /package/skills/tests/{rdc-rdc-extract-verifier-rules.test.json → rdc-extract-verifier-rules.test.json} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rdc",
3
- "version": "0.31.2",
3
+ "version": "0.33.0",
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",
@@ -78,7 +78,7 @@
78
78
  "leads_to": [
79
79
  "convert",
80
80
  "brochure",
81
- "rdc-brochurify",
81
+ "brochurify",
82
82
  "lifeai-brochure-author"
83
83
  ],
84
84
  "sandbox_aware": true,
@@ -158,8 +158,8 @@
158
158
  "enabled_default": true,
159
159
  "codeflow_required": false
160
160
  },
161
- "rdc-brochurify": {
162
- "name": "rdc-brochurify",
161
+ "brochurify": {
162
+ "name": "brochurify",
163
163
  "slash": "rdc:brochurify",
164
164
  "category": "tooling",
165
165
  "usage": "rdc:brochurify <source|job-payload>",
@@ -234,7 +234,7 @@
234
234
  ],
235
235
  "follows": [],
236
236
  "leads_to": [
237
- "rdc-brochurify"
237
+ "brochurify"
238
238
  ],
239
239
  "sandbox_aware": false,
240
240
  "output_contract": "guides/output-contract.md",
@@ -999,8 +999,8 @@
999
999
  "enabled_default": true,
1000
1000
  "codeflow_required": true
1001
1001
  },
1002
- "rdc-extract-verifier-rules": {
1003
- "name": "rdc-extract-verifier-rules",
1002
+ "extract-verifier-rules": {
1003
+ "name": "extract-verifier-rules",
1004
1004
  "slash": "rdc:extract-verifier-rules",
1005
1005
  "category": "tooling",
1006
1006
  "usage": "rdc:extract-verifier-rules [enhancement-log]",
@@ -1032,7 +1032,7 @@
1032
1032
  "nightly cron at 3:00 AM PT"
1033
1033
  ],
1034
1034
  "follows": [
1035
- "rdc-brochurify"
1035
+ "brochurify"
1036
1036
  ],
1037
1037
  "leads_to": [
1038
1038
  "review"
@@ -1,5 +1,32 @@
1
1
  name: Publish to npm
2
2
 
3
+ # TRUSTED PUBLISHING (OIDC) — no stored npm credential.
4
+ #
5
+ # WHY THIS CHANGED. npm retired the token model this fleet was built on:
6
+ # 2025-12-09 every classic token permanently revoked
7
+ # 2025-11 granular tokens capped at 90 days; any expiring after 2026-02-03
8
+ # were forcibly moved to that date
9
+ # 2026-08 tokens with Bypass-2FA stop working entirely
10
+ # So `secrets.NPM_TOKEN` is a credential that expires on npm's schedule regardless of
11
+ # how carefully it is managed, and a release pipeline that depends on one is a pipeline
12
+ # that silently stops working. This job proves its identity to npm per-run instead, and
13
+ # there is nothing to rotate.
14
+ #
15
+ # It also publishes provenance automatically — cryptographic proof of the commit and
16
+ # workflow that built the tarball — which a token publish does not.
17
+ #
18
+ # ONE-TIME SETUP ON NPMJS, per package (this cannot be done from CI):
19
+ # npmjs.com -> package -> Settings -> Trusted Publisher
20
+ # organization/user : LIFEAI
21
+ # repository : rdc-skills
22
+ # workflow filename : publish.yml (filename only, not a path)
23
+ # allowed actions : must select at least one (required for configs created
24
+ # after 2026-05-20)
25
+ #
26
+ # A package that does not exist yet cannot be configured this way — npm requires the
27
+ # package to exist before its settings page does. Publish the first version with a
28
+ # short-lived token, then switch here.
29
+
3
30
  on:
4
31
  push:
5
32
  tags:
@@ -7,6 +34,7 @@ on:
7
34
 
8
35
  permissions:
9
36
  contents: read
37
+ id-token: write # REQUIRED — without it npm gets no OIDC identity to trust
10
38
 
11
39
  jobs:
12
40
  publish:
@@ -19,10 +47,14 @@ jobs:
19
47
  node-version: '24'
20
48
  registry-url: 'https://registry.npmjs.org'
21
49
 
50
+ # npm >= 11.5.1 is the first release that understands trusted publishing. The
51
+ # node-24 image ships an older npm, and the failure mode without this is an
52
+ # ordinary-looking auth error rather than anything naming OIDC.
53
+ - name: Ensure npm supports trusted publishing
54
+ run: npm install -g npm@latest && npm --version
55
+
22
56
  - name: Publish
23
57
  run: npm publish --access public
24
- env:
25
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
26
58
 
27
59
  - name: Notify clauth channel
28
60
  if: always()
@@ -31,4 +63,4 @@ jobs:
31
63
  STATUS="${{ job.status }}"
32
64
  curl -s -X POST "${{ secrets.CLAUTH_CHANNEL_URL }}" \
33
65
  -H "Content-Type: application/json" \
34
- -d "{\"event\":\"npm-publish\",\"package\":\"rdc-skills\",\"version\":\"${VERSION}\",\"status\":\"${STATUS}\",\"source\":\"github-actions\"}"
66
+ -d "{\"event\":\"npm-publish\",\"package\":\"rdc-skills\",\"version\":\"${VERSION}\",\"status\":\"${STATUS}\",\"source\":\"github-actions-oidc\"}"
@@ -1,29 +1,29 @@
1
- name: self-test
2
-
3
- on:
4
- push:
5
- branches: ['**']
6
- tags: ['v*']
7
- pull_request:
8
-
9
- jobs:
10
- tier1:
11
- name: Tier 1 static lint
12
- runs-on: ubuntu-latest
13
- steps:
14
- - name: Checkout
15
- uses: actions/checkout@v4
16
-
17
- - name: Setup Node 20
18
- uses: actions/setup-node@v4
19
- with:
20
- node-version: '20'
21
-
22
- - name: Run rdc:self-test --strict (Tier 1)
23
- # Tier 2 requires headless claude + clauth daemon — not available in standard CI.
24
- # Tier 1 catches the backtick-drift + frontmatter class of bugs.
25
- run: node scripts/self-test.mjs --strict
26
-
1
+ name: self-test
2
+
3
+ on:
4
+ push:
5
+ branches: ['**']
6
+ tags: ['v*']
7
+ pull_request:
8
+
9
+ jobs:
10
+ tier1:
11
+ name: Tier 1 static lint
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Setup Node 20
18
+ uses: actions/setup-node@v4
19
+ with:
20
+ node-version: '20'
21
+
22
+ - name: Run rdc:self-test --strict (Tier 1)
23
+ # Tier 2 requires headless claude + clauth daemon — not available in standard CI.
24
+ # Tier 1 catches the backtick-drift + frontmatter class of bugs.
25
+ run: node scripts/self-test.mjs --strict
26
+
27
27
  tier2-gate:
28
28
  name: Tier 2 behavioral (tag releases only)
29
29
  runs-on: ubuntu-latest
@@ -32,14 +32,14 @@ jobs:
32
32
  env:
33
33
  ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
34
34
  steps:
35
- - name: Checkout
36
- uses: actions/checkout@v4
37
-
38
- - name: Setup Node 20
39
- uses: actions/setup-node@v4
40
- with:
41
- node-version: '20'
42
-
35
+ - name: Checkout
36
+ uses: actions/checkout@v4
37
+
38
+ - name: Setup Node 20
39
+ uses: actions/setup-node@v4
40
+ with:
41
+ node-version: '20'
42
+
43
43
  - name: Install claude CLI
44
44
  if: env.ANTHROPIC_API_KEY != ''
45
45
  run: npm install -g @anthropic-ai/claude-code