/ Directory / Playground / claude-skills-journalism
● Community jamditis ⚡ Instant

claude-skills-journalism

by jamditis · jamditis/claude-skills-journalism

Claude Code skills for journalism and academia — verification, FOIA drafting, data journalism, and academic writing patterns.

Journalism Skills bundles workflows for reporters, editors, and academics: claim verification chains, FOIA request drafting, dataset cleanup and exploration for data journalism, and academic writing patterns (literature reviews, citation formatting). Built to keep Claude useful without hallucinating sources.

Why use it

Key features

Live Demo

What it looks like in practice

claude-skills-journalism-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "claude-skills-journalism-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/jamditis/claude-skills-journalism",
        "~/.claude/skills/claude-skills-journalism"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "claude-skills-journalism-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/jamditis/claude-skills-journalism",
        "~/.claude/skills/claude-skills-journalism"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "claude-skills-journalism-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/jamditis/claude-skills-journalism",
        "~/.claude/skills/claude-skills-journalism"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "claude-skills-journalism-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/jamditis/claude-skills-journalism",
        "~/.claude/skills/claude-skills-journalism"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "claude-skills-journalism-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/jamditis/claude-skills-journalism",
        "~/.claude/skills/claude-skills-journalism"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "claude-skills-journalism-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/jamditis/claude-skills-journalism",
          "~/.claude/skills/claude-skills-journalism"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add claude-skills-journalism-skill -- git clone https://github.com/jamditis/claude-skills-journalism ~/.claude/skills/claude-skills-journalism

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use claude-skills-journalism

How to verify every factual claim in a draft before publication

👤 Reporters and editors fact-checking copy on deadline ⏱ ~45 min intermediate

When to use: Draft is done; publication in 2 hours; you need to confirm each factual claim has a source.

Prerequisites
  • Skill installed — git clone https://github.com/jamditis/claude-skills-journalism ~/.claude/skills/journalism-skills
Flow
  1. Extract claims
    Read draft.md. Extract every factual claim (dates, numbers, quotes, causal statements). Number them.✓ Copied
    → Numbered list of distinct factual claims
  2. Source each
    For each claim, either link the source URL or flag 'NEEDS VERIFICATION'.✓ Copied
    → Per-claim source or NEEDS VERIFICATION flag
  3. Re-check flagged
    For each NEEDS VERIFICATION, search for a source. If none, mark for removal or softening.✓ Copied
    → Resolution per claim

Outcome: A draft where every factual claim has either a source or a documented absence.

Pitfalls
  • Claude invents plausible-looking source URLs — Require the skill to fetch each URL and quote the sentence supporting the claim
Combine with: notebooklm-skill

Draft a targeted FOIA request

👤 Investigative reporters requesting government records ⏱ ~25 min intermediate

When to use: You know the agency and the type of record; you want a tight, scoped request that isn't rejected for vagueness.

Flow
  1. Scope
    FOIA draft: EPA, emails between Region 3 administrators and Company X between Jan-Jun 2024 mentioning 'groundwater'. Tight scope to avoid rejection.✓ Copied
    → Request with specific keywords, date range, agency, and fee-waiver request
  2. Exemption pre-check
    Which FOIA exemptions is this likely to trigger, and how should I phrase to minimize them?✓ Copied
    → Exemption-by-exemption analysis

Outcome: A FOIA request likely to produce records rather than rejection.

Pitfalls
  • Too broad triggers fees/rejection — Always set a date range and keyword list; drop buzzwords

Explore a government dataset for a data-journalism story

👤 Data reporters looking for story angles in a new dataset ⏱ ~60 min intermediate

When to use: You downloaded a CSV/Excel from an agency; you don't yet know what's interesting.

Flow
  1. Profile
    Load data/inspections.csv. Column types, missing counts, top values per categorical, basic numeric stats.✓ Copied
    → Data profile output
  2. Find angles
    Suggest 5 angles an investigative reporter might find here, each with the specific query/filter that surfaces it.✓ Copied
    → Story angles with concrete queries
  3. Draft chart
    Chart the most compelling angle. Output ggplot / Python matplotlib code.✓ Copied
    → Chart code + description

Outcome: 2-3 publishable angles, one chart-ready.

Pitfalls
  • Treating correlation as causation in the pitch — Ask Claude to caveat every causal-sounding claim

Draft a literature review for an academic paper

👤 Academic writers compiling related work ⏱ ~90 min advanced

When to use: You have 20-50 papers and need to synthesize them into a coherent review.

Flow
  1. Cluster papers by theme
    Read these 30 abstracts and cluster by theme. Flag methodological disagreements.✓ Copied
    → Thematic clusters + tension points
  2. Draft review
    Draft a 1500-word lit review organized by theme, with proper inline citations (author, year).✓ Copied
    → Draft with correct citations

Outcome: A draft lit review ready for subject-matter refinement.

Combine with: notebooklm-skill

Combinations

Pair with other MCPs for X10 leverage

claude-skills-journalism-skill + notebooklm-skill

NotebookLM grounds claims in uploaded primary sources

Upload these primary sources to NotebookLM, then use journalism skill to verify every claim in the draft against them.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
Claim extraction text First fact-check pass Claude tokens
Source linking claims Second pass Claude tokens + web search
FOIA drafting agency, scope Before submitting a request Claude tokens
Dataset exploration file path New dataset arrives Claude tokens
Lit review abstracts Academic writing Claude tokens (high)

Cost & Limits

What this costs to run

API quota
None
Tokens per call
Varies; lit reviews 50k+
Monetary
Free
Tip
Chunk large verification jobs by story section.

Security

Permissions, secrets, blast radius

Credential storage: No credentials
Data egress: Drafts and sources sent to Claude for inference. Don't paste sensitive source material (e.g. named confidential sources) into prompts.

Troubleshooting

Common errors and fixes

Claude cites URLs that 404

Require the skill to fetch each cited URL and quote the sentence supporting the claim; reject unverifiable citations.

FOIA requests rejected as overbroad

Always scope by date range and specific keywords; drop general 'any records related to'

Alternatives

claude-skills-journalism vs others

AlternativeWhen to use it insteadTradeoff
Manual fact-checkSensitive investigations where LLM involvement is riskySlower, but full source control

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills