@kudusov.takhir/ba-toolkit 4.1.0 → 4.1.2

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 CHANGED
@@ -11,6 +11,22 @@ Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
11
11
 
12
12
  ---
13
13
 
14
+ ## [4.1.2] — 2026-04-14
15
+
16
+ ### Fixed
17
+
18
+ - **Install commands now quote the scoped package name** in README, USAGE, TROUBLESHOOTING, ROADMAP, website docs, and the `init.sh`/`init.ps1` next-steps output. Unquoted `@kudusov.takhir/ba-toolkit` can trip shells (notably zsh with globbing/expansion rules) where the `@` or `.` tokens are interpreted; wrapping in single quotes (`'@kudusov.takhir/ba-toolkit'`) works across bash, zsh, and PowerShell. Historical `CHANGELOG.md` entries were not retroactively edited.
19
+
20
+ ---
21
+
22
+ ## [4.1.1] — 2026-04-12
23
+
24
+ ### Fixed
25
+
26
+ - **Systematic mixed-language output in non-English artifacts** — when users wrote in a non-English language, artifacts got English section headings, table headers, field labels ("**Priority:**", "**Description:**", etc.), and closing summaries ("Artifact saved:", "Next step:", etc.) while body text was in the user's language. Root cause: templates and reference files are English-only (correct per convention), but only 9 of 29 skills had an explicit rule to translate structural elements. Created `skills/references/language-rule.md` — a single shared reference defining exactly what to translate (headings, labels, table headers, closing message text, interview acknowledgments) and what stays in English (element IDs, file paths, slash commands, MoSCoW values, INVEST criteria). All 29 SKILL.md files now reference this file from their Style section. Updated `closing-message.md` with explicit translation guidance for all template labels. Updated `interview-protocol.md` rule 5 to specify acknowledgments are in the user's language. Removed per-template HTML language comments from `stories-template.md` and `ac-template.md` (now covered by the shared rule).
27
+
28
+ ---
29
+
14
30
  ## [4.1.0] — 2026-04-12
15
31
 
16
32
  ### Added
