기능 개념 제안 스킬
목적
기능 아이디어를 제안하고 해결하는 문제를 설명하는 기능 개념 문서를 작성합니다. 이는 기능 제안 프로세스의 첫 번째 단계입니다.
사용 시기
- 사용자가 crumbly, forester 또는 기타 forest 크레이트에 새 기능을 제안하려는 경우
- 기능 아이디어를 문서화하기 시작할 때
- 요구사항에 들어가기 전에 '왜'와 '무엇'을 설명해야 할 때
사전 조건
- 사용자가 기능 아이디어를 설명했음
절차
0. 아이디어 다듬기 제안 (선택 사항)
사용자에게 다음을 물어보세요:
개념을 더 명확하게 하기 위해 아이디어 다듬기 프로세스를 사용하시겠습니까? 이 과정은 모호함과 설계 고려 사항을 탐색하기 위해 질문을 하나씩 해결해 나가는 방식입니다.
예라고 답하면, skills/README.md의 프로토콜에 따라 idea-honing 스킬을 사용하세요. 아이디어 다듬기가 완료된 후 이 스킬로 돌아오세요.
1. 기능 번호 결정
다음 사용 가능한 기능 번호를 찾으세요:
ls -1d ./docs/features/[0-9][0-9][0-9][0-9]-* 2>/dev/null | tail -1
기능이 없으면 0001로 시작하세요. 그렇지 않으면 마지막 번호를 증가시키세요.
2. 기능 이름 생성
사용자와 협력하여 간결하고 설명적인 이름을 만드세요:
- 소문자와 하이픈 사용
- 짧게 유지 (2-4단어)
- 설명적이어야 함
예시: semantic-search, registry-management, skill-validation
3. 아이디어 다듬기 문서 확인
ls ./planning/NNNN-feature-name/idea-honing.md 2>/dev/null
존재하면 개념 작성 시 참고하세요. Q&A는 내러티브를 위한 귀중한 자료를 제공합니다.
4. 기능 디렉토리 생성
mkdir -p ./docs/features/NNNN-feature-name
NNNN을 네 자리 숫자로, feature-name을 합의된 이름으로 바꾸세요.
5. 개념 템플릿 복사
cp ./docs/features/0000-templates/concept.md ./docs/features/NNNN-feature-name/
6. 개념 문서 작성
사용자와 협력하여 concept.md를 서술 형식으로 작성하세요:
머리말
feature:를NNNN-feature-name으로 설정status:를proposed로 설정- 해당하는 경우
tracking-issue:를 선택적으로 추가
문제 섹션
- 현재 상황을 그림으로 그리세요
- 이것이 초래하는 고통을 설명하세요
- 이것이 왜 중요한지 설명하세요
해결책 섹션
- 사용자가 경험할 것을 설명하세요
- '어떻게'보다는 '무엇'과 '왜'에 초점을 맞추세요
- 목록이 아닌 서술 형식으로 유지하세요
작동 방식 섹션
- 기능을 사용하는 이야기를 들려주세요
- 워크플로우를 자연스럽게 안내하세요
- 추상적인 단계가 아닌 실제 사용 사례를 보여주세요
이점 섹션
- 제공되는 가치를 설명하세요
- 문제와 연결지으세요
- 가능해지는 것을 보여주세요
기술 참고 사항 섹션
- 간략한 제약 사항이나 고려 사항
- 짧게 유지하세요 - 세부 사항은 design.md에 들어갑니다
7. 내러티브 흐름 검토
문서가 다음을 충족하는지 확인하세요:
- 사양서가 아닌 이야기처럼 읽혀야 함
- 가능한 경우 글머리 기호와 번호 목록을 피함
- 사용자 경험과 가치에 초점을 맞춤
- '무엇'보다 '왜'를 먼저 설명함
검증
개념이 올바르게 생성되었는지 확인하세요:
# 디렉토리가 존재하는지 확인
ls -la ./docs/features/NNNN-feature-name/
# 개념 파일이 존재하는지 확인
ls ./docs/features/NNNN-feature-name/concept.md
# 내용이 있는지 확인
cat ./docs/features/NNNN-feature-name/concept.md
일반적인 문제
너무 기술적임: 개념이 설계 문서처럼 읽히면, 문제와 사용자 경험에 다시 초점을 맞추세요.
너무 추상적임: 개념이 모호하면, 사용자와 협력하여 구체적인 문제 사례를 추가하세요.
목록 중심: 글머리 기호가 많으면, 서술형 산문으로 다시 작성하세요.
다음 단계
개념 생성 후:
- 내러티브를 검토하고 다듬으세요
- 기능이 가치 있는지 피드백을 받으세요
- 개념이 확정되면
propose-feature-requirements스킬을 사용하여 요구사항으로 넘어가세요