# Note Taker

> Capture chat notes (text, voice, image, video, file) into a git-backed notes repo, summarize and organize them, and extract tasks into KANBAN.md. Use when user says they want to take a note, save a note, capture this, or manage their notes/backlog. Use when this capability is needed.

- Skill: `tomevault-io/note-taker` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/note-taker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/note-taker/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/note-taker

---


# Note Taker (Git-managed)

This skill maintains a private notes system in a dedicated git-backed notes repository.

**Setup:** The notes repo path must be configured. Look for a `NOTES_REPO` variable in the project's CLAUDE.md or AGENTS.md, or ask the user for the path on first use.

**Rule:** This skill has side effects (writes + commits + pushes) so it must be user-invoked.

## Repo Sync Before Edits (mandatory)
Before creating/updating/deleting files in an existing repository, sync the current branch with remote:

```bash
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"
```

If the working tree is not clean, stash first, sync, then restore:

```bash
git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash pop
```

If `origin` is missing, pull is unavailable, or rebase/stash conflicts occur, stop and ask the user before continuing.

## Workflow

### 1) Intake
Accept input as:
- **Text**: the message content
- **Voice**: summarize (do not store full transcript unless user asks)
- **Image / video / file**: copy attachment file and reference it from the note

If the user provides multiple items, treat each as a separate note unless they explicitly want a single combined note.

### 2) Decide filename + folder
Create processed notes at:
- `notes/YYYY/MM/YYYY-MM-DD--<slug>.md`

Use a short, stable slug (kebab-case). If unsure, ask for a title.

### 3) Write the note
Use the template in `assets/note-template.md`.
Minimum sections:
- Summary (short)
- Details (only what matters)
- Tasks (checkboxes)
- Attachments (paths + links)

### 4) Store attachments (mandatory)
Always store attachment files in the **same folder as the note file**.

Example:
- Note: `notes/2026/02/2026-02-11--example.md`
- Attachments:
  - `notes/2026/02/2026-02-11--example--1.jpg`
  - `notes/2026/02/2026-02-11--example--2.mp4`

Rules:
- Never store note attachments for this workflow under `assets/images` or `assets/audio`.
- Keep deterministic suffixes: `--1`, `--2`, ...
- Use relative paths in note markdown.

### 5) Embed images in note markdown (mandatory)
For every image attachment, include an inline markdown image so it renders in the note:

- `![<short-alt-text>](./<attachment-filename>)`

For non-image files (video/audio/docs), keep normal markdown links under Attachments.

### 6) Redact secrets (mandatory)
Before committing, scan the note (and any pasted snippets) for:
- API keys / tokens / passwords / private keys

If found:
- replace with `[REDACTED_SECRET]`
- if ambiguity remains, **ask before commit**

### 7) Extract tasks → Kanban
Update `KANBAN.md`:
- Add new tasks to **Backlog**
- Each task should include a link to the note path

### 8) Maintain README index (mandatory)
After updating notes and `KANBAN.md`, update the notes repo `README.md` manually:
- Update overview counts (total notes, total tasks)
- Update notes index table with links to latest notes

### 9) Commit and push (mandatory for reporting links)
Commit message conventions:
- `note: add <short-title>`
- `kanban: add tasks from <slug>`
- `note: update <slug>`
- `docs: update notes README` (if README changed)

Always push when remote exists, so reported GitHub links are valid for user.
Do not ask for extra push confirmation once this skill is invoked by the user.

### 10) Report back with GitHub links (mandatory)
When reporting completion of any note action, include:
- GitHub link to each new/updated note markdown file
- GitHub link to each attached media file (if added)
- Commit hash

Link format:
- `https://github.com/<owner>/<repo>/blob/main/<relative-path>`

Detect the remote URL from the notes repo's `git remote get-url origin` to build correct links.

## Step Completion Reports

After completing each major step, output a status report in this format:

```
◆ [Step Name] ([step N of M] — [context])
··································································
  [Check 1]:          √ pass
  [Check 2]:          √ pass (note if relevant)
  [Check 3]:          × fail — [reason]
  [Check 4]:          √ pass
  [Criteria]:         √ N/M met
  ____________________________
  Result:             PASS | FAIL | PARTIAL
```

Adapt the check names to match what the step actually validates. Use `√` for pass, `×` for fail, and `—` to add brief context. The "Criteria" line summarizes how many acceptance criteria were met. The "Result" line gives the overall verdict.

### Intake (step 1 of 4)

```
◆ Intake (step 1 of 4 — input processing)
··································································
  Input received:         √ pass
  Type detected:          √ pass (text/voice/image/file)
  Content parsed:         √ pass
  [Criteria]:             √ 3/3 met
  ____________________________
  Result:                 PASS
```

### Processing (step 2 of 4)

```
◆ Processing (step 2 of 4 — note creation)
··································································
  Note written:           √ pass
  Attachments stored:     √ pass (same folder as note)
  Secrets redacted:       √ pass — no secrets found
  [Criteria]:             √ 3/3 met
  ____________________________
  Result:                 PASS
```

### Organization (step 3 of 4)

```
◆ Organization (step 3 of 4 — kanban and index)
··································································
  Tasks extracted:        √ pass — 2 tasks added
  Kanban updated:         √ pass — tasks in Backlog
  Index maintained:       × fail — README count not updated
  [Criteria]:             √ 2/3 met
  ____________________________
  Result:                 PARTIAL
```

### Publish (step 4 of 4)

```
◆ Publish (step 4 of 4 — git push and reporting)
··································································
  Committed:              √ pass
  Pushed:                 √ pass
  Links reported:         √ pass — GitHub links included
  [Criteria]:             √ 3/3 met
  ____________________________
  Result:                 PASS
```

## Daily routines
- End-of-day: list today’s notes + propose re-organization (tags / merges / splits)
- Daily 10–15min: review Backlog → pick → move to In Progress → Done

## References
- Repo process rules: `AGENTS.md` in the notes repo root
- Redaction + workflow policy: `POLICY.md` in the notes repo root

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/luongnv89) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-15 -->

