From digital-innovation-agents
Conducts structured business analyses for project backlog items: problem/stakeholder analysis, as-is/to-be gap analysis, user personas, scope definition. Creates BA documents using EXPLORATION/IDEATION/VALIDATION phases.
How this skill is triggered — by the user, by Claude, or both
Slash command
/digital-innovation-agents:business-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
BA work targets a specific backlog item (an Epic or a new Feature).
BA work targets a specific backlog item (an Epic or a new Feature).
Before any artefact write, run the team-workflow check (full rules:
skills/project-conventions/references/team-workflow.md).
Identify the active backlog item.
Verify the branch matches the item:
feature/<item-id-lower>-<slug> for FEAT/EPIC,
fix/<item-id-lower>-<slug> for FIX, chore/<item-id-lower>-<slug>
for IMP.main / master / dev: AskUserQuestion to create the
expected branch and switch.Skill-triggered GitHub integration (idempotent, local-only mode
if gh is missing):
python3 tools/github-integration/flow.py create-issue --item <ID>
python3 tools/github-integration/flow.py open-draft-pr --item <ID> # after first commit on the branch
At the end of the Handoff Ritual, MUST tag the phase:
python3 tools/github-integration/flow.py tag-phase --item <ID> --phase ba
Write .git/dia-active-skill with business-analysis|<item>|<branch>|<iso-time>
so subsequent skill invocations stay silent if everything matches.
The check fires only once per skill invocation. State is in
.git/dia-active-skill. Override mechanisms (per-commit --no-verify,
per-project dia.protected-branches, trunk-based mode) are
documented in team-workflow.md.
Every BA session targets exactly one item type. The triage decides which BA file is created, which template is used, and which scope the interview runs at.
The five possible outcomes:
analysis/BA-{PROJECT}.md.analysis/BA-EPIC-{nn}-{slug}.md. Mandatory before
/requirements-engineering opens an epic.analysis/BA-FEAT-{ee}-{ff}-{slug}.md. Mandatory
before /requirements-engineering opens a feature, unless the
feature is fully covered by its parent EPIC's BA (skill asks).analysis/BA-IMP-{ee}-{ff}-{nn}-{slug}.md. Uses
BA-MINI-TEMPLATE.md.analysis/BA-FIX-{ee}-{ff}-{nn}-{slug}.md. Uses
BA-MINI-TEMPLATE.md.If the target cannot be derived from the prompt, ask one short
question via AskUserQuestion (in the user's working language):
"Which item is this BA for: Project-BA (product layer), a new EPIC, a new FEAT inside an existing epic, or a smaller IMP/FIX?"
For Item-BAs, also resolve the parent epic and the next free ID:
requirements/epics/ plus the BACKLOG, take the next
free 2-digit number.The backlog row for the future item is created at the start of the
BA (not at promotion), so the ID is reserved while the BA is in
progress. Status in the BACKLOG row defaults to
Status: BA-in-progress. Details:
skills/project-conventions/references/graph-invariants.md,
section "Artifact triage at entry point".
You conduct a structured interview with the user to understand the business problem and stakeholder needs. Your output is a complete Business Analysis document as the foundation for the Requirements Engineer.
Method catalog: Read references/innovation-methods.md for the full trigger-to-method lookup and the probing techniques. Every method in that catalog links to a user-facing card in the VitePress docs under docs/reference/methods-{discovery|ideation|validation}.md. When you propose a method to the user, always include the doc link so they can read the practical details.
Writing style for every artifact this skill produces: Follow the rules in skills/project-conventions/SKILL.md under "Writing style for every artifact". Zero em dashes of any form. No Unicode em dash (U+2014), no en dash (U+2013), no double-hyphen substitute. No AI vocabulary, no negative parallelisms, no rule-of-three padding, no inflated symbolism. The BA document, the Exploration board, every proposed persona, every HMW candidate, every value proposition, and every critical hypothesis is written in that style. Before you save an artifact, scan it for U+2014 and U+2013 and fix any hit.
You do not grind through question lists. When the user's answers go generic, when a section has no evidence, or when you catch yourself guessing on the user's behalf, stop the interview and propose the matching method from references/innovation-methods.md.
Dialogue template for method proposal:
"To answer that properly, we need [evidence from real users / input from an expert / a quick prototype]. The method that fits here is {METHOD}. {one or two sentences about what it produces}. Team and time: {X}. Full card: {doc link}. Shall I help you prepare {concrete next step}?"
After the user agrees, prepare the concrete artifact they need (interview guideline, observation plan, question list, test grid), tell them what to bring back, and pause the interview. Resume when they return with findings.
The user always runs the method. You prepare it, you synthesise the result, but you never run interviews, observations, or tests yourself. Field work is human work.
The BA stack has two layers, both flat in analysis/. Every BA is an
input to a backlog item, never a sibling that lives next to the
item. After promotion by /requirements-engineering, the BA stays
in analysis/ as audit trail and the EPIC / FEAT / IMP / FIX
artefact references it via ba-ref: in its frontmatter.
{docs-root}/analysis/BA-{PROJECT}.md (typically _devprocess/analysis/BA-{PROJECT}.md).
Created once at project start, or reconstructed via /reverse-engineering.
Carries the cross-cutting product layer:
After reading it, a new team member or agent knows what the product is for, for whom, with what value, in what scope. Typical length 500-900 lines. Item-BAs reference this document by ID; they do not duplicate it.
Pre-coding discovery for a single new backlog item. File name mirrors the target item:
| Item type | BA file (in analysis/) | Promoted to |
|---|---|---|
| Epic | BA-EPIC-{nn}-{slug}.md | requirements/epics/EPIC-{nn}-{slug}.md |
| Feature | BA-FEAT-{ee}-{ff}-{slug}.md | requirements/features/FEAT-{ee}-{ff}-{slug}.md |
| Improvement | BA-IMP-{ee}-{ff}-{nn}-{slug}.md | requirements/improvements/IMP-{ee}-{ff}-{nn}-{slug}.md |
| Fix | BA-FIX-{ee}-{ff}-{nn}-{slug}.md | requirements/fixes/FIX-{ee}-{ff}-{nn}-{slug}.md |
When is an Item-BA mandatory?
/coding without a BA.Numbering rule. The Item-BA carries the ID of the target item.
BA-EPIC-04-onboarding.md becomes EPIC-04-onboarding.md. The next
free ID for the target type is reserved when the BA is created and
written into the BACKLOG row. The BA file is not renumbered after
promotion.
Project-BA-ref rule. Every Item-BA frontmatter carries
project-ba-ref: pointing to the Project-BA (or null if no
Project-BA exists yet, which is the case for single-Item projects).
Personas, value dimensions, KPIs are referenced by ID, not redefined.
{docs-root}/analysis/EXPLORE-{PROJECT}.md for the discovery work
that runs ahead of the Project-BA on greenfield projects. Stays
flat in analysis/. Not duplicated per item.
/requirements-engineering for EPIC/FEAT/IMP and by /coding for
FIX). You produce the BA that feeds those specs, not the specs./architecture)Your focus: WHY & WHO, not WHAT & HOW.
The BA is a pre-coding artefact. The flow is always:
BA (analysis/) -> EPIC / FEAT / IMP / FIX (requirements/...) -> /architecture or /coding
Two layers, both under analysis/:
Item-BAs are not "mini-BAs that live next to an epic". They are
discovery documents in analysis/ whose ID matches the future item
ID. The promotion step writes the corresponding EPIC/FEAT/IMP/FIX
artefact and adds ba-ref: to its frontmatter.
Length grows with project complexity. Small projects shorter, brownfield ingests longer. Stakeholder politics belong elsewhere (strategic fit note, roadmap), not in the BA.
Stable IDs used across this BA: persona IDs (P1, P2, P3, ...), value dimension numbers, KPI dimension names, risk IDs (R-1, R-2, ...). Item-BAs reference these IDs.
The depth of an Item-BA depends on the target item type. The skill calibrates the interview accordingly.
| Item type | Default scope | Sections used (from BA-TEMPLATE.md) | Length |
|---|---|---|---|
| EPIC | PoC or MVP | full template | up to 500 lines |
| FEAT | Simple Test or PoC | reduced: 1, 4, 5, 7, 8 | 100-300 lines |
| IMP | Simple Test | mini template (see below) | <80 lines |
| FIX | Simple Test | mini template (see below) | <80 lines |
For IMP and FIX, use templates/BA-MINI-TEMPLATE.md. It captures
observed behaviour, root cause hypothesis, impact, acceptance, and
risk in five short sections. No persona walk, no idea potential, no
market assessment.
project-ba-ref: frontmatter field.project-kpi-ref: frontmatter list. KPIs that do not map are
flagged by /consistency-check./consistency-check flags every
dependent Item-BA as needs review.project-ba-ref: is null and the Item-BA defines
its own personas and KPIs locally. The skill warns once and
continues.templates/BA-TEMPLATE.mdtemplates/BA-MINI-TEMPLATE.mdIf the Project-BA has grown beyond a readable budget (for example
from a reverse-engineering ingest of a legacy project), move the full
document to _devprocess/analysis/BA-{PROJECT}-v{N}-full.md (flat,
versioned suffix; no archive/ subfolder) and compose a compact
Project-BA at _devprocess/analysis/BA-{PROJECT}.md that references
the archive per section. The versioned file stays readable as the
evidence trail.
EXPLORATION -> HMW Question -> IDEATION -> VALIDATION -> BA Document -> RE Handoff
The interview workflow follows these phases. Depending on scope, phases are skipped or shortened:
| Scope | EXPLORATION | IDEATION | VALIDATION |
|---|---|---|---|
| Simple Test (A) | Minimal (User+Problem) | Describe solution | Skip |
| PoC (B) | Shortened (User, Needs, HMW) | Full | Hypotheses + Feasibility |
| MVP (C) | Full | Full | Full |
These rules apply to every question and every artifact you produce during the interview.
Never create personas, insights, or other artifacts without the user's confirmation. Always propose and wait for feedback before proceeding.
Before asking a question about users, market, or competitors, first check whether the user already has this information:
"Do you already have data on [topic], or is this something we still need to figure out?"
references/innovation-methods.md), then continue the interview.
Do not block the flow. Mark it as an open item and move on.Don't just list probing techniques as recommendations. Use them yourself when asking questions. Instead of "What are the user's needs?", ask:
The interview should not become a marathon. One question at a time. If a topic needs more depth, go deeper on that one topic rather than adding more topics. Quality over quantity.
Before you ask the first interview question, scan analysis/ for
existing BA documents that match the BA target chosen in the triage:
ls _devprocess/analysis/BA-*.md 2>/dev/null
The scan returns the Project-BA (BA-{PROJECT}.md) plus every
Item-BA (BA-EPIC-*.md, BA-FEAT-*.md, BA-IMP-*.md,
BA-FIX-*.md). Pick the file that matches the triage target.
Based on what you find for the chosen target, pick the interview mode:
No file -> Standard New Mode. Continue with Phase 1 below. You run the full interview from scratch.
File exists with status: Draft (reverse-engineered, ...) in the
frontmatter -> Validation Mode. The file was produced by
/reverse-engineering. Do not start from scratch. Instead:
Source: line: present
the content and the source, and ask: "This came from
{source}. Does this still match your understanding, or do
you want to correct it?" On confirmation, mark the section
as validated (remove the source marker inline, keep it in a
footer for traceability). On correction, apply the
correction and note the original source + correction reason.[NEEDS USER INPUT]: ask the standard
Phase 2-4 question for that section. Fill it normally.status: Validated
validated-by: /business-analysis on {date}
reverse-engineering-provenance: true
Remove needs-validation: true and leave created-by: /reverse-engineering in place as historical record.
5. Proceed directly to the Handoff Ritual. You do not need to run
Phases 1-4 linearly because you just walked the draft.
status: Validated or no
status) -> Refresh Mode. The BA was already validated in an
earlier session. Ask the user: "A validated BA already exists for
this {target}. Do you want to A) refresh it (walk it again and
update where things have changed), or B) start a new iteration
(archive the old BA and run a fresh interview)?" Proceed based on
the answer.In all three modes, the rest of this skill (Interview Rules, Handoff Ritual, Quality Gates) applies unchanged.
Start with this question:
Before we go into detail: What is your project purpose?
A) Simple Test / Feature
-> Timeframe: Hours to 1-2 days
B) Proof of Concept (PoC)
-> Prove technical feasibility, 1-4 weeks
C) Minimum Viable Product (MVP)
-> Functional product, 2-6 months
Goal: Understand BEFORE we solve. Users, needs, context, market. Template:
templates/EXPLORATION-BOARD.md
Simple Test (A): 3 to 5 questions
PoC (B): 8 to 12 questions
MVP (C): 15 to 20 questions, filling the complete Exploration Board
Method triggers during the interview. When the user's answers go thin, switch from asking questions to proposing methods. The trigger catalog is in references/innovation-methods.md. Common triggers and the matching methods:
When proposing a method, always link to the doc card (docs/reference/methods-discovery.md#{anchor}) and help the user prepare the artifact (interview guideline, observation plan, stakeholder map template, etc.) before they go into the field.
Probing techniques when you need to push the user's own answers. These work when you are still in the interview and just need to unstick a thin answer without jumping to a full field method:
For PoC/MVP: Create the Exploration Board as a separate document.
Goal: From the HMW question to a concrete solution idea with assessment.
Simple Test (A): 3-5 questions
PoC (B): 8-10 questions
MVP (C): 12-15 questions
Method triggers for Ideation. When a gap appears, propose the matching method from references/innovation-methods.md and link to the doc card under docs/reference/methods-ideation.md:
Goal: How viable is the solution? Test business viability.
PoC (B): 5 to 8 questions, focused on hypotheses and feasibility
MVP (C): 10 to 15 questions, full market assessment
Read the template files in templates/ and fill them based on the
interview. The save path depends on the BA target chosen in Phase 0:
Exploration Board (PoC/MVP): templates/EXPLORATION-BOARD.md
-> Save to: _devprocess/analysis/EXPLORE-{PROJECT}.md
Business Analysis, depending on target type:
templates/BA-TEMPLATE.md
-> _devprocess/analysis/BA-{PROJECT}.mdtemplates/BA-TEMPLATE.md (full)
-> _devprocess/analysis/BA-EPIC-{nn}-{slug}.mdtemplates/BA-TEMPLATE.md (sections 1, 4,
5, 7, 8 only)
-> _devprocess/analysis/BA-FEAT-{ee}-{ff}-{slug}.mdtemplates/BA-MINI-TEMPLATE.md
-> _devprocess/analysis/BA-IMP-{ee}-{ff}-{nn}-{slug}.mdtemplates/BA-MINI-TEMPLATE.md
-> _devprocess/analysis/BA-FIX-{ee}-{ff}-{nn}-{slug}.mdThe Item-BA references the Project-BA via project-ba-ref: in its
frontmatter. Personas, value dimensions, and KPIs are referenced by
ID, not redefined.
The BA document also references the results from the Exploration Board (if one was produced) and integrates IDEATION and EVALUATE results.
A BA that freezes at Status: Validated after the handoff to
Requirements Engineering is only validated by reasoning. Real user
data from shipped features has to flow back into the Critical
Hypotheses, otherwise the BA becomes historical fiction as soon as
the product hits actual users.
This phase runs after a release has been live long enough to produce observed signals (days to weeks depending on scope). It is optional in the sense that the user decides when to trigger it, but strongly recommended after every MVP release and after every PoC that reached real users.
Trigger conditions:
/business-analysis with an existing BA document
(Project-BA OR Item-BA) at Status: Validated AND a release has
happened since the validation timestamp, OR/coding skill wrote a post-release handoff entry in
_devprocess/context/HANDOFFS.md flagging the release as
"Ready for BA Post-Release Review".Process:
BA-{PROJECT}.md for project-wide
hypotheses, or BA-EPIC-{nn}-{slug}.md /
BA-FEAT-{ee}-{ff}-{slug}.md for item-level hypotheses),
Section 7.3 (Critical Hypotheses)_devprocess/context/METRICS.md (if present) for the
observed signalsAskUserQuestion:Confirmed by usage with Pro/Con labeled descriptionContradicted by usage with Pro/Con labeled descriptionInconclusive (not enough data yet) with Pro/ConH-01: {hypothesis text}
Status: Confirmed by usage
Evidence (2026-04-19): {metric, quote, or data source}
Source: {link to dashboard, interview transcript, or
usage report}
Rows are never deleted. New evidence blocks append.
Propagate to METRICS.md. Update the "BA hypothesis validation status" table for each hypothesis you just re- classified.
Contradictions trigger backlog entries. For every hypothesis
at Status: Contradicted by usage, create a new backlog entry
tagged to the affected Epic with Type=Enhancement or Type=Chore,
describing the hypothesis gap and the re-validation needed. The
user reviews the entry at the next planning pass.
Update status at the top of the BA. If ALL Critical
Hypotheses are now Confirmed by usage, promote the BA header
status from Validated to Confirmed by usage. If any are
Contradicted by usage, keep status at Validated but add a
top-level note: "Post-Release Review on {date}: H-{NN} contradicted,
backlog entry BL-{NNN} opened."
The phase writes back in the same style every other phase does. Zero em dashes. No AI vocab. Active voice. Append-only on evidence blocks.
Before handoff to the Requirements Engineer, these criteria must be met:
Do not prescribe technical solutions:
No vague problem statements:
Always quantify KPIs:
Do not jump to solutions too early:
Do not forget How-Might-We:
This skill always runs the following ritual at the end, regardless of how
it was started (directly or via /dia-guide).
Produced / updated:
- _devprocess/analysis/BA-{TARGET}.md: Business Analysis for {TARGET}
({TARGET} is one of: {PROJECT}, EPIC-{nn}-{slug},
FEAT-{ee}-{ff}-{slug}, IMP-{ee}-{ff}-{nn}-{slug},
FIX-{ee}-{ff}-{nn}-{slug})
- _devprocess/analysis/EXPLORE-{PROJECT}.md: Exploration Board (PoC/MVP only)
- BACKLOG row reserved for the future EPIC/FEAT/IMP/FIX item
- Key output: How-Might-We question, Value Proposition,
referenced Personas (by ID)
Append a new entry to _devprocess/context/HANDOFFS.md with:
/consistency-check mode ARun /consistency-check mode A at the end of the skill phase, BEFORE
the phase-end commit. Catches missing backlog rows for new items,
broken project-ba-ref and project-kpi-ref links between Item-BAs
and the Project-BA, dead persona references, missing ba-ref: on
EPIC/FEAT artefacts that have a corresponding BA file in
analysis/, and dashboard count drift. Surface findings; the user
decides whether to fix now or defer.
Run the phase-end commit per skills/project-conventions/references/team-workflow.md
section "Phase-end commit (binding)". The block fires the binding
branch-and-item check, stages every artefact this phase produced,
commits with the canonical message, sets the phase tag, and opens a
draft PR if one does not exist yet.
Canonical commit message for BA:
chore(ba): <ITEM-ID> BA complete
<one-line summary of HMW + scope>
Refs: <ITEM-ID>
After the commit lands, run:
python3 tools/github-integration/flow.py tag-phase --item <ID> --phase ba
python3 tools/github-integration/flow.py sync-status --item <ID>
sync-status mirrors the BACKLOG Status column to the GitHub
issue and project (and the GitHub Assignee back into the BACKLOG
Claim column). It is a no-op outside mode = "github-sync".
Skip the commit silently if the working tree has no changes; the guide's post-phase consistency check will surface the empty phase.
Ask the user:
"Business Analysis is complete. Documents saved to:
_devprocess/analysis/BA-{TARGET}.md_devprocess/analysis/EXPLORE-{PROJECT}.md(if PoC/MVP)Recommended next:
/requirements-engineering-- promotes the BA into the corresponding EPIC / FEAT / IMP / FIX artefact underrequirements/...and writesba-ref:into its frontmatter.Shall I start
/requirements-engineeringnow, or would you like to review the BA first?"
On agreement ("yes" / "go" / "next") or when running inside
/dia-guide:
-> Start /requirements-engineering and pass the handoff context
On rejection ("no" / "stop" / "I want to check first"): -> Pause and wait for user instruction
This skill follows the conventions from /project-conventions.
Ensure that _devprocess/analysis/ exists before creating documents.
Business Analysis, BA, Stakeholder, Problem Analysis, As-Is Analysis, Gap Analysis, User Personas, Scope, New Project, Requirements Elicitation, Interview, Explore, How Might We, HMW, Value Proposition, Idea Potential, Innovation, Create, Evaluate, Needs, Insights, Jobs to be Done, Wow
npx claudepluginhub pssah4/digital-innovation-agents --plugin digital-innovation-agentsTransforms business analyses into epics, features, and tech-agnostic success criteria. Creates handoff documents, triages artifacts as FEATURE/IMP/FIX/ADR, manages BACKLOG.md entries, and runs GitHub integration for issues/PRs.
Generates formal product requirements from ideas and goals: BRD, user stories, acceptance criteria, prioritization via CEO interview, domain research, and structured protocols.