Community코딩 & 개발github.com

기능 요구사항 제안

EARS 표기법을 사용하여 예제와 부록을 포함한 기능 요구사항 명세를 생성하거나 업데이트합니다.

기능 요구사항 제안란 무엇인가요?

이 스킬은 기능 개념을 구체적이고 테스트 가능한 요구사항 명세로 변환합니다. EARS (Easy Approach to Requirements Syntax) 표기법을 사용하여 기능적 요구사항, 비기능적 요구사항, 오류 처리 시나리오를 체계적으로 정의합니다. CLI 명령어를 통해 개념 문서 존재 여부를 확인하고, 아이디어 다듬기 문서에서 인사이트를 추출한 후 템플릿을 복사하여 요구사항을 작성합니다. 각 요구사항은 고유 ID 접두사를 가지며, WHILE/WHEN/WHERE/THEN/SHALL 키워드를 사용하여 명확하고 테스트 가능하게 기술됩니다. 큰 예제는 부록으로 분리하여 본문을 간결하게 유지합니다. 이 스킬은 Claude Code, Cursor 등 AI 에이전트가 기능 요구사항을 체계적으로 문서화할 때 유용하며, 이후 설계 단계로 원활히 이어질 수 있도록 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cbgbt/bottlerocket-forest/tree/main/skills/propose-feature-requirements

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

기능 요구사항 제안 스킬

목적

EARS 표기법을 사용하여 기능에 대한 공식 요구사항 명세를 작성합니다. 이는 개념을 테스트 가능하고 구체적인 요구사항으로 변환합니다.

사용 시기

  • 기능 개념이 존재하고 승인된 경우
  • 시스템이 정확히 무엇을 해야 하는지 명세해야 하는 경우
  • 기능적 및 비기능적 요구사항을 정의할 준비가 된 경우

전제 조건

  • 기능 개념 문서가 docs/features/NNNN-feature-name/concept.md에 존재
  • 개념이 검토 및 승인됨
  • 사용자가 기능 범위를 이해하고 있음

절차

1. 개념 문서 확인

# 개념 문서가 존재하는지 확인
ls ./docs/features/NNNN-feature-name/concept.md

존재하지 않는 경우, 먼저 propose-feature-concept 스킬을 사용하세요.

2. 아이디어 다듬기 문서 확인

ls ./planning/NNNN-feature-name/idea-honing.md 2>/dev/null

존재하는 경우, 요구사항에 도움이 되는 인사이트를 위해 검토하세요. Q&A는 엣지 케이스와 제약 조건을 드러낼 수 있습니다.

3. 요구사항 템플릿 복사

cp ./docs/features/0000-templates/requirements.md ./docs/features/NNNN-feature-name/

4. 요구사항 접두사 결정

요구사항 ID에 사용할 짧은 접두사(2-5자)를 선택하세요:

  • 기능을 설명할 수 있어야 함
  • 예: SEM (semantic-search), REG (registry-management)
  • SEM-1, SEM-2 등으로 사용됨

5. 개요 작성

이 명세가 다루는 내용을 간략히 설명하세요. 개념 문서를 참조하세요.

6. 기능적 요구사항 정의

각 요구사항에 대해 EARS 형식을 사용하세요:

**WHILE** [상태 또는 조건]
**WHEN** [트리거 또는 이벤트]
**THEN** 시스템은 **SHALL** [필요한 동작]

정말 작은 경우(1-3줄)에만 인라인 예제를 추가하세요:

key = "value"

더 큰 예제는 부록에 추가하세요.

7. 비기능적 요구사항 정의

성능, 사용성, 보안 또는 기타 품질 요구사항을 추가하세요:

**WHILE** [운영 조건]
**THEN** 시스템은 **SHALL** [성능 요구사항]

