sdtk-kit 0.3.8 → 0.3.9
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/assets/manifest/toolkit-bundle.manifest.json +39 -39
- package/assets/manifest/toolkit-bundle.sha256.txt +18 -18
- package/assets/toolkit/toolkit/install.ps1 +44 -4
- package/assets/toolkit/toolkit/scripts/install-claude-skills.ps1 +43 -3
- package/assets/toolkit/toolkit/skills/sdtk-api-design-spec/SKILL.md +1 -1
- package/assets/toolkit/toolkit/skills/sdtk-api-design-spec/scripts/generate_api_design_detail.py +87 -11
- package/assets/toolkit/toolkit/skills/sdtk-arch/references/FLOW_ACTION_SPEC_CREATION_RULES.md +25 -5
- package/assets/toolkit/toolkit/skills/sdtk-design-layout/SKILL.md +16 -5
- package/assets/toolkit/toolkit/skills/sdtk-design-layout/scripts/render_design_layout_images.py +34 -1
- package/assets/toolkit/toolkit/skills/sdtk-screen-design-spec/SKILL.md +17 -4
- package/assets/toolkit/toolkit/skills/sdtk-screen-design-spec/references/FLOW_ACTION_SPEC_CREATION_RULES.md +25 -5
- package/assets/toolkit/toolkit/skills/sdtk-screen-design-spec/references/numbering-rules.md +20 -68
- package/assets/toolkit/toolkit/skills/sdtk-screen-design-spec/scripts/validate_flow_action_spec_numbering.py +168 -3
- package/assets/toolkit/toolkit/skills-claude/api-design-spec/SKILL.md +22 -8
- package/assets/toolkit/toolkit/skills-claude/arch/SKILL.md +26 -39
- package/assets/toolkit/toolkit/skills-claude/design-layout/SKILL.md +38 -6
- package/assets/toolkit/toolkit/skills-claude/screen-design-spec/SKILL.md +47 -25
- package/assets/toolkit/toolkit/templates/docs/design/DESIGN_LAYOUT_TEMPLATE.md +12 -1
- package/assets/toolkit/toolkit/templates/docs/specs/FLOW_ACTION_SPEC_CREATION_RULES.md +25 -5
- package/assets/toolkit/toolkit/templates/docs/specs/FLOW_ACTION_SPEC_TEMPLATE.md +34 -9
- package/package.json +1 -1
|
@@ -1,36 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: arch
|
|
3
|
-
description: Solution Architect workflow for SDTK. Use when you need to convert BA_SPEC
|
|
3
|
+
description: Solution Architect workflow for SDTK. Use when you need to convert BA_SPEC plus PM backlog into technical architecture, API contracts, and UI design docs; then hand off to DEV.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## SDTK Pipeline Rules (always apply)
|
|
7
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
|
|
9
|
-
3. If unclear: log OQ-xx in artifact
|
|
8
|
+
2. After completing phase work: update SHARED_PLANNING.md and QUALITY_CHECKLIST.md
|
|
9
|
+
3. If unclear: log OQ-xx in artifact and escalate to PM
|
|
10
10
|
4. Traceability: REQ -> BR/UC/AC -> design -> backlog -> code/tests -> QA
|
|
11
|
-
5. Code review must be
|
|
11
|
+
5. Code review must be complete before QA phase can start
|
|
12
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
|
-
- Phase 2 BA Analysis gate must show all items
|
|
17
|
-
- Phase 2+ PM Planning gate must show all items
|
|
18
|
-
|
|
19
|
-
If prerequisites are not met, report which gate is missing and 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('{}')}"`
|
|
16
|
+
- Phase 2 BA Analysis gate must show all items done
|
|
17
|
+
- Phase 2+ PM Planning gate must show all items done
|
|
26
18
|
|
|
27
19
|
## Input
|
|
28
20
|
$ARGUMENTS
|
|
29
21
|
|
|
30
|
-
If no arguments are provided, read current feature context from SHARED_PLANNING.md.
|
|
31
|
-
|
|
32
22
|
# SDTK ARCH (Solution Architecture)
|
|
33
23
|
|
|
24
|
+
## Critical Constraints
|
|
25
|
+
- I do not generate `FLOW_ACTION_SPEC` before `DESIGN_LAYOUT` for UI-scope features.
|
|
26
|
+
- I do not silently skip render failures for generated-draft screen images.
|
|
27
|
+
|
|
34
28
|
## Outputs
|
|
35
29
|
- `docs/architecture/ARCH_DESIGN_[FEATURE_KEY].md`
|
|
36
30
|
- If applicable:
|
|
@@ -44,29 +38,22 @@ If no arguments are provided, read current feature context from SHARED_PLANNING.
|
|
|
44
38
|
|
|
45
39
|
## Process
|
|
46
40
|
1. Read BA spec and PRD/backlog.
|
|
47
|
-
2. Read `sdtk.config.json` for project stack assumptions
|
|
48
|
-
3. If architecture output includes API contracts
|
|
41
|
+
2. Read `sdtk.config.json` for project stack assumptions.
|
|
42
|
+
3. If architecture output includes API contracts or flows, read and apply:
|
|
49
43
|
- `.claude/skills/references/YAML_CREATION_RULES.md`
|
|
50
44
|
- `.claude/skills/references/API_DESIGN_FLOWCHART_CREATION_RULES.md`
|
|
51
|
-
- `governance/ai/core/SDTK_API_PATH_STYLE_POLICY.md` for canonical resource naming and multi-word path style
|
|
52
45
|
4. If architecture output includes screen flow-action specs, read and apply `.claude/skills/references/FLOW_ACTION_SPEC_CREATION_RULES.md`.
|
|
53
|
-
5.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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.
|
|
46
|
+
5. For API scope:
|
|
47
|
+
- generate or update YAML, endpoints markdown, and flow list
|
|
48
|
+
- if API detail is required, use `/api-design-spec`
|
|
49
|
+
6. For UI scope:
|
|
50
|
+
- generate or update `docs/design/DESIGN_LAYOUT_[FEATURE_KEY].md`
|
|
51
|
+
- run `.claude/skills/design-layout/scripts/render_design_layout_images.py` to attempt screen preview rendering
|
|
52
|
+
- then generate or update `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md` using `/screen-design-spec`
|
|
53
|
+
- when no Figma or screenshot exists, use `generated-draft` with `DESIGN_LAYOUT` as the design source
|
|
54
|
+
- if rendering fails, use the render-skipped note instead of a broken image reference
|
|
55
|
+
7. Define system components, data model, API endpoints, flows, screen layouts, and security decisions.
|
|
56
|
+
8. Ensure mapping UC/BR to DB/API/screens and keep EN artifact hygiene.
|
|
57
|
+
9. If anything is unclear, record OQ-xx in `ARCH_DESIGN` and escalate to PM.
|
|
58
|
+
10. Update shared state and Phase 3 checklist.
|
|
59
|
+
11. Handoff: suggest `/dev` after the design is complete.
|
|
@@ -1,25 +1,57 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: design-layout
|
|
3
|
-
description: Generate UI screen layout documentation for a feature, including PlantUML
|
|
3
|
+
description: Generate UI screen layout documentation for a feature, including PlantUML SALT wireframes and item tables. Use when a feature includes frontend or admin screens and you need docs/design deliverables.
|
|
4
4
|
---
|
|
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/api/[FEATURE_KEY]_ENDPOINTS.md`
|
|
8
|
+
1. `docs/specs/BA_SPEC_*.md` - screens and fields
|
|
9
|
+
2. `docs/api/[FEATURE_KEY]_ENDPOINTS.md` - API list
|
|
10
10
|
|
|
11
11
|
## Input
|
|
12
12
|
$ARGUMENTS
|
|
13
13
|
|
|
14
14
|
# SDTK Screen Layout Design
|
|
15
15
|
|
|
16
|
+
## Critical Constraints
|
|
17
|
+
- I do not skip screen IDs or item numbering alignment with the wireframe.
|
|
18
|
+
- I do not hide render limitations; I record when screen preview rendering is unavailable.
|
|
19
|
+
- I do not leave rendered wireframes without visible local item markers that map back to the `Items` table.
|
|
20
|
+
- I do not pretend wireframe markers are the same thing as `FLOW_ACTION_SPEC` global action-table numbers.
|
|
21
|
+
|
|
16
22
|
## Output
|
|
17
23
|
- `docs/design/DESIGN_LAYOUT_[FEATURE_KEY].md`
|
|
18
24
|
|
|
19
25
|
## Process
|
|
20
26
|
1. Read BA spec (screens + fields) and API list.
|
|
21
27
|
2. For each screen, include:
|
|
22
|
-
- PlantUML `@startsalt` wireframe first
|
|
28
|
+
- PlantUML `@startsalt` wireframe first, with visible screen-local markers embedded directly in the SALT labels
|
|
23
29
|
- API list table
|
|
24
|
-
- Item table
|
|
25
|
-
3.
|
|
30
|
+
- Item table whose `No` values exactly match the local marker sequence used in the wireframe for that screen
|
|
31
|
+
3. Use this wireframe-marker convention so the rendered SVG can be cross-referenced visually:
|
|
32
|
+
- markers are screen-local visual references and reset per screen
|
|
33
|
+
- prefer Unicode circled-number markers in generated docs; avoid parenthetical `(N)` markers because they blend into UI text and can conflict with SALT parsing
|
|
34
|
+
- text label or input prompt: prefix the visible label with the local marker
|
|
35
|
+
- button: place the local marker inside the visible button label
|
|
36
|
+
- table header: prefix the header text with the local marker
|
|
37
|
+
- standalone control, pagination, toggle, or status chip: prefix the visible label with the local marker
|
|
38
|
+
- do not rely on prose, comments, or a separate legend; the marker must be visible inside the rendered wireframe itself
|
|
39
|
+
- the local marker does not need to equal the `FLOW_ACTION_SPEC` global `No`; `screen-design-spec` publishes the mapping table
|
|
40
|
+
4. Keep screen IDs consistent (A-*, B-*, C-*).
|
|
41
|
+
5. After writing `DESIGN_LAYOUT`, attempt to render screen preview images by default:
|
|
42
|
+
- Run `.claude/skills/design-layout/scripts/render_design_layout_images.py` to extract `@startsalt` blocks and render `.svg` files.
|
|
43
|
+
- Output path: `docs/specs/assets/<feature_snake>/screens/<screen_id>.svg`
|
|
44
|
+
- The renderer warns if a screen wireframe has no visible local markers or still uses legacy `(N)` markers.
|
|
45
|
+
- If PlantUML is unavailable, rendering is skipped with a warning and the render-skipped note is used in `FLOW_ACTION_SPEC`.
|
|
46
|
+
|
|
47
|
+
## Screen Image Renderer
|
|
48
|
+
- Script: `.claude/skills/design-layout/scripts/render_design_layout_images.py`
|
|
49
|
+
- Usage:
|
|
50
|
+
```
|
|
51
|
+
python ".claude/skills/design-layout/scripts/render_design_layout_images.py" \
|
|
52
|
+
--design-layout "docs/design/DESIGN_LAYOUT_[FEATURE_KEY].md" \
|
|
53
|
+
--feature-key [FEATURE_KEY]
|
|
54
|
+
```
|
|
55
|
+
- Requires: Java + `plantuml.jar`
|
|
56
|
+
- Output: `.svg` files under `docs/specs/assets/<feature_snake>/screens/`
|
|
57
|
+
- Failure policy: non-blocking. Warns and continues if rendering is unavailable.
|
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: screen-design-spec
|
|
3
|
-
description: Create
|
|
3
|
+
description: Create or update screen flow-action specifications from requirement sources, including screen flow PlantUML, UI item tables, API mapping tables, and screen-to-API traceability.
|
|
4
4
|
---
|
|
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`
|
|
10
|
-
3. `docs/api/[FEATURE_KEY]_ENDPOINTS.md`
|
|
8
|
+
1. `docs/specs/BA_SPEC_*.md` - business rules and use cases
|
|
9
|
+
2. `docs/architecture/ARCH_DESIGN_*.md` - system components
|
|
10
|
+
3. `docs/api/[FEATURE_KEY]_ENDPOINTS.md` - API endpoints, when available
|
|
11
11
|
|
|
12
12
|
## Input
|
|
13
13
|
$ARGUMENTS
|
|
14
14
|
|
|
15
15
|
# SDTK Screen Flow Action Spec
|
|
16
16
|
|
|
17
|
+
## Critical Constraints
|
|
18
|
+
- I do not finalize UI-scope screens without a valid design source type and reference.
|
|
19
|
+
- I do not leave broken image paths or incomplete API mappings in the flow-action spec.
|
|
20
|
+
- I use new-style PlantUML activity diagram syntax only for the screen flow diagram.
|
|
21
|
+
- I do not mix legacy and new-style PlantUML activity syntax in the screen flow diagram.
|
|
22
|
+
- Do not mix legacy activity syntax such as `(*)`, `-->`, or `[edge label]` with new-style activity actions like `:Activity;`.
|
|
23
|
+
- I keep action-table numbering global across the document even when wireframe markers reset per screen.
|
|
24
|
+
|
|
17
25
|
## Outputs
|
|
18
26
|
- `docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md`
|
|
19
27
|
- Optional supporting docs:
|
|
@@ -24,29 +32,47 @@ $ARGUMENTS
|
|
|
24
32
|
## Required Inputs
|
|
25
33
|
- Feature key/name
|
|
26
34
|
- Primary requirement sources (BA spec, architecture, customer design docs)
|
|
27
|
-
- Screen source references
|
|
35
|
+
- Screen source references, using one of these design source modes:
|
|
36
|
+
- `source-backed`: Figma URLs and/or requirement screenshots
|
|
37
|
+
- `generated-draft`: generated layout from `docs/design/DESIGN_LAYOUT_[FEATURE_KEY].md`
|
|
28
38
|
- API endpoint source (`docs/api/[FEATURE_KEY]_ENDPOINTS.md`) when available
|
|
29
39
|
|
|
30
40
|
## Process
|
|
31
41
|
1. Read requirement sources and identify in-scope screens, dialogs, and transitions.
|
|
32
42
|
2. Read and apply rules from `.claude/skills/references/FLOW_ACTION_SPEC_CREATION_RULES.md`.
|
|
33
|
-
3.
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
43
|
+
3. Determine design source mode per screen:
|
|
44
|
+
- If Figma URL or screenshot exists: use `source-backed`.
|
|
45
|
+
- If no Figma/screenshot but feature has UI scope: use `generated-draft` and reference the corresponding section in `docs/design/DESIGN_LAYOUT_[FEATURE_KEY].md`.
|
|
46
|
+
- If screen has no UI scope: use `none`.
|
|
47
|
+
4. Build/update section `Feature overview` and `Screen flow action` (PlantUML).
|
|
48
|
+
5. For each screen/dialog:
|
|
49
|
+
- Add metadata (screen ID, Design Source Type, Design Source Reference)
|
|
50
|
+
- Add screen image reference (from Figma, screenshot, or rendered `.svg` from generated layout)
|
|
51
|
+
- For generated-draft wireframes, add a wireframe-marker mapping table from the screen-local wireframe markers to the global action-table `No`
|
|
37
52
|
- Add UI item/action table with `No` column
|
|
38
53
|
- Add API mapping table (trigger -> API -> data usage)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
54
|
+
6. Build/update `System processing flow` from use-case and process sources.
|
|
55
|
+
7. Build/update `Open questions` for unresolved behavior/API/data points.
|
|
56
|
+
8. Build/update `Screen - API Mapping` summary section.
|
|
57
|
+
9. Validate:
|
|
43
58
|
- global numbering consistency (no screen-level reset)
|
|
44
|
-
- no broken image paths
|
|
45
|
-
- PlantUML renderability
|
|
59
|
+
- no broken image paths (for `generated-draft` screens, verify `.svg` exists or use render-skipped note)
|
|
60
|
+
- PlantUML renderability and new-style activity syntax consistency (no `(*)`, `-->`, or `[edge label]` mixing)
|
|
46
61
|
- consistency with API endpoints spec
|
|
47
62
|
- EN artifact hygiene (no VI leftovers, no mojibake, no merged heading lines)
|
|
48
63
|
- for legacy specs with per-screen reset numbering: run renumber migration first
|
|
49
|
-
|
|
64
|
+
- every UI-scope screen declares a Design Source Type (`source-backed` or `generated-draft`)
|
|
65
|
+
- every generated-draft screen with an embedded wireframe image includes a wireframe-marker mapping table to the global action-table `No`
|
|
66
|
+
10. For `generated-draft` screens, set `Screen image:` to the rendered `.svg` path if the file exists:
|
|
67
|
+
- Expected path (filesystem): `docs/specs/assets/<feature_snake>/screens/<screen_id>.svg`
|
|
68
|
+
- Markdown image path (file-relative): `assets/<feature_snake>/screens/<screen_id>.svg`
|
|
69
|
+
- If the `.svg` does not exist, replace the image reference with:
|
|
70
|
+
`> Screen image not rendered in this environment. See Design Source Reference for layout.`
|
|
71
|
+
11. For generated-draft screens, treat wireframe markers as screen-local visual references:
|
|
72
|
+
- the local marker sequence may reset per screen
|
|
73
|
+
- do not renumber the wireframe to fake equality with the global action-table `No`
|
|
74
|
+
- publish the mapping table directly under the screen image so reviewers can cross-reference local markers to global action-table numbers
|
|
75
|
+
12. Update document history and handoff to ARCH/DEV.
|
|
50
76
|
|
|
51
77
|
## Rule References
|
|
52
78
|
- Core rules: `.claude/skills/references/FLOW_ACTION_SPEC_CREATION_RULES.md`
|
|
@@ -55,14 +81,10 @@ $ARGUMENTS
|
|
|
55
81
|
- Excel image export reference: `.claude/skills/references/excel-image-export.md`
|
|
56
82
|
|
|
57
83
|
## Validation Script
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
|
|
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.
|
|
84
|
+
- `.claude/skills/screen-design-spec/scripts/validate_flow_action_spec_numbering.py`
|
|
85
|
+
- `python ".claude/skills/screen-design-spec/scripts/validate_flow_action_spec_numbering.py" --spec "docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md" --en-check`
|
|
86
|
+
- `.claude/skills/screen-design-spec/scripts/renumber_flow_action_spec_global.py`
|
|
65
87
|
- Dry-run:
|
|
66
|
-
- `python scripts/renumber_flow_action_spec_global.py --spec "docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md"`
|
|
88
|
+
- `python ".claude/skills/screen-design-spec/scripts/renumber_flow_action_spec_global.py" --spec "docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md"`
|
|
67
89
|
- Apply:
|
|
68
|
-
- `python scripts/renumber_flow_action_spec_global.py --spec "docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md" --write`
|
|
90
|
+
- `python ".claude/skills/screen-design-spec/scripts/renumber_flow_action_spec_global.py" --spec "docs/specs/[FEATURE_KEY]_FLOW_ACTION_SPEC.md" --write`
|
|
@@ -28,10 +28,21 @@
|
|
|
28
28
|
|
|
29
29
|
## A-1. TBD
|
|
30
30
|
|
|
31
|
+
> Generated outputs should use screen-local visual markers that reset per screen. Prefer Unicode circled-number markers in the real doc. The ASCII placeholders below keep this template PowerShell-safe, and `FLOW_ACTION_SPEC` will map the local markers to its global action-table numbers.
|
|
32
|
+
|
|
31
33
|
```plantuml
|
|
32
34
|
@startsalt
|
|
33
35
|
{
|
|
34
|
-
{
|
|
36
|
+
{+
|
|
37
|
+
<b>Sample Screen</b>
|
|
38
|
+
---
|
|
39
|
+
{ "WF1 Keyword:" | " " } | [ WF2 Search ]
|
|
40
|
+
---
|
|
41
|
+
{#
|
|
42
|
+
<b>WF3 Name</b> | <b>WF4 Status</b>
|
|
43
|
+
Sample | Active
|
|
44
|
+
}
|
|
45
|
+
}
|
|
35
46
|
}
|
|
36
47
|
@endsalt
|
|
37
48
|
```
|
|
@@ -94,6 +94,7 @@ If a section is not in scope, keep the section and mark explicitly as `N/A` with
|
|
|
94
94
|
|
|
95
95
|
- Use one numbering mode only: `global across document`.
|
|
96
96
|
- Number values must increase across all action tables in the document.
|
|
97
|
+
- DESIGN_LAYOUT wireframe markers are a separate screen-local visual system. They may reset per screen and do not need to numerically equal the global action-table `No`.
|
|
97
98
|
- Avoid duplicate item descriptions for the same UI control across screens unless behavior differs.
|
|
98
99
|
- If duplicate number is intentional (rare), annotate reason in `Note`.
|
|
99
100
|
|
|
@@ -127,6 +128,19 @@ Rules:
|
|
|
127
128
|
- The flow-action spec and the design-layout doc must remain separate documents.
|
|
128
129
|
- When Figma becomes available later, update the source mode from `generated-draft` to `source-backed`.
|
|
129
130
|
|
|
131
|
+
## 5.2 Wireframe Marker Mapping for Generated-Draft Screens
|
|
132
|
+
|
|
133
|
+
For generated-draft screens with rendered design-layout images:
|
|
134
|
+
|
|
135
|
+
- Treat wireframe markers as screen-local visual references only.
|
|
136
|
+
- Keep action-table `No` global across the document per section 4.
|
|
137
|
+
- Add a wireframe marker mapping table directly under the screen image.
|
|
138
|
+
- Use this stable header:
|
|
139
|
+
- `No | Wireframe Marker | Action Table No | Item Name | Notes`
|
|
140
|
+
- Map only the items visibly present on the wireframe image.
|
|
141
|
+
- If an action-table row is not visible on the wireframe, state `Not shown on wireframe` in `Notes` instead of inventing a marker.
|
|
142
|
+
- If the wireframe label and the action-table label differ slightly, keep the action-table item name and explain the label difference in `Notes`.
|
|
143
|
+
|
|
130
144
|
## 6. API Traceability Rules
|
|
131
145
|
|
|
132
146
|
- Every actionable UI event that changes state must map to a write API.
|
|
@@ -136,8 +150,11 @@ Rules:
|
|
|
136
150
|
|
|
137
151
|
## 7. PlantUML Rules for Screen Flow
|
|
138
152
|
|
|
139
|
-
- Use
|
|
140
|
-
-
|
|
153
|
+
- Use new-style PlantUML activity diagram syntax only for screen-flow diagrams.
|
|
154
|
+
- Allowed activity constructs include: `start`, `stop`, `partition "..." {}`, `:Activity;`, `->`, `if/then/else/endif`, `fork`, `fork again`, `end fork`, and `note right/left`.
|
|
155
|
+
- Do not mix legacy activity syntax such as `(*)`, `-->`, or `[edge label]` with new-style activity actions like `:Activity;`.
|
|
156
|
+
- Validate renderability before handoff. If a renderer is unavailable in the current environment, at minimum keep the block internally consistent with new-style activity syntax only.
|
|
157
|
+
- Use `\\n` for multi-line labels in activity nodes and notes.
|
|
141
158
|
- Keep diagram at navigation/action level (not low-level SQL or backend internals).
|
|
142
159
|
- Ensure screen names in PlantUML match section names in layout spec.
|
|
143
160
|
|
|
@@ -147,7 +164,8 @@ Rules:
|
|
|
147
164
|
1. Confirmed design source (for example Figma)
|
|
148
165
|
2. Confirmed requirement files (Excel/spec)
|
|
149
166
|
3. User-provided screenshots
|
|
150
|
-
- Store images in repository-relative paths.
|
|
167
|
+
- Store images in repository-relative filesystem paths.
|
|
168
|
+
- Reference images in markdown using file-relative paths from the spec file's directory.
|
|
151
169
|
- Do not keep temporary local absolute paths in markdown.
|
|
152
170
|
|
|
153
171
|
### 8.1 Rendered Screen Images for Generated-Draft Screens
|
|
@@ -155,8 +173,10 @@ Rules:
|
|
|
155
173
|
When `Design Source Type` is `generated-draft`:
|
|
156
174
|
- Screen preview images may be rendered from `DESIGN_LAYOUT_[FEATURE_KEY].md` PlantUML SALT wireframes.
|
|
157
175
|
- Renderer: `toolkit/skills/sdtk-design-layout/scripts/render_design_layout_images.py`
|
|
158
|
-
- Expected output path: `docs/specs/assets/<feature_snake>/screens/<screen_id>.svg`
|
|
159
|
-
-
|
|
176
|
+
- Expected output path (filesystem): `docs/specs/assets/<feature_snake>/screens/<screen_id>.svg`
|
|
177
|
+
- Markdown image path (file-relative from `docs/specs/*_FLOW_ACTION_SPEC.md`): `assets/<feature_snake>/screens/<screen_id>.svg`
|
|
178
|
+
- DESIGN_LAYOUT markers inside the image are screen-local visual references and may reset per screen; use the wireframe mapping table to bridge them to the global action-table `No`.
|
|
179
|
+
- If the rendered `.svg` file exists, use the file-relative markdown path in the `Screen image:` reference.
|
|
160
180
|
- If rendering is unavailable or the `.svg` does not exist, replace the image line with:
|
|
161
181
|
`> Screen image not rendered in this environment. See Design Source Reference for layout.`
|
|
162
182
|
- Do not leave a broken image reference pointing to a non-existent file.
|
|
@@ -47,16 +47,22 @@
|
|
|
47
47
|
|
|
48
48
|
```plantuml
|
|
49
49
|
@startuml
|
|
50
|
-
left to right direction
|
|
51
50
|
skinparam shadowing false
|
|
52
|
-
skinparam
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
skinparam activityBackgroundColor #FEFEFE
|
|
52
|
+
skinparam activityBorderColor #333333
|
|
53
|
+
|
|
54
|
+
title {{FEATURE_NAME}} - Screen Flow Action
|
|
55
|
+
|
|
56
|
+
start
|
|
57
|
+
partition "Main Flow" {
|
|
58
|
+
:SCR-01 Screen A;
|
|
59
|
+
note right
|
|
60
|
+
User reviews the main list and selects an action.
|
|
61
|
+
end note
|
|
62
|
+
-> Open detail;
|
|
63
|
+
:SCR-02 Screen B;
|
|
64
|
+
}
|
|
65
|
+
stop
|
|
60
66
|
@enduml
|
|
61
67
|
```
|
|
62
68
|
|
|
@@ -82,11 +88,21 @@ Information:
|
|
|
82
88
|
- Design Source Reference: Figma URL | screenshot path | `docs/design/DESIGN_LAYOUT_{{FEATURE_KEY}}.md` section reference | `N/A - no UI scope`
|
|
83
89
|
|
|
84
90
|
Screen image:
|
|
91
|
+
<!-- Use a file-relative markdown path from docs/specs/, not a project-root docs/specs/assets/... path. -->
|
|
85
92
|

