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…
In this repository56 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .apm/CLAUDE.mdCLAUDE.md
- .github/workflows/CLAUDE.mdCLAUDE.md
- .cursor/rules/agent-skills.mdcCursor rule
- .cursor/rules/bats.mdcCursor rule
- .cursor/rules/github-actions-workflow.mdcCursor rule
- .cursor/rules/go.mdcCursor rule
- .cursor/rules/go-test.mdcCursor rule
- .cursor/rules/instructions.mdcCursor rule
- .cursor/rules/markdown.mdcCursor rule
- .cursor/rules/shell-script.mdcCursor rule
- .cursor/rules/terraform.mdcCursor rule
- agent-skills-reviewSkill
- changelogSkill
- ci-sweeperSkill
- docs-creatorSkill
- docs-updaterSkill
- github-actions-reviewSkill
- github-actions-validationSkill
- github-issue-autofixSkill
- github-issue-triageSkill
- github-pr-bodySkill
- github-pr-reviewSkill
- github-pr-reviseSkill
- go-reviewSkill
- go-validationSkill
- instructions-reviewSkill
- loop-verifierSkill
- markdown-validationSkill
- refactorSkill
- shell-script-reviewSkill
- shell-script-validationSkill
- tech-debtSkill
- test-gapSkill
- agent-skills-reviewSkill
- changelogSkill
- ci-sweeperSkill
- docs-creatorSkill
- docs-updaterSkill
- github-actions-reviewSkill
- github-actions-validationSkill
- github-issue-autofixSkill
- github-issue-triageSkill
- github-pr-bodySkill
- github-pr-reviewSkill
- github-pr-reviseSkill
- go-reviewSkill
- go-validationSkill
- instructions-reviewSkill
- loop-verifierSkill
- markdown-validationSkill
- refactorSkill
- shell-script-reviewSkill
- shell-script-validationSkill
- tech-debtSkill
- test-gapSkill
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
- Very specific: line 34
Do not run a tool directly when a hook in .claude/settings.json already runs it (Stop / PostToolUse).
≈ “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.
Files
@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.sh | Paired skill scripts/ copy |
.apm/packages/<pkg>/.apm/skills/<skill>-review/references/category-*.md | Generated ## 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.
| File | Permission surface |
.claude/settings.json | permissions.allow / deny / ask — Bash(cmd:*), Read(glob), WebFetch, mcp__<server> |
.cursor/cli.json | permissions.allow / deny — Shell(cmd), Read(glob), WebFetch(domain), Mcp(server:tool) |
.cursor/permissions.json | terminalAllowlist (bare command), mcpAllowlist; no deny array — denials go in autoRun.block_instructions |
.lean-ctx.toml | shell_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 tool | Trigger |
actionlint | Stop |
ghalint | Stop |
gitleaks | Stop |
golangci-lint | Stop |
markdown-link-check | Stop |
markdownlint-cli2 | Stop |
prettier | PostToolUse (Edit, Write) |
shellcheck | Stop |
shfmt | PostToolUse (Edit, Write) |
zizmor | Stop |
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
| Topic | Rule |
| Temporary files | Write to tmp/. |
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
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.

