Biz impact analysis
Skill Aimeerrhythm/enterprise-change-workflow/skills/biz-impact-analysis
Business impact assessment after code changes complete. Auto-runs after impl-verify for P0/P1; invoke manually via /ecw:biz-impact-analysis.From its SKILL.md
npx -y skills add Aimeerrhythm/enterprise-change-workflow --skill biz-impact-analysisAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.1 KB, as published. Nobody here has run it
Business Impact Analysis
After code changes are complete, dispatch the biz-impact-analysis agent to analyze the impact of changes on business processes.
Announce at start: "Using ecw:biz-impact-analysis to assess business impact of code changes."
Output language: Read ecw.yml → project.output_language. Pass to dispatched agent prompt. Report headings and labels follow this language.
Flow
- Determine Diff Range — Resolution priority:
- With explicit args (e.g.
git diff abc123...HEAD): usegit diff {args}directly. - No args + ECW session-state: read
baseline_commitfrom.claude/ecw/session-data/{workflow-id}/session-state.jsonand usegit diff {baseline_commit}...HEAD. This bounds the analysis to the current workflow. - No args + no session-state: fall back to
git diff main...HEAD(ormaster...HEADin legacy repos).bash-preflightwill rewrite this to{baseline}...HEADwhen a baseline is available; if not, expect noise from unrelated historical commits.
- With explicit args (e.g.
- Coordinator Preprocessing — Execute before Agent dispatch:
- Run
git diff --stat {diff_range}to get change statistics - Run
git diff --name-only {diff_range}to get file list - Read
path-mappings.md, map file list to domains - Fill above results into Agent prompt, replacing full diff
- Run
Knowledge file robustness: If
path-mappings.mdis missing, pass the raw file list to the Agent without domain mapping. The Agent will use path-based heuristic grouping and note[Warning: path mappings not found, domain identification is heuristic]in the report.
- Dispatch biz-impact-analysis agent — Read
./prompts/agent-prompt-template.mdfor the dispatch prompt structure and argument parsing rules. Model:opus(default frommodels.defaults.analysis; configurable via ecw.yml). Timeout: 300s. Budget cap: single agent, no retry loop — one attempt plus one retry on format failure only. Pass in preprocessed results, await impact analysis report - Return value validation: Verify the agent's report contains required sections ("Analysis Coverage", "Change Summary", "Direct Impact"). If the report is missing critical sections:
- Log to Ledger:
[FAILED: biz-impact-analysis, reason: incomplete report] - Retry once with the same model
- If retry also fails: output the partial report as-is with
[degraded: incomplete analysis]header, and warn user that manual impact review may be needed
- Log to Ledger:
- Auto-backfill knowledge base — If the agent's report contains "Unregistered Cross-Domain Calls", execute the knowledge backfill procedure (see Knowledge Auto-Backfill below)
- Present analysis report — Write the full report to
session-data/{workflow-id}/biz-impact-report.md(read theworkflow_idfield fromsession-state.json). Then output the agent's formatted report directly; append backfill summary if any calls were added - Mark Task complete — Mark the biz-impact-analysis Task as complete via TaskUpdate
Knowledge Auto-Backfill
When the agent's report flags "Unregistered Cross-Domain Calls", automatically backfill them into the knowledge base instead of relying on manual follow-up.
Procedure
-
Extract unregistered calls — Parse the agent's report for all entries under "Unregistered Cross-Domain Calls" (or equivalent section). Each entry typically contains: caller domain, callee domain, call method (RPC/HTTP/MQ), caller class/method, callee class/method.
-
Read existing matrix — Read
.claude/knowledge/shared/cross-domain-calls.md(path from ecw.ymlpaths.knowledge_shared).- If the file does not exist, skip backfill and output
[Warning: cross-domain-calls.md not found, skipping auto-backfill. Please create the file and backfill manually.]
- If the file does not exist, skip backfill and output
-
Deduplicate — For each unregistered call, check if an equivalent entry already exists in the matrix (match on caller domain + callee domain + call method + caller class). Skip entries that already exist.
-
Append new entries — Append only genuinely new calls to the end of the matrix table, preserving the existing table format. Use Edit tool (not Write) to append rows.
- Conservative strategy: Only add entries. Never modify or delete existing entries.
- Each appended row should include a trailing comment:
<!-- auto-backfilled by biz-impact-analysis {date} -->
-
Report backfill result — Append the following summary to the end of the analysis report output. Section title and text follow
project.output_language:
---
### Knowledge Auto-Backfill
Auto-backfilled {N} cross-domain call(s) to `cross-domain-calls.md`:
{list of added entries, one per line}
> Backfill strategy: append-only for confirmed new calls. Existing entries are never modified or deleted. Edit manually if adjustments are needed.
If N=0 (all flagged calls already existed), output instead:
---
### Knowledge Auto-Backfill
All unregistered calls flagged in the report already exist in the knowledge base. No backfill needed.
Edge Cases
| Scenario | Handling |
|---|---|
cross-domain-calls.md not found | Skip backfill, warn in report, suggest manual creation |
cross-domain-calls.md has no table header | Skip backfill, warn: [Warning: cross-domain-calls.md format unrecognized, skipping auto-backfill] |
| Agent report has no "Unregistered Cross-Domain Calls" section | No backfill needed, skip silently |
| Agent report parsing ambiguous | Skip backfill for ambiguous entries, only backfill clearly parseable ones, note skipped count in summary |
Error Handling
| Scenario | Handling |
|---|---|
| Biz-impact-analysis Agent returns empty or fails | Log FAILED to trace (ecw_trace.jsonl) → retry once → still fails: escalate via AskUserQuestion: "Business impact analysis unavailable. Options: (1) retry, (2) proceed without impact analysis, (3) abort." |
path-mappings.md missing | Agent cannot map files to domains → output [Warning: path mappings not found, domain identification degraded] and proceed with file-path-based heuristic grouping |
| Knowledge files missing (cross-domain-calls.md, mq-topology.md, etc.) | Agent logs [Warning: {file} not found] per missing file → analysis continues with available data, "Analysis Coverage" section in report reflects gaps |
git diff returns empty | No changes to analyze → notify user and exit without dispatching agent |
Supplementary Files
prompts/agent-prompt-template.md— Agent dispatch prompt structure and argument parsing rulesprompts/common-rationalizations.md— Anti-patterns to avoid
Notes
- The "Analysis Coverage" section in the report indicates which dimensions may have gaps
- "Unregistered cross-domain calls" flagged in the report are auto-backfilled to
cross-domain-calls.md(conservative: append-only, no modification/deletion) - "Suspected stale entries" flagged in the report still need manual confirmation before cleanup