Agent skill

Project Memory

by jamditis in jamditis/claude-skills-journalism

Generates CLAUDE.md project memory files that transfer institutional knowledge.

MITAuto-check: notesAgent Workflows

Install Project Memory

skills CLI
$ npx skills add jamditis/claude-skills-journalism --skill project-memory -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jamditis/claude-skills-journalism project-memory --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
project-memory
GitHub stars
416
Token cost
~2.5k tokens
SKILL.md length
1,051 words
Files
8
Skills in repo
53
Repo updated
First seen
Licence
MIT

At a glance

Generates CLAUDE.md project memory files that transfer institutional knowledge.

  • Works in 5 steps: The over-specified CLAUDE.md. Bloat… → Conflicting instructions across nested… → Hand-coded standard conventions Claude… → …
  • Setting up projects
  • SKILL.md covers CLAUDE.md is advisory, not…, What belongs in CLAUDE.md, The deletion test and Size guidance: target under…, plus 10 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

When your agent uses it

  • Setting up projects
  • Tasks that involve Agent memory
  • Tasks that involve Agent instruction files

Example prompts

  • “Use the project-memory skill to generate CLAUDE.md project memory files that transfer institutional knowledge”
  • “/project-memory”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. The over-specified CLAUDE.md. Bloat causes Claude to ignore real rules. If Claude keeps doing something despite a CLAUDE.md rule, the file…
  2. Conflicting instructions across nested CLAUDE.md files. Claude picks one arbitrarily. Review periodically to remove outdated rules.
  3. Hand-coded standard conventions Claude already knows. "Use proper indentation," "write clean code", delete.
  4. Detailed API docs / file-by-file descriptions / info that changes frequently. Link to the canonical source instead.
  5. Secrets in CLAUDE.md. It's checked into git. Use CLAUDE.local.md (gitignored) for sandbox URLs, test credentials, personal overrides.

What it can do on your machine

Read from SKILL.md and the folder at commit e3e2172. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    Links to these hosts (documentation or services it may open):

    • code.claude.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~35
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:156
    key in 1Password "Metro Desk" vault, not .env

Automated 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.

SKILL.md

The full file from jamditis/claude-skills-journalism at commit e3e2172, republished under its MIT licence (© jamditis). 1,051 words, ~2,528 tokens.

Download SKILL.mdSave it as .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.
name
project-memory
description
Generates CLAUDE.md project memory files that transfer institutional knowledge. Use when setting up projects or onboarding.

Project memory generator

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.

CLAUDE.md is advisory, not enforced

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:

MechanismUse forSource-of-truth
CLAUDE.mdStanding facts, conventions, "always do X" rulesAdvisory
SkillsMulti-step procedures, on-demand workflowsLoaded when invoked
HooksActions that must happen every time, no exceptionsDeterministic 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.

What belongs in CLAUDE.md

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 guessAnything Claude can figure out by reading code
Code style rules that differ from defaultsStandard language conventions Claude already knows
Testing instructions and preferred test runnersDetailed API documentation (link to docs instead)
Repository etiquette (branch naming, PR conventions)Information that changes frequently
Architectural decisions specific to your projectLong explanations or tutorials
Developer environment quirks (required env vars)File-by-file descriptions of the codebase
Common gotchas or non-obvious behaviorsSelf-evident practices like "write clean code"

For journalism projects, translate to:

  • Include: AP-style preferences that override defaults, "always cite source URLs," byline policy, embargo handling, source-protection invariants, CMS quirks (e.g., "story slugs must be unique across ALL desks, not just metro").
  • Exclude: "We verify facts before publishing" (every journalist knows this), "use AP Style" without specifics (every journalism stack does this), framework documentation, generic git commands.

The deletion test

For every line you write, ask: "Would removing this cause Claude to make mistakes?" If not, cut it.

