Purpose
Deterministic root cause: Pareto ranks cause categories; rca_tree selects the evidenced why-chain, applies the systemic test and the operator-error rejection.
When to use
After ncr-intake in every CAPA run.
Inputs
capa-intake.json + complaints.csv + references cause-links library.
Steps
- Validate against the contract.
- Run scripts/pareto.py --capa capa-intake.json --complaints complaints.csv --out pareto.json
- Run
python3 scripts/rca_tree.py --pareto pareto.json --links references/cause-links.json --out rca.jsonfrom this skill's folder, using workspace paths for the Pareto input and generated output. - Quote the chain verbatim. If the engine rejected 'operator error' (capa-rules.md #3.4), say so explicitly - a recurring defect is never closed on retraining alone.
Output
rca.json - the {root_cause} hop with pareto[], why_chain, systemic flag.
Grounding requirements
Every why must be evidenced in the record set (rca-methods.md); the chain cites the cause-link library and complaint window.
Constraints
- Method is engine-only; the model never invents or reorders a why-chain, and never accepts the incident narrative's cause label over the Pareto.
Escalation / uncertainty
Engine escalations (#3.4 rejection, #2.2 depth, #7 confidence) pass through verbatim.