원클릭으로
note
Zero-friction idea capture. Append, list, or promote notes to todos.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Zero-friction idea capture. Append, list, or promote notes to todos.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Run multiple phases hands-free. Chains discuss, plan, build, and verify automatically.
Start a new project. Deep questioning, research, requirements, and roadmap.
Execute all plans in a phase. Spawns agents to build in parallel, commits atomically.
Configure settings: depth, model profiles, features, git, and gates.
Execute the next logical step automatically. No prompts, no decisions — just do it.
Systematic debugging with hypothesis testing. Persistent across sessions.
| name | note |
| description | Zero-friction idea capture. Append, list, or promote notes to todos. |
| allowed-tools | Read, Write, Glob, Grep |
| argument-hint | <text> | list | promote <index> [--global] |
STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.
Before ANY tool calls, display this banner:
╔══════════════════════════════════════════════════════════════╗
║ PLAN-BUILD-RUN ► NOTE ║
╚══════════════════════════════════════════════════════════════╝
Then proceed to Step 1.
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.
references/ui-brand.md — Status symbols, banners, formatting for note display outputNotes are stored as individual markdown files in a notes directory:
.planning/notes/{YYYY-MM-DD}-{slug}.md — used when .planning/ directory exists in cwd~/.claude/notes/{YYYY-MM-DD}-{slug}.md — used as fallback when no .planning/, or when --global flag is presentEach note file has this format:
---
date: "YYYY-MM-DD HH:mm"
promoted: false
---
{note text verbatim}
--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. /pbr:note list of groceries saves a note with text "list of groceries". Same for promote — only a subcommand when followed by exactly one number.
Create a timestamped note file in the target directory.
.planning/notes/ or ~/.claude/notes/)pbr-tools slug-generate "{note text}"
Parse the JSON output to get the slug field.{YYYY-MM-DD}-{slug}.md
-2, -3, etc.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 directory exists) — these are "project" notes~/.claude/notes/*.md (if directory exists) — these are "global" notesdate and promoted statuspromoted: true from active counts (but still show them, dimmed)Notes:
Project (.planning/notes/):
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/):
4. [2026-02-08 10:00] cross-project idea about shared config
{count} active note(s). Use `/pbr:note promote <N>` to convert to a todo.
If a scope has no directory or no entries, show: (no notes)
Convert a note into a todo file.
.planning/ directory — if it doesn't exist, warn: "Todos require a Plan-Build-Run project. Run /pbr:new-project to initialize one, or use /pbr:add-todo in an existing project.".planning/todos/pending/ directory exists{NNN}-{slug} where NNN is the next sequential number (scan both .planning/todos/pending/ and .planning/todos/done/ for the highest existing number, increment by 1, zero-pad to 3 digits) and slug is generated via CLI:
pbr-tools slug-generate "{note text}"
Parse the JSON output to get the slug field..planning/todos/pending/{id}.md:---
title: "{note text}"
status: pending
priority: P2
source: "promoted from /pbr:note"
created: {YYYY-MM-DD}
theme: general
---
## Goal
{note text}
## Context
Promoted from quick note captured on {original date}.
## Acceptance Criteria
- [ ] {primary criterion derived from note text}
promoted: truePromoted note {N} to todo {id}: {note text}/pbr:note list of things → saves note "list of things" (subcommand only when list is the entire arg).planning/: Falls back to global ~/.claude/notes/ — works in any directory.planning/, suggests /pbr:new-projectlist shows last 10 when >20 active entries-2, -3 etc. to filename if slug already used on same date--global position: Stripped from anywhere — --global my idea and my idea --global both save "my idea" globallylist subcommandReference: skills/shared/error-reporting.md for branded error output patterns.
If 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 `/pbr:note list` to see available notes.
Reference: skills/shared/commit-planning-docs.md -- if planning.commit_docs is true, commit the note file.
.planning/ if it doesn't exist — fall back to global