Size guidance: target under 200 lines

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.)
  • Skills, for multi-step procedures that don't need to be in every session.
  • Hooks, for deterministic enforcement.

Where to put CLAUDE.md files

CLAUDE.md location precedence (more specific wins). Source: https://code.claude.com/docs/en/memory

ScopeLocationUse case
Managed policyLinux/WSL: /etc/claude-code/CLAUDE.md<br/>macOS: /Library/Application Support/ClaudeCode/CLAUDE.md<br/>Windows: C:\Program Files\ClaudeCode\CLAUDE.mdOrg-wide standards (IT/DevOps managed; cannot be excluded by individual settings)
Project./CLAUDE.md OR ./.claude/CLAUDE.mdTeam-shared instructions (check into git)
User~/.claude/CLAUDE.mdPersonal preferences across all projects
Local./CLAUDE.local.mdPersonal 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.

AGENTS.md interop

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:

markdown
@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.

Show full SKILL.md (416 more words)Show less

Anti-patterns to warn about

Anthropic now names these explicitly. Source: https://code.claude.com/docs/en/best-practices and https://code.claude.com/docs/en/memory

  1. The over-specified CLAUDE.md. Bloat causes Claude to ignore real rules. If Claude keeps doing something despite a CLAUDE.md rule, the file is probably too long and the rule is getting lost.
  2. Conflicting instructions across nested CLAUDE.md files. Claude picks one arbitrarily. Review periodically to remove outdated rules.
  3. Hand-coded standard conventions Claude already knows. "Use proper indentation," "write clean code", delete.
  4. Detailed API docs / file-by-file descriptions / info that changes frequently. Link to the canonical source instead.
  5. Secrets in CLAUDE.md. It's checked into git. Use CLAUDE.local.md (gitignored) for sandbox URLs, test credentials, personal overrides.

Minimum-viable CLAUDE.md (~6 lines)

Anthropic ships this as the canonical starter. Templates should default to something this short and grow only as needed:

markdown
# 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 performance

Each of the 6 journalism templates ships a sub-30-line "starter" variant alongside the fuller version. Adopt incrementally.

Auto memory is separate from CLAUDE.md

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.

Voice guidelines

  • Direct and terse
  • Like notes you'd leave for yourself
  • No marketing language
  • No "Welcome to..." introductions
  • No "This project is..." padding

Example: good vs bad

Bad (too verbose, obvious):

markdown
# 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 start

Good (institutional knowledge only):

markdown
# 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 .env

Journalism-specific templates

Templates are in the templates/ directory:

TemplateUse for
editorial-tool.mdNewsroom tools, fact-checkers, AI assistants
event-website.mdConferences, workshops, campaign sites
publication.mdNewsletters, podcasts, ongoing content series
research-project.mdInvestigations, data journalism with defined scope
content-pipeline.mdCMS workflows, publishing automation
digital-archive.mdHistorical collections, document repositories
Template selection guide
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

How to use templates

  1. Copy the appropriate template to ./CLAUDE.md OR ./.claude/CLAUDE.md at your project root
  2. Fill in the bracketed placeholders with YOUR specifics
  3. Delete any sections that don't apply
  4. If your project uses other agents (Cursor, Codex), add @AGENTS.md at the top instead of duplicating shared content
  5. Add project-specific gotchas as you discover them, but stay under 200 lines
  6. Move multi-step procedures to skills, deterministic enforcement to hooks

Last currency sweep

2026-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

Files

SKILL.md and 7 other files in project-templates-toolkit/skills/project-memory of jamditis/claude-skills-journalism.

  • SKILL.md
  • agents/openai.yaml
  • templates/content-pipeline.md
  • templates/digital-archive.md
  • templates/editorial-tool.md
  • templates/event-website.md
  • templates/publication.md
  • templates/research-project.md

Open the folder on GitHubat commit e3e2172

Compare with similar skills

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.

