Neat-Freak Knowledge Closeout
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
Generates CLAUDE.md project memory files that transfer institutional knowledge.
$ npx skills add jamditis/claude-skills-journalism --skill project-memory -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jamditis/claude-skills-journalism project-memory --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .claude/skills && cp -r skills-src/project-templates-toolkit/skills/project-memory .claude/skills/project-memory && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "project-memory" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-memory into .claude/skills/project-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-memory", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-memoryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jamditis/claude-skills-journalism --skill project-memory -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jamditis/claude-skills-journalism project-memory --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .agents/skills && cp -r skills-src/project-templates-toolkit/skills/project-memory .agents/skills/project-memory && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "project-memory" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-memory into .agents/skills/project-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-memory", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jamditis/claude-skills-journalism --skill project-memory -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jamditis/claude-skills-journalism project-memory --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/project-templates-toolkit/skills/project-memory .cursor/skills/project-memory && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "project-memory" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-memory into .cursor/skills/project-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-memory", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jamditis/claude-skills-journalism.git --path project-templates-toolkit/skills/project-memory--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jamditis/claude-skills-journalism --skill project-memory -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jamditis/claude-skills-journalism project-memory --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/project-templates-toolkit/skills/project-memory .gemini/skills/project-memory && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "project-memory" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-memory into .gemini/skills/project-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-memory", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jamditis/claude-skills-journalism project-memoryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jamditis/claude-skills-journalism --skill project-memory -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .github/skills && cp -r skills-src/project-templates-toolkit/skills/project-memory .github/skills/project-memory && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "project-memory" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-memory into .github/skills/project-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-memory", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jamditis/claude-skills-journalism --skill project-memory -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jamditis/claude-skills-journalism project-memory --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/project-templates-toolkit/skills/project-memory .opencode/skills/project-memory && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "project-memory" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-memory into .opencode/skills/project-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-memory", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
project-memoryGenerates CLAUDE.md project memory files that transfer institutional knowledge.
Project Memory is an agent skill from jamditis/claude-skills-journalism. Generates CLAUDE.md project memory files that transfer institutional knowledge. Use when setting up projects or onboarding.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files (for example `agents/openai.yaml`, `templates/content-pipeline.md` and `templates/digital-archive.md`).
It sits in Agent Workflows, covering Agent memory, Agent instruction files and Knowledge bases. The repository describes itself as: Claude Code skills for journalism, media, and academia - verification, FOIA, data journalism, academic writing, and more. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e3e2172. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
code.claude.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Project Memory loads about 2.5k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 1,051 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
key in 1Password "Metro Desk" vault, not .envAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jamditis/claude-skills-journalism at commit e3e2172, republished under its MIT licence (© jamditis). 1,051 words, ~2,528 tokens.
.claude/skills/project-memory/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Create CLAUDE.md files that transfer institutional knowledge, not obvious information. Think like a senior journalist onboarding a competent colleague, you don't explain how journalism works, you explain YOUR project's quirks.
Anthropic is explicit on this point: CLAUDE.md content is delivered as a user message after the system prompt. Claude reads it and tries to follow it, but there's no guarantee of strict compliance, especially with vague or conflicting instructions. Source: https://code.claude.com/docs/en/memory
This affects how you write a CLAUDE.md and what you put elsewhere:
| Mechanism | Use for | Source-of-truth |
|---|---|---|
| CLAUDE.md | Standing facts, conventions, "always do X" rules | Advisory |
| Skills | Multi-step procedures, on-demand workflows | Loaded when invoked |
| Hooks | Actions that must happen every time, no exceptions | Deterministic when the hook blocks: a shell command that exits 2 (e.g. hooks/one-way-door-check.md) or a PreToolUse deny (e.g. hooks/no-ai-attribution.md). A prompt hook such as hooks/bug-report-detector.md only adds a reminder, so do not rely on it for a must-run rule |
If an instruction is "block writes to published/" or "run accessibility check before commit," that belongs in a hook, not CLAUDE.md. If it's "fact-check workflow" or "FOIA-letter drafting," that's a skill. CLAUDE.md is the place for things Claude must hold in every session.
Anthropic publishes an explicit include/exclude table for what makes an effective CLAUDE.md. Source: https://code.claude.com/docs/en/best-practices
| ✅ Include | ❌ Exclude |
|---|---|
| Bash commands Claude can't guess | Anything Claude can figure out by reading code |
| Code style rules that differ from defaults | Standard language conventions Claude already knows |
| Testing instructions and preferred test runners | Detailed API documentation (link to docs instead) |
| Repository etiquette (branch naming, PR conventions) | Information that changes frequently |
| Architectural decisions specific to your project | Long explanations or tutorials |
| Developer environment quirks (required env vars) | File-by-file descriptions of the codebase |
| Common gotchas or non-obvious behaviors | Self-evident practices like "write clean code" |
For journalism projects, translate to:
For every line you write, ask: "Would removing this cause Claude to make mistakes?" If not, cut it.
Anthropic's explicit guidance as of 2026: target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence. Bloated CLAUDE.md files cause Claude to ignore the actual rules. Source: https://code.claude.com/docs/en/best-practices
Going over 200 lines is a signal to use one of these instead:
.claude/rules/ with paths: frontmatter, file-pattern-scoped rules that load only when Claude works with matching files. Replaces @import chains as the size-management mechanism. (Note: @imports no longer help with context size, Anthropic explicitly notes that imports load fully at launch.)CLAUDE.md location precedence (more specific wins). Source: https://code.claude.com/docs/en/memory
| Scope | Location | Use case |
|---|---|---|
| Managed policy | Linux/WSL: /etc/claude-code/CLAUDE.md<br/>macOS: /Library/Application Support/ClaudeCode/CLAUDE.md<br/>Windows: C:\Program Files\ClaudeCode\CLAUDE.md | Org-wide standards (IT/DevOps managed; cannot be excluded by individual settings) |
| Project | ./CLAUDE.md OR ./.claude/CLAUDE.md | Team-shared instructions (check into git) |
| User | ~/.claude/CLAUDE.md | Personal preferences across all projects |
| Local | ./CLAUDE.local.md | Personal project-specific notes (add to .gitignore) |
The ./.claude/CLAUDE.md location and managed-policy tier are 2026 additions to Anthropic's documented locations. Templates that say "put this at project root" should mention ./.claude/CLAUDE.md as an equally valid location.
If your repo already has AGENTS.md for other coding agents (Cursor, Codex, etc.), don't duplicate the content. Anthropic's recommended pattern is @AGENTS.md import (or symlink) with Claude-specific overrides appended:
@AGENTS.md
## Claude Code
- Use plan mode for changes under `src/billing/`.For journalism teams using multiple agents, this matters, shared editorial standards (AP-style preferences, source-handling invariants, fact-check protocols) belong to the org, not one agent.
Anthropic now names these explicitly. Source: https://code.claude.com/docs/en/best-practices and https://code.claude.com/docs/en/memory
CLAUDE.local.md (gitignored) for sandbox URLs, test credentials, personal overrides.Anthropic ships this as the canonical starter. Templates should default to something this short and grow only as needed:
# Code style
- Use ES modules (import/export) syntax, not CommonJS (require)
- Destructure imports when possible
# Workflow
- Be sure to typecheck when you're done making a series of code changes
- Prefer running single tests, and not the whole test suite, for performanceEach of the 6 journalism templates ships a sub-30-line "starter" variant alongside the fuller version. Adopt incrementally.
As of Claude Code v2.1.59+, there's a second memory mechanism alongside CLAUDE.md: auto memory, where Claude writes notes to itself in ~/.claude/projects/<project>/memory/ based on your corrections. The first 200 lines of that directory's MEMORY.md are loaded into every session. Source: https://code.claude.com/docs/en/memory
Practical implication for templates: don't ask the user to manually write down "things Claude learns over time", that's auto memory's job now. CLAUDE.md is for facts you write up front; auto memory is for things Claude notices.
Bad (too verbose, obvious):
# CLAUDE.md
## Overview
Welcome to our newsroom's story tracking system! This is a
web application built with React and Node.js that helps
editors and reporters collaborate on stories.
## Getting started
First, make sure you have Node.js installed. Then:
npm install
npm startGood (institutional knowledge only):
# CLAUDE.md
## Overview
Story tracker for metro desk. React + Supabase.
## Gotchas
- Story slugs must be unique across ALL desks, not just metro
- "Hold" status doesn't stop the autopublish cron, use "Kill"
- Reporter dropdown caches for 1 hour; new hires won't appear
## Commands
npm run sync-ap # Pull latest from AP, runs automatically at :15
## Credentials
Supabase key in 1Password "Metro Desk" vault, not .envTemplates are in the templates/ directory:
| Template | Use for |
|---|---|
editorial-tool.md | Newsroom tools, fact-checkers, AI assistants |
event-website.md | Conferences, workshops, campaign sites |
publication.md | Newsletters, podcasts, ongoing content series |
research-project.md | Investigations, data journalism with defined scope |
content-pipeline.md | CMS workflows, publishing automation |
digital-archive.md | Historical collections, document repositories |
What are you building?
├── Tool for the newsroom → editorial-tool.md
├── Site for an event → event-website.md
├── Recurring content series → publication.md
├── One-time investigation → research-project.md
├── Publishing automation → content-pipeline.md
└── Archive/preservation → digital-archive.md./CLAUDE.md OR ./.claude/CLAUDE.md at your project root@AGENTS.md at the top instead of duplicating shared content2026-05-09. Sources verified: code.claude.com/docs/en/memory, code.claude.com/docs/en/best-practices.
The best CLAUDE.md files are written by people who've been burned by the quirks they're documenting.
© jamditis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files in project-templates-toolkit/skills/project-memory of jamditis/claude-skills-journalism.
Open the folder on GitHubat commit e3e2172
Project Memory next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Project Memory this skilljamditis/claude-skills-journalism | 416 | — | ~2.5k | Automated safety check: Notes | MIT | |
| Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills | 21k | — | ~1.9k | Automated safety check: Pass | MIT | |
| MemPalace Memory SearchMemPalace/mempalace | 59k | — | ~1.4k | Automated safety check: Pass | MIT | |
| SkillOpt Sleep Cyclemicrosoft/SkillOpt | 18k | — | ~2.3k | Automated safety check: Pass | MIT | |
| CLAUDE.md Improveranthropics/claude-plugins-official | 37k | 5 repos | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Remember Project Knowledgezereight/gitlab-mcp | 2k | 1 repos | ~846 | Automated safety check: Pass | MIT |
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
MemPalace/mempalace
Mines project files and conversation exports into a local, searchable memory palace and recalls past work by semantic search through the mempalace CLI.
microsoft/SkillOpt
Runs an on-demand or nightly sleep cycle that reviews past Claude Code sessions and proposes validated updates to CLAUDE.md and skills.
anthropics/claude-plugins-official
Finds every CLAUDE.md file in a repository, scores each against quality criteria, shows a report, then makes targeted updates after you approve.
zereight/gitlab-mcp
Sorts what you learned in a session into the right memory surface, filtering out ephemeral notes and duplicates before anything is stored.
10xChengTu/harness-engineering
Set up and improve harness engineering (AGENTS.md, docs/, lint rules, eval systems, project-level prompt engineering) for AI-agent-friendly codebases.
jamditis/claude-skills-journalism
A skill your agent uses when creating distinct website directions, a client review picker, asset catalog, previews, and Cloudflare-ready handoffs.
jamditis/claude-skills-journalism
Builds an Open Knowledge Format (OKF) knowledge base from existing docs, notes, or a repo.
jamditis/claude-skills-journalism
Local Gitleaks scans for staged changes, push ranges, and full history in private repos, with redacted reports.
jamditis/claude-skills-journalism
Acquire, clean, analyze, verify, visualize, and explain data for journalism.
jamditis/claude-skills-journalism
Creates print-ready HTML that exports to PDF. An agent skill from jamditis/claude-skills-journalism.
jamditis/claude-skills-journalism
Establishes how to find and use skills, requiring Skill tool invocation before any response.
Categories
Generates CLAUDE.md project memory files that transfer institutional knowledge. Project Memory is an agent skill from jamditis/claude-skills-journalism.md project memory files that transfer institutional knowledge.
Project Memory fits situations like: setting up projects; tasks that involve Agent memory; tasks that involve Agent instruction files.
Run `npx skills add jamditis/claude-skills-journalism --skill project-memory -a claude-code`. Or copy the skill folder (project-templates-toolkit/skills/project-memory in jamditis/claude-skills-journalism) into .claude/skills/project-memory in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jamditis/claude-skills-journalism --skill project-memory -a codex`. Or copy the skill folder (project-templates-toolkit/skills/project-memory in jamditis/claude-skills-journalism) into .agents/skills/project-memory in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jamditis/claude-skills-journalism --skill project-memory -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project-memory, .gemini/skills/project-memory, .github/skills/project-memory and .opencode/skills/project-memory in your project.
SKILL.md names no scripts, command-line tools or credentials: Project Memory is instructions for the agent only. Our summary lists: Node.js.
SKILL.md names 1 domain. As links in the text: code.claude.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Project Memory is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Project Memory: Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars), MemPalace Memory Search (MemPalace/mempalace, 59k stars), SkillOpt Sleep Cycle (microsoft/SkillOpt, 18k stars) and CLAUDE.md Improver (anthropics/claude-plugins-official, 37k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jamditis (a GitHub user) maintains it in jamditis/claude-skills-journalism, which has 416 GitHub stars. The repository holds 53 skills in this directory. The repository was last updated on October 4, 2026.
Source: jamditis/claude-skills-journalism on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.