@kudusov.takhir/ba-toolkit 3.6.0 → 3.8.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 CHANGED
@@ -11,6 +11,109 @@ Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
11
11
 
12
12
  ---
13
13
 
14
+ ## [3.8.0] — 2026-04-10
15
+
16
+ ### Highlights
17
+
18
+ - **Group C skill audit pass on `/discovery`, `/principles`, `/research`, `/handoff`, `/implement-plan`, `/export`** — the bookend skills (entry, conventions, technology research, exit) brought to senior-BA rigour. ~26 Critical + High findings applied. Highlights: full Michael Nygard ADR format with Drivers / Alternatives / Decision Date for `/research`, expanded `/handoff` artifact inventory covering all 15 pipeline stages plus cross-cutting tools, formal Sign-off section for `/handoff`, principles Definition of Ready section synchronised with the v3.5.0+ template fields across every artifact type, new ISO/IEC 25010 alignment in the principles NFR baseline, new Testing Strategy section in `/principles` (the principled approach to TDD that resolves the batch 6 item 2 question), new Hypotheses → Brief Goals retrospective traceability in `/discovery`, observability + CI/CD + secret management slots in `/implement-plan`, and full v3.5.0+ stories template field support in `/export` (Persona / Business Value Score / Depends on / INVEST embedded in exported issues with full FR/UC/AC/NFR/WF traceability columns). After this pass, **22 of 24 shipped skills** carry the senior-BA improvements.
19
+
20
+ ### Changed
21
+
22
+ - **`skills/principles/SKILL.md` and `skills/references/templates/principles-template.md`** — biggest debt of the audit because `/principles` is the source of truth that downstream skills read for Definition of Ready, ID conventions, and quality gates. The DoR section had drifted out of sync with the v3.5.0+ template fields across every artifact type:
23
+ - **Definition of Ready (§4) rewritten** to mirror the v3.7.0+ baseline per artifact type. Every DoR checklist now requires the same fields the artifact templates carry: FR adds Source / Verification / Rationale / area-grouping; US adds Persona / Business Value Score / Size / Depends on / INVEST self-check; UC adds Goal in Context / Scope / Stakeholders & Interests / Source / Success vs Minimal Guarantees split; AC adds Source / Verification / Linked NFR; NFR adds ISO 25010 characteristic / Acceptance threshold / Source / Rationale; Entity adds Source / Owner / Sensitivity / state machine for stateful entities; Endpoint adds Source / Idempotency / Required scope / SLO / Verification; Wireframe adds Source / Linked AC / Linked NFR / canonical 8-state list (was 4 states). New artifact types added: Risk DoR (Probability / Impact / Velocity / Treatment Strategy / Owner / Review cadence per ISO 31000) and Implementation Task DoR (references / dependsOn validity / definitionOfDone with linked AC).
24
+ - **ID Conventions table (§2) extended** with the post-v3.5.0 entity types that were previously missing: Risks (`RISK-NN`), Sprints (`SP-NN`), Implementation Tasks (`T-NN-NNN`), Analyse findings (`A-NN`), and Brief Goals (`G-N`).
25
+ - **NFR Baseline (§5) aligned with ISO/IEC 25010**. The three previously-listed categories (Security, Availability, Compliance) were ad-hoc; the new section explicitly maps every category to the parent ISO 25010 characteristic and lists the other 5 characteristics as candidate additions with one-line guidance on when each becomes mandatory.
26
+ - **New §8 Testing Strategy section** with five canonical strategies (TDD / Tests-after / Integration-only / Manual-only / None) and explicit guidance on which one drives `/implement-plan` to embed "Tests to write first" blocks per task. **This is the principled resolution of the batch 6 item 2 question** — TDD support lives in `/principles`, not as a separate `/tdd-tests` skill, exactly as the rationale recorded in `todo.md` "Removed from the backlog" predicted.
27
+ - **New §9 Code Review and Branching** section (trunk-based / GitHub flow / GitFlow / required reviewers / merge gate) and **new §10 Stakeholder Decision Authority** table (per-section decision authority by name and role).
28
+ - **3 new required-topics** in the SKILL.md interview: testing strategy, stakeholder decision authority, code review and branching policy.
29
+ - **Document-control metadata added**: `Status` field plus `Approvals` table at the bottom.
30
+ - **`skills/discovery/SKILL.md` and `skills/references/templates/discovery-template.md`** — retrospective traceability and decision provenance:
31
+ - **New §9 Hypotheses → Brief Goals mapping table** filled in by `/brief` when it consumes the discovery artifact. Forward traceability from each discovery hypothesis to the Brief goal it became, with a Status column (Validated / Refined / Disproved / Pending) so a 3-month-post-launch retrospective can answer "did the chosen audience hypothesis hold?" and "did the predicted MVP features actually drive adoption?".
32
+ - **`Decision date`** and **`Decision owner`** fields in the header so the recommendation moment is timestamped and attributable.
33
+ - **`Status` field** (Concept (pre-brief) / In Review / Locked) and **`Approvals` table** for the cases where the discovery artifact is signed off as a decision document.
34
+ - **`skills/research/SKILL.md` and `skills/references/templates/research-template.md`** — full Michael Nygard ADR format + downstream-consumer awareness:
35
+ - **Standard alignment with the Michael Nygard ADR format** (the de facto industry standard since 2011), extended with explicit **Drivers** field (what forced the decision — FRs, NFRs, regulatory, cost, time-to-market) and **Alternatives Considered** table with a `Disqualifying factor` column. Every ADR carries Status, Proposal date, Decision date, Decision owner, Drivers, Context, Alternatives Considered, Decision, Consequences (positive / negative / neutral) — the field set a senior architect would expect on a serious project.
36
+ - **`/implement-plan` integration** documented explicitly. The output of `/research` is the primary tech-stack source for `/implement-plan` (added in v3.4.0); the new Tech Stack Summary table at the bottom of the research artifact is read directly by `/implement-plan` to populate its header without re-asking the calibration interview.
37
+ - **Required-topics list extended from 6 to 14**. Added the explicit tech-stack slots `/implement-plan` consumes: Frontend stack, Backend stack, Database, Hosting / deployment target, Auth / identity, Observability platform. Added Build vs Buy and Open-source vs Proprietary tolerance as common BA inquiries.
38
+ - **New NFR → ADR traceability matrix** at the bottom flags Must NFRs without an architectural decision.
39
+ - **Document-control metadata added** (Version / Status).
40
+ - **`skills/handoff/SKILL.md` and `skills/references/templates/handoff-template.md`** — full pipeline coverage and formal sign-off:
41
+ - **Artifact Inventory expanded from 11 rows to 21 rows** (15 pipeline-stage rows + 6 cross-cutting tool rows). Was missing /discovery (stage 0), /principles (stage 0a), /implement-plan (stage 12), and every cross-cutting artifact (sprint, risk, glossary, trace, analyze, estimate). The inventory is now the canonical "what's in the package" reference for the dev team.
42
+ - **Traceability Coverage expanded from 7 chains to 11 chains** to reflect the new traceability matrices added in pilot / Group A / Group B: Brief Goal → FR (added in v3.5.0 SRS template), US → AC broken down by Positive / Negative / Boundary type, FR → NFR, FR → Entity, FR → Endpoint, US → WF, US → Scenario, FR → Implementation Task, NFR → ADR.
43
+ - **New §7 Architecture Decision Summary** lists the top ADRs from `/research` with their drivers and which `/implement-plan` phase they affect — so the dev team learns the architectural decisions without having to read `/research` separately.
44
+ - **New §9 Sign-off section** with a formal acceptance table (Business Analyst / Product Manager / Tech Lead / QA Lead / Stakeholder). Senior BA expectation: handoff is the formal acceptance step and needs an explicit sign-off flow with named approvers.
45
+ - **Document-control metadata added** (Version / Status). Same P1 pattern as the rest of the audit.
46
+ - **`skills/implement-plan/SKILL.md`** — extended Tech Stack with operational slots, risk-aware sequencing within phases:
47
+ - **Tech Stack table extended from 6 rows to 9 rows.** Added: **Observability** (logging / metrics / tracing platform — Datadog / New Relic / Grafana / OTel), **CI / CD** (GitHub Actions / GitLab CI / CircleCI / Jenkins), **Secret management** (env vars / Vault / Secrets Manager / Doppler / 1Password CLI). Without these slots, the AI coding agent has to invent operational choices on the fly.
48
+ - **Calibration interview extended from 6 to 9 questions** to cover the same three new slots when `/research` is missing.
49
+ - **Risk-aware sequencing within phases** is now explicit. Tasks whose `references` link to FRs / US / NFRs tied to a 🔴 Critical or 🟡 High risk in `00_risks_*.md` are pulled to the front of their phase, ahead of equally-prioritised tasks. Tagged with `**Risk:** RISK-NN ↑` next to the task title. Rationale: validate risky bets early when there's still time to pivot. Was generic "ordered by dependencies, then priority"; now also "then by risk elevation".
50
+ - **`skills/export/SKILL.md`** — interview-protocol compliance, v3.5.0+ stories template field support, full traceability in exports:
51
+ - **Format interview now follows the standard interview protocol** — table-based options, Recommended marker, inline-context support per protocol rule 9. Was a flat numbered question list that bypassed the protocol.
52
+ - **Exported issues now carry every v3.5.0+ stories template field**: Persona (named persona with role + context, not bare job title), Business Value Score, Size, Depends on (rendered as "Blocked by" link in trackers that support it), INVEST self-check. Trackers with custom field support (Jira, Linear) get them as separate fields; CSV gets extra columns; GitHub Issues embeds them in the issue body since GitHub has no custom-field surface.
53
+ - **Full cross-artifact traceability in exported issues**: Linked FR, Linked UC, Linked AC (per scenario, with their `AC-NNN-NN` IDs), Linked NFR (for performance- and security-relevant stories), Linked Wireframe. Was previously only `FR Reference`. Modern issue trackers can re-establish the traceability graph without re-reading the source artifacts.
54
+ - **CSV format expanded from 10 columns to 17** to carry the new fields (Persona, Value, Size, FR, UC, AC list, NFR, WF, Depends on, AC Summary).
55
+
56
+ ### Cross-pattern impact
57
+
58
+ After the pilot, Group A, Group B, and Group C audits, **22 of 24 shipped skills** carry the senior-BA improvements: standards conformance to canonical frameworks (BABOK v3, IEEE 830, ISO 25010, ISO 31000, ISO 1087-1, OpenAPI 3.x, Cockburn use cases, INVEST, MoSCoW, PMBOK 7, Cone of Uncertainty, Michael Nygard ADRs), explicit "why" / provenance / ownership fields on every artifact element, cross-artifact bidirectional traceability with severity-aware coverage gaps, document control with versions and approvers, single-source-of-truth templates with no inline drift, and BA-grade required-topics coverage. The two skills not yet audited are `/publish` (a thin CLI wrapper with nothing structural to audit) and `/clarify` (already audited in Group B). The skill audit rollout is functionally complete.
59
+
60
+ ---
61
+
62
+ ## [3.7.0] — 2026-04-10
63
+
64
+ ### Highlights
65
+
66
+ - **Group B skill audit pass on `/trace`, `/analyze`, `/clarify`, `/estimate`, `/glossary`, `/risk`, `/sprint`** — 7 cross-cutting utilities brought to senior-BA rigour. ~33 Critical + High findings applied. Highlights: full ISO 31000 + PMBOK 7 alignment for `/risk` (Velocity axis, treatment-strategy classification), Cone of Uncertainty + confidence bands for `/estimate`, IEEE 830 §4.3 quality attributes mapped to `/analyze` finding categories, definition-quality discipline (Aristotelian form) for `/glossary`, structured table output for `/clarify`, bidirectional traceability + `/implement-plan` integration for `/trace`, focus-factor + ceremonies-aware net velocity for `/sprint`. Two utility templates (`risk-template.md`, `sprint-template.md`) rewritten from concrete Nova Analytics worked examples back to placeholder convention to match the other 19 templates.
67
+
68
+ ### Changed
69
+
70
+ - **`skills/trace/SKILL.md` and `skills/references/templates/trace-template.md`** — bidirectional traceability + `/implement-plan` integration:
71
+ - Inline template removed; standalone is the single source of truth (drift fix — inline had 8 columns, standalone had 11; mismatched column sets).
72
+ - **Bidirectional traceability is now the default.** Forward (FR → downstream) catches "what does this requirement become?"; reverse (US/UC/AC/NFR/Entity/API/WF/SC/Task → FR) catches "why does this artifact exist?". Senior BA needs both directions to validate provenance.
73
+ - **`/implement-plan` integration.** The matrix now includes a `Task` column populated from `12_implplan_*.md` (introduced in v3.4.0). The chain is now `FR → US → UC → AC → NFR → Entity → ADR → API → WF → SC → Task`.
74
+ - **Calibration interview added** (was generation-only): direction (forward / reverse / bidirectional, default bidirectional), scope, severity-thresholds source.
75
+ - **Coverage Gaps now grouped by severity** (🔴 Critical / 🟠 High / 🟡 Medium / 🟢 Low) read from `00_principles_*.md` §3 instead of just listing orphans flat.
76
+ - **`skills/analyze/SKILL.md` and `skills/references/templates/analyze-template.md`** — IEEE 830 alignment + Owner column + delta mode:
77
+ - **Finding categories expanded from 5 to 8** and explicitly mapped to **IEEE 830 §4.3 SRS quality attributes**: Duplication (consistency), Ambiguity (unambiguous, including modal-verb confusion), Coverage Gap (complete + traceable), Terminology Drift (consistent), Invalid Reference (traceable), **Inconsistency** (same fact stated differently across artifacts), **Underspecified Source** (post-v3.5.0 provenance discipline — FR/UC/AC/Entity/Endpoint missing the `Source` field), **Stakeholder Validation Gap** (post-v3.5.0 assumption discipline — assumptions without Owner or past Validate by date).
78
+ - **Owner column added** to every finding. Senior BAs always assign accountability — a finding with no owner doesn't get fixed.
79
+ - **Calibration interview added**: severity threshold source, categories to include, delta mode (only new findings since the last `/analyze` run).
80
+ - **`skills/clarify/SKILL.md`** — extended ambiguity catalogue + structured table output + ripple-effect handling:
81
+ - **Ambiguity categories expanded from 6 to 11.** Added: Quantification gaps (numbers without units, frequencies without windows), Time-zone gaps (timestamps without TZ), Currency gaps (amounts without currency), Scale gaps ("users" without specifying CCU/registered/MAU/DAU), Modal verb confusion (must / shall / should / may inconsistency per IEEE 830).
82
+ - **Output format changed from numbered list to structured table** with columns `# | Location | Category | Question | Answer`. The user can answer in-place by filling the rightmost column or defer with `(deferred)`.
83
+ - **Ripple-effect check added.** Before saving, the skill identifies any answer that affects other artifacts (e.g., a new role propagates from `/srs` to `/stories` personas, `/usecases` actors, `/scenarios` personas) and offers to update each affected file via `/revise`. Was previously a single sentence buried in step 2.
84
+ - **`skills/estimate/SKILL.md`** — Cone of Uncertainty + confidence bands + planning poker honesty:
85
+ - **Cone of Uncertainty discipline.** Calibration question 5 asks the estimation phase (Discovery / Brief / SRS / AC / Wireframes / Implementation Plan) and emits the confidence band that matches the standard variance for that phase: ±400% / ±100% / ±50% / ±25% / ±10%. Every estimate now carries a confidence label (Order of magnitude / ROM / Budget / Definitive / Control). Single-point estimates without a confidence band are misread as commitments — the Cone discipline prevents this.
86
+ - **Risk multiplier and tech-debt allocation added** as calibration questions. Stories linked to 🔴 Critical risks default to +20%; tech-debt reservation defaults to 20% of velocity.
87
+ - **Planning poker honesty.** New section "Estimation discipline — what this skill is and is not" makes explicit that this is an analytical single-estimator pass, not a team commitment, and recommends running planning poker with the dev team using these numbers as the starting anchor. Senior BAs never confuse an analytical estimate with a team commit.
88
+ - **Estimation Summary table** now carries the confidence band per story, the risk-adjusted total, the tech-debt reservation, and the net feature capacity — not just a flat SP total that hides the assumptions.
89
+ - **`skills/glossary/SKILL.md`** — Aristotelian definition discipline + ISO 1087-1 alignment + extended sources:
90
+ - **Standard alignment with ISO 1087-1** (Terminology Work — Vocabulary). Definitions follow the **Aristotelian form**: genus + differentia + purpose. The skill rejects circular definitions ("a User is a user of the system"), self-referential definitions, definitions that name features without identifying the genus, and definitions that name the genus without distinguishing from siblings.
91
+ - **New Step 2b — Definition quality check.** Walks every term in the glossary, classifies definitions as Circular / Self-referential / Missing genus / Missing differentia, and lists weak definitions in a sub-section of the drift report with a recommended rewrite. Senior BAs catch this on every glossary review.
92
+ - **Sources expanded** to include `00_discovery_*.md` (concept terms), `00_principles_*.md` (convention names), and `12_implplan_*.md` (phase names, technology choices). 12 source files → 14.
93
+ - **Drift report now requires a justification** for the canonical name choice — not just "Customer" but "Customer because it appears earliest, most frequently, and matches the domain reference". Without justification, drift recommendations are arbitrary.
94
+ - **`skills/risk/SKILL.md` and `skills/references/templates/risk-template.md`** — full ISO 31000 + PMBOK 7 alignment, Velocity axis, Treatment Strategy classification, calibration interview, document control, placeholder template:
95
+ - **Standard alignment with ISO 31000** (Risk Management — Guidelines) and **PMI PMBOK 7**. Each risk now carries the canonical risk-management fields, not just probability × impact.
96
+ - **Velocity axis added** (Years / Months / Weeks / Days / Immediate). Velocity records how fast the risk materialises once triggered — determines reaction time and whether mitigation has to be in place before the trigger or whether reactive response is enough. P × I alone is insufficient for a senior risk register.
97
+ - **Treatment strategy field added** with the four canonical strategies from PMBOK 7 / ISO 31000: **Avoid** (eliminate the cause), **Reduce / Mitigate** (lower probability or impact), **Transfer** (insurance / vendor / contract), **Accept** (acknowledge and budget). Previous version only documented mitigation + contingency without classifying the strategy.
98
+ - **Review cadence per risk** (Monthly / Quarterly / Ad hoc). Without a cadence, risks become "set and forget" — the canonical failure mode.
99
+ - **Calibration interview added** (was generation-only): risk tolerance (Low / Medium / High), domain-specific frameworks (FAIR for cyber, ISO 14971 for medical, COSO ERM for financial, NIST RMF for US federal), review cadence, treatment-strategy preference.
100
+ - **`risk-template.md` rewritten from a concrete Nova Analytics worked example to placeholder convention** with `[PROJECT_NAME]`, `[Owner]`, `[Velocity]`, etc. Aligns with the other 19 templates that use placeholder syntax. The Nova Analytics example was misread as the canonical content by agents that didn't realise it was a sample.
101
+ - Document-control metadata (`Version`, `Status`) added to the template.
102
+ - **`skills/sprint/SKILL.md` and `skills/references/templates/sprint-template.md`** — focus factor + ceremonies-aware net velocity, persona column, dependency awareness, placeholder template:
103
+ - **Net velocity replaces theoretical velocity as the assignment basis.** The skill now distinguishes theoretical velocity (100% capacity) from net velocity, applying focus factor (default 65%), buffer / slack (default 15%), and ceremonies cost (default 1 day per developer per 2-week sprint). Formula: `Net = Theoretical × Focus × (1 − Buffer) − Ceremonies`. Senior scrum masters never schedule against the theoretical number — that's how teams overcommit and miss sprints. Was assigning against raw theoretical velocity.
104
+ - **Calibration interview extended from 6 to 10 questions**: focus factor, buffer / slack, ceremonies overhead, holidays / PTO added.
105
+ - **Persona column added** to every sprint detail table (per the v3.5.0+ stories template). Sprint plans now reflect which personas each sprint serves so the team builds empathy.
106
+ - **Business Value Score and Depends on fields read from the v3.5.0+ stories template** explicitly in the priority-ordering algorithm. Was relying on implicit prerequisites only.
107
+ - **Context loading extended** to read `00_principles_*.md` for team capacity defaults and `00_discovery_*.md` for early MVP signals.
108
+ - **`sprint-template.md` rewritten from a concrete Nova Analytics worked example to placeholder convention** with `[PROJECT_NAME]`, `[Persona]`, etc. The new template carries the net-velocity header, the persona column, the explicit capacity model section, and explicit assumption documentation. Aligns with the other 19 templates.
109
+ - Document-control metadata (`Version`, `Status`) added to the template.
110
+
111
+ ### Cross-pattern impact
112
+
113
+ After the pilot, Group A, and Group B, **15 of the 24 shipped skills** carry the senior-BA improvements: standards conformance to canonical frameworks (BABOK v3, IEEE 830, ISO 25010, ISO 31000, ISO 1087-1, OpenAPI 3.x, Cockburn use cases, INVEST, MoSCoW, PMBOK 7, Cone of Uncertainty, IEEE 830 §4.3 quality attributes), explicit "why" / provenance fields, cross-artifact forward and reverse traceability, document control, single-source-of-truth templates without inline drift, and BA-grade required-topics coverage. Group C (bookend skills: `/discovery`, `/principles`, `/research`, `/handoff`, `/implement-plan`, `/export`, `/publish`) remains at current rigour and may receive a lighter sweep in a future session.
114
+
115
+ ---
116
+
14
117
  ## [3.6.0] — 2026-04-10
