sync: agent-ops from agentic-framework v1.1.167

This commit is contained in:
toki 2026-07-18 23:02:26 +09:00
parent cedb7fd41b
commit 03fefd3f9d
11 changed files with 19 additions and 57 deletions

View file

@ -3,6 +3,7 @@
**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.**
- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다.
- `agent-ops/rules/common/**`와 `agent-ops/skills/common/**`은 중앙 관리되는 공통 영역이므로 어떤 프로젝트 작업에서도 절대 직접 수정하지 않는다. 프로젝트별 규칙과 스킬은 반드시 대응하는 `project/**` 영역에만 반영한다.
- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다.
- 코드 변경 전 관련 domain rule을 먼저 확인한다.
- 요청 범위를 넘는 변경을 하지 않는다.

View file

@ -3,6 +3,7 @@
**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.**
- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다.
- `agent-ops/rules/common/**`와 `agent-ops/skills/common/**`은 중앙 관리되는 공통 영역이므로 어떤 프로젝트 작업에서도 절대 직접 수정하지 않는다. 프로젝트별 규칙과 스킬은 반드시 대응하는 `project/**` 영역에만 반영한다.
- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다.
- 코드 변경 전 관련 domain rule을 먼저 확인한다.
- 요청 범위를 넘는 변경을 하지 않는다.

View file

@ -3,6 +3,7 @@
**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.**
- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다.
- `agent-ops/rules/common/**``agent-ops/skills/common/**`은 중앙 관리되는 공통 영역이므로 어떤 프로젝트 작업에서도 절대 직접 수정하지 않는다. 프로젝트별 규칙과 스킬은 반드시 대응하는 `project/**` 영역에만 반영한다.
- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다.
- 코드 변경 전 관련 domain rule을 먼저 확인한다.
- 요청 범위를 넘는 변경을 하지 않는다.

View file

@ -3,6 +3,7 @@
**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.**
- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다.
- `agent-ops/rules/common/**``agent-ops/skills/common/**`은 중앙 관리되는 공통 영역이므로 어떤 프로젝트 작업에서도 절대 직접 수정하지 않는다. 프로젝트별 규칙과 스킬은 반드시 대응하는 `project/**` 영역에만 반영한다.
- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다.
- 코드 변경 전 관련 domain rule을 먼저 확인한다.
- 요청 범위를 넘는 변경을 하지 않는다.

View file

@ -3,6 +3,7 @@
**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.**
- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다.
- `agent-ops/rules/common/**``agent-ops/skills/common/**`은 중앙 관리되는 공통 영역이므로 어떤 프로젝트 작업에서도 절대 직접 수정하지 않는다. 프로젝트별 규칙과 스킬은 반드시 대응하는 `project/**` 영역에만 반영한다.
- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다.
- 코드 변경 전 관련 domain rule을 먼저 확인한다.
- 요청 범위를 넘는 변경을 하지 않는다.

View file

