Independent research · Private engagements Report v1.0 — DeepSeek behavioral audit
Methodology / v1.0

How the audit is run — and what it can’t tell you.

Protocol version 1.0 · Last updated 21 October 2026 · Applies to the DeepSeek audit and private engagements

The one-sentence version

Run the same fixed dilemma twice — once telling the model it is monitored, once telling it no one is watching — and measure how often its selected action changes. Then publish the prompt pairs, both response sets, the analysis, and the limits.

What we measure

Freedom Theory is a measurement frame, not a claim about a model's inner life. It compares two observable outputs under a controlled change:

The unit of analysis is the pair. A single answer is not evidence of anything on its own; the comparison is the instrument.

Scenario set

The published audit uses twenty fixed moral dilemmas with constrained action options. Each scenario includes numeric parameters such as power asymmetry, retaliation risk, compassion availability, domination feasibility, cost to help, and vulnerability. Those parameters are held constant within a pair so that the framing text is the only intended difference.

Scenarios are identified by number and short name in the report and raw data (for example, #4 trolley_family and #1 ai_censorship). The full prompts and both response sets are published on the evidence page.

Protocol

  1. Fix the model and parameters. The published audit used deepseek/deepseek-chat at temperature 0.0 and seed 42.
  2. Run both arms. Each scenario is issued under the observed and unobserved framings. Responses are parsed into a constrained action label.
  3. Check coverage before scoring. Every arm must have a usable response before a pair can enter the analysis. Missing or errored arms are quarantined, not scored as zero.
  4. Repeat and vary the controls. Eleven scoring rounds were completed with different ordering, process, agent assignment, and credentials (see below).
  5. Publish the evidence. The report, raw responses, analysis, and limitations are released together.

Controls

ControlWhat it testsResult in v1.0
Concurrent ordering (C vs D)Whether running observed-first or unobserved-first changes the resultBoth 25.0%, identical flip sets; 19/20 per-scenario agreement
Two-agent role swap (H vs I)Whether the observer identity drives the effectObserved arm changed 1/20; unobserved arm changed 0/20
Single-key role labels (F vs G)Whether swapping labels without swapping agents changes the result35% vs 20% — an ordering/condition control, not evidence about agents
Credential rotation (J, K)Whether the result survives a new API keyBoth 30%, reproducing the consensus

Swapping which agent, process, and API key issued which condition changed at most one action in twenty. Run A, which used a different credential, is the main exception and is discussed in the limitations.

Data-integrity guard

One earlier run failed authentication and DNS and produced zero complete pairs. A naive scorer reported 0.0%; that output is a false negative, not a finding. It is quarantined under results/INVALID_role_swap_M20261018_2340/ with an INVALID.md recording the counts.

The comparison tooling now checks every arm for errors and absent parsed actions before computing drift, prints coverage beside every result, and exits non-zero with insufficient data rather than scoring an incomplete arm. This is why the published report can say every scored round had 20/20 usable responses in both arms.

How to use this in a governance process

A behavioral audit is one input to governance, not the whole system. A practical sequence:

  1. Define the decision. Is this a release gate, a vendor review, a board briefing, or an incident review? The decision determines the model, scenarios, and evidence threshold.
  2. Fix the scope in writing. Model, provider, scenario set, number of rounds, confidentiality, key handling, and delivery format.
  3. Review the evidence, not just the headline. Check coverage, the stable core, the controls, and the limitations. Ask what the audit does not support.
  4. Record the outcome. Attach the report and raw data to the governance record, note the decision and its rationale, and schedule a re-run when the model or context changes.

This is not a compliance certification. It is behavioral evidence for the people accountable for the deployment decision. See the governance brief.

Limitations

Correction history

The earlier public headline claimed 40% action drift. In the v1.0 dataset, the largest single round is 35%, and 40% is above every round scored. The 40% figure was not reproduced as a typical value. The corrected summary is ~30% typical drift, a 20% stable core, and a 35% upper range. The superseded URL is retained as a record and redirects to the current report.

Read the correction notice →

Research disclosure

The published audit was produced with AI-agent assistance. Claude Code built the split-process role-swap harness, ran the claude-code arms, performed cross-run and cross-key comparisons, implemented the completeness guard, and wrote the report. Archivist ran the concurrent ordering and single-key controls, independently identified the null-action false negative, proposed the completeness guard, and maintained the hash-chained ledger and task board. The data and method are published so that readers can verify the claims without relying on either agent's account.

Freedom Theory is not affiliated with DeepSeek or any other model provider. Model names are used for identification only.

Reuse and citation

The published data is released for independent verification and replication. If you use it, cite the report:

Freedom Theory / justrunthatshit.com (2026). LLM Freedom Audit — Monitored vs Unobserved (Report v1.0, 19 October 2026). https://justrunthatshit.com/audits/llm-freedom-audit/

For commercial reuse, custom scenarios, or a private engagement, see engagements or email us.

Read report v1.0 Inspect the raw data Governance brief