@kudusov.takhir/ba-toolkit 4.0.3 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -1
- package/COMMANDS.md +10 -10
- package/README.md +8 -6
- package/bin/ba-toolkit.js +1 -1
- package/package.json +2 -2
- package/skills/done/SKILL.md +118 -0
- package/skills/expand/SKILL.md +112 -0
- package/skills/glossary/SKILL.md +1 -1
- package/skills/revise/SKILL.md +124 -0
- package/skills/risk/SKILL.md +1 -1
- package/skills/split/SKILL.md +151 -0
- package/skills/validate/SKILL.md +124 -0
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,29 @@ Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
+
## [4.1.0] — 2026-04-12
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **5 new refinement skills promoted from inline subcommands to standalone utility skills.** `/validate`, `/revise`, `/expand`, `/split`, and `/done` now have their own `skills/{name}/SKILL.md` files and work as first-class skills in every supported agent. Previously these were documented as "subcommands" but had no SKILL.md — typing them triggered "Unknown skill" errors. Each skill follows the established `/clarify` pattern: YAML frontmatter with trigger phrases, context loading, environment detection, slug source, and closing message format.
|
|
19
|
+
- **`/validate`** — single-artifact completeness and consistency check: mandatory fields, ID format, cross-references, MoSCoW count verification, Definition of Ready compliance. Reports findings by severity; offers auto-fix.
|
|
20
|
+
- **`/revise [section]`** — rewrites a specific section based on user feedback or an `/analyze` finding ID (e.g., `/revise A1`). Includes ripple-effect check across downstream artifacts.
|
|
21
|
+
- **`/expand [section]`** — adds depth and detail to an under-developed section using domain knowledge and prior artifacts. Preserves existing content.
|
|
22
|
+
- **`/split [element]`** — decomposes an oversized FR, User Story, or Use Case into smaller pieces using INVEST criteria and Mike Cohn's nine story-splitting patterns. Updates cross-references.
|
|
23
|
+
- **`/done`** — finalizes the current artifact (Version 1.0, Status: Approved), runs a quality gate check (blocks on CRITICAL findings), updates `AGENTS.md` pipeline status, and presents the next pipeline step.
|
|
24
|
+
- **Skill count increased from 24 to 29** across all documentation, package metadata, and test assertions.
|
|
25
|
+
- **"Subcommands" terminology retired** — all references to "subcommands" in documentation updated to "refinement skills". The `## Subcommands` section in COMMANDS.md and README.md replaced with `## Refinement skills` with full skill descriptions.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## [4.0.4] — 2026-04-12
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **`/risk` and `/glossary` used wrong path prefix for domain references** — `skills/references/domains/{domain}.md` instead of `references/domains/{domain}.md`. The `skills/` prefix pointed to a repo-root-relative path that does not exist in the installed agent directory (e.g., `.claude/skills/`), so AI agents could fail to load the domain file when running these two skills. All other skills already used the correct relative path.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
14
37
|
## [4.0.3] — 2026-04-12
|
|
15
38
|
|
|
16
39
|
### Fixed
|
|
@@ -899,7 +922,9 @@ CI scripts that relied on the old behaviour (`init` creates files only, `install
|
|
|
899
922
|
|
|
900
923
|
---
|
|
901
924
|
|
|
902
|
-
[Unreleased]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0
|
|
925
|
+
[Unreleased]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.1.0...HEAD
|
|
926
|
+
[4.1.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0.4...v4.1.0
|
|
927
|
+
[4.0.4]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0.3...v4.0.4
|
|
903
928
|
[4.0.3]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0.2...v4.0.3
|
|
904
929
|
[4.0.2]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0.1...v4.0.2
|
|
905
930
|
[4.0.1]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0.0...v4.0.1
|
package/COMMANDS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# BA Toolkit — Command Reference
|
|
2
2
|
|
|
3
|
-
Quick reference for all
|
|
3
|
+
Quick reference for all 29 skills. For term and acronym definitions (FR, US, AC, IEEE 830, etc.), see the [glossary](docs/GLOSSARY.md).
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -46,17 +46,17 @@ Available at any pipeline stage.
|
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
49
|
-
##
|
|
49
|
+
## Refinement skills
|
|
50
50
|
|
|
51
|
-
Available
|
|
51
|
+
Available at any pipeline stage after the first artifact exists. These skills refine and validate artifacts without advancing the pipeline (except `/done`, which finalizes and moves on).
|
|
52
52
|
|
|
53
|
-
|
|
|
54
|
-
|
|
55
|
-
| `/
|
|
56
|
-
| `/
|
|
57
|
-
| `/
|
|
58
|
-
| `/
|
|
59
|
-
| `/done` |
|
|
53
|
+
| Command | Output file | What it generates |
|
|
54
|
+
|---------|-------------|-------------------|
|
|
55
|
+
| `/validate` | _(reports in chat)_ | Completeness and consistency check for a single artifact: mandatory fields, ID format, cross-references, MoSCoW counts, Definition of Ready |
|
|
56
|
+
| `/revise [section]` | _(updates existing artifact)_ | Section rewrite: applies user feedback or resolves an `/analyze` finding, with ripple-effect check across downstream artifacts |
|
|
57
|
+
| `/expand [section]` | _(updates existing artifact)_ | Section expansion: adds depth, detail, and missing elements to an under-developed section |
|
|
58
|
+
| `/split [element]` | _(updates existing artifact)_ | Element decomposition: breaks an oversized FR, User Story, or Use Case into smaller pieces using INVEST criteria and Cohn's splitting patterns |
|
|
59
|
+
| `/done` | _(updates AGENTS.md)_ | Finalize: quality gate check, artifact metadata update (Version 1.0, Status: Approved), AGENTS.md pipeline advancement |
|
|
60
60
|
|
|
61
61
|
---
|
|
62
62
|
|
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ Turn a rough project idea into a complete, structured specification — then han
|
|
|
22
22
|
|
|
23
23
|
## What is this
|
|
24
24
|
|
|
25
|
-
BA Toolkit turns a rough project idea into a complete, structured specification — requirements, user stories, acceptance criteria, API contracts, wireframes, and a step-by-step implementation plan. It runs as **
|
|
25
|
+
BA Toolkit turns a rough project idea into a complete, structured specification — requirements, user stories, acceptance criteria, API contracts, wireframes, and a step-by-step implementation plan. It runs as **29 AI-powered skills** inside your coding agent (Claude Code, Cursor, Codex CLI, Gemini CLI, or Windsurf) and produces Markdown documents that are cross-referenced, traceable, and ready for development or stakeholder review.
|
|
26
26
|
|
|
27
27
|
**How it works:** you type a slash command (e.g., `/brief`), the agent asks you a series of focused questions about your project, and generates a structured document. Each step builds on the previous ones — requirements link to user stories, stories link to acceptance criteria, and so on through the entire chain. After the last step, you have a complete specification package that a developer or AI coding agent can execute.
|
|
28
28
|
|
|
@@ -119,11 +119,11 @@ Reload the CLI after copying.
|
|
|
119
119
|
|
|
120
120
|
### Cursor
|
|
121
121
|
|
|
122
|
-
Cursor has two separate features — Rules (`.cursor/rules/*.mdc`) and [Agent Skills](https://cursor.com/docs/skills) (`.cursor/skills/<skill>/SKILL.md`). BA Toolkit is a set of skills, not rules, so `ba-toolkit install --for cursor` drops the
|
|
122
|
+
Cursor has two separate features — Rules (`.cursor/rules/*.mdc`) and [Agent Skills](https://cursor.com/docs/skills) (`.cursor/skills/<skill>/SKILL.md`). BA Toolkit is a set of skills, not rules, so `ba-toolkit install --for cursor` drops the 29 skills directly into `.cursor/skills/` using the native folder-per-skill `SKILL.md` format — no conversion needed. Reload the Cursor window to pick them up.
|
|
123
123
|
|
|
124
124
|
### Windsurf
|
|
125
125
|
|
|
126
|
-
Windsurf's [Agent Skills](https://docs.windsurf.com/windsurf/cascade/skills) feature loads skills from `.windsurf/skills/<skill>/SKILL.md`, the same folder-per-skill layout as Claude Code and Cursor. `ba-toolkit install --for windsurf` writes the
|
|
126
|
+
Windsurf's [Agent Skills](https://docs.windsurf.com/windsurf/cascade/skills) feature loads skills from `.windsurf/skills/<skill>/SKILL.md`, the same folder-per-skill layout as Claude Code and Cursor. `ba-toolkit install --for windsurf` writes the 29 skills there natively. Reload the Windsurf window to pick them up.
|
|
127
127
|
|
|
128
128
|
### Aider
|
|
129
129
|
|
|
@@ -318,11 +318,13 @@ Adding a new domain = creating one Markdown file in `skills/references/domains/`
|
|
|
318
318
|
|
|
319
319
|
## How it works
|
|
320
320
|
|
|
321
|
-
Most pipeline skills follow the same cycle: **Command → Context → Interview → Generate → Refine**. Each skill loads all previous artifacts plus the domain reference and project principles, asks a few rounds of targeted questions, writes a Markdown artifact, and offers refinement
|
|
321
|
+
Most pipeline skills follow the same cycle: **Command → Context → Interview → Generate → Refine**. Each skill loads all previous artifacts plus the domain reference and project principles, asks a few rounds of targeted questions, writes a Markdown artifact, and offers refinement skills before moving on. `/handoff`, `/trace`, and `/analyze` skip the interview — they extract everything from existing artifacts automatically.
|
|
322
322
|
|
|
323
323
|
Every artifact links back to its predecessors, forming the chain `FR → US → UC → AC → NFR → Entity → ADR → API → WF → Scenario` (see [glossary](docs/GLOSSARY.md) for definitions). Run `/trace` to verify coverage and `/analyze` for severity-rated findings (duplicates, ambiguous terms, terminology drift, invalid references).
|
|
324
324
|
|
|
325
|
-
###
|
|
325
|
+
### Refinement skills
|
|
326
|
+
|
|
327
|
+
Available at any pipeline stage after the first artifact exists. These skills refine and validate artifacts without advancing the pipeline (except `/done`, which finalizes and moves on).
|
|
326
328
|
|
|
327
329
|
| Command | What it does |
|
|
328
330
|
|---------|-------------|
|
|
@@ -338,7 +340,7 @@ Every artifact links back to its predecessors, forming the chain `FR → US →
|
|
|
338
340
|
|
|
339
341
|
## Minimum viable pipeline
|
|
340
342
|
|
|
341
|
-
Not every project needs all
|
|
343
|
+
Not every project needs all 29 skills. Three common paths:
|
|
342
344
|
|
|
343
345
|
**Concept-first** (when you don't yet know what to build):
|
|
344
346
|
```
|
package/bin/ba-toolkit.js
CHANGED
|
@@ -21,7 +21,7 @@ const PKG = JSON.parse(fs.readFileSync(path.join(PACKAGE_ROOT, 'package.json'),
|
|
|
21
21
|
// All five supported agents — Claude Code, Codex CLI, Gemini CLI,
|
|
22
22
|
// Cursor, and Windsurf — load Agent Skills as direct subfolders of
|
|
23
23
|
// their skills root: `<skills-root>/<skill-name>/SKILL.md`. The toolkit
|
|
24
|
-
// installs the
|
|
24
|
+
// installs the 29 skills natively in this layout for every agent. No
|
|
25
25
|
// .mdc conversion. Confirmed against the Agent Skills documentation
|
|
26
26
|
// for each platform via ctx7 MCP / official docs.
|
|
27
27
|
//
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kudusov.takhir/ba-toolkit",
|
|
3
|
-
"version": "4.0
|
|
4
|
-
"description": "AI-powered Business Analyst pipeline —
|
|
3
|
+
"version": "4.1.0",
|
|
4
|
+
"description": "AI-powered Business Analyst pipeline — 29 skills from concept discovery to a sequenced implementation plan an AI coding agent can execute, with one-command Notion + Confluence publish. Works with Claude Code, Codex CLI, Gemini CLI, Cursor, and Windsurf.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"business-analyst",
|
|
7
7
|
"requirements",
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: done
|
|
3
|
+
description: >
|
|
4
|
+
Finalize the current artifact and advance to the next pipeline step. Use on /done command, or when the user says "done with this", "finalize", "lock this artifact", "move on", "next step", "mark as done", "approve this artifact". Gates on CRITICAL findings from /validate or /analyze. Updates AGENTS.md pipeline status.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /done — Finalize & Advance
|
|
8
|
+
|
|
9
|
+
Utility skill. Finalizes the current artifact, updates `AGENTS.md`, and presents the next pipeline step. This is the only refinement skill that advances the pipeline.
|
|
10
|
+
|
|
11
|
+
## Syntax
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/done [optional: artifact reference]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
- `/done` — finalize the most recent artifact
|
|
19
|
+
- `/done brief` — finalize the brief specifically
|
|
20
|
+
- `/done srs` — finalize the SRS
|
|
21
|
+
|
|
22
|
+
## Context loading
|
|
23
|
+
|
|
24
|
+
0. If `00_principles_*.md` exists in the output directory, load it. Use its quality gate (section 6) to determine which severity blocks finalization.
|
|
25
|
+
1. Identify the target artifact:
|
|
26
|
+
- If the user specifies an artifact name, use it.
|
|
27
|
+
- Otherwise, use the most recently generated artifact in the output directory.
|
|
28
|
+
2. Read the target artifact fully.
|
|
29
|
+
3. Read `AGENTS.md` to find the pipeline status table.
|
|
30
|
+
4. If `00_analyze_*.md` exists, check for unresolved CRITICAL findings against this artifact.
|
|
31
|
+
|
|
32
|
+
## Environment
|
|
33
|
+
|
|
34
|
+
Read `references/environment.md` from the `ba-toolkit` directory to determine the output directory. If unavailable, apply the default rule.
|
|
35
|
+
|
|
36
|
+
## Slug source
|
|
37
|
+
|
|
38
|
+
Read `references/slug-source.md` from the `ba-toolkit` directory. Follow its rules to resolve the project slug from `AGENTS.md`.
|
|
39
|
+
|
|
40
|
+
## Finalization workflow
|
|
41
|
+
|
|
42
|
+
### Step 1 — Quality gate check
|
|
43
|
+
|
|
44
|
+
Before finalizing, run a lightweight validation:
|
|
45
|
+
|
|
46
|
+
1. **Check for CRITICAL findings.** If `00_analyze_*.md` exists and contains unresolved CRITICAL findings for this artifact, block finalization:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Cannot finalize — {N} CRITICAL finding(s) remain:
|
|
50
|
+
- A1: MoSCoW counts mismatch in §6
|
|
51
|
+
- A5: FR-012 referenced but does not exist
|
|
52
|
+
|
|
53
|
+
Fix these with `/revise` or `/validate`, then retry `/done`.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
2. **Quick completeness scan.** Check for placeholder text (`(TBD)`, `(TODO)`, empty required fields). If found, warn but do not block:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
⚠ {N} placeholder(s) found — consider resolving before finalizing:
|
|
60
|
+
- §5: "(имя основателя)" in stakeholders table
|
|
61
|
+
- FR-018: Source field is "(TBD)"
|
|
62
|
+
|
|
63
|
+
Finalize anyway? (yes / fix first)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
3. **If no blockers**, proceed to finalization.
|
|
67
|
+
|
|
68
|
+
### Step 2 — Update artifact metadata
|
|
69
|
+
|
|
70
|
+
Update the artifact header:
|
|
71
|
+
|
|
72
|
+
- **Version:** bump to `1.0` (or the next whole number if already versioned).
|
|
73
|
+
- **Status:** change from `Draft` to `Approved`.
|
|
74
|
+
- **Date:** update to today's date.
|
|
75
|
+
|
|
76
|
+
### Step 3 — Update AGENTS.md
|
|
77
|
+
|
|
78
|
+
Find the `## Pipeline Status` table in `AGENTS.md`. Update the row for the current skill:
|
|
79
|
+
|
|
80
|
+
- **Status:** `⬜ Not started` or `🔄 In progress` → `✅ Done`
|
|
81
|
+
- **File:** fill in the artifact filename (e.g., `output/01_brief_sock-market.md`)
|
|
82
|
+
|
|
83
|
+
**Do not touch the managed block** (`<!-- ba-toolkit:begin managed -->` … `<!-- ba-toolkit:end managed -->`) — that is owned by `ba-toolkit init`.
|
|
84
|
+
|
|
85
|
+
### Step 4 — Present next step
|
|
86
|
+
|
|
87
|
+
Build the `Next step:` block from the pipeline lookup table in `references/closing-message.md`. Look up the row where `Current` matches the skill that produced the finalized artifact, and present the four `→` lines:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
✓ Artifact finalized: `{file_path}` — Version 1.0, Status: Approved.
|
|
91
|
+
|
|
92
|
+
AGENTS.md updated: {skill} → ✅ Done.
|
|
93
|
+
|
|
94
|
+
Next step: /{next_command}
|
|
95
|
+
|
|
96
|
+
→ What it produces: {description}
|
|
97
|
+
→ Output file: {NN}_{name}_{slug}.md
|
|
98
|
+
→ Time estimate: {min}–{max} minutes
|
|
99
|
+
→ After that: /{step_after_next} ({description})
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
If the finalized artifact is from `/implement-plan` (the last pipeline step), present:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
✓ Artifact finalized: `{file_path}` — Version 1.0, Status: Approved.
|
|
106
|
+
|
|
107
|
+
Pipeline complete. Hand `12_implplan_{slug}.md` to your AI coding agent (Claude Code, Cursor, Windsurf, Codex, Gemini) to begin implementation.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Edge cases
|
|
111
|
+
|
|
112
|
+
- **Artifact already finalized.** If the artifact's Status is already `Approved` and AGENTS.md already shows `✅ Done`, inform the user and do nothing.
|
|
113
|
+
- **Multiple artifacts pending.** `/done` finalizes one artifact at a time. If the user wants to finalize multiple, they run `/done` once per artifact.
|
|
114
|
+
- **No AGENTS.md.** Warn the user that the project was likely not scaffolded with `ba-toolkit init`. Finalize the artifact metadata but skip the AGENTS.md update.
|
|
115
|
+
|
|
116
|
+
## Style
|
|
117
|
+
|
|
118
|
+
Formal, neutral. Generate output in the language of the artifact.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: expand
|
|
3
|
+
description: >
|
|
4
|
+
Add more depth and detail to an under-developed section of a BA Toolkit artifact. Use on /expand command, or when the user asks to "expand this section", "add more detail", "flesh out", "elaborate on", "go deeper on", "add depth to", "develop further". Utility skill available at any pipeline stage after the first artifact exists.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /expand — Section Expansion
|
|
8
|
+
|
|
9
|
+
Utility skill. Adds depth, detail, and coverage to a thin or under-developed section of the target artifact. Updates the artifact in place; does not generate a new file.
|
|
10
|
+
|
|
11
|
+
## Syntax
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/expand [section reference] [optional: inline guidance]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
- `/expand risks` — expand the risks section of the most recent artifact
|
|
19
|
+
- `/expand §7` — expand section 7
|
|
20
|
+
- `/expand §3.2 add edge cases for payment failures` — expand with specific direction
|
|
21
|
+
- `/expand assumptions in brief` — expand the assumptions section of the brief
|
|
22
|
+
- `/expand FR-003` — expand a specific functional requirement with more detail
|
|
23
|
+
|
|
24
|
+
## Context loading
|
|
25
|
+
|
|
26
|
+
0. If `00_principles_*.md` exists in the output directory, load it.
|
|
27
|
+
1. Identify the target artifact:
|
|
28
|
+
- If the user specifies an artifact name (e.g., "in brief", "in srs"), use it.
|
|
29
|
+
- Otherwise, use the most recently generated artifact in the output directory.
|
|
30
|
+
2. Read the target artifact fully.
|
|
31
|
+
3. Read prior artifacts for context that can inform the expansion.
|
|
32
|
+
4. Load the domain reference (`references/domains/{domain}.md`) if available — domain-specific knowledge helps generate richer content.
|
|
33
|
+
|
|
34
|
+
## Environment
|
|
35
|
+
|
|
36
|
+
Read `references/environment.md` from the `ba-toolkit` directory to determine the output directory. If unavailable, apply the default rule.
|
|
37
|
+
|
|
38
|
+
## Slug source
|
|
39
|
+
|
|
40
|
+
Read `references/slug-source.md` from the `ba-toolkit` directory. Follow its rules to resolve the project slug from `AGENTS.md`.
|
|
41
|
+
|
|
42
|
+
## Section identification
|
|
43
|
+
|
|
44
|
+
Use the same identification strategy as `/revise`:
|
|
45
|
+
|
|
46
|
+
1. **Section number.** `§3`, `section 3`, `§3.2`.
|
|
47
|
+
2. **Section name keyword.** `risks`, `constraints`, `assumptions`, `glossary`.
|
|
48
|
+
3. **Element ID.** `FR-003`, `US-012` — expand that specific element.
|
|
49
|
+
|
|
50
|
+
If the section cannot be identified, ask the user to clarify.
|
|
51
|
+
|
|
52
|
+
## Expansion workflow
|
|
53
|
+
|
|
54
|
+
### Step 1 — Assess current state
|
|
55
|
+
|
|
56
|
+
Read the target section and assess what is thin or missing:
|
|
57
|
+
|
|
58
|
+
- **Tables with few rows** — can more rows be added based on the domain reference, prior artifacts, or industry knowledge?
|
|
59
|
+
- **Single-sentence descriptions** — can they be expanded with acceptance criteria, edge cases, or examples?
|
|
60
|
+
- **Missing sub-sections** — does the template for this artifact type include sub-sections that are absent?
|
|
61
|
+
- **Bare elements** — elements with only required fields but no optional fields (Source, Rationale, Verification method, etc.)?
|
|
62
|
+
|
|
63
|
+
### Step 2 — Generate expansion
|
|
64
|
+
|
|
65
|
+
If the user provided inline guidance, follow it. Otherwise, use domain knowledge and prior artifacts to determine what to add.
|
|
66
|
+
|
|
67
|
+
Follow these rules:
|
|
68
|
+
|
|
69
|
+
1. **Add, don't replace.** Preserve all existing content. New content is appended or inserted at the appropriate position.
|
|
70
|
+
2. **Follow the artifact's conventions.** Match ID scheme, heading levels, table columns, and language.
|
|
71
|
+
3. **Ground in prior artifacts.** Every new element (FR, risk, assumption, etc.) should trace back to something in a prior artifact or in the domain reference. Do not invent requirements that contradict existing decisions.
|
|
72
|
+
4. **Respect MoSCoW.** New elements added during expansion are typically Should or Could priority unless the user explicitly marks them higher.
|
|
73
|
+
5. **Update counts.** If the artifact has a summary table with counts (e.g., MoSCoW distribution), update it after adding new elements.
|
|
74
|
+
|
|
75
|
+
### Step 3 — Present and confirm
|
|
76
|
+
|
|
77
|
+
Before saving, present a summary of what will be added:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Expanding §{N}: {section title}
|
|
81
|
+
|
|
82
|
+
Adding:
|
|
83
|
+
- {N} new {element type}(s): {brief list}
|
|
84
|
+
- {N} fields enriched on existing elements
|
|
85
|
+
- Sub-section "{name}" added
|
|
86
|
+
|
|
87
|
+
Total section size: {before} → {after} elements.
|
|
88
|
+
|
|
89
|
+
Apply? (yes / adjust — describe what to change)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
For small expansions (fewer than 3 changes), skip the confirmation and apply directly with a one-line acknowledgment.
|
|
93
|
+
|
|
94
|
+
### Step 4 — Save
|
|
95
|
+
|
|
96
|
+
Save the updated artifact. Bump the version (e.g., `0.1` → `0.2`) and update the date.
|
|
97
|
+
|
|
98
|
+
## Closing message
|
|
99
|
+
|
|
100
|
+
After saving, present the following summary (see `references/closing-message.md` for format):
|
|
101
|
+
|
|
102
|
+
- Saved file path.
|
|
103
|
+
- Summary of what was added (element counts, new sub-sections).
|
|
104
|
+
- Any new cross-references created.
|
|
105
|
+
|
|
106
|
+
Available commands: `/expand [section]` (expand another section) · `/validate` · `/clarify [focus]` · `/revise [section]` · `/done`
|
|
107
|
+
|
|
108
|
+
No pipeline advancement — return to the current artifact's workflow.
|
|
109
|
+
|
|
110
|
+
## Style
|
|
111
|
+
|
|
112
|
+
Formal, neutral. Generate output in the language of the artifact.
|
package/skills/glossary/SKILL.md
CHANGED
|
@@ -40,7 +40,7 @@ Examples:
|
|
|
40
40
|
- `10_scenarios_{slug}.md` — persona names, scenario types
|
|
41
41
|
- `11_handoff_{slug}.md` — any additional terms
|
|
42
42
|
- `12_implplan_{slug}.md` — phase names, task ids, technology choices from the Tech Stack header
|
|
43
|
-
2. Load `
|
|
43
|
+
2. Load `references/domains/{domain}.md` — Domain Glossary section.
|
|
44
44
|
3. If `00_glossary_{slug}.md` already exists, load it to merge rather than replace.
|
|
45
45
|
|
|
46
46
|
## Environment
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: revise
|
|
3
|
+
description: >
|
|
4
|
+
Rewrite a specific section of a BA Toolkit artifact with new feedback. Use on /revise command, or when the user asks to "revise a section", "rewrite this part", "update section", "fix section", "change section", "rework this", "apply feedback". Accepts a section name, section number, or an /analyze finding ID. Utility skill available at any pipeline stage after the first artifact exists.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /revise — Section Rewrite
|
|
8
|
+
|
|
9
|
+
Utility skill. Rewrites a specific section (or resolves a specific finding) in the target artifact based on the user's feedback. Updates the artifact in place; does not generate a new file.
|
|
10
|
+
|
|
11
|
+
## Syntax
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/revise [section reference or finding ID] [optional: inline feedback]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
- `/revise §6` — revise section 6 of the most recent artifact
|
|
19
|
+
- `/revise risks` — revise the risks section
|
|
20
|
+
- `/revise A1` — resolve finding A1 from the latest `/analyze` report
|
|
21
|
+
- `/revise §3 add more detail about payment processing` — revise with inline direction
|
|
22
|
+
- `/revise V-002` — resolve finding V-002 from the latest `/validate` report
|
|
23
|
+
- `/revise section 7 in brief` — revise section 7 of the brief specifically
|
|
24
|
+
|
|
25
|
+
## Context loading
|
|
26
|
+
|
|
27
|
+
0. If `00_principles_*.md` exists in the output directory, load it. Use its conventions for maintaining consistency during the rewrite.
|
|
28
|
+
1. Identify the target artifact:
|
|
29
|
+
- If the user specifies an artifact name (e.g., "in brief", "in srs"), use it.
|
|
30
|
+
- If the user specifies a finding ID (e.g., `A1`, `V-002`), locate the finding in `00_analyze_*.md` or the last `/validate` output, and use the artifact referenced by that finding.
|
|
31
|
+
- Otherwise, use the most recently generated artifact in the output directory.
|
|
32
|
+
2. Read the target artifact fully.
|
|
33
|
+
3. Read prior artifacts for cross-reference context (roles, terms, IDs).
|
|
34
|
+
4. If the user referenced an `/analyze` finding, read `00_analyze_*.md` to understand the finding details and recommendation.
|
|
35
|
+
|
|
36
|
+
## Environment
|
|
37
|
+
|
|
38
|
+
Read `references/environment.md` from the `ba-toolkit` directory to determine the output directory. If unavailable, apply the default rule.
|
|
39
|
+
|
|
40
|
+
## Slug source
|
|
41
|
+
|
|
42
|
+
Read `references/slug-source.md` from the `ba-toolkit` directory. Follow its rules to resolve the project slug from `AGENTS.md`.
|
|
43
|
+
|
|
44
|
+
## Section identification
|
|
45
|
+
|
|
46
|
+
Identify the target section using one of these strategies (in order of priority):
|
|
47
|
+
|
|
48
|
+
1. **Section number.** `§3`, `section 3`, `§3.2` — match the `## 3.` or `### 3.2` heading.
|
|
49
|
+
2. **Section name keyword.** `risks`, `constraints`, `stakeholders`, `MoSCoW`, `glossary` — match the closest heading by keyword.
|
|
50
|
+
3. **Finding ID.** `A1`, `A2`, `V-001` — read the finding's `Location` field to identify the section and element.
|
|
51
|
+
4. **Element ID.** `FR-003`, `US-012` — find the element and its containing section.
|
|
52
|
+
|
|
53
|
+
If the section cannot be identified, ask the user to clarify.
|
|
54
|
+
|
|
55
|
+
## Revision workflow
|
|
56
|
+
|
|
57
|
+
### Step 1 — Understand the change
|
|
58
|
+
|
|
59
|
+
If the user provided inline feedback (e.g., `/revise §3 add payment processing details`), use it directly.
|
|
60
|
+
|
|
61
|
+
If the user provided only a section reference, ask one focused question:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Section {N}: {section title} — {current content summary in one line}.
|
|
65
|
+
|
|
66
|
+
What should change? (Describe the update, or type "apply A1" to use an /analyze recommendation.)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
If the user referenced a finding ID, extract the finding's `Recommendation` field and confirm:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
Finding {ID}: {summary}. Recommendation: {recommendation}.
|
|
73
|
+
|
|
74
|
+
Apply this recommendation? (yes / adjust — type your version)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Step 2 — Rewrite
|
|
78
|
+
|
|
79
|
+
Rewrite the identified section following these rules:
|
|
80
|
+
|
|
81
|
+
1. **Preserve structure.** Keep the same heading level, table format, and element ID scheme.
|
|
82
|
+
2. **Preserve unchanged content.** Only modify what needs to change. Do not rewrite adjacent sections.
|
|
83
|
+
3. **Maintain cross-references.** If the rewrite changes an element ID, update all internal references within the artifact.
|
|
84
|
+
4. **Follow artifact conventions.** Match the style, language, and format of the rest of the artifact.
|
|
85
|
+
5. **Update metadata.** Bump the artifact version (e.g., `0.1` → `0.2`) and update the date.
|
|
86
|
+
|
|
87
|
+
### Step 3 — Ripple-effect check
|
|
88
|
+
|
|
89
|
+
Before saving, check whether the change affects other artifacts:
|
|
90
|
+
|
|
91
|
+
- A changed role definition affects `/srs` Roles, `/stories` personas, `/usecases` actors, `/scenarios` personas.
|
|
92
|
+
- A changed business rule affects `/srs` business rules, `/ac` Given/When/Then conditions, `/datadict` constraints, `/apicontract` validation rules.
|
|
93
|
+
- A changed FR affects `/stories` (linked FR), `/usecases` (linked FR), `/ac` (linked US → FR), `/nfr` (if the FR had NFR implications).
|
|
94
|
+
- A removed or renumbered element affects every artifact that references its ID.
|
|
95
|
+
|
|
96
|
+
If ripple effects are detected, list the affected files and offer to update them:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
This change affects {N} other artifact(s):
|
|
100
|
+
- `02_srs_*.md` — roles section references the changed role
|
|
101
|
+
- `03_stories_*.md` — 2 stories link to the modified FR
|
|
102
|
+
|
|
103
|
+
Update them now? (yes / no / pick files)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Step 4 — Save
|
|
107
|
+
|
|
108
|
+
Save the updated artifact. If the user approved ripple-effect updates, save those too.
|
|
109
|
+
|
|
110
|
+
## Closing message
|
|
111
|
+
|
|
112
|
+
After saving, present the following summary (see `references/closing-message.md` for format):
|
|
113
|
+
|
|
114
|
+
- Saved file path(s).
|
|
115
|
+
- Summary of what changed (section, element count, nature of change).
|
|
116
|
+
- Any ripple-effect updates applied or deferred.
|
|
117
|
+
|
|
118
|
+
Available commands: `/revise [section]` (revise another section) · `/validate` · `/clarify [focus]` · `/done`
|
|
119
|
+
|
|
120
|
+
No pipeline advancement — return to the current artifact's workflow.
|
|
121
|
+
|
|
122
|
+
## Style
|
|
123
|
+
|
|
124
|
+
Formal, neutral. Generate output in the language of the artifact.
|
package/skills/risk/SKILL.md
CHANGED
|
@@ -28,7 +28,7 @@ Examples:
|
|
|
28
28
|
- `06_nfr_{slug}.md` — NFR targets that are aggressive or uncertain (performance, security, availability)
|
|
29
29
|
- `07a_research_{slug}.md` — ADR alternatives rejected, integration unknowns, technology risks
|
|
30
30
|
- `08_apicontract_{slug}.md` — third-party API dependencies, rate limits, SLA gaps
|
|
31
|
-
2. Load `
|
|
31
|
+
2. Load `references/domains/{domain}.md` — note any domain-specific compliance or regulatory risk categories.
|
|
32
32
|
3. If `00_risks_{slug}.md` already exists, load it to merge rather than replace.
|
|
33
33
|
|
|
34
34
|
## Environment
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: split
|
|
3
|
+
description: >
|
|
4
|
+
Break a large element (FR, User Story, Use Case, etc.) into smaller, more manageable pieces. Use on /split command, or when the user asks to "split this story", "break down", "decompose", "this is too big", "split requirement", "make smaller". References INVEST criteria for User Stories and Mike Cohn's nine story-splitting patterns. Utility skill available at any pipeline stage after the first artifact exists.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /split — Element Decomposition
|
|
8
|
+
|
|
9
|
+
Utility skill. Breaks a large element (FR, US, UC, AC, NFR) into smaller, well-scoped pieces. Updates the artifact in place; does not generate a new file.
|
|
10
|
+
|
|
11
|
+
## Syntax
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/split [element ID] [optional: split strategy hint]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
- `/split US-014` — split User Story 014
|
|
19
|
+
- `/split FR-003` — split Functional Requirement 003
|
|
20
|
+
- `/split US-014 by user role` — split by role (one of Cohn's patterns)
|
|
21
|
+
- `/split UC-005 by happy path vs error paths` — split by flow
|
|
22
|
+
- `/split FR-012 into CRUD operations` — split by operation
|
|
23
|
+
|
|
24
|
+
## Context loading
|
|
25
|
+
|
|
26
|
+
0. If `00_principles_*.md` exists in the output directory, load it. Use its ID conventions (section 2) to assign new IDs and its Definition of Ready (section 4) to validate the resulting elements.
|
|
27
|
+
1. Identify the target artifact by finding the element ID in the output directory.
|
|
28
|
+
2. Read the target artifact fully.
|
|
29
|
+
3. Read prior artifacts for context (the element's linked FRs, upstream brief goals, etc.).
|
|
30
|
+
|
|
31
|
+
## Environment
|
|
32
|
+
|
|
33
|
+
Read `references/environment.md` from the `ba-toolkit` directory to determine the output directory. If unavailable, apply the default rule.
|
|
34
|
+
|
|
35
|
+
## Slug source
|
|
36
|
+
|
|
37
|
+
Read `references/slug-source.md` from the `ba-toolkit` directory. Follow its rules to resolve the project slug from `AGENTS.md`.
|
|
38
|
+
|
|
39
|
+
## Split strategies
|
|
40
|
+
|
|
41
|
+
Use the appropriate strategy based on the element type and the user's hint. If no hint is provided, choose the best strategy automatically.
|
|
42
|
+
|
|
43
|
+
### For User Stories — INVEST + Cohn's nine patterns
|
|
44
|
+
|
|
45
|
+
A story should be split when it violates the **S** (Small) or **I** (Independent) criteria of INVEST. Apply one of Mike Cohn's nine story-splitting patterns:
|
|
46
|
+
|
|
47
|
+
1. **By workflow step.** "As a buyer, I can purchase an item" → separate stories for browse, add-to-cart, checkout, payment, confirmation.
|
|
48
|
+
2. **By business rule variation.** "As a master, I can set pricing" → separate stories for fixed price, auction, bulk discount.
|
|
49
|
+
3. **By data variation.** "As a buyer, I can search" → separate stories for search by keyword, by category, by price range, by material.
|
|
50
|
+
4. **By interface.** "As a user, I can pay" → separate stories for card payment, SBP, e-wallet.
|
|
51
|
+
5. **By user role.** "As a user, I can manage profile" → separate stories for buyer profile vs. master profile.
|
|
52
|
+
6. **By CRUD operation.** "As an admin, I can manage masters" → create, read, update, delete/suspend.
|
|
53
|
+
7. **By happy path vs. exceptions.** "As a buyer, I can place an order" → happy path, out-of-stock, payment failure, address validation error.
|
|
54
|
+
8. **By effort (spike + implementation).** "As a developer, I can integrate payment gateway" → research/spike story + implementation story.
|
|
55
|
+
9. **By platform/channel.** "As a user, I can receive notifications" → email, push, in-app.
|
|
56
|
+
|
|
57
|
+
### For Functional Requirements
|
|
58
|
+
|
|
59
|
+
Split by:
|
|
60
|
+
- **Sub-function.** A compound FR ("The system shall manage orders") → separate FRs for order creation, status tracking, cancellation, refund.
|
|
61
|
+
- **Actor.** An FR that serves multiple roles → one FR per role.
|
|
62
|
+
- **Trigger condition.** An FR with multiple triggers → one FR per trigger.
|
|
63
|
+
|
|
64
|
+
### For Use Cases
|
|
65
|
+
|
|
66
|
+
Split by:
|
|
67
|
+
- **Goal level.** A summary-level UC → multiple user-goal-level UCs.
|
|
68
|
+
- **Main flow vs. extensions.** A UC with 5+ extensions → promote major extensions to separate UCs.
|
|
69
|
+
|
|
70
|
+
## Split workflow
|
|
71
|
+
|
|
72
|
+
### Step 1 — Analyze the element
|
|
73
|
+
|
|
74
|
+
Read the element and determine:
|
|
75
|
+
- Why it is too large (too many acceptance criteria, too many business rules, too many actors, compound action).
|
|
76
|
+
- Which split strategy fits best.
|
|
77
|
+
- How many pieces it should become (typically 2–4; never more than 6).
|
|
78
|
+
|
|
79
|
+
### Step 2 — Propose the split
|
|
80
|
+
|
|
81
|
+
Present the proposed split for user review:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Splitting {element_ID}: "{element title}"
|
|
85
|
+
|
|
86
|
+
Strategy: {strategy name} (e.g., "by workflow step")
|
|
87
|
+
Reason: {why this element is too large}
|
|
88
|
+
|
|
89
|
+
| New ID | Title | Priority | Key difference |
|
|
90
|
+
|--------|-------|----------|----------------|
|
|
91
|
+
| US-014a | ... | Must | ... |
|
|
92
|
+
| US-014b | ... | Must | ... |
|
|
93
|
+
| US-014c | ... | Should | ... |
|
|
94
|
+
|
|
95
|
+
The original {element_ID} will be replaced by these {N} elements.
|
|
96
|
+
|
|
97
|
+
Cross-references that currently point to {element_ID}:
|
|
98
|
+
- AC-021, AC-022 → will be reassigned to the appropriate new element
|
|
99
|
+
- UC-005 step 3 → will reference US-014a
|
|
100
|
+
|
|
101
|
+
Apply? (yes / adjust — describe what to change)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Step 3 — Assign new IDs
|
|
105
|
+
|
|
106
|
+
Follow the project's ID convention:
|
|
107
|
+
|
|
108
|
+
- **If the project uses sequential IDs** (FR-001, FR-002, …), assign the next available IDs.
|
|
109
|
+
- **Suffix convention.** If the user prefers, use suffix IDs (US-014a, US-014b, US-014c) to preserve traceability to the original element.
|
|
110
|
+
- **Ask if ambiguous.** If the convention is unclear, ask the user.
|
|
111
|
+
|
|
112
|
+
### Step 4 — Apply and update references
|
|
113
|
+
|
|
114
|
+
1. Replace the original element with the new elements in the artifact.
|
|
115
|
+
2. Update all internal cross-references within the artifact (e.g., MoSCoW summary table, forward traceability matrix).
|
|
116
|
+
3. Check for references in other artifacts. List affected files and offer to update:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
The following artifacts reference {element_ID}:
|
|
120
|
+
- `05_ac_*.md` — AC-021, AC-022 linked to the original story
|
|
121
|
+
- `04_usecases_*.md` — UC-005 step 3
|
|
122
|
+
|
|
123
|
+
Update them? (yes / no / pick files)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Step 5 — Validate result
|
|
127
|
+
|
|
128
|
+
After applying, run a quick INVEST check on each new User Story (if applicable) and report:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
INVEST check:
|
|
132
|
+
- US-014a: ✓ all criteria pass
|
|
133
|
+
- US-014b: ✓ all criteria pass
|
|
134
|
+
- US-014c: ⚠ Testable — no AC linked yet (will be created in /ac step)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Closing message
|
|
138
|
+
|
|
139
|
+
After saving, present the following summary (see `references/closing-message.md` for format):
|
|
140
|
+
|
|
141
|
+
- Saved file path(s).
|
|
142
|
+
- Original element replaced by {N} new elements.
|
|
143
|
+
- Cross-reference updates applied or deferred.
|
|
144
|
+
|
|
145
|
+
Available commands: `/split [element]` (split another element) · `/validate` · `/revise [section]` · `/done`
|
|
146
|
+
|
|
147
|
+
No pipeline advancement — return to the current artifact's workflow.
|
|
148
|
+
|
|
149
|
+
## Style
|
|
150
|
+
|
|
151
|
+
Formal, neutral. Generate output in the language of the artifact.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: validate
|
|
3
|
+
description: >
|
|
4
|
+
Internal completeness and consistency check for a single BA Toolkit artifact. Use on /validate command, or when the user asks to "validate this artifact", "check completeness", "is this artifact complete", "consistency check", "check if ready", "is it done", "quality gate check". Utility skill available at any pipeline stage after the first artifact exists. Unlike /analyze (cross-artifact), /validate focuses on one artifact at a time.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /validate — Artifact Completeness & Consistency Check
|
|
8
|
+
|
|
9
|
+
Utility skill. Performs a single-artifact validation pass: checks that the target artifact is internally complete, consistent, and ready to `/done`. Does not generate a new file — reports findings in chat and optionally fixes issues in place.
|
|
10
|
+
|
|
11
|
+
## Syntax
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/validate [optional: artifact reference]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
- `/validate` — validate the most recent artifact
|
|
19
|
+
- `/validate brief` — validate `01_brief_*.md`
|
|
20
|
+
- `/validate srs` — validate `02_srs_*.md`
|
|
21
|
+
- `/validate 03_stories_sock-market.md` — validate a specific file
|
|
22
|
+
|
|
23
|
+
## Context loading
|
|
24
|
+
|
|
25
|
+
0. If `00_principles_*.md` exists in the output directory, load it. Use its Definition of Ready (section 4) as the primary checklist, its ID conventions (section 2) to validate ID formats, and its quality gate (section 6) to determine which severity blocks `/done`.
|
|
26
|
+
1. Identify the target artifact:
|
|
27
|
+
- If the user specifies an artifact name or filename, use it.
|
|
28
|
+
- Otherwise, use the most recently generated artifact in the output directory.
|
|
29
|
+
2. Read the target artifact fully.
|
|
30
|
+
3. Read prior artifacts for cross-reference spot-checks (roles, terms, IDs referenced from the target).
|
|
31
|
+
|
|
32
|
+
## Environment
|
|
33
|
+
|
|
34
|
+
Read `references/environment.md` from the `ba-toolkit` directory to determine the output directory. If unavailable, apply the default rule.
|
|
35
|
+
|
|
36
|
+
## Slug source
|
|
37
|
+
|
|
38
|
+
Read `references/slug-source.md` from the `ba-toolkit` directory. Follow its rules to resolve the project slug from `AGENTS.md`.
|
|
39
|
+
|
|
40
|
+
## Validation checklist
|
|
41
|
+
|
|
42
|
+
Run the following checks against the target artifact. Each check maps to a severity level.
|
|
43
|
+
|
|
44
|
+
### Structural checks (CRITICAL if missing)
|
|
45
|
+
|
|
46
|
+
1. **Metadata present.** The artifact has a title, version, status, domain, date, and slug in the header.
|
|
47
|
+
2. **All mandatory sections exist.** Compare the artifact's `## N.` headings against the expected template structure for that artifact type.
|
|
48
|
+
3. **ID format consistent.** All element IDs (FR-NNN, US-NNN, UC-NNN, AC-NNN, NFR-NNN, etc.) follow the project's ID convention (from `00_principles_*.md` §2, or the default `XX-NNN` pattern).
|
|
49
|
+
|
|
50
|
+
### Completeness checks (HIGH if missing)
|
|
51
|
+
|
|
52
|
+
4. **No placeholder text.** Scan for `(TBD)`, `(TODO)`, `(TBC)`, `(placeholder)`, `(имя основателя)`, `(name)`, empty table cells in required columns.
|
|
53
|
+
5. **Definition of Ready.** If `00_principles_*.md` exists, check each element against the DoR checklist for its type (FR, US, UC, AC, NFR). Report which elements fail which DoR criteria.
|
|
54
|
+
6. **MoSCoW count consistency.** If the artifact has a MoSCoW summary table and individual priorities, verify that the counts match. Report discrepancies with exact numbers.
|
|
55
|
+
7. **Cross-reference validity.** Every ID referenced in the artifact (e.g., `FR-003` in a US's "Linked FR" field) must exist within the artifact or in a prior artifact. Flag dangling references.
|
|
56
|
+
|
|
57
|
+
### Consistency checks (MEDIUM)
|
|
58
|
+
|
|
59
|
+
8. **Role consistency.** Roles/actors used in the artifact must match the roles defined in the SRS roles section or the brief stakeholders section. Flag unknown roles.
|
|
60
|
+
9. **Glossary term usage.** Terms that appear in the glossary (if `00_glossary_*.md` exists) should be used consistently. Flag variant spellings or undefined terms.
|
|
61
|
+
10. **Priority distribution.** If every element is marked "Must", warn that the prioritization may not be meaningful.
|
|
62
|
+
|
|
63
|
+
### Style checks (LOW)
|
|
64
|
+
|
|
65
|
+
11. **Empty sections.** Sections that exist but contain no content.
|
|
66
|
+
12. **Orphan elements.** Elements with no cross-references to or from other elements within the artifact.
|
|
67
|
+
|
|
68
|
+
## Output format
|
|
69
|
+
|
|
70
|
+
Present findings grouped by severity, with a summary count at the top:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Validation results for `{artifact_file}`:
|
|
74
|
+
|
|
75
|
+
| Severity | Count |
|
|
76
|
+
|----------|-------|
|
|
77
|
+
| CRITICAL | N |
|
|
78
|
+
| HIGH | N |
|
|
79
|
+
| MEDIUM | N |
|
|
80
|
+
| LOW | N |
|
|
81
|
+
|
|
82
|
+
### CRITICAL
|
|
83
|
+
|
|
84
|
+
1. **V-001** [Structural] MoSCoW summary says 25 Must, but 34 FRs are marked Must.
|
|
85
|
+
→ Fix: update the summary table in §6.
|
|
86
|
+
|
|
87
|
+
### HIGH
|
|
88
|
+
|
|
89
|
+
2. **V-002** [Completeness] FR-012 has no Source field.
|
|
90
|
+
→ Fix: add `Source: G-2` (brief goal 2).
|
|
91
|
+
|
|
92
|
+
...
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
If all checks pass, report:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
✓ Validation passed for `{artifact_file}` — no issues found. Ready to `/done`.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Auto-fix offer
|
|
102
|
+
|
|
103
|
+
After presenting findings, offer to fix issues automatically:
|
|
104
|
+
|
|
105
|
+
- If CRITICAL or HIGH findings exist: "Found {N} issues. Want me to fix them? (yes / no / pick specific V-NNN IDs)"
|
|
106
|
+
- If only MEDIUM/LOW: "Found {N} minor issues. Want me to fix them, or proceed to `/done`?"
|
|
107
|
+
|
|
108
|
+
When fixing, update the artifact in place. After each fix, confirm what changed in one line.
|
|
109
|
+
|
|
110
|
+
## Closing message
|
|
111
|
+
|
|
112
|
+
After validation (and optional fixes), present the following summary (see `references/closing-message.md` for format):
|
|
113
|
+
|
|
114
|
+
- Artifact file path.
|
|
115
|
+
- Summary of findings by severity.
|
|
116
|
+
- Whether the artifact passes the `/done` gate (no CRITICAL findings remaining).
|
|
117
|
+
|
|
118
|
+
Available commands: `/validate` (re-run) · `/clarify [focus]` · `/revise [section]` · `/done`
|
|
119
|
+
|
|
120
|
+
No pipeline advancement — return to the current artifact's workflow.
|
|
121
|
+
|
|
122
|
+
## Style
|
|
123
|
+
|
|
124
|
+
Formal, neutral. Findings must reference exact element IDs and section numbers. Generate output in the language of the artifact.
|