From better-skills
기능 개발 계획을 Phase 기반으로 수립(CREATE)하고, 기존 계획을 수정(UPDATE)하며, 완료 처리(COMPLETE)합니다. 각 Phase에 대한 verify 스킬을 자동 생성합니다. 기존 레포와 신규 레포 모두 지원합니다. 기능 구현, 개발 계획, 태스크 분해, 로드맵, TDD 전략, 계획 수정, 계획 완료, Phase 추가/삭제를 요청할 때 이 스킬을 사용하세요. 키워드: plan, 계획, phases, breakdown, strategy, roadmap, 설계, 구현, feature, 기능, update, 수정, complete, 완료.
How this skill is triggered — by the user, by Claude, or both
Slash command
/better-skills:feature-plannerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
기능 요구사항을 분석하여 Phase 기반 개발 계획을 수립합니다:
기능 요구사항을 분석하여 Phase 기반 개발 계획을 수립합니다:
이 스킬은 4가지 모드로 동작한다. 인수로 모드를 지정한다:
(인수 없음) → CREATE 모드 (새 계획 수립)
"update PLAN_auth" → UPDATE 모드 (기존 계획 수정)
"complete PLAN_auth" → COMPLETE 모드 (계획 완료 처리)
"list" → 기존 계획 목록 표시
기존 계획을 수정한다. 다음 시나리오를 지원한다:
Phase 추가/삽입:
skill-writer로 생성한다Phase 수정:
skill-writer UPDATE 모드로 수정한다Phase 삭제:
요구사항 변경:
모든 Phase가 완료된 계획의 PLAN 문서를 정리한다. 스킬 통합/삭제는 manage-skills의 책임이다.
스킬 정리(verify-phase-N- → 범용 스킬 통합, 불필요 스킬 삭제)는 이후 manage-skills가 수행한다.* feature-planner는 PLAN 문서 상태만 관리한다.
기존 계획 문서를 목록으로 표시하고, 복수 PLAN 간 충돌을 감지한다:
ls docs/plans/PLAN_*.md 2>/dev/null
Multi-PLAN Summary Table:
각 문서의 Status, Phase 진행률, 최종 검증 결과를 요약 테이블로 출력한다:
## 현재 계획 목록
| PLAN | Status | 진행률 | 현재 Phase | 최종 검증 | 수정 파일 수 |
|------|--------|--------|-----------|----------|-------------|
| PLAN_auth | 🔄 In Progress | 40% (2/5) | Phase 3 | ✅ 2026-03-15 | 12 |
| PLAN_search | 🔄 In Progress | 20% (1/5) | Phase 2 | ❌ 2026-03-16 | 8 |
| PLAN_ui | ✅ Completed | 100% (3/3) | — | ✅ 2026-03-14 | 15 |
파일 충돌 감지:
복수 PLAN이 동시에 🔄 In Progress인 경우, 각 PLAN의 Phase Tasks에서 수정 대상 파일(File(s) 필드)을 추출하여 교차 비교한다:
# 각 PLAN의 현재/미래 Phase에서 대상 파일 추출
grep -A2 "File(s):" docs/plans/PLAN_auth.md | grep '`' | sed 's/.*`\(.*\)`.*/\1/'
grep -A2 "File(s):" docs/plans/PLAN_search.md | grep '`' | sed 's/.*`\(.*\)`.*/\1/'
동일 파일을 둘 이상의 PLAN이 수정하려는 경우 충돌 경고를 표시한다:
### ⚠️ 파일 충돌 감지
다음 파일이 여러 PLAN에서 동시에 수정 대상입니다:
| 파일 | PLAN | Phase |
|------|------|-------|
| `src/middleware/auth.ts` | PLAN_auth | Phase 3 |
| `src/middleware/auth.ts` | PLAN_search | Phase 2 |
**권장 조치:**
- 충돌하는 Phase의 개발 순서를 조정하세요 (한쪽을 먼저 완료)
- 또는 파일을 분리하여 각 PLAN이 독립된 파일을 수정하도록 리팩토링하세요
충돌이 없으면 "충돌 없음 — 병렬 개발 안전" 메시지를 표시한다.
계획 수립에 앞서 프로젝트의 현재 상태를 파악한다. codebase-scanner Subagent를 실행하여 프로젝트를 분석한다.
사용하는 Subagent:
agents/codebase-scanner.md
먼저 레포의 상태를 판별한다:
# git 초기화 여부
git log --oneline -1 2>/dev/null
# 커밋 수 확인
git rev-list --count HEAD 2>/dev/null
# 소스 코드 존재 여부
ls src/ lib/ app/ 2>/dev/null
| 타입 | 조건 | 의미 |
|---|---|---|
| BRAND_NEW | git 미초기화 또는 커밋 0개 | 완전히 빈 레포 |
| FRESH_START | 커밋 5개 이하, 소스 코드 없음 | 초기 설정만 완료 |
| CONFIG_ONLY | 커밋 있음, 설정 파일만 존재 | CI/CD, 린터 등만 세팅 |
| EXISTING | 소스 코드 존재 | 이미 개발 진행 중인 레포 |
codebase-scanner에게 다음 분석 항목을 요청한다:
하나의 codebase-scanner 인스턴스가 모든 분석을 통합 수행하므로, 중복 파일 읽기가 없고 컨텍스트 공유가 자연스럽다.
분석 결과를 종합하여 프로젝트 컨텍스트를 구성한다. 감지된 정보를 아래 템플릿에 채워넣는다 (감지되지 않은 항목은 "미감지"로 표시):
## Project Context
- **레포 타입**: [BRAND_NEW / FRESH_START / CONFIG_ONLY / EXISTING]
- **언어/생태계**: [감지된 언어 및 런타임]
- **패키지 매니저**: [감지된 패키지 매니저]
- **테스트 프레임워크**: [감지된 테스트 프레임워크]
- **린터**: [감지된 린터/포매터]
- **타입 체커**: [감지된 타입 체커 또는 "해당 없음"]
- **CI/CD**: [감지된 CI/CD 또는 "미설정"]
- **테스트 명령어**: `[감지된 test 명령어]`
- **커버리지 명령어**: `[감지된 coverage 명령어]`
- **린트 명령어**: `[감지된 lint 명령어]`
- **빌드 명령어**: `[감지된 build 명령어]`
- **아키텍처**: [감지된 아키텍처 패턴 또는 "분석 필요"]
이 컨텍스트는 이후 Phase의 Quality Gate 검증 명령어를 자동으로 채워넣는 데 사용된다. 감지된 실제 명령어가 플레이스홀더 대신 들어간다.
| 레포 타입 | Phase 1 내용 | Quality Gate |
|---|---|---|
| BRAND_NEW | 프로젝트 스캐폴딩 (git init, 패키지 매니저 초기화, 디렉토리 구조) | AskUserQuestion으로 기술 스택 확인 후 설정 |
| FRESH_START | 핵심 기능부터 시작 (스캐폴딩 불필요) | 감지된 설정 파일에서 명령어 자동 추출 |
| CONFIG_ONLY | FRESH_START와 동일 + 기존 CI/CD 설정 반영 | 기존 도구 설정을 검증 명령어에 활용 |
| EXISTING | 기존 코드와 충돌하지 않는 설계, 기존 패턴 준수 | 기존 테스트/린터를 그대로 사용 |
BRAND_NEW인 경우, AskUserQuestion으로 사용자에게 기술 스택을 확인한다:
기능을 3-7개 Phase로 분해한다. 각 Phase는:
Phase 구조:
Phase N: [이름]
├── Goal: 이 Phase가 전달하는 동작하는 기능
├── Test Strategy: 테스트 타입, 커버리지 목표, 테스트 시나리오
├── Tasks:
│ ├── RED: 실패하는 테스트 먼저 작성
│ ├── GREEN: 테스트를 통과시키는 최소 구현
│ └── REFACTOR: 테스트가 통과하는 상태에서 코드 개선
├── Quality Gate: TDD 준수 + 검증 기준
├── Dependencies: 시작 전 필요한 것
└── Coverage Target: 이 Phase의 커버리지 목표
Phase 규모 가이드:
| 규모 | Phase 수 | 총 시간 | 예시 |
|---|---|---|---|
| Small | 2-3개 | 3-6시간 | 다크 모드 토글, 새 폼 컴포넌트 |
| Medium | 4-5개 | 8-15시간 | 사용자 인증, 검색 기능 |
| Large | 6-7개 | 15-25시간 | AI 검색, 실시간 협업 |
중요: AskUserQuestion을 사용하여 사용자의 명시적 승인을 받는다.
확인 사항:
사용자가 승인한 후에만 문서를 생성한다.
승인된 Phase 분해를 바탕으로 계획 문서를 직접 생성한다.
실행 절차:
skills/feature-planner/plan-template.md를 읽는다mkdir -p docs/plansdocs/plans/PLAN_<feature-name>.md로 저장한다작성 규칙:
[your test command] 같은 플레이스홀더를 남기지 않는다문서에 포함되는 내용:
UPDATE 시 계획 문서 수정 절차:
COMPLETE 시 계획 문서 완료 처리:
계획이 확정되면, 각 Phase의 Quality Gate를 기반으로 verify 스킬을 병렬로 생성한다.
각 Phase마다 skill-writer Subagent를 1개씩 실행하여 병렬 생성한다 (최대 7개 동시).
사용하는 Subagent:
agents/skill-writer.md
각 skill-writer에게 다음 정보를 전달한다:
생성할 verify 스킬의 구조:
---
name: verify-phase-N-<name>
description: Phase N (<이름>)의 Quality Gate를 검증합니다. <Phase 내용> 구현 후 사용.
---
필수 섹션:
병렬 실패 처리:
N개의 skill-writer 중 일부가 실패한 경우:
### ⚠️ Verify 스킬 생성 부분 실패
| Phase | 스킬 | 상태 |
|-------|------|------|
| Phase 1 | verify-phase-1-models | ✅ 생성 완료 |
| Phase 2 | verify-phase-2-api | ❌ 생성 실패 (수동 생성 필요) |
| Phase 3 | verify-phase-3-ui | ✅ 생성 완료 |
실패한 스킬 없이도 해당 Phase의 TDD 개발은 진행 가능하다. 검증 단계(Step 3c)에서 해당 스킬이 없으면 SKIP 처리된다.
모든 병렬 생성이 완료된 후 (부분 실패 포함), 성공한 스킬에 대해 .claude/skill-registry.json의 skills 배열에 새 스킬 객체를 추가한다 (SSOT — Single Source of Truth).
verify-implementation은 런타임에 skill-registry.json을 읽으므로, 별도 업데이트가 불필요하다.
각 Phase는 다음 Phase로 진행하기 전에 반드시 검증해야 한다. Step 0에서 감지한 실제 명령어를 사용한다.
커버리지 임계값은 프로젝트 특성에 따라 설정 가능하다. Step 0의 codebase-scanner가 기존 프로젝트의 커버리지 설정을 감지하여 자동으로 채운다. 감지되지 않으면 기본값을 사용한다:
| 설정 | 기본값 | 감지 소스 | 의미 |
|---|---|---|---|
| 전체 커버리지 목표 | 80% | jest.config의 coverageThreshold, .nycrc, pytest.ini 등 | 프로젝트 전체 라인 커버리지 |
| 신규 코드 커버리지 목표 | 80% | 전체 목표와 동일 (별도 설정이 없으면) | Phase에서 추가/수정된 파일 커버리지 |
| 커버리지 하락 허용 | No | — | Phase 전후 전체 커버리지 비교 |
BRAND_NEW 레포에서는 AskUserQuestion으로 사용자에게 커버리지 목표를 확인한다.
TDD Compliance (핵심 — verify-implementation이 자동 검증):
Build & Tests:
Code Quality:
Security & Performance:
각 리스크에 대해 문서화:
각 Phase에 대해 실패 시 복구 방법을 문서화:
| File | Purpose |
|---|---|
skills/dev/SKILL.md | 전체 파이프라인 오케스트레이터 (이 스킬을 자동 호출) |
skills/feature-planner/plan-template.md | 계획 문서 생성 템플릿 |
skills/verify-implementation/SKILL.md | 검증 실행 스킬 (생성된 verify 스킬 등록) |
skills/manage-skills/SKILL.md | 스킬 유지보수 (생성된 verify 스킬 등록) |
agents/codebase-scanner.md | Step 0 Subagent: 프로젝트 컨텍스트 통합 분석 |
agents/skill-writer.md | Step 5 Subagent: verify 스킬 생성 (병렬) |
docs/plans/PLAN_*.md | 생성된 계획 문서들 |
npx claudepluginhub ohdowon064/better-skills --plugin better-skillsProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.