Project Memory compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Project Memory this skilljamditis/claude-skills-journalism416—~2.5kAutomated safety check: NotesMIT
Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills21k—~1.9kAutomated safety check: PassMIT
MemPalace Memory SearchMemPalace/mempalace59k—~1.4kAutomated safety check: PassMIT
SkillOpt Sleep Cyclemicrosoft/SkillOpt18k—~2.3kAutomated safety check: PassMIT
CLAUDE.md Improveranthropics/claude-plugins-official37k5 repos~1.5kAutomated safety check: PassApache-2.0
Remember Project Knowledgezereight/gitlab-mcp2k1 repos~846Automated safety check: PassMIT

Similar skills

  • 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.

    21k GitHub stars~1.9k tokensUpdated 6 days ago
    Agent WorkflowsAuto-check passed
  • MemPalace Memory Search

    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.

    59k GitHub stars~1.4k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • SkillOpt Sleep Cycle

    microsoft/SkillOpt

    Official

    Runs an on-demand or nightly sleep cycle that reviews past Claude Code sessions and proposes validated updates to CLAUDE.md and skills.

    18k GitHub stars~2.3k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • CLAUDE.md Improver

    anthropics/claude-plugins-official

    Official

    Finds every CLAUDE.md file in a repository, scores each against quality criteria, shows a report, then makes targeted updates after you approve.

    37k GitHub starsUsed in 5 repos~1.5k tokens
    Agent WorkflowsAuto-check passed
  • Remember Project Knowledge

    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.

    2k GitHub starsUsed in 1 repo~846 tokens
    Agent WorkflowsAuto-check passed
  • Harness Engineering

    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.

    102 GitHub starsUsed in 1 repo~1k tokens
    Agent WorkflowsAuto-check passed

More from jamditis/claude-skills-journalism

All 53 skills in this repo
  • Web Design Picker

    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.

    416 GitHub stars~3.1k tokensUpdated 3 days ago
    Auto-check passed
  • Okf Wiki

    jamditis/claude-skills-journalism

    Builds an Open Knowledge Format (OKF) knowledge base from existing docs, notes, or a repo.

    416 GitHub stars~4.7k tokensUpdated 3 days ago
    Auto-check passed
  • Private Secret Scanning

    jamditis/claude-skills-journalism

    Local Gitleaks scans for staged changes, push ranges, and full history in private repos, with redacted reports.

    416 GitHub stars~1.8k tokensUpdated 3 days ago
    Auto-check passed
  • Data Journalism

    jamditis/claude-skills-journalism

    Acquire, clean, analyze, verify, visualize, and explain data for journalism.

    416 GitHub stars~1.6k tokensUpdated 3 days ago
    Auto-check passed
  • Document Design

    jamditis/claude-skills-journalism

    Creates print-ready HTML that exports to PDF. An agent skill from jamditis/claude-skills-journalism.

    416 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Using Superjawn

    jamditis/claude-skills-journalism

    Establishes how to find and use skills, requiring Skill tool invocation before any response.

    416 GitHub stars~1.5k tokensUpdated 3 days ago
    Auto-check passed

Categories

Questions about Project Memory

What does Project Memory do?

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.

When should I use Project Memory?

Project Memory fits situations like: setting up projects; tasks that involve Agent memory; tasks that involve Agent instruction files.

How do I install Project Memory in Claude Code?

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.

How do I install Project Memory in Codex?

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.

Can I use Project Memory in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Project Memory need to run?

SKILL.md names no scripts, command-line tools or credentials: Project Memory is instructions for the agent only. Our summary lists: Node.js.

Does Project Memory access the network?

SKILL.md names 1 domain. As links in the text: code.claude.com. This is read from the text; nothing was executed.

Is Project Memory safe to install?

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.

What licence does Project Memory use?

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.

How many tokens does Project Memory use?

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.

What are the alternatives to Project Memory?

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.

Who maintains Project Memory?

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.