Problem
In multi-agent systems — especially in regulated industries (financial services, lending, healthcare) — no single agent should have complete control over a critical process end-to-end. The current gitagent compliance schema has no way to express this "segregation of duties" constraint.
Without SOD controls, a multi-agent system can't enforce that:
- The agent that creates a proposal can't also approve it
- The agent that executes an action can't also audit it
- Conflicting roles are never assigned to the same agent
This is a fundamental governance requirement referenced in FINOS AI Governance Framework, SOC 2 logical access controls, SR 11-7 model risk management, and FINRA 3110 supervision requirements.
Inspiration
- Salient AI — compliance-first AI platform for auto lenders where each agent is purpose-built and scoped to one duty in the lending lifecycle (origination, underwriting, servicing, collections)
- FINOS AI Governance Framework — multi-agent isolation controls including process isolation, state segregation, and trust boundary enforcement
Proposed Approach
1. New segregation_of_duties subsection in compliance
compliance:
segregation_of_duties:
roles:
- id: analyst
description: Performs analysis and generates findings
permissions: [create, submit]
- id: reviewer
description: Reviews and approves analyst outputs
permissions: [review, approve, reject]
conflicts:
- [analyst, reviewer]
assignments:
compliance-analyst: [analyst]
fact-checker: [reviewer]
isolation:
state: full
credentials: separate
handoffs:
- action: regulatory_filing
required_roles: [analyst, reviewer]
approval_required: true
enforcement: strict
2. New DUTIES.md file at two levels
- Root level: System-wide SOD policy (roles table, conflict matrix, handoff workflows, isolation policy, enforcement mode)
- Per-agent level (
agents/<name>/DUTIES.md): Individual role declaration with permissions, boundaries, and handoff participation
3. Full CLI support
gitagent validate --compliance checks SOD referential integrity (role IDs, conflict pairs, assignments) and detects violations
gitagent audit reports SOD configuration in a dedicated section
gitagent export includes SOD constraints in system-prompt and claude-code adapters
gitagent init --template full scaffolds DUTIES.md
4. Validation rules
16 validation rules covering:
- Roles ≥ 2 with unique IDs
- Conflict pairs reference defined role IDs, no self-conflicts
- Assignments reference defined role IDs
- Core SOD check: no agent holds conflicting roles (error in strict, warning in advisory)
- Handoff required_roles reference defined roles with ≥ 2 distinct
- Risk tier recommendations (warn if high/critical with advisory enforcement or non-full isolation)
Files affected
| Category |
Files |
| Spec + Schema + Types |
spec/SPECIFICATION.md, spec/schemas/agent-yaml.schema.json, src/utils/loader.ts |
| CLI Commands |
src/commands/validate.ts, src/commands/audit.ts, src/commands/init.ts |
| Adapters |
src/adapters/claude-code.ts, src/adapters/system-prompt.ts |
| Examples + Docs |
examples/full/, README.md |
Testing
npm run build compiles cleanly
gitagent validate -d examples/full --compliance passes with SOD section
gitagent audit -d examples/full shows new SOD section
gitagent export --format system-prompt -d examples/full includes SOD constraints
Problem
In multi-agent systems — especially in regulated industries (financial services, lending, healthcare) — no single agent should have complete control over a critical process end-to-end. The current gitagent compliance schema has no way to express this "segregation of duties" constraint.
Without SOD controls, a multi-agent system can't enforce that:
This is a fundamental governance requirement referenced in FINOS AI Governance Framework, SOC 2 logical access controls, SR 11-7 model risk management, and FINRA 3110 supervision requirements.
Inspiration
Proposed Approach
1. New
segregation_of_dutiessubsection incompliance2. New
DUTIES.mdfile at two levelsagents/<name>/DUTIES.md): Individual role declaration with permissions, boundaries, and handoff participation3. Full CLI support
gitagent validate --compliancechecks SOD referential integrity (role IDs, conflict pairs, assignments) and detects violationsgitagent auditreports SOD configuration in a dedicated sectiongitagent exportincludes SOD constraints in system-prompt and claude-code adaptersgitagent init --template fullscaffolds DUTIES.md4. Validation rules
16 validation rules covering:
Files affected
spec/SPECIFICATION.md,spec/schemas/agent-yaml.schema.json,src/utils/loader.tssrc/commands/validate.ts,src/commands/audit.ts,src/commands/init.tssrc/adapters/claude-code.ts,src/adapters/system-prompt.tsexamples/full/,README.mdTesting
npm run buildcompiles cleanlygitagent validate -d examples/full --compliancepasses with SOD sectiongitagent audit -d examples/fullshows new SOD sectiongitagent export --format system-prompt -d examples/fullincludes SOD constraints