@@ -922,7 +938,9 @@ CI scripts that relied on the old behaviour (`init` creates files only, `install
922
938
 
923
939
  ---
924
940
 
925
- [Unreleased]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.1.0...HEAD
941
+ [Unreleased]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.1.2...HEAD
942
+ [4.1.2]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.1.1...v4.1.2
943
+ [4.1.1]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.1.0...v4.1.1
926
944
  [4.1.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0.4...v4.1.0
927
945
  [4.0.4]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0.3...v4.0.4
928
946
  [4.0.3]: https://github.com/TakhirKudusov/ba-toolkit/compare/v4.0.2...v4.0.3
package/README.md CHANGED
@@ -42,13 +42,13 @@ Artifacts are generated in whatever language you write in — ask in English, ge
42
42
  # Full setup in one command — prompts for project name, domain, and
43
43
  # AI agent, then creates output/, AGENTS.md, and installs the skills
44
44
  # into the chosen agent's directory.
45
- npx @kudusov.takhir/ba-toolkit init
45
+ npx '@kudusov.takhir/ba-toolkit' init
46
46
 
47
47
  # Non-interactive (e.g. for CI): pass every choice on the command line.
48
- npx @kudusov.takhir/ba-toolkit init --name "My App" --domain saas --for claude-code
48
+ npx '@kudusov.takhir/ba-toolkit' init --name "My App" --domain saas --for claude-code
49
49
 
50
50
  # Or install globally and reuse across projects:
51
- npm install -g @kudusov.takhir/ba-toolkit
51
+ npm install -g '@kudusov.takhir/ba-toolkit'
52
52
  ba-toolkit init
53
53
  ```
54
54
 
@@ -139,7 +139,7 @@ bash init.sh
139
139
  .\init.ps1
140
140
  ```
141
141
 
142
- Equivalent to `npx @kudusov.takhir/ba-toolkit init` — asks for a slug, name, and domain, then creates `output/` and an `AGENTS.md` with the pipeline status table.
142
+ Equivalent to `npx '@kudusov.takhir/ba-toolkit' init` — asks for a slug, name, and domain, then creates `output/` and an `AGENTS.md` with the pipeline status table.
143
143
 
144
144
  ### Updating a manual install
145
145
 
package/bin/ba-toolkit.js CHANGED
@@ -1939,7 +1939,7 @@ ${bold('EXAMPLES')}
1939
1939
  ba-toolkit uninstall --for claude-code --global
1940
1940
  ba-toolkit uninstall --for cursor --dry-run
1941
1941
 
1942
- # After 'npm update -g @kudusov.takhir/ba-toolkit', refresh the skills.
1942
+ # After "npm update -g '@kudusov.takhir/ba-toolkit'", refresh the skills.
1943
1943
  ba-toolkit upgrade --for claude-code
1944
1944
  ba-toolkit upgrade --for cursor --dry-run
1945
1945
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kudusov.takhir/ba-toolkit",
3
- "version": "4.1.0",
3
+ "version": "4.1.2",
4
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",
@@ -84,4 +84,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
84
84
 
85
85
  ## Style
86
86
 
87
- Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request.
87
+ Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -165,4 +165,4 @@ No pipeline advancement — this is a quality checkpoint, not a pipeline step.
165
165
 
166
166
  ## Style
167
167
 
168
- Formal, neutral. No emoji, slang. Generate output in the language of the artifacts. Element IDs, file names, and table column headers remain in English.
168
+ Formal, neutral. No emoji, slang. Generate output in the language of the artifacts — see `references/language-rule.md` for what to translate and what stays in English.
@@ -129,4 +129,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
129
129
 
130
130
  ## Style
131
131
 
132
- Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request. Endpoint names, field names, and error codes remain in English.
132
+ Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English. Endpoint names, field names, and error codes remain in English.
@@ -132,4 +132,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
132
132
 
133
133
  ## Style
134
134
 
135
- Formal, neutral. No emoji, slang, or evaluative language. Terms and abbreviations explained in parentheses on first use. Generate the artifact in the language of the user's request. Section headings, table headers, and labels also in the user's language.
135
+ Formal, neutral. No emoji, slang, or evaluative language. Terms and abbreviations explained in parentheses on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -127,4 +127,4 @@ No pipeline advancement — return to the current artifact's workflow.
127
127
 
128
128
  ## Style
129
129
 
130
- Formal, neutral. Questions must be specific and reference exact element IDs. Generate output in the language of the artifact.
130
+ Formal, neutral. Questions must be specific and reference exact element IDs. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -84,4 +84,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
84
84
 
85
85
  ## Style
86
86
 
87
- Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request.
87
+ Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -160,4 +160,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
160
160
 
161
161
  ## Style
162
162
 
163
- Formal, neutral, hypothesis-driven. No emoji, slang, or evaluative language ("amazing", "game-changing"). Frame every claim as a hypothesis to validate, not a fact. Generate the artifact in the language of the user's request. Section headings, table headers, and labels also in the user's language.
163
+ Formal, neutral, hypothesis-driven. No emoji, slang, or evaluative language ("amazing", "game-changing"). Frame every claim as a hypothesis to validate, not a fact. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -115,4 +115,4 @@ Pipeline complete. Hand `12_implplan_{slug}.md` to your AI coding agent (Claude
115
115
 
116
116
  ## Style
117
117
 
118
- Formal, neutral. Generate output in the language of the artifact.
118
+ Formal, neutral. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -155,4 +155,4 @@ Available commands: `/estimate [US-NNN]` (re-estimate a story) · `/split [US-NN
155
155
 
156
156
  ## Style
157
157
 
158
- Be explicit about the rationale for each estimate. Use concise bullet drivers, not paragraphs. Generate output in the language of the artifact.
158
+ Be explicit about the rationale for each estimate. Use concise bullet drivers, not paragraphs. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -109,4 +109,4 @@ No pipeline advancement — return to the current artifact's workflow.
109
109
 
110
110
  ## Style
111
111
 
112
- Formal, neutral. Generate output in the language of the artifact.
112
+ Formal, neutral. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -220,4 +220,4 @@ Available commands: `/export [format]` (export in another format) · `/estimate`
220
220
 
221
221
  ## Style
222
222
 
223
- Generate only valid JSON or CSV. Do not include comments inside JSON files. Use double quotes for all JSON strings. Escape newlines in description fields as `\n`. Generate output in English regardless of the artifact language (issue trackers expect English field values unless explicitly told otherwise).
223
+ Generate only valid JSON or CSV. Do not include comments inside JSON files. Use double quotes for all JSON strings. Escape newlines in description fields as `\n`. Generate output in English regardless of the artifact language (issue trackers expect English field values unless explicitly told otherwise). Chat messages (interview questions, closing summary) follow `references/language-rule.md` — use the user's language.
@@ -161,4 +161,4 @@ Available commands: `/glossary drift` (drift report only) · `/glossary add [Ter
161
161
 
162
162
  ## Style
163
163
 
164
- Neutral, precise. Term definitions should be one sentence, domain-specific, and consistent with the artifact language set in `00_principles_{slug}.md`. Do not invent definitions — only use what is stated or clearly implied in the artifacts.
164
+ Neutral, precise. Term definitions should be one sentence, domain-specific, and consistent with the artifact language. Do not invent definitions — only use what is stated or clearly implied in the artifacts. See `references/language-rule.md` for what to translate and what stays in English.
@@ -190,4 +190,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
190
190
 
191
191
  ## Style
192
192
 
193
- Formal, neutral. No emoji in the saved file. Generate in the artifact language. English for IDs, file names, table column headers, and code.
193
+ Formal, neutral. No emoji in the saved file. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -280,4 +280,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
280
280
 
281
281
  ## Style
282
282
 
283
- Formal, neutral, imperative. No emoji in the saved file. Phase goals are user-outcome sentences, not task lists. Task titles are imperative verbs ("Create", "Implement", "Wire", "Migrate", "Document"). Definition-of-Done bullets are checkable, not aspirational. Generate the artifact in the language of the user's request; section headings, table headers, and labels also in the user's language. ID columns and code identifiers (`T-04-007`, `FR-001`, `Entity:User`, file paths) stay ASCII.
283
+ Formal, neutral, imperative. No emoji in the saved file. Phase goals are user-outcome sentences, not task lists. Task titles are imperative verbs ("Create", "Implement", "Wire", "Migrate", "Document"). Definition-of-Done bullets are checkable, not aspirational. Generate the artifact in the language of the user's request see `references/language-rule.md` for what to translate and what stays in English.
@@ -87,4 +87,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
87
87
 
88
88
  ## Style
89
89
 
90
- Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request.
90
+ Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -182,4 +182,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
182
182
 
183
183
  ## Style
184
184
 
185
- Formal, neutral. No emoji, slang. The principles file itself is generated in the artifact language defined in section 1. Section headings and table column headers remain in that language.
185
+ Formal, neutral. No emoji, slang. The principles file itself is generated in the artifact language defined in section 1. See `references/language-rule.md` for what to translate and what stays in English.
@@ -76,4 +76,4 @@ Do not build a `Next step:` block — `/publish` is cross-cutting and does not a
76
76
 
77
77
  ## Style
78
78
 
79
- Formal, neutral. No emoji. Generate the chat reply in the language of the user's first message. Keep the report under 10 lines: paths, counts, two next-step lines, optional re-run hint.
79
+ Formal, neutral. No emoji. Generate the chat reply in the language of the user's first message — see `references/language-rule.md` for what to translate and what stays in English. Keep the report under 10 lines: paths, counts, two next-step lines, optional re-run hint.
@@ -4,7 +4,7 @@ After saving an artifact, every BA Toolkit skill presents a closing summary bloc
4
4
 
5
5
  ## Format
6
6
 
7
- Present the block in the same language as the artifact.
7
+ Present the block in the same language as the artifact. The template below is written in English because this file follows the project's English-only convention. At generation time, translate all labels ("Artifact saved:", "Available commands:", "Next step:", "What it produces:", "Quality check before moving on:", table headers) to the artifact's language. Slash commands (`/clarify`, `/revise`, etc.) and file paths stay as-is. See `references/language-rule.md` for the full list of what to translate and what stays in English.
8
8
 
9
9
  ```
10
10
  Artifact saved: `{file_path}`
@@ -17,7 +17,7 @@ Every BA Toolkit skill that gathers information from the user MUST follow this p
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
 
20
- 5. **Acknowledge, then proceed.** After each answer, reflect it back in one line (e.g. "Got it — primary user is the Ops team at mid-size logistics companies.") before asking the next question. This catches misunderstandings early.
20
+ 5. **Acknowledge, then proceed.** After each answer, reflect it back in one line **in the user's language** (e.g. "Got it — primary user is the Ops team at mid-size logistics companies.") before asking the next question. This catches misunderstandings early.
21
21
 
22
22
  6. **Batch only when the user asks.** If the user explicitly says "just give me all the questions at once" or "I'll answer in one go", switch to a single numbered list. Otherwise stay one-at-a-time.
23
23
 
@@ -0,0 +1,31 @@
1
+ # Language Rule
2
+
3
+ Template files, reference documents, and closing-message templates in BA Toolkit are written in English per the project's English-only file convention. When generating artifacts, chat summaries (closing messages), and interview questions, translate **all** of the following to the user's language:
4
+
5
+ ## Translate to the user's language
6
+
7
+ - Section headings (`##` and `###`)
8
+ - Table headers (`| Column | ... |`)
9
+ - Field labels (`**Priority:**`, `**Description:**`, `**Type:**`, `**Source:**`, `**Linked FR:**`, `**Depends on:**`, `**Notes:**`, etc.)
10
+ - User story labels (`**As**` / `**I want to**` / `**so that**`)
11
+ - Acceptance criteria labels (`**Given**` / `**When**` / `**Then**`)
12
+ - Closing message labels ("Artifact saved:", "Available commands:", "Next step:", "What it produces:", "Quality check before moving on:", table headers in the commands table)
13
+ - Interview acknowledgments ("Got it — ...")
14
+ - Interview question text and option variants (per interview-protocol rule 11)
15
+
16
+ ## Keep in English/ASCII regardless of artifact language
17
+
18
+ - Element IDs: FR-001, US-001, AC-001-01, NFR-001, UC-001, E-01, etc.
19
+ - File paths and filenames: `output/01_brief_my-app.md`
20
+ - Slash commands: `/brief`, `/srs`, `/clarify`, `/revise`, `/validate`, `/done`, etc.
21
+ - The `(recommended)` marker in interview option tables
22
+ - Letter IDs in option tables: `a`, `b`, `c`, `d`, `e`
23
+ - MoSCoW priority values: Must, Should, Could, Won't
24
+ - INVEST criteria names: Independent, Negotiable, Valuable, Estimable, Small, Testable
25
+ - Code identifiers, API endpoint paths, HTTP methods, status codes
26
+ - Technical terms that are industry-standard English (REST, JWT, OAuth, CRUD, etc.)
27
+ - ISO/IEEE standard references (IEEE 830, ISO 25010, ISO 31000, etc.)
28
+
29
+ ## Why this rule exists
30
+
31
+ Without this rule, the AI copies English labels from templates verbatim and only translates body text, producing mixed-language artifacts — e.g., Russian content under English headings, or an English closing summary after a Russian-language interview. The rule ensures that every user-facing text element matches the artifact's language while technical identifiers stay stable for cross-referencing.
@@ -152,4 +152,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
152
152
 
153
153
  ## Style
154
154
 
155
- Formal, neutral. No emoji, slang. Generate in the artifact language. Technical terms (ADR, REST, WebSocket, JWT) remain in English. Architecture option names remain in English.
155
+ Formal, neutral. No emoji, slang. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English. Architecture option names remain in English.
@@ -121,4 +121,4 @@ No pipeline advancement — return to the current artifact's workflow.
121
121
 
122
122
  ## Style
123
123
 
124
- Formal, neutral. Generate output in the language of the artifact.
124
+ Formal, neutral. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -196,4 +196,4 @@ Available commands: `/risk add [description]` · `/risk update RISK-NN` · `/cla
196
196
 
197
197
  ## Style
198
198
 
199
- Concise, factual. Risk descriptions state the condition and consequence ("If X happens, then Y will occur"). Do not inflate severity — score based on evidence from artifacts, not speculation. Use the artifact language set in `00_principles_{slug}.md`.
199
+ Concise, factual. Risk descriptions state the condition and consequence ("If X happens, then Y will occur"). Do not inflate severity — score based on evidence from artifacts, not speculation. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -80,4 +80,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
80
80
 
81
81
  ## Style
82
82
 
83
- Formal, neutral. No emoji, slang. Generate in the artifact language. Persona names, screen labels, and API paths remain in their original language/format.
83
+ Formal, neutral. No emoji, slang. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English. Persona names, screen labels, and API paths remain in their original language/format.
@@ -148,4 +148,4 @@ No pipeline advancement — return to the current artifact's workflow.
148
148
 
149
149
  ## Style
150
150
 
151
- Formal, neutral. Generate output in the language of the artifact.
151
+ Formal, neutral. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -120,4 +120,4 @@ Available commands: `/sprint [SP-NN]` (re-plan a sprint) · `/split [US-NNN]` (s
120
120
 
121
121
  ## Style
122
122
 
123
- Be specific about sprint goals — one user-outcome sentence per sprint. Show capacity percentages to make overloading visible at a glance. Flag risks and deadline conflicts explicitly, do not bury them in footnotes. Generate output in the language of the artifact.
123
+ Be specific about sprint goals — one user-outcome sentence per sprint. Show capacity percentages to make overloading visible at a glance. Flag risks and deadline conflicts explicitly, do not bury them in footnotes. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -146,4 +146,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
146
146
 
147
147
  ## Style
148
148
 
149
- Formal, neutral. No emoji, slang. Terms explained in parentheses on first use. Generate the artifact in the language of the user's request.
149
+ Formal, neutral. No emoji, slang. Terms explained in parentheses on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -87,4 +87,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
87
87
 
88
88
  ## Style
89
89
 
90
- Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request.
90
+ Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -67,4 +67,4 @@ No further pipeline step — use `/analyze` for a detailed cross-artifact qualit
67
67
 
68
68
  ## Style
69
69
 
70
- Formal, neutral. No emoji, slang. Generate the artifact in the language of the user's request.
70
+ Formal, neutral. No emoji, slang. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -79,4 +79,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
79
79
 
80
80
  ## Style
81
81
 
82
- Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request.
82
+ Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.
@@ -121,4 +121,4 @@ No pipeline advancement — return to the current artifact's workflow.
121
121
 
122
122
  ## Style
123
123
 
124
- Formal, neutral. Findings must reference exact element IDs and section numbers. Generate output in the language of the artifact.
124
+ Formal, neutral. Findings must reference exact element IDs and section numbers. Generate output in the language of the artifact — see `references/language-rule.md` for what to translate and what stays in English.
@@ -113,4 +113,4 @@ Build the `Next step:` block from the pipeline lookup table in `references/closi
113
113
 
114
114
  ## Style
115
115
 
116
- Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request.
116
+ Formal, neutral. No emoji, slang. Terms explained on first use. Generate the artifact in the language of the user's request — see `references/language-rule.md` for what to translate and what stays in English.