# BiasCheck

Three-layer bias analysis of any URL, file, or text: fetches the content and cited...

- Repository: https://github.com/danielmiessler/LifeOS (19669 stars)
- Category: Writing
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add danielmiessler/LifeOS --skill BiasCheck -g -a claude-code -y`
Codex: `npx skills add danielmiessler/LifeOS --skill BiasCheck -g -a codex -y`
Cursor: `npx skills add danielmiessler/LifeOS --skill BiasCheck -g -a cursor -y`
Gemini CLI: `npx skills add danielmiessler/LifeOS --skill BiasCheck -g -a gemini-cli -y`

## Description

Three-layer bias analysis of any URL, file, or text: fetches the content and cited studies, then audits data bias, source conflicts, and journalism distortions. USE WHEN bias analysis, analyze bias, bias check, check this study, who funded this, is this source biased, fact-check article, methodological flaws, source credibility, what's wrong with this claim. NOT FOR psychological author analysis, research synthesis (Research), entity due diligence.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# BiasCheck

Runs a three-layer bias audit on any source: a URL, a file path, or raw text. It reads the content plus any study it cites, then checks (1) biases inside the data, (2) conflicts of interest in the source organization, and (3) distortions the journalism added on top. The output separates what the data actually supports from what got editorialized.

## Ideal State

- Every audit reaches the primary source behind the input, or records that it could not as a finding.
- The three layers (data, source organization, journalism) stay separate, and every bias claim names a concrete tell from the artifact.
- The reader leaves with what the data actually supports, split from what was editorialized on top, so the original claim can be rewritten honestly.
- Findings are specific to this artifact. A funder's stake is a multiplier on the analysis, never an automatic disqualifier, and a category with no tell in the source is left out rather than forced.

## Intent Routing

| Intent | Trigger | File |
|--------|---------|------|
| **Check** | "bias check", "analyze bias on", "check this study/source/article" | `Intents/Check.md` |

| File | Read when |
|------|-----------|
| `BiasTaxonomy.md` | naming a bias category: the full catalog with definitions, tells and worked examples |
| `EvalState.md` | checking the `biascheck-layers` eval score (machine-written by Assay, never hand-edited) |

## Data & Config

User customizations live at `<configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/BiasCheck/` (`configRoot` is `$CLAUDE_CONFIG_DIR` when set, else `~/.claude`). When that directory exists, its `PREFERENCES.md` and reference files override the defaults here; when it is absent, the defaults stand.

## Gotchas

- **The biggest failure is never reaching the study.** Critiquing the headline without the underlying data misses whether the data was fine or junk; the Check intent's fetch order exists for this.

## Examples

The rest: https://github.com/danielmiessler/LifeOS/blob/HEAD/LifeOS/install/skills/BiasCheck/SKILL.md