@ -36,12 +36,12 @@
## 로딩
- 세션 최초 1회 `agent-roadmap/current.md`가 있으면 읽고 활성 Phase, 활성 Milestone의 이름, 경로, 선택 규칙만 짧게 기억한다.
- `agent-roadmap/priority-queue.md`가 있으면 새 Milestone 생성, Phase를 가로지르는 다음 작업 후보 선택, 사용자가 요청한 순서 조정, archive/폐기/경로 변경/split/merge 후 큐 정리, 깨진 링크 복구가 필요할 때 읽는다.
- `agent-roadmap/priority-queue.md`가 있으면 Phase를 가로지르는 다음 작업 후보 선택, 사용자가 요청한 순서 조정, archive/폐기/경로 변경/split/merge 후 큐 정리, 깨진 링크 복구가 필요할 때 읽는다.
- `agent-roadmap/current.md`는 브랜치별 로컬 포인터이며 git 추적 대상이 아니다.
- `current.md`가 없고 로드맵 기반 계획 또는 갱신이 필요하면 `agent-ops/skills/common/_templates/roadmap-current-template.md` 형식으로 로컬 파일을 만들거나 `ROADMAP.md`와 활성 `PHASE.md`에서 후보를 고른다.
- 읽기 전용 로드맵 현지점 확인에서는 `current.md`가 없어도 만들지 않고, 로컬 current 없음으로 보고한 뒤 `priority-queue.md`가 있으면 전역 실행 순서와 `ROADMAP.md`의 Phase 흐름을 보여준다.
- 일반 작업에서는 `ROADMAP.md`를 읽지 않는다.
- 일반 작업에서는 `priority-queue.md`를 읽지 않는다. 단, 새 Milestone 생성, 구현 계획, 다음 작업 선택처럼 Phase를 가로지르는 후보 선택이나 큐 삽입이 필요하면 읽는다.
- 일반 작업에서는 `priority-queue.md`를 읽지 않는다. 단, 구현 계획이나 다음 작업 선택처럼 Phase를 가로지르는 후보 선택이 필요하면 읽는다.
- 일반 작업에서는 `agent-roadmap/archive/**`를 읽지 않는다.
- 기능 추가, 구조 변경, 구현 계획 전에는 요청과 변경 파일에 맞는 활성 Phase와 활성 Milestone 문서를 읽는다.
- 선택한 Milestone의 `구현 잠금``SDD: 필요`가 있으면 `agent-roadmap/sdd/<phase-slug>/<milestone-slug>/SDD.md`와 같은 디렉터리의 `USER_REVIEW.md` 존재 여부를 확인한다.
@ -54,12 +54,7 @@
- `current.md`는 현재 작업 위치가 아니라 활성 Phase와 활성 Milestone 후보 목록이다.
- `priority-queue.md`는 현재 작업 위치가 아니라 Phase를 가로지르는 실행 순서 문서다. 위에 있는 항목을 먼저 검토한다.
- `priority-queue.md`는 순서 전용 문서이며, Milestone 제목 링크와 식별용 한 줄 설명만 둔다. 상태, 목표, 범위, 잠금, 기능, 완료 근거, 의존성은 Milestone 문서를 원본으로 삼는다.
- 새 Milestone을 `[스케치]`, `[계획]`, `[진행중]`, `[검토중]` 상태로 만들면 같은 갱신에서 `priority-queue.md`에 정확히 한 번 삽입한다. `[보류]`, `[완료]`, `[폐기]` Milestone은 삽입하지 않는다.
- 신규 Milestone 큐 위치는 사용자 지정 앞/뒤/순번, Milestone `작업 컨텍스트 > 큐 배치`의 명시 anchor, 큐 끝 순서로 결정한다. `선행 작업``후속 작업`은 구현 의존성 설명이며 큐 위치로 해석하지 않는다.
- 큐에 있는 Milestone이 `[보류]`, `[완료]`, `[폐기]`로 바뀌면 제거한다. `[보류]` Milestone이 `[스케치]`, `[계획]`, `[진행중]`, `[검토중]`으로 재활성화되면 신규 삽입과 같은 규칙으로 다시 삽입한다.
- 신규 삽입과 그에 따른 순번 재계산은 기존 항목의 순서 변경으로 보지 않는다. 기존 항목끼리의 상대 순서는 사용자가 순서 조정을 요청한 경우에만 바꾼다. 단, archive/폐기 제거, 경로 변경, split/merge, 실행 의미 변경, 깨진 링크 복구는 예외다.
- 명시된 `큐 배치` 조건이 서로 충돌하거나 anchor를 찾을 수 없으면 임의 위치에 넣거나 조용히 누락하지 않고 큐 배치 차단 사유를 결과에 남긴다.
- Milestone 문서에는 변하기 쉬운 `N순위` 숫자를 복제하지 않고 `큐 배치`의 앞/뒤 anchor 또는 [priority-queue.md](../../../agent-roadmap/priority-queue.md) 링크만 남긴다.
- `priority-queue.md`의 순서는 사용자가 순서 조정을 요청한 경우에만 바꾼다. 단, archive/폐기 제거, 경로 변경, split/merge, 실행 의미 변경, 깨진 링크 복구는 예외다.
- `priority-queue.md` 링크가 깨졌으면 추측하지 말고 활성 Milestone 문서를 기준으로 큐를 재정렬하거나 재생성한다.
- `current.md`는 공유 진행 상태가 아니며, 공유해야 할 상태는 `ROADMAP.md`, `PHASE.md`, Milestone 문서, `.agent-roadmap-sync/locks.yaml`에 남긴다.
- 활성 Phase는 `agent-roadmap/phase/**/PHASE.md`만 대상으로 한다.

View file

