Simplify roadmap lock approval flow

This commit is contained in:
toki 2026-05-24 16:21:00 +09:00
parent 44636d7711
commit 520fedd0b4
10 changed files with 62 additions and 57 deletions

View file

@ -1 +1 @@
1.1.43 1.1.45

View file

@ -83,6 +83,8 @@ Phase와 Milestone에는 순번을 강제하지 않습니다. 진행 순서는 `
로드맵 문서는 `agent-ops/skills/common/_templates/roadmap-template.md`, `roadmap-current-template.md`, `roadmap-milestone-template.md` 형식을 기준으로 작성합니다. 해야 할 작업은 Milestone 문서의 `필수 기능` 체크리스트로 두고, 완료 여부를 검증하는 조건은 `완료 기준` 체크리스트로 둡니다. 로드맵 문서는 `agent-ops/skills/common/_templates/roadmap-template.md`, `roadmap-current-template.md`, `roadmap-milestone-template.md` 형식을 기준으로 작성합니다. 해야 할 작업은 Milestone 문서의 `필수 기능` 체크리스트로 두고, 완료 여부를 검증하는 조건은 `완료 기준` 체크리스트로 둡니다.
Milestone의 `구현 잠금`은 사용자 승인 없이 구현으로 내려가지 않기 위한 상태 기록입니다. 사용자가 해당 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 해제 승인으로 보고, `구현 잠금` 상태와 해제 근거만 갱신합니다. 이때 `필수 기능`이나 `완료 기준`은 자동 완료 처리하지 않습니다.
현재 작업 지점/남은 작업 분석 답변은 `agent-ops/skills/common/_templates/roadmap-position-report-template.md` 형식을 기준으로 작성합니다. 현재 작업 지점/남은 작업 분석 답변은 `agent-ops/skills/common/_templates/roadmap-position-report-template.md` 형식을 기준으로 작성합니다.
완료 또는 폐기되어 현재 작업 후보에서 제외할 과거 Milestone은 `agent-ops/roadmap/archive/YYYY/MM/`로 이동합니다. 이때 `ROADMAP.md`에는 `아카이브 Milestone 요약`만 남기고, 아카이브 문서는 사용자가 과거 기록 확인이나 복원을 명시적으로 요청한 경우에만 읽습니다. 완료 또는 폐기되어 현재 작업 후보에서 제외할 과거 Milestone은 `agent-ops/roadmap/archive/YYYY/MM/`로 이동합니다. 이때 `ROADMAP.md`에는 `아카이브 Milestone 요약`만 남기고, 아카이브 문서는 사용자가 과거 기록 확인이나 복원을 명시적으로 요청한 경우에만 읽습니다.

View file

@ -20,9 +20,9 @@
## 구현 잠금 ## 구현 잠금
- 선택한 Milestone에 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다. - 선택한 Milestone에 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 없이 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다.
- 단순 "진행", "구현", "계획 작성" 요청은 잠금을 해제하지 않는다. - 사용자가 선택한 Milestone에 대해 작업, 구현, 계획 작성, 잠금 해제를 명시하면 추가 체크리스트 없이 잠금 해제 승인으로 본다.
- 잠금 해제는 사용자가 Milestone 구체화 업데이트 또는 잠금 해제를 명시한 경우에만 검토한다. - 잠금 해제 시에는 `구현 잠금` 상태와 해제 근거만 갱신하고, `필수 기능`이나 `완료 기준`을 자동 완료 처리하지 않는다.
## 필수 기능 item-id ## 필수 기능 item-id

View file

@ -11,4 +11,4 @@
- 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Milestone을 선택하고 같은 세션에서 1회 읽는다. - 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Milestone을 선택하고 같은 세션에서 1회 읽는다.
- 활성 Milestone 둘 이상에 걸치면 필요한 Milestone 문서를 모두 읽고 작업 범위를 좁힌다. - 활성 Milestone 둘 이상에 걸치면 필요한 Milestone 문서를 모두 읽고 작업 범위를 좁힌다.
- 활성 Milestone 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. - 활성 Milestone 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 구현이나 구현 계획을 시작하지 않고, 먼저 Milestone 구체화 업데이트와 잠금 해제를 사용자에게 요청한다. - 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 없이 구현이나 구현 계획을 시작하지 않는다. 사용자가 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 Milestone 문서의 `구현 잠금` 상태와 해제 근거를 먼저 갱신한 뒤 요청한 작업을 이어간다.

View file

@ -15,10 +15,8 @@
## 구현 잠금 ## 구현 잠금
- 상태: <잠금 | 해제> - 상태: <잠금 | 해제>
- 이유: < 문서가 방향성/범위 정의인지, 구현 가능한 수준으로 구체화되었는지> - 이유: <사용자 승인 전인지, 사용자가 구현 진행 또는 잠금 해제를 승인했는지>
- 해제 조건: - 해제 근거: <잠금이면 없음, 해제면 사용자 승인 날짜/요청 요약>
- [ ] <구현 결정해야 책임 경계, API/프로토콜, 검증 기준, 선행 조건이 문서에 반영됨>
- [ ] <사용자가 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함>
- 잠금 중 금지: - 잠금 중 금지:
- 코드 구현 또는 `agent-task` 구현 계획 생성 - 코드 구현 또는 `agent-task` 구현 계획 생성
- API/DB/package/file 구조를 추측해 확정 - API/DB/package/file 구조를 추측해 확정

View file

@ -33,5 +33,5 @@
- 완료 또는 폐기되어 아카이브된 Milestone은 이 문서의 `아카이브 Milestone 요약`에 당시 요약만 남기고, 아카이브 문서 링크나 상세 경로는 남기지 않는다. - 완료 또는 폐기되어 아카이브된 Milestone은 이 문서의 `아카이브 Milestone 요약`에 당시 요약만 남기고, 아카이브 문서 링크나 상세 경로는 남기지 않는다.
- 상세 문서가 있는 `agent-ops/roadmap/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. - 상세 문서가 있는 `agent-ops/roadmap/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다.
- 아카이브된 Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다. - 아카이브된 Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다.
- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하지 않는다. - 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 없이 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하지 않는다.
- `구현 잠금`이 없거나 잠긴 Milestone은 사용자가 "진행"을 요청해도 우회하지 않고, 먼저 Milestone 문서의 구현 구체화와 잠금 해제를 사용자에게 요청한다. - 사용자가 선택된 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 Milestone 문서의 `구현 잠금` 상태와 해제 근거를 먼저 갱신한 뒤 요청한 작업을 이어간다.

View file

@ -1,6 +1,6 @@
--- ---
name: analyze-roadmap-position name: analyze-roadmap-position
version: 1.3.0 version: 1.4.0
description: "지금 작업이 뭐지?, 현재 작업 분석, 남은 작업 확인 요청에 대해 활성 Milestone과 코드 상태를 함께 읽어 현재 작업 지점, Milestone 문서 링크, 남은 일을 추정하는 읽기 전용 스킬" description: "지금 작업이 뭐지?, 현재 작업 분석, 남은 작업 확인 요청에 대해 활성 Milestone과 코드 상태를 함께 읽어 현재 작업 지점, Milestone 문서 링크, 남은 일을 추정하는 읽기 전용 스킬"
--- ---
@ -55,7 +55,7 @@ Milestone의 `필수 기능` 항목에 item-id가 있으면 남은 작업과 판
- 활성 Milestone의 목표, 범위, 완료 기준, 범위 제외 항목과 변경 파일/요청 내용을 비교한다. - 활성 Milestone의 목표, 범위, 완료 기준, 범위 제외 항목과 변경 파일/요청 내용을 비교한다.
- 활성 Milestone의 `필수 기능` 체크리스트를 확인하고, 관련 항목에 item-id가 있으면 판단 근거와 남은 작업에 item-id를 함께 기록한다. - 활성 Milestone의 `필수 기능` 체크리스트를 확인하고, 관련 항목에 item-id가 있으면 판단 근거와 남은 작업에 item-id를 함께 기록한다.
- 여러 Milestone 후보에서 같은 item-id가 보이면 item-id만으로 위치를 확정하지 말고 Milestone 이름과 문서 링크를 함께 제시한다. - 여러 Milestone 후보에서 같은 item-id가 보이면 item-id만으로 위치를 확정하지 말고 Milestone 이름과 문서 링크를 함께 제시한다.
- 활성 Milestone의 `구현 잠금` 섹션과 상태를 함께 확인한다. 섹션이 없거나 상태가 `잠금`이면 구현이나 구현 계획 전에 Milestone 구체화 업데이트가 필요하다고 보고한다. - 활성 Milestone의 `구현 잠금` 섹션과 상태를 함께 확인한다. 섹션이 없거나 상태가 `잠금`이면 사용자 승인 전 상태로 보고, 사용자가 작업/구현/계획 작성을 명시하면 추가 체크리스트 없이 로드맵에서 잠금 해제 가능하다고 보고한다.
- 하나의 Milestone에 명확히 속하면 단일 후보로 보고한다. - 하나의 Milestone에 명확히 속하면 단일 후보로 보고한다.
- 둘 이상의 Milestone에 걸치면 복수 후보로 보고하고, 어떤 파일이나 기능이 어느 Milestone에 닿는지 나눈다. - 둘 이상의 Milestone에 걸치면 복수 후보로 보고하고, 어떤 파일이나 기능이 어느 Milestone에 닿는지 나눈다.
- 활성 Milestone 밖으로 보이면 `ROADMAP.md`의 Milestone 목록을 확인하고 전환 또는 신규 Milestone 필요성을 제안한다. - 활성 Milestone 밖으로 보이면 `ROADMAP.md`의 Milestone 목록을 확인하고 전환 또는 신규 Milestone 필요성을 제안한다.

View file

@ -1,7 +1,7 @@
--- ---
name: create-roadmap name: create-roadmap
version: 1.6.1 version: 1.8.0
description: AI-first 개인/소규모 프로젝트의 전체 목표, Phase, 구현 구체화 잠금이 있는 순번 없는 Milestone 문서, 활성 Milestone 창을 처음 생성하는 공통 스킬 description: AI-first 개인/소규모 프로젝트의 전체 목표, Phase, 사용자 승인 기반 구현 잠금이 있는 순번 없는 Milestone 문서, 활성 Milestone 창을 처음 생성하는 공통 스킬
--- ---
# 로드맵 생성 # 로드맵 생성
@ -10,8 +10,8 @@ description: AI-first 개인/소규모 프로젝트의 전체 목표, Phase, 구
`agent-ops/roadmap/` 하위에 전체 목표 / Phase / Milestone 기반 한국어 로드맵 구조를 처음 생성한다. `agent-ops/roadmap/` 하위에 전체 목표 / Phase / Milestone 기반 한국어 로드맵 구조를 처음 생성한다.
전체 로드맵은 로드맵 설계와 갱신 때만 읽고, 일반 작업에서는 `current.md`의 활성 Milestone 창과 관련 Milestone 문서만 읽도록 공통 로드맵 룰을 따른다. 전체 로드맵은 로드맵 설계와 갱신 때만 읽고, 일반 작업에서는 `current.md`의 활성 Milestone 창과 관련 Milestone 문서만 읽도록 공통 로드맵 룰을 따른다.
Milestone은 구현 계획이 아니라 방향성, 범위, 선행 조건, 브레이킹 포인트를 잡는 게이트 문서로 시작한다. Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 사항을 기록하는 협업 문서로 시작한다.
구현 수준으로 구체화되지 않은 Milestone에는 `구현 잠금`을 걸어 사용자가 단순히 "진행"을 요청해도 코드 구현이나 `agent-task` 구현 계획으로 내려가지 않게 한다. 새 Milestone에는 기본적으로 `구현 잠금`을 걸어 사용자 승인 없이 코드 구현이나 `agent-task` 구현 계획으로 내려가지 않게 한다.
## 언제 호출할지 ## 언제 호출할지
@ -59,8 +59,8 @@ agent-ops/
- 새 Milestone 문서는 `agent-ops/skills/common/_templates/roadmap-milestone-template.md` 형식을 따른다. - 새 Milestone 문서는 `agent-ops/skills/common/_templates/roadmap-milestone-template.md` 형식을 따른다.
- 섹션 순서는 `목표`, `단계`, `상태`, `구현 잠금`, `범위`, `필수 기능`, `완료 기준`, `범위 제외`, `작업 컨텍스트`를 유지한다. - 섹션 순서는 `목표`, `단계`, `상태`, `구현 잠금`, `범위`, `필수 기능`, `완료 기준`, `범위 제외`, `작업 컨텍스트`를 유지한다.
- 새 Milestone은 사용자가 구현 구체화와 잠금 해제를 명시하지 않는 한 `구현 잠금` 상태를 `잠금`으로 둔다. - 새 Milestone은 사용자가 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하지 않는 한 `구현 잠금` 상태를 `잠금`으로 둔다.
- `구현 잠금`에는 이 문서가 방향성/범위 정의인지, 구현 가능한 수준인지, 잠금 해제 조건과 잠금 중 금지 사항을 적는다. - `구현 잠금`에는 상태, 이유, 사용자 승인 기반 해제 근거, 잠금 중 금지 사항을 적는다.
- `필수 기능`은 구현 파일/함수 단위 작업 목록이 아니라 Milestone에서 달성해야 할 capability 또는 산출물 체크리스트로 작성한다. 완료 근거가 명확한 항목만 `- [x]`로 표시한다. - `필수 기능`은 구현 파일/함수 단위 작업 목록이 아니라 Milestone에서 달성해야 할 capability 또는 산출물 체크리스트로 작성한다. 완료 근거가 명확한 항목만 `- [x]`로 표시한다.
- `필수 기능`의 각 체크리스트 항목은 `- [ ] [item-id] 설명` 형식을 사용한다. item-id는 사람이 타이핑하고 LLM이 참조하기 쉬운 공백 없는 짧은 ASCII 토큰으로 작성한다. - `필수 기능`의 각 체크리스트 항목은 `- [ ] [item-id] 설명` 형식을 사용한다. item-id는 사람이 타이핑하고 LLM이 참조하기 쉬운 공백 없는 짧은 ASCII 토큰으로 작성한다.
- item-id는 영문/숫자 segment 1~4개로 작성하고, segment 구분자는 `-`, `_`, `+`, `=`만 사용한다. 가능하면 1~3 segment를 우선하며, 전체 길이는 32자 이하를 권장한다. - item-id는 영문/숫자 segment 1~4개로 작성하고, segment 구분자는 `-`, `_`, `+`, `=`만 사용한다. 가능하면 1~3 segment를 우선하며, 전체 길이는 32자 이하를 권장한다.
@ -101,7 +101,7 @@ agent-ops/
- [ ] `agent-ops/skills/common/_templates/roadmap-milestone-template.md`를 읽어 최신 Milestone 형식 확인 - [ ] `agent-ops/skills/common/_templates/roadmap-milestone-template.md`를 읽어 최신 Milestone 형식 확인
- [ ] `agent-ops/rules/common/rules.md`가 로드맵 디렉터리 존재 시 `agent-ops/rules/common/rules-roadmap.md`를 읽도록 라우팅하는지 확인 - [ ] `agent-ops/rules/common/rules.md`가 로드맵 디렉터리 존재 시 `agent-ops/rules/common/rules-roadmap.md`를 읽도록 라우팅하는지 확인
- [ ] `agent-ops/rules/common/rules-roadmap.md`가 없으면 로드맵 룰이 설치되지 않은 상태로 보고하고, 프로젝트 전용 규칙에 마일스톤 컨텍스트 로딩 섹션을 추가하지 않는다 - [ ] `agent-ops/rules/common/rules-roadmap.md`가 없으면 로드맵 룰이 설치되지 않은 상태로 보고하고, 프로젝트 전용 규칙에 마일스톤 컨텍스트 로딩 섹션을 추가하지 않는다
- [ ] Milestone을 구현 계획으로 바로 사용할 수 있을 만큼 구체화하라고 사용자가 명시했는지 확인. 명시가 없으면 새 Milestone은 잠금으로 둔다. - [ ] 사용자가 Milestone 작업, 구현, 계획 작성, 또는 잠금 해제를 명시했는지 확인. 명시가 없으면 새 Milestone은 잠금으로 둔다.
## 실행 절차 ## 실행 절차
@ -119,8 +119,8 @@ agent-ops/
- 전체 목표는 프로젝트가 궁극적으로 만들려는 결과를 1~3문장으로 작성한다. - 전체 목표는 프로젝트가 궁극적으로 만들려는 결과를 1~3문장으로 작성한다.
- Phase는 큰 진화 단위로 나누고, 각 Phase에 목표를 둔다. - Phase는 큰 진화 단위로 나누고, 각 Phase에 목표를 둔다.
- Milestone은 Phase 안에서 완료 판단이 가능한 단위로 나눈다. - Milestone은 Phase 안에서 완료 판단이 가능한 단위로 나눈다.
- Milestone은 기본적으로 구현 계획이 아니라 구현 전 검토 게이트로 작성한다. - Milestone은 기본적으로 구현 계획이 아니라 방향성과 완료 판단 기준을 공유하는 문서로 작성한다.
- package, 함수, DB schema, API 필드, 파일 구조 같은 구현 세부는 사용자가 별도 설계 구체화를 요청하기 전까지 Milestone에 확정하지 않는다. - package, 함수, DB schema, API 필드, 파일 구조 같은 구현 세부는 사용자가 별도 상세 설계를 요청하기 전까지 Milestone에 확정하지 않는다.
- Phase와 Milestone은 순번 없이 이름으로만 작성하고, 순서는 문서의 위에서 아래 흐름으로 표현한다. - Phase와 Milestone은 순번 없이 이름으로만 작성하고, 순서는 문서의 위에서 아래 흐름으로 표현한다.
- 상태 값은 `계획`, `진행 중`, `완료`, `보류`, `폐기` 중 하나만 사용한다. - 상태 값은 `계획`, `진행 중`, `완료`, `보류`, `폐기` 중 하나만 사용한다.
@ -132,7 +132,7 @@ agent-ops/
- 새 로드맵의 `아카이브 Milestone 요약`은 아카이브된 항목이 없으면 `- 없음`으로 둔다. - 새 로드맵의 `아카이브 Milestone 요약`은 아카이브된 항목이 없으면 `- 없음`으로 둔다.
- 각 Milestone 문서는 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따른다. - 각 Milestone 문서는 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따른다.
- 각 Milestone 문서에 `구현 잠금` 섹션을 포함한다. - 각 Milestone 문서에 `구현 잠금` 섹션을 포함한다.
- 사용자가 해당 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인하지 않았으면 `구현 잠금` 상태는 `잠금`으로 작성한다. - 사용자가 해당 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시적으로 승인하지 않았으면 `구현 잠금` 상태는 `잠금`으로 작성한다.
- `필수 기능`과 그 하위 항목은 capability 또는 산출물 수준의 `- [ ] [item-id] 설명` 체크리스트로 작성한다. - `필수 기능`과 그 하위 항목은 capability 또는 산출물 수준의 `- [ ] [item-id] 설명` 체크리스트로 작성한다.
- 완료 근거가 확인된 항목만 `- [x]`로 표시하고, 근거가 없으면 체크하지 않는다. - 완료 근거가 확인된 항목만 `- [x]`로 표시하고, 근거가 없으면 체크하지 않는다.
- `완료 기준`도 검증 가능한 조건의 `- [ ]` 체크리스트로 작성한다. - `완료 기준`도 검증 가능한 조건의 `- [ ]` 체크리스트로 작성한다.
@ -159,7 +159,7 @@ agent-ops/
- [ ] `agent-ops/roadmap/milestones/` 하위에 순번 없는 Milestone 문서가 생성되었는가 - [ ] `agent-ops/roadmap/milestones/` 하위에 순번 없는 Milestone 문서가 생성되었는가
- [ ] `ROADMAP.md``아카이브 Milestone 요약` 섹션이 있고, 아카이브된 항목이 없으면 `- 없음`으로 표시했는가 - [ ] `ROADMAP.md``아카이브 Milestone 요약` 섹션이 있고, 아카이브된 항목이 없으면 `- 없음`으로 표시했는가
- [ ] 각 Milestone 문서가 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따르는가 - [ ] 각 Milestone 문서가 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따르는가
- [ ] 각 Milestone 문서에 `구현 잠금` 섹션이 있고, 구현 구체화가 없으면 상태가 `잠금`인가 - [ ] 각 Milestone 문서에 `구현 잠금` 섹션이 있고, 사용자 승인 근거가 없으면 상태가 `잠금`인가
- [ ] 각 Milestone 문서의 `필수 기능``완료 기준`이 체크리스트 형식인가 - [ ] 각 Milestone 문서의 `필수 기능``완료 기준`이 체크리스트 형식인가
- [ ] 각 Milestone 문서의 `필수 기능` 체크리스트 항목이 `- [ ] [item-id] 설명` 형식이고 item-id가 해당 Milestone 안에서 유일한가 - [ ] 각 Milestone 문서의 `필수 기능` 체크리스트 항목이 `- [ ] [item-id] 설명` 형식이고 item-id가 해당 Milestone 안에서 유일한가
- [ ] `ROADMAP.md`에 전체 로드맵을 일반 작업마다 읽지 말라는 로딩 정책이 포함되었는가 - [ ] `ROADMAP.md`에 전체 로드맵을 일반 작업마다 읽지 말라는 로딩 정책이 포함되었는가
@ -200,8 +200,8 @@ agent-ops/
- `current.md`에 개인별 현재 작업 위치나 완료 상태를 적지 않는다. - `current.md`에 개인별 현재 작업 위치나 완료 상태를 적지 않는다.
- Milestone 문서를 단순 TODO 목록으로만 만들지 않는다. 반드시 템플릿의 목표, 단계, 상태, 구현 잠금, 범위, 필수 기능, 완료 기준, 범위 제외, 작업 컨텍스트를 포함한다. - Milestone 문서를 단순 TODO 목록으로만 만들지 않는다. 반드시 템플릿의 목표, 단계, 상태, 구현 잠금, 범위, 필수 기능, 완료 기준, 범위 제외, 작업 컨텍스트를 포함한다.
- Milestone 문서에서 `구현 잠금` 섹션을 생략하지 않는다. - Milestone 문서에서 `구현 잠금` 섹션을 생략하지 않는다.
- 사용자의 명시적 구현 구체화/잠금 해제 승인 없이 새 Milestone을 `해제` 상태로 만들지 않는다. - 사용자의 명시적 작업/구현/계획 작성/잠금 해제 승인 없이 새 Milestone을 `해제` 상태로 만들지 않는다.
- Milestone을 구현 계획처럼 package/file/function 단위로 과도하게 구체화하지 않는다. - Milestone을 구현 계획처럼 package/file/function 단위로 과도하게 세분화하지 않는다.
- 해야 할 capability 또는 산출물을 일반 불릿이나 설명 문장에 숨기지 않는다. `필수 기능` 또는 그 하위 항목의 item-id가 있는 체크리스트로 작성한다. - 해야 할 capability 또는 산출물을 일반 불릿이나 설명 문장에 숨기지 않는다. `필수 기능` 또는 그 하위 항목의 item-id가 있는 체크리스트로 작성한다.
- 확정되지 않은 제품 방향을 사실처럼 단정하지 않는다. - 확정되지 않은 제품 방향을 사실처럼 단정하지 않는다.
- `agent-ops/rules/common/`이나 `agent-ops/skills/common/`을 타겟 프로젝트에서 직접 수정하지 않는다. - `agent-ops/rules/common/`이나 `agent-ops/skills/common/`을 타겟 프로젝트에서 직접 수정하지 않는다.

View file

@ -114,12 +114,12 @@ Otherwise, find active plan files with both globs, excluding `agent-task/archive
The routed plan file is the loop entry point. A missing active plan normally means only that no plan has been started for a new task; do not create task files for casual analysis, status, or review requests unless the user explicitly asks for a plan. The routed plan file is the loop entry point. A missing active plan normally means only that no plan has been started for a new task; do not create task files for casual analysis, status, or review requests unless the user explicitly asks for a plan.
로드맵 게이트: 로드맵 확인:
- `agent-ops/roadmap/current.md`가 있으면 구현 계획 파일을 만들기 전에 읽고, 사용자 요청, 브랜치, 변경 경로를 기준으로 관련 Milestone을 선택한다. - `agent-ops/roadmap/current.md`가 있으면 구현 계획 파일을 만들기 전에 읽고, 사용자 요청, 브랜치, 변경 경로를 기준으로 관련 Milestone을 선택한다.
- `current.md``agent-ops/roadmap/archive/**`를 가리키면 해당 문서는 읽지 말고 활성 Milestone이 아니라고 보고한다. - `current.md``agent-ops/roadmap/archive/**`를 가리키면 해당 문서는 읽지 말고 활성 Milestone이 아니라고 보고한다.
- 선택한 Milestone을 한 번 읽는다. `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 `PLAN-*-G??.md`, `CODE_REVIEW-*-G??.md`를 만들지 않고 file/API/package 수준의 구현 단계도 작성하지 않는다. - 선택한 Milestone을 한 번 읽는다. `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 근거 없이 `PLAN-*-G??.md`, `CODE_REVIEW-*-G??.md`를 만들지 않고 file/API/package 수준의 구현 단계도 작성하지 않는다.
- "진행", "그냥 구현", "계획 작성" 같은 사용자 지시는 Milestone 잠금을 해제하지 않는다. `구현 잠금`이 없거나 잠긴 Milestone을 보고하고, 먼저 roadmap update 흐름으로 Milestone 구체화 업데이트 또는 잠금 해제를 요청하게 한다. - 사용자가 선택한 Milestone의 작업, 구현, 계획 작성을 명시했다면 이를 잠금 해제 승인으로 보고, 같은 턴에서 먼저 roadmap update 흐름으로 `구현 잠금` 상태와 해제 근거만 갱신한 뒤 계획 작성을 이어간다. 추가 체크리스트는 요구하지 않는다.
- roadmap/current 파일이 없으면 기존 task routing 규칙대로 진행한다. - roadmap/current 파일이 없으면 기존 task routing 규칙대로 진행한다.
Use short snake_case task group names, e.g. `api_refactor`. Use short snake_case task group names, e.g. `api_refactor`.

