skills/acron0/skills/note-taker

note-taker

SKILL.md

<quick_start>

  1. Determine note type from user request (or ask)
  2. Load config from ~/.claude/preferences.json (or run first-time setup)
  3. Copy matching template to target directory as YYYY-MM-DD-topic-slug.md
  4. Fill in template fields (date, topic, attendees, etc.)
  5. Enter note-taking mode: each user message is appended to the file </quick_start>

Infer the note type from the user's request (e.g., "take meeting notes" → meeting, "interview notes for Jane" → interview).

If the type is not obvious, ask using AskUserQuestion with available template types as options. If templates haven't been discovered yet, offer common defaults: Meeting, Interview, 1:1.

Read ~/.claude/preferences.json using the Read tool. Look for these keys:

{
  "notesDir": "~/notes",
  "notesTemplates": "~/notes/Work/Templates",
  "notesMeetingDir": "~/notes/Work/Meetings",
  "notesInterviewDir": "~/notes/Work/Interviews",
  "notes1on1Dir": "~/notes/Work/1on1s"
}

If notesDir is missing: Ask the user for their base notes directory.

If notesTemplates is missing: Search for common template locations within notesDir:

  • {notesDir}/Templates
  • {notesDir}/templates
  • {notesDir}/Work/Templates

If found, use it. Otherwise ask the user.

If the per-type output dir is missing (e.g., notesMeetingDir): Explore the directory tree under notesDir for folders whose names match the note type (e.g., Meetings, meetings, 1on1s). If a likely match exists, use it. If ambiguous or not found, ask the user.

Save all discovered/provided values back to preferences.json:

python3 -c "
import json, os
path = os.path.expanduser('~/.claude/preferences.json')
try:
    with open(path) as f: data = json.load(f)
except (FileNotFoundError, json.JSONDecodeError): data = {}
data['KEY'] = 'VALUE'
with open(path, 'w') as f: json.dump(data, f, indent=2)
"

Ensure all directories exist with mkdir -p.

List .md files in the templates directory. Each filename (without .md) is a valid note type. Map each to its output directory using the preference key convention: notes{PascalCase}Dir.

If the requested note type has no matching template, show available types and let the user choose.

  1. If topic/title not already provided, ask the user (e.g., "Q1 Planning", "Jane Doe - Senior Engineer")
  2. Generate filename: YYYY-MM-DD-topic-in-kebab-case.md
  3. Copy the template to the target directory with the generated filename
  4. Fill in any template placeholders with known values:
    • Date fields → today's date
    • Title/Topic → provided topic
    • Attendees, role, candidate → from context if available
  5. Read the created file back to confirm structure

Tell the user note-taking mode is active and that each message will be added to the note. Then:

  • Each user message is content to append to the active note file
  • Use the Edit tool to append content
  • Format context-aware based on the template structure:
    • If the template has bullet-point sections → append as bullet points under the appropriate section
    • If there are distinct sections (Discussion, Action Items, Decisions) → route content to the matching section based on keywords
    • If the user prefixes with a section name → place in that section
    • Default: append to the main notes/content section
  • If the user says "done", "finish", "close", or "end notes" → exit note-taking mode, confirm the final file path

Be quiet during note-taking. Just append and confirm briefly (e.g., "Added." or "Added to Action Items."). Do not narrate what you are doing.

<configuration_reference> All keys in ~/.claude/preferences.json:

Key Description Example
notesDir Base notes directory ~/notes
notesTemplates Templates directory ~/notes/Work/Templates
notes{Type}Dir Output dir per note type ~/notes/Work/Meetings

The {Type} is PascalCase derived from the template filename:

  • meeting.mdnotesMeetingDir
  • interview.mdnotesInterviewDir
  • 1on1.mdnotes1on1Dir
  • standup.mdnotesStandupDir </configuration_reference>

Claude: Reads ~/.claude/preferences.json - no notes config found Claude (AskUserQuestion): Where do you keep your notes? Options: ~/notes, ~/Documents/Notes, Other User: ~/notes

Claude: Finds ~/notes/Templates with meeting.md, interview.md, 1on1.md Saves notesDir and notesTemplates to preferences.json Claude (AskUserQuestion): Where should meeting notes be saved? Options: ~/notes/Meetings, ~/notes/Work/Meetings, Other User: ~/notes/Work/Meetings

Claude: Saves notesMeetingDir, creates directory if needed Claude: What's the topic or title for this meeting? User: Q1 Planning

Claude: Copies meeting.md template to ~/notes/Work/Meetings/2026-02-12-q1-planning.md Fills in date and title Note created: 2026-02-12-q1-planning.md Note-taking mode active. Each message will be added to the note. Say "done" when finished.

User: Discussed roadmap priorities for Q1 Claude: Added.

User: Action item: Sarah to draft the proposal by Friday Claude: Added to Action Items.

User: done Claude: Notes saved to ~/notes/Work/Meetings/2026-02-12-q1-planning.md

Claude: Reads preferences.json - all config present Copies interview.md template to ~/notes/Work/Interviews/2026-02-12-jane-doe-senior-engineer.md Fills in date, candidate name, role Note created: 2026-02-12-jane-doe-senior-engineer.md Note-taking mode active.

User: Strong system design skills, explained distributed caching clearly Claude: Added.

User: Struggled with concurrency question on mutex vs semaphore Claude: Added.

User: Decision: move to next round Claude: Added to Decision.

User: done Claude: Notes saved to ~/notes/Work/Interviews/2026-02-12-jane-doe-senior-engineer.md

Claude: Scans templates dir, finds standup.md - new type No notesStandupDir in preferences Claude (AskUserQuestion): Where should standup notes be saved? Options: ~/notes/Work/Standups, ~/notes/Standups, Other User: ~/notes/Work/Standups

Claude: Saves notesStandupDir, creates dir, copies template Note created: 2026-02-12-standup.md Note-taking mode active.

<success_criteria>

  • Note type correctly identified from request or asked when ambiguous
  • All config loaded from preferences.json without redundant questions on repeat use
  • Template correctly copied and populated with known field values
  • File named as YYYY-MM-DD-topic-slug.md in the correct directory
  • Note-taking mode: messages appended context-aware to appropriate sections
  • Clean exit on "done" / "finish" / "close" / "end notes" </success_criteria>
Weekly Installs
4
Repository
acron0/skills
First Seen
Feb 27, 2026
Installed on
opencode4
github-copilot4
codex4
amp4
cline4
kimi-cli4