with one click
kanban-gen-wiki
프로젝트의 전체 아키텍처, 목표, 주요 결정사항을 wiki/ 디렉토리에 합성하여 정리합니다. 첫 실행 시 전체 생성, update로 변경분 반영. 매 카드가 아닌 프로젝트 수준의 지식을 정리합니다.
Menu
프로젝트의 전체 아키텍처, 목표, 주요 결정사항을 wiki/ 디렉토리에 합성하여 정리합니다. 첫 실행 시 전체 생성, update로 변경분 반영. 매 카드가 아닌 프로젝트 수준의 지식을 정리합니다.
| name | kanban-gen-wiki |
| description | 프로젝트의 전체 아키텍처, 목표, 주요 결정사항을 wiki/ 디렉토리에 합성하여 정리합니다. 첫 실행 시 전체 생성, update로 변경분 반영. 매 카드가 아닌 프로젝트 수준의 지식을 정리합니다. |
Shared context: read
../kanban/shared.mdfor DB path and error handling.
/kanban-gen-wiki — 프로젝트 위키 초기 생성When to use: 프로젝트의 전체 맥락(아키텍처, 목표, 도메인 지식, 주요 결정)을 wiki/ 디렉토리에 정리하고 싶을 때.
매 칸반 카드가 아닌, 프로젝트 수준의 지식을 합성한다.
이 스킬은 소스 코드를 수정하지 않는다.
/kanban-gen-wiki update — 변경분 반영When to use: 이미 wiki/가 존재하고, 이후 변경된 코드/칸반 상태를 반영하고 싶을 때.
CONFIG=$(cat .claude/kanban.json 2>/dev/null || cat .codex/kanban.json 2>/dev/null)
PROJECT=$(echo "$CONFIG" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['project'])" 2>/dev/null || basename "$(pwd)")
DB="$HOME/.claude/kanban-dbs/${PROJECT}.db"
위키는 아래 4개 소스를 읽어서 합성한다. 소스 자체는 수정하지 않는다.
| 소스 | 읽는 것 | 왜 |
|---|---|---|
| 칸반 프로젝트 | project metadata (purpose, brief, stack) + 보드 요약 (todo/done 비율, 마일스톤) | 현재 목표와 진행 상태 |
| 칸반 카드 (선별) | exploration report 태그 카드 + done 카드 중 decision_log가 있는 것만 | 주요 아키텍처 결정만 (구현 디테일 제외) |
| 프로젝트 파일 | CLAUDE.md, README.md, .claude/rules/, claudeos-core/standard/ (있으면) | 코딩 규칙, 아키텍처 정의 |
| 코드 구조 | 디렉토리 트리, package.json, 주요 config 파일 | 기술 스택, 의존성 |
칸반 카드를 전수 조사하지 않는다. 아래 조건에 해당하는 카드만 읽는다:
tags에 explore-report 포함 → description 전문 읽기decision_log가 비어있지 않은 done 카드 → decision_log만 읽기 (impl_notes, review_comments 무시)이 기준으로 보통 전체 카드의 20-30%만 읽게 된다.
wiki/wiki/
├── INDEX.md # 진입점 — 프로젝트 개요 + 토픽 링크
├── architecture.md # 시스템 아키텍처, 기술 스택, 데이터 흐름
├── goals.md # 현재 목표, 마일스톤, 로드맵 (칸반 상태 기반)
├── decisions.md # 주요 아키텍처 결정 이력 (exploration + decision_log 합성)
└── domains/ # 도메인별 지식 (프로젝트마다 다름)
├── {domain-1}.md # 예: courses.md, auth.md, upload.md
├── {domain-2}.md
└── ...
모든 위키 파일은 아래 형식을 따른다:
---
topic: {토픽명}
generated: {ISO timestamp}
sources: {소스 수}
---
# {토픽명}
## Summary
{2-3 문단. 이 파일만 읽어도 토픽을 이해할 수 있어야 함.}
## {토픽 고유 섹션}
{소스에서 합성한 내용. 구체적 사실 + 파일 경로 인용.}
## Open Questions
{아직 결정되지 않았거나 불확실한 사항.}
## Sources
- CLAUDE.md
- kanban #ID: {exploration report title}
- README.md
/kanban-gen-wiki)① 프로젝트 컨텍스트 수집
①-A 칸반 프로젝트 메타데이터 읽기:
sqlite3 -json "$DB" "SELECT * FROM projects WHERE id='$PROJECT'"
→ purpose, brief, stack, status, category 추출
→ projects 테이블이 비어있으면 CLAUDE.md/README.md에서 직접 추론
①-B 칸반 보드 요약 읽기:
sqlite3 -json "$DB" "SELECT id, title, status, priority, level, tags FROM tasks WHERE project='$PROJECT' ORDER BY status, rank, id"
→ 상태별 카드 수, 전체 진행률 파악
①-C 선별 카드 읽기 (노이즈 방지):
exploration report 카드 찾기:
sqlite3 -json "$DB" "SELECT id, title, description, tags FROM tasks WHERE project='$PROJECT' AND tags LIKE '%explore-report%'"
주요 결정 카드 찾기 (done + decision_log 있는 것만):
sqlite3 -json "$DB" "SELECT id, title, decision_log FROM tasks WHERE project='$PROJECT' AND status='done' AND decision_log IS NOT NULL AND decision_log != ''"
진행 중 카드:
보드 요약에서 todo/plan/impl 상태 카드의 title + priority만 사용.
①-D 프로젝트 파일 읽기:
- CLAUDE.md (프로젝트 루트)
- README.md (있으면)
- .claude/rules/ 전체 (있으면)
- claudeos-core/standard/ 전체 (있으면)
①-E 코드 구조 스캔:
- 최상위 디렉토리 목록 (`ls` — node_modules 등 제외)
- package.json (dependencies, scripts)
- 주요 config (tsconfig.json, next.config.ts 등)
② 토픽 구조 결정
수집한 소스를 기반으로 위키 토픽 구조를 결정한다.
고정 토픽 (모든 프로젝트):
- INDEX.md — 전체 개요
- architecture.md — 시스템 아키텍처
- goals.md — 현재 목표 + 마일스톤
- decisions.md — 주요 결정 이력
도메인 토픽 (프로젝트별 자동 결정):
- app/ 하위 라우트 그룹, components/ 하위 디렉토리, 또는
칸반 카드의 explore 태그에서 도메인 추출
- 도메인이 3개 미만이면 domains/ 디렉토리 생략, architecture.md에 통합
- 도메인이 8개 초과이면 관련 도메인 묶기 (예: upload + storage → data-pipeline)
토픽 구조를 사용자에게 제시하고 확인받기 (AskUserQuestion):
"다음 구조로 위키를 생성합니다. 수정할 토픽이 있나요?"
- 토픽 목록 표시
- "이대로 진행" / "토픽 수정" 선택
③ 위키 파일 생성
wiki/ 디렉토리 생성 후, 각 토픽 파일을 작성한다.
③-A INDEX.md 작성:
```markdown
---
topic: 프로젝트 개요
generated: {ISO timestamp}
sources: {총 소스 수}
---
# {프로젝트명} Wiki
> 마지막 생성: {날짜} | 토픽: {N}개 | 소스: {N}개
## 프로젝트 개요
{project purpose + brief 기반 2-3 문단}
## 기술 스택
{stack 정보 테이블}
## 토픽
| 토픽 | 설명 | 소스 수 |
|------|------|---------|
| [architecture](architecture.md) | 시스템 구조, 데이터 흐름 | N |
| [goals](goals.md) | 현재 목표, 진행 상태 | N |
| [decisions](decisions.md) | 주요 아키텍처 결정 | N |
| [{domain}](domains/{domain}.md) | {한 줄 설명} | N |
## 현재 상태 (칸반)
| 상태 | 카드 수 |
|------|---------|
| todo | N |
| in progress | N |
| done | N |
③-B architecture.md 작성: 소스: CLAUDE.md 아키텍처 섹션 + claudeos-core/standard/00.core/ + 코드 구조 스캔
③-C goals.md 작성: 소스: project brief (projects 테이블 또는 CLAUDE.md) + 칸반 보드 상태 + 진행 중 카드 제목
③-D decisions.md 작성: 소스: exploration report 카드 + done 카드의 decision_log
③-E domains/{domain}.md 작성 (각 도메인별): 소스: 해당 도메인의 코드 구조 + CLAUDE.md/rules 중 관련 부분 + 관련 칸반 카드
④ 완료 출력
생성된 파일 목록 + 각 파일의 소스 수 표시:
| 파일 | 소스 수 | 주요 소스 |
|---|---|---|
| INDEX.md | — | 전체 합성 |
| architecture.md | N | CLAUDE.md, standard/, package.json |
| goals.md | N | project brief, 칸반 보드 |
| decisions.md | N | exploration reports, decision_logs |
| domains/courses.md | N | app/courses/, components/courses/ |
Wiki generated: N files in
wiki/. Run/kanban-gen-wiki updateafter significant changes to refresh.
---
### Procedure: 업데이트 (`/kanban-gen-wiki update`)
① 변경 감지
①-A 현재 wiki/ 파일의 generated 타임스탬프 읽기 (frontmatter) → $LAST_GENERATED
①-B 변경된 소스 식별:
칸반 변경: sqlite3 -json "$DB" "SELECT id, title, decision_log FROM tasks WHERE project='$PROJECT' AND status='done' AND completed_at > '$LAST_GENERATED' AND decision_log IS NOT NULL AND decision_log != ''" → completed_at > $LAST_GENERATED인 done 카드 중 decision_log가 있는 것 → 새로 생성된 exploration report 카드 (created_at > $LAST_GENERATED, tags LIKE '%explore-report%') → projects 테이블의 brief 변경 여부 (CLAUDE.md mtime으로 대체 판단 가능)
파일 변경: → CLAUDE.md, README.md의 mtime > $LAST_GENERATED → .claude/rules/ 변경 여부 → 주요 디렉토리 구조 변경 (새 route, 새 component 디렉토리)
①-C 변경 없으면: "No changes detected since {$LAST_GENERATED}. Wiki is up to date." → 종료
② 영향받는 토픽 결정
변경된 소스 → 어떤 토픽이 영향받는지 매핑:
| 변경 소스 | 영향받는 토픽 |
|---|---|
| project brief 변경 | INDEX.md, goals.md |
| 새 done 카드 (decision_log) | decisions.md |
| 새 exploration report | decisions.md |
| CLAUDE.md 변경 | architecture.md, INDEX.md |
| .claude/rules/ 변경 | architecture.md, 해당 domain |
| 새 라우트/컴포넌트 디렉토리 | architecture.md, 새 domain 토픽 생성 |
| 칸반 보드 상태 변경 | goals.md |
변경 요약을 사용자에게 표시: "다음 토픽을 업데이트합니다:"
③ 선택적 재생성
영향받는 토픽만 재생성한다. 변경 없는 토픽은 그대로 유지.
재생성 시:
INDEX.md는 항상 재생성 (토픽 테이블, 칸반 상태 갱신).
④ 완료 출력
| 파일 | 상태 | 변경 사유 |
|---|---|---|
| INDEX.md | updated | 칸반 상태 갱신 |
| goals.md | updated | 3 new done cards |
| decisions.md | updated | 1 new exploration report |
| architecture.md | unchanged | — |
| domains/courses.md | unchanged | — |
Wiki updated: N files changed, M unchanged.
---
### Guardrails
- **소스 코드 수정 금지**: 이 스킬은 `wiki/` 디렉토리만 생성/수정한다
- **카드 전수 조사 금지**: 선별 기준(exploration report, decision_log 있는 done, 진행 중 title)만 읽는다
- **구현 디테일 제외**: implementation_notes, review_comments, test_results는 읽지 않는다
- **합성, 복사 아님**: 소스를 그대로 복사하지 않고, 프로젝트 수준으로 합성한다
- **기존 위키 보존**: update 시 변경 없는 토픽은 건드리지 않는다
- **SQLite 직접 접근**: 칸반 데이터는 `sqlite3` CLI로 읽는다
- **사용자 확인**: 초기 생성 시 토픽 구조를 사용자에게 확인받는다
Run multiple kanban tasks end-to-end in Rolling Wave order — refine each task based on the prior card's actual implementation, then implement, then verify, then refine the next. Use for epic-level batch execution. --big-bang flag disables rolling wave for simple independent tasks.
Codebase exploration skill for uncertain implementation direction. Deeply explores the codebase, produces a direction report, and creates phased kanban tasks. Use when you don't know exactly how to implement something. NOT for direct implementation.
Scan kanban boards for stagnant tasks and optionally mark them. Detects tasks with no agent activity for N days (default 3), outputs a markdown report table, and appends Heartbeat entries to agent_log unless --dry-run.
Refine backlog requirements through structured user interview. Turns rough task descriptions into concrete, actionable requirements with goal, scope, acceptance criteria, and edge cases.
Run the AI team pipeline for kanban tasks — orchestration loop with 6 agents (Planner, Critic, Builder, Shield, Inspector, Ranger), single-step execution, and code review. Use /kanban-run to execute tasks through the 7-column pipeline. AUTO-TRIGGER when: user says "implement task NNN" or any task ID + implement/build/do combination; or user confirms with "yes/ok/go/do it" after Claude proposes implementing a specific kanban task.
Initialize the current project in local SQLite kanban. Creates ~/.claude/kanban-dbs/{project}.db and writes local config. Usage: /kanban-init or /kanban-init my-project-name. Run with /kanban-init.