sdtk-kit 0.3.2 → 0.3.3
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/README.md +5 -2
- package/assets/manifest/toolkit-bundle.manifest.json +75 -10
- package/assets/manifest/toolkit-bundle.sha256.txt +16 -3
- package/assets/toolkit/toolkit/AGENTS.md +20 -16
- package/assets/toolkit/toolkit/install.ps1 +94 -3
- package/assets/toolkit/toolkit/runtimes/claude/CLAUDE_TEMPLATE.md +32 -10
- package/assets/toolkit/toolkit/skills-claude/api-design-spec/SKILL.md +76 -0
- package/assets/toolkit/toolkit/skills-claude/api-doc/SKILL.md +46 -0
- package/assets/toolkit/toolkit/skills-claude/arch/SKILL.md +70 -0
- package/assets/toolkit/toolkit/skills-claude/ba/SKILL.md +49 -0
- package/assets/toolkit/toolkit/skills-claude/design-layout/SKILL.md +25 -0
- package/assets/toolkit/toolkit/skills-claude/dev/SKILL.md +45 -0
- package/assets/toolkit/toolkit/skills-claude/dev-backend/SKILL.md +20 -0
- package/assets/toolkit/toolkit/skills-claude/dev-frontend/SKILL.md +18 -0
- package/assets/toolkit/toolkit/skills-claude/orchestrator/SKILL.md +63 -0
- package/assets/toolkit/toolkit/skills-claude/pm/SKILL.md +52 -0
- package/assets/toolkit/toolkit/skills-claude/qa/SKILL.md +47 -0
- package/assets/toolkit/toolkit/skills-claude/screen-design-spec/SKILL.md +68 -0
- package/assets/toolkit/toolkit/skills-claude/test-case-spec/SKILL.md +63 -0
- package/package.json +2 -2
- package/src/commands/help.js +1 -1
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
|
|
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
|
|
@@ -41,6 +44,7 @@ Creates:
|
|
|
41
44
|
- `sdtk.config.json` -- project configuration
|
|
42
45
|
- `sdtk.config.profiles.example.json` -- stack profile examples
|
|
43
46
|
- `CODEX.md` or `CLAUDE.md` -- runtime adapter
|
|
47
|
+
- for `--runtime claude`, local `.claude/skills` and `.claude/skills/references` are installed unless `--skip-skills` is used
|
|
44
48
|
|
|
45
49
|
### `sdtk auth`
|
|
46
50
|
|
|
@@ -128,4 +132,3 @@ npm run verify:payload
|
|
|
128
132
|
# Smoke test npm pack
|
|
129
133
|
npm run pack:smoke
|
|
130
134
|
```
|
|
131
|
-
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"buildTimestamp": "2026-03-
|
|
2
|
+
"buildTimestamp": "2026-03-07T00:53:22Z",
|
|
3
3
|
"files": [
|
|
4
4
|
{
|
|
5
5
|
"path": "toolkit/AGENTS.md",
|
|
6
|
-
"sha256": "
|
|
7
|
-
"size":
|
|
6
|
+
"sha256": "868430474b46e4e8d27ed26b780a794936e84cf4f0278f2cc3d061f54877f498",
|
|
7
|
+
"size": 5113
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
"path": "toolkit/install.ps1",
|
|
11
|
-
"sha256": "
|
|
12
|
-
"size":
|
|
11
|
+
"sha256": "531da17e88a05b6946a5012f7b13a2871212df1fe0d052720f9511e02aba7e32",
|
|
12
|
+
"size": 8830
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "toolkit/runtimes/claude/CLAUDE_TEMPLATE.md",
|
|
16
|
-
"sha256": "
|
|
17
|
-
"size":
|
|
16
|
+
"sha256": "0f3e0bfe1b5165250f0da4da5790a9e6220023752713088a0076eb7f17fd6397",
|
|
17
|
+
"size": 1933
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
"path": "toolkit/runtimes/codex/CODEX_TEMPLATE.md",
|
|
@@ -211,6 +211,71 @@
|
|
|
211
211
|
"sha256": "72ca16e07c286910333243954610e116217ca2abb3a5e276cbe91e92eb826ad5",
|
|
212
212
|
"size": 2652
|
|
213
213
|
},
|
|
214
|
+
{
|
|
215
|
+
"path": "toolkit/skills-claude/api-design-spec/SKILL.md",
|
|
216
|
+
"sha256": "123873681ff65792a9a269b264155c65a5feb68b23e4eeb1e68cb7da1a137d54",
|
|
217
|
+
"size": 3252
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"path": "toolkit/skills-claude/api-doc/SKILL.md",
|
|
221
|
+
"sha256": "57176bb3d74e19ef5feb1a8d59d8c7c1714634f67e1d51bf4667d3f189093319",
|
|
222
|
+
"size": 2240
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"path": "toolkit/skills-claude/arch/SKILL.md",
|
|
226
|
+
"sha256": "5ab03dc8a928c6528d1ccaad427a15c686427e8fd9114421da495d9223652337",
|
|
227
|
+
"size": 4108
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"path": "toolkit/skills-claude/ba/SKILL.md",
|
|
231
|
+
"sha256": "1956fd69ff1a0adb54c8abbf06b37bd5c21b7f0ca597b6d8b94dfed0606cd2e4",
|
|
232
|
+
"size": 2551
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"path": "toolkit/skills-claude/design-layout/SKILL.md",
|
|
236
|
+
"sha256": "9765f229108c5aff27457489707218570ad83dc362353a79c2f5a78607adf4de",
|
|
237
|
+
"size": 840
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"path": "toolkit/skills-claude/dev/SKILL.md",
|
|
241
|
+
"sha256": "cea9f6512bc805d5b22a84a4ef8dbd229b4f7a3f073f9e125e933e6e79a206d5",
|
|
242
|
+
"size": 2505
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"path": "toolkit/skills-claude/dev-backend/SKILL.md",
|
|
246
|
+
"sha256": "142a8fe088a4b0326ca79e00200cb5f562c53728b7adc83e6b749db6e29f1d0d",
|
|
247
|
+
"size": 841
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"path": "toolkit/skills-claude/dev-frontend/SKILL.md",
|
|
251
|
+
"sha256": "1631bd51bc3d0106c18f4c00412f6279626bdce9f0e310822d5dcdff08063a88",
|
|
252
|
+
"size": 800
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"path": "toolkit/skills-claude/orchestrator/SKILL.md",
|
|
256
|
+
"sha256": "c8e8303f1833e71cacdf20b1f398e476b44b3de14fbffad9a404c2a68fa713a3",
|
|
257
|
+
"size": 4046
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"path": "toolkit/skills-claude/pm/SKILL.md",
|
|
261
|
+
"sha256": "b34621fe61957e573c616ad816d591a60a6c8d1333d0bfb71f39f45b93331cb0",
|
|
262
|
+
"size": 3043
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"path": "toolkit/skills-claude/qa/SKILL.md",
|
|
266
|
+
"sha256": "eb0a540d28144855b5026e7b40ce965c4049a9b56f6e7ffd9732964006f63d1a",
|
|
267
|
+
"size": 2687
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"path": "toolkit/skills-claude/screen-design-spec/SKILL.md",
|
|
271
|
+
"sha256": "5686da60872f1a3c6791e9a740897d4a564f40d53d54902a47fbc3165e68a1ec",
|
|
272
|
+
"size": 3261
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"path": "toolkit/skills-claude/test-case-spec/SKILL.md",
|
|
276
|
+
"sha256": "efd43e2087961f4e30177144c42e06b6c9b3d73f9533dad34f9ce1284fcdf126",
|
|
277
|
+
"size": 2625
|
|
278
|
+
},
|
|
214
279
|
{
|
|
215
280
|
"path": "toolkit/templates/docs/api/API_DESIGN_CREATION_RULES.md",
|
|
216
281
|
"sha256": "9adf1e46833411a861fb7426c37baac69689b9e3120a8ed1e4a3224de44a8dd2",
|
|
@@ -332,7 +397,7 @@
|
|
|
332
397
|
"size": 3255
|
|
333
398
|
}
|
|
334
399
|
],
|
|
335
|
-
"sourceCommit": "
|
|
336
|
-
"version": "0.3.
|
|
337
|
-
"fileCount":
|
|
400
|
+
"sourceCommit": "4437ad41659a38e9e80dcbf32cb03f9b6df64e0d",
|
|
401
|
+
"version": "0.3.3",
|
|
402
|
+
"fileCount": 79
|
|
338
403
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
868430474b46e4e8d27ed26b780a794936e84cf4f0278f2cc3d061f54877f498 toolkit/AGENTS.md
|
|
2
|
+
531da17e88a05b6946a5012f7b13a2871212df1fe0d052720f9511e02aba7e32 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
6
|
68a82e421d0309e47cdb79e949b1044c17375ad7fd52e2ab9ccdc9dd33f8cdd0 toolkit/scripts/install-codex-skills.ps1
|
|
@@ -40,6 +40,19 @@ ae0bc9b120c19a142f10cc79168a8f7d6bf8a37e48341fc16cbc74bbdc2e692c toolkit/skills
|
|
|
40
40
|
7c21e74f5eee712c6b65665b4f10483ed008113186a92dc0a4673ce1fcd3ef5c toolkit/skills/sdtk-test-case-spec/references/TEST_CASE_CREATION_RULES.md
|
|
41
41
|
4d1e813908114f2be68007fb7373973e2c6e0aebc5a6305b8b19443d5ae477d0 toolkit/skills/sdtk-test-case-spec/scripts/validate_test_case_spec.py
|
|
42
42
|
72ca16e07c286910333243954610e116217ca2abb3a5e276cbe91e92eb826ad5 toolkit/skills/sdtk-test-case-spec/SKILL.md
|
|
43
|
+
123873681ff65792a9a269b264155c65a5feb68b23e4eeb1e68cb7da1a137d54 toolkit/skills-claude/api-design-spec/SKILL.md
|
|
44
|
+
57176bb3d74e19ef5feb1a8d59d8c7c1714634f67e1d51bf4667d3f189093319 toolkit/skills-claude/api-doc/SKILL.md
|
|
45
|
+
5ab03dc8a928c6528d1ccaad427a15c686427e8fd9114421da495d9223652337 toolkit/skills-claude/arch/SKILL.md
|
|
46
|
+
1956fd69ff1a0adb54c8abbf06b37bd5c21b7f0ca597b6d8b94dfed0606cd2e4 toolkit/skills-claude/ba/SKILL.md
|
|
47
|
+
9765f229108c5aff27457489707218570ad83dc362353a79c2f5a78607adf4de toolkit/skills-claude/design-layout/SKILL.md
|
|
48
|
+
cea9f6512bc805d5b22a84a4ef8dbd229b4f7a3f073f9e125e933e6e79a206d5 toolkit/skills-claude/dev/SKILL.md
|
|
49
|
+
142a8fe088a4b0326ca79e00200cb5f562c53728b7adc83e6b749db6e29f1d0d toolkit/skills-claude/dev-backend/SKILL.md
|
|
50
|
+
1631bd51bc3d0106c18f4c00412f6279626bdce9f0e310822d5dcdff08063a88 toolkit/skills-claude/dev-frontend/SKILL.md
|
|
51
|
+
c8e8303f1833e71cacdf20b1f398e476b44b3de14fbffad9a404c2a68fa713a3 toolkit/skills-claude/orchestrator/SKILL.md
|
|
52
|
+
b34621fe61957e573c616ad816d591a60a6c8d1333d0bfb71f39f45b93331cb0 toolkit/skills-claude/pm/SKILL.md
|
|
53
|
+
eb0a540d28144855b5026e7b40ce965c4049a9b56f6e7ffd9732964006f63d1a toolkit/skills-claude/qa/SKILL.md
|
|
54
|
+
5686da60872f1a3c6791e9a740897d4a564f40d53d54902a47fbc3165e68a1ec toolkit/skills-claude/screen-design-spec/SKILL.md
|
|
55
|
+
efd43e2087961f4e30177144c42e06b6c9b3d73f9533dad34f9ce1284fcdf126 toolkit/skills-claude/test-case-spec/SKILL.md
|
|
43
56
|
9adf1e46833411a861fb7426c37baac69689b9e3120a8ed1e4a3224de44a8dd2 toolkit/templates/docs/api/API_DESIGN_CREATION_RULES.md
|
|
44
57
|
d2aa0ee3a7c5351700b3bffb4ba66e8056ed955f55903c744c694624730038cb toolkit/templates/docs/api/API_DESIGN_DETAIL_TEMPLATE.md
|
|
45
58
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
-
|
|
103
|
-
|
|
104
|
-
- Flow-action numbering policy
|
|
105
|
-
|
|
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).
|
|
@@ -80,6 +80,94 @@ function Install-RuntimeAdapter {
|
|
|
80
80
|
throw "Unsupported runtime: $RuntimeName"
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
function Install-ClaudeSkills {
|
|
84
|
+
param(
|
|
85
|
+
[Parameter(Mandatory = $true)][string]$ToolkitRoot,
|
|
86
|
+
[Parameter(Mandatory = $true)][string]$ProjectRoot,
|
|
87
|
+
[Parameter(Mandatory = $true)][bool]$Overwrite
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
$skillsSource = Join-Path $ToolkitRoot 'skills-claude'
|
|
91
|
+
$skillsDest = Join-Path $ProjectRoot '.claude/skills'
|
|
92
|
+
|
|
93
|
+
if (-not (Test-Path -LiteralPath $skillsSource)) {
|
|
94
|
+
throw "Claude skills source not found: $skillsSource"
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
$skillCount = 0
|
|
98
|
+
foreach ($skillDir in (Get-ChildItem -Path $skillsSource -Directory)) {
|
|
99
|
+
$srcFile = Join-Path $skillDir.FullName 'SKILL.md'
|
|
100
|
+
if (-not (Test-Path -LiteralPath $srcFile)) { continue }
|
|
101
|
+
|
|
102
|
+
$destFile = Join-Path $skillsDest "$($skillDir.Name)/SKILL.md"
|
|
103
|
+
Copy-File -SourcePath $srcFile -DestinationPath $destFile -Overwrite $Overwrite
|
|
104
|
+
$skillCount++
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
# Install reference files
|
|
108
|
+
$refDest = Join-Path $skillsDest 'references'
|
|
109
|
+
if (-not (Test-Path -LiteralPath $refDest)) {
|
|
110
|
+
New-Item -ItemType Directory -Force -Path $refDest | Out-Null
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
$refCount = 0
|
|
114
|
+
$missingRefs = @()
|
|
115
|
+
|
|
116
|
+
# 6 files from toolkit/templates/docs/
|
|
117
|
+
$templateRefs = @(
|
|
118
|
+
@{ Src = 'templates/docs/api/YAML_CREATION_RULES.md' },
|
|
119
|
+
@{ Src = 'templates/docs/api/API_DESIGN_FLOWCHART_CREATION_RULES.md' },
|
|
120
|
+
@{ Src = 'templates/docs/api/FLOWCHART_CREATION_RULES.md' },
|
|
121
|
+
@{ Src = 'templates/docs/api/API_DESIGN_CREATION_RULES.md' },
|
|
122
|
+
@{ Src = 'templates/docs/specs/FLOW_ACTION_SPEC_CREATION_RULES.md' },
|
|
123
|
+
@{ Src = 'templates/docs/qa/TEST_CASE_CREATION_RULES.md' }
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
foreach ($ref in $templateRefs) {
|
|
127
|
+
$srcPath = Join-Path $ToolkitRoot $ref.Src
|
|
128
|
+
$fileName = Split-Path -Leaf $srcPath
|
|
129
|
+
$destPath = Join-Path $refDest $fileName
|
|
130
|
+
if (Test-Path -LiteralPath $srcPath) {
|
|
131
|
+
Copy-File -SourcePath $srcPath -DestinationPath $destPath -Overwrite $Overwrite
|
|
132
|
+
$refCount++
|
|
133
|
+
} else {
|
|
134
|
+
$missingRefs += $srcPath
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
# 3 files from toolkit/skills/sdtk-screen-design-spec/references/
|
|
139
|
+
$screenRefs = @('numbering-rules.md', 'figma-mcp.md', 'excel-image-export.md')
|
|
140
|
+
foreach ($fileName in $screenRefs) {
|
|
141
|
+
$srcPath = Join-Path $ToolkitRoot "skills/sdtk-screen-design-spec/references/$fileName"
|
|
142
|
+
$destPath = Join-Path $refDest $fileName
|
|
143
|
+
if (Test-Path -LiteralPath $srcPath) {
|
|
144
|
+
Copy-File -SourcePath $srcPath -DestinationPath $destPath -Overwrite $Overwrite
|
|
145
|
+
$refCount++
|
|
146
|
+
} else {
|
|
147
|
+
$missingRefs += $srcPath
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
# Fail-fast: abort if any reference files are missing
|
|
152
|
+
if ($missingRefs.Count -gt 0) {
|
|
153
|
+
$list = ($missingRefs | ForEach-Object { " - $_" }) -join "`n"
|
|
154
|
+
throw "Claude install failed. Missing reference files:`n$list"
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
# Strict count assertions
|
|
158
|
+
$expectedSkills = 13
|
|
159
|
+
$expectedRefs = 9
|
|
160
|
+
if ($skillCount -ne $expectedSkills) {
|
|
161
|
+
throw "Claude install failed. Expected $expectedSkills skills but installed $skillCount."
|
|
162
|
+
}
|
|
163
|
+
if ($refCount -ne $expectedRefs) {
|
|
164
|
+
throw "Claude install failed. Expected $expectedRefs reference files but installed $refCount."
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
Write-Host " Skills installed: $skillCount"
|
|
168
|
+
Write-Host " Reference files : $refCount"
|
|
169
|
+
}
|
|
170
|
+
|
|
83
171
|
$toolkitRoot = Resolve-Path $PSScriptRoot
|
|
84
172
|
$canonicalRulesPath = Join-Path $toolkitRoot 'templates/docs/api/FLOWCHART_CREATION_RULES.md'
|
|
85
173
|
$canonicalRulesHash = Get-FileSha256 -Path $canonicalRulesPath
|
|
@@ -136,8 +224,10 @@ if (($Runtime -eq 'codex') -and (-not $SkipSkills)) {
|
|
|
136
224
|
& $skillInstaller | Out-Host
|
|
137
225
|
}
|
|
138
226
|
}
|
|
139
|
-
elseif (($Runtime -eq 'claude') -and (-not $SkipSkills)
|
|
140
|
-
Write-
|
|
227
|
+
elseif (($Runtime -eq 'claude') -and (-not $SkipSkills)) {
|
|
228
|
+
Write-Host ""
|
|
229
|
+
Write-Host "Installing Claude Code skills..."
|
|
230
|
+
Install-ClaudeSkills -ToolkitRoot $toolkitRoot -ProjectRoot $projectRoot -Overwrite ([bool]$Force)
|
|
141
231
|
}
|
|
142
232
|
|
|
143
233
|
if (-not $Quiet) {
|
|
@@ -148,7 +238,8 @@ if (-not $Quiet) {
|
|
|
148
238
|
if ($Runtime -eq 'codex') {
|
|
149
239
|
Write-Host "2) Restart Codex (to load runtime adapter and skills)"
|
|
150
240
|
} else {
|
|
151
|
-
Write-Host "2) Restart Claude Code (to load CLAUDE.md
|
|
241
|
+
Write-Host "2) Restart Claude Code (to load CLAUDE.md + skills)"
|
|
242
|
+
Write-Host " Commands: /orchestrator /pm /ba /arch /dev /qa"
|
|
152
243
|
}
|
|
153
244
|
Write-Host '3) Generate feature docs:'
|
|
154
245
|
Write-Host ' sdtk generate --feature-key YOUR_FEATURE --feature-name "Your Feature"'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# CLAUDE.md
|
|
2
2
|
|
|
3
|
-
Version:
|
|
4
|
-
Last Updated: 2026-
|
|
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.
|
|
12
|
+
3. Installed skill content (`.claude/skills/*/SKILL.md`)
|
|
13
13
|
4. This file (`CLAUDE.md`)
|
|
14
|
-
5.
|
|
14
|
+
5. `sdtk.config.json`
|
|
15
15
|
|
|
16
16
|
## 2) Runtime Model
|
|
17
17
|
- Primary workflow: PM -> BA -> ARCH -> DEV -> QA
|
|
18
|
-
-
|
|
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)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-design-spec
|
|
3
|
+
description: Generate detailed API design markdown from OpenAPI YAML and API flow list using Excel-style structure rules. Use when you need field-level request/response tables + per-endpoint process flow images for implementation/review handoff.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Required Inputs (read before proceeding)
|
|
7
|
+
Read the following artifacts for the current feature:
|
|
8
|
+
1. `docs/api/[FeaturePascal]_API.yaml` — API contract
|
|
9
|
+
2. `docs/api/[feature_snake]_api_flow_list.txt` — flow list
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
$ARGUMENTS
|
|
13
|
+
|
|
14
|
+
# SDTK API Design Detail Spec
|
|
15
|
+
|
|
16
|
+
## Outputs
|
|
17
|
+
- `docs/api/[FEATURE_KEY]_API_DESIGN_DETAIL.md`
|
|
18
|
+
- Supporting generated assets:
|
|
19
|
+
- `docs/api/flows/*.puml`
|
|
20
|
+
- `docs/api/images/*.svg`
|
|
21
|
+
|
|
22
|
+
## Required Inputs
|
|
23
|
+
- Feature key (`FEATURE_KEY`)
|
|
24
|
+
- API contract YAML:
|
|
25
|
+
- Preferred: `docs/api/[FeaturePascal]_API.yaml`
|
|
26
|
+
- Fallback: a specified YAML file path
|
|
27
|
+
- API flow list:
|
|
28
|
+
- Preferred: `docs/api/[feature_snake]_api_flow_list.txt`
|
|
29
|
+
- Fallback: a specified flow list path
|
|
30
|
+
|
|
31
|
+
## Core Rules
|
|
32
|
+
- Apply `.claude/skills/references/API_DESIGN_FLOWCHART_CREATION_RULES.md` first.
|
|
33
|
+
- Keep endpoint contracts consistent with source YAML.
|
|
34
|
+
- Keep process flow source synchronized with flow list (`*_api_flow_list.txt`).
|
|
35
|
+
- Keep one visible flowchart per API section (embed image), avoid duplicate preview rendering.
|
|
36
|
+
- Keep `Process Flow` sections implementation-readable:
|
|
37
|
+
- include YAML-derived flow summary / notes / login bullets
|
|
38
|
+
- keep error sections aligned with actual flow exits, not `None`
|
|
39
|
+
|
|
40
|
+
## Generation Procedure
|
|
41
|
+
1. Resolve input files (`yaml`, `flow_list`, `output`).
|
|
42
|
+
2. Parse YAML endpoints (method, path, request schema, success/error schema).
|
|
43
|
+
3. Parse flow blocks from flow list (`@startuml ... @enduml`) and map by `METHOD + path`.
|
|
44
|
+
4. Generate detailed markdown sections per API:
|
|
45
|
+
- Flow summary / notes / login bullets from YAML `description`
|
|
46
|
+
- Process flow source block (`text` fenced block)
|
|
47
|
+
- Embedded flowchart image
|
|
48
|
+
- Path parameter table
|
|
49
|
+
- Request table (hierarchy levels + type + format + required)
|
|
50
|
+
- Success response table
|
|
51
|
+
- Error response table (explicit schema if defined, otherwise shared envelope + inferred business statuses from flow)
|
|
52
|
+
5. Generate/update `.puml` per API under `docs/api/flows`.
|
|
53
|
+
6. Render `.svg` images under `docs/api/images`.
|
|
54
|
+
7. Validate:
|
|
55
|
+
- every API section has one embedded image
|
|
56
|
+
- every embed path exists
|
|
57
|
+
- no render error image output
|
|
58
|
+
- markdown tables keep `No` sequential numbering
|
|
59
|
+
|
|
60
|
+
## Script
|
|
61
|
+
- `scripts/generate_api_design_detail.py`
|
|
62
|
+
|
|
63
|
+
### Typical command
|
|
64
|
+
```bash
|
|
65
|
+
python scripts/generate_api_design_detail.py \
|
|
66
|
+
--feature-key SCHEDULE_WHITEBOARD \
|
|
67
|
+
--yaml "docs/api/ScheduleWhiteboard_API.yaml" \
|
|
68
|
+
--flow-list "docs/api/schedule_whiteboard_api_flow_list.txt" \
|
|
69
|
+
--output "docs/api/SCHEDULE_WHITEBOARD_API_DESIGN_DETAIL.md"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Orchestrator Integration (Hybrid)
|
|
73
|
+
- `apiDesignDetailMode` in `sdtk.config.json` controls orchestration behavior:
|
|
74
|
+
- `auto` (default): generate API design detail when ARCH has API scope and YAML/flow sources are available.
|
|
75
|
+
- `on`: always generate API design detail for API scope (fail if required sources are missing).
|
|
76
|
+
- `off`: skip unless user explicitly requests.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-doc
|
|
3
|
+
description: Generate OpenAPI 3.x YAML and PlantUML flow diagrams for a feature following this toolkit's API conventions. Use when you need to create/update docs/api/* (API spec + flow list) from BA_SPEC/ARCH_DESIGN.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Required Inputs (read before proceeding)
|
|
7
|
+
Read the following artifacts for the current feature:
|
|
8
|
+
1. `docs/specs/BA_SPEC_*.md` — business rules, use cases
|
|
9
|
+
2. `docs/architecture/ARCH_DESIGN_*.md` — system components, data model
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
$ARGUMENTS
|
|
13
|
+
|
|
14
|
+
# SDTK API Documentation
|
|
15
|
+
|
|
16
|
+
## Outputs
|
|
17
|
+
- `docs/api/[FeaturePascal]_API.yaml`
|
|
18
|
+
- `docs/api/[FEATURE_KEY]_ENDPOINTS.md`
|
|
19
|
+
- `docs/api/[feature_snake]_api_flow_list.txt`
|
|
20
|
+
- Optional downstream (via `/api-design-spec`):
|
|
21
|
+
- `docs/api/[FEATURE_KEY]_API_DESIGN_DETAIL.md`
|
|
22
|
+
|
|
23
|
+
## Inputs (minimum)
|
|
24
|
+
- Feature name/key
|
|
25
|
+
- Entities + key fields
|
|
26
|
+
- Use cases (UC-xx) + business rules (BR-xx)
|
|
27
|
+
- Auth/permission model
|
|
28
|
+
|
|
29
|
+
## Process
|
|
30
|
+
1. Read `docs/specs/BA_SPEC_[FEATURE_KEY].md` and/or `docs/architecture/ARCH_DESIGN_[FEATURE_KEY].md`.
|
|
31
|
+
2. Read and apply split API rule sources:
|
|
32
|
+
- `.claude/skills/references/YAML_CREATION_RULES.md` for YAML contract rules
|
|
33
|
+
- `.claude/skills/references/API_DESIGN_FLOWCHART_CREATION_RULES.md` for flow list / flowchart rules
|
|
34
|
+
3. Define endpoints mapped to UC-xx; keep path naming consistent across CRUD/search/list/mst patterns.
|
|
35
|
+
4. For each endpoint, document request/response schema and error cases.
|
|
36
|
+
5. Generate/update endpoint markdown (`[FEATURE_KEY]_ENDPOINTS.md`) with summary tables, API type grouping, and screen-logic mapping.
|
|
37
|
+
6. Generate PlantUML flows including: auth, permission check, validation, main logic, error exits.
|
|
38
|
+
7. Ensure traceability notes reference UC/BR where relevant.
|
|
39
|
+
8. Validate English output hygiene when generating English artifacts:
|
|
40
|
+
- no mixed-language leftovers in narrative text
|
|
41
|
+
- no mojibake/encoding corruption markers
|
|
42
|
+
- terminology consistency across endpoint detail, summary tables, and flow labels
|
|
43
|
+
9. If orchestrator mode requires API design detail generation (`apiDesignDetailMode=auto/on`), handoff to `/api-design-spec` after YAML + flow list are updated.
|
|
44
|
+
|
|
45
|
+
## Reference
|
|
46
|
+
- Deeper analysis: `docs/specs/API_DOC_SKILL_ANALYSIS.md` (if present).
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arch
|
|
3
|
+
description: Solution Architect workflow for SDTK. Use when you need to convert BA_SPEC + PM backlog into technical architecture, API contracts (OpenAPI), and UI layout docs; update SHARED_PLANNING.md / QUALITY_CHECKLIST.md and handoff to DEV.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## SDTK Pipeline Rules (always apply)
|
|
7
|
+
1. Pipeline: PM Initiation → BA Analysis → PM Planning → Architecture Design → Development + Review → QA Validation
|
|
8
|
+
2. After completing phase work: update SHARED_PLANNING.md + QUALITY_CHECKLIST.md
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM (PM asks user if needed)
|
|
10
|
+
4. Traceability: REQ → BR/UC/AC → design → backlog → code/tests → QA
|
|
11
|
+
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
+
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
13
|
+
|
|
14
|
+
## Prerequisites (verify before proceeding)
|
|
15
|
+
Read QUALITY_CHECKLIST.md and verify:
|
|
16
|
+
- Phase 2 BA Analysis gate must show all items [x] Done.
|
|
17
|
+
- Phase 2+ PM Planning gate must show all items [x] Done.
|
|
18
|
+
|
|
19
|
+
If prerequisites NOT met: report which gate is missing, suggest user run the prerequisite phase first.
|
|
20
|
+
|
|
21
|
+
## Current Context
|
|
22
|
+
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
23
|
+
- Pipeline: !`node -e "try{process.stdout.write(require('fs').readFileSync('SHARED_PLANNING.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
24
|
+
- Gates: !`node -e "try{process.stdout.write(require('fs').readFileSync('QUALITY_CHECKLIST.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
25
|
+
- State: !`node -e "try{process.stdout.write(require('fs').readFileSync('.sdtk/orchestration-state.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
26
|
+
|
|
27
|
+
## Input
|
|
28
|
+
$ARGUMENTS
|
|
29
|
+
|
|
30
|
+
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
31
|
+
|
|
32
|
+
# SDTK ARCH (Solution Architecture)
|
|
33
|
+
|
|
34
|
+
## Outputs
|
|
35
|
+
- `docs/architecture/ARCH_DESIGN_[FEATURE_KEY].md`
|
|
36
|
+
- If applicable:
|
|
37
|
+
- `docs/api/[FeaturePascal]_API.yaml`
|
|
38
|
+
- `docs/api/[FEATURE_KEY]_ENDPOINTS.md`
|
|
39
|
+
- `docs/api/[FEATURE_KEY]_API_DESIGN_DETAIL.md`
|
|
40
|
+
- `docs/api/[feature_snake]_api_flow_list.txt`
|
|
41
|
+
- `docs/database/DATABASE_SPEC_[FEATURE_KEY].md`
|
|
42
|
+
- `docs/design/DESIGN_LAYOUT_[FEATURE_KEY].md`
|
|
43
|
+
- `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`
|
|
44
|
+
|
|
45
|
+
## Process
|
|
46
|
+
1. Read BA spec + PRD/backlog.
|
|
47
|
+
2. Read `sdtk.config.json` for project stack assumptions (backend/frontend/db/auth).
|
|
48
|
+
3. If architecture output includes API contracts/flows, read and apply the split API rule sources before defining endpoints/flows:
|
|
49
|
+
- `.claude/skills/references/YAML_CREATION_RULES.md`
|
|
50
|
+
- `.claude/skills/references/API_DESIGN_FLOWCHART_CREATION_RULES.md`
|
|
51
|
+
4. If architecture output includes screen flow-action specs, read and apply rules from `.claude/skills/references/FLOW_ACTION_SPEC_CREATION_RULES.md` (global numbering policy).
|
|
52
|
+
5. If API detail spec is required, use skill `/api-design-spec` to build/update `docs/api/[FEATURE_KEY]_API_DESIGN_DETAIL.md` using YAML + flow list.
|
|
53
|
+
6. For complex UI flow-action specs, use skill `/screen-design-spec` to build/update `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`.
|
|
54
|
+
7. Define:
|
|
55
|
+
- System components + data model
|
|
56
|
+
- API endpoints and flows (if backend changes)
|
|
57
|
+
- Screen layouts (if UI changes)
|
|
58
|
+
- Security/authz decisions
|
|
59
|
+
8. Create/update:
|
|
60
|
+
- OpenAPI YAML + API endpoint markdown
|
|
61
|
+
- API flow list
|
|
62
|
+
- API design detail spec (when `orchestration.apiDesignDetailMode` is `auto/on`)
|
|
63
|
+
- Database spec (if DB impact exists)
|
|
64
|
+
- Flow-action spec and design layout (if UI impact exists)
|
|
65
|
+
9. Ensure mapping UC/BR -> DB/API/screens and run output hygiene checks:
|
|
66
|
+
- EN artifacts use English narrative text (except clearly marked original-language appendix blocks).
|
|
67
|
+
- No mojibake/encoding corruption in markdown/yaml/txt outputs.
|
|
68
|
+
10. If anything is unclear: record OQ-xx in ARCH_DESIGN "Open Questions" and escalate to PM (suggest user run `/pm` for a decision if still missing info).
|
|
69
|
+
11. Update shared state + Phase 3 checklist.
|
|
70
|
+
12. Handoff: suggest user run `/dev` to implement the design.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ba
|
|
3
|
+
description: Business Analyst workflow for SDTK. Use when you need to turn PM initiation into BA_SPEC with glossary, business rules (BR-xx), use cases (UC-xx), acceptance criteria (AC-xx), NFRs, risks, open questions, and a traceability matrix.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## SDTK Pipeline Rules (always apply)
|
|
7
|
+
1. Pipeline: PM Initiation → BA Analysis → PM Planning → Architecture Design → Development + Review → QA Validation
|
|
8
|
+
2. After completing phase work: update SHARED_PLANNING.md + QUALITY_CHECKLIST.md
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM (PM asks user if needed)
|
|
10
|
+
4. Traceability: REQ → BR/UC/AC → design → backlog → code/tests → QA
|
|
11
|
+
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
+
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
13
|
+
|
|
14
|
+
## Prerequisites (verify before proceeding)
|
|
15
|
+
Read QUALITY_CHECKLIST.md and verify:
|
|
16
|
+
- Phase 1 PM Init gate must show all items [x] Done.
|
|
17
|
+
|
|
18
|
+
If prerequisites NOT met: report which gate is missing, suggest user run `/pm` first.
|
|
19
|
+
|
|
20
|
+
## Current Context
|
|
21
|
+
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
22
|
+
- Pipeline: !`node -e "try{process.stdout.write(require('fs').readFileSync('SHARED_PLANNING.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
23
|
+
- Gates: !`node -e "try{process.stdout.write(require('fs').readFileSync('QUALITY_CHECKLIST.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
24
|
+
- State: !`node -e "try{process.stdout.write(require('fs').readFileSync('.sdtk/orchestration-state.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
25
|
+
|
|
26
|
+
## Input
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
|
|
29
|
+
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
30
|
+
|
|
31
|
+
# SDTK BA (Business Analysis)
|
|
32
|
+
|
|
33
|
+
## Output
|
|
34
|
+
- `docs/specs/BA_SPEC_[FEATURE_KEY].md`
|
|
35
|
+
|
|
36
|
+
## Process
|
|
37
|
+
1. Read `docs/product/PROJECT_INITIATION_[FEATURE_KEY].md` (and any source requirements).
|
|
38
|
+
2. Produce:
|
|
39
|
+
- Glossary
|
|
40
|
+
- BR-xx (numbered)
|
|
41
|
+
- UC-xx (cover 100% REQ-xx)
|
|
42
|
+
- AC-xx (mapped to UC/BR)
|
|
43
|
+
- NFR-xx
|
|
44
|
+
- Risks + Open Questions
|
|
45
|
+
- Traceability summary table (REQ → UC/BR/AC)
|
|
46
|
+
3. If source requirements are VI/JP: preserve the original text and add a literal EN translation in appendices.
|
|
47
|
+
4. If anything is unclear: record OQ-xx in BA_SPEC "Open Questions" and escalate to PM (suggest user run `/pm` for a decision if still missing info).
|
|
48
|
+
5. Update `SHARED_PLANNING.md` + `QUALITY_CHECKLIST.md` Phase 2.
|
|
49
|
+
6. Handoff: suggest user run `/pm` to proceed with PRD planning.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-layout
|
|
3
|
+
description: Generate UI screen layout documentation for a feature, including PlantUML @startsalt wireframes and item tables. Use when a feature includes frontend/admin screens and you need docs/design/* deliverables.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Required Inputs (read before proceeding)
|
|
7
|
+
Read the following artifacts for the current feature:
|
|
8
|
+
1. `docs/specs/BA_SPEC_*.md` — screens + fields
|
|
9
|
+
2. `docs/api/[FEATURE_KEY]_ENDPOINTS.md` — API list
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
$ARGUMENTS
|
|
13
|
+
|
|
14
|
+
# SDTK Screen Layout Design
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
- `docs/design/DESIGN_LAYOUT_[FEATURE_KEY].md`
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
1. Read BA spec (screens + fields) and API list.
|
|
21
|
+
2. For each screen, include:
|
|
22
|
+
- PlantUML `@startsalt` wireframe first
|
|
23
|
+
- API list table
|
|
24
|
+
- Item table with numbering that matches the wireframe
|
|
25
|
+
3. Keep screen IDs consistent (A-*, B-*, C-*).
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dev
|
|
3
|
+
description: Developer workflow for SDTK. Use when you need to implement a feature from ARCH_DESIGN + BACKLOG: create an implementation plan, write code + tests, complete mandatory code review gate, and prepare a QA handoff.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## SDTK Pipeline Rules (always apply)
|
|
7
|
+
1. Pipeline: PM Initiation → BA Analysis → PM Planning → Architecture Design → Development + Review → QA Validation
|
|
8
|
+
2. After completing phase work: update SHARED_PLANNING.md + QUALITY_CHECKLIST.md
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM (PM asks user if needed)
|
|
10
|
+
4. Traceability: REQ → BR/UC/AC → design → backlog → code/tests → QA
|
|
11
|
+
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
+
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
13
|
+
|
|
14
|
+
## Prerequisites (verify before proceeding)
|
|
15
|
+
Read QUALITY_CHECKLIST.md and verify:
|
|
16
|
+
- Phase 3 ARCH Design gate must show all items [x] Done.
|
|
17
|
+
|
|
18
|
+
If prerequisites NOT met: report which gate is missing, suggest user run `/arch` first.
|
|
19
|
+
|
|
20
|
+
## Current Context
|
|
21
|
+
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
22
|
+
- Pipeline: !`node -e "try{process.stdout.write(require('fs').readFileSync('SHARED_PLANNING.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
23
|
+
- Gates: !`node -e "try{process.stdout.write(require('fs').readFileSync('QUALITY_CHECKLIST.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
24
|
+
- State: !`node -e "try{process.stdout.write(require('fs').readFileSync('.sdtk/orchestration-state.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
25
|
+
|
|
26
|
+
## Input
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
|
|
29
|
+
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
30
|
+
|
|
31
|
+
# SDTK DEV (Implementation + Code Review)
|
|
32
|
+
|
|
33
|
+
## Outputs
|
|
34
|
+
- `docs/dev/FEATURE_IMPL_PLAN_[FEATURE_KEY].md`
|
|
35
|
+
- Code + tests (follow repo conventions)
|
|
36
|
+
|
|
37
|
+
## Process
|
|
38
|
+
1. Read `ARCH_DESIGN_*` + backlog.
|
|
39
|
+
2. Read `sdtk.config.json` for project stack + test/lint commands.
|
|
40
|
+
3. Write `FEATURE_IMPL_PLAN_*` (scope, file list, test plan).
|
|
41
|
+
4. If anything is unclear: record OQ-xx in FEATURE_IMPL_PLAN "Open Questions" and escalate to PM (suggest user run `/pm` for a decision if still missing info).
|
|
42
|
+
5. Implement incrementally with tests.
|
|
43
|
+
6. Complete mandatory code review gate (self + peer checklist; AI peer review allowed).
|
|
44
|
+
7. Update `SHARED_PLANNING.md` + `QUALITY_CHECKLIST.md` Phase 4.
|
|
45
|
+
8. Handoff: suggest user run `/qa` to test (only after code review PASS).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dev-backend
|
|
3
|
+
description: Generate/modify Python Django REST Framework backend code following the toolkit conventions (models/views/services/serializers/validation/urls/enums). Use when implementing backend features in that project style.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Input
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
# SDTK Backend (Toolkit conventions)
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
1. Check whether this repository already has a backend reference module and follow its patterns.
|
|
13
|
+
2. Follow module structure: `src/backend/<module>/{models,view,service,serializers,validation,enum,urls.py}`.
|
|
14
|
+
3. Apply conventions:
|
|
15
|
+
- Soft delete via `del_flg`
|
|
16
|
+
- Audit fields (creator/updater/del timestamps)
|
|
17
|
+
- Permission checks before operations
|
|
18
|
+
- `transaction.atomic()` for writes
|
|
19
|
+
- Logging decorator on public endpoints
|
|
20
|
+
4. Add tests for critical business rules and state transitions.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dev-frontend
|
|
3
|
+
description: Generate/modify React frontend code following the toolkit conventions (list/register/edit/detail pages, components, services, React Query hooks, permission checks). Use when implementing frontend features in that project style.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Input
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
# SDTK Frontend (Toolkit conventions)
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
1. Check whether this repository already has a frontend reference module and follow its patterns.
|
|
13
|
+
2. Follow structure:
|
|
14
|
+
- `src/frontend/features/{feature}/...`
|
|
15
|
+
- `src/frontend/services/{feature}/{feature}Service.js`
|
|
16
|
+
- `src/frontend/services/apiHook/{feature}.js`
|
|
17
|
+
3. Implement screens based on `docs/design/DESIGN_LAYOUT_[FEATURE_KEY].md`.
|
|
18
|
+
4. Preserve patterns: React Query hooks, loading states, permission checks, consistent labels.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orchestrator
|
|
3
|
+
description: Orchestrate a full 6-phase SDLC multi-agent workflow (PM/BA/ARCH/DEV/QA) using this repo's conventions: SHARED_PLANNING.md + QUALITY_CHECKLIST.md + docs/* artifacts + phase handoffs.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## SDTK Pipeline Rules (always apply)
|
|
7
|
+
1. Pipeline: PM Initiation → BA Analysis → PM Planning → Architecture Design → Development + Review → QA Validation
|
|
8
|
+
2. After completing phase work: update SHARED_PLANNING.md + QUALITY_CHECKLIST.md
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM (PM asks user if needed)
|
|
10
|
+
4. Traceability: REQ → BR/UC/AC → design → backlog → code/tests → QA
|
|
11
|
+
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
+
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
13
|
+
|
|
14
|
+
## Current Context
|
|
15
|
+
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
16
|
+
- Pipeline: !`node -e "try{process.stdout.write(require('fs').readFileSync('SHARED_PLANNING.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
17
|
+
- Gates: !`node -e "try{process.stdout.write(require('fs').readFileSync('QUALITY_CHECKLIST.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
18
|
+
- State: !`node -e "try{process.stdout.write(require('fs').readFileSync('.sdtk/orchestration-state.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
19
|
+
|
|
20
|
+
## Input
|
|
21
|
+
$ARGUMENTS
|
|
22
|
+
|
|
23
|
+
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
24
|
+
|
|
25
|
+
# SDTK Orchestrator (multi-agent workflow)
|
|
26
|
+
|
|
27
|
+
## Initialize
|
|
28
|
+
- Ensure feature key + feature name exist (ask if missing).
|
|
29
|
+
- Read `sdtk.config.json` (project stack + commands) if present.
|
|
30
|
+
- Run `sdtk generate --feature-key <KEY> --feature-name "<NAME>"` to create skeleton artifacts.
|
|
31
|
+
|
|
32
|
+
## Execute pipeline (one phase per turn)
|
|
33
|
+
- Default role: PM (entry point) if user did not specify.
|
|
34
|
+
- Respect role tags: `/pm`, `/ba`, `/arch`, `/dev`, `/qa`.
|
|
35
|
+
- For each phase:
|
|
36
|
+
- Create/update the phase artifact(s) in `docs/`.
|
|
37
|
+
- If phase is ARCH and API contract/flow is in scope, invoke `/api-doc` to produce/update `docs/api/[FeaturePascal]_API.yaml`, `docs/api/[FEATURE_KEY]_ENDPOINTS.md`, and `docs/api/[feature_snake]_api_flow_list.txt`.
|
|
38
|
+
- If phase is ARCH and API detail spec is in scope, invoke `/api-design-spec` to produce/update `docs/api/[FEATURE_KEY]_API_DESIGN_DETAIL.md`.
|
|
39
|
+
- If phase is ARCH and UI flow behavior is in scope, invoke `/screen-design-spec` to produce/update `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`.
|
|
40
|
+
- If phase is QA and test-case specification is in scope, invoke `/test-case-spec` to produce/update `docs/qa/[FEATURE_KEY]_TEST_CASE.md`.
|
|
41
|
+
- Update `SHARED_PLANNING.md` (phase row + activity log).
|
|
42
|
+
- Update `QUALITY_CHECKLIST.md` (mark items PASS/Pending).
|
|
43
|
+
- Produce one clear handoff message to the next role.
|
|
44
|
+
|
|
45
|
+
## API design detail mode (Hybrid)
|
|
46
|
+
- Read `sdtk.config.json` key: `orchestration.apiDesignDetailMode`.
|
|
47
|
+
- Supported values:
|
|
48
|
+
- `auto` (default): run `/api-design-spec` when ARCH has API scope and YAML + flow list are available.
|
|
49
|
+
- `on`: always run `/api-design-spec` for API scope (fail fast if required inputs are missing).
|
|
50
|
+
- `off`: skip API design detail generation unless user explicitly requests it.
|
|
51
|
+
|
|
52
|
+
## Test-case spec mode (Hybrid)
|
|
53
|
+
- Read `sdtk.config.json` key: `orchestration.testCaseSpecMode`.
|
|
54
|
+
- Supported values:
|
|
55
|
+
- `auto` (default): run `/test-case-spec` when QA phase requires reusable test-case artifact.
|
|
56
|
+
- `on`: always run `/test-case-spec` for QA phase (fail fast if required inputs are missing).
|
|
57
|
+
- `off`: skip test-case spec generation unless user explicitly requests it.
|
|
58
|
+
|
|
59
|
+
## Guardrails
|
|
60
|
+
- Do not skip phases; if prerequisites are missing, ask focused questions.
|
|
61
|
+
- Keep traceability: REQ -> BR/UC/AC -> design -> backlog -> code/tests -> QA report.
|
|
62
|
+
- Require code review completion before QA handoff.
|
|
63
|
+
- If input requirements are VI/JP: preserve original text + add EN translation in appendix for traceability (at least in Project Initiation and BA spec).
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pm
|
|
3
|
+
description: Product Manager + meta-orchestrator workflow for SDTK. Use when you need to start a new feature (Phase 1) or produce PM planning artifacts (PRD + BACKLOG) and update SHARED_PLANNING.md / QUALITY_CHECKLIST.md with correct phase handoffs.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## SDTK Pipeline Rules (always apply)
|
|
7
|
+
1. Pipeline: PM Initiation → BA Analysis → PM Planning → Architecture Design → Development + Review → QA Validation
|
|
8
|
+
2. After completing phase work: update SHARED_PLANNING.md + QUALITY_CHECKLIST.md
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM (PM asks user if needed)
|
|
10
|
+
4. Traceability: REQ → BR/UC/AC → design → backlog → code/tests → QA
|
|
11
|
+
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
+
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
13
|
+
|
|
14
|
+
## Prerequisites (verify before proceeding)
|
|
15
|
+
Read QUALITY_CHECKLIST.md and verify:
|
|
16
|
+
- Phase 1 (PM Init): No prerequisites required.
|
|
17
|
+
- Phase 2+ (PM Planning): BA Analysis gate must show all items [x] Done.
|
|
18
|
+
|
|
19
|
+
If prerequisites NOT met: report which gate is missing, suggest user run the prerequisite phase first.
|
|
20
|
+
|
|
21
|
+
## Current Context
|
|
22
|
+
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
23
|
+
- Pipeline: !`node -e "try{process.stdout.write(require('fs').readFileSync('SHARED_PLANNING.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
24
|
+
- Gates: !`node -e "try{process.stdout.write(require('fs').readFileSync('QUALITY_CHECKLIST.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
25
|
+
- State: !`node -e "try{process.stdout.write(require('fs').readFileSync('.sdtk/orchestration-state.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
26
|
+
|
|
27
|
+
## Input
|
|
28
|
+
$ARGUMENTS
|
|
29
|
+
|
|
30
|
+
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
31
|
+
|
|
32
|
+
# SDTK PM (Entry Point + Planning)
|
|
33
|
+
|
|
34
|
+
## Outputs
|
|
35
|
+
- Phase 1: `docs/product/PROJECT_INITIATION_[FEATURE_KEY].md`
|
|
36
|
+
- Phase 2+ (after BA spec): `docs/product/PRD_[FEATURE_KEY].md` + `docs/product/BACKLOG_[FEATURE_KEY].md`
|
|
37
|
+
|
|
38
|
+
## Process
|
|
39
|
+
1. Confirm `FEATURE_KEY` + `FEATURE_NAME` + Phase-1 scope in/out.
|
|
40
|
+
2. Create/update PM artifact(s).
|
|
41
|
+
3. Ensure REQ-xx list is clear and testable.
|
|
42
|
+
4. If requirements are provided in VI/JP: keep the original text in an appendix and add an EN translation (literal) for traceability.
|
|
43
|
+
5. Update `SHARED_PLANNING.md` + `QUALITY_CHECKLIST.md`.
|
|
44
|
+
6. Handoff:
|
|
45
|
+
- After Project Initiation -> suggest user run `/ba` to analyze requirements
|
|
46
|
+
- After PRD/Backlog -> suggest user run `/arch` to design architecture
|
|
47
|
+
|
|
48
|
+
## Clarification And Decisions (PM responsibility)
|
|
49
|
+
- Collect OQ-xx items raised by BA/ARCH/DEV/QA in their respective artifacts.
|
|
50
|
+
- Try to resolve OQ-xx using existing docs and reasonable product/tech decisions.
|
|
51
|
+
- If still missing information from the original input: ask the user (final stakeholder) and record the answer as the resolution.
|
|
52
|
+
- Record decisions in PRD `Decision Log` and update OQ-xx `Resolution` fields in the originating docs.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa
|
|
3
|
+
description: QA workflow for SDTK. Use when you need to validate an implemented feature against BA/PRD/Backlog, run quality gates, document defects, and produce a QA_RELEASE_REPORT with a release decision.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## SDTK Pipeline Rules (always apply)
|
|
7
|
+
1. Pipeline: PM Initiation → BA Analysis → PM Planning → Architecture Design → Development + Review → QA Validation
|
|
8
|
+
2. After completing phase work: update SHARED_PLANNING.md + QUALITY_CHECKLIST.md
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM (PM asks user if needed)
|
|
10
|
+
4. Traceability: REQ → BR/UC/AC → design → backlog → code/tests → QA
|
|
11
|
+
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
+
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
13
|
+
|
|
14
|
+
## Prerequisites (verify before proceeding)
|
|
15
|
+
Read QUALITY_CHECKLIST.md and verify:
|
|
16
|
+
- Phase 4 DEV gate must show all items [x] Done (including code review completion).
|
|
17
|
+
|
|
18
|
+
If prerequisites NOT met: report which gate is missing, suggest user run `/dev` first to complete code review.
|
|
19
|
+
|
|
20
|
+
## Current Context
|
|
21
|
+
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
22
|
+
- Pipeline: !`node -e "try{process.stdout.write(require('fs').readFileSync('SHARED_PLANNING.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
23
|
+
- Gates: !`node -e "try{process.stdout.write(require('fs').readFileSync('QUALITY_CHECKLIST.md','utf8'))}catch{process.stdout.write('Not initialized')}"`
|
|
24
|
+
- State: !`node -e "try{process.stdout.write(require('fs').readFileSync('.sdtk/orchestration-state.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
25
|
+
|
|
26
|
+
## Input
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
|
|
29
|
+
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
30
|
+
|
|
31
|
+
# SDTK QA (Testing + Release Decision)
|
|
32
|
+
|
|
33
|
+
## Output
|
|
34
|
+
- `docs/qa/QA_RELEASE_REPORT_[FEATURE_KEY].md`
|
|
35
|
+
- Optional (when detailed test design spec is requested):
|
|
36
|
+
- `docs/qa/[FEATURE_KEY]_TEST_CASE.md` via `/test-case-spec`
|
|
37
|
+
|
|
38
|
+
## Process
|
|
39
|
+
1. Validate prerequisites: DEV phase completed + code review PASS.
|
|
40
|
+
2. Create test strategy mapped to UC/AC.
|
|
41
|
+
3. If test-case specification artifact is required, invoke `/test-case-spec` and align counts/coverage with release testing scope.
|
|
42
|
+
4. If acceptance criteria / expected behavior is unclear: record OQ-xx in QA report and escalate to PM (suggest user run `/pm` if still missing info).
|
|
43
|
+
5. Execute/record results (unit/integration/e2e as applicable).
|
|
44
|
+
6. Record defects with severity and status.
|
|
45
|
+
7. Decide: APPROVED vs REJECTED (with reasons).
|
|
46
|
+
8. Update shared state + Phase 5 checklist.
|
|
47
|
+
9. Handoff: suggest user run `/pm` to finalize release status if approved.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: screen-design-spec
|
|
3
|
+
description: Create/update screen flow-action specifications from requirement sources (Excel/Figma/spec docs), including screen flow PlantUML, UI item/action tables, API mapping tables, and screen-to-API traceability.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Required Inputs (read before proceeding)
|
|
7
|
+
Read the following artifacts for the current feature:
|
|
8
|
+
1. `docs/specs/BA_SPEC_*.md` — business rules, use cases
|
|
9
|
+
2. `docs/architecture/ARCH_DESIGN_*.md` — system components
|
|
10
|
+
3. `docs/api/[FEATURE_KEY]_ENDPOINTS.md` — API endpoints (when available)
|
|
11
|
+
|
|
12
|
+
## Input
|
|
13
|
+
$ARGUMENTS
|
|
14
|
+
|
|
15
|
+
# SDTK Screen Flow Action Spec
|
|
16
|
+
|
|
17
|
+
## Outputs
|
|
18
|
+
- `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`
|
|
19
|
+
- Optional supporting docs:
|
|
20
|
+
- `docs/specs/[FEATURE_KEY]_FIGMA_LAYOUT.md`
|
|
21
|
+
- `docs/specs/[FEATURE_KEY]_DESIGN_SPEC_FROM_EXCEL.md`
|
|
22
|
+
- `docs/specs/assets/[feature_snake]/screens/*`
|
|
23
|
+
|
|
24
|
+
## Required Inputs
|
|
25
|
+
- Feature key/name
|
|
26
|
+
- Primary requirement sources (BA spec, architecture, customer design docs)
|
|
27
|
+
- Screen source references (Figma URLs and/or requirement screenshots)
|
|
28
|
+
- API endpoint source (`docs/api/[FEATURE_KEY]_ENDPOINTS.md`) when available
|
|
29
|
+
|
|
30
|
+
## Process
|
|
31
|
+
1. Read requirement sources and identify in-scope screens, dialogs, and transitions.
|
|
32
|
+
2. Read and apply rules from `.claude/skills/references/FLOW_ACTION_SPEC_CREATION_RULES.md`.
|
|
33
|
+
3. Build/update section `Feature overview` and `Screen flow action` (PlantUML).
|
|
34
|
+
4. For each screen/dialog:
|
|
35
|
+
- Add metadata (screen ID, source link)
|
|
36
|
+
- Add screen image reference
|
|
37
|
+
- Add UI item/action table with `No` column
|
|
38
|
+
- Add API mapping table (trigger -> API -> data usage)
|
|
39
|
+
5. Build/update `System processing flow` from use-case and process sources.
|
|
40
|
+
6. Build/update `Open questions` for unresolved behavior/API/data points.
|
|
41
|
+
7. Build/update `Screen - API Mapping` summary section.
|
|
42
|
+
8. Validate:
|
|
43
|
+
- global numbering consistency (no screen-level reset)
|
|
44
|
+
- no broken image paths
|
|
45
|
+
- PlantUML renderability
|
|
46
|
+
- consistency with API endpoints spec
|
|
47
|
+
- EN artifact hygiene (no VI leftovers, no mojibake, no merged heading lines)
|
|
48
|
+
- for legacy specs with per-screen reset numbering: run renumber migration first
|
|
49
|
+
9. Update document history and handoff to ARCH/DEV.
|
|
50
|
+
|
|
51
|
+
## Rule References
|
|
52
|
+
- Core rules: `.claude/skills/references/FLOW_ACTION_SPEC_CREATION_RULES.md`
|
|
53
|
+
- Numbering reference: `.claude/skills/references/numbering-rules.md`
|
|
54
|
+
- Figma reference: `.claude/skills/references/figma-mcp.md`
|
|
55
|
+
- Excel image export reference: `.claude/skills/references/excel-image-export.md`
|
|
56
|
+
|
|
57
|
+
## Validation Script
|
|
58
|
+
- `scripts/validate_flow_action_spec_numbering.py`
|
|
59
|
+
- Checks duplicate/resetted numbering in action tables.
|
|
60
|
+
- Checks encoding/markdown hygiene.
|
|
61
|
+
- For EN artifacts, run with `--en-check`:
|
|
62
|
+
- `python scripts/validate_flow_action_spec_numbering.py --spec "docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md" --en-check`
|
|
63
|
+
- `scripts/renumber_flow_action_spec_global.py`
|
|
64
|
+
- Auto-migrates action table `No` fields to global numbering.
|
|
65
|
+
- Dry-run:
|
|
66
|
+
- `python scripts/renumber_flow_action_spec_global.py --spec "docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md"`
|
|
67
|
+
- Apply:
|
|
68
|
+
- `python scripts/renumber_flow_action_spec_global.py --spec "docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md" --write`
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-case-spec
|
|
3
|
+
description: Generate screen-based QA test-case markdown in Excel-aligned layout (Statistic + per-screen UTC/ITC worksheets). Use when QA needs reusable test design artifacts before or during execution.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Required Inputs (read before proceeding)
|
|
7
|
+
Read the following artifacts for the current feature:
|
|
8
|
+
1. `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md` — screen/flow references
|
|
9
|
+
2. `docs/specs/BA_SPEC_[FEATURE_KEY].md` — business rules, use cases
|
|
10
|
+
3. `docs/api/[FEATURE_KEY]_ENDPOINTS.md` — API reference
|
|
11
|
+
4. `docs/specs/Q&A.md` or `docs/en/specs/Q&A.md` — clarification source (when available)
|
|
12
|
+
|
|
13
|
+
## Input
|
|
14
|
+
$ARGUMENTS
|
|
15
|
+
|
|
16
|
+
# SDTK Test Case Spec
|
|
17
|
+
|
|
18
|
+
## Outputs
|
|
19
|
+
- `docs/qa/[FEATURE_KEY]_TEST_CASE.md`
|
|
20
|
+
- Optional project variant:
|
|
21
|
+
- `docs/en/qa/[FEATURE_KEY]_TEST_CASE.md` (only when project uses `docs/en/**`)
|
|
22
|
+
|
|
23
|
+
## Core Rules
|
|
24
|
+
1. Apply `.claude/skills/references/TEST_CASE_CREATION_RULES.md` first.
|
|
25
|
+
2. Keep section order fixed (Statistic -> Abbreviations -> Scope -> References -> Environment -> Coverage -> Screen-based UTC/ITC -> OQ -> STC/UAT note).
|
|
26
|
+
3. Use screen-first layout to mirror worksheet structure:
|
|
27
|
+
- each screen can have `[SCREEN_KEY]_UTC` and `[SCREEN_KEY]_ITC`.
|
|
28
|
+
4. Keep one unified 18-column schema for UTC/ITC rows.
|
|
29
|
+
5. Keep stable case IDs; do not renumber only because of regrouping.
|
|
30
|
+
6. Track unresolved decisions via `OQ-xx`.
|
|
31
|
+
|
|
32
|
+
## Procedure
|
|
33
|
+
1. Resolve output path:
|
|
34
|
+
- default `docs/qa/[FEATURE_KEY]_TEST_CASE.md`
|
|
35
|
+
- use `docs/en/qa/...` only if the repo already follows `docs/en/**`.
|
|
36
|
+
2. Build/refresh `Statistic Summary (Excel-aligned)`:
|
|
37
|
+
- include UT total, IT total, grand total.
|
|
38
|
+
3. Build `Feature Coverage Matrix` from flow/action and API docs.
|
|
39
|
+
4. Split UTC/ITC by screen sections (`screen-first`), not by test type only.
|
|
40
|
+
5. Fill conflict/permission/error-path cases from Q&A decisions and API contracts.
|
|
41
|
+
6. Record unresolved items in section `Open Questions`.
|
|
42
|
+
7. Validate:
|
|
43
|
+
- counts in summary match table rows
|
|
44
|
+
- no placeholder tokens like `??`
|
|
45
|
+
- out-of-scope boundaries are explicit
|
|
46
|
+
|
|
47
|
+
## Role Integration
|
|
48
|
+
- Primary owner: `/qa`.
|
|
49
|
+
- `/qa` uses this skill to design/update reusable test-case specs.
|
|
50
|
+
- `/qa` still owns release decision artifact (`QA_RELEASE_REPORT_*`).
|
|
51
|
+
|
|
52
|
+
## Notes
|
|
53
|
+
- This skill is for test-case specification artifacts, not test execution logs.
|
|
54
|
+
- For release approval and defect triage, continue with `/qa`.
|
|
55
|
+
|
|
56
|
+
## Validator Script
|
|
57
|
+
- `scripts/validate_test_case_spec.py`
|
|
58
|
+
|
|
59
|
+
### Typical command
|
|
60
|
+
```bash
|
|
61
|
+
python scripts/validate_test_case_spec.py \
|
|
62
|
+
--file "docs/qa/[FEATURE_KEY]_TEST_CASE.md"
|
|
63
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sdtk-kit",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "SDTK CLI toolkit for deterministic software documentation workflows",
|
|
5
5
|
"bin": {
|
|
6
6
|
"sdtk": "./bin/sdtk.js"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"url": "https://github.com/codexsdtk/sdtk-toolkit.git",
|
|
37
37
|
"directory": "distribution/sdtk-cli"
|
|
38
38
|
},
|
|
39
|
-
"homepage": "https://
|
|
39
|
+
"homepage": "https://agenttoolkits.dev",
|
|
40
40
|
"bugs": {
|
|
41
41
|
"url": "https://github.com/codexsdtk/sdtk-toolkit/issues"
|
|
42
42
|
},
|
package/src/commands/help.js
CHANGED
|
@@ -16,7 +16,7 @@ function cmdHelp() {
|
|
|
16
16
|
" --runtime <codex|claude> Runtime adapter (default: codex)",
|
|
17
17
|
" --project-path <path> Target project directory (default: cwd)",
|
|
18
18
|
" --force Overwrite existing files",
|
|
19
|
-
" --skip-skills Skip Codex
|
|
19
|
+
" --skip-skills Skip skill installation (Codex and Claude)",
|
|
20
20
|
" --verbose Show detailed PowerShell script output",
|
|
21
21
|
"",
|
|
22
22
|
"Auth options:",
|