| name | kanban-local |
| description | Local markdown-file kanban for toy and personal projects. No server, no PostgreSQL, no auth โ all state lives in KANBAN.md in the project root. Use for solo/small projects where the remote kanban board is overkill. Auto-trigger when KANBAN.md exists and user says "ํ์คํฌ ์ถ๊ฐ", "add task", "์นธ๋ฐ ๋ณด์ฌ์ค", "๋ค์ ํ ์ผ", "task list", or similar task-management phrases. Sub-commands: init, list, add, move, done, show, edit, refine, run, rm, stats. |
kanban-local
๋ก์ปฌ KANBAN.md ํ ํ์ผ๋ก ๋ชจ๋ ํ์คํฌ ์ํ ๊ด๋ฆฌ. ์๊ฒฉ DB, ์ธ์ฆ, ์๋ฒ ๋ถํ์.
Safety principles: read ../kanban/principles.md โ mandatory, not optional.
When to Use
- ํ ์ด ํ๋ก์ ํธ, ๊ฐ์ธ ์คํ ๋ ํฌ โ SQLite ์นธ๋ฐ์ด ๊ณผํ ๊ฒฝ์ฐ
- KANBAN.md๊ฐ ์๋ ๋๋ ํฐ๋ฆฌ์์ ํ์คํฌ ๊ด๋ จ ์์ฒญ์ด ์ค๋ ๊ฒฝ์ฐ
- ์ฌ์ฉํ์ง ๋ง ๊ฒ: ํ ๊ณต์ , ๋ฉํฐ-ํ๋ก์ ํธ ํตํฉ ๋ทฐ,
/kanban-run ์์ด์ ํธ ํ์ดํ๋ผ์ธ ํ์ ์ โ /kanban ์ฌ์ฉ
KANBAN.md ํ์ผ ํฌ๋งท
ํ์ผ์ ์๋จ: ๋ณด๋ ๊ฐ์, ํ๋จ: ํ์คํฌ ์์ธ ๋ ์น์
์ผ๋ก ๊ตฌ์ฑ๋๋ค.
---
project: <name>
last_id: 0
updated: YYYY-MM-DD
---
## todo
## doing
## review
## done
---
<!-- details -->
๋ณด๋ ๊ฐ์ โ ํ์คํฌ ๋ผ์ธ ํฌ๋งท
- #001 [high] Task title ยท tag1,tag2
#NNN: 3์๋ฆฌ zero-padded ID
[high|med|low]: ์ฐ์ ์์
ยท tags: ์ต์
, ์ผํ ๊ตฌ๋ถ
์๋ฃ ํ์คํฌ๋ strikethrough:
- ~~#004~~ [low] ~~Completed task~~ ยท 2026-05-23
์์ธ ๋ธ๋ก ํฌ๋งท (<!-- details --> ์๋)
### #001 ยท Task title
priority: high ยท tags: feat ยท created: 2026-05-23 ยท status: todo
**Goal**
What needs to happen.
**Acceptance Criteria**
- [ ] Criterion 1
---
๊ฐ ์์ธ ๋ธ๋ก์ ---๋ก ๋ซ๋๋ค.
Commands
/kanban-local init [name]
ํ์ฌ ๋๋ ํฐ๋ฆฌ์ KANBAN.md ์์ฑ.
KANBAN.md๊ฐ ์ด๋ฏธ ์์ผ๋ฉด ํ์ฌ ์ํ ํ์ ํ ์ค๋จ.
- ํ๋ก์ ํธ ์ด๋ฆ: ์ธ์ ์ ๊ณต ์ ์ฌ์ฉ, ์์ผ๋ฉด
basename $(pwd).
- Write ํด๋ก ๋น
KANBAN.md ์์ฑ (frontmatter + 4๊ฐ ์น์
ํค๋ + <!-- details -->).
- "KANBAN.md created for project
<name>." ํ์ธ.
์ด๊ธฐ KANBAN.md ํ
ํ๋ฆฟ:
---
project: <name>
last_id: 0
updated: <YYYY-MM-DD>
---
## todo
## doing
## review
## done
---
<!-- details -->
/kanban-local ๋๋ /kanban-local list
๋ณด๋ ํํฉ ํ์.
- Read ํด๋ก
KANBAN.md ์ฝ๊ธฐ.
- ๊ฐ ์น์
(
## todo, ## doing, ## review, ## done)์์ ํ์คํฌ ๋ผ์ธ ํ์ฑ.
- ์๋ ํ์์ผ๋ก ์ถ๋ ฅ:
## ๐ <project> โ Kanban
| ID | Status | Pri | Title | Tags |
|------|--------|------|--------------------------------|-------------|
| #003 | doing | high | Currently working on this | feat,api |
| #001 | todo | high | Task title one | feat |
| #002 | todo | med | Another task | bug |
ํ์ ์์: doing โ review โ todo โ done (done์ ์ต๊ทผ 5๊ฐ๋ง). ๋น ์น์
์ "(empty)" ํ์.
/kanban-local add <title>
์ ํ์คํฌ ์ถ๊ฐ.
- frontmatter์
last_id๋ฅผ ์ฝ๊ณ +1 โ ์ ID (3์๋ฆฌ zero-pad, ์: 007).
- AskUserQuestion์ผ๋ก ํ์ธ:
- ์ฐ์ ์์: high / med(๊ธฐ๋ณธ) / low
- ํ๊ทธ: ์ผํ ๊ตฌ๋ถ (์ ํ)
- Goal/์ค๋ช
: 1โ2๋ฌธ์ฅ (์ ํ, ์์ผ๋ฉด "(TBD)")
## todo ์น์
๋ง์ง๋ง์ ํ์คํฌ ๋ผ์ธ ์ถ๊ฐ:
- #NNN [<priority>] <title> ยท <tags>
<!-- details --> ์๋์ ์์ธ ๋ธ๋ก ์ถ๊ฐ:
### #NNN ยท <title>
priority: <p> ยท tags: <tags> ยท created: <YYYY-MM-DD> ยท status: todo
**Goal**
<description>
---
- frontmatter์
last_id์ updated ์
๋ฐ์ดํธ.
- "Added #NNN: โ todo." ํ์ธ.
/kanban-local move <ID> <status>
ํ์คํฌ๋ฅผ ๋ค๋ฅธ ์ด๋ก ์ด๋.
์ ํจํ status: todo | doing | review | done
- Read ํด๋ก
KANBAN.md ์ฝ๊ธฐ.
- ๋ชจ๋ ์น์
์์
- #NNN ๋๋ - ~~#NNN~~ ๋ผ์ธ ํ์.
- ํ์ฌ ์น์
์์ ํด๋น ๋ผ์ธ ์ ๊ฑฐ.
done์ผ๋ก ์ด๋ ์: strikethrough ์ ์ฉ (~~#NNN~~ [pri] ~~title~~), ๋ ์ง ์ถ๊ฐ ( ยท YYYY-MM-DD).
done์์ ๋ค๋ฅธ ์ํ๋ก ์ด๋ ์: strikethrough ์ ๊ฑฐ, ๋ ์ง ์ ๊ฑฐ.
- ๋์ ์น์
๋ง์ง๋ง์ ๋ผ์ธ ์ถ๊ฐ.
- ์์ธ ๋ธ๋ก์
status: <old> โ status: <new> ์
๋ฐ์ดํธ.
- frontmatter
updated ์
๋ฐ์ดํธ.
- "#NNN moved: โ ." ํ์ธ.
/kanban-local done <ID>
/kanban-local move <ID> done ๋จ์ถํค.
/kanban-local show <ID>
ํ์คํฌ ์์ธ ๋ธ๋ก ํ์.
KANBAN.md์์ ### #NNN ยท ํค๋ฉ ํ์.
- ํด๋น ํค๋ฉ๋ถํฐ ๋ค์
--- ์ ๊น์ง ์ถ๋ ฅ.
/kanban-local edit <ID>
ํ์คํฌ ํ๋ ์์ .
show๋ก ํ์ฌ ์ํ ํ์.
- AskUserQuestion์ผ๋ก ์์ ํ ํ๋ ํ์ธ (์ ๋ชฉ, ์ฐ์ ์์, ํ๊ทธ, goal, ์๋ฝ ๊ธฐ์ค).
- Edit ํด๋ก ์์ธ ๋ธ๋ก ์์ .
- ๋ณด๋ ๊ฐ์ ๋ผ์ธ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ง๊ฒ ์์ (์ ๋ชฉ/์ฐ์ ์์/ํ๊ทธ ๋ณ๊ฒฝ ์).
- frontmatter
updated ์
๋ฐ์ดํธ.
/kanban-local refine <ID>
๊ตฌ์กฐํ๋ ์๊ตฌ์ฌํญ ์ธํฐ๋ทฐ โ /kanban-refine์ ๊ฒฝ๋ ๋ฒ์ .
๋์: todo ์ํ ํ์คํฌ. doing/review ์ํ๋ฉด ๊ฒฝ๊ณ ํ ์งํ ์ฌ๋ถ ํ์ธ.
์ ์ฐจ:
โ show๋ก ํ์ฌ ์์ธ ๋ธ๋ก ์ฝ๊ธฐ.
โก ์๋ ์ฐจ์์์ ๊ฐญ ๋ถ์:
- WHAT: ์ ํํ ๋ฌด์์ ๋ง๋ค๊ฑฐ๋ ๋ฐ๊พธ๋๊ฐ?
- WHY: ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๊ฐ?
- SCOPE: ํฌํจ/์ ์ธ ๋ฒ์๋?
- ACCEPTANCE: ์๋ฃ๋ฅผ ์ด๋ป๊ฒ ํ๋จํ๋๊ฐ?
- EDGE CASES: ์๋ฌ ์ํ, ๊ฒฝ๊ณ ์กฐ๊ฑด?
โข AskUserQuestion์ผ๋ก ์ธํฐ๋ทฐ (1๋ผ์ด๋ ์ต๋ 4๊ฐ ์ง๋ฌธ, ์ต๋ 2๋ผ์ด๋).
- ์ด๋ฏธ ๋ช
ํํ ํญ๋ชฉ์ ๋ฌป์ง ์์.
- ์ฌ์ฉ์๊ฐ "์ถฉ๋ถํด", "enough" ํ๋ฉด ์กฐ๊ธฐ ์ข
๋ฃ.
โฃ ์์ธ ๋ธ๋ก์ ์๋ ํ
ํ๋ฆฟ์ผ๋ก ์ฌ์์ฑ:
### #NNN ยท <title>
priority: <p> ยท tags: <tags> ยท created: <date> ยท status: <status>
**Goal**
1โ2๋ฌธ์ฅ: ๋ฌด์์, ์.
**Scope**
- IN: ...
- OUT: ...
**Requirements**
1. ๊ตฌ์ฒด์ ์ด๊ณ ํ
์คํธ ๊ฐ๋ฅํ ์๊ตฌ์ฌํญ
2. ...
**Acceptance Criteria**
- [ ] ๊ฒ์ฆ ๊ฐ๋ฅํ ๊ธฐ์ค 1
- [ ] ...
**Edge Cases**
- ์์ง ์ผ์ด์ค (์๋ ๊ฒฝ์ฐ๋ง)
---
๋ด์ฉ ์๋ ์น์
์ ์๋ต.
โค ์ ์ ๋ ๋ด์ฉ์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๊ณ AskUserQuestion:
- "Approve & save" โ Edit ํด๋ก ์ ์ฅ
- "Edit more" โ ์ธํฐ๋ทฐ ์ฌ๊ฐ
- "Cancel" โ ๋ณ๊ฒฝ ํ๊ธฐ
โฅ ์ ์ฅ ์ frontmatter updated ์
๋ฐ์ดํธ.
/kanban-local run <ID>
ํ์คํฌ๋ฅผ ์ค์ ๋ก ์ํํ๋ฉด์ KANBAN.md์ ์งํ ๊ธฐ๋ก์ ๋จ๊ธด๋ค.
์์ด์ ํธ ํ์ดํ๋ผ์ธ ์์ด Claude๊ฐ ์ง์ ๊ตฌํํ๊ณ , ์์ธ ๋ธ๋ก์ ์์
๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๋ ๋ฐฉ์.
์ ์ฐจ:
โ KANBAN.md ์ฝ๊ธฐ โ show <ID>๋ก ์์ธ ๋ธ๋ก ํ์ธ.
- ์ํ๊ฐ
todo๊ฐ ์๋๋ฉด ํ์ฌ ์ํ๋ฅผ ์๋ฆฌ๊ณ ์งํ ์ฌ๋ถ ํ์ธ.
โก ํ์คํฌ๋ฅผ doing์ผ๋ก ์ด๋.
โข ์ค์ ์์
์ํ.
โฃ ์์
์๋ฃ ํ ์์ธ ๋ธ๋ก ๋ง๋ฌด๋ฆฌ.
- Acceptance Criteria ํญ๋ชฉ ์ค ์๋ฃ๋ ๊ฒ์
- [ ] โ - [x] ์ฒดํฌ.
**Implementation Notes** ์น์
์ Log ์๋์ ์ถ๊ฐ:
**Implementation Notes**
์๋ฃ๋ ์ฐ์ถ๋ฌผ๊ณผ ์์น๋ฅผ 1โ3์ค๋ก ์์ฝ.
์: "prompts/p1-hypothesis.md ์์ฑ. ์ฌ์ง๋ฌธ ์กฐ๊ฑด์ ๋ณ์ยท๋์ยท์งํ ์ค ํ๋๋ผ๋ ๋ถ๋ช
ํํ ๋๋ก ์ค์ ."
- Log์ ์๋ฃ ํญ๋ชฉ ์ถ๊ฐ:
- [YYYY-MM-DD] ์์
์๋ฃ
โค ํ์คํฌ๋ฅผ done์ผ๋ก ์ด๋.
- ๋ณด๋ ๊ฐ์ ๋ผ์ธ: strikethrough ์ ์ฉ + ๋ ์ง ์ถ๊ฐ.
- ์์ธ ๋ธ๋ก
status: doing โ status: done.
- frontmatter
updated ๊ฐฑ์ .
โฅ ์๋ฃ ์์ฝ ์ถ๋ ฅ:
โ
#NNN done โ <title>
์ฐ์ถ๋ฌผ: <ํ์ผ ๊ฒฝ๋ก ๋๋ ๊ฒฐ๊ณผ ์์ฝ>
Log ์์ฑ ์์น:
- ํ๋ฒํ ์งํ("ํ์ผ ์์ฑํจ")์ ์ฐ์ง ์๋๋ค.
- ๋จ๊ธธ ๊ฐ์น๊ฐ ์๋ ๊ฒ๋ง: ์ค๊ณ ๊ฒฐ์ , ํธ๋ ์ด๋์คํ, ๋งํ๋ค๊ฐ ํด๊ฒฐํ ์ง์ , ๋ค์ ํ์คํฌ๊ฐ ์์์ผ ํ ์ฌ์ค.
- ํ ์ค๋ก ์ถฉ๋ถํ๋ฉด ํ ์ค๋ง.
์ค๋จ/์คํจ ์ฒ๋ฆฌ:
/kanban-local stats
์ํ๋ณ ํ์คํฌ ์ ์์ฝ.
KANBAN.md ์ฝ๊ณ ๊ฐ ์น์
์ ํ์คํฌ ๋ผ์ธ ์ ์ง๊ณ.
- ์ถ๋ ฅ:
## Stats โ <project>
todo: N ยท doing: N ยท review: N ยท done: N ยท total: N
/kanban-local rm <ID> ๋๋ /kanban-local remove <ID>
ํ์คํฌ ์ญ์ .
- AskUserQuestion์ผ๋ก ์ญ์ ํ์ธ.
- ๋ณด๋ ๊ฐ์์์ ํด๋น ๋ผ์ธ ์ ๊ฑฐ.
- ์์ธ ๋ธ๋ก(
### #NNN ยท๋ถํฐ ๋ค์ ---๊น์ง) ์ ๊ฑฐ.
- frontmatter
updated ์
๋ฐ์ดํธ.
last_id๋ ๋ณ๊ฒฝํ์ง ์์ (ID ์ฌ์ฌ์ฉ ๊ธ์ง).
ํ์ผ ์กฐ์ ๊ท์น
- ํญ์ Read ํด๋ก
KANBAN.md ์ฝ์ ํ ์์ .
- ์์ ์ Edit ํด๋ก ํ๊ฒ ๋ณ๊ฒฝ. bash
sed/awk ์ฌ์ฉ ๊ธ์ง.
init ์์๋ง Write ํด ์ฌ์ฉ.
- ๋ชจ๋ ๋ณ๊ฒฝ ํ frontmatter์
updated ๋ ์ง ๊ฐฑ์ .
last_id๋ ๋จ๋ฐฉํฅ ์ฆ๊ฐ๋ง โ ์ญ์ ๋ ํ์คํฌ ID ์ฌ์ฌ์ฉ ๊ธ์ง.
- ํ์คํฌ ๋ผ์ธ ๊ตฌ๋ถ:
- #NNN ๋๋ - ~~#NNN~~ ํจํด.
- ์์ธ ๋ธ๋ก ๊ตฌ๋ถ:
### #NNN ยท ํค๋ฉ๋ถํฐ ๋ค์ ---๊น์ง.
Auto-trigger ์กฐ๊ฑด
KANBAN.md๊ฐ ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ์๊ณ ์๋ ํํ์ด ์ค๋ฉด /kanban-local ์๋ ํ์ฑํ:
- "ํ์คํฌ ์ถ๊ฐ", "์นธ๋ฐ ๋ณด์ฌ์ค", "๋ค์ ํ ์ผ", "ํ ์ผ ๋ชฉ๋ก"
- "add task", "task list", "show board", "what's next"