notes
Skill0 starsChanged 58 days agoMITView on GitHub
Capture and find notes. Three types: meeting (notes from a specific meeting), idea (something to think about later), fact (a tidbit to remember). All notes save to a notes folder (default `~/work/notes/`, see Storage below) with required frontmatter and consistent filenames so search actually works. Search runs across the whole notes root (notes, and anything else you keep under that same folder, like saved emails or briefs). Use when asked to "take a note", "note this", "save this idea", "save this fact", "meeting notes for...", "find my notes about...", "what did I write down about...", "show meeting notes", "show ideas", "show facts", or invoked as /notes. Also surfaces for natural phrases like "I should write this down" or "remind me of this".
21 other projects use a version of this.
Adopted by
Most recently taken up by
- arch3rPro/ark-spacetheir own version, first seen Nov 8, 2026
- adeonir/agent-skillstheir own version, first seen Nov 6, 2026
- blogminhquy/javis-ostheir own version, first seen Nov 5, 2026
- letsloose501/sqs-agent-memorytheir own version, first seen Nov 3, 2026
- yourbeckett/beckett-for-claudetheir own version, first seen Nov 1, 2026
- baney75/myelinatetheir own version, first seen Oct 20, 2026
Used with
Projects with it also use brainstorm.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
nicolasestremSkillbrainstorm
Structured idea generation and solution exploration with systematic analysis.
Also in 3 projects that use this
Other versions21 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 21
- blogminhquy/javis-os★ 711same name
- howells/fiction★ 23same name
- microsoft/PilotSwarm★ 14same name
- DaniilBrusnikUa/claude-code-handoff★ 9same name
- adeonir/agent-skills★ 8same name
- phanghonghao/THU-Awesome-Skills★ 8same name
- baney75/myelinate★ 6same name
- DoKu67/claude-code-skils★ 4same name
- jholhewres/devclaw-skills★ 4same name
- TTflysky/sirenhuisuo★ 4same name
11 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- sign-pdfSkill
- tasksSkill
- transcribeSkill
- voice-modeSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 10 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 56
Don't auto-tag people: If the user mentions a person without explicitly tagging, ask before adding #person (same pattern as /tasks).
- Distinctive: line 73
If you have a calendar tool wired up (an MCP server that can list today's events), call it for today's events and present them as a …
- Distinctive: line 82
If no calendar tool is available, skip straight to asking for the meeting title and attendees.
- Distinctive: line 95
Write the file. Confirm path.
- Very specific: line 102
Ask for a topic slug if not obvious from the first sentence: *"Topic slug?
- Distinctive: line 112
Use ripgrep across the notes root:
- Very specific: line 171
If a fact has no tags, group under Untagged and surface count prominently - that's a flag the user should fix.
- Distinctive: line 198
If you also use an email-triage workflow that can call this skill ("note from this email"):
- Distinctive: line 215
No automatic tagging based on guessing - the user's tags are the user's tags.
- Distinctive: line 216
No external sync (Notion, Obsidian, etc.) - markdown files only.
- Distinctive: line 217
No mobile capture - notes added via Claude Code session or by editing files directly.
- Distinctive: line 218
No auto-summarization of long notes - store what the user wrote.
- Distinctive: line 219
No reminders / time-based surfacing - pair with a scheduler skill for digests, if you have one.
- Very specific: line 220
No index file (NOTES.md) - pure filename + frontmatter + grep.
“Common” is measured: kept by at least 6 in 10 of the 15 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Notes
Personal notes. Three types, all stored as individual markdown files with required frontmatter for findability.
Storage
- Root folder:
~/work/notes/by default. To use a different folder, set the environment variableNOTES_DIRbefore starting Claude Code, and swap~/work/notes/for$NOTES_DIReverywhere in this file. - Filename:
YYYY-MM-DD_<type>_<topic-slug>.md- Type is one of:
meeting,idea,fact - Slug: lowercase, hyphens, no punctuation, max ~50 chars
- Examples:
2026-05-02_meeting_1on1-with-sam.md2026-05-02_idea_notes-skill-design.md2026-05-02_fact_supabase-rls-pattern.md
- Type is one of:
- Frontmatter (required, every note):
--- type: meeting | idea | fact date: 2026-05-02 title: short human title tags: [#sam, #acme-corp] # optional, lowercase #word people: [sam, taylor] # meeting notes only - short names, lowercase source: email msg:<id> | conversation | link:<url> | null --- - Body: free-form markdown.
Hard rules
- Always include the full frontmatter block. Missing fields make notes unfindable later.
- Filename strict format.
YYYY-MM-DD_<type>_<topic-slug>.md. No exceptions. Date is today's date from the system context (absolute, never "today" / "Friday"). - Type is one of three.
meeting,idea,fact. If the user is ambiguous, ASK. Don't invent a fourth type. - Don't auto-tag people. If the user mentions a person without explicitly tagging, ask before adding
#person(same pattern as/tasks). - Don't auto-create. Confirm the parsed type, title, and tags inline before writing the file. One sentence is enough: "Saving as fact note
2026-05-02_fact_supabase-rls-pattern.mdwith tags#supabase #postgres. Go?"
Procedure
Always step 1: Confirm or determine the type
Triggered by: "note this", "save this", "take a note", "meeting notes for X", "idea:", "fact:", "/notes <body>".
Parse the trigger:
- "meeting notes for X" / "from my meeting" →
meeting - "idea:" / "I just thought of" / "what if" →
idea - "fact:" / "save this:" / "tidbit:" / "remember that" →
fact - Ambiguous → ASK: "Meeting note, idea, or fact?"
2a. Capture a meeting note
- If you have a calendar tool wired up (an MCP server that can list today's events), call it for today's events and present them as a numbered list with time + summary + attendees:
If no calendar tool is available, skip straight to asking for the meeting title and attendees.Today's meetings: 1. 9:00 AM - 1:1 with Sam (Sam) 2. 11:00 AM - Acme Corp sync (Taylor, Jordan) 3. 2:00 PM - Team standup (Morgan, Casey) Which meeting is this for? (or 'none') - Wait for the user's pick.
- On a number: prefill
titlefrom event summary,peoplefrom the attendee firstnames (lowercase). Suggest tags from common patterns (e.g. attendee firstnames →#firstname). - On "none": ask for title + attendees manually.
- On a number: prefill
- Capture body. If the user gave the body inline ("meeting notes for the Sam 1:1: discussed onboarding..."), use that. Otherwise prompt: "What did you discuss?"
- Confirm filename + frontmatter inline. Write with the
Writetool. - Confirm path back: "Saved:
~/work/notes/2026-05-02_meeting_1on1-with-sam.md"
2b. Capture an idea note
- The body is usually inline ("idea: notes skill should also handle..."). Use everything after the trigger word as the body.
- Generate a 2-4 word slug from the body (lowercase, hyphens). Show it: "Slug:
notes-skill-search. Different?" - Suggest tags from obvious nouns/projects in the body. Confirm.
- Write the file. Confirm path.
2c. Capture a fact note
Facts are the highest-value-to-find category. Push for tags.
- Body is usually inline ("fact: postgres RLS policies cascade through views..."). Use everything after the trigger as body.
- Ask for a topic slug if not obvious from the first sentence: "Topic slug? (e.g.
postgres-rls-cascade)" - Always ask for at least one tag. Facts without tags rot. Suggest tags from the body's nouns; the user can accept or replace.
- Write the file. Confirm path.
3. Find notes (search)
Triggered by: "find notes about X", "what did I write down about Y", "search my notes", "/notes find <query>".
Default search scope is the entire notes root (~/work/notes/ or your NOTES_DIR, and any sibling folders you keep under the same parent, like saved emails or briefs). The user may want to find anything they've saved, not just notes.
- Use ripgrep across the notes root:
Bash: rg -i --type md -l "<query>" "$HOME/work/" - For each hit, also pull a one-line preview (first non-frontmatter line containing the match).
- Present numbered:
Hits (5): 1. ~/work/notes/2026-05-02_fact_supabase-rls.md - "RLS policies cascade through views..." 2. ~/work/notes/2026-04-28_meeting_1on1-with-sam.md - "discussed onboarding..." 3. ~/work/email/saved/2026-04-15_taylor_q3-numbers.md - (subject line) ... - End with: "Open a number to read it, or refine."
- On "open 1" / "1" →
Readthe file and surface contents.
Filter flags (optional, parse from query):
type:meeting/type:idea/type:fact→ restrict glob to*_<type>_*.mdin~/work/notes/since:YYYY-MM-DD→ filter results by filename date prefixfor:#tag→ grep for the tag in frontmatter or bodyfrom:<sender>→ match email saves where frontmatterfrom:includes the value
4. List notes by type
Triggered by: "show meeting notes", "show ideas from this week", "show facts", "/notes list type:<t>".
- Glob
~/work/notes/*_<type>_*.md. - Apply date filter if given (
since:or "this week" → past 7 days). - Sort by filename date descending.
- Show numbered: date + title + tags.
- End with: "Open a number to read it."
5. Facts view (browse by tag)
Triggered by: "show facts", "/notes facts", "what facts do I have about X".
Facts accumulate forever. This view groups them by tag for browsing.
- Glob
~/work/notes/*_fact_*.md. - For each, parse frontmatter
tags. - Group by tag. A fact with multiple tags appears under each (don't dedupe - browsing benefit > listing tidiness).
- Format:
FACTS (12 total) #postgres (3) 1. 2026-05-02 - RLS policies cascade through views 2. 2026-04-30 - Window functions can't reference aliases in the same SELECT 3. 2026-04-12 - pg_stat_statements needs preload #acme-corp (2) 4. 2026-04-28 - They use Salesforce, not HubSpot 5. 2026-03-15 - Decision-maker is the COO, not the CIO Untagged (1) 6. 2026-04-01 - ... - End with: "Open a number to read, or filter by tag."
If a fact has no tags, group under Untagged and surface count prominently - that's a flag the user should fix.
6. Open / read a note
Triggered by: "open #N", "show me the X note", "read note 3".
Read the file. Surface its contents. Offer: "Edit, append, or done?"
7. Edit / append
Triggered by: "add to that note", "append:", "edit note 3".
Read then Edit. Same pattern as /tasks. For meeting notes especially, appending follow-ups is common ("discussed today: ..."). Just append below existing body, with a date subhead if the new content is from a different day:
## 2026-05-09 follow-up
- Sam confirmed the timeline
- Need to circle back with Taylor8. Delete a note
Triggered by: "delete note 3", "remove the X note".
Confirm exact filename + first line. On verbatim approval, delete the file. Don't move to a trash folder - the user has git history if they need recovery.
Email integration (optional)
If you also use an email-triage workflow that can call this skill ("note from this email"):
- The caller passes: type, sender (suggested tag), msg_id, subject, optional body snippet.
- Set
source: email msg:<id>in frontmatter. - Suggest the sender's firstname (or domain shortname) as a tag.
- Body should include a 2-3 line quoted excerpt from the email + the user's own commentary.
- Confirm and write.
This lets the user later /notes find and pull both the note and (via the source: link) the original email back, if you have a tool that can fetch email by id.
When to ASK vs DECIDE
- Ask: ambiguous type (meeting vs idea vs fact), missing topic slug for a fact, person tags not explicit, "which meeting" for a meeting note.
- Decide: clear type from trigger word, slug obvious from body, tags only if the body literally says "#tag".
What this skill does NOT do
- No automatic tagging based on guessing - the user's tags are the user's tags.
- No external sync (Notion, Obsidian, etc.) - markdown files only.
- No mobile capture - notes added via Claude Code session or by editing files directly.
- No auto-summarization of long notes - store what the user wrote.
- No reminders / time-based surfacing - pair with a scheduler skill for digests, if you have one.
- No index file (
NOTES.md) - pure filename + frontmatter + grep. Indexes drift.
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.

