notes-mcp
Skill2 starsChanged 20 days agoApache-2.0View on GitHub
Use the Notes MCP server to list, read, create, update, or delete repository notes. Use for note_list, note_read, note_write, and note_delete tool calls, including client-prefixed names. For shell-based Notes commands, use notes-cli instead.
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 1 is distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Use the Notes MCP tools for note files.
- Very specific: line 26
Before deletion, tell the user which note will be removed and obtain explicit confirmation.
- Very specific: line 31
Use absolute paths under the repository path returned by Notes context.
- Distinctive: line 32
Never construct another repository's path from unverified owner or repository names.
- Very specific: line 33
Treat a stale expectedHash failure as concurrent modification.
- Very specific: line 34
Do not omit existing content during an update: note_write replaces the whole file.
- Very specific: line 35
Do not supply expectedHash when intentionally creating a verified-unused file.
- Very specific: line 36
Use all: true only for an explicit cross-repository request because its response groups notes by repository.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill 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
Notes MCP
Use the Notes MCP tools for note files. Do not bypass them with filesystem or shell tools when a vault guard is active.
Clients may prefix raw tool names with the configured server key. For example, a server named notes exposes note_read as notes_note_read.
Note bodies are free-form Markdown written mostly for later agent reading. A few paragraphs with no headings is a valid note; keep name, description, and tags useful because listings rely on them.
Workflow
- Resolve the repository note context from an injected context block or the
notes://contextresource. Use the absolute notes path it provides rather than guessing the vault location. If neither source is available and the required path is not already verified, stop and ask the user for it. - Choose the narrowest operation:
note_listlists the current repository's notes. Settagto filter orall: trueonly when the task spans repositories.note_readreturns the full content and SHA-256 revision of one note.note_writecreates or replaces one complete note.note_deletepermanently removes one note.
- For a new note, verify that the target path is unused, then supply the complete Markdown file, including valid YAML frontmatter and body, to
note_write. The tool creates parent directories and sets or refreshesdate:automatically. Becausenote_writehas no create-only precondition, stop rather than overwrite if the target may already exist. - For an update, call
note_readfirst. Preserve the complete file and any frontmatter or sections the task does not change, then pass the returned revision asexpectedHashtonote_write. - Before deletion, tell the user which note will be removed and obtain explicit confirmation. Call
note_deleteonly after confirmation. - Report the mutation result accurately. A note can be saved locally even when its Git commit or best-effort push fails; surface that partial outcome instead of retrying blindly.
Safety
- Use absolute paths under the repository path returned by Notes context.
- Never construct another repository's path from unverified owner or repository names.
- Treat a stale
expectedHashfailure as concurrent modification. Read the note again and reconcile the new content before another write. - Do not omit existing content during an update:
note_writereplaces the whole file. - Do not supply
expectedHashwhen intentionally creating a verified-unused file. It is an update precondition, not a create-only guard. - Use
all: trueonly for an explicit cross-repository request because its response groups notes by repository.
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- changeset-scopeSkill
- code-reviewSkill
- docs-kitSkill
- effect-ghSkill
- effect-herdrSkill
- effect-service-designSkill
- effectSkill
- notes-cliSkill
- opentuiSkill
- skill-prefixesSkill
- task-runnersSkill
- testingSkill
- types-enforce-tsSkill
- writing-styleSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

