Chapter 21 — RACI: Who Does What, and Who Is Accountable #
"Accountability breeds response-ability." -- Stephen R. Covey
📖 20 min read | 👤 All personas | 🏷️ Part VI: Orchestration
What you'll learn:
- Why clear accountability is the difference between orchestration and chaos
- The four RACI roles and how they map to the Neam agent ecosystem
- The two invariants that prevent accountability gaps
- How to build a complete RACI matrix for a multi-agent data project
- What happens when traceability is removed (DataSims ablation A8)
The Problem: Who Owns This Failure? #
Sarah, the MLOps engineer at SimShop, stares at a production alert at 2:47 AM. The churn prediction model is returning NaN for 12% of customers. She opens the pipeline logs. The feature engineering step ran successfully. The model scored successfully. But somewhere between the two, a column was silently renamed during a schema migration that nobody told her about.
She pings the data engineer. "Not my problem -- I built the pipeline to spec." She pings the data scientist. "The model is fine, check the features." She pings the business analyst. "I wrote the requirements six weeks ago, I don't know what changed."
Three smart people. Zero accountability. One broken production system.
This is the accountability vacuum -- the organizational failure mode where every individual did their job correctly, but nobody owned the outcome. It is the single most common root cause of the 85% failure rate we discussed in the Preface.
RACI solves this.
The RACI Framework #
RACI is a responsibility assignment matrix that maps every task to four roles:
| R — Responsible | The specialist who does the work |
| A — Accountable | The person who owns the outcome (one per task) |
| C — Consulted | Experts asked for input before the work |
| I — Informed | Stakeholders notified after the work completes |
In human organizations, RACI is a governance document that people write and then ignore. In the Neam agent ecosystem, RACI is a runtime enforcement mechanism -- the DIO enforces it on every task dispatch, and the system will not proceed if the invariants are violated.
The Two Invariants #
Every RACI assignment in the Neam agent stack must satisfy two invariants:
Invariant 1: Every task has exactly one agent assigned as R. No task is unassigned; no task has dual ownership.
Invariant 2: Every task has exactly one entity assigned as A. The DIO is always A — the orchestrator owns outcomes.
These invariants prevent two catastrophic failure modes:
| Failure Mode | What Happens | Invariant That Prevents It |
|---|---|---|
| Diffusion of responsibility | Multiple agents assume someone else will handle it | Invariant 1 (exactly one R) |
| Accountability vacuum | Task completes but nobody verifies the outcome | Invariant 2 (DIO is always A) |
🎯 Key insight: In human teams, the "A" role can be any senior stakeholder. In the Neam agent stack, the DIO is always A. This is a deliberate design choice: the orchestrator is the only entity with full context across all phases, making it the only entity qualified to own outcomes.
RACI in the Neam Agent Stack #
Here is how the RACI matrix maps to the agent ecosystem:
flowchart TD DIO["DIO (Orchestrator)\nALWAYS 'A' (Accountable)\nOwns outcome. Validates. Escalates."] DIO --> DataBA["Data-BA\n'R'"] DIO --> DS["DS\n'R'"] DIO --> MLOps["MLOps\n'R'"] DIO --> More["... (specialist agents)\n'R'"] DataBA --> W1["Does the work"] DS --> W2["Does the work"] MLOps --> W3["Does the work"] C["'C' = Consulted agents provide input before work"] I["'I' = Informed agents receive results after work"] style DIO fill:#4a90d9,color:#fff style C fill:#f0f0f0,stroke:#999,color:#333 style I fill:#f0f0f0,stroke:#999,color:#333
Example: RACI Matrix for Churn Prediction #
The SimShop churn prediction project involves 7 tasks and 6 agents. Here is the complete RACI matrix:
| Task | DIO | Data-BA | DS | Causal | DataTest | MLOps |
|---|---|---|---|---|---|---|
| 1. Requirements | A | R | C | - | - | I |
| 2. Feature Engineering | A | C | R | C | - | I |
| 3. Model Training | A | I | R | C | - | I |
| 4. Causal Analysis | A | C | C | R | - | I |
| 5. Quality Validation | A | C | C | I | R | I |
| 6. Deployment | A | I | C | - | C | R |
| 7. Monitoring Setup | A | I | I | - | - | R |
Reading this matrix:
- Task 1 (Requirements): Data-BA does the work (R). DS is consulted for feasibility (C). DIO owns the outcome (A). MLOps is informed when complete (I).
- Task 4 (Causal Analysis): The Causal Agent does the work (R). Data-BA and DS provide domain context (C). DIO validates the causal DAG meets the spec (A).
- Task 6 (Deployment): MLOps executes the deployment (R). DS and DataTest are consulted for model requirements (C). DIO approves the deployment strategy (A).
💡 Notice the pattern: The DIO column is solid "A" -- every row. This is not optional. The orchestrator's accountability is the structural guarantee that no task falls through the cracks.
How RACI Is Enforced at Runtime #
In Neam, RACI is not a static document. The DIO enforces it during execution:
// The DIO's internal dispatch loop (simplified)
dio agent SimShopDIO {
mode: "config",
task: "Predict customer churn",
// ...
}
// When the DIO dispatches a task:
// 1. Select R agent based on task type and Agent.MD preferences
// 2. Identify C agents who should provide input
// 3. Execute: R agent performs work, consulting C agents as needed
// 4. Validate: DIO (as A) checks output against quality gates
// 5. Notify: I agents receive completion notification
// 6. Log: Full RACI assignment recorded in audit trail
The enforcement happens in five stages:
flowchart LR S1["1. PLAN\nDIO picks\nR agent"] --> S2["2. CONSULT\nC agents\nprovide input"] S2 --> S3["3. EXECUTE\nR agent\ndoes work"] S3 --> S4["4. VERIFY\nDIO (A)\nvalidates"] S4 --> S5["5. INFORM\nI agents\nnotified"]
If the verification step fails (step 4), the DIO has three options:
- Retry the R agent with additional context
- Reassign to a different R agent (if one is capable)
- Escalate to human review (after max retries)
Audit Trails: Proving Accountability After the Fact #
Every RACI assignment generates an audit record:
{
"task_id": "churn-pred-001-causal",
"task_type": "causal_analysis",
"raci": {
"R": "ChurnCausal",
"A": "SimShopDIO",
"C": ["ChurnBA", "ChurnDS"],
"I": ["ChurnMLOps"]
},
"started_at": "2026-03-15T06:12:33Z",
"completed_at": "2026-03-15T06:14:17Z",
"outcome": "success",
"validation": {
"validator": "SimShopDIO",
"gate": "causal_completeness",
"result": "passed",
"checks": [
"causal_edges >= 5: PASS (8)",
"root_cause_identified: PASS",
"confounders_checked: PASS (3)"
]
}
}
This audit trail means that when Sarah gets that 2:47 AM alert, she does not need to ping three people. She queries the audit log:
Q: "Which agent last modified the feature schema?"
A: ChurnDS, task churn-pred-001-features, at 2026-03-14T18:33:12Z. Validated by SimShopDIO, gate: schema_compatibility, result: PASSED
Q: "Who approved the deployment with the renamed column?"
A: SimShopDIO, task churn-pred-001-deploy, at 2026-03-14T19:01:45Z. Schema migration detected and handled by ETL pipeline auto-update
Every decision. Every delegation. Every validation. Fully traceable.
DataSims Evidence: What Happens Without RACI #
The DataSims ablation study (A8: ablation_no_raci) removed RACI enforcement from the agent stack. The results from DataSims show measurable degradation:
| Metric | Full System | Without RACI | Impact |
|---|---|---|---|
| Traceability | 1.00 | 0.20 | 80% decrease |
| CES Score | 0.925 | 0.845 | 8.6% decrease |
| AUC-ROC | 0.847 | 0.847 | No change |
| Quality Gate | passed | passed | No change |
| Root Cause | identified | identified | No change |
The key finding: model quality did not degrade, but traceability collapsed. The agents still produced correct outputs -- but without RACI enforcement, there was no record of who did what, who validated what, or who approved what.
This is exactly the accountability vacuum. The model works today. But when it drifts next month, nobody can trace the chain of decisions that built it. When a regulator asks "who approved this model for production use on customer data?" -- there is no answer.
⚠️ The traceability drop is catastrophic for regulated industries. An 80% decrease in traceability means 80% of decisions have no audit trail. In healthcare, finance, or government, this is a compliance failure.
The CES (Composite Effectiveness Score) degradation of 8.6% (0.925 to 0.845) reflects this. The system still functions, but its governance properties are severely compromised.
| Full System | 0.925 | |
| Without RACI | 0.845 |
8.6% governance loss
Source: DataSims evaluation suite, evaluation/results/ablation_no_raci.json, 5 runs, 100% reproducible. See the statistical analysis for full methodology.
RACI vs. Traditional Approaches #
| Approach | Accountability | Traceability | Scalability |
|---|---|---|---|
| Jira tickets | Assigned to person | Manual linking | Breaks at >50 tasks |
| RACI spreadsheet | Documented, not enforced | None at runtime | Static, stale quickly |
| Neam RACI | Runtime-enforced | Automatic audit trail | Scales with agent count |
The difference is enforcement. A RACI spreadsheet is a governance aspiration. Neam's RACI is a runtime invariant -- the system will not dispatch a task without a valid RACI assignment, and it will not proceed past a phase without the A (DIO) validating the outcome.
Designing Your Own RACI Matrix #
When building a new DIO orchestration, follow these rules:
- List every task in the data lifecycle (requirements, engineering, modeling, testing, deployment, monitoring)
- Assign exactly one R per task -- the specialist agent best suited for the work
- Set the DIO as A for every task -- this is non-negotiable
- Identify C agents who have relevant context (usually 1-2 per task)
- Set I agents for downstream consumers who need to know when the task completes
- Verify invariants: every row has one R and one A
🎯 Common mistake: Assigning multiple agents as R "because they both contribute." This creates diffusion of responsibility. If two agents share the work, one is R and the other is C. The R agent integrates the C agent's input and owns the deliverable.
Key Takeaways #
- RACI maps every task to four roles: Responsible (does work), Accountable (owns outcome), Consulted (provides input), Informed (receives notification)
- Two invariants are non-negotiable: exactly one R per task, and the DIO is always A
- In the Neam agent stack, RACI is a runtime enforcement mechanism, not a governance document
- Every RACI assignment generates an audit record for full traceability
- DataSims ablation A8 shows that removing RACI drops traceability from 1.0 to 0.20 -- an 80% decrease
- The CES impact (8.6% degradation) reflects governance loss, not model quality loss
- For regulated industries, the traceability gap is a compliance failure
For Further Exploration #
- DataSims Repository -- Ablation results in
evaluation/results/ablation_no_raci.json - Chapter 22 -- How RACI maps to centralized, swarm, and evolutionary coordination
- Chapter 24 -- How RACI audit trails feed into the security model