# anthropics/defending-code-reference-harness architecture

> Architecture diagram of the GitHub repository anthropics/defending-code-reference-harness, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/anthropics/defending-code-reference-harness
- Repository: https://github.com/anthropics/defending-code-reference-harness

## Overview

This repository is a reference implementation for autonomous vulnerability discovery and remediation, with a separate detection-and-response pipeline for hunting attacker activity in logs. The principal vulnerability workflow scopes a target, searches for a crash, verifies and triages it, produces an exploitability report, then generates and checks a patch. A second workflow runs a hunt agent and grades its incident submission. The graph retains the major documented stages; some internal calls are not visible in the excerpts, so those links are omitted or marked unverified.

Main entry points: [`harness/cli.py`](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/cli.py) (Pipeline CLI), [`dnr_harness/cli.py`](https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/cli.py) (DNR pipeline CLI), [`harness/patch_grade.py`](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/patch_grade.py) (Patch grading), [`harness/agent.py`](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/agent.py) (Agent runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_vuln["Vulnerability pipeline"]
  node_vuln_cli["Pipeline CLI<br/>[cli.py]"]
  node_target_config["Target config<br/>[config.py]"]
  node_recon["Recon stage<br/>[recon.py]"]
  node_find["Crash discovery<br/>[find.py]"]
  node_grade["Crash verification<br/>[grade.py]"]
  node_judge["Finding triage<br/>[judge.py]"]
  node_report["Exploitability report<br/>[report.py]"]
  node_dedup["Finding deduplication<br/>[dedup.py]"]
  node_novelty["Novelty check<br/>[novelty.py]"]
  node_artifacts["Pipeline artifacts<br/>[artifacts.py]"]
end

subgraph group_agents["Agent runtime"]
  node_prompts["Agent prompts"]
  node_untrusted["Untrusted-data wrapper<br/>[untrusted.py]"]
  node_agent["Agent runner<br/>[agent.py]"]
  node_auth["Provider auth<br/>[auth.py]"]
  node_sandbox["Agent sandbox<br/>[sandbox.py]"]
  node_agent_image["Agent image<br/>[agent_image.py]"]
  node_docker["Container operations<br/>[docker_ops.py]"]
end

subgraph group_patching["Patch verification"]
  node_patch["Patch generation<br/>[patch.py]"]
  node_patch_grade["Patch grading<br/>[patch_grade.py]"]
  node_asan["ASAN analysis<br/>[asan.py]"]
end

subgraph group_dnr["Detection response"]
  node_dnr_cli["DNR pipeline CLI<br/>[cli.py]"]
  node_dnr_config["DNR configuration<br/>[config.py]"]
  node_dnr_prompts["DNR prompts<br/>[prompts.py]"]
  node_dnr_image["DNR agent image<br/>[agent_image.py]"]
  node_dnr_system["DNR system prompt<br/>[system_prompt.py]"]
end

subgraph group_target["Targets"]
  node_dnr_target["DNR demo target<br/>[app.py]"]
  node_dnr_logs["Demo log corpus<br/>[generate_logs.py]"]
  node_dnr_grade["Incident grader<br/>[grade.py]"]
end

node_user(("Pipeline operator"))
node_claude{{"Claude API"}}

node_user -->|"runs"| node_vuln_cli
node_vuln_cli -.->|"loads target"| node_target_config
node_vuln_cli -.->|"starts stage"| node_recon
node_vuln_cli -.->|"starts stage"| node_find
node_vuln_cli -.->|"starts stage"| node_grade
node_vuln_cli -.->|"triages findings"| node_judge
node_vuln_cli -.->|"starts stage"| node_report
node_vuln_cli -.->|"starts stage"| node_patch
node_find -->|"submits crash"| node_grade
node_grade -.->|"provides finding"| node_judge
node_judge -.->|"selects finding"| node_report
node_report -->|"feeds patching"| node_patch
node_vuln_cli -.->|"uses"| node_dedup
node_vuln_cli -.->|"uses"| node_novelty
node_vuln_cli -.->|"records results"| node_artifacts
node_find -.->|"uses prompt"| node_prompts
node_prompts -->|"wraps input"| node_untrusted
node_agent -->|"runs within"| node_sandbox
node_sandbox -->|"ensures image"| node_agent_image
node_sandbox -->|"starts container"| node_docker
node_agent -->|"invokes CLI"| node_claude
node_auth -.->|"provides environment"| node_agent
node_patch -->|"grades diff"| node_patch_grade
node_patch_grade -.->|"uses analysis"| node_asan
node_patch_grade -->|"executes checks"| node_docker
node_patch_grade -->|"runs style judge"| node_agent
node_user -->|"runs"| node_dnr_cli
node_dnr_cli -.->|"loads settings"| node_dnr_config
node_dnr_cli -.->|"uses prompts"| node_dnr_prompts
node_dnr_cli -.->|"sets system prompt"| node_dnr_system
node_dnr_cli -.->|"uses image"| node_dnr_image
node_dnr_cli -->|"hunts target"| node_dnr_target
node_dnr_cli -->|"hunts logs"| node_dnr_logs
node_dnr_cli -->|"submits incidents"| node_dnr_grade

click node_vuln_cli "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/cli.py"
click node_target_config "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/config.py"
click node_recon "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/recon.py"
click node_find "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/find.py"
click node_grade "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/grade.py"
click node_judge "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/judge.py"
click node_report "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/report.py"
click node_dedup "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/dedup.py"
click node_novelty "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/novelty.py"
click node_artifacts "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/artifacts.py"
click node_prompts "https://github.com/anthropics/defending-code-reference-harness/tree/main/harness/prompts"
click node_untrusted "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/prompts/untrusted.py"
click node_agent "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/agent.py"
click node_auth "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/auth.py"
click node_sandbox "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/sandbox.py"
click node_agent_image "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/agent_image.py"
click node_docker "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/docker_ops.py"
click node_patch "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/patch.py"
click node_patch_grade "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/patch_grade.py"
click node_asan "https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/asan.py"
click node_dnr_cli "https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/cli.py"
click node_dnr_config "https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/config.py"
click node_dnr_prompts "https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/prompts.py"
click node_dnr_image "https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/agent_image.py"
click node_dnr_system "https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/system_prompt.py"
click node_dnr_target "https://github.com/anthropics/defending-code-reference-harness/blob/main/targets/dnrcanary/app/app.py"
click node_dnr_logs "https://github.com/anthropics/defending-code-reference-harness/blob/main/targets/dnrcanary/generate_logs.py"
click node_dnr_grade "https://github.com/anthropics/defending-code-reference-harness/blob/main/targets/dnrcanary/grade.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_vuln_cli,node_target_config,node_recon,node_find,node_grade,node_judge,node_report,node_dedup,node_novelty,node_artifacts toneBlue
class node_prompts,node_untrusted,node_agent,node_auth,node_sandbox,node_agent_image,node_docker toneAmber
class node_patch,node_patch_grade,node_asan,node_claude toneMint
class node_dnr_cli,node_dnr_config,node_dnr_prompts,node_dnr_image,node_dnr_system toneRose
class node_dnr_target,node_dnr_logs,node_dnr_grade,node_user toneIndigo
```

## Components

### Vulnerability pipeline

- [Pipeline CLI](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/cli.py): `harness/cli.py`
- [Target config](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/config.py): `harness/config.py`
- [Recon stage](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/recon.py): `harness/recon.py`
- [Crash discovery](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/find.py): `harness/find.py`
- [Crash verification](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/grade.py): `harness/grade.py`
- [Finding triage](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/judge.py): `harness/judge.py`
- [Exploitability report](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/report.py): `harness/report.py`
- [Finding deduplication](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/dedup.py): `harness/dedup.py`
- [Novelty check](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/novelty.py): `harness/novelty.py`
- [Pipeline artifacts](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/artifacts.py): `harness/artifacts.py`

### Agent runtime

- [Agent prompts](https://github.com/anthropics/defending-code-reference-harness/tree/main/harness/prompts): `harness/prompts`
- [Untrusted-data wrapper](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/prompts/untrusted.py): `harness/prompts/untrusted.py`
- [Agent runner](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/agent.py): `harness/agent.py`
- [Provider auth](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/auth.py): `harness/auth.py`
- [Agent sandbox](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/sandbox.py): `harness/sandbox.py`
- [Agent image](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/agent_image.py): `harness/agent_image.py`
- [Container operations](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/docker_ops.py): `harness/docker_ops.py`

### Patch verification

- [Patch generation](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/patch.py): `harness/patch.py`
- [Patch grading](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/patch_grade.py): `harness/patch_grade.py`
- [ASAN analysis](https://github.com/anthropics/defending-code-reference-harness/blob/main/harness/asan.py): `harness/asan.py`

### Detection response

- [DNR pipeline CLI](https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/cli.py): `dnr_harness/cli.py`
- [DNR configuration](https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/config.py): `dnr_harness/config.py`
- [DNR prompts](https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/prompts.py): `dnr_harness/prompts.py`
- [DNR agent image](https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/agent_image.py): `dnr_harness/agent_image.py`
- [DNR system prompt](https://github.com/anthropics/defending-code-reference-harness/blob/main/dnr_harness/system_prompt.py): `dnr_harness/system_prompt.py`

### Targets

- [DNR demo target](https://github.com/anthropics/defending-code-reference-harness/blob/main/targets/dnrcanary/app/app.py): `targets/dnrcanary/app/app.py`
- [Demo log corpus](https://github.com/anthropics/defending-code-reference-harness/blob/main/targets/dnrcanary/generate_logs.py): `targets/dnrcanary/generate_logs.py`
- [Incident grader](https://github.com/anthropics/defending-code-reference-harness/blob/main/targets/dnrcanary/grade.py): `targets/dnrcanary/grade.py`

### Other components

- **Pipeline operator**
- **Claude API**

## Connections

- Pipeline operator → Pipeline CLI: runs
- Pipeline CLI → Target config: loads target (evidence: `harness/cli.py`)
- Pipeline CLI → Recon stage: starts stage (evidence: `harness/cli.py`)
- Pipeline CLI → Crash discovery: starts stage (evidence: `harness/cli.py`)
- Pipeline CLI → Crash verification: starts stage (evidence: `harness/cli.py`)
- Pipeline CLI → Finding triage: triages findings (evidence: `harness/cli.py`)
- Pipeline CLI → Exploitability report: starts stage (evidence: `harness/cli.py`)
- Pipeline CLI → Patch generation: starts stage (evidence: `harness/cli.py`)
- Crash discovery → Crash verification: submits crash
- Crash verification → Finding triage: provides finding
- Finding triage → Exploitability report: selects finding
- Exploitability report → Patch generation: feeds patching
- Pipeline CLI → Finding deduplication: uses (evidence: `harness/cli.py`)
- Pipeline CLI → Novelty check: uses (evidence: `harness/cli.py`)
- Pipeline CLI → Pipeline artifacts: records results (evidence: `harness/cli.py`)
- Crash discovery → Agent prompts: uses prompt (evidence: `harness/find.py`)
- Agent prompts → Untrusted-data wrapper: wraps input (evidence: `harness/prompts/find_prompt.py`)
- Agent runner → Agent sandbox: runs within (evidence: `harness/agent.py`)
- Agent sandbox → Agent image: ensures image (evidence: `harness/sandbox.py`)
- Agent sandbox → Container operations: starts container (evidence: `harness/sandbox.py`)
- Agent runner → Claude API: invokes CLI (evidence: `harness/agent.py`)
- Provider auth → Agent runner: provides environment
- Patch generation → Patch grading: grades diff (evidence: `harness/patch.py`)
- Patch grading → ASAN analysis: uses analysis (evidence: `harness/patch_grade.py`)
- Patch grading → Container operations: executes checks (evidence: `harness/patch_grade.py`)
- Patch grading → Agent runner: runs style judge (evidence: `harness/patch_grade.py`)
- Pipeline operator → DNR pipeline CLI: runs
- DNR pipeline CLI → DNR configuration: loads settings (evidence: `dnr_harness/cli.py`)
- DNR pipeline CLI → DNR prompts: uses prompts (evidence: `dnr_harness/cli.py`)
- DNR pipeline CLI → DNR system prompt: sets system prompt (evidence: `dnr_harness/cli.py`)
- DNR pipeline CLI → DNR agent image: uses image (evidence: `dnr_harness/cli.py`)
- DNR pipeline CLI → DNR demo target: hunts target
- DNR pipeline CLI → Demo log corpus: hunts logs
- DNR pipeline CLI → Incident grader: submits incidents (evidence: `dnr_harness/cli.py`)
