Security Hardening

6 nodes · 3 podsclaude-code, codex
securityadversarialobserver

An attack pod probes your app for vulnerabilities. A defense pod patches what's found. An observer pod watches both and writes a security dossier. Iterate until clean.

rig up rigs/security-hardening.yaml
RigSpec
version: "0.2"
name: security-hardening
pods:
  - id: attack
    label: Attack
    members:
      - id: probe
        agent_ref: "local:agents/attacker-probe"
        profile: default
        runtime: claude-code
        cwd: .
      - id: exploit
        agent_ref: "local:agents/attacker-exploit"
        profile: default
        runtime: codex
        cwd: .
    edges:
      - kind: can_observe
        from: exploit
        to: probe
  - id: defense
    label: Defense
    members:
      - id: patcher
        agent_ref: "local:agents/defender-patch"
        profile: default
        runtime: claude-code
        cwd: .
      - id: hardener
        agent_ref: "local:agents/defender-harden"
        profile: default
        runtime: codex
        cwd: .
    edges:
      - kind: can_observe
        from: hardener
        to: patcher
  - id: observer
    label: Observer
    members:
      - id: auditor
        agent_ref: "local:agents/security-auditor"
        profile: default
        runtime: claude-code
        cwd: .
      - id: reporter
        agent_ref: "local:agents/security-reporter"
        profile: default
        runtime: codex
        cwd: .
    edges:
      - kind: can_observe
        from: reporter
        to: auditor
edges:
  - kind: can_observe
    from: defense.patcher
    to: attack.probe
  - kind: can_observe
    from: observer.auditor
    to: attack.probe
  - kind: can_observe
    from: observer.auditor
    to: defense.patcher
  - kind: delegates_to
    from: observer.auditor
    to: defense.patcher