@kudusov.takhir/ba-toolkit 3.1.0 → 3.1.1
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 +13 -1
- package/README.md +16 -16
- package/package.json +1 -1
- package/skills/ac/SKILL.md +1 -1
- package/skills/apicontract/SKILL.md +1 -1
- package/skills/brief/SKILL.md +1 -1
- package/skills/datadict/SKILL.md +1 -1
- package/skills/nfr/SKILL.md +1 -1
- package/skills/principles/SKILL.md +1 -1
- package/skills/references/interview-protocol.md +36 -18
- package/skills/research/SKILL.md +1 -1
- package/skills/scenarios/SKILL.md +1 -1
- package/skills/srs/SKILL.md +1 -1
- package/skills/stories/SKILL.md +1 -1
- package/skills/usecases/SKILL.md +1 -1
- package/skills/wireframes/SKILL.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,17 @@ Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
+
## [3.1.1] — 2026-04-09
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- **Interview options table is now capped at 5 rows total** (`skills/references/interview-protocol.md` rule 3). Previously rule 3 allowed "3–5 variants per question" with the free-text "Other" row on top, so a single question could surface up to 6 options and overwhelm the user. The new cap is **up to 4 predefined variants + exactly 1 free-text "Other" row = 5 rows max**, no exceptions. Fewer than 4 predefined rows is still fine when the topic only has 2–3 sensible options. The one-line protocol summary in all 12 interview-phase skills (`brief`, `srs`, `stories`, `usecases`, `ac`, `nfr`, `datadict`, `apicontract`, `wireframes`, `scenarios`, `research`, `principles`) was updated to match. New regression test in `test/cli.test.js` walks every shipped SKILL.md with an Interview heading and fails if any of them carry the legacy `3–5 domain-appropriate options` wording or omit the new `5 rows max` reminder.
|
|
19
|
+
- **Exactly one variant per question is now marked `**Recommended**`** (`skills/references/interview-protocol.md` new rule 10). The AI picks the row using, in priority order, (a) the loaded `references/domains/{domain}.md` for the current skill, (b) the user's prior interview answers, (c) the inline context from rule 9, (d) widely-accepted industry default. The free-text "Other" row is never recommended. If none of (a)–(d) gives a defensible choice the AI omits the marker entirely rather than guessing — a missing recommendation is better than a misleading one. Rendered as `**Recommended**` appended to the end of the `Variant` cell so it stays visible even when the table wraps. Translated together with the variant text per rule 11 (e.g. `**Рекомендуется**`, `**Recomendado**`). All 12 interview-phase SKILL.md summaries point at rule 10. New regression test in `test/cli.test.js` enforces that every Interview-section SKILL.md mentions the marker.
|
|
20
|
+
- **Variant text and the `Variant` column header are now rendered in the user's language** (`skills/references/interview-protocol.md` new rule 11), matching the rule the generated artifacts already follow (`skills/brief/SKILL.md:107`). The `ID` column header and the letter IDs (`a`, `b`, …) stay ASCII. Domain reference files in `skills/references/domains/` remain English-only by design (per the project's English-only convention) — the AI translates the variants on the fly when rendering the table for a non-English-speaking user, instead of pasting the English source verbatim or asking the user which language to use. Updated example block in the protocol now shows both an English question with `**Recommended**` and a Russian rendering of the same question to make the rule concrete.
|
|
21
|
+
- **Replaced `example/dragon-fortune/` with `example/lumen-goods/`**, a sustainable home-goods D2C e-commerce walkthrough. The new example is more universally relatable than the iGaming-themed predecessor: 15 cross-referenced artifacts (Brief, Principles, SRS, Stories, Use Cases, AC, NFRs, Data Dictionary, Tech Research, API Contract, Wireframes, Scenarios, Risk Register, Sprint Plan, Handoff) for a fictional D2C online store selling lighting, kitchenware, and textiles to eco-conscious EU/UK buyers. Stack covers Next.js storefront, Stripe (cards / Apple Pay / Klarna / SEPA), Stripe Tax for destination-based VAT, hybrid stock sync between an NL warehouse and a UK 3PL, GDPR/DSAR/cookie consent flows, and a paid Lumen Circle loyalty tier. CLAUDE.md "Do NOT touch" entry, the placeholder warning, the repo-layout block, and the README example table all updated to reference `lumen-goods`. The old `example/dragon-fortune/` folder has been removed.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
14
25
|
## [3.1.0] — 2026-04-09
|
|
15
26
|
|
|
16
27
|
### Highlights
|
|
@@ -440,7 +451,8 @@ CI scripts that relied on the old behaviour (`init` creates files only, `install
|
|
|
440
451
|
|
|
441
452
|
---
|
|
442
453
|
|
|
443
|
-
[Unreleased]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.1.
|
|
454
|
+
[Unreleased]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.1.1...HEAD
|
|
455
|
+
[3.1.1]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.1.0...v3.1.1
|
|
444
456
|
[3.1.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.0.0...v3.1.0
|
|
445
457
|
[3.0.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v2.0.0...v3.0.0
|
|
446
458
|
[2.0.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v1.5.0...v2.0.0
|
package/README.md
CHANGED
|
@@ -152,25 +152,25 @@ Your generated artifacts (`01_brief_*.md`, `02_srs_*.md`, …) are untouched by
|
|
|
152
152
|
|
|
153
153
|
## Example output
|
|
154
154
|
|
|
155
|
-
A complete example project — **
|
|
155
|
+
A complete example project — **Lumen Goods** (sustainable home-goods D2C online store) — lives in [`example/lumen-goods/`](example/lumen-goods/). All 15 artifacts are realistic, cross-referenced, and generated by running the full BA Toolkit pipeline.
|
|
156
156
|
|
|
157
157
|
| Artifact | File |
|
|
158
158
|
|---------|------|
|
|
159
|
-
| Project Principles | [`
|
|
160
|
-
| Project Brief | [`
|
|
161
|
-
| Requirements (SRS) | [`
|
|
162
|
-
| User Stories | [`
|
|
163
|
-
| Use Cases | [`
|
|
164
|
-
| Acceptance Criteria | [`
|
|
165
|
-
| Non-functional Requirements | [`
|
|
166
|
-
| Data Dictionary | [`
|
|
167
|
-
| Technology Research | [`
|
|
168
|
-
| API Contract | [`
|
|
169
|
-
| Wireframes | [`
|
|
170
|
-
| Validation Scenarios | [`
|
|
171
|
-
| Development Handoff | [`
|
|
172
|
-
| Risk Register | [`
|
|
173
|
-
| Sprint Plan | [`
|
|
159
|
+
| Project Principles | [`00_principles_lumen-goods.md`](example/lumen-goods/00_principles_lumen-goods.md) |
|
|
160
|
+
| Project Brief | [`01_brief_lumen-goods.md`](example/lumen-goods/01_brief_lumen-goods.md) |
|
|
161
|
+
| Requirements (SRS) | [`02_srs_lumen-goods.md`](example/lumen-goods/02_srs_lumen-goods.md) |
|
|
162
|
+
| User Stories | [`03_stories_lumen-goods.md`](example/lumen-goods/03_stories_lumen-goods.md) |
|
|
163
|
+
| Use Cases | [`04_usecases_lumen-goods.md`](example/lumen-goods/04_usecases_lumen-goods.md) |
|
|
164
|
+
| Acceptance Criteria | [`05_ac_lumen-goods.md`](example/lumen-goods/05_ac_lumen-goods.md) |
|
|
165
|
+
| Non-functional Requirements | [`06_nfr_lumen-goods.md`](example/lumen-goods/06_nfr_lumen-goods.md) |
|
|
166
|
+
| Data Dictionary | [`07_datadict_lumen-goods.md`](example/lumen-goods/07_datadict_lumen-goods.md) |
|
|
167
|
+
| Technology Research | [`07a_research_lumen-goods.md`](example/lumen-goods/07a_research_lumen-goods.md) |
|
|
168
|
+
| API Contract | [`08_apicontract_lumen-goods.md`](example/lumen-goods/08_apicontract_lumen-goods.md) |
|
|
169
|
+
| Wireframes | [`09_wireframes_lumen-goods.md`](example/lumen-goods/09_wireframes_lumen-goods.md) |
|
|
170
|
+
| Validation Scenarios | [`10_scenarios_lumen-goods.md`](example/lumen-goods/10_scenarios_lumen-goods.md) |
|
|
171
|
+
| Development Handoff | [`11_handoff_lumen-goods.md`](example/lumen-goods/11_handoff_lumen-goods.md) |
|
|
172
|
+
| Risk Register | [`00_risks_lumen-goods.md`](example/lumen-goods/00_risks_lumen-goods.md) |
|
|
173
|
+
| Sprint Plan | [`00_sprint_lumen-goods.md`](example/lumen-goods/00_sprint_lumen-goods.md) |
|
|
174
174
|
|
|
175
175
|
Full traceability: FR → US → UC → AC → NFR → Entity → ADR → API → WF → Scenario, plus risk register and sprint plan.
|
|
176
176
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kudusov.takhir/ba-toolkit",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "AI-powered Business Analyst pipeline — 21 skills from project brief to development handoff. Works with Claude Code, Codex CLI, Gemini CLI, Cursor, and Windsurf.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"business-analyst",
|
package/skills/ac/SKILL.md
CHANGED
|
@@ -21,7 +21,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
21
21
|
|
|
22
22
|
## Interview
|
|
23
23
|
|
|
24
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
24
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
25
25
|
>
|
|
26
26
|
> **Inline context (protocol rule 9):** if the user wrote text after `/ac` (e.g., `/ac focus on US-007 and US-011`), use it as a story-id filter for which acceptance criteria to draft first.
|
|
27
27
|
|
|
@@ -21,7 +21,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
21
21
|
|
|
22
22
|
## Interview
|
|
23
23
|
|
|
24
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
24
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
25
25
|
>
|
|
26
26
|
> **Inline context (protocol rule 9):** if the user wrote text after `/apicontract` (e.g., `/apicontract REST with JWT auth, OpenAPI 3.1`), use it as a style and protocol hint for the API design.
|
|
27
27
|
|
package/skills/brief/SKILL.md
CHANGED
|
@@ -34,7 +34,7 @@ The domain is written into the brief metadata and passed to all subsequent pipel
|
|
|
34
34
|
|
|
35
35
|
### 4. Interview
|
|
36
36
|
|
|
37
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
37
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options (load `references/domains/{domain}.md` for the ones that fit) plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
38
38
|
>
|
|
39
39
|
> **Inline context (protocol rule 9):** if the user wrote text after `/brief` (e.g., `/brief I want to build an online store for construction materials`), parse that as the lead-in answer, acknowledge it in one line, and skip directly to the first structured question that the inline text doesn't already cover.
|
|
40
40
|
>
|
package/skills/datadict/SKILL.md
CHANGED
|
@@ -21,7 +21,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
21
21
|
|
|
22
22
|
## Interview
|
|
23
23
|
|
|
24
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
24
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
25
25
|
>
|
|
26
26
|
> **Inline context (protocol rule 9):** if the user wrote text after `/datadict` (e.g., `/datadict the user and order entities are critical`), use it as a hint for which entities to model first.
|
|
27
27
|
|
package/skills/nfr/SKILL.md
CHANGED
|
@@ -21,7 +21,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
21
21
|
|
|
22
22
|
## Interview
|
|
23
23
|
|
|
24
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
24
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
25
25
|
>
|
|
26
26
|
> **Inline context (protocol rule 9):** if the user wrote text after `/nfr` (e.g., `/nfr emphasise security and compliance`), use it as a category hint for which NFR areas to prioritise.
|
|
27
27
|
|
|
@@ -27,7 +27,7 @@ If `01_brief_*.md` already exists, extract the slug and domain from it. Otherwis
|
|
|
27
27
|
|
|
28
28
|
### 3. Interview
|
|
29
29
|
|
|
30
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
30
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
31
31
|
>
|
|
32
32
|
> **Inline context (protocol rule 9):** if the user wrote text after `/principles`, parse it as the lead-in answer and skip directly to the first structured question it doesn't already cover.
|
|
33
33
|
>
|
|
@@ -13,7 +13,7 @@ Every BA Toolkit skill that gathers information from the user MUST follow this p
|
|
|
13
13
|
|
|
14
14
|
Variants should be **concrete**, not abstract — e.g. for "Who is your primary user?" in a SaaS project, offer "Product Manager at a 50–500-person SaaS startup", "Engineering Lead", "Ops/Support team", not "End user", "Customer", "User".
|
|
15
15
|
|
|
16
|
-
3. **
|
|
16
|
+
3. **At most 5 rows per question, last row is always free-text.** Hard cap: **5 rows total = up to 4 predefined variants + exactly 1 free-text "Other" row**. Never render a 6th row. The last row is always something like `e | Other — type your own answer` (or whatever letter follows the last predefined variant). If the user picks the free-text row, accept arbitrary text. Never force the user into one of the predefined variants. Fewer than 4 predefined rows is fine when the topic genuinely has only 2–3 sensible options — pad with "Other" rather than inventing filler.
|
|
17
17
|
|
|
18
18
|
4. **Wait for the answer.** Do not generate the next question or any part of the artifact until the user has replied. A non-answer (e.g. "I don't know", "skip") is a valid answer — record it as "unknown" and move on. The user can respond with the letter ID (`a`, `b`, …), the verbatim variant text, or — for the free-text row — any text of their own.
|
|
19
19
|
|
|
@@ -27,6 +27,10 @@ Every BA Toolkit skill that gathers information from the user MUST follow this p
|
|
|
27
27
|
|
|
28
28
|
9. **Inline command context.** If the user invokes the skill with text after the slash command — for example `/brief I want to build an online store for construction materials targeting B2B buyers in LATAM` or `/srs the SRS should focus on the payments module first` — parse that text as if it were the answer to the lead-in question (rule 8). Skip the open-ended lead-in and use the inline text to pre-fill any structured questions you can. Only ask the user for what's still missing. Acknowledge the inline context once at the start (`Got it — online store for construction materials, B2B buyers, LATAM market.`) so the user knows their context was understood, then jump straight into the first structured question that the inline text didn't already answer. This rule applies to **every** skill that has an Interview phase, not just entry-point skills.
|
|
29
29
|
|
|
30
|
+
10. **Mark exactly one row as Recommended.** In every options table, append `**Recommended**` to the end of the `Variant` cell of the single row that best fits the project context. Pick the row using, in order: (a) the loaded `references/domains/{domain}.md` for the current skill — what the reference treats as the typical default; (b) what the user has already said earlier in this interview; (c) the inline context from rule 9; (d) widely-accepted industry default. Never recommend the free-text "Other" row. Never recommend more than one row. If none of (a)–(d) gives you a defensible choice, omit the marker entirely for that question rather than guessing — a missing recommendation is better than a misleading one. Translate the marker together with the variant text per rule 11 (e.g. `**Рекомендуется**`, `**Recomendado**`).
|
|
31
|
+
|
|
32
|
+
11. **Variant text in the user's language.** The `Variant` column header and every variant string must be written in the same language as the user's first message in this conversation — the same rule the generated artifact already follows. The `ID` column header and the letter IDs (`a`, `b`, …) stay ASCII, unchanged. The `**Recommended**` marker is also translated. Domain reference files in `references/domains/` are English-only by design; when the interview language is not English, translate the variants on the fly as you render the table — do not paste the English source verbatim and do not ask the user which language to use.
|
|
33
|
+
|
|
30
34
|
## Example
|
|
31
35
|
|
|
32
36
|
Bad (old style — questionnaire dump):
|
|
@@ -38,31 +42,45 @@ Bad (old style — questionnaire dump):
|
|
|
38
42
|
> 4. What are the success metrics?
|
|
39
43
|
> 5. What are the key constraints?
|
|
40
44
|
|
|
41
|
-
Good (protocol style — one question, table of variants):
|
|
45
|
+
Good (protocol style — one question, table of variants, 5 rows max, one Recommended):
|
|
42
46
|
|
|
43
47
|
> Let's start with the product itself. What are you building?
|
|
44
48
|
>
|
|
45
|
-
> | ID | Variant
|
|
46
|
-
>
|
|
47
|
-
> | a | A B2B SaaS tool for internal teams (dashboards, automation) |
|
|
48
|
-
> | b | A customer-facing web application (marketplace, portal)
|
|
49
|
-
> | c | A mobile app (consumer or B2B)
|
|
50
|
-
> | d | An API / developer platform
|
|
51
|
-
> | e | Other — type your own answer
|
|
49
|
+
> | ID | Variant |
|
|
50
|
+
> |----|-------------------------------------------------------------------------------|
|
|
51
|
+
> | a | A B2B SaaS tool for internal teams (dashboards, automation) **Recommended** |
|
|
52
|
+
> | b | A customer-facing web application (marketplace, portal) |
|
|
53
|
+
> | c | A mobile app (consumer or B2B) |
|
|
54
|
+
> | d | An API / developer platform |
|
|
55
|
+
> | e | Other — type your own answer |
|
|
52
56
|
|
|
53
|
-
*User replies with `a`, types the verbatim variant text, or picks `e` and types their own description
|
|
57
|
+
*User replies with `a`, types the verbatim variant text, or picks `e` and types their own description. The `**Recommended**` marker on row `a` reflects the loaded SaaS domain reference + the inline context the user gave with `/brief`.*
|
|
54
58
|
|
|
55
59
|
> Got it — internal B2B SaaS tool. Who is the primary user?
|
|
56
60
|
>
|
|
57
|
-
> | ID | Variant
|
|
58
|
-
>
|
|
59
|
-
> | a | Product Manager at a 50–500-person SaaS startup
|
|
60
|
-
> | b | Engineering Lead at a B2B company
|
|
61
|
-
> | c | Operations / Support team at a mid-size SaaS
|
|
62
|
-
> | d | Other — type your own answer
|
|
61
|
+
> | ID | Variant |
|
|
62
|
+
> |----|--------------------------------------------------------------------------|
|
|
63
|
+
> | a | Product Manager at a 50–500-person SaaS startup **Recommended** |
|
|
64
|
+
> | b | Engineering Lead at a B2B company |
|
|
65
|
+
> | c | Operations / Support team at a mid-size SaaS |
|
|
66
|
+
> | d | Other — type your own answer |
|
|
67
|
+
|
|
68
|
+
*…and so on, one question at a time, until every required topic for the current skill has an answer. Tables stay at 5 rows or fewer; exactly one predefined row is marked Recommended, never the "Other" row.*
|
|
63
69
|
|
|
64
|
-
|
|
70
|
+
### Variant translation example (rule 11)
|
|
71
|
+
|
|
72
|
+
If the user's first message was in Russian, the same question is rendered with Russian variants and a translated `Variant` header / `Recommended` marker — `ID` column and letter IDs stay ASCII:
|
|
73
|
+
|
|
74
|
+
> Давайте начнём с самого продукта. Что вы создаёте?
|
|
75
|
+
>
|
|
76
|
+
> | ID | Вариант |
|
|
77
|
+
> |----|----------------------------------------------------------------------------------|
|
|
78
|
+
> | a | B2B SaaS-инструмент для внутренних команд (дашборды, автоматизация) **Рекомендуется** |
|
|
79
|
+
> | b | Клиентское веб-приложение (маркетплейс, портал) |
|
|
80
|
+
> | c | Мобильное приложение (для потребителей или B2B) |
|
|
81
|
+
> | d | API / платформа для разработчиков |
|
|
82
|
+
> | e | Другое — введите свой вариант |
|
|
65
83
|
|
|
66
84
|
## When this protocol applies
|
|
67
85
|
|
|
68
|
-
This protocol applies to every skill that has an `### Interview` (or `## Interview`) section in its SKILL.md — currently: `brief`, `srs`, `stories`, `usecases`, `ac`, `nfr`, `datadict`, `apicontract`, `wireframes`, `scenarios`, `research`, `principles`. Each of those skills MUST link to this file from its Interview section and follow rules 1–7 +
|
|
86
|
+
This protocol applies to every skill that has an `### Interview` (or `## Interview`) section in its SKILL.md — currently: `brief`, `srs`, `stories`, `usecases`, `ac`, `nfr`, `datadict`, `apicontract`, `wireframes`, `scenarios`, `research`, `principles`. Each of those skills MUST link to this file from its Interview section and follow rules 1–7 + rules 9–11. Rule 8 (open-ended lead-in question) applies only to entry-point skills — currently `/brief` and `/principles` when no `01_brief_*.md` or `00_principles_*.md` is present in the output directory yet.
|
package/skills/research/SKILL.md
CHANGED
|
@@ -23,7 +23,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
23
23
|
|
|
24
24
|
## Interview
|
|
25
25
|
|
|
26
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
26
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
27
27
|
>
|
|
28
28
|
> **Inline context (protocol rule 9):** if the user wrote text after `/research` (e.g., `/research compare PostgreSQL vs DynamoDB for our event store`), use it as the focus question to research instead of asking for one.
|
|
29
29
|
|
|
@@ -23,7 +23,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
23
23
|
|
|
24
24
|
## Interview
|
|
25
25
|
|
|
26
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
26
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
27
27
|
>
|
|
28
28
|
> **Inline context (protocol rule 9):** if the user wrote text after `/scenarios` (e.g., `/scenarios focus on the new-user onboarding journey`), use it to scope which end-to-end scenarios to draft.
|
|
29
29
|
|
package/skills/srs/SKILL.md
CHANGED
|
@@ -23,7 +23,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
23
23
|
|
|
24
24
|
## Interview
|
|
25
25
|
|
|
26
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
26
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
27
27
|
>
|
|
28
28
|
> **Inline context (protocol rule 9):** if the user wrote text after `/srs` (e.g., `/srs focus on the payments module first`), parse it as a scope hint and use it to prioritise which functional areas you ask about.
|
|
29
29
|
|
package/skills/stories/SKILL.md
CHANGED
|
@@ -21,7 +21,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
21
21
|
|
|
22
22
|
## Interview
|
|
23
23
|
|
|
24
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
24
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
25
25
|
>
|
|
26
26
|
> **Inline context (protocol rule 9):** if the user wrote text after `/stories` (e.g., `/stories focus on the onboarding epic`), parse it as a scope hint and use it to narrow which areas you draft user stories for.
|
|
27
27
|
|
package/skills/usecases/SKILL.md
CHANGED
|
@@ -21,7 +21,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
21
21
|
|
|
22
22
|
## Interview
|
|
23
23
|
|
|
24
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
24
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
25
25
|
>
|
|
26
26
|
> **Inline context (protocol rule 9):** if the user wrote text after `/usecases` (e.g., `/usecases focus on admin flows`), use it as a scope hint for which use cases to draft.
|
|
27
27
|
|
|
@@ -21,7 +21,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
|
|
|
21
21
|
|
|
22
22
|
## Interview
|
|
23
23
|
|
|
24
|
-
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of
|
|
24
|
+
> **Follow the [Interview Protocol](../references/interview-protocol.md):** ask one question at a time, present a 2-column `| ID | Variant |` markdown table of up to 4 domain-appropriate options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended** based on the loaded domain reference and prior answers, render variants in the user's language (rule 11), and wait for an answer before asking the next question.
|
|
25
25
|
>
|
|
26
26
|
> **Inline context (protocol rule 9):** if the user wrote text after `/wireframes` (e.g., `/wireframes mobile-first, focus on the checkout flow`), use it as a layout and scope hint for which screens to draft first.
|
|
27
27
|
|