확장성 질문 (각 주요 작업에 대해 질문하세요):

  • 항목이 1000배 더 많아지면 어떻게 되나요? 100만 개 파일? 1000만 개 행?
  • 메모리 사용량이 데이터 크기에 따라 확장되어야 하나요, 아니면 일정하게 유지되어야 하나요?
  • 허용 가능한 지연 시간은 얼마인가요? 규모에 따라 성능이 저하되나요?

이 질문들은 설계 단계에서 중요 제약 조건이 될 제약 사항을 표면화합니다. 작업이 반드시 O(1) 메모리 또는 O(log n) 시간이어야 하는 경우 여기에 명시하세요.

8. 오류 처리 정의

오류가 처리되어야 하는 방식을 명세하세요:

**WHILE** [진행 중인 작업]
**WHERE** [오류 조건 발생]
**THEN** 시스템은 **SHALL** [오류 처리 동작]

9. 부록 추가

요구사항을 복잡하게 만드는 큰 예제를 위해:

  • API 응답 스키마
  • 설정 파일 형식
  • 데이터 구조
  • 프로토콜 명세

각 부록은 명확하게 레이블을 지정하세요:

## 부록 A: API 응답 스키마
## 부록 B: 설정 파일 형식

10. 완전성 검토

다음을 확인하세요:

  • 모든 요구사항이 EARS 키워드를 사용
  • 요구사항이 테스트 가능하고 구체적임
  • 인라인 예제가 정말 작음
  • 큰 예제는 부록에 있음
  • 요구사항에 선택한 접두사가 포함된 고유 ID가 있음

검증

요구사항 문서를 확인하세요:

# 파일 존재 확인
ls ./docs/features/NNNN-feature-name/requirements.md

# 내용 확인
head -50 ./docs/features/NNNN-feature-name/requirements.md

# EARS 키워드 확인
grep -E "WHILE|WHEN|WHERE|THEN|SHALL" ./docs/features/NNNN-feature-name/requirements.md

일반적인 문제

EARS 키워드 누락: 모든 요구사항은 WHILE/WHEN/WHERE/THEN/SHALL을 사용해야 합니다.

너무 모호함: 요구사항은 테스트할 수 있을 만큼 구체적이어야 합니다.

인라인 예제가 너무 큼: 3줄이 넘는 것은 부록으로 이동하세요.

일관되지 않은 접두사: 모든 요구사항 ID는 동일한 접두사를 사용해야 합니다.

다음 단계

요구사항 생성 후:

  1. 완전성과 테스트 가능성 검토
  2. 구현자로부터 피드백 받기
  3. 요구사항이 확정되면 propose-feature-design 스킬을 사용하여 설계로 이동

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

ad-hoc-implementation-plan

Transform a rough plan into implement-commit ready artifacts. Allows rigorous review while implementing.

build-kit-locally

Build a kit and publish it to a locally hosted registry for development testing

build-variant-from-local-kits

Build a variant using locally published kits for development validation

deep-research

Create educational documents that build understanding progressively with citations

edit-spec-file

Edit Bottlerocket RPM spec files following project style conventions

fact-find

Quick lookup of specific facts about Bottlerocket with citations

idea-honing

Clarify feature ideas through iterative Q&A, recording insights to guide concept development

implement-commit

Implement commits from an implementation plan using a TDD pipeline

local-registry

Start and manage a local OCI registry for Bottlerocket kit development

prepare-core-kit-release

Prepare bottlerocket-core-kit for release by bumping version and updating changelog

propose-feature-concept

Create a new feature concept document to pitch the idea and explain the problem/solution

propose-feature-design

Create or update feature technical design document with architecture and implementation guidance

propose-feature-test-plan

Create a test plan mapping EARS requirements and Critical Constraints to specific tests

propose-implementation-plan

Create an implementation plan with atomic commits that build toward a complete feature

review-code

Deep code review generating PR comments via principled question-driven analysis

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

review-style

Verify code follows project style guides without providing improvement suggestions

test-local-twoliter

Build and test local changes to twoliter before releasing

update-twoliter

Update all Bottlerocket repositories to a new Twoliter version

관련 스킬