View file

@ -1,7 +1,7 @@
--- ---
name: update-roadmap name: update-roadmap
version: 1.9.0 version: 1.11.0
description: 기존 전체 목표, Phase, 구현 구체화 잠금이 있는 순번 없는 Milestone 기반 한국어 로드맵을 갱신하고 신규 작업 배치, current.md 동기화, 완료/폐기 Milestone 아카이빙을 처리하는 공통 스킬 description: 기존 전체 목표, Phase, 사용자 승인 기반 구현 잠금이 있는 순번 없는 Milestone 기반 한국어 로드맵을 갱신하고 신규 작업 배치, current.md 동기화, 완료/폐기 Milestone 아카이빙을 처리하는 공통 스킬
--- ---
# 로드맵 업데이트 # 로드맵 업데이트
@ -10,8 +10,10 @@ description: 기존 전체 목표, Phase, 구현 구체화 잠금이 있는 순
기존 `agent-ops/roadmap/` 구조를 현재 프로젝트 방향과 진행 상태에 맞게 한국어로 갱신한다. 기존 `agent-ops/roadmap/` 구조를 현재 프로젝트 방향과 진행 상태에 맞게 한국어로 갱신한다.
로드맵 전체를 매 작업마다 읽지 않도록 유지하면서, `current.md`의 활성 Milestone 창이 실제 작업 후보 목록으로 동작하게 한다. 로드맵 전체를 매 작업마다 읽지 않도록 유지하면서, `current.md`의 활성 Milestone 창이 실제 작업 후보 목록으로 동작하게 한다.
Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트를 잡는 게이트 문서로 유지한다. Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 사항을 기록하는 협업 문서로 유지한다.
구현 구체화가 필요한 Milestone은 `구현 잠금` 상태를 `잠금`으로 두고, `구현 잠금` 섹션이 없는 Milestone도 구체화 상태 불명으로 보아 사용자가 단순히 "진행"을 요청해도 코드 구현이나 `agent-task` 구현 계획으로 내려가지 않게 한다. 구현 잠금은 사용자 승인 없이 코드 구현이나 `agent-task` 구현 계획으로 내려가지 않게 하는 장치다.
사용자가 해당 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 `구현 잠금`을 해제할 수 있다.
잠금 해제는 구현 시작 승인이지 Milestone 완료 판정이 아니므로 `필수 기능``완료 기준`을 자동 완료 처리하지 않는다.
완료 또는 폐기되어 현재 작업 후보에서 제외할 과거 Milestone은 `agent-ops/roadmap/archive/YYYY/MM/`로 이동하고, `ROADMAP.md`에는 아카이빙 당시 요약만 남긴다. 완료 또는 폐기되어 현재 작업 후보에서 제외할 과거 Milestone은 `agent-ops/roadmap/archive/YYYY/MM/`로 이동하고, `ROADMAP.md`에는 아카이빙 당시 요약만 남긴다.
아카이브된 Milestone은 최신 스킬 규약이나 템플릿에 맞춰 재포맷하지 않고, 사용자가 명시적으로 과거 기록 확인이나 복원을 요청한 경우에만 읽는다. 아카이브된 Milestone은 최신 스킬 규약이나 템플릿에 맞춰 재포맷하지 않고, 사용자가 명시적으로 과거 기록 확인이나 복원을 요청한 경우에만 읽는다.
@ -27,7 +29,7 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- `ROADMAP.md` 또는 `current.md` 형식이 템플릿과 달라 표준화해야 할 때 - `ROADMAP.md` 또는 `current.md` 형식이 템플릿과 달라 표준화해야 할 때
- Milestone 문서 형식이 제각각이라 템플릿 기준으로 표준화해야 할 때 - Milestone 문서 형식이 제각각이라 템플릿 기준으로 표준화해야 할 때
- 실제 구현 상태와 로드맵 파일이 어긋난 것 같아 동기화가 필요할 때 - 실제 구현 상태와 로드맵 파일이 어긋난 것 같아 동기화가 필요할 때
- 사용자가 Milestone의 구현 구체화, 구현 잠금 해제, 또는 잠금 상태 점검을 요청할 때 - 사용자가 Milestone의 방향/범위 보완, 구현 잠금 해제, 또는 잠금 상태 점검을 요청할 때
## 입력 ## 입력
@ -38,7 +40,8 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- `placement`: 새 작업 배치 위치. 예: `<anchor-milestone> 앞`, `<anchor-milestone> 뒤`, `<milestone-name> 안`, `<phase-name> 안`, `<anchor-task> 앞`, `<anchor-task> 아래`, `auto` (선택, 없으면 자동 판단) - `placement`: 새 작업 배치 위치. 예: `<anchor-milestone> 앞`, `<anchor-milestone> 뒤`, `<milestone-name> 안`, `<phase-name> 안`, `<anchor-task> 앞`, `<anchor-task> 아래`, `auto` (선택, 없으면 자동 판단)
- `placement-unit`: 삽입 단위. `milestone` / `task` / `subtask` / `auto` 중 하나 (선택, 없으면 작업 성격으로 판단) - `placement-unit`: 삽입 단위. `milestone` / `task` / `subtask` / `auto` 중 하나 (선택, 없으면 작업 성격으로 판단)
- `lock-state`: Milestone 구현 잠금 상태. `잠금` / `해제` 중 하나 (선택, 없으면 기존 상태 유지 또는 신규 Milestone은 잠금) - `lock-state`: Milestone 구현 잠금 상태. `잠금` / `해제` 중 하나 (선택, 없으면 기존 상태 유지 또는 신규 Milestone은 잠금)
- `concretization-evidence`: 구현 잠금 해제 근거가 되는 사용자 승인, 설계 문서, API/프로토콜 결정, 검증 기준 (선택) - `unlock-evidence`: 구현 잠금 해제 근거가 되는 사용자 승인 또는 문서화된 방향성 보완 (선택)
- `concretization-evidence`: `unlock-evidence`의 기존 이름. 새 문서에서는 `unlock-evidence`를 우선 사용한다 (선택)
- `change-summary`: 반영할 방향 변경 또는 진행 상황 요약 (선택) - `change-summary`: 반영할 방향 변경 또는 진행 상황 요약 (선택)
- `evidence`: 완료 판단에 사용할 파일, PR, 테스트, 커밋, 사용자 설명 (선택) - `evidence`: 완료 판단에 사용할 파일, PR, 테스트, 커밋, 사용자 설명 (선택)
- `archive-date`: Milestone 아카이브 날짜. 없으면 현재 날짜를 사용한다 (선택) - `archive-date`: Milestone 아카이브 날짜. 없으면 현재 날짜를 사용한다 (선택)
@ -53,7 +56,7 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
| `phase` | Phase 설명 또는 활성 Milestone 창 전환 | | `phase` | Phase 설명 또는 활성 Milestone 창 전환 |
| `replan` | 전체 Phase/Milestone 흐름 재구성 | | `replan` | 전체 Phase/Milestone 흐름 재구성 |
| `sync` | 실제 프로젝트 상태와 로드맵 불일치 점검 후 보정 | | `sync` | 실제 프로젝트 상태와 로드맵 불일치 점검 후 보정 |
| `concretize` | 잠긴 Milestone을 구현 가능한 수준으로 구체화하고 잠금 해제 여부를 결정 | | `concretize` | Milestone의 방향/범위를 보완하거나 사용자 승인에 따라 잠금 상태를 갱신 |
| `archive` | 완료 또는 폐기된 Milestone을 요약하고 `agent-ops/roadmap/archive/YYYY/MM/`로 이동 | | `archive` | 완료 또는 폐기된 Milestone을 요약하고 `agent-ops/roadmap/archive/YYYY/MM/`로 이동 |
## 작성 언어 ## 작성 언어
@ -93,9 +96,11 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- Milestone 문서는 `agent-ops/skills/common/_templates/roadmap-milestone-template.md` 형식을 기준으로 생성·갱신한다. - Milestone 문서는 `agent-ops/skills/common/_templates/roadmap-milestone-template.md` 형식을 기준으로 생성·갱신한다.
- 표준 섹션 순서는 `목표`, `단계`, `상태`, `구현 잠금`, `범위`, `필수 기능`, `완료 기준`, `범위 제외`, `작업 컨텍스트`다. - 표준 섹션 순서는 `목표`, `단계`, `상태`, `구현 잠금`, `범위`, `필수 기능`, `완료 기준`, `범위 제외`, `작업 컨텍스트`다.
- 갱신 범위에 포함된 Milestone 문서가 제각각 형식이면, 내용을 삭제하지 말고 표준 섹션 순서로 재배치한다. - 갱신 범위에 포함된 Milestone 문서가 제각각 형식이면, 내용을 삭제하지 말고 표준 섹션 순서로 재배치한다.
- 기존 Milestone에 `구현 잠금` 섹션이 없으면 추가한다. 구현 구체화가 명시되지 않았거나 구현 가능한 수준인지 불확실하면 `잠금`으로 둔다. - 기존 Milestone에 `구현 잠금` 섹션이 없으면 추가한다. 사용자 승인 근거가 없으면 `잠금`으로 둔다.
- `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 이 Milestone은 구현 계획이 아니라 범위/방향성 게이트다. 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다. - `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 전 상태로 보고, 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다.
- `구현 잠금``해제`하려면 사용자가 Milestone 구체화 업데이트 또는 잠금 해제를 명시해야 하며, 책임 경계, API/프로토콜, 검증 기준, 선행 조건이 문서에 반영되어야 한다. - `구현 잠금`은 사용자가 해당 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 `해제`로 바꿀 수 있다.
- 잠금 해제 시 `해제 근거`에는 사용자 승인 날짜와 요청 요약만 남기고, `필수 기능`이나 `완료 기준` 체크박스는 확인 가능한 evidence 없이 완료 처리하지 않는다.
- 기존 Milestone 문서에 잠금 해제를 위한 별도 체크리스트가 있으면 삭제하고, 필요한 사용자 승인 메모만 `해제 근거``작업 컨텍스트`에 남긴다.
- `필수 기능`은 구현 파일/함수 단위 작업 목록이 아니라 Milestone에서 달성해야 할 capability 또는 산출물 체크리스트로 유지한다. - `필수 기능`은 구현 파일/함수 단위 작업 목록이 아니라 Milestone에서 달성해야 할 capability 또는 산출물 체크리스트로 유지한다.
- `필수 기능`의 각 체크리스트 항목은 `- [ ] [item-id] 설명` 형식을 사용한다. item-id는 사람이 타이핑하고 LLM이 참조하기 쉬운 공백 없는 짧은 ASCII 토큰으로 작성한다. - `필수 기능`의 각 체크리스트 항목은 `- [ ] [item-id] 설명` 형식을 사용한다. item-id는 사람이 타이핑하고 LLM이 참조하기 쉬운 공백 없는 짧은 ASCII 토큰으로 작성한다.
- item-id는 영문/숫자 segment 1~4개로 작성하고, segment 구분자는 `-`, `_`, `+`, `=`만 사용한다. 가능하면 1~3 segment를 우선하며, 전체 길이는 32자 이하를 권장한다. - item-id는 영문/숫자 segment 1~4개로 작성하고, segment 구분자는 `-`, `_`, `+`, `=`만 사용한다. 가능하면 1~3 segment를 우선하며, 전체 길이는 32자 이하를 권장한다.
@ -138,12 +143,12 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
|-----------|-----------| |-----------|-----------|
| 새 Milestone | 독립적인 목표와 완료 기준이 필요하거나, 여러 기능을 묶는 산출물이고, 별도 상태 추적이 필요하며, Phase 흐름이나 선후 의존성에 의미 있는 경계를 만든다 | | 새 Milestone | 독립적인 목표와 완료 기준이 필요하거나, 여러 기능을 묶는 산출물이고, 별도 상태 추적이 필요하며, Phase 흐름이나 선후 의존성에 의미 있는 경계를 만든다 |
| 기존 Milestone의 태스크 | 기존 Milestone의 목표와 범위 안에 들어가며, 하나의 완료 가능한 capability/산출물이지만 별도 Milestone 상태 추적까지는 필요하지 않다 | | 기존 Milestone의 태스크 | 기존 Milestone의 목표와 범위 안에 들어가며, 하나의 완료 가능한 capability/산출물이지만 별도 Milestone 상태 추적까지는 필요하지 않다 |
| 기존 태스크의 하위 작업 | 잠금 해제된 Milestone에서 기존 태스크의 구현 세부, 보완, 테스트, 문서화, 예외 처리, 완료 기준 구체화처럼 부모 태스크를 완성하기 위한 세부 항목이다 | | 기존 태스크의 하위 작업 | 잠금 해제된 Milestone에서 기존 태스크의 구현 세부, 보완, 테스트, 문서화, 예외 처리, 완료 기준 보완처럼 부모 태스크를 완성하기 위한 세부 항목이다 |
| 작업 컨텍스트/TODO | 요구가 아직 불확실하거나 조사/확인이 먼저 필요해 필수 기능으로 확정하기 어렵다 | | 작업 컨텍스트/TODO | 요구가 아직 불확실하거나 조사/확인이 먼저 필요해 필수 기능으로 확정하기 어렵다 |
- 신규 Milestone은 기본적으로 `구현 잠금: 잠금`으로 생성한다. 사용자가 구현 구체화와 잠금 해제를 명시한 경우에만 `해제`를 검토한다. - 신규 Milestone은 기본적으로 `구현 잠금: 잠금`으로 생성한다. 사용자가 작업, 구현, 계획 작성, 또는 잠금 해제를 명시한 경우에만 `해제`를 반영한다.
- 잠긴 Milestone 안에 새 작업을 추가할 때는 구현 태스크가 아니라 capability, 결정 안건, 선행 조건, 완료 기준 후보로 작성한다. - 잠긴 Milestone 안에 새 작업을 추가할 때는 구현 태스크가 아니라 capability, 결정 안건, 확인 필요 사항, 완료 기준 후보로 작성한다.
- `구현 잠금`이 없거나 잠긴 Milestone에 대해 사용자가 "진행", "구현", "계획 작성"을 요청하면 로드맵을 우회하지 않는다. 먼저 Milestone 문서 구체화 업데이트와 잠금 해제를 요청한다. - `구현 잠금`이 없거나 잠긴 Milestone에 대해 사용자가 작업, 구현, 계획 작성을 명시하면 이를 잠금 해제 승인으로 보고 Milestone 문서의 상태와 해제 근거를 먼저 갱신한다.
- 위치 지정이 있으면 anchor의 레벨을 먼저 확인한다. `<anchor-task> 아래`처럼 하위 위치가 명시되면 기존 태스크 하위 항목으로 넣고, `<anchor-task> 앞/뒤`면 같은 목록 레벨의 형제 항목으로 넣는다. - 위치 지정이 있으면 anchor의 레벨을 먼저 확인한다. `<anchor-task> 아래`처럼 하위 위치가 명시되면 기존 태스크 하위 항목으로 넣고, `<anchor-task> 앞/뒤`면 같은 목록 레벨의 형제 항목으로 넣는다.
- 사용자가 item-id를 언급하면 해당 Milestone의 `필수 기능` 체크리스트에서 정확히 일치하는 item-id를 우선 매칭한다. 중복되거나 없으면 임의로 고르지 말고 확인한다. - 사용자가 item-id를 언급하면 해당 Milestone의 `필수 기능` 체크리스트에서 정확히 일치하는 item-id를 우선 매칭한다. 중복되거나 없으면 임의로 고르지 말고 확인한다.
- 여러 Milestone 후보에서 같은 item-id가 발견되면 item-id만으로 확정하지 말고 Milestone 이름이나 문서 경로를 확인한다. - 여러 Milestone 후보에서 같은 item-id가 발견되면 item-id만으로 확정하지 말고 Milestone 이름이나 문서 경로를 확인한다.
@ -173,14 +178,14 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- [ ] 로드맵 파일이 없으면 `create-roadmap` 스킬 사용을 안내하고 중단 - [ ] 로드맵 파일이 없으면 `create-roadmap` 스킬 사용을 안내하고 중단
- [ ] 완료 상태로 바꾸는 경우 사용자의 명시 또는 확인 가능한 evidence가 있는지 확인 - [ ] 완료 상태로 바꾸는 경우 사용자의 명시 또는 확인 가능한 evidence가 있는지 확인
- [ ] archive 모드이면 대상 Milestone이 `agent-ops/roadmap/milestones/` 하위에 있고, `ROADMAP.md`에 남길 요약 근거가 있는지 확인 - [ ] archive 모드이면 대상 Milestone이 `agent-ops/roadmap/milestones/` 하위에 있고, `ROADMAP.md`에 남길 요약 근거가 있는지 확인
- [ ] 대상 Milestone의 `구현 잠금` 상태를 확인. 섹션이 없거나 잠금 상태에서 구현/계획을 요청받은 경우 Milestone 구체화 업데이트가 먼저 필요함을 보고하고 구현으로 진행하지 않는다. - [ ] 대상 Milestone의 `구현 잠금` 상태를 확인. 섹션이 없거나 잠금 상태에서 작업/구현/계획 작성을 요청받은 경우 사용자 승인 근거로 상태를 해제할지 판단한다.
- [ ] 잠금 해제를 요청받은 경우 책임 경계, API/프로토콜, 검증 기준, 선행 조건이 Milestone 문서에 반영될 수 있는지 확인 - [ ] 잠금 해제를 반영하는 경우 추가 체크리스트를 요구하지 않고 사용자 승인 날짜와 요청 요약을 `해제 근거`에 남긴다.
## 실행 절차 ## 실행 절차
1. **갱신 범위 결정** 1. **갱신 범위 결정**
- 요청에서 mode, target Milestone, new feature, placement, placement-unit을 추론한다. - 요청에서 mode, target Milestone, new feature, placement, placement-unit을 추론한다.
- 요청이 Milestone 구체화 또는 잠금 해제이면 `concretize`로 본다. - 요청이 Milestone 방향/범위 보완, 잠금 해제, 또는 잠긴 Milestone의 작업/구현/계획 작성이면 `concretize`로 본다.
- 요청이 완료 또는 폐기된 Milestone을 과거 기록으로 넘기는 것이라면 `archive`로 본다. - 요청이 완료 또는 폐기된 Milestone을 과거 기록으로 넘기는 것이라면 `archive`로 본다.
- 로드맵 언어 전환, ROADMAP/current 형식 표준화, 또는 Milestone 형식 표준화 요청이면 `sync`로 보고 `ROADMAP.md`, `current.md`, `agent-ops/roadmap/milestones/` 하위 Milestone 문서를 갱신 범위에 포함할 수 있다. - 로드맵 언어 전환, ROADMAP/current 형식 표준화, 또는 Milestone 형식 표준화 요청이면 `sync`로 보고 `ROADMAP.md`, `current.md`, `agent-ops/roadmap/milestones/` 하위 Milestone 문서를 갱신 범위에 포함할 수 있다.
- `sync` 또는 템플릿 표준화 요청에서도 `agent-ops/roadmap/archive/**`는 갱신 범위에 포함하지 않는다. - `sync` 또는 템플릿 표준화 요청에서도 `agent-ops/roadmap/archive/**`는 갱신 범위에 포함하지 않는다.
@ -197,8 +202,8 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- `current.md`에 아카이브 경로가 있으면 해당 항목을 읽지 말고 제거 대상으로 기록한다. - `current.md`에 아카이브 경로가 있으면 해당 항목을 읽지 말고 제거 대상으로 기록한다.
- `ROADMAP.md``current.md`가 표준 템플릿 섹션 순서와 형식을 따르는지 확인한다. - `ROADMAP.md``current.md`가 표준 템플릿 섹션 순서와 형식을 따르는지 확인한다.
- 대상 또는 후보 Milestone 문서의 목표, 범위, 필수 기능, 완료 기준, 범위 제외 항목을 확인한다. - 대상 또는 후보 Milestone 문서의 목표, 범위, 필수 기능, 완료 기준, 범위 제외 항목을 확인한다.
- 대상 또는 후보 Milestone 문서의 `구현 잠금` 상태와 해제 조건을 확인한다. - 대상 또는 후보 Milestone 문서의 `구현 잠금` 상태와 해제 근거를 확인한다.
- `구현 잠금`이 없거나 잠긴 Milestone에 대한 구현, 구현 계획, 세부 API/파일 구조 확정 요청이면 수정으로 진행하지 않고 잠금 상태와 필요한 구체화 업데이트를 사용자에게 보고한다. - `구현 잠금`이 없거나 잠긴 Milestone에 대한 작업, 구현, 구현 계획 요청이면 사용자 승인으로 보고 같은 턴에서 `구현 잠금` 상태와 해제 근거를 먼저 갱신한 뒤 요청한 작업을 이어간다.
- 대상 Milestone 문서가 표준 템플릿 섹션 순서와 체크리스트 형식을 따르는지 확인한다. - 대상 Milestone 문서가 표준 템플릿 섹션 순서와 체크리스트 형식을 따르는지 확인한다.
- 대상 Milestone 문서의 `필수 기능` item-id 목록을 확인하고, 중복 또는 누락이 갱신 범위에 있으면 보정 대상으로 기록한다. - 대상 Milestone 문서의 `필수 기능` item-id 목록을 확인하고, 중복 또는 누락이 갱신 범위에 있으면 보정 대상으로 기록한다.
- 신규 작업과 이름, 산출물, 코드 경계, 완료 기준이 겹치는 기존 태스크가 있는지 확인한다. - 신규 작업과 이름, 산출물, 코드 경계, 완료 기준이 겹치는 기존 태스크가 있는지 확인한다.
@ -210,7 +215,7 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- 사용자가 순서 anchor를 지정했으면 같은 레벨의 앞/뒤 배치를 유지하고, 컨테이너 anchor를 지정했으면 컨테이너 안에서 작업 성격에 맞는 하위 단위를 선택한다. - 사용자가 순서 anchor를 지정했으면 같은 레벨의 앞/뒤 배치를 유지하고, 컨테이너 anchor를 지정했으면 컨테이너 안에서 작업 성격에 맞는 하위 단위를 선택한다.
- 위치 지정이 없으면 `ROADMAP.md`의 위아래 흐름, 현재 활성 Milestone, 선행되어야 할 작업, 후속 작업이 기대하는 산출물, 관련 코드/문서 경계, 기존 태스크와의 포함 관계를 기준으로 자동 배치한다. - 위치 지정이 없으면 `ROADMAP.md`의 위아래 흐름, 현재 활성 Milestone, 선행되어야 할 작업, 후속 작업이 기대하는 산출물, 관련 코드/문서 경계, 기존 태스크와의 포함 관계를 기준으로 자동 배치한다.
- 자동 배치는 "가장 빨리 할 수 있는 곳"이 아니라 "의존성과 완료 기준이 자연스럽게 이어지는 곳"을 우선한다. - 자동 배치는 "가장 빨리 할 수 있는 곳"이 아니라 "의존성과 완료 기준이 자연스럽게 이어지는 곳"을 우선한다.
- 대상 Milestone이 잠겨 있으면 새 항목은 구현 작업이 아니라 capability/산출물/결정 안건/선행 조건/완료 기준 후보로만 배치한다. - 대상 Milestone이 잠겨 있으면 새 항목은 구현 작업이 아니라 capability/산출물/결정 안건/확인 필요 사항/완료 기준 후보로만 배치한다.
- 잠금 해제된 Milestone에서 기존 태스크를 완성하는 세부 구현이면 하위 작업으로 넣고, 기존 태스크와 같은 수준의 독립 완료 항목이면 같은 Milestone의 태스크로 넣는다. - 잠금 해제된 Milestone에서 기존 태스크를 완성하는 세부 구현이면 하위 작업으로 넣고, 기존 태스크와 같은 수준의 독립 완료 항목이면 같은 Milestone의 태스크로 넣는다.
- 기존 Milestone의 목표/범위를 넓히거나 완료 기준을 과도하게 키우는 작업이면 새 Milestone으로 분리한다. - 기존 Milestone의 목표/범위를 넓히거나 완료 기준을 과도하게 키우는 작업이면 새 Milestone으로 분리한다.
- 사용자 지정 위치가 Phase 목표, Milestone 범위 제외, 명백한 선후 의존성과 충돌하면 수정 전에 충돌 내용을 알리고 방향을 확인한다. - 사용자 지정 위치가 Phase 목표, Milestone 범위 제외, 명백한 선후 의존성과 충돌하면 수정 전에 충돌 내용을 알리고 방향을 확인한다.
@ -230,11 +235,11 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- `current.md`에 개인별 현재 작업 위치나 완료 상태가 있으면 `current.md`에서는 제거하고 공유 로드맵으로 이관하지 않는다. 프로젝트에 의미 있는 근거가 명확한 내용만 관련 Milestone 문서나 작업 컨텍스트로 옮기고, 이관하지 않은 내용은 결과 보고의 확인 필요 항목에 남긴다. - `current.md`에 개인별 현재 작업 위치나 완료 상태가 있으면 `current.md`에서는 제거하고 공유 로드맵으로 이관하지 않는다. 프로젝트에 의미 있는 근거가 명확한 내용만 관련 Milestone 문서나 작업 컨텍스트로 옮기고, 이관하지 않은 내용은 결과 보고의 확인 필요 항목에 남긴다.
- Milestone 문서는 해당 Milestone의 목표, 범위, 필수 기능, 완료 기준, 범위 제외, 작업 컨텍스트가 바뀔 때 수정한다. - Milestone 문서는 해당 Milestone의 목표, 범위, 필수 기능, 완료 기준, 범위 제외, 작업 컨텍스트가 바뀔 때 수정한다.
- 갱신 대상 Milestone 문서가 표준 템플릿과 다르면 기존 내용을 보존하면서 템플릿 섹션 순서로 정리하고, 누락 섹션은 TODO 또는 확인 필요 표시와 함께 추가한다. - 갱신 대상 Milestone 문서가 표준 템플릿과 다르면 기존 내용을 보존하면서 템플릿 섹션 순서로 정리하고, 누락 섹션은 TODO 또는 확인 필요 표시와 함께 추가한다.
- 갱신 대상 Milestone 문서에 `구현 잠금` 섹션이 없으면 추가한다. 구현 구체화가 불충분하면 상태를 `잠금`으로 둔다. - 갱신 대상 Milestone 문서에 `구현 잠금` 섹션이 없으면 추가한다. 사용자 승인 근거가 없으면 상태를 `잠금`으로 둔다.
- `concretize` 모드에서는 구현 세부를 무작정 채우지 말고, 책임 경계, 결정 안건, API/프로토콜 후보, 검증 기준, 선행 조건, 범위 제외를 사용자와 합의된 수준으로만 반영한다. - `concretize` 모드에서는 구현 세부를 무작정 채우지 말고, 사용자 요청에 필요한 방향/범위 보완 또는 잠금 상태 갱신만 반영한다.
- `구현 잠금``해제`로 바꿀 때는 사용자 명시 승인 또는 문서화된 구체화 근거를 결과 보고에 남긴다. - `구현 잠금``해제`로 바꿀 때는 사용자 명시 승인 날짜와 요청 요약을 결과 보고에 남긴다. 이 갱신만으로 `필수 기능`이나 `완료 기준`을 완료 처리하지 않는다.
- 새 Milestone은 사용자 지정 또는 자동 판단 위치에 삽입하고, 기존 Milestone 이름이나 파일명을 순서 맞춤 목적으로 바꾸지 않는다. - 새 Milestone은 사용자 지정 또는 자동 판단 위치에 삽입하고, 기존 Milestone 이름이나 파일명을 순서 맞춤 목적으로 바꾸지 않는다.
- 새 Milestone은 사용자가 구현 구체화와 잠금 해제를 명시하지 않는 한 `구현 잠금` 상태를 `잠금`으로 작성한다. - 새 Milestone은 사용자가 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하지 않는 한 `구현 잠금` 상태를 `잠금`으로 작성한다.
- 기존 Milestone에 새 태스크를 넣는 경우 `필수 기능` 체크리스트에 사용자 지정 또는 자동 판단 위치로 삽입하고, 근거 없이 목록 맨 앞이나 맨 뒤에 붙이지 않는다. - 기존 Milestone에 새 태스크를 넣는 경우 `필수 기능` 체크리스트에 사용자 지정 또는 자동 판단 위치로 삽입하고, 근거 없이 목록 맨 앞이나 맨 뒤에 붙이지 않는다.
- 잠금 해제된 Milestone에서 기존 태스크의 하위 작업으로 넣는 경우 부모 태스크 아래의 하위 체크리스트로 작성하고, 부모 태스크의 의미가 바뀌면 부모 문장도 필요한 만큼만 보완한다. - 잠금 해제된 Milestone에서 기존 태스크의 하위 작업으로 넣는 경우 부모 태스크 아래의 하위 체크리스트로 작성하고, 부모 태스크의 의미가 바뀌면 부모 문장도 필요한 만큼만 보완한다.
- 새로 추가하거나 형식 보정 범위에 포함된 `필수 기능` 항목은 `- [ ] [item-id] 설명` 또는 `- [x] [item-id] 설명` 형식으로 작성한다. - 새로 추가하거나 형식 보정 범위에 포함된 `필수 기능` 항목은 `- [ ] [item-id] 설명` 또는 `- [x] [item-id] 설명` 형식으로 작성한다.
@ -278,7 +283,7 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- [ ] 갱신 대상 Milestone 문서가 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따르는가 - [ ] 갱신 대상 Milestone 문서가 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따르는가
- [ ] 갱신 대상 Milestone 문서에 `구현 잠금` 섹션이 있는가 - [ ] 갱신 대상 Milestone 문서에 `구현 잠금` 섹션이 있는가
- [ ] `구현 잠금`이 없거나 잠긴 Milestone에 구현 태스크, `agent-task` 계획, 세부 API/파일 구조 확정을 추가하지 않았는가 - [ ] `구현 잠금`이 없거나 잠긴 Milestone에 구현 태스크, `agent-task` 계획, 세부 API/파일 구조 확정을 추가하지 않았는가
- [ ] 잠금 해제한 경우 사용자 승인 또는 구체화 근거를 결과 보고에 남겼는가 - [ ] 잠금 해제한 경우 사용자 승인 날짜와 요청 요약을 결과 보고에 남겼는가
- [ ] 갱신 대상 Milestone 문서의 `필수 기능``완료 기준`이 체크리스트 형식인가 - [ ] 갱신 대상 Milestone 문서의 `필수 기능``완료 기준`이 체크리스트 형식인가
- [ ] 갱신 대상 Milestone 문서의 `필수 기능` 체크리스트 항목이 `- [ ] [item-id] 설명` 형식이고 item-id가 해당 Milestone 안에서 유일한가 - [ ] 갱신 대상 Milestone 문서의 `필수 기능` 체크리스트 항목이 `- [ ] [item-id] 설명` 형식이고 item-id가 해당 Milestone 안에서 유일한가
- [ ] 신규 작업이 사용자 지정 위치를 따랐거나, 위치 미지정 시 자동 배치 근거가 남아 있는가 - [ ] 신규 작업이 사용자 지정 위치를 따랐거나, 위치 미지정 시 자동 배치 근거가 남아 있는가
@ -336,9 +341,9 @@ Milestone은 구현 전 방향성, 범위, 선행 조건, 브레이킹 포인트
- 기존 순번 파일명을 대규모 rename하지 않는다. - 기존 순번 파일명을 대규모 rename하지 않는다.
- 신규 작업을 근거 없이 항상 새 Milestone으로 만들거나 맨 앞/맨 뒤에 추가하지 않는다. - 신규 작업을 근거 없이 항상 새 Milestone으로 만들거나 맨 앞/맨 뒤에 추가하지 않는다.
- 작업 성격과 기존 태스크 포함 관계를 확인하지 않고 모든 신규 작업을 같은 단위로 처리하지 않는다. - 작업 성격과 기존 태스크 포함 관계를 확인하지 않고 모든 신규 작업을 같은 단위로 처리하지 않는다.
- `구현 잠금`이 없거나 잠긴 Milestone에 대해 사용자의 단순 "진행" 요청만으로 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다. - `구현 잠금`이 없거나 잠긴 Milestone에 대해 사용자 승인 근거를 문서에 남기기 전에 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다.
- 사용자 명시 승인과 구체화 근거 없이 Milestone의 `구현 잠금``해제`로 바꾸지 않는다. - 사용자 명시 승인 없이 Milestone의 `구현 잠금``해제`로 바꾸지 않는다.
- 구현 구체화가 필요한 초기 Milestone을 구현 계획처럼 자세한 package/file/function 체크리스트로 채우지 않는다. - 초기 Milestone을 구현 계획처럼 자세한 package/file/function 체크리스트로 채우지 않는다.
- 사용자가 지정한 앞/뒤/아래 anchor 또는 대상 Phase/Milestone 컨테이너를 무시하지 않는다. - 사용자가 지정한 앞/뒤/아래 anchor 또는 대상 Phase/Milestone 컨테이너를 무시하지 않는다.
- Milestone 목표와 범위 제외 항목을 무시하고 태스크 체크리스트만 갱신하지 않는다. - Milestone 목표와 범위 제외 항목을 무시하고 태스크 체크리스트만 갱신하지 않는다.
- 해야 할 작업을 `필수 기능` 체크리스트 밖의 설명 문장에 숨기지 않는다. - 해야 할 작업을 `필수 기능` 체크리스트 밖의 설명 문장에 숨기지 않는다.