agentleFS
y-miyazakiy-miyazaki/config/CLAUDE.md

config

CLAUDE.md1 starsChanged 8 days agoApache-2.0View on GitHub

Distributable vs maintainer-only: .apm/packages/** ships to other repositories — portable wording only. This-repo rules → .apm/CLAUDE.md or this file, never package sources. Nested CLAUDE.md files (.apm/CLAUDE.md, .github/workflows/CLAUDE.md) are directory-scoped maintainer rules for working under that path — hand-authored, repo-owned, and distinct from the .apm/packages/** → .claude/ sync row above (apm install never touches them). Claude Code and Cursor both read nested CLAUDE.md directly; if a tool that only honors AGENTS.md ever needs these same scoped rules, add a sibling AGENTS.md…

The file

We split this CLAUDE.md into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Do not run a tool directly when a hook in .claude/settings.json already runs it (Stop / PostToolUse).

    line 34

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

@AGENTS.md

Project Instructions

Edit routing (MUST)

Edit here (source of truth)Sync targets (commit; do not hand-edit)
.apm/packages/<pkg>/ (instructions, skills, hooks, MCP config).agents/, .claude/, .codex/, .cursor/, .kiro/, .vscode/, apm_modules/ — materialized by apm install; commit after sync, edit only under .apm/packages/
scripts/lib/.apm/packages/*/.apm/skills/*/scripts/lib/
scripts/{shell-script,go,terraform}/validate.sh, scripts/shell-script/fix_function_doc_order.shPaired skill scripts/ copy
.apm/packages/<pkg>/.apm/skills/<skill>-review/references/category-*.mdGenerated ## Guidelines in instructions (unless accepting overwrite on next sync)
Repo-only paths (for example scripts/terraform/module_updater.sh, .github/actions/**/lib/, .github/workflows/)—

Distributable vs maintainer-only: .apm/packages/** ships to other repositories — portable wording only. This-repo rules → .apm/CLAUDE.md or this file, never package sources.

Nested CLAUDE.md files (.apm/CLAUDE.md, .github/workflows/CLAUDE.md) are directory-scoped maintainer rules for working under that path — hand-authored, repo-owned, and distinct from the .apm/packages/** → .claude/ sync row above (apm install never touches them). Claude Code and Cursor both read nested CLAUDE.md directly; if a tool that only honors AGENTS.md ever needs these same scoped rules, add a sibling AGENTS.md there rather than renaming back.

Permission parity (MUST)

These four files express one permission policy for different agents. They are repo-owned and hand-edited: apm install does not materialize them, so the .cursor/ sync-target row above does not apply to cli.json or permissions.json.

FilePermission surface
.claude/settings.jsonpermissions.allow / deny / ask — Bash(cmd:*), Read(glob), WebFetch, mcp__<server>
.cursor/cli.jsonpermissions.allow / deny — Shell(cmd), Read(glob), WebFetch(domain), Mcp(server:tool)
.cursor/permissions.jsonterminalAllowlist (bare command), mcpAllowlist; no deny array — denials go in autoRun.block_instructions
.lean-ctx.tomlshell_allowlist_extra (bare command); shell commands only, no deny mechanism

Change one, change all four in the same commit, at the same permission level. A command added to one allowlist is added to every allowlist; a command denied in one is denied — not merely dropped from allow — in every file that has a deny mechanism, and recorded as a block_instructions sentence in .cursor/permissions.json. A command that exists in only one agent's toolchain still gets an entry everywhere it is expressible. Translate syntax per the table rather than copying a rule verbatim between files, and keep each list in its existing sort order.

Hook-covered tools (MUST)

Do not run a tool directly when a hook in .claude/settings.json already runs it (Stop / PostToolUse); the hook result is the source of truth. Check hooks in .claude/settings.json first. If the hooks cannot be read, treat the tools below as hook-covered.

Hook-covered toolTrigger
actionlintStop
ghalintStop
gitleaksStop
golangci-lintStop
markdown-link-checkStop
markdownlint-cli2Stop
prettierPostToolUse (Edit, Write)
shellcheckStop
shfmtPostToolUse (Edit, Write)
zizmorStop

shfmt and prettier run after both the Edit and Write tools. The Stop hook also runs scripts/self/apm/sync_apm_artifacts.sh (sync, not a lint tool).

Conventions

TopicRule
Temporary filesWrite to tmp/.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.