Model or dataset
jamditis/claude-skills-journalism avatar
jamditis/claude-skills-journalism

jamditis/claude-skills-journalism: Claude Code Skills for Newsrooms and Research

Claude Code skills for journalism, media, and academia - verification, FOIA, data journalism, academic writing, and more

393 stars64 forksPythonMIT

At a glance

What is it?
A catalog of Agent Skills for journalism, FOIA, verification and academic writing, shipped as Claude Code plugins and as plain skill packages. Useful if you already work in Claude Code; the documentation is thinner on what happens when a skill is wrong.
Who is it for?
Adopt it if you already run Claude Code and want domain procedures (FOIA letters, AP style, C2PA verification, archive capture) loaded on demand rather than pasted into a prompt. Do not adopt it expecting a hosted fact-checking service or a substitute for editorial judgement; these are instruction files, and the repository's own guides describe multi-agent runs as needing an adversarial verify step.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem: newsroom procedures that live in people's heads

Most of what a journalist or researcher does repeatedly is procedural rather than creative. Drafting a public records request, checking whether an image carries C2PA provenance, converting a spreadsheet into a story, formatting a wire photo's embedded metadata, writing an academic abstract to a house style. These are checklists. They are also the things a general-purpose model gets vaguely right and specifically wrong, because the model has no access to your newsroom's version of the checklist.

This repository packages those checklists as Agent Skills. The README describes skills as "modular instruction sets that an AI coding agent loads when relevant to a task," each containing domain knowledge, workflows, templates and supporting files. The intended reader is named directly in the package description: journalists, researchers, academics, media professionals and communications practitioners. The secondary reader is the small newsroom dev team, which the dev-toolkit package targets with skills for Python pipelines, ethical scraping and no-build frontends.

The scope is wider than the name suggests. Alongside journalism-core there are packages for PDF report design, an Open Knowledge Format wiki generator, defensive security audits, research archiving and a PDF playground with slash commands. That breadth is the point and also the first thing to weigh: you are adopting a catalog, not a single tool.

How the skills catalog and plugin layer fit together

There are two layers, and separating them explains most of the repository's structure.

The content layer is the skill itself: a directory with a SKILL.md-style instruction file plus templates and supporting files, following the Agent Skills specification that the README links to. Claude and Codex each supply their own installation and runtime around that shared content, so the same skill text can be loaded by either client.

The control layer is skills-catalog.yaml at the repository root. According to the README it "lists every package and stable skill" and records each skill's package, path, lifecycle and invocation mode, with defaults that preserve model-selected invocation. The README also notes that each stable skill includes an agents/openai.yaml file for Codex display metadata, and that those files do not change invocation policy. That distinction matters: adding Codex metadata does not make a skill auto-invoke, and the catalog is the place where invocation is actually decided.

The repository ships validation scripts rather than a runtime. package.json defines npm run validate:catalog, which the README says checks catalog coverage, package mappings, skill names and metadata files, plus validate:agent-skills and a set of canary and pilot scripts for specific packages. This is a repository that expects contributors to prove the catalog is internally consistent before merging, not one that runs a service.

Installing the plugins and running a first command

The README splits installation by client and states that during the Codex pilot you should use only one Codex installation path for a given skill or package. For Claude Code the prerequisite is Claude Code itself; the README suggests running claude --version to check.

The recommended path is plugins, which give you slash commands inside a Claude Code session. Run these two commands inside the session:

bash
/plugin marketplace add jamditis/claude-skills-journalism
/plugin install pdf-playground@claude-skills-journalism

The README then says to restart Claude Code by closing and reopening it, and points at the PDF Playground README for detailed setup and troubleshooting. After the restart, /pdf-playground:proposal, /pdf-playground:report, /pdf-playground:onepager, /pdf-playground:newsletter, /pdf-playground:slides, /pdf-playground:event and /pdf-playground:preview should be available as commands.

Not every package works this way. The README's plugin table marks journalism-core, okf-wiki, research-toolkit, security-toolkit, project-templates-toolkit, pdf-design and dev-toolkit as skills-only or model-selected, with dev-toolkit exposing just /dev-toolkit:director as a command. So installing pdf-playground gets you buttons; installing journalism-core gets you fifteen skills that Claude decides to load when a task looks relevant.

If you are working on the repository itself, the checks are Node scripts:

bash
npm run validate:catalog
npm run validate:agent-skills
npm test

The first checks catalog coverage and metadata, the second validates the skills against the specification, and the third runs the Node test suite defined in package.json. The repository also exposes canary scripts such as canary:journalism-core:claude and canary:journalism-core:codex for install verification, and pilot scripts for journalism-core, okf-wiki and visual-explainer.

What is actually inside journalism-core and research-toolkit

The plugin table is the most concrete documentation in the README, and it is worth reading literally rather than skimming.

journalism-core carries fifteen skills: AP-style writing, AI-slop detoxing, source verification covering deepfakes and C2PA, FOIA and NJ OPRA requests, Brazilian LAI requests, fact-checking, interview prep and transcription, story pitches, editorial workflow, crisis communications, newsletter publishing with current Gmail, Yahoo and Outlook bulk-sender requirements, and embedded photo metadata for wire distribution. That list is unusually specific about jurisdictions and vendors, which is a strength (NJ OPRA and Brazilian LAI are not generic) and a maintenance liability (bulk-sender rules change, and the skill text has to be updated by hand).

research-toolkit has six skills: academic writing, legal paywall bypass via Unpaywall and library databases, web archiving through Wayback, Archive.today and ArchiveBox, web page change monitoring, AI-enriched digital archive construction, and a curated free-API catalog that the README says carries sunset currency notes for IEX Cloud, CrowdTangle, ProPublica Congress, X and Reddit. A catalog that records which APIs have been retired is a small but real editorial decision; most link lists simply rot.