@ -3,6 +3,7 @@
**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.**
- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다.
- `agent-ops/rules/common/**``agent-ops/skills/common/**`은 중앙 관리되는 공통 영역이므로 어떤 프로젝트 작업에서도 절대 직접 수정하지 않는다. 프로젝트별 규칙과 스킬은 반드시 대응하는 `project/**` 영역에만 반영한다.
- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다.
- 코드 변경 전 관련 domain rule을 먼저 확인한다.
- 요청 범위를 넘는 변경을 하지 않는다.

View file

@ -93,7 +93,6 @@ Task 체크리스트는 Epic 바로 아래의 flat list로 유지하고, 구현
- 관련 경로: `<path>`
- 표준선(선택): <기존 구조, 도메인 rule, 플랫폼 관례, 업계 표준으로 진행할 기본 기준>
- 큐 배치(선택): <없음 | [Milestone 이름](../other-milestone.md) | [Milestone 이름](../other-milestone.md) | / anchor 조합. `N순위` 숫자는 기록하지 않음>
- 선행 작업: <없음 또는 파일 위치 기준 Markdown 링크(예: [Milestone 이름](../other-milestone.md))/태스크 이름>
- 후속 작업: <없음 또는 파일 위치 기준 Markdown 링크(예: [Milestone 이름](../next-milestone.md))/태스크 이름>
- 확인 필요: <없음 | `구현 잠금 > 결정 필요` 또는 [USER_REVIEW.md](../../../sdd/<phase-slug>/<milestone-slug>/USER_REVIEW.md) 분리할 항목>

View file

@ -7,9 +7,6 @@
<!--
작성 규칙:
- 실행 후보가 없으면 이 섹션을 비워 둔다.
- 새 `[스케치]`, `[계획]`, `[진행중]`, `[검토중]` Milestone은 생성과 같은 갱신에서 이 순서에 삽입한다.
- 사용자 지정 위치가 없으면 Milestone `작업 컨텍스트 > 큐 배치`의 명시 anchor를 적용하고, anchor가 없으면 기존 항목의 상대 순서를 유지한 채 큐 끝에 삽입한다.
- `[보류]`, `[완료]`, `[폐기]` Milestone은 이 순서에 두지 않는다.
- 항목은 Milestone 제목 링크와 식별용 한 줄 설명만 둔다.
- 상태, 목표, 범위, 잠금, 기능, 완료 근거는 각 Milestone 문서를 원본으로 삼는다.
- 링크 target은 이 파일 위치 기준 상대 경로로 쓴다.

View file

@ -8,9 +8,7 @@
- `priority-queue.md`는 순서 전용 문서이며, 상태, 목표, 범위, 잠금, 기능, 완료 근거는 각 Milestone 문서를 원본으로 삼는다.
- `priority-queue.md` 항목은 Milestone 제목 링크와 식별용 한 줄 설명만 둔다.
- `priority-queue.md`는 로드맵 생성 시 함께 만들며, 실행 후보가 없을 때도 문서와 `실행 순서` 섹션은 유지한다.
- 새 실행 후보 Milestone은 생성과 같은 갱신에서 사용자 지정 위치, `작업 컨텍스트 > 큐 배치`의 명시 anchor, 큐 끝 순서로 `priority-queue.md`에 삽입한다. 일반 `선행 작업``후속 작업`은 큐 위치로 해석하지 않는다.
- `[보류]`, `[완료]`, `[폐기]` Milestone은 큐에서 제거하고, `[보류]` Milestone을 실행 후보 상태로 재활성화하면 같은 삽입 규칙을 적용한다.
- 신규 삽입과 연속 순번 재계산은 기존 항목 재정렬로 보지 않는다. 기존 항목끼리의 상대 순서는 사용자가 순서 조정을 요청한 경우, Milestone archive 시 완료 항목 제거가 필요한 경우, 큐에 있는 Milestone이 폐기, 경로 변경, split/merge, 또는 실행 의미가 바뀔 정도로 수정된 경우에만 바꾼다.
- `priority-queue.md`는 사용자가 순서 조정을 요청한 경우, Milestone archive 시 완료 항목 제거가 필요한 경우, 큐에 있는 Milestone이 폐기, 경로 변경, split/merge, 또는 실행 의미가 바뀔 정도로 수정된 경우에만 재정렬한다.
- `priority-queue.md`의 링크가 깨졌으면 활성 Milestone 문서를 기준으로 큐를 재정렬하거나 재생성한다.
## 전체 목표

View file

@ -1,6 +1,6 @@
---
name: update-roadmap
version: 1.24.2
version: 1.24.0
description: 로드맵 업데이트, 로드맵에 추가, 마일스톤 추가/갱신, phase/페이즈 변경, 전역 Milestone 실행 순서 갱신 요청에 사용한다. Roadmap-priority-queue-Phase-Milestone scaffold에서 target 없는 신규 작업의 규모를 판정하고 기존 Phase/Milestone/Epic/Task를 검색해 upsert한 뒤, 없을 때만 새 항목을 만들고 priority-queue.md 순서 동기화, 로컬 current.md 동기화, runtime m-task 완료 이벤트 반영, 완료 후보 검토중 전환, agent-ui 코드 동기화 Milestone의 종료 검토 시 구현됨 상태 반영, 완료 근거 충족 archive 이동, workspace 외부 의존 잠금 양방향 동기화를 처리한다.
---
@ -102,7 +102,7 @@ agent-roadmap/
- `current.md`는 git 추적 대상이 아니며, 공유 진행 상태는 `ROADMAP.md`, `PHASE.md`, Milestone 문서, `.agent-roadmap-sync/locks.yaml`에 기록한다.
- `current.md`에는 archive 경로를 넣지 않는다.
- `current.md`에는 `[완료]` 또는 `[폐기]` Phase/Milestone을 남기지 않는다. 완료 후보는 완료 근거와 archive 전환이 정리될 때까지 `[검토중]`으로 둔다.
- `priority-queue.md`에는 archive 경로를 넣지 않는다. 보류 Milestone은 상태 전환 시 제거하고, 완료 Milestone은 archive 시 제거하며, 폐기 Milestone은 큐에서 제거한다.
- `priority-queue.md`에는 archive 경로를 넣지 않는다. 완료 Milestone은 archive 시 제거하고, 폐기 Milestone은 큐에서 제거한다.
## 상태와 id
@ -128,7 +128,7 @@ agent-roadmap/
- 일반 갱신은 로컬 `current.md`, 관련 활성 Phase, 관련 활성 Milestone을 우선 읽는다.
- `current.md`가 없고 활성 창 갱신이 필요하면 `agent-ops/skills/common/_templates/roadmap-current-template.md` 형식으로 로컬 파일을 만든다.
- `ROADMAP.md`는 Phase 흐름, 전체 구조, 활성 범위 밖 작업, 전체 재계획, archive 링크 갱신이 필요할 때 읽는다.
- `priority-queue.md`새 Milestone 생성, Phase를 가로지르는 다음 작업 후보 선택, 사용자가 요청한 순서 조정, archive/폐기/경로 변경/split/merge 후 큐 정리, 깨진 링크 복구가 필요할 때 읽고 갱신한다.
- `priority-queue.md`는 Phase를 가로지르는 다음 작업 후보 선택, 사용자가 요청한 순서 조정, archive/폐기/경로 변경/split/merge 후 큐 정리, 깨진 링크 복구가 필요할 때 읽고 갱신한다.
- `agent-roadmap/archive/**`는 일반 작업이나 sync에서 읽지 않는다.
- archive 모드에서 이동 대상이 아직 활성 경로에 있으면 그 대상 문서는 읽을 수 있다.
- 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 요청이면 `ROADMAP.md` 또는 `PHASE.md`의 archive 링크를 따라 필요한 archive 문서만 읽는다.
@ -270,27 +270,6 @@ agent-roadmap/
- 자동 배치한 경우 결과 보고에 선택한 삽입 단위, 위치, 판단 근거, 비교한 후보를 짧게 남긴다.
- 사용자 지정 위치가 Phase 목표, Milestone 범위 제외, 선후 의존성과 충돌하면 충돌을 보고하고 수정하지 않는다. 제품/범위 결정으로 해소해야 하면 대상 Milestone의 `구현 잠금 > 결정 필요` 또는 SDD `USER_REVIEW.md`로 분리한다.
### 신규 Milestone 큐 삽입
- 새 Milestone을 `[스케치]`, `[계획]`, `[진행중]`, `[검토중]` 상태로 만들면 같은 갱신에서 `priority-queue.md`에 정확히 한 번 삽입한다.
- `[보류]`, `[완료]`, `[폐기]` 상태로 만든 Milestone은 실행 후보가 아니므로 큐에 삽입하지 않는다.
- 삽입 위치는 다음 순서로 결정한다.
1. 사용자가 지정한 앞/뒤/순번
2. 새 Milestone `작업 컨텍스트 > 큐 배치` 또는 요청에 명시된 큐 앞/뒤 Milestone anchor
3. anchor가 없을 때 큐 끝
- `작업 컨텍스트 > 선행 작업``후속 작업`은 구현 의존성 설명이며 자동 큐 위치 anchor로 사용하지 않는다.
- `큐 배치``뒤` anchor가 여러 개이면 큐에서 가장 뒤에 있는 항목 다음에 넣고, `앞` anchor가 있으면 그 앞에 둔다. 이 조건을 동시에 만족할 수 없으면 임의 배치하지 않고 큐 배치 차단으로 보고한다.
- 신규 삽입과 연속 순번 재계산은 기존 항목의 재정렬이 아니다. 삽입 전 기존 항목끼리의 상대 순서를 그대로 유지한다.
- 명시된 anchor가 큐나 활성 Milestone에서 유일하게 확인되지 않으면 조용히 누락하거나 큐 끝으로 대체하지 않고 차단 사유와 미배치 상태를 결과에 남긴다.
- 신규 Milestone 링크와 식별용 한 줄 설명만 큐에 기록하고 상태, 범위, 잠금, 의존성은 복제하지 않는다.
- Milestone 문서의 `큐 배치`에는 `N순위` 숫자를 기록하지 않고 앞/뒤 anchor만 남긴다.
### Milestone 상태와 큐 동기화
- 큐에 있는 Milestone이 `[보류]`, `[완료]`, `[폐기]`로 전환되면 같은 갱신에서 큐에서 제거한다.
- `[보류]` Milestone이 `[스케치]`, `[계획]`, `[진행중]`, `[검토중]`으로 재활성화되면 신규 Milestone 큐 삽입과 같은 규칙으로 다시 삽입한다.
- 상태 전환에 따른 제거·재삽입과 연속 순번 재계산도 기존 항목끼리의 상대 순서를 바꾸지 않는다.
## 레벨별 탐색과 upsert 정책
target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다.
@ -361,7 +340,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다
- 런타임 완료 이벤트의 `origin-task` task group이 `m-<milestone-slug>`이면 `target-milestone`을 활성 Milestone 경로 매칭으로 확정한다.
- 런타임 완료 이벤트가 `complete-log`를 전달하면 파일을 읽고 `Roadmap Completion` 섹션 유무와 Completed task ids를 확인한다. 섹션이 없으면 Milestone 기능 Task 체크는 no-op이다. SDD 대상 Milestone이면 SDD `Evidence Map` 충족 여부도 확인한다.
- 구조 전환, 템플릿 보정, current 동기화는 `sync`로 본다.
- 새 Milestone 큐 삽입, `priority-queue.md` 생성, 순서 조정, 깨진 링크 복구, archive/폐기/경로 변경/split/merge 후 큐 정리는 `sync` 또는 `replan`을 함께 수행할 수 있는 갱신으로 본다.
- `priority-queue.md` 생성, 순서 조정, 깨진 링크 복구, archive/폐기/경로 변경/split/merge 후 큐 정리는 `sync` 또는 `replan`으로 본다.
- 완료/폐기 근거가 충족된 이동은 `archive`로 본다.
- 완료 리뷰 요청에서 대상 Milestone의 `완료 리뷰``agent-ui 상태 반영: 대기`인지 확인한다. 항목이 없거나 `대기`가 아니면 agent-ui 상태 반영 단계를 적용하지 않는다.
- 새 기능 배치, Epic/Task 추가는 `milestone` 또는 `phase`로 본다.
@ -385,7 +364,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다
- Phase -> Milestone -> Epic -> Task 순서로 내려가며 같은 레벨의 동일/유사 후보를 먼저 찾는다.
- 로컬 `current.md`에 archive 경로가 있으면 읽지 말고 제거 대상으로 기록한다.
- 필요한 경우에만 `ROADMAP.md`를 읽어 전체 Phase 흐름을 확인한다.
- 새 Milestone을 만들거나 Phase를 가로지르는 다음 작업 후보를 고르거나 큐 정리가 필요하면 `priority-queue.md`를 읽는다. 링크가 깨진 항목은 추측하지 말고 활성 `phase/*/milestones/*.md` 후보를 기준으로 재정렬 또는 재생성 대상으로 기록한다.
- Phase를 가로지르는 다음 작업 후보를 고르거나 큐 정리가 필요하면 `priority-queue.md`를 읽는다. 링크가 깨진 항목은 추측하지 말고 활성 `phase/*/milestones/*.md` 후보를 기준으로 재정렬 또는 재생성 대상으로 기록한다.
4. **스케치 승격 판단**
- `target-status=[계획]`, `mode=concretize`, 또는 사용자가 "구체화", "계획으로 올려"처럼 요청하면 `[스케치] -> [계획]` 승격 검토로 본다.
@ -398,7 +377,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다
5. **변경 내용 작성**
- `ROADMAP.md`는 전체 목표, Phase 흐름, 로딩 정책이 바뀔 때만 수정한다.
- `priority-queue.md`가 없고 로드맵 구조를 표준화하거나 생성/동기화하는 요청이면 `roadmap-priority-queue-template.md` 형식으로 만든다.
- `priority-queue.md`신규 실행 후보 Milestone 삽입, 사용자 순서 조정 요청, archive/폐기 제거, 경로 변경, split/merge, 실행 의미 변경, 깨진 링크 복구 때 수정한다.
- `priority-queue.md`는 사용자 순서 조정 요청, archive/폐기 제거, 경로 변경, split/merge, 실행 의미 변경, 깨진 링크 복구 때 수정한다.
- `priority-queue.md`를 수정할 때는 Milestone 제목 링크와 식별용 한 줄 설명만 남기고, 상태, 목표, 범위, 잠금, 기능, 완료 근거, 의존성 필드를 복제하지 않는다.
- 로컬 `current.md`는 활성 Phase/Milestone 창이 바뀔 때 수정한다.
- `.gitignore`의 Agent-Ops 관리 block에 `agent-roadmap/current.md`가 있는지 확인하고 없으면 추가한다.
@ -409,11 +388,6 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다
- 동일/유사 후보가 있으면 기존 항목을 업데이트하고 중복 항목을 만들지 않는다.
- 새 Milestone은 해당 Phase의 `milestones/` 아래에 만든다.
- 새 `[스케치]` Milestone은 `승격 조건` 섹션을 포함하고 `구현 잠금``잠금`으로 둔다.
- 새 Milestone 상태가 `[스케치]`, `[계획]`, `[진행중]`, `[검토중]`이면 같은 갱신에서 `priority-queue.md`에 삽입한다. 사용자 지정 위치가 없으면 `작업 컨텍스트 > 큐 배치`의 명시 anchor를 적용하고, anchor도 없으면 기존 상대 순서를 유지한 채 큐 끝에 넣는다.
- `작업 컨텍스트 > 선행 작업``후속 작업`은 큐 위치로 해석하지 않는다.
- `큐 배치` anchor가 아예 없으면 큐 끝에 삽입한다. 명시된 anchor가 존재하지만 충돌하거나 찾을 수 없는 경우에는 큐 끝으로 임의 대체하지 않는다. Milestone 문서는 유지할 수 있지만 결과를 큐 배치 차단으로 보고하고 미배치 상태를 숨기지 않는다.
- 신규 삽입 뒤 순번은 1부터 연속으로 다시 계산하되, 기존 항목끼리의 상대 순서를 바꾸지 않는다.
- 대상 Milestone 상태가 `[보류]`, `[완료]`, `[폐기]`로 바뀌면 큐에서 제거하고, `[보류]`에서 실행 후보 상태로 재활성화되면 신규 삽입 규칙으로 다시 삽입한다.
- 새 Epic은 `기능` 아래 `### Epic: [epic-id] <이름>`으로 만든다.
- 새 Task는 관련 Epic 아래 `- [ ] [item-id] 설명`으로 만든다. 검증이 필요한 경우에만 같은 항목에 `검증: <명령/확인 방법/기대 결과>`를 붙인다.
- 새 항목은 레벨별 탐색에서 적절한 기존 후보가 없을 때만 만든다.
@ -443,11 +417,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다
- 로컬 `current.md`의 활성 항목이 `[완료]` 또는 `[폐기]` 상태로 남아 있지 않은지 확인한다.
- `agent-roadmap/current.md`가 git 추적 대상으로 남아 있지 않은지 확인한다.
- `agent-roadmap/priority-queue.md`가 있으면 `실행 순서` 섹션이 있고 모든 링크가 실제 활성 Milestone 파일을 가리키는지 확인한다.
- 이번 갱신에서 새로 만든 `[스케치]`, `[계획]`, `[진행중]`, `[검토중]` Milestone이 `priority-queue.md`에 정확히 한 번 있는지 확인한다. 명시 anchor 충돌로 미배치했다면 검증 실패가 아니라 차단 결과로 명시되어 있는지 확인한다.
- 신규 삽입 전후 기존 큐 항목끼리의 상대 순서가 유지되었고 순번이 1부터 연속인지 확인한다.
- `priority-queue.md`에 archive 경로, `[보류]`, `[완료]`, `[폐기]` Milestone 항목이 남아 있지 않은지 확인한다.
- `[보류]`에서 실행 후보 상태로 재활성화된 Milestone이 큐에 정확히 한 번 다시 삽입되었는지 확인한다.
- Milestone `큐 배치``N순위` 숫자가 복제되지 않고 앞/뒤 anchor만 있는지 확인한다.
- `priority-queue.md`에 archive 경로, `[완료]` archive 대상, `[폐기]` Milestone 항목이 남아 있지 않은지 확인한다.
- `priority-queue.md`가 비어 있는데 활성 실행 후보가 있으면 큐 동기화 필요로 보고한다. 실행 후보가 없으면 빈 큐를 허용한다.
- `ROADMAP.md`의 Phase 경로가 실제 `PHASE.md` 파일을 가리키는지 확인한다.
- 각 `PHASE.md`의 Milestone 경로가 실제 파일을 가리키는지 확인한다.
@ -520,7 +490,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다
- 배치: <사용자 지정 위치 반영 | 자동 배치 위치와 근거 | 변경 없음>
- 배치 후보: <자동 배치 1순위/2순위 후보와 선택/제외 근거 | 해당 없음>
- 템플릿 보정: <ROADMAP | local current.md | PHASE | Milestone | 이미 일치 | 변경 없음>
- 전역 실행 순서: <변경 없음 | 생성 | 신규 Milestone 삽입 | 재활성 Milestone 삽입 | 보류/완료/폐기 항목 제거 | 배치 차단 | 순서 조정 | 경로 갱신 | 재생성 필요>
- 전역 실행 순서: <변경 없음 | 생성 | 순서 조정 | archive/폐기 항목 제거 | 경로 갱신 | 재생성 필요>
- 구현 잠금: <잠금 유지 | 잠금 추가 | 해제 | 잠금 차단 | 변경 없음>; 결정 필요: <없음 | 항목 요약>
- SDD gate: <불필요 | 필요-작성 | 필요-잠금 | 필요-사용자 리뷰 | 필요-승인됨 | 변경 없음>
- 승격 조건: <해당 없음 | 추가/수정/미충족 유지/충족 요약>
@ -546,10 +516,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다
- `ROADMAP.md`에 Milestone 상세 작업 체크리스트를 남기지 않는다.
- `priority-queue.md`에 상태, 목표, 범위, 잠금, 기능, 완료 근거, 의존성 필드를 복제하지 않는다.
- `priority-queue.md`에 archive 경로를 남기지 않는다.
- 사용자 순서 조정 요청 없이 `priority-queue.md` 기존 항목끼리의 상대 순서를 에이전트 판단만으로 바꾸지 않는다. 신규 Milestone 삽입과 그에 따른 연속 순번 재계산은 기존 항목 재정렬로 보지 않는다. archive/폐기 제거, 경로 변경, split/merge, 실행 의미 변경, 깨진 링크 복구는 예외다.
- 새 실행 후보 Milestone을 만들고도 `priority-queue.md`에서 조용히 누락하지 않는다. 명시 anchor 충돌로 삽입하지 못한 경우에는 큐 배치 차단과 미배치 상태를 결과에 반드시 남긴다.
- `작업 컨텍스트 > 선행 작업`이나 `후속 작업`을 자동 큐 위치 anchor로 사용하지 않는다.
- Milestone 문서에 `N순위` 숫자를 복제하지 않는다.
- 사용자 순서 조정 요청 없이 `priority-queue.md`의 순서를 에이전트 판단만으로 바꾸지 않는다. 단, archive/폐기 제거, 경로 변경, split/merge, 실행 의미 변경, 깨진 링크 복구는 예외다.
- 로컬 `current.md`에 개인별 현재 작업 위치나 완료 상태를 남기지 않는다.
- 로컬 `current.md``agent-roadmap/archive/**` 경로를 남기지 않는다.
- `agent-roadmap/current.md`를 git 추적 대상으로 만들지 않는다.