sdtk-kit 0.3.2 → 0.3.4

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 (28) hide show
  1. package/README.md +40 -3
  2. package/assets/manifest/toolkit-bundle.manifest.json +87 -12
  3. package/assets/manifest/toolkit-bundle.sha256.txt +19 -4
  4. package/assets/toolkit/toolkit/AGENTS.md +20 -16
  5. package/assets/toolkit/toolkit/install.ps1 +122 -7
  6. package/assets/toolkit/toolkit/runtimes/claude/CLAUDE_TEMPLATE.md +32 -10
  7. package/assets/toolkit/toolkit/scripts/install-claude-skills.ps1 +129 -0
  8. package/assets/toolkit/toolkit/scripts/install-codex-skills.ps1 +8 -0
  9. package/assets/toolkit/toolkit/scripts/uninstall-claude-skills.ps1 +139 -0
  10. package/assets/toolkit/toolkit/skills-claude/api-design-spec/SKILL.md +76 -0
  11. package/assets/toolkit/toolkit/skills-claude/api-doc/SKILL.md +46 -0
  12. package/assets/toolkit/toolkit/skills-claude/arch/SKILL.md +70 -0
  13. package/assets/toolkit/toolkit/skills-claude/ba/SKILL.md +49 -0
  14. package/assets/toolkit/toolkit/skills-claude/design-layout/SKILL.md +25 -0
  15. package/assets/toolkit/toolkit/skills-claude/dev/SKILL.md +45 -0
  16. package/assets/toolkit/toolkit/skills-claude/dev-backend/SKILL.md +20 -0
  17. package/assets/toolkit/toolkit/skills-claude/dev-frontend/SKILL.md +18 -0
  18. package/assets/toolkit/toolkit/skills-claude/orchestrator/SKILL.md +63 -0
  19. package/assets/toolkit/toolkit/skills-claude/pm/SKILL.md +52 -0
  20. package/assets/toolkit/toolkit/skills-claude/qa/SKILL.md +47 -0
  21. package/assets/toolkit/toolkit/skills-claude/screen-design-spec/SKILL.md +68 -0
  22. package/assets/toolkit/toolkit/skills-claude/test-case-spec/SKILL.md +63 -0
  23. package/package.json +2 -2
  24. package/src/commands/help.js +30 -4
  25. package/src/commands/init.js +25 -1
  26. package/src/commands/runtime.js +217 -0
  27. package/src/index.js +4 -1
  28. package/src/lib/scope.js +68 -0
package/README.md CHANGED
@@ -16,7 +16,7 @@ npm link
16
16
 
17
17
  ```bash
18
18
  # 1. Initialize workspace with runtime adapter
19
- sdtk init --runtime codex
19
+ sdtk init --runtime claude
20
20
 
21
21
  # 2. Store GitHub token for entitlement
22
22
  sdtk auth --token ghp_xxxxxxxxxxxx
@@ -24,6 +24,9 @@ sdtk auth --verify
24
24
 
25
25
  # 3. Generate feature documentation (17 files)
26
26
  sdtk generate --feature-key USER_PROFILE --feature-name "User Profile"
27
+ # Codex runtime remains available:
28
+ # sdtk init --runtime codex
29
+
27
30
  ```
28
31
 
29
32
  ## Commands
@@ -33,7 +36,9 @@ sdtk generate --feature-key USER_PROFILE --feature-name "User Profile"
33
36
  Initialize SDTK workspace in the current or specified project directory.
34
37
 
35
38
  ```bash
36
- sdtk init --runtime <codex|claude> [--project-path <path>] [--force] [--skip-skills]
39
+ sdtk init --runtime <codex|claude> [--project-path <path>] [--force] [--runtime-scope <project|user>] [--skip-runtime-assets]
40
+
41
+ # Deprecated: --skip-skills (use --skip-runtime-assets instead)
37
42
  ```
38
43
 
39
44
  Creates:
@@ -41,6 +46,9 @@ Creates:
41
46
  - `sdtk.config.json` -- project configuration
42
47
  - `sdtk.config.profiles.example.json` -- stack profile examples
43
48
  - `CODEX.md` or `CLAUDE.md` -- runtime adapter
49
+ - for `--runtime claude`, skill files are installed into `.claude/skills/` (project scope, default) or `~/.claude/skills/` (user scope) unless `--skip-runtime-assets` is used
50
+ - for `--runtime codex`, skill files are installed into `$CODEX_HOME/skills/` or `~/.codex/skills/` (user scope only) unless `--skip-runtime-assets` is used
51
+ - `--skip-skills` is deprecated; use `--skip-runtime-assets` instead
44
52
 
45
53
  ### `sdtk auth`
46
54
 