okf-wiki is the most recent package in the table, dated Sep 14, 2026. It scaffolds an Open Knowledge Format knowledge base with one concept per file, YAML frontmatter, directory navigation and a validator, and the README says it generates a starter wiki that passes its own conformance and secret-leak checks, ships session-start hooks, and includes an optional GitHub-wiki bootstrap. The stated uses are newsroom institutional memory, research atlases, decision logs and infrastructure maps.

Where the approach breaks down

The honest limitation is that a skill is an instruction file, not a guarantee. Nothing in the README describes a runtime that verifies a skill's output. The validation scripts check that the catalog is consistent and that skills conform to the specification; they do not check whether a generated FOIA letter is legally sound or whether a C2PA verification step was actually performed rather than described.

The repository's own guides acknowledge the shape of this problem. The multi-agent workflows guide is described as covering fan-out, pipeline and adversarial-verify patterns "with honest cautions," and the autonomy guide describes autonomous sessions that pull tasks off GitHub issues held to the same quality bar as hands-on review. That is a workflow answer to a correctness problem, and it puts the burden on you: if you run a skill unattended, you have removed the human step without adding a verification step.

There is also a client-mismatch trap. The README warns that during the Codex pilot you should use only one Codex installation path per skill or package, which implies that installing the same skill twice through different paths is a real failure mode rather than a theoretical one. And the plugin table shows most packages are skills-only: if you expected slash commands for everything, you will find that only pdf-playground and part of dev-toolkit provide them.

Finally, the repository is a catalog under version churn. Releases v2.7.1 through v2.7.3 landed in August 2026, package.json declares 2.8.0, and the plugin table carries per-package update dates. Skills that encode third-party rules (bulk-sender requirements, free-API availability) go stale on someone else's schedule.

Compared with a general-purpose writing assistant

The obvious alternative is not another journalism skill pack; it is using a general assistant with a saved prompt or a project-level instruction file. The difference is in packaging and invocation.

A saved prompt is one block of text you paste or attach. It has no catalog, no per-skill metadata, no specification conformance check and no install canary. A skill in this repository is a directory with supporting files, registered in skills-catalog.yaml with a package, path, lifecycle and invocation mode, and validated by npm run validate:catalog and npm run validate:agent-skills. The skill is loaded when the agent judges it relevant, rather than when you remember to paste it. That is the actual delta: retrieval and versioning, not better prose.

The trade-off is that you inherit the repository's structure. Adding your newsroom's own FOIA variant means following the Agent Skills specification and the catalog conventions, not just editing a paragraph. If you want one prompt and no build step, the catalog is overhead. If you have fifteen procedures and three people who need them, the catalog is the reason the procedures stay findable.

Licence, upgrade cost and maintenance signals

The repository is MIT licensed, with a LICENSE file at the root and THIRD_PARTY_NOTICES.md and DEPENDENCY-PROVENANCE.md alongside it. The README points to INFLUENCES.md and THIRD_PARTY_NOTICES.md for design credit and licence notices, which suggests the skills draw on third-party material and that provenance is tracked rather than assumed. MIT is permissive, but it does not resolve the licence of content a skill helps you produce or of the third-party sources a skill points at; that is a question for your own counsel, not for this file.

Upgrade cost is shaped by the validation scripts. Because the catalog is machine-checked, a version bump that breaks a package mapping or a metadata file should fail npm run validate:catalog before it reaches you. The canary scripts exist for the same reason. What the scripts cannot catch is semantic drift in a skill's instructions, so a version bump to a skill you depend on is worth a diff read rather than a blind pull.

The last push to the default branch was on 2026-09-14, and the most recent release listed is v2.7.3 on 2026-08-24. The repository is not archived. package.json declares version 2.8.0, which is ahead of the latest tagged release, so the default branch and the release tags are not in lockstep; pin to a tag if you need reproducibility.

Editorial conclusion

Adopt it if you already run Claude Code and want domain procedures (FOIA letters, AP style, C2PA verification, archive capture) loaded on demand rather than pasted into a prompt. Do not adopt it expecting a hosted fact-checking service or a substitute for editorial judgement; these are instruction files, and the repository's own guides describe multi-agent runs as needing an adversarial verify step. Before relying on any package, run npm run validate:catalog and npm run validate:agent-skills against your checkout, read the skill file you intend to use, and confirm which client path you are installing for, since the README says to use only one Codex installation path per skill during the pilot.

Frequently asked questions

What exactly is a Claude skill?

The README describes skills as modular instruction sets that an AI coding agent loads when relevant to a task, each containing domain knowledge, workflows, templates and supporting files. Shared skills in this repository follow the Agent Skills specification, and Claude and Codex each provide their own installation and runtime layer around that content.

What is a Claude skill in technical writing?

In this repository the closest matches are the journalism-core skill for AP-style writing and AI-slop detoxing, and the research-toolkit skill for academic writing. Both are packaged as skill directories rather than as a prose style guide, so the agent loads them when a writing task looks relevant.

How do you write skills for Claude?

The README points to the Agent Skills specification as the format the shared skills follow, and the repository enforces its own conventions through skills-catalog.yaml plus npm run validate:catalog and npm run validate:agent-skills. Each stable skill also needs an agents/openai.yaml file for Codex display metadata, which the README says does not change invocation policy.

What are the most popular skills for Claude?

The repository does not publish usage or popularity data, so any ranking would be invented. The README does list the packages and their skills, and journalism-core is the largest with fifteen, covering AP style, source verification, FOIA and NJ OPRA, fact-checking, interview prep and newsletter publishing.

Official sources

  1. jamditis/claude-skills-journalism on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Community notes

Community notes