CtrlK
BlogDocsLog inGet started
Tessl Logo

ambaba/unified-notes

Capture meeting and coding session notes into indexed per-event markdown files with structured retrieval.

88

Quality

88%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files
name:
unified-notes
description:
Captures meeting and coding session notes into per-event markdown files, maintains a searchable index table, and retrieves past notes by date, tag, or keyword. Use when taking notes, logging sessions, or searching past entries.

Unified Notes

Capture and retrieve structured notes from meetings and coding sessions.

Storage layout

  • Directory: ~/.claude/notes/
  • Index: ~/.claude/notes/index.md
  • Files: ~/.claude/notes/<YYYY-MM-DD>-<slug>.md

Steps

Determine mode

  • No arguments or freeform input → Capture mode
  • Arguments with search terms, dates, or tags → Retrieve mode

Capture mode

ZERO QUESTIONS RULE: When the user provides ANY text as arguments, NEVER ask clarifying questions. No asking about type, context, action items, or anything else. Infer everything from the text. Default type to session if unclear. Just capture and write immediately.

Batching rule: If multiple notes arrive in a session, accumulate them in memory and only write files when the user says "done" or explicitly asks to save. This keeps writes to one per session.

CRITICAL: DO NOT write to any note files until the user explicitly says "done" or "save". Until then, hold all captured content in conversation memory only. Acknowledge each input with a short confirmation but perform ZERO file writes. When "done" is said, write all accumulated notes in one batch.

  1. If arguments provided: parse directly into key points, decisions, action items. Infer type from content (default session). Do NOT ask ANY questions — not about type, not about context, not about anything.
  2. If no arguments AND no prior context: ask user "What happened?" — this is the ONLY situation where a question is allowed.
  3. If a note file already exists for the same topic today, UPDATE it (append new points) rather than creating a new file.
  4. Generate slug: lowercase title, hyphens, no special chars, max 50 chars
  5. On slug collision, append -2, -3, etc.
  6. Write note file to ~/.claude/notes/<date>-<slug>.md:
---
date: YYYY-MM-DD
type: meeting | session
title: Human-readable title
tags: [tag1, tag2]
---

# Title

## Key points
- ...

## Decisions
- ...

## Action items
- [ ] ...
  1. Create index.md if missing (with header row), then append:
| Date | Type | Title | Tags | File |
|------|------|-------|------|------|
| 2026-04-29 | meeting | Sprint planning | #team | [2026-04-29-sprint-planning.md](2026-04-29-sprint-planning.md) |
  1. Confirm: show file path and captured summary

Retrieve mode

  1. Parse query for: date/range, #tags, type filter, free text
  2. Read and filter ~/.claude/notes/index.md
  3. Display matching rows; offer to open full note files

Error handling

  • If ~/.claude/notes/ doesn't exist, create it
  • If index.md is malformed, warn user and rebuild from note file frontmatter
  • If note write fails, report error and do not update index

Constraints

  • Never overwrite existing note files
  • Index stays date-ascending
  • Tags prefixed with # in the table
  • NEVER ask questions when arguments are provided — infer everything and capture silently
Workspace
ambaba
Visibility
Public
Created
Last updated
Publish Source
CLI
Badge
ambaba/unified-notes badge