15
118
 
16
119
  ### Highlights
@@ -595,7 +698,9 @@ CI scripts that relied on the old behaviour (`init` creates files only, `install
595
698
 
596
699
  ---
597
700
 
598
- [Unreleased]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.6.0...HEAD
701
+ [Unreleased]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.8.0...HEAD
702
+ [3.8.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.7.0...v3.8.0
703
+ [3.7.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.6.0...v3.7.0
599
704
  [3.6.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.5.0...v3.6.0
600
705
  [3.5.0]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.4.1...v3.5.0
601
706
  [3.4.1]: https://github.com/TakhirKudusov/ba-toolkit/compare/v3.4.0...v3.4.1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kudusov.takhir/ba-toolkit",
3
- "version": "3.6.0",
3
+ "version": "3.8.0",
4
4
  "description": "AI-powered Business Analyst pipeline — 24 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",
@@ -19,19 +19,34 @@ Cross-cutting command. Performs a read-only analysis across all existing pipelin
19
19
 
20
20
  Read `references/environment.md` from the `ba-toolkit` directory to determine the output directory. If unavailable, apply the default rule.
21
21
 
22
+ ## Calibration interview
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 up to 4 options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended**, render variants in the user's language (rule 11), and wait for an answer.
25
+ >
26
+ > **Inline context (protocol rule 9):** if the user wrote text after `/analyze` (e.g., `/analyze focus on security and performance`), parse it as a category-focus hint and run only those categories.
27
+
28
+ If the user invokes `/analyze` with no inline hint, run a short calibration interview (skip any question already answered by `00_principles_*.md`):
29
+
30
+ 1. **Severity threshold** — which severity blocks `/done`? Read from `00_principles_*.md` §6 if present, otherwise ask. **Recommended:** CRITICAL only.
31
+ 2. **Categories to include** — all 8 canonical categories, or focus on a subset (e.g., only Coverage Gap and Invalid Reference for a fast pre-handoff sanity check)?
32
+ 3. **Delta mode** — produce a full report, or a delta against the prior `00_analyze_*.md` (only new findings since the last run)?
33
+
22
34
  ## Analysis categories
23
35
 
24
- ### 1. Duplication (DUP)
36
+ The 8 canonical categories cover the IEEE 830 §4.3 SRS quality attributes (correct, unambiguous, complete, consistent, verifiable, modifiable, traceable, ranked) plus modern BA concerns (terminology drift, source provenance, validation gaps).
37
+
38
+ ### 1. Duplication (DUP) — *IEEE 830: consistency*
25
39
  - Functionally equivalent or near-duplicate FRs within SRS.
26
40
  - User stories that describe the same action for the same role.
27
41
  - Repeated business rules across multiple artifacts.
28
42
 
29
- ### 2. Ambiguity (AMB)
43
+ ### 2. Ambiguity (AMB) — *IEEE 830: unambiguous*
30
44
  - Requirements containing metrics-free adjectives: "fast", "reliable", "scalable", "secure", "simple", "efficient" without a measurable criterion.
31
45
  - Underspecified scope: "the system" or "the user" without a concrete actor.
32
46
  - Conditional requirements without defined conditions.
47
+ - Modal verb confusion: inconsistent use of "must / shall / should / may" — IEEE 830 expects strict modal discipline.
33
48
 
34
- ### 3. Coverage Gap (GAP)
49
+ ### 3. Coverage Gap (GAP) — *IEEE 830: complete + traceable*
35
50
  - FR without at least one linked US.
36
51
  - US without linked UC (if Use Cases artifact exists).
37
52
  - US without AC (if AC artifact exists).
@@ -39,20 +54,42 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
39
54
  - Data entities not linked to any FR or US.
40
55
  - API endpoints not linked to any FR or US.
41
56
  - Wireframes not linked to any US.
57
+ - Tasks (from `12_implplan_*.md`) not linked to any FR/US/AC.
42
58
 
43
- ### 4. Terminology Drift (TERM)
59
+ ### 4. Terminology Drift (TERM) — *IEEE 830: consistent*
44
60
  - The same concept referred to by different names across artifacts (e.g., "Wallet" in SRS vs "Balance" in Stories vs "Account" in Data Dictionary).
45
61
  - Abbreviations expanded differently in different artifacts.
46
62
 
47
- ### 5. Invalid Reference (REF)
63
+ ### 5. Invalid Reference (REF) — *IEEE 830: traceable*
48
64
  - Links to IDs that do not exist (FR-NNN, US-NNN, UC-NNN, etc.).
49
65
  - References to roles not defined in the SRS roles section.
50
66
  - API endpoint links in wireframes pointing to non-existent endpoints.
67
+ - Brief Goal references (G-N) in the SRS §7 traceability table that do not exist in `01_brief_*.md` §2.
68
+
69
+ ### 6. Inconsistency (INC) — *IEEE 830: consistent*
70
+ - Same fact stated differently across artifacts (e.g., `01_brief` says €1.5M GMV target, `02_srs` §1.2 says €2M).
71
+ - A constraint in `01_brief` §6 contradicted by an FR in `02_srs` §3.
72
+ - Priority disagreement: same item Must in one artifact and Should in another.
73
+
74
+ ### 7. Underspecified Source (SRC) — *post-v3.5.0 provenance discipline*
75
+ - FR without `Source` field (introduced in v3.5.0).
76
+ - Use Case without `Source` field.
77
+ - AC without `Source` field.
78
+ - Entity without `Source` or `Owner` field.
79
+ - Endpoint without `Source` field.
80
+ - Stakeholder name referenced as a source but missing from `01_brief` §5 stakeholders table.
81
+
82
+ ### 8. Stakeholder Validation Gap (VAL) — *post-v3.5.0 assumption discipline*
83
+ - Assumption in `01_brief` §7 with no `Owner` or `Validate by` date.
84
+ - Assumption past its `Validate by` date and still not converted to a fact or risk.
85
+ - Brief goal in §2 with no measurable success metric.
51
86
 
52
87
  ## Generation
53
88
 
54
89
  **File:** `00_analyze_{slug}.md`
55
90
 
91
+ The full report layout lives at `references/templates/analyze-template.md` and is the single source of truth. Each finding carries: ID, Severity, Category (one of the 8 above), Location (artifact + element ID), Description, Recommendation, and **Owner** (which role is accountable for fixing the finding — assigned by `00_principles_*.md` §4 Definition of Ready ownership where applicable, otherwise by domain default).
92
+
56
93
  ```markdown
57
94
  # Cross-Artifact Quality Analysis: {Name}
58
95
 
@@ -61,13 +98,15 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
61
98
 
62
99
  ## Finding Report
63
100
 
64
- | ID | Category | Severity | Location | Summary | Recommendation |
65
- |----|----------|----------|----------|---------|----------------|
66
- | A1 | Duplication | HIGH | srs:FR-003, srs:FR-017 | Both describe user authentication | Merge into a single FR |
67
- | A2 | Ambiguity | MEDIUM | srs:NFR-002 | "Low latency" has no metric | Add target value in ms |
68
- | A3 | Coverage Gap | CRITICAL | srs:FR-008 | No linked user story | Create US or remove FR |
69
- | A4 | Terminology | HIGH | srs, stories | "Wallet" vs "Balance" used interchangeably | Standardize in glossary |
70
- | A5 | Invalid Ref | CRITICAL | ac:AC-003-01 | Links US-099 which does not exist | Fix reference |
101
+ | ID | Category | Severity | Location | Summary | Recommendation | Owner |
102
+ |----|----------|----------|----------|---------|----------------|-------|
103
+ | A1 | Duplication | HIGH | srs:FR-003, srs:FR-017 | Both describe user authentication | Merge into a single FR | BA |
104
+ | A2 | Ambiguity | MEDIUM | srs:NFR-002 | "Low latency" has no metric | Add target value in ms | BA |
105
+ | A3 | Coverage Gap | CRITICAL | srs:FR-008 | No linked user story | Create US or remove FR | BA |
106
+ | A4 | Terminology | HIGH | srs, stories | "Wallet" vs "Balance" used interchangeably | Standardize in glossary | BA |
107
+ | A5 | Invalid Ref | CRITICAL | ac:AC-003-01 | Links US-099 which does not exist | Fix reference | BA |
108
+ | A6 | Underspecified Source | HIGH | srs:FR-012 | No `Source` field per v3.5.0+ template | Add Source field | BA |
109
+ | A7 | Stakeholder Validation Gap | HIGH | brief:Assumption-3 | No Owner; past Validate by date | Convert to risk or validate | PM |
71
110
 
72
111
  ## Coverage Summary
73
112
 
@@ -89,17 +128,18 @@ Top 5 highest-severity items to address first, with recommended commands:
89
128
  1. {Finding ID} — {summary} → `/clarify FR-NNN` or `/revise [section]`
90
129
  ```
91
130
 
92
- **Severity scale:**
93
- - **CRITICAL** — blocks pipeline advancement or handoff (missing mandatory link, non-existent ID).
94
- - **HIGH** — significant quality risk (duplication, key term drift, missing metric for Must-priority item).
95
- - **MEDIUM** — quality concern, does not block (missing metric for Should-priority, minor overlap).
131
+ **Severity scale** *(read from `00_principles_*.md` §6 if present, otherwise defaults below):*
132
+ - **CRITICAL** — blocks pipeline advancement or handoff (missing mandatory link, non-existent ID, IEEE 830 traceability violation).
133
+ - **HIGH** — significant quality risk (duplication, key term drift, missing metric for Must-priority item, Underspecified Source on a Must-priority artifact).
134
+ - **MEDIUM** — quality concern, does not block (missing metric for Should-priority, minor overlap, IEEE 830 modifiability concern).
96
135
  - **LOW** — style or completeness suggestion.
97
136
 
98
137
  **Rules:**
99
138
  - Finding IDs are sequential: A1, A2, ...
100
139
  - Each finding references the exact artifact file and element ID.
140
+ - Each finding has an **Owner** assigned (BA / PM / Tech Lead / Designer / Stakeholder name).
101
141
  - Coverage rows are generated only for artifact pairs where both files exist.
102
- - The report is read-only — no artifacts are modified.
142
+ - The report is read-only — no artifacts are modified by `/analyze`. Use `/clarify` or `/revise` to act on findings.
103
143
 
104
144
  ## Iterative refinement
105
145
 
@@ -35,7 +35,7 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
35
35
 
36
36
  ## Analysis pass
37
37
 
38
- Scan the target artifact (or the specified section) for the following ambiguity categories:
38
+ Scan the target artifact (or the specified section) for the following 11 ambiguity categories. Categories A–F are the original set; G–K are post-v3.5.0 additions that catch the gaps a senior BA would notice on a regulated or international project.
39
39
 
40
40
  ### A. Metrics-free adjectives
41
41
  Requirements containing words like "fast", "reliable", "scalable", "secure", "user-friendly", "simple", "efficient", "high performance", "low latency" without a measurable criterion.
@@ -47,7 +47,7 @@ Terms, abbreviations, or roles used in the artifact but not defined in the gloss
47
47
  Business rules or constraints that contradict each other or contradict rules in prior artifacts.
48
48
 
49
49
  ### D. Missing mandatory fields
50
- Elements that lack required fields per the artifact's own template (e.g., a FR without Priority, a US without Linked FR, an AC without a Then clause).
50
+ Elements that lack required fields per the artifact's own template (e.g., a FR without Priority, a US without Linked FR, an AC without a Then clause, an FR without `Source` per the v3.5.0+ template).
51
51
 
52
52
  ### E. Ambiguous actors or scope
53
53
  Actions assigned to "the system", "the user", or "admin" where the specific role or external system is unclear.
@@ -55,27 +55,47 @@ Actions assigned to "the system", "the user", or "admin" where the specific role
55
55
  ### F. Duplicate or overlapping requirements
56
56
  Functionally equivalent or near-duplicate elements within the artifact or across artifacts.
57
57
 
58
+ ### G. Quantification gaps
59
+ Numbers without units, frequency claims without a window ("every 5 minutes" vs "5 minutes p95"), thresholds without a measurement method, percentages without a base.
60
+
61
+ ### H. Time-zone gaps
62
+ Timestamps without a stated time zone, "midnight" without specifying which time zone's midnight, business-hour rules without a region.
63
+
64
+ ### I. Currency gaps
65
+ Monetary amounts without a currency code, multi-region pricing without a per-region table, conversion rules without a rate source.
66
+
67
+ ### J. Scale gaps
68
+ "Users" without specifying which population (concurrent / registered / monthly active / daily active), "data" without volume, "requests" without rate.
69
+
70
+ ### K. Modal verb confusion
71
+ Inconsistent use of must / shall / should / may. IEEE 830 expects strict modal discipline: "shall" = mandatory contractual obligation, "should" = recommended, "may" = permitted, "must" = required by external constraint. Mixed modals across the same artifact undermine acceptance.
72
+
58
73
  ## Output to the user
59
74
 
60
- Present findings as a numbered list of targeted questions. Each item references the exact location (section, element ID, line summary):
75
+ Present findings as a structured table the user can answer in-place rather than as a numbered list of free-text questions. Each row references the exact location (section + element ID), the category, the question, and an empty answer cell:
61
76
 
62
77
  ```
63
- Ambiguities found in {artifact_file}:
64
-
65
- 1. [FR-003] "The system must respond quickly" what is the acceptable response time in milliseconds under normal load?
66
- 2. [US-007] Role "Manager" is used here but not defined in the SRS Roles section — is this equivalent to "Admin", or a separate role?
67
- 3. [NFR-002 vs FR-015] NFR-002 requires TLS 1.3 only, but FR-015 mentions "standard encryption" — should FR-015 explicitly reference NFR-002?
68
- 4. [AC-005-02] The "Then" clause states "the system handles the error correctly" what is the specific expected behavior (message shown, state reset, redirect)?
78
+ Ambiguities found in {artifact_file} ({N} questions):
79
+
80
+ | # | Location | Category | Question | Answer |
81
+ |---|----------|----------|----------|--------|
82
+ | 1 | FR-003 | A Metrics-free | "The system must respond quickly" — what is the acceptable response time in ms under normal load? | _(awaiting answer)_ |
83
+ | 2 | US-007 | B Undefined term | Role "Manager" used here but not defined in `02_srs_*.md` Roles. Equivalent to "Admin"? Separate role? | _(awaiting answer)_ |
84
+ | 3 | FR-015 vs NFR-002 | C — Conflicting | NFR-002 requires TLS 1.3 only; FR-015 mentions "standard encryption". Reference NFR-002 explicitly? | _(awaiting answer)_ |
85
+ | 4 | AC-005-02 | A — Metrics-free | "Then" clause says "system handles the error correctly" — specific expected behaviour? | _(awaiting answer)_ |
86
+ | 5 | FR-022 | I — Currency gap | "User charged a fee" — currency? per region? | _(awaiting answer)_ |
69
87
  ```
70
88
 
89
+ The table format lets the user fill in answers in the rightmost column and copy-paste the table back. It also lets the user defer specific questions explicitly by writing `(deferred)` instead of an answer.
90
+
71
91
  If no ambiguities are found, state that clearly and suggest `/analyze` for a broader cross-artifact check.
72
92
 
73
93
  ## Resolution
74
94
 
75
- After presenting the list, wait for the user to answer. Accept answers inline (user can reply to all questions in one message or answer one by one). After all answers are received:
95
+ After presenting the table, wait for the user to answer. Accept answers inline (the user can reply with the table filled in, or answer free-form by row number). After all answers are received:
76
96
 
77
97
  1. Apply the answers to update the artifact (rewrite affected elements).
78
- 2. If an answer affects a prior artifact (e.g., a role definition belongs in the SRS), flag it and offer to update that artifact as well.
98
+ 2. **Ripple-effect check.** Before saving, identify any answer that affects a prior or downstream artifact (a role definition affects `/srs` Roles section AND `/stories` personas AND `/usecases` actors AND `/scenarios` personas; a new business rule affects `/srs` business rules AND `/ac` Given/When/Then conditions AND `/datadict` constraints AND `/apicontract` validation rules). For each ripple, list the affected files and offer to update them with `/revise`. Do not auto-modify unrelated artifacts without confirmation.
79
99
  3. Save the updated artifact.
80
100
 
81
101
  ## Closing message
@@ -35,12 +35,24 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
35
35
 
36
36
  ## Calibration interview
37
37
 
38
+ > **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 options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended**, render variants in the user's language (rule 11), and wait for an answer.
39
+ >
40
+ > **Inline context (protocol rule 9):** if the user wrote text after `/estimate` (e.g., `/estimate t-shirt, post-srs phase, +20% buffer`), parse it and skip the matching questions.
41
+
38
42
  Before estimating, ask the following (skip questions where the answer is already clear from context):
39
43
 
40
- 1. **Scale:** Story Points (Fibonacci: 1 / 2 / 3 / 5 / 8 / 13 / 21), T-shirt sizes (XS / S / M / L / XL), or ideal person-days? _(default: Story Points Fibonacci)_
44
+ 1. **Scale:** Story Points (Fibonacci: 1 / 2 / 3 / 5 / 8 / 13 / 21), T-shirt sizes (XS / S / M / L / XL), or ideal person-days? **Recommended:** Fibonacci Story Points.
41
45
  2. **Reference stories:** Do you have known reference stories to anchor the scale? (e.g. "US-003 is a 3" or "login is an S") If yes, calibrate against those.
42
- 3. **Team assumptions:** Full-stack developer pair? Or separate frontend/backend? _(affects day estimates only)_
46
+ 3. **Team assumptions:** Full-stack developer pair? Or separate frontend/backend? *(affects day estimates only)*
43
47
  4. **Out of scope for this estimate:** Any stories to skip (e.g., already estimated, on ice)?
48
+ 5. **Estimation phase (Cone of Uncertainty band)** — what's the maturity of the underlying artifacts? **Recommended:** select the band that matches the latest completed pipeline step.
49
+ - **Discovery / Brief only** — variance ±400% (4× spread); confidence label "Order of magnitude".
50
+ - **Post-SRS** — variance ±100%; confidence label "Rough order of magnitude (ROM)".
51
+ - **Post-AC + Use Cases** — variance ±50%; confidence label "Budget estimate".
52
+ - **Post-Wireframes + Datadict + APIcontract** — variance ±25%; confidence label "Definitive estimate".
53
+ - **Post-Implementation Plan** — variance ±10%; confidence label "Control estimate".
54
+ 6. **Risk multiplier** — apply a buffer for high-risk stories (those linked to 🔴 Critical or 🟡 High risks in `00_risks_*.md`)? **Recommended:** +20% on Critical-linked stories, +10% on High-linked.
55
+ 7. **Technical debt allocation** — % of velocity reserved for tech debt, bug-fixes, support? **Recommended:** 20% (industry baseline).
44
56
 
45
57
  If the user types `/estimate` without additional input and prior context is sufficient, proceed with defaults and state assumptions clearly.
46
58
 
@@ -62,6 +74,17 @@ Apply the reference stories as anchors. If no references are given, calibrate in
62
74
 
63
75
  Do not pad estimates — model what a reasonably skilled team would take, not a worst-case scenario.
64
76
 
77
+ ## Estimation discipline — what this skill is and is not
78
+
79
+ This skill produces a **single-estimator analytical pass**. A senior BA running estimation in production would augment this with:
80
+
81
+ - **Planning poker** — team-based estimation where each developer commits independently and outliers discuss before re-voting. The canonical agile-team estimation technique. `/estimate` cannot do this — it must be run with the dev team after the analytical pass.
82
+ - **Wideband Delphi** — multi-round expert estimation with anonymous re-voting. Used when the team is distributed or when politics distort consensus. Same caveat — requires real humans.
83
+
84
+ **Cone of Uncertainty.** Boehm's classic principle: estimates made early in the lifecycle (post-Brief, post-Discovery) carry up to 4× variance from the eventual reality, narrowing to 1.25× by the time implementation is detailed. This skill **always emits a confidence label** based on the user-selected estimation phase (calibration question 5). A 5 SP estimate at the post-Brief phase is "5 SP ± 400%"; the same estimate at the post-Implementation-Plan phase is "5 SP ± 10%".
85
+
86
+ **Single-point estimates without a confidence band are dangerous** — they are misread as commitments. Every estimate produced by this skill carries an explicit confidence band tied to the Cone of Uncertainty.
87
+
65
88
  ## Output
66
89
 
67
90
  ### If scope ≤ 20 stories — update `03_stories_{slug}.md` in-place
@@ -79,23 +102,32 @@ Standalone estimation report with the full table.
79
102
  ```
80
103
  ## Estimation Summary — [PROJECT_NAME]
81
104
  Scale: [Story Points / T-shirt / Days]
82
-
83
- | US | Title | Epic | Estimate | Key drivers |
84
- |----|-------|------|---------|-------------|
85
- | US-001 | [Title] | E-01 | 3 SP | 2 AC scenarios, simple UI |
86
- | US-002 | [Title] | E-01 | 8 SP | external payment API, 4 AC scenarios |
87
- | US-003 | [Title] | E-02 | 13 SP | new domain area, complex state machine |
105
+ Estimation phase: [Discovery / Brief / SRS / AC / Wireframes / Implementation Plan]
106
+ Confidence band: [±400% / ±100% / ±50% / ±25% / ±10%]
107
+ Confidence label: [Order of magnitude / ROM / Budget / Definitive / Control]
108
+
109
+ | US | Title | Epic | Estimate | Confidence | Key drivers |
110
+ |----|-------|------|----------|------------|-------------|
111
+ | US-001 | [Title] | E-01 | 3 SP ± 25% | Definitive | 2 AC scenarios, simple UI |
112
+ | US-002 | [Title] | E-01 | 8 SP ± 25% | Definitive | external payment API, 4 AC scenarios |
113
+ | US-003 | [Title] | E-02 | 13 SP ± 50% | Budget | new domain area, complex state machine, RISK-02 +20% |
88
114
  ...
89
115
 
90
116
  | Metric | Value |
91
117
  |--------|-------|
92
118
  | Total stories estimated | [N] |
93
- | Total Story Points | [N] SP |
119
+ | Total Story Points (point estimate) | [N] SP |
120
+ | Total with confidence band | [N – N] SP ([low] – [high]) |
94
121
  | Largest story | US-[NNN] ([N] SP) — [reason] |
95
122
  | Stories ≥ 13 SP (consider splitting) | [N]: US-[NNN], … |
96
123
  | Average per story | [N] SP |
124
+ | Risk-adjusted total (high-risk +20%) | [N] SP |
125
+ | Tech debt reservation ([N]%) | [N] SP |
126
+ | **Net feature capacity** | [N] SP |
97
127
  ```
98
128
 
129
+ > ⚠️ **Single-estimator caveat.** This is an analytical estimation pass by a single estimator. For a real team commitment, run **planning poker** with the dev team using these numbers as the starting anchor and re-vote on any item where the team's estimate differs by more than one Fibonacci step.
130
+
99
131
  ### Splitting recommendations
100
132
 
101
133
  For any story estimated at 13 SP or higher (or XL), suggest a concrete split:
@@ -36,14 +36,20 @@ Read `references/environment.md` from the `ba-toolkit` directory to determine th
36
36
 
37
37
  ## Format interview
38
38
 
39
- If the format is not specified, ask:
39
+ > **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 options plus a free-text "Other" row last (5 rows max), mark exactly one row **Recommended**, render variants in the user's language (rule 11), and wait for an answer.
40
+ >
41
+ > **Inline context (protocol rule 9):** if the user wrote text after `/export` (e.g., `/export jira PROJ`, `/export github owner/repo`), parse it as a format + target hint and skip the matching questions.
40
42
 
41
- 1. **Target tool:** Jira, GitHub Issues, Linear, CSV, or other?
42
- 2. **Scope:** All stories, a specific epic, or specific story IDs?
43
- 3. **Include AC?** Embed acceptance criteria in the issue body? (default: yes)
44
- 4. **Jira-specific:** Project key (e.g., `PROJ`)? Epic link field name (default: `customfield_10014`)? Story Points field name (default: `story_points`)?
43
+ If the format is not specified, ask the following (skip any question already answered by inline context):
44
+
45
+ 1. **Target tool:** Jira / GitHub Issues / Linear / CSV / Other? **Recommended:** Jira (most enterprise teams).
46
+ 2. **Scope:** All stories / a specific epic / specific story IDs?
47
+ 3. **Include AC?** Embed acceptance criteria in the issue body? **Recommended:** yes — without AC, the imported issue is just a story title.
48
+ 4. **Jira-specific:** Project key (e.g., `PROJ`)? Epic link field name (default: `customfield_10014`)? Story Points field name (default: `customfield_10016`)?
45
49
  5. **GitHub-specific:** Repository (e.g., `owner/repo`)? Label prefix for epics (e.g., `epic:`)? Milestone name (optional)?
46
50
 
51
+ The exported issue body now includes **all v3.5.0+ stories template fields**: Persona (named, with context), Business Value Score, Size, Linked FR, Depends on (rendered as a "Blocked by" link in trackers that support it), Definition of Ready, INVEST self-check. Trackers that support custom fields (Jira, Linear) get them as separate fields; CSV gets extra columns; GitHub Issues embeds them in the issue body.
52
+
47
53
  ## Export formats
48
54
 
49
55
  ---
@@ -111,14 +117,14 @@ Or via CLI: jira import --file export_{slug}_jira.json
111
117
 
112
118
  Output file: `export_{slug}_github.json`
113
119
 
114
- Array of issue objects, one per story. Compatible with `gh` CLI batch import.
120
+ Array of issue objects, one per story. Compatible with `gh` CLI batch import. The body embeds all v3.5.0+ stories template fields since GitHub Issues has no custom field support.
115
121
 
116
122
  ```json
117
123
  [
118
124
  {
119
125
  "title": "US-001: {Story title}",
120
- "body": "## User Story\n\nAs a **{role}**, I want to **{action}**, so that **{benefit}**.\n\n---\n\n## Acceptance Criteria\n\n**Scenario 1 — {name}**\n- Given {precondition}\n- When {action}\n- Then {result}\n\n---\n\n**FR Reference:** FR-{NNN}\n**Priority:** {Must | Should | Could | Won't}\n**Estimate:** {N SP | —}",
121
- "labels": ["{epic-label}", "user-story", "{priority-label}"],
126
+ "body": "## User Story\n\nAs **{persona — named persona with role and context}**, I want to **{action}**, so that **{benefit}**.\n\n---\n\n## Acceptance Criteria\n\n**Scenario 1 — {name}** *(AC-001-01)*\n- Given {precondition}\n- When {action}\n- Then {result}\n\n---\n\n## Traceability\n\n- **Linked FR:** FR-{NNN}\n- **Linked Use Case:** UC-{NNN}\n- **Linked Acceptance Criteria:** AC-001-01, AC-001-02, AC-001-03\n- **Linked NFR:** NFR-{NNN} (if applicable)\n- **Linked Wireframe:** WF-{NNN} (if applicable)\n\n---\n\n## Metadata\n\n- **Priority:** {Must | Should | Could | Won't}\n- **Business Value Score:** {1–5}\n- **Size:** {XS | S | M | L | XL}\n- **Estimate:** {N SP | —}\n- **Depends on:** US-{NNN}, US-{NNN}\n- **INVEST self-check:** Independent ✓ · Negotiable ✓ · Valuable ✓ · Estimable ✓ · Small ✓ · Testable ✓",
127
+ "labels": ["{epic-label}", "user-story", "{priority-label}", "value:{1-5}", "size:{xs-xl}"],
122
128
  "milestone": "{milestone-name-or-null}"
123
129
  }
124
130
  ]
@@ -181,11 +187,11 @@ Linear does not have a native bulk JSON import — use the Linear SDK or Zapier.
181
187
  Output file: `export_{slug}_stories.csv`
182
188
 
183
189
  ```
184
- ID,Title,Epic,Role,Action,Benefit,Priority,Estimate,FR Reference,AC Summary
185
- US-001,"{Story title}",E-01,"{role}","{action}","{benefit}",Must,3 SP,FR-001,"{first AC scenario summary}"
190
+ ID,Title,Epic,Persona,Action,Benefit,Priority,Value,Size,Estimate,FR,UC,AC,NFR,WF,Depends on,AC Summary
191
+ US-001,"{Story title}",E-01,"{persona name + role + context}","{action}","{benefit}",Must,5,M,3 SP,FR-001,UC-001,"AC-001-01;AC-001-02;AC-001-03",NFR-002,WF-005,—,"{first AC scenario summary}"
186
192
  ```
187
193
 
188
- Compatible with Jira CSV import, Trello, Asana, Monday.com, and Google Sheets.
194
+ Compatible with Jira CSV import, Trello, Asana, Monday.com, and Google Sheets. Includes all v3.5.0+ stories template fields plus full cross-artifact traceability columns (FR / UC / AC / NFR / WF / Depends on) so a downstream tool can re-establish links without re-reading the source artifacts.
189
195
 
190
196
  ---
191
197
 
@@ -19,22 +19,27 @@ Examples:
19
19
  - `/glossary drift` — only show terminology drift findings, do not regenerate
20
20
  - `/glossary add [Term]: [Definition]` — manually add a term to the glossary
21
21
 
22
+ **Standard alignment:** definition style follows the **Aristotelian definition** (genus + differentia + purpose) used by ISO 1087-1 (Terminology Work — Vocabulary). A well-formed definition names the **kind** the term belongs to (genus), then **what makes it specific** (differentia), and optionally its **purpose**. Example: "A **Workspace** is a tenant boundary [genus: tenant boundary] for billing and access control [differentia + purpose]." Bad definitions are circular ("a User is someone who uses the system") or self-referential ("a Subscription is a user's subscription") — `/glossary` rejects these and asks for a rewrite.
23
+
22
24
  ## Context loading
23
25
 
24
- 0. If `00_principles_*.md` exists, load it — apply language convention (section 1) and ID naming convention (section 2).
26
+ 0. If `00_principles_*.md` exists, load it — apply language convention (section 1), ID naming convention (section 2), and any glossary-specific rules in section 8 (Project-Specific Notes).
25
27
  1. Scan the output directory for all existing artifacts. Load each one found:
28
+ - `00_discovery_{slug}.md` — concept terms, candidate audience names, reference product names
29
+ - `00_principles_{slug}.md` — convention names, mandatory category names
26
30
  - `01_brief_{slug}.md` — Brief Glossary section
27
31
  - `02_srs_{slug}.md` — Definitions and Abbreviations section, User Roles
28
- - `03_stories_{slug}.md` — actor names used in "As a..." statements
29
- - `04_usecases_{slug}.md` — actor names, system names
32
+ - `03_stories_{slug}.md` — persona names, role names used in "As a..." statements
33
+ - `04_usecases_{slug}.md` — actor names, system names, stakeholder names
30
34
  - `05_ac_{slug}.md` — state names, condition terms
31
- - `06_nfr_{slug}.md` — category names, compliance standard names
32
- - `07_datadict_{slug}.md` — entity names, field names, enum values
35
+ - `06_nfr_{slug}.md` — category names, compliance standard names, ISO 25010 sub-characteristics
36
+ - `07_datadict_{slug}.md` — entity names, field names, enum values, state machine state names
33
37
  - `07a_research_{slug}.md` — technology names, ADR decisions
34
- - `08_apicontract_{slug}.md` — error codes, resource names
38
+ - `08_apicontract_{slug}.md` — error codes, resource names, scope names
35
39
  - `09_wireframes_{slug}.md` — screen names, UI component names
36
40
  - `10_scenarios_{slug}.md` — persona names, scenario types
37
41
  - `11_handoff_{slug}.md` — any additional terms
42
+ - `12_implplan_{slug}.md` — phase names, task ids, technology choices from the Tech Stack header
38
43
  2. Load `skills/references/domains/{domain}.md` — Domain Glossary section.
39
44
  3. If `00_glossary_{slug}.md` already exists, load it to merge rather than replace.
40
45
 
@@ -61,11 +66,12 @@ For each term, record:
61
66
 
62
67
  ### Step 2 — Terminology drift detection
63
68
 
64
- Identify cases where the same concept appears under different names in different artifacts:
69
+ Identify cases where the same concept appears under different names in different artifacts. The recommendation must include a **justification** for the canonical name choice — not just "Customer" but "Customer because it appears earliest (in the Brief), most frequently (8 occurrences), and matches the domain reference":
65
70
 
66
71
  ```
67
72
  ⚠️ Drift: "Customer" (Brief), "User" (SRS), "Account" (Data Dictionary) — all refer to the registered buyer entity.
68
73
  → Recommend canonical name: "Customer"
74
+ → Justification: appears in the Brief (the source-of-truth glossary per project convention), used 8 times across artifacts vs 3 for "User" and 2 for "Account", and matches the e-commerce domain reference glossary.
69
75
  ```
70
76
 
71
77
  Flag drift as:
@@ -73,6 +79,17 @@ Flag drift as:
73
79
  - 🟡 **Medium** — synonym used in 1 artifact (easy to harmonise).
74
80
  - 🟢 **Low** — informal variation in a description field only.
75
81
 
82
+ ### Step 2b — Definition quality check
83
+
84
+ For every term that has a definition, verify the definition follows the Aristotelian form (genus + differentia + purpose). Flag definitions that are:
85
+
86
+ - 🔴 **Circular** — define the term using the term itself ("a User is a user of the system", "a Subscription is the user's subscription").
87
+ - 🔴 **Self-referential** — define the term by quoting the artifact that uses it ("a Workspace is the workspace described in section 2").
88
+ - 🟡 **Missing genus** — definition lists features but never names the kind ("Workspace: has billing, members, settings" — what *kind of thing* is it?).
89
+ - 🟡 **Missing differentia** — names the genus but doesn't distinguish from siblings ("a Workspace is a container").
90
+
91
+ The drift report includes a "Definition quality" sub-section that lists all weak definitions with a recommended rewrite. Senior BAs catch this on every glossary review.
92
+
76
93
  ### Step 3 — Undefined term detection
77
94
 
78
95
  Identify terms used in requirements but not defined anywhere in the glossary or domain reference: