From 40886538c33454b95bdfe27db441f70a76cd34e8 Mon Sep 17 00:00:00 2001 From: toki Date: Sun, 24 May 2026 16:37:45 +0900 Subject: [PATCH] sync: agent-ops from agentic-framework v1.1.46 --- agent-ops/.version | 2 +- agent-ops/rules/common/rules-roadmap.md | 8 +- .../_templates/roadmap-current-template.md | 2 +- .../_templates/roadmap-milestone-template.md | 8 +- .../roadmap-position-report-template.md | 1 + .../common/_templates/roadmap-template.md | 4 +- .../common/analyze-roadmap-position/SKILL.md | 6 +- .../skills/common/create-roadmap/SKILL.md | 27 ++++--- agent-ops/skills/common/plan/SKILL.md | 4 +- .../skills/common/update-roadmap/SKILL.md | 76 ++++++++++--------- 10 files changed, 73 insertions(+), 65 deletions(-) diff --git a/agent-ops/.version b/agent-ops/.version index 1027df1..b1468fd 100644 --- a/agent-ops/.version +++ b/agent-ops/.version @@ -1 +1 @@ -1.1.45 +1.1.46 diff --git a/agent-ops/rules/common/rules-roadmap.md b/agent-ops/rules/common/rules-roadmap.md index fcc5112..3c04009 100644 --- a/agent-ops/rules/common/rules-roadmap.md +++ b/agent-ops/rules/common/rules-roadmap.md @@ -20,9 +20,11 @@ ## 구현 잠금 -- 선택한 Milestone에 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 없이 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다. -- 사용자가 선택한 Milestone에 대해 작업, 구현, 계획 작성, 잠금 해제를 명시하면 추가 체크리스트 없이 잠금 해제 승인으로 본다. -- 잠금 해제 시에는 `구현 잠금` 상태와 해제 근거만 갱신하고, `필수 기능`이나 `완료 기준`을 자동 완료 처리하지 않는다. +- `구현 잠금`은 승인 의식이 아니라 사용자 결정이 필요한지 표시하는 얇은 상태다. +- 제품 방향, 범위, 우선순위, 설계 경계처럼 사용자 결정이 남아 있으면 상태를 `잠금`으로 두고 `결정 필요` 체크리스트에 질문을 적는다. +- 작업에 필요한 결정이 이미 충분히 정해져 에이전트가 실행만 하면 되는 Milestone은 상태를 `해제`로 둔다. +- 선택한 Milestone에 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하기 전에 `결정 필요` 항목을 사용자에게 확인한다. +- 잠금 상태를 바꾸더라도 `필수 기능`이나 `완료 기준`을 자동 완료 처리하지 않는다. ## 필수 기능 item-id diff --git a/agent-ops/skills/common/_templates/roadmap-current-template.md b/agent-ops/skills/common/_templates/roadmap-current-template.md index 535d0c6..f5283c5 100644 --- a/agent-ops/skills/common/_templates/roadmap-current-template.md +++ b/agent-ops/skills/common/_templates/roadmap-current-template.md @@ -11,4 +11,4 @@ - 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Milestone을 선택하고 같은 세션에서 1회 읽는다. - 활성 Milestone 둘 이상에 걸치면 필요한 Milestone 문서를 모두 읽고 작업 범위를 좁힌다. - 활성 Milestone 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. -- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 없이 구현이나 구현 계획을 시작하지 않는다. 사용자가 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 Milestone 문서의 `구현 잠금` 상태와 해제 근거를 먼저 갱신한 뒤 요청한 작업을 이어간다. +- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 구현이나 구현 계획을 시작하기 전에 `결정 필요` 체크리스트를 확인한다. 작업에 필요한 결정이 모두 정해져 있으면 Milestone 문서의 `구현 잠금` 상태를 `해제`로 둔다. diff --git a/agent-ops/skills/common/_templates/roadmap-milestone-template.md b/agent-ops/skills/common/_templates/roadmap-milestone-template.md index 768907d..3086945 100644 --- a/agent-ops/skills/common/_templates/roadmap-milestone-template.md +++ b/agent-ops/skills/common/_templates/roadmap-milestone-template.md @@ -15,12 +15,8 @@ ## 구현 잠금 - 상태: <잠금 | 해제> -- 이유: <사용자 승인 전인지, 사용자가 구현 진행 또는 잠금 해제를 승인했는지> -- 해제 근거: <잠금이면 없음, 해제면 사용자 승인 날짜/요청 요약> -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - API/DB/package/file 구조를 추측해 확정 - - 세부 구현 체크리스트를 완료 기준처럼 작성 +- 결정 필요: <없음 | 아래 체크리스트> + - [ ] <사용자 결정이 필요한 제품/범위/설계 질문> ## 범위 diff --git a/agent-ops/skills/common/_templates/roadmap-position-report-template.md b/agent-ops/skills/common/_templates/roadmap-position-report-template.md index 2a93ae8..05345d0 100644 --- a/agent-ops/skills/common/_templates/roadmap-position-report-template.md +++ b/agent-ops/skills/common/_templates/roadmap-position-report-template.md @@ -4,6 +4,7 @@ - Milestone 링크: [](agent-ops/roadmap/milestones/.md) - 신뢰도: <높음 | 중간 | 낮음> - 구현 잠금: <해제 | 잠금 | 정보 없음> +- 결정 필요: <없음 | 사용자 결정이 필요한 항목 요약> - 한 줄 결론: <현재 작업 지점과 가장 중요한 다음 판단을 1문장으로 요약> ## 판단 근거 diff --git a/agent-ops/skills/common/_templates/roadmap-template.md b/agent-ops/skills/common/_templates/roadmap-template.md index 36f6abe..9ef582d 100644 --- a/agent-ops/skills/common/_templates/roadmap-template.md +++ b/agent-ops/skills/common/_templates/roadmap-template.md @@ -33,5 +33,5 @@ - 완료 또는 폐기되어 아카이브된 Milestone은 이 문서의 `아카이브 Milestone 요약`에 당시 요약만 남기고, 아카이브 문서 링크나 상세 경로는 남기지 않는다. - 상세 문서가 있는 `agent-ops/roadmap/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. - 아카이브된 Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다. -- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 없이 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하지 않는다. -- 사용자가 선택된 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 Milestone 문서의 `구현 잠금` 상태와 해제 근거를 먼저 갱신한 뒤 요청한 작업을 이어간다. +- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하기 전에 `결정 필요` 체크리스트를 확인한다. +- 작업에 필요한 결정이 모두 정해져 에이전트가 실행만 하면 되는 Milestone은 `구현 잠금` 상태를 `해제`로 둔다. diff --git a/agent-ops/skills/common/analyze-roadmap-position/SKILL.md b/agent-ops/skills/common/analyze-roadmap-position/SKILL.md index b0d4c27..1633138 100644 --- a/agent-ops/skills/common/analyze-roadmap-position/SKILL.md +++ b/agent-ops/skills/common/analyze-roadmap-position/SKILL.md @@ -1,6 +1,6 @@ --- name: analyze-roadmap-position -version: 1.4.0 +version: 1.5.0 description: "지금 작업이 뭐지?, 현재 작업 분석, 남은 작업 확인 요청에 대해 활성 Milestone과 코드 상태를 함께 읽어 현재 작업 지점, Milestone 문서 링크, 남은 일을 추정하는 읽기 전용 스킬" --- @@ -55,7 +55,7 @@ Milestone의 `필수 기능` 항목에 item-id가 있으면 남은 작업과 판 - 활성 Milestone의 목표, 범위, 완료 기준, 범위 제외 항목과 변경 파일/요청 내용을 비교한다. - 활성 Milestone의 `필수 기능` 체크리스트를 확인하고, 관련 항목에 item-id가 있으면 판단 근거와 남은 작업에 item-id를 함께 기록한다. - 여러 Milestone 후보에서 같은 item-id가 보이면 item-id만으로 위치를 확정하지 말고 Milestone 이름과 문서 링크를 함께 제시한다. - - 활성 Milestone의 `구현 잠금` 섹션과 상태를 함께 확인한다. 섹션이 없거나 상태가 `잠금`이면 사용자 승인 전 상태로 보고, 사용자가 작업/구현/계획 작성을 명시하면 추가 체크리스트 없이 로드맵에서 잠금 해제 가능하다고 보고한다. + - 활성 Milestone의 `구현 잠금` 섹션, 상태, `결정 필요` 항목을 함께 확인한다. 섹션이 없거나 상태가 `잠금`이면 사용자 결정이 필요한 항목을 보고하고, 결정이 모두 정해진 작업이면 로드맵에서 해제 가능하다고 보고한다. - 하나의 Milestone에 명확히 속하면 단일 후보로 보고한다. - 둘 이상의 Milestone에 걸치면 복수 후보로 보고하고, 어떤 파일이나 기능이 어느 Milestone에 닿는지 나눈다. - 활성 Milestone 밖으로 보이면 `ROADMAP.md`의 Milestone 목록을 확인하고 전환 또는 신규 Milestone 필요성을 제안한다. @@ -84,7 +84,7 @@ Milestone 문서 경로를 찾지 못한 경우에도 링크 항목을 생략하 - [ ] `current.md`만 근거로 현재 위치를 단정하지 않았는가 - [ ] 활성 Milestone 문서의 목표와 범위 제외 항목을 확인했는가 - [ ] `agent-ops/roadmap/archive/**` 문서를 명시 요청 없이 읽지 않았는가 -- [ ] 활성 Milestone 문서의 `구현 잠금` 섹션 존재 여부와 상태를 확인했는가 +- [ ] 활성 Milestone 문서의 `구현 잠금` 섹션 존재 여부, 상태, `결정 필요` 항목을 확인했는가 - [ ] 추정 Milestone마다 문서 링크를 출력했는가 - [ ] 관련 `필수 기능` 항목에 item-id가 있으면 결과에 함께 표시했는가 - [ ] 변경 파일 또는 사용자 요청과 Milestone 판단 근거가 연결되어 있는가 diff --git a/agent-ops/skills/common/create-roadmap/SKILL.md b/agent-ops/skills/common/create-roadmap/SKILL.md index f7d5ed1..364db74 100644 --- a/agent-ops/skills/common/create-roadmap/SKILL.md +++ b/agent-ops/skills/common/create-roadmap/SKILL.md @@ -1,7 +1,7 @@ --- name: create-roadmap -version: 1.8.0 -description: AI-first 개인/소규모 프로젝트의 전체 목표, Phase, 사용자 승인 기반 구현 잠금이 있는 순번 없는 Milestone 문서, 활성 Milestone 창을 처음 생성하는 공통 스킬 +version: 1.9.0 +description: AI-first 개인/소규모 프로젝트의 전체 목표, Phase, 결정 필요 체크리스트 기반 구현 잠금이 있는 순번 없는 Milestone 문서, 활성 Milestone 창을 처음 생성하는 공통 스킬 --- # 로드맵 생성 @@ -11,7 +11,7 @@ description: AI-first 개인/소규모 프로젝트의 전체 목표, Phase, 사 `agent-ops/roadmap/` 하위에 전체 목표 / Phase / Milestone 기반 한국어 로드맵 구조를 처음 생성한다. 전체 로드맵은 로드맵 설계와 갱신 때만 읽고, 일반 작업에서는 `current.md`의 활성 Milestone 창과 관련 Milestone 문서만 읽도록 공통 로드맵 룰을 따른다. Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 사항을 기록하는 협업 문서로 시작한다. -새 Milestone에는 기본적으로 `구현 잠금`을 걸어 사용자 승인 없이 코드 구현이나 `agent-task` 구현 계획으로 내려가지 않게 한다. +새 Milestone의 `구현 잠금`은 사용자 결정이 필요한 항목이 있을 때만 잠금으로 둔다. 작업에 필요한 결정이 모두 정해져 에이전트가 실행만 하면 되는 Milestone은 해제 상태로 둔다. ## 언제 호출할지 @@ -59,8 +59,9 @@ agent-ops/ - 새 Milestone 문서는 `agent-ops/skills/common/_templates/roadmap-milestone-template.md` 형식을 따른다. - 섹션 순서는 `목표`, `단계`, `상태`, `구현 잠금`, `범위`, `필수 기능`, `완료 기준`, `범위 제외`, `작업 컨텍스트`를 유지한다. -- 새 Milestone은 사용자가 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하지 않는 한 `구현 잠금` 상태를 `잠금`으로 둔다. -- `구현 잠금`에는 상태, 이유, 사용자 승인 기반 해제 근거, 잠금 중 금지 사항을 적는다. +- 새 Milestone은 제품 방향, 범위, 우선순위, 설계 경계 등 사용자 결정이 남아 있으면 `구현 잠금` 상태를 `잠금`으로 둔다. +- 작업에 필요한 결정이 이미 충분히 정해져 에이전트가 실행만 하면 되는 Milestone은 `구현 잠금` 상태를 `해제`로 둔다. +- `구현 잠금`에는 상태와 `결정 필요` 체크리스트만 적는다. 결정할 항목이 없으면 `결정 필요: 없음`으로 적고, 별도 해제 근거/금지 목록을 만들지 않는다. - `필수 기능`은 구현 파일/함수 단위 작업 목록이 아니라 Milestone에서 달성해야 할 capability 또는 산출물 체크리스트로 작성한다. 완료 근거가 명확한 항목만 `- [x]`로 표시한다. - `필수 기능`의 각 체크리스트 항목은 `- [ ] [item-id] 설명` 형식을 사용한다. item-id는 사람이 타이핑하고 LLM이 참조하기 쉬운 공백 없는 짧은 ASCII 토큰으로 작성한다. - item-id는 영문/숫자 segment 1~4개로 작성하고, segment 구분자는 `-`, `_`, `+`, `=`만 사용한다. 가능하면 1~3 segment를 우선하며, 전체 길이는 32자 이하를 권장한다. @@ -101,7 +102,7 @@ agent-ops/ - [ ] `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-roadmap.md`가 없으면 로드맵 룰이 설치되지 않은 상태로 보고하고, 프로젝트 전용 규칙에 마일스톤 컨텍스트 로딩 섹션을 추가하지 않는다 -- [ ] 사용자가 Milestone 작업, 구현, 계획 작성, 또는 잠금 해제를 명시했는지 확인. 명시가 없으면 새 Milestone은 잠금으로 둔다. +- [ ] 각 Milestone에 사용자 결정이 필요한 제품 방향, 범위, 우선순위, 설계 경계가 남아 있는지 확인. 없으면 새 Milestone도 해제로 둔다. ## 실행 절차 @@ -121,6 +122,7 @@ agent-ops/ - Milestone은 Phase 안에서 완료 판단이 가능한 단위로 나눈다. - Milestone은 기본적으로 구현 계획이 아니라 방향성과 완료 판단 기준을 공유하는 문서로 작성한다. - package, 함수, DB schema, API 필드, 파일 구조 같은 구현 세부는 사용자가 별도 상세 설계를 요청하기 전까지 Milestone에 확정하지 않는다. + - 사용자 결정이 필요한 항목은 구현 세부로 확정하지 말고 `구현 잠금`의 `결정 필요` 체크리스트로 남긴다. - Phase와 Milestone은 순번 없이 이름으로만 작성하고, 순서는 문서의 위에서 아래 흐름으로 표현한다. - 상태 값은 `계획`, `진행 중`, `완료`, `보류`, `폐기` 중 하나만 사용한다. @@ -132,11 +134,12 @@ agent-ops/ - 새 로드맵의 `아카이브 Milestone 요약`은 아카이브된 항목이 없으면 `- 없음`으로 둔다. - 각 Milestone 문서는 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따른다. - 각 Milestone 문서에 `구현 잠금` 섹션을 포함한다. - - 사용자가 해당 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시적으로 승인하지 않았으면 `구현 잠금` 상태는 `잠금`으로 작성한다. + - 사용자 결정이 필요한 항목이 있으면 `구현 잠금` 상태는 `잠금`으로 작성하고, 필요한 결정을 체크리스트로 적는다. + - 작업에 필요한 결정이 모두 정해진 Milestone은 `구현 잠금` 상태를 `해제`로 작성하고, `결정 필요`는 `없음`으로 둔다. - `필수 기능`과 그 하위 항목은 capability 또는 산출물 수준의 `- [ ] [item-id] 설명` 체크리스트로 작성한다. - 완료 근거가 확인된 항목만 `- [x]`로 표시하고, 근거가 없으면 체크하지 않는다. - `완료 기준`도 검증 가능한 조건의 `- [ ]` 체크리스트로 작성한다. - - 미래 Milestone은 확정된 방향과 capability만 `필수 기능`에 넣고, 불확실한 구현 세부는 `작업 컨텍스트`의 확인 필요 항목으로 둔다. + - 미래 Milestone은 확정된 방향과 capability만 `필수 기능`에 넣는다. 사용자 결정이 필요한 불확실성은 `구현 잠금`의 `결정 필요` 체크리스트에 두고, 단순 조사나 참고 TODO만 `작업 컨텍스트`에 둔다. 5. **로드맵 룰 라우팅 확인** - `agent-ops/rules/common/rules.md`는 `agent-ops/roadmap/` 디렉터리가 있을 때만 `agent-ops/rules/common/rules-roadmap.md`를 읽도록 라우팅해야 한다. @@ -159,12 +162,13 @@ agent-ops/ - [ ] `agent-ops/roadmap/milestones/` 하위에 순번 없는 Milestone 문서가 생성되었는가 - [ ] `ROADMAP.md`에 `아카이브 Milestone 요약` 섹션이 있고, 아카이브된 항목이 없으면 `- 없음`으로 표시했는가 - [ ] 각 Milestone 문서가 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따르는가 -- [ ] 각 Milestone 문서에 `구현 잠금` 섹션이 있고, 사용자 승인 근거가 없으면 상태가 `잠금`인가 +- [ ] 각 Milestone 문서에 `구현 잠금` 섹션이 있고, 사용자 결정이 필요한 항목만 잠금 상태인가 +- [ ] 잠금 상태인 Milestone의 `구현 잠금` 섹션에 `결정 필요` 체크리스트가 있는가 - [ ] 각 Milestone 문서의 `필수 기능`과 `완료 기준`이 체크리스트 형식인가 - [ ] 각 Milestone 문서의 `필수 기능` 체크리스트 항목이 `- [ ] [item-id] 설명` 형식이고 item-id가 해당 Milestone 안에서 유일한가 - [ ] `ROADMAP.md`에 전체 로드맵을 일반 작업마다 읽지 말라는 로딩 정책이 포함되었는가 - [ ] 로딩 정책에 `agent-ops/roadmap/archive/**`를 명시 요청 없이 읽지 않는다는 규칙이 포함되었는가 -- [ ] 로딩 정책에 `구현 잠금`이 없거나 잠긴 Milestone의 구현/계획 시작 금지 규칙이 포함되었는가 +- [ ] 로딩 정책에 `구현 잠금`이 없거나 잠긴 Milestone의 `결정 필요` 체크리스트 확인 규칙이 포함되었는가 - [ ] `agent-ops/rules/common/rules.md`가 로드맵 디렉터리 존재 시 `rules-roadmap.md`를 읽도록 라우팅하는가 - [ ] `agent-ops/rules/common/rules-roadmap.md`가 로드맵 컨텍스트 로딩과 구현 잠금 규칙을 포함하는가 - 검증 실패 시: 누락된 파일이나 섹션만 보완하고 기존 내용을 덮어쓰지 않는다. @@ -200,7 +204,8 @@ agent-ops/ - `current.md`에 개인별 현재 작업 위치나 완료 상태를 적지 않는다. - Milestone 문서를 단순 TODO 목록으로만 만들지 않는다. 반드시 템플릿의 목표, 단계, 상태, 구현 잠금, 범위, 필수 기능, 완료 기준, 범위 제외, 작업 컨텍스트를 포함한다. - Milestone 문서에서 `구현 잠금` 섹션을 생략하지 않는다. -- 사용자의 명시적 작업/구현/계획 작성/잠금 해제 승인 없이 새 Milestone을 `해제` 상태로 만들지 않는다. +- 사용자 결정이 필요한 항목이 남아 있는데 새 Milestone을 `해제` 상태로 만들지 않는다. +- 작업에 필요한 결정이 모두 정해진 Milestone을 관성적으로 `잠금` 상태로 만들지 않는다. - Milestone을 구현 계획처럼 package/file/function 단위로 과도하게 세분화하지 않는다. - 해야 할 capability 또는 산출물을 일반 불릿이나 설명 문장에 숨기지 않는다. `필수 기능` 또는 그 하위 항목의 item-id가 있는 체크리스트로 작성한다. - 확정되지 않은 제품 방향을 사실처럼 단정하지 않는다. diff --git a/agent-ops/skills/common/plan/SKILL.md b/agent-ops/skills/common/plan/SKILL.md index b177e07..b21f2a5 100644 --- a/agent-ops/skills/common/plan/SKILL.md +++ b/agent-ops/skills/common/plan/SKILL.md @@ -118,8 +118,8 @@ The routed plan file is the loop entry point. A missing active plan normally mea - `agent-ops/roadmap/current.md`가 있으면 구현 계획 파일을 만들기 전에 읽고, 사용자 요청, 브랜치, 변경 경로를 기준으로 관련 Milestone을 선택한다. - `current.md`가 `agent-ops/roadmap/archive/**`를 가리키면 해당 문서는 읽지 말고 활성 Milestone이 아니라고 보고한다. -- 선택한 Milestone을 한 번 읽는다. `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 근거 없이 `PLAN-*-G??.md`, `CODE_REVIEW-*-G??.md`를 만들지 않고 file/API/package 수준의 구현 단계도 작성하지 않는다. -- 사용자가 선택한 Milestone의 작업, 구현, 계획 작성을 명시했다면 이를 잠금 해제 승인으로 보고, 같은 턴에서 먼저 roadmap update 흐름으로 `구현 잠금` 상태와 해제 근거만 갱신한 뒤 계획 작성을 이어간다. 추가 체크리스트는 요구하지 않는다. +- 선택한 Milestone을 한 번 읽는다. `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 `결정 필요` 항목을 확인하기 전에는 `PLAN-*-G??.md`, `CODE_REVIEW-*-G??.md`를 만들지 않고 file/API/package 수준의 구현 단계도 작성하지 않는다. +- 사용자가 선택한 Milestone의 작업, 구현, 계획 작성을 명시했고 작업에 필요한 결정이 모두 정해져 있다면, 같은 턴에서 먼저 roadmap update 흐름으로 `구현 잠금` 상태를 `해제`로 갱신한 뒤 계획 작성을 이어간다. 결정이 필요하면 그 항목을 체크리스트로 남기고 사용자에게 확인한다. - roadmap/current 파일이 없으면 기존 task routing 규칙대로 진행한다. Use short snake_case task group names, e.g. `api_refactor`. diff --git a/agent-ops/skills/common/update-roadmap/SKILL.md b/agent-ops/skills/common/update-roadmap/SKILL.md index 13deeb7..4f8c178 100644 --- a/agent-ops/skills/common/update-roadmap/SKILL.md +++ b/agent-ops/skills/common/update-roadmap/SKILL.md @@ -1,7 +1,7 @@ --- name: update-roadmap -version: 1.11.0 -description: 기존 전체 목표, Phase, 사용자 승인 기반 구현 잠금이 있는 순번 없는 Milestone 기반 한국어 로드맵을 갱신하고 신규 작업 배치, current.md 동기화, 완료/폐기 Milestone 아카이빙을 처리하는 공통 스킬 +version: 1.12.0 +description: 기존 전체 목표, Phase, 결정 필요 체크리스트 기반 구현 잠금이 있는 순번 없는 Milestone 기반 한국어 로드맵을 갱신하고 신규 작업 배치, current.md 동기화, 완료/폐기 Milestone 아카이빙을 처리하는 공통 스킬 --- # 로드맵 업데이트 @@ -11,9 +11,10 @@ description: 기존 전체 목표, Phase, 사용자 승인 기반 구현 잠금 기존 `agent-ops/roadmap/` 구조를 현재 프로젝트 방향과 진행 상태에 맞게 한국어로 갱신한다. 로드맵 전체를 매 작업마다 읽지 않도록 유지하면서, `current.md`의 활성 Milestone 창이 실제 작업 후보 목록으로 동작하게 한다. Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 사항을 기록하는 협업 문서로 유지한다. -구현 잠금은 사용자 승인 없이 코드 구현이나 `agent-task` 구현 계획으로 내려가지 않게 하는 장치다. -사용자가 해당 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 `구현 잠금`을 해제할 수 있다. -잠금 해제는 구현 시작 승인이지 Milestone 완료 판정이 아니므로 `필수 기능`과 `완료 기준`을 자동 완료 처리하지 않는다. +구현 잠금은 승인 절차가 아니라 사용자 결정이 필요한지 표시하는 얇은 상태다. +제품 방향, 범위, 우선순위, 설계 경계처럼 사용자 결정이 남아 있으면 `잠금`으로 두고 `결정 필요` 체크리스트에 질문을 적는다. +작업에 필요한 결정이 모두 정해져 에이전트가 실행만 하면 되는 Milestone은 `해제`로 둔다. +잠금 상태 변경은 Milestone 완료 판정이 아니므로 `필수 기능`과 `완료 기준`을 자동 완료 처리하지 않는다. 완료 또는 폐기되어 현재 작업 후보에서 제외할 과거 Milestone은 `agent-ops/roadmap/archive/YYYY/MM/`로 이동하고, `ROADMAP.md`에는 아카이빙 당시 요약만 남긴다. 아카이브된 Milestone은 최신 스킬 규약이나 템플릿에 맞춰 재포맷하지 않고, 사용자가 명시적으로 과거 기록 확인이나 복원을 요청한 경우에만 읽는다. @@ -39,9 +40,10 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - `new-feature`: 추가할 기능, 작업, 또는 새 Milestone 설명 (선택) - `placement`: 새 작업 배치 위치. 예: ` 앞`, ` 뒤`, ` 안`, ` 안`, ` 앞`, ` 아래`, `auto` (선택, 없으면 자동 판단) - `placement-unit`: 삽입 단위. `milestone` / `task` / `subtask` / `auto` 중 하나 (선택, 없으면 작업 성격으로 판단) -- `lock-state`: Milestone 구현 잠금 상태. `잠금` / `해제` 중 하나 (선택, 없으면 기존 상태 유지 또는 신규 Milestone은 잠금) -- `unlock-evidence`: 구현 잠금 해제 근거가 되는 사용자 승인 또는 문서화된 방향성 보완 (선택) -- `concretization-evidence`: `unlock-evidence`의 기존 이름. 새 문서에서는 `unlock-evidence`를 우선 사용한다 (선택) +- `lock-state`: Milestone 구현 잠금 상태. `잠금` / `해제` 중 하나 (선택, 없으면 기존 상태 유지 또는 결정 필요 여부로 판단) +- `decision-needed`: `구현 잠금`에 남길 사용자 결정 필요 질문 목록 (선택) +- `unlock-evidence`: 이전 문서 호환 입력. 새 문서에서는 별도 해제 근거 대신 필요한 사용자 결정이 남아 있는지로 상태를 판단한다 (선택) +- `concretization-evidence`: 이전 문서 호환 입력. 새 문서에서는 `decision-needed`를 우선 사용한다 (선택) - `change-summary`: 반영할 방향 변경 또는 진행 상황 요약 (선택) - `evidence`: 완료 판단에 사용할 파일, PR, 테스트, 커밋, 사용자 설명 (선택) - `archive-date`: Milestone 아카이브 날짜. 없으면 현재 날짜를 사용한다 (선택) @@ -56,7 +58,7 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 | `phase` | Phase 설명 또는 활성 Milestone 창 전환 | | `replan` | 전체 Phase/Milestone 흐름 재구성 | | `sync` | 실제 프로젝트 상태와 로드맵 불일치 점검 후 보정 | -| `concretize` | Milestone의 방향/범위를 보완하거나 사용자 승인에 따라 잠금 상태를 갱신 | +| `concretize` | Milestone의 방향/범위를 보완하거나 결정 필요 여부에 따라 잠금 상태를 갱신 | | `archive` | 완료 또는 폐기된 Milestone을 요약하고 `agent-ops/roadmap/archive/YYYY/MM/`로 이동 | ## 작성 언어 @@ -96,11 +98,11 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - Milestone 문서는 `agent-ops/skills/common/_templates/roadmap-milestone-template.md` 형식을 기준으로 생성·갱신한다. - 표준 섹션 순서는 `목표`, `단계`, `상태`, `구현 잠금`, `범위`, `필수 기능`, `완료 기준`, `범위 제외`, `작업 컨텍스트`다. - 갱신 범위에 포함된 Milestone 문서가 제각각 형식이면, 내용을 삭제하지 말고 표준 섹션 순서로 재배치한다. -- 기존 Milestone에 `구현 잠금` 섹션이 없으면 추가한다. 사용자 승인 근거가 없으면 `잠금`으로 둔다. -- `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 사용자 승인 전 상태로 보고, 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다. -- `구현 잠금`은 사용자가 해당 Milestone의 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하면 추가 체크리스트 없이 `해제`로 바꿀 수 있다. -- 잠금 해제 시 `해제 근거`에는 사용자 승인 날짜와 요청 요약만 남기고, `필수 기능`이나 `완료 기준` 체크박스는 확인 가능한 evidence 없이 완료 처리하지 않는다. -- 기존 Milestone 문서에 잠금 해제를 위한 별도 체크리스트가 있으면 삭제하고, 필요한 사용자 승인 메모만 `해제 근거`나 `작업 컨텍스트`에 남긴다. +- 기존 Milestone에 `구현 잠금` 섹션이 없으면 추가하고, 사용자 결정이 필요한 항목이 남아 있는지 보고 `잠금` 또는 `해제`를 정한다. +- `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하기 전에 `결정 필요` 체크리스트를 확인한다. +- `구현 잠금`은 사용자 결정이 필요한 항목이 있으면 `잠금`, 작업에 필요한 결정이 모두 정해져 에이전트가 실행만 하면 되면 `해제`로 둔다. +- `구현 잠금`에는 상태와 `결정 필요` 체크리스트만 유지한다. 결정할 항목이 없으면 `결정 필요: 없음`으로 적고, 별도 해제 근거/금지 목록은 만들지 않는다. +- 기존 Milestone 문서에 `이유`, `해제 근거`, `잠금 중 금지`, 잠금 해제를 위한 별도 체크리스트가 있으면 사용자 결정 질문만 `결정 필요` 체크리스트로 옮기고 나머지는 제거한다. - `필수 기능`은 구현 파일/함수 단위 작업 목록이 아니라 Milestone에서 달성해야 할 capability 또는 산출물 체크리스트로 유지한다. - `필수 기능`의 각 체크리스트 항목은 `- [ ] [item-id] 설명` 형식을 사용한다. item-id는 사람이 타이핑하고 LLM이 참조하기 쉬운 공백 없는 짧은 ASCII 토큰으로 작성한다. - item-id는 영문/숫자 segment 1~4개로 작성하고, segment 구분자는 `-`, `_`, `+`, `=`만 사용한다. 가능하면 1~3 segment를 우선하며, 전체 길이는 32자 이하를 권장한다. @@ -143,17 +145,17 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 |-----------|-----------| | 새 Milestone | 독립적인 목표와 완료 기준이 필요하거나, 여러 기능을 묶는 산출물이고, 별도 상태 추적이 필요하며, Phase 흐름이나 선후 의존성에 의미 있는 경계를 만든다 | | 기존 Milestone의 태스크 | 기존 Milestone의 목표와 범위 안에 들어가며, 하나의 완료 가능한 capability/산출물이지만 별도 Milestone 상태 추적까지는 필요하지 않다 | -| 기존 태스크의 하위 작업 | 잠금 해제된 Milestone에서 기존 태스크의 구현 세부, 보완, 테스트, 문서화, 예외 처리, 완료 기준 보완처럼 부모 태스크를 완성하기 위한 세부 항목이다 | -| 작업 컨텍스트/TODO | 요구가 아직 불확실하거나 조사/확인이 먼저 필요해 필수 기능으로 확정하기 어렵다 | +| 기존 태스크의 하위 작업 | 해제된 Milestone에서 기존 태스크의 구현 세부, 보완, 테스트, 문서화, 예외 처리, 완료 기준 보완처럼 부모 태스크를 완성하기 위한 세부 항목이다 | +| 작업 컨텍스트/TODO | 사용자 결정이 아니라 조사/확인이 먼저 필요해 필수 기능으로 확정하기 어렵다 | -- 신규 Milestone은 기본적으로 `구현 잠금: 잠금`으로 생성한다. 사용자가 작업, 구현, 계획 작성, 또는 잠금 해제를 명시한 경우에만 `해제`를 반영한다. -- 잠긴 Milestone 안에 새 작업을 추가할 때는 구현 태스크가 아니라 capability, 결정 안건, 확인 필요 사항, 완료 기준 후보로 작성한다. -- `구현 잠금`이 없거나 잠긴 Milestone에 대해 사용자가 작업, 구현, 계획 작성을 명시하면 이를 잠금 해제 승인으로 보고 Milestone 문서의 상태와 해제 근거를 먼저 갱신한다. +- 신규 Milestone은 사용자 결정이 필요한 항목이 있으면 `구현 잠금: 잠금`, 작업에 필요한 결정이 모두 정해져 있으면 `구현 잠금: 해제`로 생성한다. +- 잠긴 Milestone 안에 새 작업을 추가할 때는 구현 태스크가 아니라 capability, 완료 기준 후보, 또는 `구현 잠금`의 `결정 필요` 체크리스트로 작성한다. +- `구현 잠금`이 없거나 잠긴 Milestone에 대해 사용자가 작업, 구현, 계획 작성을 명시하면 결정 필요 항목이 남아 있는지 먼저 판단한다. 남은 결정이 없으면 Milestone 문서의 상태를 `해제`로 갱신하고 요청한 작업을 이어간다. - 위치 지정이 있으면 anchor의 레벨을 먼저 확인한다. ` 아래`처럼 하위 위치가 명시되면 기존 태스크 하위 항목으로 넣고, ` 앞/뒤`면 같은 목록 레벨의 형제 항목으로 넣는다. - 사용자가 item-id를 언급하면 해당 Milestone의 `필수 기능` 체크리스트에서 정확히 일치하는 item-id를 우선 매칭한다. 중복되거나 없으면 임의로 고르지 말고 확인한다. - 여러 Milestone 후보에서 같은 item-id가 발견되면 item-id만으로 확정하지 말고 Milestone 이름이나 문서 경로를 확인한다. - 위치는 지정됐지만 단위가 명시되지 않은 경우, anchor 레벨과 작업 성격을 함께 보고 새 Milestone, 태스크, 하위 작업 중 하나를 선택한다. -- 위치 지정이 ` 안` 또는 ` 안`처럼 컨테이너만 지정된 경우, 잠금 해제된 Milestone에서 작업 내용이 기존 태스크의 세부 구현이면 해당 컨테이너 안에서 가장 관련 있는 태스크 아래에 넣을 수 있다. 이 경우 결과 보고에 "위치는 지정된 컨테이너를 따랐고, 단위는 하위 작업으로 판단"처럼 남긴다. +- 위치 지정이 ` 안` 또는 ` 안`처럼 컨테이너만 지정된 경우, 해제된 Milestone에서 작업 내용이 기존 태스크의 세부 구현이면 해당 컨테이너 안에서 가장 관련 있는 태스크 아래에 넣을 수 있다. 이 경우 결과 보고에 "위치는 지정된 컨테이너를 따랐고, 단위는 하위 작업으로 판단"처럼 남긴다. - 위치 지정이 ` 앞/뒤` 또는 ` 앞/뒤`처럼 순서 anchor인 경우, 같은 레벨의 앞/뒤 배치를 유지한다. 작업 성격상 다른 레벨이 더 적절해 보여도 조용히 재배치하지 말고 사용자에게 확인한다. - `placement-unit`을 사용자가 명시한 경우 그 단위를 우선한다. 다만 지정 단위가 anchor 레벨, Milestone 목표, 범위 제외, 명백한 선후 의존성과 충돌하면 수정 전에 충돌 내용을 알리고 방향을 확인한다. - 작업이 둘 이상의 Milestone에 걸치면 바로 하나의 기존 태스크에 넣지 않는다. 공통 기반 작업이면 새 Milestone을 고려하고, 단순 연계 작업이면 각 Milestone에 나눌지 사용자에게 확인한다. @@ -178,14 +180,14 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - [ ] 로드맵 파일이 없으면 `create-roadmap` 스킬 사용을 안내하고 중단 - [ ] 완료 상태로 바꾸는 경우 사용자의 명시 또는 확인 가능한 evidence가 있는지 확인 - [ ] archive 모드이면 대상 Milestone이 `agent-ops/roadmap/milestones/` 하위에 있고, `ROADMAP.md`에 남길 요약 근거가 있는지 확인 -- [ ] 대상 Milestone의 `구현 잠금` 상태를 확인. 섹션이 없거나 잠금 상태에서 작업/구현/계획 작성을 요청받은 경우 사용자 승인 근거로 상태를 해제할지 판단한다. -- [ ] 잠금 해제를 반영하는 경우 추가 체크리스트를 요구하지 않고 사용자 승인 날짜와 요청 요약을 `해제 근거`에 남긴다. +- [ ] 대상 Milestone의 `구현 잠금` 상태와 `결정 필요` 체크리스트를 확인. 섹션이 없거나 잠금 상태에서 작업/구현/계획 작성을 요청받은 경우 사용자 결정이 남아 있는지 판단한다. +- [ ] 작업에 필요한 결정이 모두 정해져 있으면 `구현 잠금`을 `해제`로 두고, 결정이 필요하면 `잠금` 상태와 체크리스트를 유지한다. ## 실행 절차 1. **갱신 범위 결정** - 요청에서 mode, target Milestone, new feature, placement, placement-unit을 추론한다. - - 요청이 Milestone 방향/범위 보완, 잠금 해제, 또는 잠긴 Milestone의 작업/구현/계획 작성이면 `concretize`로 본다. + - 요청이 Milestone 방향/범위 보완, 잠금 해제, 결정 필요 항목 정리, 또는 잠긴 Milestone의 작업/구현/계획 작성이면 `concretize`로 본다. - 요청이 완료 또는 폐기된 Milestone을 과거 기록으로 넘기는 것이라면 `archive`로 본다. - 로드맵 언어 전환, ROADMAP/current 형식 표준화, 또는 Milestone 형식 표준화 요청이면 `sync`로 보고 `ROADMAP.md`, `current.md`, `agent-ops/roadmap/milestones/` 하위 Milestone 문서를 갱신 범위에 포함할 수 있다. - `sync` 또는 템플릿 표준화 요청에서도 `agent-ops/roadmap/archive/**`는 갱신 범위에 포함하지 않는다. @@ -202,8 +204,8 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - `current.md`에 아카이브 경로가 있으면 해당 항목을 읽지 말고 제거 대상으로 기록한다. - `ROADMAP.md`와 `current.md`가 표준 템플릿 섹션 순서와 형식을 따르는지 확인한다. - 대상 또는 후보 Milestone 문서의 목표, 범위, 필수 기능, 완료 기준, 범위 제외 항목을 확인한다. - - 대상 또는 후보 Milestone 문서의 `구현 잠금` 상태와 해제 근거를 확인한다. - - `구현 잠금`이 없거나 잠긴 Milestone에 대한 작업, 구현, 구현 계획 요청이면 사용자 승인으로 보고 같은 턴에서 `구현 잠금` 상태와 해제 근거를 먼저 갱신한 뒤 요청한 작업을 이어간다. + - 대상 또는 후보 Milestone 문서의 `구현 잠금` 상태와 `결정 필요` 항목을 확인한다. + - `구현 잠금`이 없거나 잠긴 Milestone에 대한 작업, 구현, 구현 계획 요청이면 사용자 결정이 남아 있는지 판단한다. 남은 결정이 없으면 같은 턴에서 `구현 잠금` 상태를 `해제`로 갱신한 뒤 요청한 작업을 이어간다. - 대상 Milestone 문서가 표준 템플릿 섹션 순서와 체크리스트 형식을 따르는지 확인한다. - 대상 Milestone 문서의 `필수 기능` item-id 목록을 확인하고, 중복 또는 누락이 갱신 범위에 있으면 보정 대상으로 기록한다. - 신규 작업과 이름, 산출물, 코드 경계, 완료 기준이 겹치는 기존 태스크가 있는지 확인한다. @@ -215,8 +217,8 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - 사용자가 순서 anchor를 지정했으면 같은 레벨의 앞/뒤 배치를 유지하고, 컨테이너 anchor를 지정했으면 컨테이너 안에서 작업 성격에 맞는 하위 단위를 선택한다. - 위치 지정이 없으면 `ROADMAP.md`의 위아래 흐름, 현재 활성 Milestone, 선행되어야 할 작업, 후속 작업이 기대하는 산출물, 관련 코드/문서 경계, 기존 태스크와의 포함 관계를 기준으로 자동 배치한다. - 자동 배치는 "가장 빨리 할 수 있는 곳"이 아니라 "의존성과 완료 기준이 자연스럽게 이어지는 곳"을 우선한다. - - 대상 Milestone이 잠겨 있으면 새 항목은 구현 작업이 아니라 capability/산출물/결정 안건/확인 필요 사항/완료 기준 후보로만 배치한다. - - 잠금 해제된 Milestone에서 기존 태스크를 완성하는 세부 구현이면 하위 작업으로 넣고, 기존 태스크와 같은 수준의 독립 완료 항목이면 같은 Milestone의 태스크로 넣는다. + - 대상 Milestone이 잠겨 있으면 새 항목은 구현 작업이 아니라 capability/산출물/완료 기준 후보로 배치하거나, 사용자 판단이 필요한 내용은 `구현 잠금`의 `결정 필요` 체크리스트로 옮긴다. + - 해제된 Milestone에서 기존 태스크를 완성하는 세부 구현이면 하위 작업으로 넣고, 기존 태스크와 같은 수준의 독립 완료 항목이면 같은 Milestone의 태스크로 넣는다. - 기존 Milestone의 목표/범위를 넓히거나 완료 기준을 과도하게 키우는 작업이면 새 Milestone으로 분리한다. - 사용자 지정 위치가 Phase 목표, Milestone 범위 제외, 명백한 선후 의존성과 충돌하면 수정 전에 충돌 내용을 알리고 방향을 확인한다. @@ -235,13 +237,13 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - `current.md`에 개인별 현재 작업 위치나 완료 상태가 있으면 `current.md`에서는 제거하고 공유 로드맵으로 이관하지 않는다. 프로젝트에 의미 있는 근거가 명확한 내용만 관련 Milestone 문서나 작업 컨텍스트로 옮기고, 이관하지 않은 내용은 결과 보고의 확인 필요 항목에 남긴다. - Milestone 문서는 해당 Milestone의 목표, 범위, 필수 기능, 완료 기준, 범위 제외, 작업 컨텍스트가 바뀔 때 수정한다. - 갱신 대상 Milestone 문서가 표준 템플릿과 다르면 기존 내용을 보존하면서 템플릿 섹션 순서로 정리하고, 누락 섹션은 TODO 또는 확인 필요 표시와 함께 추가한다. - - 갱신 대상 Milestone 문서에 `구현 잠금` 섹션이 없으면 추가한다. 사용자 승인 근거가 없으면 상태를 `잠금`으로 둔다. + - 갱신 대상 Milestone 문서에 `구현 잠금` 섹션이 없으면 추가하고, 사용자 결정이 필요한 항목이 남아 있는지에 따라 상태를 정한다. - `concretize` 모드에서는 구현 세부를 무작정 채우지 말고, 사용자 요청에 필요한 방향/범위 보완 또는 잠금 상태 갱신만 반영한다. - - `구현 잠금`을 `해제`로 바꿀 때는 사용자 명시 승인 날짜와 요청 요약을 결과 보고에 남긴다. 이 갱신만으로 `필수 기능`이나 `완료 기준`을 완료 처리하지 않는다. + - `구현 잠금`을 갱신할 때는 `결정 필요` 항목이 남아 있는지 결과 보고에 남긴다. 이 갱신만으로 `필수 기능`이나 `완료 기준`을 완료 처리하지 않는다. - 새 Milestone은 사용자 지정 또는 자동 판단 위치에 삽입하고, 기존 Milestone 이름이나 파일명을 순서 맞춤 목적으로 바꾸지 않는다. - - 새 Milestone은 사용자가 작업, 구현, 계획 작성, 또는 잠금 해제를 명시하지 않는 한 `구현 잠금` 상태를 `잠금`으로 작성한다. + - 새 Milestone은 사용자 결정이 필요한 항목이 있으면 `잠금`, 작업에 필요한 결정이 모두 정해져 있으면 `해제`로 작성한다. - 기존 Milestone에 새 태스크를 넣는 경우 `필수 기능` 체크리스트에 사용자 지정 또는 자동 판단 위치로 삽입하고, 근거 없이 목록 맨 앞이나 맨 뒤에 붙이지 않는다. - - 잠금 해제된 Milestone에서 기존 태스크의 하위 작업으로 넣는 경우 부모 태스크 아래의 하위 체크리스트로 작성하고, 부모 태스크의 의미가 바뀌면 부모 문장도 필요한 만큼만 보완한다. + - 해제된 Milestone에서 기존 태스크의 하위 작업으로 넣는 경우 부모 태스크 아래의 하위 체크리스트로 작성하고, 부모 태스크의 의미가 바뀌면 부모 문장도 필요한 만큼만 보완한다. - 새로 추가하거나 형식 보정 범위에 포함된 `필수 기능` 항목은 `- [ ] [item-id] 설명` 또는 `- [x] [item-id] 설명` 형식으로 작성한다. - 기존 `필수 기능`이 일반 불릿이면 상태 근거를 보존해 `- [ ] [item-id] 설명` 또는 `- [x] [item-id] 설명` 체크리스트로 변환한다. - 기존 `필수 기능` 체크리스트에 item-id가 있으면 사용자가 명시적으로 바꾸라고 하지 않는 한 유지한다. item-id가 없는 항목을 갱신 범위에서 보정할 때는 해당 Milestone 안에서 중복되지 않는 id를 붙인다. @@ -282,8 +284,9 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - [ ] `ROADMAP.md`의 Milestone 목록과 대상 Milestone 문서의 상태가 서로 충돌하지 않는가 - [ ] 갱신 대상 Milestone 문서가 `roadmap-milestone-template.md`의 섹션 순서와 형식을 따르는가 - [ ] 갱신 대상 Milestone 문서에 `구현 잠금` 섹션이 있는가 -- [ ] `구현 잠금`이 없거나 잠긴 Milestone에 구현 태스크, `agent-task` 계획, 세부 API/파일 구조 확정을 추가하지 않았는가 -- [ ] 잠금 해제한 경우 사용자 승인 날짜와 요청 요약을 결과 보고에 남겼는가 +- [ ] 잠금 상태인 Milestone의 `구현 잠금` 섹션에 사용자 결정이 필요한 항목이 체크리스트로 남아 있는가 +- [ ] `구현 잠금`이 없거나 잠긴 Milestone에 사용자 결정 필요 항목을 확인하지 않은 채 구현 태스크, `agent-task` 계획, 세부 API/파일 구조 확정을 추가하지 않았는가 +- [ ] 잠금 상태를 갱신한 경우 결정 필요 항목이 남아 있는지 결과 보고에 남겼는가 - [ ] 갱신 대상 Milestone 문서의 `필수 기능`과 `완료 기준`이 체크리스트 형식인가 - [ ] 갱신 대상 Milestone 문서의 `필수 기능` 체크리스트 항목이 `- [ ] [item-id] 설명` 형식이고 item-id가 해당 Milestone 안에서 유일한가 - [ ] 신규 작업이 사용자 지정 위치를 따랐거나, 위치 미지정 시 자동 배치 근거가 남아 있는가 @@ -315,7 +318,7 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - 삽입 단위: - 배치: <사용자 지정 위치 반영 | 자동 배치 위치와 근거 | 변경 없음> - 템플릿 보정: -- 구현 잠금: <잠금 유지 | 잠금 추가 | 해제 | 변경 없음> +- 구현 잠금: <잠금 유지 | 잠금 추가 | 해제 | 변경 없음>; 결정 필요: <없음 | 항목 요약> - 활성 Milestone: <변경 없음 | 추가/제거 요약> - 아카이브: <변경 없음 | 이동 경로와 ROADMAP 요약> - 상태: <변경 없음 | 이전 -> 이후> @@ -341,8 +344,9 @@ Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 - 기존 순번 파일명을 대규모 rename하지 않는다. - 신규 작업을 근거 없이 항상 새 Milestone으로 만들거나 맨 앞/맨 뒤에 추가하지 않는다. - 작업 성격과 기존 태스크 포함 관계를 확인하지 않고 모든 신규 작업을 같은 단위로 처리하지 않는다. -- `구현 잠금`이 없거나 잠긴 Milestone에 대해 사용자 승인 근거를 문서에 남기기 전에 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다. -- 사용자 명시 승인 없이 Milestone의 `구현 잠금`을 `해제`로 바꾸지 않는다. +- `구현 잠금`이 없거나 잠긴 Milestone에 대해 `결정 필요` 항목을 확인하기 전에 코드 구현, `agent-task` 구현 계획, 세부 API/파일 구조 확정을 시작하지 않는다. +- 사용자 결정이 필요한 항목이 남아 있는데 Milestone의 `구현 잠금`을 `해제`로 바꾸지 않는다. +- 작업에 필요한 결정이 모두 정해진 Milestone을 관성적으로 `잠금` 상태로 두지 않는다. - 초기 Milestone을 구현 계획처럼 자세한 package/file/function 체크리스트로 채우지 않는다. - 사용자가 지정한 앞/뒤/아래 anchor 또는 대상 Phase/Milestone 컨테이너를 무시하지 않는다. - Milestone 목표와 범위 제외 항목을 무시하고 태스크 체크리스트만 갱신하지 않는다.