@@ -79,6 +87,36 @@ sdtk generate --feature-key <UPPER_SNAKE_CASE> --feature-name "<text>" [--projec
79
87
 
80
88
  Output files include: project initiation, BA spec, flow-action spec, PRD, backlog, architecture design, database spec, API specs (OpenAPI + endpoints + design detail + flow list), UI design layout, implementation plan, test cases, and QA release report.
81
89
 
90
+ ### `sdtk runtime`
91
+
92
+ Manage runtime skill assets independently of `sdtk init`.
93
+
94
+ ```bash
95
+ sdtk runtime install --runtime <codex|claude> [--scope <project|user>]
96
+ sdtk runtime uninstall --runtime <codex|claude> [--scope <project|user>]
97
+ sdtk runtime status --runtime <codex|claude>
98
+ ```
99
+
100
+ Scope defaults:
101
+ - `claude`: `project` (installs to `.claude/skills/`); `user` installs to `~/.claude/skills/`
102
+ - `codex`: `user` only (installs to `$CODEX_HOME/skills/` or `~/.codex/skills/`); project scope is not supported (Gate C0)
103
+
104
+ Examples:
105
+
106
+ ```bash
107
+ # Install Claude skills at project scope (default)
108
+ sdtk runtime install --runtime claude
109
+
110
+ # Install Claude skills at user scope
111
+ sdtk runtime install --runtime claude --scope user
112
+
113
+ # Check installed runtime assets
114
+ sdtk runtime status --runtime claude
115
+
116
+ # Remove runtime assets
117
+ sdtk runtime uninstall --runtime claude --scope project
118
+ ```
119
+
82
120
  ### `sdtk --help` / `sdtk --version`
83
121
 
84
122
  ```bash
@@ -128,4 +166,3 @@ npm run verify:payload
128
166
  # Smoke test npm pack
129
167
  npm run pack:smoke
130
168
  ```
131
-
@@ -1,20 +1,20 @@
1
1
  {
2
- "buildTimestamp": "2026-03-03T11:32:21Z",
2
+ "buildTimestamp": "2026-03-07T02:40:24Z",
3
3
  "files": [
4
4
  {
5
5
  "path": "toolkit/AGENTS.md",
6
- "sha256": "c6eeae87c70925803869ae90d0aa033eb12852c174019f373f62382d25b3a7e3",
7
- "size": 5060
6
+ "sha256": "868430474b46e4e8d27ed26b780a794936e84cf4f0278f2cc3d061f54877f498",
7
+ "size": 5113
8
8
  },
9
9
  {
10
10
  "path": "toolkit/install.ps1",
11
- "sha256": "cc717ae87a0dbcf5aef2204d45211fe59f9506f9d03314eb283eddb3a5997279",
12
- "size": 5519
11
+ "sha256": "e717a2791fb597d7a21f57f4c4790dbc545e954f0af3ca0c47f160f78c8a2474",
12
+ "size": 9777
13
13
  },
14
14
  {
15
15
  "path": "toolkit/runtimes/claude/CLAUDE_TEMPLATE.md",
16
- "sha256": "fdf45036d4c0079cdb03e65efb7b5a84ea130e67a4c82522bb93c2bb73aa6661",
17
- "size": 882
16
+ "sha256": "0f3e0bfe1b5165250f0da4da5790a9e6220023752713088a0076eb7f17fd6397",
17
+ "size": 1933
18
18
  },
19
19
  {
20
20
  "path": "toolkit/runtimes/codex/CODEX_TEMPLATE.md",
@@ -26,10 +26,20 @@
26
26
  "sha256": "5c1f5442fd3c26b8bf62db4b25e9f1c4207258c7fe52f12ed533968f77dfbf65",
27
27
  "size": 10557
28
28
  },
29
+ {
30
+ "path": "toolkit/scripts/install-claude-skills.ps1",
31
+ "sha256": "8c66c27262ad4abc3c42bbcbe3a97752a5f29956ac93397133e6780354911549",
32
+ "size": 4315
33
+ },
29
34
  {
30
35
  "path": "toolkit/scripts/install-codex-skills.ps1",
31
- "sha256": "68a82e421d0309e47cdb79e949b1044c17375ad7fd52e2ab9ccdc9dd33f8cdd0",
32
- "size": 9175
36
+ "sha256": "ca64e0c2a0f13137bc6b780a57442de46a3e0551778bbcbadd4eb779c21cb203",
37
+ "size": 9427
38
+ },
39
+ {
40
+ "path": "toolkit/scripts/uninstall-claude-skills.ps1",
41
+ "sha256": "809ffc1f96528ac1cd453214cd1c2d231ca0753f0d3c19b4a20f11835a64a152",
42
+ "size": 4482
33
43
  },
34
44
  {
35
45
  "path": "toolkit/scripts/uninstall-codex-skills.ps1",
@@ -211,6 +221,71 @@
211
221
  "sha256": "72ca16e07c286910333243954610e116217ca2abb3a5e276cbe91e92eb826ad5",
212
222
  "size": 2652
213
223
  },
224
+ {
225
+ "path": "toolkit/skills-claude/api-design-spec/SKILL.md",
226
+ "sha256": "123873681ff65792a9a269b264155c65a5feb68b23e4eeb1e68cb7da1a137d54",
227
+ "size": 3252
228
+ },
229
+ {
230
+ "path": "toolkit/skills-claude/api-doc/SKILL.md",
231
+ "sha256": "57176bb3d74e19ef5feb1a8d59d8c7c1714634f67e1d51bf4667d3f189093319",
232
+ "size": 2240
233
+ },
234
+ {
235
+ "path": "toolkit/skills-claude/arch/SKILL.md",
236
+ "sha256": "5ab03dc8a928c6528d1ccaad427a15c686427e8fd9114421da495d9223652337",
237
+ "size": 4108
238
+ },
239
+ {
240
+ "path": "toolkit/skills-claude/ba/SKILL.md",
241
+ "sha256": "1956fd69ff1a0adb54c8abbf06b37bd5c21b7f0ca597b6d8b94dfed0606cd2e4",
242
+ "size": 2551
243
+ },
244
+ {
245
+ "path": "toolkit/skills-claude/design-layout/SKILL.md",
246
+ "sha256": "9765f229108c5aff27457489707218570ad83dc362353a79c2f5a78607adf4de",
247
+ "size": 840
248
+ },
249
+ {
250
+ "path": "toolkit/skills-claude/dev/SKILL.md",
251
+ "sha256": "cea9f6512bc805d5b22a84a4ef8dbd229b4f7a3f073f9e125e933e6e79a206d5",
252
+ "size": 2505
253
+ },
254
+ {
255
+ "path": "toolkit/skills-claude/dev-backend/SKILL.md",
256
+ "sha256": "142a8fe088a4b0326ca79e00200cb5f562c53728b7adc83e6b749db6e29f1d0d",
257
+ "size": 841
258
+ },
259
+ {
260
+ "path": "toolkit/skills-claude/dev-frontend/SKILL.md",
261
+ "sha256": "1631bd51bc3d0106c18f4c00412f6279626bdce9f0e310822d5dcdff08063a88",
262
+ "size": 800
263
+ },
264
+ {
265
+ "path": "toolkit/skills-claude/orchestrator/SKILL.md",
266
+ "sha256": "c8e8303f1833e71cacdf20b1f398e476b44b3de14fbffad9a404c2a68fa713a3",
267
+ "size": 4046
268
+ },
269
+ {
270
+ "path": "toolkit/skills-claude/pm/SKILL.md",
271
+ "sha256": "b34621fe61957e573c616ad816d591a60a6c8d1333d0bfb71f39f45b93331cb0",
272
+ "size": 3043
273
+ },
274
+ {
275
+ "path": "toolkit/skills-claude/qa/SKILL.md",
276
+ "sha256": "eb0a540d28144855b5026e7b40ce965c4049a9b56f6e7ffd9732964006f63d1a",
277
+ "size": 2687
278
+ },
279
+ {
280
+ "path": "toolkit/skills-claude/screen-design-spec/SKILL.md",
281
+ "sha256": "5686da60872f1a3c6791e9a740897d4a564f40d53d54902a47fbc3165e68a1ec",
282
+ "size": 3261
283
+ },
284
+ {
285
+ "path": "toolkit/skills-claude/test-case-spec/SKILL.md",
286
+ "sha256": "efd43e2087961f4e30177144c42e06b6c9b3d73f9533dad34f9ce1284fcdf126",
287
+ "size": 2625
288
+ },
214
289
  {
215
290
  "path": "toolkit/templates/docs/api/API_DESIGN_CREATION_RULES.md",
216
291
  "sha256": "9adf1e46833411a861fb7426c37baac69689b9e3120a8ed1e4a3224de44a8dd2",
@@ -332,7 +407,7 @@
332
407
  "size": 3255
333
408
  }
334
409
  ],
335
- "sourceCommit": "bf9a10e9ccde3a1c4809836b2da20fc6e3ad07df",
336
- "version": "0.3.2",
337
- "fileCount": 66
410
+ "sourceCommit": "965d6ad1f80a42b8b49c4296ec7a96ffef2655e3",
411
+ "version": "0.3.4",
412
+ "fileCount": 81
338
413
  }
@@ -1,9 +1,11 @@
1
- c6eeae87c70925803869ae90d0aa033eb12852c174019f373f62382d25b3a7e3 toolkit/AGENTS.md
2
- cc717ae87a0dbcf5aef2204d45211fe59f9506f9d03314eb283eddb3a5997279 toolkit/install.ps1
3
- fdf45036d4c0079cdb03e65efb7b5a84ea130e67a4c82522bb93c2bb73aa6661 toolkit/runtimes/claude/CLAUDE_TEMPLATE.md
1
+ 868430474b46e4e8d27ed26b780a794936e84cf4f0278f2cc3d061f54877f498 toolkit/AGENTS.md
2
+ e717a2791fb597d7a21f57f4c4790dbc545e954f0af3ca0c47f160f78c8a2474 toolkit/install.ps1
3
+ 0f3e0bfe1b5165250f0da4da5790a9e6220023752713088a0076eb7f17fd6397 toolkit/runtimes/claude/CLAUDE_TEMPLATE.md
4
4
  4154c15c71f44d2f2caf07fb41722fa65d4f9ec7e78f798ee084effd12345c62 toolkit/runtimes/codex/CODEX_TEMPLATE.md
5
5
  5c1f5442fd3c26b8bf62db4b25e9f1c4207258c7fe52f12ed533968f77dfbf65 toolkit/scripts/init-feature.ps1
6
- 68a82e421d0309e47cdb79e949b1044c17375ad7fd52e2ab9ccdc9dd33f8cdd0 toolkit/scripts/install-codex-skills.ps1
6
+ 8c66c27262ad4abc3c42bbcbe3a97752a5f29956ac93397133e6780354911549 toolkit/scripts/install-claude-skills.ps1
7
+ ca64e0c2a0f13137bc6b780a57442de46a3e0551778bbcbadd4eb779c21cb203 toolkit/scripts/install-codex-skills.ps1
8
+ 809ffc1f96528ac1cd453214cd1c2d231ca0753f0d3c19b4a20f11835a64a152 toolkit/scripts/uninstall-claude-skills.ps1
7
9
  e0d462bd6dcdb17cc003d459063ff341bd2e4f60b245cda9b7e9b9e94b3cf01f toolkit/scripts/uninstall-codex-skills.ps1
8
10
  de2921da9ce504487d9c7d97bf862b65d0ba00b9f1593a4fbfadf41ac36adb49 toolkit/sdtk.config.json
9
11
  21b1b0212f85c76dc6a89ae5936b39c4c1df7837a333f7a3db337f3039babb7b toolkit/sdtk.config.profiles.example.json
@@ -40,6 +42,19 @@ ae0bc9b120c19a142f10cc79168a8f7d6bf8a37e48341fc16cbc74bbdc2e692c toolkit/skills
40
42
  7c21e74f5eee712c6b65665b4f10483ed008113186a92dc0a4673ce1fcd3ef5c toolkit/skills/sdtk-test-case-spec/references/TEST_CASE_CREATION_RULES.md
41
43
  4d1e813908114f2be68007fb7373973e2c6e0aebc5a6305b8b19443d5ae477d0 toolkit/skills/sdtk-test-case-spec/scripts/validate_test_case_spec.py
42
44
  72ca16e07c286910333243954610e116217ca2abb3a5e276cbe91e92eb826ad5 toolkit/skills/sdtk-test-case-spec/SKILL.md
45
+ 123873681ff65792a9a269b264155c65a5feb68b23e4eeb1e68cb7da1a137d54 toolkit/skills-claude/api-design-spec/SKILL.md
46
+ 57176bb3d74e19ef5feb1a8d59d8c7c1714634f67e1d51bf4667d3f189093319 toolkit/skills-claude/api-doc/SKILL.md
47
+ 5ab03dc8a928c6528d1ccaad427a15c686427e8fd9114421da495d9223652337 toolkit/skills-claude/arch/SKILL.md
48
+ 1956fd69ff1a0adb54c8abbf06b37bd5c21b7f0ca597b6d8b94dfed0606cd2e4 toolkit/skills-claude/ba/SKILL.md
49
+ 9765f229108c5aff27457489707218570ad83dc362353a79c2f5a78607adf4de toolkit/skills-claude/design-layout/SKILL.md
50
+ cea9f6512bc805d5b22a84a4ef8dbd229b4f7a3f073f9e125e933e6e79a206d5 toolkit/skills-claude/dev/SKILL.md
51
+ 142a8fe088a4b0326ca79e00200cb5f562c53728b7adc83e6b749db6e29f1d0d toolkit/skills-claude/dev-backend/SKILL.md
52
+ 1631bd51bc3d0106c18f4c00412f6279626bdce9f0e310822d5dcdff08063a88 toolkit/skills-claude/dev-frontend/SKILL.md
53
+ c8e8303f1833e71cacdf20b1f398e476b44b3de14fbffad9a404c2a68fa713a3 toolkit/skills-claude/orchestrator/SKILL.md
54
+ b34621fe61957e573c616ad816d591a60a6c8d1333d0bfb71f39f45b93331cb0 toolkit/skills-claude/pm/SKILL.md
55
+ eb0a540d28144855b5026e7b40ce965c4049a9b56f6e7ffd9732964006f63d1a toolkit/skills-claude/qa/SKILL.md
56
+ 5686da60872f1a3c6791e9a740897d4a564f40d53d54902a47fbc3165e68a1ec toolkit/skills-claude/screen-design-spec/SKILL.md
57
+ efd43e2087961f4e30177144c42e06b6c9b3d73f9533dad34f9ce1284fcdf126 toolkit/skills-claude/test-case-spec/SKILL.md
43
58
  9adf1e46833411a861fb7426c37baac69689b9e3120a8ed1e4a3224de44a8dd2 toolkit/templates/docs/api/API_DESIGN_CREATION_RULES.md
44
59
  d2aa0ee3a7c5351700b3bffb4ba66e8056ed955f55903c744c694624730038cb toolkit/templates/docs/api/API_DESIGN_DETAIL_TEMPLATE.md
45
60
  13f26a3307894b9bfb570d75f6db4ccb61104064d19661ec2a26a1b9984f4c97 toolkit/templates/docs/api/API_DESIGN_FLOWCHART_CREATION_RULES.md
@@ -59,9 +59,9 @@ Notes:
59
59
  ## 5) Feature Bootstrap
60
60
  Run from project root:
61
61
 
62
- `powershell -ExecutionPolicy Bypass -File ".\\toolkit\\scripts\\init-feature.ps1" -FeatureKey YOUR_FEATURE -FeatureName "Your Feature"`
63
-
64
- Or create artifacts manually from templates in `toolkit/templates/`.
62
+ ```
63
+ sdtk generate --feature-key YOUR_FEATURE --feature-name "Your Feature"
64
+ ```
65
65
 
66
66
  ## 6) ARCH Deliverables (Extended)
67
67
  In addition to `ARCH_DESIGN`, ARCH may generate:
@@ -90,16 +90,20 @@ In addition to `ARCH_DESIGN`, ARCH may generate:
90
90
  - `off`: skip unless explicitly requested.
91
91
 
92
92
  ## 7) Mandatory Rule References
93
- - API YAML docs:
94
- - `toolkit/templates/docs/api/YAML_CREATION_RULES.md`
95
- - API design detail + flow docs:
96
- - `toolkit/templates/docs/api/API_DESIGN_FLOWCHART_CREATION_RULES.md`
97
- - Compatibility notes kept for legacy references:
98
- - `toolkit/templates/docs/api/FLOWCHART_CREATION_RULES.md`
99
- - `toolkit/templates/docs/api/API_DESIGN_CREATION_RULES.md`
100
- - Screen flow-action specs:
101
- - `toolkit/templates/docs/specs/FLOW_ACTION_SPEC_CREATION_RULES.md`
102
- - QA test-case specs:
103
- - `toolkit/templates/docs/qa/TEST_CASE_CREATION_RULES.md`
104
- - Flow-action numbering policy:
105
- - Use one global numbering mode for the whole document (no per-screen reset).
93
+ Rule files are installed locally by the runtime. Skills resolve these at:
94
+ - Claude Code: `.claude/skills/references/`
95
+ - Codex: `$CODEX_HOME/skills/<skill>/references/`
96
+
97
+ Available rule files:
98
+ - `YAML_CREATION_RULES.md` — API YAML docs
99
+ - `API_DESIGN_FLOWCHART_CREATION_RULES.md` — API design detail + flow docs
100
+ - `FLOWCHART_CREATION_RULES.md` Flowchart (legacy compat)
101
+ - `API_DESIGN_CREATION_RULES.md` — API design (legacy compat)
102
+ - `FLOW_ACTION_SPEC_CREATION_RULES.md` — Screen flow-action specs
103
+ - `TEST_CASE_CREATION_RULES.md` — QA test-case specs
104
+ - `numbering-rules.md` — Flow-action numbering policy
105
+ - `figma-mcp.md` Figma MCP integration
106
+ - `excel-image-export.md` — Excel image export
107
+
108
+ Flow-action numbering policy:
109
+ - Use one global numbering mode for the whole document (no per-screen reset).
@@ -2,9 +2,12 @@ param(
2
2
  [string]$ProjectPath,
3
3
  [switch]$Force,
4
4
  [switch]$SkipSkills,
5
+ [switch]$SkipRuntimeAssets,
5
6
  [switch]$Quiet,
6
7
  [ValidateSet('codex', 'claude')]
7
- [string]$Runtime = 'codex'
8
+ [string]$Runtime = 'codex',
9
+ [ValidateSet('project', 'user', '')]
10
+ [string]$Scope = ''
8
11
  )
9
12
 
10
13
  $ErrorActionPreference = 'Stop'
@@ -80,6 +83,94 @@ function Install-RuntimeAdapter {
80
83
  throw "Unsupported runtime: $RuntimeName"
81
84
  }
82
85
 
86
+ function Install-ClaudeSkills {
87
+ param(
88
+ [Parameter(Mandatory = $true)][string]$ToolkitRoot,
89
+ [Parameter(Mandatory = $true)][string]$ProjectRoot,
90
+ [Parameter(Mandatory = $true)][bool]$Overwrite
91
+ )
92
+
93
+ $skillsSource = Join-Path $ToolkitRoot 'skills-claude'
94
+ $skillsDest = Join-Path $ProjectRoot '.claude/skills'
95
+
96
+ if (-not (Test-Path -LiteralPath $skillsSource)) {
97
+ throw "Claude skills source not found: $skillsSource"
98
+ }
99
+
100
+ $skillCount = 0
101
+ foreach ($skillDir in (Get-ChildItem -Path $skillsSource -Directory)) {
102
+ $srcFile = Join-Path $skillDir.FullName 'SKILL.md'
103
+ if (-not (Test-Path -LiteralPath $srcFile)) { continue }
104
+
105
+ $destFile = Join-Path $skillsDest "$($skillDir.Name)/SKILL.md"
106
+ Copy-File -SourcePath $srcFile -DestinationPath $destFile -Overwrite $Overwrite
107
+ $skillCount++
108
+ }
109
+
110
+ # Install reference files
111
+ $refDest = Join-Path $skillsDest 'references'
112
+ if (-not (Test-Path -LiteralPath $refDest)) {
113
+ New-Item -ItemType Directory -Force -Path $refDest | Out-Null
114
+ }
115
+
116
+ $refCount = 0
117
+ $missingRefs = @()
118
+
119
+ # 6 files from toolkit/templates/docs/
120
+ $templateRefs = @(
121
+ @{ Src = 'templates/docs/api/YAML_CREATION_RULES.md' },
122
+ @{ Src = 'templates/docs/api/API_DESIGN_FLOWCHART_CREATION_RULES.md' },
123
+ @{ Src = 'templates/docs/api/FLOWCHART_CREATION_RULES.md' },
124
+ @{ Src = 'templates/docs/api/API_DESIGN_CREATION_RULES.md' },
125
+ @{ Src = 'templates/docs/specs/FLOW_ACTION_SPEC_CREATION_RULES.md' },
126
+ @{ Src = 'templates/docs/qa/TEST_CASE_CREATION_RULES.md' }
127
+ )
128
+
129
+ foreach ($ref in $templateRefs) {
130
+ $srcPath = Join-Path $ToolkitRoot $ref.Src
131
+ $fileName = Split-Path -Leaf $srcPath
132
+ $destPath = Join-Path $refDest $fileName
133
+ if (Test-Path -LiteralPath $srcPath) {
134
+ Copy-File -SourcePath $srcPath -DestinationPath $destPath -Overwrite $Overwrite
135
+ $refCount++
136
+ } else {
137
+ $missingRefs += $srcPath
138
+ }
139
+ }
140
+
141
+ # 3 files from toolkit/skills/sdtk-screen-design-spec/references/
142
+ $screenRefs = @('numbering-rules.md', 'figma-mcp.md', 'excel-image-export.md')
143
+ foreach ($fileName in $screenRefs) {
144
+ $srcPath = Join-Path $ToolkitRoot "skills/sdtk-screen-design-spec/references/$fileName"
145
+ $destPath = Join-Path $refDest $fileName
146
+ if (Test-Path -LiteralPath $srcPath) {
147
+ Copy-File -SourcePath $srcPath -DestinationPath $destPath -Overwrite $Overwrite
148
+ $refCount++
149
+ } else {
150
+ $missingRefs += $srcPath
151
+ }
152
+ }
153
+
154
+ # Fail-fast: abort if any reference files are missing
155
+ if ($missingRefs.Count -gt 0) {
156
+ $list = ($missingRefs | ForEach-Object { " - $_" }) -join "`n"
157
+ throw "Claude install failed. Missing reference files:`n$list"
158
+ }
159
+
160
+ # Strict count assertions
161
+ $expectedSkills = 13
162
+ $expectedRefs = 9
163
+ if ($skillCount -ne $expectedSkills) {
164
+ throw "Claude install failed. Expected $expectedSkills skills but installed $skillCount."
165
+ }
166
+ if ($refCount -ne $expectedRefs) {
167
+ throw "Claude install failed. Expected $expectedRefs reference files but installed $refCount."
168
+ }
169
+
170
+ Write-Host " Skills installed: $skillCount"
171
+ Write-Host " Reference files : $refCount"
172
+ }
173
+
83
174
  $toolkitRoot = Resolve-Path $PSScriptRoot
84
175
  $canonicalRulesPath = Join-Path $toolkitRoot 'templates/docs/api/FLOWCHART_CREATION_RULES.md'
85
176
  $canonicalRulesHash = Get-FileSha256 -Path $canonicalRulesPath
@@ -93,6 +184,15 @@ if (-not $ProjectPath) {
93
184
  }
94
185
  $projectRoot = Resolve-Path -LiteralPath $ProjectPath
95
186
 
187
+ # Merge SkipRuntimeAssets and legacy SkipSkills
188
+ if ($SkipRuntimeAssets) { $SkipSkills = $true }
189
+
190
+ # Default scope: project for Claude, user for Codex
191
+ if (-not $Scope -or $Scope -eq '') {
192
+ if ($Runtime -eq 'claude') { $Scope = 'project' }
193
+ else { $Scope = 'user' }
194
+ }
195
+
96
196
  if (-not $Quiet) {
97
197
  Write-Host "SDTK toolkit : $toolkitRoot"
98
198
  Write-Host "Project root : $projectRoot"
@@ -129,15 +229,29 @@ if (($Runtime -eq 'codex') -and (-not $SkipSkills)) {
129
229
  }
130
230
 
131
231
  Write-Host ""
132
- Write-Host "Installing Codex skills globally..."
232
+ Write-Host "Installing Codex skills (scope: $Scope)..."
133
233
  if ($Force) {
134
- & $skillInstaller -Force | Out-Host
234
+ & $skillInstaller -Scope $Scope -Force | Out-Host
135
235
  } else {
136
- & $skillInstaller | Out-Host
236
+ & $skillInstaller -Scope $Scope | Out-Host
137
237
  }
138
238
  }
139
- elseif (($Runtime -eq 'claude') -and (-not $SkipSkills) -and (-not $Quiet)) {
140
- Write-Warning "Runtime 'claude' does not install Codex skills. Skipping skill installation."
239
+ elseif (($Runtime -eq 'claude') -and (-not $SkipSkills)) {
240
+ $skillInstaller = Join-Path $toolkitRoot 'scripts/install-claude-skills.ps1'
241
+ if (-not (Test-Path -LiteralPath $skillInstaller)) {
242
+ # Fallback to inline Install-ClaudeSkills for backward compatibility
243
+ Write-Host ""
244
+ Write-Host "Installing Claude Code skills..."
245
+ Install-ClaudeSkills -ToolkitRoot $toolkitRoot -ProjectRoot $projectRoot -Overwrite ([bool]$Force)
246
+ } else {
247
+ Write-Host ""
248
+ Write-Host "Installing Claude Code skills (scope: $Scope)..."
249
+ if ($Force) {
250
+ & $skillInstaller -Scope $Scope -ProjectPath $projectRoot.ToString() -Force | Out-Host
251
+ } else {
252
+ & $skillInstaller -Scope $Scope -ProjectPath $projectRoot.ToString() | Out-Host
253
+ }
254
+ }
141
255
  }
142
256
 
143
257
  if (-not $Quiet) {
@@ -148,7 +262,8 @@ if (-not $Quiet) {
148
262
  if ($Runtime -eq 'codex') {
149
263
  Write-Host "2) Restart Codex (to load runtime adapter and skills)"
150
264
  } else {
151
- Write-Host "2) Restart Claude Code (to load CLAUDE.md adapter)"
265
+ Write-Host "2) Restart Claude Code (to load CLAUDE.md + skills)"
266
+ Write-Host " Commands: /orchestrator /pm /ba /arch /dev /qa"
152
267
  }
153
268
  Write-Host '3) Generate feature docs:'
154
269
  Write-Host ' sdtk generate --feature-key YOUR_FEATURE --feature-name "Your Feature"'
@@ -1,7 +1,7 @@
1
1
  # CLAUDE.md
2
2
 
3
- Version: 1.0
4
- Last Updated: 2026-02-25
3
+ Version: 2.0
4
+ Last Updated: 2026-03-05
5
5
  Owner: SDTK Core Team
6
6
 
7
7
  This file defines runtime guidance for Claude Code sessions in projects using SDTK.
@@ -9,24 +9,46 @@ This file defines runtime guidance for Claude Code sessions in projects using SD
9
9
  ## 1) Rule Priority
10
10
  1. Explicit user request
11
11
  2. `AGENTS.md` (project root)
12
- 3. `toolkit/AGENTS.md`
12
+ 3. Installed skill content (`.claude/skills/*/SKILL.md`)
13
13
  4. This file (`CLAUDE.md`)
14
- 5. Other supporting docs
14
+ 5. `sdtk.config.json`
15
15
 
16
16
  ## 2) Runtime Model
17
17
  - Primary workflow: PM -> BA -> ARCH -> DEV -> QA
18
- - Role tags: `/pm`, `/ba`, `/arch`, `/dev`, `/qa`
18
+ - Entry point: `/orchestrator` (recommended) or `/pm`
19
+ - Role commands: `/pm`, `/ba`, `/arch`, `/dev`, `/qa`
20
+ - Sub-skill commands: `/api-doc`, `/api-design-spec`, `/screen-design-spec`, `/design-layout`, `/test-case-spec`, `/dev-backend`, `/dev-frontend`
19
21
  - Shared state files:
20
22
  - `SHARED_PLANNING.md`
21
23
  - `QUALITY_CHECKLIST.md`
22
24
 
23
25
  ## 3) Minimal Session Flow
24
- 1. Start with `/pm` to define feature scope.
26
+ 1. Start with `/orchestrator` or `/pm` to define feature scope.
25
27
  2. Move phase-by-phase without skipping gates.
26
28
  3. Keep traceability from requirements to design, implementation, and tests.
27
29
  4. Require code review completion before QA release decision.
28
30
 
29
- ## 4) References
30
- - `toolkit/SDTK_TOOLKIT.md`
31
- - `toolkit/AGENTS.md`
32
- - `sdtk.config.json`
31
+ ## 4) Installed Skills
32
+ Skills are installed at `.claude/skills/` and provide slash commands:
33
+
34
+ | Command | Purpose |
35
+ |---------|---------|
36
+ | `/orchestrator` | Full 6-phase SDLC orchestration |
37
+ | `/pm` | PM initiation + planning |
38
+ | `/ba` | Business analysis |
39
+ | `/arch` | Solution architecture |
40
+ | `/dev` | Development + code review |
41
+ | `/qa` | QA testing + release decision |
42
+ | `/api-doc` | OpenAPI YAML + flow diagrams |
43
+ | `/api-design-spec` | API design detail spec |
44
+ | `/screen-design-spec` | Screen flow-action spec |
45
+ | `/design-layout` | UI screen layout wireframes |
46
+ | `/test-case-spec` | QA test-case spec |
47
+ | `/dev-backend` | Backend code conventions |
48
+ | `/dev-frontend` | Frontend code conventions |
49
+
50
+ Rule reference files are installed at `.claude/skills/references/`.
51
+
52
+ ## 5) References
53
+ - `sdtk.config.json`
54
+ - `.claude/skills/references/` (rule files)
@@ -0,0 +1,129 @@
1
+ param(
2
+ [string]$ProjectPath,
3
+ [ValidateSet('project', 'user')]
4
+ [string]$Scope = 'project',
5
+ [switch]$Force
6
+ )
7
+
8
+ $ErrorActionPreference = 'Stop'
9
+ Set-StrictMode -Version Latest
10
+
11
+ function Copy-File {
12
+ param(
13
+ [Parameter(Mandatory = $true)][string]$SourcePath,
14
+ [Parameter(Mandatory = $true)][string]$DestinationPath,
15
+ [Parameter(Mandatory = $true)][bool]$Overwrite
16
+ )
17
+
18
+ if (-not (Test-Path -LiteralPath $SourcePath)) {
19
+ throw "Missing source: $SourcePath"
20
+ }
21
+
22
+ if (Test-Path -LiteralPath $DestinationPath) {
23
+ if (-not $Overwrite) {
24
+ Write-Warning "Already exists (skipping). Use -Force to overwrite: $DestinationPath"
25
+ return
26
+ }
27
+ }
28
+
29
+ $parent = Split-Path -Parent $DestinationPath
30
+ if ($parent -and -not (Test-Path -LiteralPath $parent)) {
31
+ New-Item -ItemType Directory -Force -Path $parent | Out-Null
32
+ }
33
+
34
+ Copy-Item -LiteralPath $SourcePath -Destination $DestinationPath -Force
35
+ }
36
+
37
+ $toolkitRoot = Resolve-Path (Join-Path $PSScriptRoot '..')
38
+
39
+ # Resolve destination based on scope
40
+ if ($Scope -eq 'user') {
41
+ $skillsDest = Join-Path $HOME '.claude/skills'
42
+ Write-Host "Scope: user (installing to $skillsDest)"
43
+ } else {
44
+ if (-not $ProjectPath) {
45
+ $ProjectPath = (Resolve-Path (Join-Path $toolkitRoot '..')).Path
46
+ }
47
+ $projectRoot = Resolve-Path -LiteralPath $ProjectPath
48
+ $skillsDest = Join-Path $projectRoot '.claude/skills'
49
+ Write-Host "Scope: project (installing to $skillsDest)"
50
+ }
51
+
52
+ $skillsSource = Join-Path $toolkitRoot 'skills-claude'
53
+ if (-not (Test-Path -LiteralPath $skillsSource)) {
54
+ throw "Claude skills source not found: $skillsSource"
55
+ }
56
+
57
+ $skillCount = 0
58
+ foreach ($skillDir in (Get-ChildItem -Path $skillsSource -Directory)) {
59
+ $srcFile = Join-Path $skillDir.FullName 'SKILL.md'
60
+ if (-not (Test-Path -LiteralPath $srcFile)) { continue }
61
+
62
+ $destFile = Join-Path $skillsDest "$($skillDir.Name)/SKILL.md"
63
+ Copy-File -SourcePath $srcFile -DestinationPath $destFile -Overwrite ([bool]$Force)
64
+ $skillCount++
65
+ }
66
+
67
+ # Install reference files
68
+ $refDest = Join-Path $skillsDest 'references'
69
+ if (-not (Test-Path -LiteralPath $refDest)) {
70
+ New-Item -ItemType Directory -Force -Path $refDest | Out-Null
71
+ }
72
+
73
+ $refCount = 0
74
+ $missingRefs = @()
75
+
76
+ # 6 files from toolkit/templates/docs/
77
+ $templateRefs = @(
78
+ @{ Src = 'templates/docs/api/YAML_CREATION_RULES.md' },
79
+ @{ Src = 'templates/docs/api/API_DESIGN_FLOWCHART_CREATION_RULES.md' },
80
+ @{ Src = 'templates/docs/api/FLOWCHART_CREATION_RULES.md' },
81
+ @{ Src = 'templates/docs/api/API_DESIGN_CREATION_RULES.md' },
82
+ @{ Src = 'templates/docs/specs/FLOW_ACTION_SPEC_CREATION_RULES.md' },
83
+ @{ Src = 'templates/docs/qa/TEST_CASE_CREATION_RULES.md' }
84
+ )
85
+
86
+ foreach ($ref in $templateRefs) {
87
+ $srcPath = Join-Path $toolkitRoot $ref.Src
88
+ $fileName = Split-Path -Leaf $srcPath
89
+ $destPath = Join-Path $refDest $fileName
90
+ if (Test-Path -LiteralPath $srcPath) {
91
+ Copy-File -SourcePath $srcPath -DestinationPath $destPath -Overwrite ([bool]$Force)
92
+ $refCount++
93
+ } else {
94
+ $missingRefs += $srcPath
95
+ }
96
+ }
97
+
98
+ # 3 files from toolkit/skills/sdtk-screen-design-spec/references/
99
+ $screenRefs = @('numbering-rules.md', 'figma-mcp.md', 'excel-image-export.md')
100
+ foreach ($fileName in $screenRefs) {
101
+ $srcPath = Join-Path $toolkitRoot "skills/sdtk-screen-design-spec/references/$fileName"
102
+ $destPath = Join-Path $refDest $fileName
103
+ if (Test-Path -LiteralPath $srcPath) {
104
+ Copy-File -SourcePath $srcPath -DestinationPath $destPath -Overwrite ([bool]$Force)
105
+ $refCount++
106
+ } else {
107
+ $missingRefs += $srcPath
108
+ }
109
+ }
110
+
111
+ # Fail-fast: abort if any reference files are missing
112
+ if ($missingRefs.Count -gt 0) {
113
+ $list = ($missingRefs | ForEach-Object { " - $_" }) -join "`n"
114
+ throw "Claude install failed. Missing reference files:`n$list"
115
+ }
116
+
117
+ # Strict count assertions
118
+ $expectedSkills = 13
119
+ $expectedRefs = 9
120
+ if ($skillCount -ne $expectedSkills) {
121
+ throw "Claude install failed. Expected $expectedSkills skills but installed $skillCount."
122
+ }
123
+ if ($refCount -ne $expectedRefs) {
124
+ throw "Claude install failed. Expected $expectedRefs reference files but installed $refCount."
125
+ }
126
+
127
+ Write-Host " Skills installed: $skillCount"
128
+ Write-Host " Reference files : $refCount"
129
+ Write-Host " Destination : $skillsDest"