--- name: "writing-plans" description: "명세가 정해진 다단계 작업을 실행 계획으로 바꿉니다. 코드를 건드리기 전에 구체적인 구현 계획과 작업 순서를 작성해야 할 때 호출합니다." --- # 구현 계획 작성 이 스킬은 명세나 요구사항이 있는 작업을, 실제 엔지니어가 바로 수행할 수 있는 상세 구현 계획으로 바꾸기 위한 가이드입니다. ## 개요 계획은 코드베이스 맥락이 거의 없는 개발자도 이해할 수 있도록 충분히 구체적이어야 합니다. 어떤 파일을 수정할지, 어떤 테스트를 작성할지, 무엇을 어떤 순서로 검증할지까지 모두 포함해야 합니다. 핵심 원칙은 다음과 같습니다. - DRY - YAGNI - TDD - 잦은 커밋 - 작은 단계 계획 문서는 기본적으로 `docs/superpowers/plans/YYYY-MM-DD-.md` 에 저장합니다. 시작할 때는 현재 구현 계획 작성 단계에 들어왔음을 명확히 선언합니다. ## 범위 점검 - 명세가 여러 독립 하위 시스템을 포함한다면 계획도 분리합니다. - 하나의 계획은 자체적으로 구현, 테스트, 검증 가능한 범위를 가져야 합니다. - 하나의 계획만으로 독립적으로 완료 가능한 단위를 만드는 것이 목표입니다. ## 파일 구조 먼저 정의 작업을 나누기 전에 어떤 파일을 만들고 수정할지 먼저 정리합니다. - 각 파일은 하나의 명확한 책임만 가지게 설계합니다. - 함께 바뀌는 파일은 가까이 두고, 책임 기준으로 나눕니다. - 기존 코드베이스의 패턴을 따릅니다. - 지나치게 커진 파일을 다뤄야 한다면 계획 안에 분리 작업을 포함할 수 있습니다. - 분해 결정은 이 단계에서 고정하는 것이 좋습니다. 계획 후반에 파일 책임이 바뀌면 전체 작업이 흔들립니다. ## 작업 단위 규칙 각 단계는 2~5분 안에 수행 가능한 하나의 행동이어야 합니다. - 실패 테스트 작성 - 테스트를 실행해 실패 확인 - 최소 구현 작성 - 테스트를 실행해 통과 확인 - 커밋 이처럼 한 단계에는 한 행동만 담습니다. 좋은 계획은 "무엇을 할지"만 적지 않고, "어떻게 검증할지"까지 함께 적습니다. ## 계획 문서 헤더 모든 계획 문서는 다음 구조로 시작합니다. ```markdown # [기능명] 구현 계획 > **에이전트 작업자용:** 각 작업은 체크박스(`- [ ]`)로 추적합니다. **목표:** [이 기능이 무엇을 만드는지 한 문장] **아키텍처:** [접근 방식 2~3문장] **기술 스택:** [핵심 기술] --- ``` ## 작업 구조 각 작업은 아래 내용을 포함해야 합니다. - 대상 파일 경로 - 생성/수정/테스트 파일 구분 - 실제 테스트 코드 예시 - 실행 명령과 기대 결과 - 최소 구현 코드 예시 - 커밋 명령 예시 가능하다면 각 작업은 독립적으로 읽혀야 합니다. 작업을 순서대로 읽지 않아도 필요한 정보가 빠지지 않아야 합니다. ## 금지 사항 다음과 같은 placeholder는 허용하지 않습니다. - TBD - TODO - 나중에 구현 - 적절한 에러 처리 추가 - 위 내용을 테스트 작성 - Task N과 유사 - 방법 설명만 있고 실제 코드나 명령이 없는 단계 모든 단계는 실행에 필요한 실제 내용을 포함해야 합니다. 다음 표현도 피합니다. - 적당히 구현 - 필요하면 보완 - 상황에 맞게 처리 - 일반적인 에러 처리 추가 - 위 단계 참고 이런 표현은 실행 정보를 숨기기 때문에 계획 품질을 떨어뜨립니다. ## 자체 검토 계획 작성 후 아래를 스스로 점검합니다. 1. 명세의 모든 요구사항이 작업에 반영됐는가 2. placeholder나 빈칸이 남지 않았는가 3. 함수명, 타입, 시그니처, 속성명이 작업 간 일관적인가 빠진 요구사항이 있으면 즉시 작업을 추가합니다. 추가로 아래도 확인합니다. - 각 작업이 실제로 끝나는 단위인지 - 테스트나 검증 단계가 빠지지 않았는지 - 파일 경로가 모호하지 않은지 - 한 작업에 여러 행동이 뭉쳐 있지 않은지 ## 완료 후 인계 계획 저장 후에는 실행 방식을 사용자에게 선택하게 합니다. - 서브에이전트 기반 실행 - 현재 세션에서 인라인 실행 핵심은, 구현 전에 계획이 먼저 완성되고 검토 가능해야 한다는 점입니다. ## 기대 결과 이 스킬의 결과물은 다음을 만족해야 합니다. - 구현자가 문맥 없이도 작업을 시작할 수 있어야 합니다. - 각 작업은 체크리스트처럼 따라갈 수 있어야 합니다. - 테스트와 검증 명령이 포함되어 있어야 합니다. - 문서 안에 실행 가능한 수준의 구체성이 있어야 합니다.