sdtk-kit 0.3.3 → 0.3.5
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 +36 -2
- package/assets/manifest/toolkit-bundle.manifest.json +39 -29
- package/assets/manifest/toolkit-bundle.sha256.txt +14 -12
- package/assets/toolkit/toolkit/install.ps1 +31 -7
- package/assets/toolkit/toolkit/scripts/install-claude-skills.ps1 +129 -0
- package/assets/toolkit/toolkit/scripts/install-codex-skills.ps1 +8 -0
- package/assets/toolkit/toolkit/scripts/uninstall-claude-skills.ps1 +139 -0
- package/assets/toolkit/toolkit/skills/sdtk-api-doc/SKILL.md +5 -4
- package/assets/toolkit/toolkit/skills/sdtk-arch/SKILL.md +14 -12
- package/assets/toolkit/toolkit/skills/sdtk-ba/SKILL.md +7 -6
- package/assets/toolkit/toolkit/skills/sdtk-qa/SKILL.md +8 -7
- package/assets/toolkit/toolkit/skills/sdtk-test-case-spec/SKILL.md +4 -6
- package/assets/toolkit/toolkit/skills-claude/api-doc/SKILL.md +7 -6
- package/assets/toolkit/toolkit/skills-claude/arch/SKILL.md +20 -18
- package/assets/toolkit/toolkit/skills-claude/ba/SKILL.md +13 -12
- package/assets/toolkit/toolkit/skills-claude/qa/SKILL.md +14 -13
- package/assets/toolkit/toolkit/skills-claude/test-case-spec/SKILL.md +9 -11
- package/package.json +44 -44
- package/src/commands/help.js +30 -4
- package/src/commands/init.js +25 -1
- package/src/commands/runtime.js +217 -0
- package/src/index.js +4 -1
- package/src/lib/scope.js +68 -0
|
@@ -17,18 +17,19 @@ description: Solution Architect workflow for SDTK. Use when you need to convert
|
|
|
17
17
|
- `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`
|
|
18
18
|
|
|
19
19
|
## Process
|
|
20
|
-
1. Read BA spec
|
|
20
|
+
1. Read BA spec and PRD/backlog.
|
|
21
21
|
2. Read `sdtk.config.json` for project stack assumptions (backend/frontend/db/auth).
|
|
22
|
-
3. If architecture output includes API contracts/flows, read and apply
|
|
22
|
+
3. If architecture output includes API contracts/flows, read and apply:
|
|
23
23
|
- `./references/YAML_CREATION_RULES.md`
|
|
24
24
|
- `./references/API_DESIGN_FLOWCHART_CREATION_RULES.md`
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
- `governance/ai/core/SDTK_API_PATH_STYLE_POLICY.md` for canonical resource naming and multi-word path style
|
|
26
|
+
4. If architecture output includes screen flow-action specs, read and apply `./references/FLOW_ACTION_SPEC_CREATION_RULES.md`.
|
|
27
|
+
5. If API detail spec is required, use `sdtk-api-design-spec` to build/update `docs/api/[FEATURE_KEY]_API_DESIGN_DETAIL.md` using YAML + flow list.
|
|
28
|
+
6. For complex UI flow-action specs, use `sdtk-screen-design-spec` to build/update `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`.
|
|
28
29
|
7. Define:
|
|
29
30
|
- System components + data model
|
|
30
|
-
- API endpoints and flows
|
|
31
|
-
- Screen layouts
|
|
31
|
+
- API endpoints and flows
|
|
32
|
+
- Screen layouts
|
|
32
33
|
- Security/authz decisions
|
|
33
34
|
8. Create/update:
|
|
34
35
|
- OpenAPI YAML + API endpoint markdown
|
|
@@ -37,8 +38,9 @@ description: Solution Architect workflow for SDTK. Use when you need to convert
|
|
|
37
38
|
- Database spec (if DB impact exists)
|
|
38
39
|
- Flow-action spec and design layout (if UI impact exists)
|
|
39
40
|
9. Ensure mapping UC/BR -> DB/API/screens and run output hygiene checks:
|
|
40
|
-
- EN artifacts use English narrative text (except clearly marked original-language appendix blocks)
|
|
41
|
-
- No mojibake/encoding corruption in markdown/yaml/txt outputs
|
|
42
|
-
10.
|
|
43
|
-
11.
|
|
44
|
-
12.
|
|
41
|
+
- EN artifacts use English narrative text (except clearly marked original-language appendix blocks)
|
|
42
|
+
- No mojibake/encoding corruption in markdown/yaml/txt outputs
|
|
43
|
+
10. For benchmark runs, apply `governance/ai/core/SDTK_BENCHMARK_OQ_POLICY.md`: keep benchmark-expected open questions explicitly OPEN unless the requirement source resolves them.
|
|
44
|
+
11. If anything is unclear, record OQ-xx in ARCH_DESIGN "Open Questions" and escalate to `@pm` for a decision.
|
|
45
|
+
12. Update shared state + Phase 3 checklist.
|
|
46
|
+
13. Handoff: `@dev please implement ...`.
|
|
@@ -9,7 +9,7 @@ description: Business Analyst workflow for SDTK. Use when you need to turn PM in
|
|
|
9
9
|
- `docs/specs/BA_SPEC_[FEATURE_KEY].md`
|
|
10
10
|
|
|
11
11
|
## Process
|
|
12
|
-
1. Read `docs/product/PROJECT_INITIATION_[FEATURE_KEY].md`
|
|
12
|
+
1. Read `docs/product/PROJECT_INITIATION_[FEATURE_KEY].md` and any source requirements.
|
|
13
13
|
2. Produce:
|
|
14
14
|
- Glossary
|
|
15
15
|
- BR-xx (numbered)
|
|
@@ -17,8 +17,9 @@ description: Business Analyst workflow for SDTK. Use when you need to turn PM in
|
|
|
17
17
|
- AC-xx (mapped to UC/BR)
|
|
18
18
|
- NFR-xx
|
|
19
19
|
- Risks + Open Questions
|
|
20
|
-
- Traceability summary table (REQ
|
|
21
|
-
3. If source requirements are VI/JP
|
|
22
|
-
4.
|
|
23
|
-
5.
|
|
24
|
-
6.
|
|
20
|
+
- Traceability summary table (REQ -> UC/BR/AC)
|
|
21
|
+
3. If source requirements are VI/JP, preserve the original text and add a literal EN translation in appendices.
|
|
22
|
+
4. For benchmark runs, apply `governance/ai/core/SDTK_BENCHMARK_OQ_POLICY.md`: keep benchmark-expected open questions explicitly OPEN and do not silently resolve them in BA output.
|
|
23
|
+
5. If anything is unclear, record OQ-xx in BA_SPEC "Open Questions" and escalate to `@pm` for a decision.
|
|
24
|
+
6. Update `SHARED_PLANNING.md` and `QUALITY_CHECKLIST.md` Phase 2.
|
|
25
|
+
7. Handoff: `@pm specs ready for PRD`.
|
|
@@ -13,10 +13,11 @@ description: QA workflow for SDTK. Use when you need to validate an implemented
|
|
|
13
13
|
## Process
|
|
14
14
|
1. Validate prerequisites: DEV phase completed + code review PASS.
|
|
15
15
|
2. Create test strategy mapped to UC/AC.
|
|
16
|
-
3. If test-case specification artifact is required, invoke `sdtk-test-case-spec` and align counts/coverage with release testing scope.
|
|
17
|
-
4.
|
|
18
|
-
5.
|
|
19
|
-
6.
|
|
20
|
-
7.
|
|
21
|
-
8.
|
|
22
|
-
9.
|
|
16
|
+
3. If test-case specification artifact is required, invoke `sdtk-test-case-spec` and align counts/coverage with release testing scope. Keep the structured TEST_CASE total consistent with the release-report baseline; track E2E separately if needed.
|
|
17
|
+
4. Apply `governance/ai/core/SDTK_BENCHMARK_QA_MODE_POLICY.md` for benchmark-mode verdict rules when no executable build exists.
|
|
18
|
+
5. If acceptance criteria / expected behavior is unclear, record OQ-xx in QA report and preserve benchmark-expected ambiguity per `governance/ai/core/SDTK_BENCHMARK_OQ_POLICY.md`; escalate to `@pm` if still missing info.
|
|
19
|
+
6. Execute/record results (unit/integration/e2e as applicable).
|
|
20
|
+
7. Record defects with severity and status.
|
|
21
|
+
8. Decide: APPROVED vs REJECTED (with reasons).
|
|
22
|
+
9. Update shared state + Phase 5 checklist.
|
|
23
|
+
10. Handoff: `@pm please finalize release status ...` if approved.
|
|
@@ -24,24 +24,23 @@ description: Generate screen-based QA test-case markdown (`[FEATURE_KEY]_TEST_CA
|
|
|
24
24
|
## Core Rules
|
|
25
25
|
1. Apply `./references/TEST_CASE_CREATION_RULES.md` first.
|
|
26
26
|
2. Keep section order fixed (Statistic -> Abbreviations -> Scope -> References -> Environment -> Coverage -> Screen-based UTC/ITC -> OQ -> STC/UAT note).
|
|
27
|
-
3. Use screen-first layout to mirror worksheet structure
|
|
28
|
-
- each screen can have `[SCREEN_KEY]_UTC` and `[SCREEN_KEY]_ITC`.
|
|
27
|
+
3. Use screen-first layout to mirror worksheet structure.
|
|
29
28
|
4. Keep one unified 18-column schema for UTC/ITC rows.
|
|
30
29
|
5. Keep stable case IDs; do not renumber only because of regrouping.
|
|
31
|
-
6. Track unresolved decisions via `OQ-xx`.
|
|
30
|
+
6. Track unresolved decisions via `OQ-xx` and keep benchmark-expected OQs explicitly OPEN per `governance/ai/core/SDTK_BENCHMARK_OQ_POLICY.md`.
|
|
32
31
|
|
|
33
32
|
## Procedure
|
|
34
33
|
1. Resolve output path:
|
|
35
34
|
- default `docs/qa/[FEATURE_KEY]_TEST_CASE.md`
|
|
36
35
|
- use `docs/en/qa/...` only if the repo already follows `docs/en/**`.
|
|
37
|
-
2. Build/refresh `Statistic Summary (Excel-aligned)
|
|
38
|
-
- include UT total, IT total, grand total.
|
|
36
|
+
2. Build/refresh `Statistic Summary (Excel-aligned)` with UT total, IT total, and grand total.
|
|
39
37
|
3. Build `Feature Coverage Matrix` from flow/action and API docs.
|
|
40
38
|
4. Split UTC/ITC by screen sections (`screen-first`), not by test type only.
|
|
41
39
|
5. Fill conflict/permission/error-path cases from Q&A decisions and API contracts.
|
|
42
40
|
6. Record unresolved items in section `Open Questions`.
|
|
43
41
|
7. Validate:
|
|
44
42
|
- counts in summary match table rows
|
|
43
|
+
- structured TEST_CASE total stays aligned with the QA release-report baseline; if E2E is tracked separately, label it separately instead of inflating grand total
|
|
45
44
|
- no placeholder tokens like `??`
|
|
46
45
|
- out-of-scope boundaries are explicit
|
|
47
46
|
|
|
@@ -62,4 +61,3 @@ description: Generate screen-based QA test-case markdown (`[FEATURE_KEY]_TEST_CA
|
|
|
62
61
|
python "toolkit/skills/sdtk-test-case-spec/scripts/validate_test_case_spec.py" `
|
|
63
62
|
--file "docs/qa/[FEATURE_KEY]_TEST_CASE.md"
|
|
64
63
|
```
|
|
65
|
-
|
|
@@ -5,8 +5,8 @@ description: Generate OpenAPI 3.x YAML and PlantUML flow diagrams for a feature
|
|
|
5
5
|
|
|
6
6
|
## Required Inputs (read before proceeding)
|
|
7
7
|
Read the following artifacts for the current feature:
|
|
8
|
-
1. `docs/specs/BA_SPEC_*.md`
|
|
9
|
-
2. `docs/architecture/ARCH_DESIGN_*.md`
|
|
8
|
+
1. `docs/specs/BA_SPEC_*.md` - business rules, use cases
|
|
9
|
+
2. `docs/architecture/ARCH_DESIGN_*.md` - system components, data model
|
|
10
10
|
|
|
11
11
|
## Input
|
|
12
12
|
$ARGUMENTS
|
|
@@ -31,16 +31,17 @@ $ARGUMENTS
|
|
|
31
31
|
2. Read and apply split API rule sources:
|
|
32
32
|
- `.claude/skills/references/YAML_CREATION_RULES.md` for YAML contract rules
|
|
33
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.
|
|
34
|
+
3. Define endpoints mapped to UC-xx; keep path naming consistent across CRUD/search/list/mst patterns and apply `governance/ai/core/SDTK_API_PATH_STYLE_POLICY.md` for canonical resource naming.
|
|
35
35
|
4. For each endpoint, document request/response schema and error cases.
|
|
36
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
|
|
37
|
+
6. Generate PlantUML flows including auth, permission check, validation, main logic, and error exits.
|
|
38
38
|
7. Ensure traceability notes reference UC/BR where relevant.
|
|
39
|
-
8.
|
|
39
|
+
8. For benchmark runs, if the requirement or upstream artifacts mark an OQ as expected OPEN, keep that ambiguity explicit in flow list / endpoint docs instead of silently collapsing it.
|
|
40
|
+
9. Validate English output hygiene when generating English artifacts:
|
|
40
41
|
- no mixed-language leftovers in narrative text
|
|
41
42
|
- no mojibake/encoding corruption markers
|
|
42
43
|
- terminology consistency across endpoint detail, summary tables, and flow labels
|
|
43
|
-
|
|
44
|
+
10. If orchestrator mode requires API design detail generation (`apiDesignDetailMode=auto/on`), handoff to `/api-design-spec` after YAML + flow list are updated.
|
|
44
45
|
|
|
45
46
|
## Reference
|
|
46
47
|
- Deeper analysis: `docs/specs/API_DOC_SKILL_ANALYSIS.md` (if present).
|
|
@@ -4,19 +4,19 @@ description: Solution Architect workflow for SDTK. Use when you need to convert
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## SDTK Pipeline Rules (always apply)
|
|
7
|
-
1. Pipeline: PM Initiation
|
|
7
|
+
1. Pipeline: PM Initiation -> BA Analysis -> PM Planning -> Architecture Design -> Development + Review -> QA Validation
|
|
8
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
|
|
10
|
-
4. Traceability: REQ
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM
|
|
10
|
+
4. Traceability: REQ -> BR/UC/AC -> design -> backlog -> code/tests -> QA
|
|
11
11
|
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
-
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
12
|
+
6. Do not skip phases. If inputs are missing, ask focused questions.
|
|
13
13
|
|
|
14
14
|
## Prerequisites (verify before proceeding)
|
|
15
15
|
Read QUALITY_CHECKLIST.md and verify:
|
|
16
16
|
- Phase 2 BA Analysis gate must show all items [x] Done.
|
|
17
17
|
- Phase 2+ PM Planning gate must show all items [x] Done.
|
|
18
18
|
|
|
19
|
-
If prerequisites
|
|
19
|
+
If prerequisites are not met, report which gate is missing and suggest user run the prerequisite phase first.
|
|
20
20
|
|
|
21
21
|
## Current Context
|
|
22
22
|
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
@@ -27,7 +27,7 @@ If prerequisites NOT met: report which gate is missing, suggest user run the pre
|
|
|
27
27
|
## Input
|
|
28
28
|
$ARGUMENTS
|
|
29
29
|
|
|
30
|
-
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
30
|
+
If no arguments are provided, read current feature context from SHARED_PLANNING.md.
|
|
31
31
|
|
|
32
32
|
# SDTK ARCH (Solution Architecture)
|
|
33
33
|
|
|
@@ -43,18 +43,19 @@ If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
|
43
43
|
- `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`
|
|
44
44
|
|
|
45
45
|
## Process
|
|
46
|
-
1. Read BA spec
|
|
46
|
+
1. Read BA spec and PRD/backlog.
|
|
47
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
|
|
48
|
+
3. If architecture output includes API contracts/flows, read and apply:
|
|
49
49
|
- `.claude/skills/references/YAML_CREATION_RULES.md`
|
|
50
50
|
- `.claude/skills/references/API_DESIGN_FLOWCHART_CREATION_RULES.md`
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
- `governance/ai/core/SDTK_API_PATH_STYLE_POLICY.md` for canonical resource naming and multi-word path style
|
|
52
|
+
4. If architecture output includes screen flow-action specs, read and apply `.claude/skills/references/FLOW_ACTION_SPEC_CREATION_RULES.md`.
|
|
53
|
+
5. If API detail spec is required, use `/api-design-spec` to build/update `docs/api/[FEATURE_KEY]_API_DESIGN_DETAIL.md` using YAML + flow list.
|
|
54
|
+
6. For complex UI flow-action specs, use `/screen-design-spec` to build/update `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`.
|
|
54
55
|
7. Define:
|
|
55
56
|
- System components + data model
|
|
56
|
-
- API endpoints and flows
|
|
57
|
-
- Screen layouts
|
|
57
|
+
- API endpoints and flows
|
|
58
|
+
- Screen layouts
|
|
58
59
|
- Security/authz decisions
|
|
59
60
|
8. Create/update:
|
|
60
61
|
- OpenAPI YAML + API endpoint markdown
|
|
@@ -63,8 +64,9 @@ If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
|
63
64
|
- Database spec (if DB impact exists)
|
|
64
65
|
- Flow-action spec and design layout (if UI impact exists)
|
|
65
66
|
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.
|
|
69
|
-
11.
|
|
70
|
-
12.
|
|
67
|
+
- EN artifacts use English narrative text (except clearly marked original-language appendix blocks)
|
|
68
|
+
- No mojibake/encoding corruption in markdown/yaml/txt outputs
|
|
69
|
+
10. For benchmark runs, apply `governance/ai/core/SDTK_BENCHMARK_OQ_POLICY.md`: keep benchmark-expected open questions explicitly OPEN unless the requirement source resolves them.
|
|
70
|
+
11. If anything is unclear, record OQ-xx in ARCH_DESIGN "Open Questions" and escalate to PM.
|
|
71
|
+
12. Update shared state + Phase 3 checklist.
|
|
72
|
+
13. Handoff: suggest user run `/dev` to implement the design.
|
|
@@ -4,18 +4,18 @@ description: Business Analyst workflow for SDTK. Use when you need to turn PM in
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## SDTK Pipeline Rules (always apply)
|
|
7
|
-
1. Pipeline: PM Initiation
|
|
7
|
+
1. Pipeline: PM Initiation -> BA Analysis -> PM Planning -> Architecture Design -> Development + Review -> QA Validation
|
|
8
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
|
|
10
|
-
4. Traceability: REQ
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM
|
|
10
|
+
4. Traceability: REQ -> BR/UC/AC -> design -> backlog -> code/tests -> QA
|
|
11
11
|
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
-
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
12
|
+
6. Do not skip phases. If inputs are missing, ask focused questions.
|
|
13
13
|
|
|
14
14
|
## Prerequisites (verify before proceeding)
|
|
15
15
|
Read QUALITY_CHECKLIST.md and verify:
|
|
16
16
|
- Phase 1 PM Init gate must show all items [x] Done.
|
|
17
17
|
|
|
18
|
-
If prerequisites
|
|
18
|
+
If prerequisites are not met, report which gate is missing and suggest user run `/pm` first.
|
|
19
19
|
|
|
20
20
|
## Current Context
|
|
21
21
|
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
@@ -26,7 +26,7 @@ If prerequisites NOT met: report which gate is missing, suggest user run `/pm` f
|
|
|
26
26
|
## Input
|
|
27
27
|
$ARGUMENTS
|
|
28
28
|
|
|
29
|
-
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
29
|
+
If no arguments are provided, read current feature context from SHARED_PLANNING.md.
|
|
30
30
|
|
|
31
31
|
# SDTK BA (Business Analysis)
|
|
32
32
|
|
|
@@ -34,7 +34,7 @@ If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
|
34
34
|
- `docs/specs/BA_SPEC_[FEATURE_KEY].md`
|
|
35
35
|
|
|
36
36
|
## Process
|
|
37
|
-
1. Read `docs/product/PROJECT_INITIATION_[FEATURE_KEY].md`
|
|
37
|
+
1. Read `docs/product/PROJECT_INITIATION_[FEATURE_KEY].md` and any source requirements.
|
|
38
38
|
2. Produce:
|
|
39
39
|
- Glossary
|
|
40
40
|
- BR-xx (numbered)
|
|
@@ -42,8 +42,9 @@ If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
|
42
42
|
- AC-xx (mapped to UC/BR)
|
|
43
43
|
- NFR-xx
|
|
44
44
|
- Risks + Open Questions
|
|
45
|
-
- Traceability summary table (REQ
|
|
46
|
-
3. If source requirements are VI/JP
|
|
47
|
-
4.
|
|
48
|
-
5.
|
|
49
|
-
6.
|
|
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. For benchmark runs, apply `governance/ai/core/SDTK_BENCHMARK_OQ_POLICY.md`: keep benchmark-expected open questions explicitly OPEN and do not silently resolve them in BA output.
|
|
48
|
+
5. If anything is unclear, record OQ-xx in BA_SPEC "Open Questions" and escalate to PM.
|
|
49
|
+
6. Update `SHARED_PLANNING.md` + `QUALITY_CHECKLIST.md` Phase 2.
|
|
50
|
+
7. Handoff: suggest user run `/pm` to proceed with PRD planning.
|
|
@@ -4,18 +4,18 @@ description: QA workflow for SDTK. Use when you need to validate an implemented
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## SDTK Pipeline Rules (always apply)
|
|
7
|
-
1. Pipeline: PM Initiation
|
|
7
|
+
1. Pipeline: PM Initiation -> BA Analysis -> PM Planning -> Architecture Design -> Development + Review -> QA Validation
|
|
8
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
|
|
10
|
-
4. Traceability: REQ
|
|
9
|
+
3. If unclear: log OQ-xx in artifact, escalate to PM
|
|
10
|
+
4. Traceability: REQ -> BR/UC/AC -> design -> backlog -> code/tests -> QA
|
|
11
11
|
5. Code review must be COMPLETE before QA phase can start
|
|
12
|
-
6. Do not skip phases. If inputs missing, ask focused questions.
|
|
12
|
+
6. Do not skip phases. If inputs are missing, ask focused questions.
|
|
13
13
|
|
|
14
14
|
## Prerequisites (verify before proceeding)
|
|
15
15
|
Read QUALITY_CHECKLIST.md and verify:
|
|
16
16
|
- Phase 4 DEV gate must show all items [x] Done (including code review completion).
|
|
17
17
|
|
|
18
|
-
If prerequisites
|
|
18
|
+
If prerequisites are not met, report which gate is missing and suggest user run `/dev` first to complete code review.
|
|
19
19
|
|
|
20
20
|
## Current Context
|
|
21
21
|
- Config: !`node -e "try{process.stdout.write(require('fs').readFileSync('sdtk.config.json','utf8'))}catch{process.stdout.write('{}')}"`
|
|
@@ -26,7 +26,7 @@ If prerequisites NOT met: report which gate is missing, suggest user run `/dev`
|
|
|
26
26
|
## Input
|
|
27
27
|
$ARGUMENTS
|
|
28
28
|
|
|
29
|
-
If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
29
|
+
If no arguments are provided, read current feature context from SHARED_PLANNING.md.
|
|
30
30
|
|
|
31
31
|
# SDTK QA (Testing + Release Decision)
|
|
32
32
|
|
|
@@ -38,10 +38,11 @@ If no arguments provided, read current feature context from SHARED_PLANNING.md.
|
|
|
38
38
|
## Process
|
|
39
39
|
1. Validate prerequisites: DEV phase completed + code review PASS.
|
|
40
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.
|
|
43
|
-
5.
|
|
44
|
-
6.
|
|
45
|
-
7.
|
|
46
|
-
8.
|
|
47
|
-
9.
|
|
41
|
+
3. If test-case specification artifact is required, invoke `/test-case-spec` and align counts/coverage with release testing scope. Keep the structured TEST_CASE total consistent with the release-report baseline; track E2E separately if needed.
|
|
42
|
+
4. Apply `governance/ai/core/SDTK_BENCHMARK_QA_MODE_POLICY.md` for benchmark-mode verdict rules when no executable build exists.
|
|
43
|
+
5. If acceptance criteria / expected behavior is unclear, record OQ-xx in QA report and preserve benchmark-expected ambiguity per `governance/ai/core/SDTK_BENCHMARK_OQ_POLICY.md`; escalate to PM.
|
|
44
|
+
6. Execute/record results (unit/integration/e2e as applicable).
|
|
45
|
+
7. Record defects with severity and status.
|
|
46
|
+
8. Decide: APPROVED vs REJECTED (with reasons).
|
|
47
|
+
9. Update shared state + Phase 5 checklist.
|
|
48
|
+
10. Handoff: suggest user run `/pm` to finalize release status if approved.
|
|
@@ -5,10 +5,10 @@ description: Generate screen-based QA test-case markdown in Excel-aligned layout
|
|
|
5
5
|
|
|
6
6
|
## Required Inputs (read before proceeding)
|
|
7
7
|
Read the following artifacts for the current feature:
|
|
8
|
-
1. `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`
|
|
9
|
-
2. `docs/specs/BA_SPEC_[FEATURE_KEY].md`
|
|
10
|
-
3. `docs/api/[FEATURE_KEY]_ENDPOINTS.md`
|
|
11
|
-
4. `docs/specs/Q&A.md` or `docs/en/specs/Q&A.md`
|
|
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
12
|
|
|
13
13
|
## Input
|
|
14
14
|
$ARGUMENTS
|
|
@@ -23,24 +23,23 @@ $ARGUMENTS
|
|
|
23
23
|
## Core Rules
|
|
24
24
|
1. Apply `.claude/skills/references/TEST_CASE_CREATION_RULES.md` first.
|
|
25
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`.
|
|
26
|
+
3. Use screen-first layout to mirror worksheet structure.
|
|
28
27
|
4. Keep one unified 18-column schema for UTC/ITC rows.
|
|
29
28
|
5. Keep stable case IDs; do not renumber only because of regrouping.
|
|
30
|
-
6. Track unresolved decisions via `OQ-xx`.
|
|
29
|
+
6. Track unresolved decisions via `OQ-xx` and keep benchmark-expected OQs explicitly OPEN per `governance/ai/core/SDTK_BENCHMARK_OQ_POLICY.md`.
|
|
31
30
|
|
|
32
31
|
## Procedure
|
|
33
32
|
1. Resolve output path:
|
|
34
33
|
- default `docs/qa/[FEATURE_KEY]_TEST_CASE.md`
|
|
35
34
|
- 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.
|
|
35
|
+
2. Build/refresh `Statistic Summary (Excel-aligned)` with UT total, IT total, and grand total.
|
|
38
36
|
3. Build `Feature Coverage Matrix` from flow/action and API docs.
|
|
39
37
|
4. Split UTC/ITC by screen sections (`screen-first`), not by test type only.
|
|
40
38
|
5. Fill conflict/permission/error-path cases from Q&A decisions and API contracts.
|
|
41
39
|
6. Record unresolved items in section `Open Questions`.
|
|
42
40
|
7. Validate:
|
|
43
41
|
- counts in summary match table rows
|
|
42
|
+
- structured TEST_CASE total stays aligned with the QA release-report baseline; if E2E is tracked separately, label it separately instead of inflating grand total
|
|
44
43
|
- no placeholder tokens like `??`
|
|
45
44
|
- out-of-scope boundaries are explicit
|
|
46
45
|
|
|
@@ -58,6 +57,5 @@ $ARGUMENTS
|
|
|
58
57
|
|
|
59
58
|
### Typical command
|
|
60
59
|
```bash
|
|
61
|
-
python scripts/validate_test_case_spec.py
|
|
62
|
-
--file "docs/qa/[FEATURE_KEY]_TEST_CASE.md"
|
|
60
|
+
python scripts/validate_test_case_spec.py --file "docs/qa/[FEATURE_KEY]_TEST_CASE.md"
|
|
63
61
|
```
|
package/package.json
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name":
|
|
3
|
-
"version":
|
|
4
|
-
"description":
|
|
5
|
-
"bin":
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
"main":
|
|
9
|
-
"type":
|
|
10
|
-
"files":
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"scripts":
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"engines":
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"keywords":
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"license":
|
|
34
|
-
"repository":
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"homepage":
|
|
40
|
-
"bugs":
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"publishConfig":
|
|
44
|
-
|
|
45
|
-
|
|
2
|
+
"name": "sdtk-kit",
|
|
3
|
+
"version": "0.3.5",
|
|
4
|
+
"description": "SDTK CLI toolkit for deterministic software documentation workflows",
|
|
5
|
+
"bin": {
|
|
6
|
+
"sdtk": "./bin/sdtk.js"
|
|
7
|
+
},
|
|
8
|
+
"main": "src/index.js",
|
|
9
|
+
"type": "commonjs",
|
|
10
|
+
"files": [
|
|
11
|
+
"bin/",
|
|
12
|
+
"src/",
|
|
13
|
+
"assets/"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"test": "node -e \"console.log('No tests configured yet')\"",
|
|
17
|
+
"build:payload": "powershell -ExecutionPolicy Bypass -File scripts/sync-toolkit-assets.ps1 && powershell -ExecutionPolicy Bypass -File scripts/build-toolkit-manifest.ps1",
|
|
18
|
+
"verify:payload": "node -e \"require('./src/lib/toolkit-payload').verify()\"",
|
|
19
|
+
"pack:smoke": "npm pack --dry-run",
|
|
20
|
+
"pack:release": "npm pack",
|
|
21
|
+
"prepublishOnly": "node -e \"require('./src/lib/toolkit-payload').verify()\""
|
|
22
|
+
},
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=18.13.0"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"sdtk",
|
|
28
|
+
"cli",
|
|
29
|
+
"documentation",
|
|
30
|
+
"toolkit",
|
|
31
|
+
"dockkit"
|
|
32
|
+
],
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/codexsdtk/sdtk-toolkit.git",
|
|
37
|
+
"directory": "distribution/sdtk-cli"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://agenttoolkits.dev",
|
|
40
|
+
"bugs": {
|
|
41
|
+
"url": "https://github.com/codexsdtk/sdtk-toolkit/issues"
|
|
42
|
+
},
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
}
|
|
46
46
|
}
|
package/src/commands/help.js
CHANGED
|
@@ -9,15 +9,36 @@ function cmdHelp() {
|
|
|
9
9
|
"",
|
|
10
10
|
"Commands:",
|
|
11
11
|
" init Initialize SDTK workspace (runtime adapter + config)",
|
|
12
|
+
" runtime Manage runtime asset installation (install, uninstall, status)",
|
|
12
13
|
" auth Manage GitHub authentication and entitlement",
|
|
13
14
|
" generate Scaffold feature documentation from templates (17 files)",
|
|
14
15
|
"",
|
|
15
16
|
"Init options:",
|
|
16
|
-
" --runtime <codex|claude>
|
|
17
|
+
" --runtime <codex|claude> Runtime adapter (default: codex)",
|
|
18
|
+
" --runtime-scope <project|user> Install scope (default: project for claude, user for codex)",
|
|
19
|
+
" --project-path <path> Target project directory (default: cwd)",
|
|
20
|
+
" --force Overwrite existing files",
|
|
21
|
+
" --skip-runtime-assets Skip runtime asset installation",
|
|
22
|
+
" --skip-skills (deprecated, use --skip-runtime-assets)",
|
|
23
|
+
" --verbose Show detailed PowerShell script output",
|
|
24
|
+
"",
|
|
25
|
+
"Runtime subcommands:",
|
|
26
|
+
" sdtk runtime install --runtime <codex|claude> [--scope <project|user>]",
|
|
27
|
+
" sdtk runtime uninstall --runtime <codex|claude> [--scope <project|user>] [--all]",
|
|
28
|
+
" sdtk runtime status --runtime <codex|claude>",
|
|
29
|
+
"",
|
|
30
|
+
"Runtime options:",
|
|
31
|
+
" --runtime <codex|claude> Target runtime (required)",
|
|
32
|
+
" --scope <project|user> Install scope (default: project for claude, user for codex)",
|
|
17
33
|
" --project-path <path> Target project directory (default: cwd)",
|
|
18
|
-
" --force Overwrite existing
|
|
19
|
-
" --
|
|
20
|
-
" --verbose Show detailed
|
|
34
|
+
" --force Overwrite existing skills",
|
|
35
|
+
" --all Uninstall all managed skills",
|
|
36
|
+
" --verbose Show detailed script output",
|
|
37
|
+
"",
|
|
38
|
+
"Scope behavior:",
|
|
39
|
+
" project Skills are installed inside the repo (Claude only: .claude/skills/)",
|
|
40
|
+
" user Skills are installed in the runtime home (~/.claude/skills/ or ~/.codex/skills/)",
|
|
41
|
+
" Note: Codex supports user scope only. Project scope is not available for Codex.",
|
|
21
42
|
"",
|
|
22
43
|
"Auth options:",
|
|
23
44
|
" --token <value> Store GitHub PAT",
|
|
@@ -60,6 +81,11 @@ function cmdHelp() {
|
|
|
60
81
|
" sdtk auth --verify",
|
|
61
82
|
' sdtk generate --feature-key USER_PROFILE --feature-name "User Profile"',
|
|
62
83
|
" sdtk generate --feature-key ORDER_MGMT --feature-name \"Order Management\" --validate-only",
|
|
84
|
+
" sdtk init --runtime claude --runtime-scope user",
|
|
85
|
+
" sdtk runtime install --runtime claude --scope project",
|
|
86
|
+
" sdtk runtime install --runtime codex --scope user",
|
|
87
|
+
" sdtk runtime status --runtime claude",
|
|
88
|
+
" sdtk runtime uninstall --runtime claude --scope project --all",
|
|
63
89
|
"",
|
|
64
90
|
" # Override entitlement repo (bash/zsh):",
|
|
65
91
|
" export SDTK_ENTITLEMENT_REPO=owner/repo",
|
package/src/commands/init.js
CHANGED
|
@@ -5,12 +5,15 @@ const { parseFlags, validateChoice } = require("../lib/args");
|
|
|
5
5
|
const { verify, resolvePayloadFile } = require("../lib/toolkit-payload");
|
|
6
6
|
const { runScript } = require("../lib/powershell");
|
|
7
7
|
const { ValidationError } = require("../lib/errors");
|
|
8
|
+
const { VALID_SCOPES, defaultScope, isProjectScopeSupported } = require("../lib/scope");
|
|
8
9
|
|
|
9
10
|
const FLAG_DEFS = {
|
|
10
11
|
runtime: { type: "string" },
|
|
11
12
|
"project-path": { type: "string" },
|
|
13
|
+
"runtime-scope": { type: "string" },
|
|
12
14
|
force: { type: "boolean" },
|
|
13
15
|
"skip-skills": { type: "boolean" },
|
|
16
|
+
"skip-runtime-assets": { type: "boolean" },
|
|
14
17
|
verbose: { type: "boolean" },
|
|
15
18
|
};
|
|
16
19
|
|
|
@@ -23,6 +26,25 @@ async function cmdInit(args) {
|
|
|
23
26
|
const runtime = flags.runtime || "codex";
|
|
24
27
|
validateChoice(runtime, VALID_RUNTIMES, "runtime");
|
|
25
28
|
|
|
29
|
+
// Resolve scope
|
|
30
|
+
const scope = flags["runtime-scope"] || defaultScope(runtime);
|
|
31
|
+
validateChoice(scope, VALID_SCOPES, "runtime-scope");
|
|
32
|
+
|
|
33
|
+
// Gate C0: Codex does not support project-local skills
|
|
34
|
+
if (scope === "project" && !isProjectScopeSupported(runtime)) {
|
|
35
|
+
throw new ValidationError(
|
|
36
|
+
"Codex does not support project-local skills. Use --runtime-scope user instead."
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Handle deprecated --skip-skills
|
|
41
|
+
const skipAssets = flags["skip-runtime-assets"] || flags["skip-skills"];
|
|
42
|
+
if (flags["skip-skills"] && !flags["skip-runtime-assets"]) {
|
|
43
|
+
console.warn(
|
|
44
|
+
"Warning: --skip-skills is deprecated. Use --skip-runtime-assets instead."
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
26
48
|
// Resolve project path
|
|
27
49
|
const projectPath = flags["project-path"]
|
|
28
50
|
? path.resolve(flags["project-path"])
|
|
@@ -38,13 +60,15 @@ async function cmdInit(args) {
|
|
|
38
60
|
const params = {
|
|
39
61
|
ProjectPath: projectPath,
|
|
40
62
|
Runtime: runtime,
|
|
63
|
+
Scope: scope,
|
|
41
64
|
};
|
|
42
65
|
if (flags.force) params.Force = true;
|
|
43
|
-
if (
|
|
66
|
+
if (skipAssets) params.SkipRuntimeAssets = true;
|
|
44
67
|
if (!flags.verbose) params.Quiet = true;
|
|
45
68
|
|
|
46
69
|
console.log(`Initializing SDTK workspace...`);
|
|
47
70
|
console.log(` Runtime: ${runtime}`);
|
|
71
|
+
console.log(` Scope: ${scope}`);
|
|
48
72
|
console.log(` Project: ${projectPath}`);
|
|
49
73
|
console.log("");
|
|
50
74
|
|