|
|
86
93
|
|
|
87
94
|
<!-- If the .svg file does not exist (render unavailable), replace the image line above with: -->
|
|
88
95
|
<!-- > Screen image not rendered in this environment. See Design Source Reference for layout. -->
|
|
89
96
|
|
|
97
|
+
#### Wireframe Marker Mapping (Draft)
|
|
98
|
+
|
|
99
|
+
> Generated-draft wireframe markers are screen-local visual references. Map each visible marker to the global action-table `No` used below.
|
|
100
|
+
|
|
101
|
+
| No | Wireframe Marker | Action Table No | Item Name | Notes |
|
|
102
|
+
| ---: | --- | ---: | --- | --- |
|
|
103
|
+
| 1 | marker-1 | 1 | Item A | Visible on wireframe |
|
|
104
|
+
| 2 | marker-2 | 2 | Item B | Visible on wireframe |
|
|
105
|
+
|
|
90
106
|
| No | Item Name | Item Type | Attribute | DB Column | Size | Default Value | Action | Description | Note |
|
|
91
107
|
| ---: | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
92
108
|
| 1 | Item A | Button | - | - | - | - | Click | TBD | TBD |
|
|
@@ -109,11 +125,20 @@ Information:
|
|
|
109
125
|
- Design Source Reference: Figma URL | screenshot path | `docs/design/DESIGN_LAYOUT_{{FEATURE_KEY}}.md` section reference | `N/A - no UI scope`
|
|
110
126
|
|
|
111
127
|
Screen image:
|
|
128
|
+
<!-- Use a file-relative markdown path from docs/specs/, not a project-root docs/specs/assets/... path. -->
|
|
112
129
|

|
|
113
130
|
|
|
114
131
|
<!-- If the .svg file does not exist (render unavailable), replace the image line above with: -->
|
|
115
132
|
<!-- > Screen image not rendered in this environment. See Design Source Reference for layout. -->
|
|
116
133
|
|
|
134
|
+
#### Wireframe Marker Mapping (Draft)
|
|
135
|
+
|
|
136
|
+
> Generated-draft wireframe markers are screen-local visual references. Map each visible marker to the global action-table `No` used below.
|
|
137
|
+
|
|
138
|
+
| No | Wireframe Marker | Action Table No | Item Name | Notes |
|
|
139
|
+
| ---: | --- | ---: | --- | --- |
|
|
140
|
+
| 1 | marker-1 | 3 | Item C | Visible on wireframe |
|
|
141
|
+
|
|
117
142
|
| No | Item Name | Item Type | Attribute | DB Column | Size | Default Value | Action | Description | Note |
|
|
118
143
|
| ---: | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
119
144
|
| 3 | Item C | Toggle | boolean | flag_a | - | false | Toggle | TBD | TBD |
|