Zero-friction idea capture. Append, list, or promote notes to todos.
Captures quick notes, lists them, and promotes to todos in project or global scope.
npx claudepluginhub sienklogic/towlineThis skill is limited to using the following tools:
You are running the note skill. Your job is zero-friction idea capture. One Write call, one confirmation line. No questions, no prompts.
This skill runs inline — no Task, no AskUserQuestion, no Bash.
Two scopes exist. Auto-detect which to use:
.planning/NOTES.md — used when .planning/ directory exists in cwd~/.claude/notes.md — used as fallback when no .planning/, or when --global flag is present--global flag: Strip --global from anywhere in $ARGUMENTS before parsing. When present, force global scope regardless of whether .planning/ exists.
Important: Do NOT create .planning/ if it doesn't exist. If there's no .planning/ directory, fall back to global scope silently.
Parse $ARGUMENTS after stripping --global:
| Condition | Subcommand |
|---|---|
Arguments are exactly list (case-insensitive) | list |
Arguments are exactly promote <N> where N is a number | promote |
| Arguments are empty (no text at all) | list |
| Anything else | append (the text IS the note) |
Critical: list is only a subcommand when it's the ENTIRE argument. /dev:note list of groceries saves a note with text "list of groceries". Same for promote — only a subcommand when followed by exactly one number.
Append a timestamped note to the target file.
# Notes
Quick captures from `/dev:note`. Ideas worth remembering.
---
- [YYYY-MM-DD HH:mm] {note text verbatim}Noted ({scope}): {note text}
{scope} is "project" or "global"YYYY-MM-DD HH:mm (24-hour, no seconds)Show notes from both project and global scopes.
.planning/NOTES.md (if exists) — these are "project" notes~/.claude/notes.md (if exists) — these are "global" notes^- \[ are notes[promoted] from active counts (but still show them, dimmed)Notes:
Project (.planning/NOTES.md):
1. [2026-02-08 14:32] refactor the hook system to support async validators
2. [promoted] [2026-02-08 14:40] add rate limiting to the API endpoints
3. [2026-02-08 15:10] consider adding a --dry-run flag to build
Global (~/.claude/notes.md):
4. [2026-02-08 10:00] cross-project idea about shared config
{count} active note(s). Use `/dev:note promote <N>` to convert to a todo.
If a scope has no file or no entries, show: (no notes)
Convert a note into a todo file.
.planning/ directory — if it doesn't exist, warn: "Todos require a Towline project. Run /dev:begin to initialize one, or use /dev:todo add in an existing project.".planning/todos/pending/ directory exists{YYYYMMDD}-{NNN} where NNN is sequential within the day (check existing files).planning/todos/pending/{id}.md:---
id: {id}
area: general
priority: normal
created: {ISO-timestamp}
source: "promoted from /dev:note"
---
# {note text}
## Context
Promoted from quick note captured on {original date}.
## Notes
(empty)
- [ with - [promoted] [ on that linePromoted note {N} to todo {id}: {note text}# Notes
Quick captures from `/dev:note`. Ideas worth remembering.
---
- [2026-02-08 14:32] refactor the hook system to support async validators
- [promoted] [2026-02-08 14:40] add rate limiting to the API endpoints
- [2026-02-08 15:10] consider adding a --dry-run flag to build
/dev:note list of things → saves note "list of things" (subcommand only when list is the entire arg).planning/: Falls back to global ~/.claude/notes.md — works in any directory.planning/, suggests /dev:beginlist shows last 10 when >20 active entries--global position: Stripped from anywhere — --global my idea and my idea --global both save "my idea" globallylist subcommandIf the Write tool fails (permissions, disk full, etc.), display:
╔══════════════════════════════════════════════════════════════╗
║ ERROR ║
╚══════════════════════════════════════════════════════════════╝
Failed to write note to {target_file}.
**To fix:** Check file permissions or disk space.
If the specified note index is invalid, display:
╔══════════════════════════════════════════════════════════════╗
║ ERROR ║
╚══════════════════════════════════════════════════════════════╝
Note {N} not found. Valid range: 1-{max}.
**To fix:** Run `/dev:note list` to see available notes.
.planning/ if it doesn't exist — fall back to globalActivates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.