Skip to content

feat: Add Segregation of Duties (SOD) to compliance schema #10

@patel-lyzr

Description

@patel-lyzr

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions