diff --git a/.aiexclude b/.aiexclude index 1ce2388..a9c3eaf 100644 --- a/.aiexclude +++ b/.aiexclude @@ -1,7 +1,7 @@ agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # BEGIN Agent-Ops managed ignore agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # END Agent-Ops managed ignore diff --git a/.clineignore b/.clineignore index 1ce2388..a9c3eaf 100644 --- a/.clineignore +++ b/.clineignore @@ -1,7 +1,7 @@ agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # BEGIN Agent-Ops managed ignore agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # END Agent-Ops managed ignore diff --git a/.clinerules b/.clinerules index cbbc8c7..a3f81d4 100644 --- a/.clinerules +++ b/.clinerules @@ -6,14 +6,14 @@ - 요청 범위를 넘는 변경을 하지 않는다. - 불확실하면 단정하지 말고 후보를 제시한다. - `agent-task/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. -- `agent-ops/roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. - agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. **세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. 1. `agent-ops/rules/project/rules.md` 2. `agent-ops/rules/private/rules.md` -3. `agent-ops/roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` # 프로젝트 간 잠금 diff --git a/.cursorignore b/.cursorignore index 1ce2388..a9c3eaf 100644 --- a/.cursorignore +++ b/.cursorignore @@ -1,7 +1,7 @@ agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # BEGIN Agent-Ops managed ignore agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # END Agent-Ops managed ignore diff --git a/.cursorrules b/.cursorrules index cbbc8c7..a3f81d4 100644 --- a/.cursorrules +++ b/.cursorrules @@ -6,14 +6,14 @@ - 요청 범위를 넘는 변경을 하지 않는다. - 불확실하면 단정하지 말고 후보를 제시한다. - `agent-task/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. -- `agent-ops/roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. - agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. **세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. 1. `agent-ops/rules/project/rules.md` 2. `agent-ops/rules/private/rules.md` -3. `agent-ops/roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` # 프로젝트 간 잠금 diff --git a/.geminiignore b/.geminiignore index 1ce2388..a9c3eaf 100644 --- a/.geminiignore +++ b/.geminiignore @@ -1,7 +1,7 @@ agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # BEGIN Agent-Ops managed ignore agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # END Agent-Ops managed ignore diff --git a/AGENTS.md b/AGENTS.md index cbbc8c7..a3f81d4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,14 +6,14 @@ - 요청 범위를 넘는 변경을 하지 않는다. - 불확실하면 단정하지 말고 후보를 제시한다. - `agent-task/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. -- `agent-ops/roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. - agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. **세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. 1. `agent-ops/rules/project/rules.md` 2. `agent-ops/rules/private/rules.md` -3. `agent-ops/roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` # 프로젝트 간 잠금 diff --git a/CLAUDE.md b/CLAUDE.md index cbbc8c7..a3f81d4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,14 +6,14 @@ - 요청 범위를 넘는 변경을 하지 않는다. - 불확실하면 단정하지 말고 후보를 제시한다. - `agent-task/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. -- `agent-ops/roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. - agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. **세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. 1. `agent-ops/rules/project/rules.md` 2. `agent-ops/rules/private/rules.md` -3. `agent-ops/roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` # 프로젝트 간 잠금 diff --git a/GEMINI.md b/GEMINI.md index cbbc8c7..a3f81d4 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -6,14 +6,14 @@ - 요청 범위를 넘는 변경을 하지 않는다. - 불확실하면 단정하지 말고 후보를 제시한다. - `agent-task/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. -- `agent-ops/roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. - agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. **세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. 1. `agent-ops/rules/project/rules.md` 2. `agent-ops/rules/private/rules.md` -3. `agent-ops/roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` # 프로젝트 간 잠금 diff --git a/README.md b/README.md index c449994..4c05640 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ NomadCode는 IOP를 사용하는 개발 워크플로우 셸입니다. 사용자 - `apps/client`는 NomadCode 제품 UI의 기준 Flutter 앱이며 모바일/데스크톱/선택적 web target, Firebase Messaging, local notifications, HTTP client 의존성을 포함합니다. - `apps/web`은 이전 React/Vite 운영 콘솔 scaffold였으며, Flutter-first 통합에 따라 완전히 폐기 및 제거되었습니다. - `packages/contracts`는 향후 OpenAPI, protobuf, generated client, fixture, compatibility asset을 담을 공유 계약 공간입니다. -- 활성 계획과 Milestone 상태는 `agent-ops/roadmap/`에서 관리합니다. README에는 현재 작업 상태를 복사하지 않고 진입 문서만 연결합니다. +- 활성 계획과 Milestone 상태는 `agent-roadmap/`에서 관리합니다. README에는 현재 작업 상태를 복사하지 않고 진입 문서만 연결합니다. ## 제품 경계 @@ -99,9 +99,9 @@ README 같은 workspace-level 파일을 다룰 때는 아래 문서를 함께 - `agent-ops/rules/project/domain/workspace-ops/rules.md` - `agent-ops/skills/common/create-readme/SKILL.md` -- `agent-ops/roadmap/current.md` +- `agent-roadmap/current.md` -로드맵 상세 상태는 `agent-ops/roadmap/`에, 도메인별 세부 규칙은 `agent-ops/rules/project/domain/`에 둡니다. 사용자가 명시적으로 요청하지 않는 한 `agent-task/archive/**`와 `agent-ops/roadmap/archive/**`는 읽지 않습니다. +로드맵 상세 상태는 `agent-roadmap/`에, 도메인별 세부 규칙은 `agent-ops/rules/project/domain/`에 둡니다. 사용자가 명시적으로 요청하지 않는 한 `agent-task/archive/**`와 `agent-roadmap/archive/**`는 읽지 않습니다. IOP 경계가 걸린 작업은 같은 workspace에 sibling IOP repository가 있을 때 함께 확인합니다. NomadCode roadmap은 제품/워크플로우 범위의 기준 문서이고, IOP roadmap은 실행/runtime 범위의 기준 문서입니다. @@ -131,4 +131,4 @@ IOP 경계가 걸린 작업은 같은 workspace에 sibling IOP repository가 있 - `services/core/README.md` - `apps/client/README.md` - `packages/contracts/README.md` -- `agent-ops/roadmap/current.md` +- `agent-roadmap/current.md` diff --git a/agent-ops/bin/ai-ignore.sh b/agent-ops/bin/ai-ignore.sh index 1431c15..bc38991 100755 --- a/agent-ops/bin/ai-ignore.sh +++ b/agent-ops/bin/ai-ignore.sh @@ -2,7 +2,7 @@ # Shared AI ignore / permission defaults for init and sync flows. AGENT_OPS_TASK_ARCHIVE_IGNORE_PATTERN="agent-task/archive/**" -AGENT_OPS_ROADMAP_ARCHIVE_IGNORE_PATTERN="agent-ops/roadmap/archive/**" +AGENT_OPS_ROADMAP_ARCHIVE_IGNORE_PATTERN="agent-roadmap/archive/**" AGENT_OPS_AI_IGNORE_BLOCK_BEGIN="# BEGIN Agent-Ops managed ignore" AGENT_OPS_AI_IGNORE_BLOCK_END="# END Agent-Ops managed ignore" AGENT_OPS_AI_IGNORE_FILES=(".geminiignore" ".aiexclude" ".cursorignore" ".clineignore") @@ -81,7 +81,7 @@ def as_object: .permissions = ((.permissions // {}) | as_object) | .permissions.deny = ( (.permissions.deny | as_array) - | map(select(. != "Read(./agent-ops/roadmap/archive/**)")) + | map(select(. != "Read(./agent-roadmap/archive/**)")) | append_unique("Read(./agent-task/archive/**)") ) ' @@ -89,7 +89,7 @@ def as_object: agent_ops_merge_json_with_jq \ "$file" \ "$filter" \ - "Note: .claude/settings.json exists; add Read(./agent-task/archive/**) and remove Read(./agent-ops/roadmap/archive/**) manually." + "Note: .claude/settings.json exists; add Read(./agent-task/archive/**) and remove Read(./agent-roadmap/archive/**) manually." } agent_ops_claude_settings_complete() { @@ -101,7 +101,7 @@ def as_array: (.permissions.deny | as_array) as $deny | (($deny | index("Read(./agent-task/archive/**)")) != null) -and (($deny | index("Read(./agent-ops/roadmap/archive/**)")) == null) +and (($deny | index("Read(./agent-roadmap/archive/**)")) == null) ' if command -v jq >/dev/null 2>&1; then @@ -124,22 +124,22 @@ def as_object: .permission = ((.permission // {}) | as_object) | .permission.read = ((.permission.read // {}) | as_object) | .permission.read["agent-task/archive/**"] = "deny" -| del(.permission.read["agent-ops/roadmap/archive/**"]) +| del(.permission.read["agent-roadmap/archive/**"]) | .permission.glob = ((.permission.glob // {}) | as_object) | .permission.glob["agent-task/archive/**"] = "deny" -| del(.permission.glob["agent-ops/roadmap/archive/**"]) +| del(.permission.glob["agent-roadmap/archive/**"]) | .watcher = ((.watcher // {}) | as_object) | .watcher.ignore = ( (.watcher.ignore | as_array) | append_unique("agent-task/archive/**") - | append_unique("agent-ops/roadmap/archive/**") + | append_unique("agent-roadmap/archive/**") ) ' agent_ops_merge_json_with_jq \ "$file" \ "$filter" \ - "Note: opencode.json exists; add agent-task/archive/** read/glob deny, remove agent-ops/roadmap/archive/** read/glob hard deny, and add agent-task/archive/** plus agent-ops/roadmap/archive/** watcher ignore manually." + "Note: opencode.json exists; add agent-task/archive/** read/glob deny, remove agent-roadmap/archive/** read/glob hard deny, and add agent-task/archive/** plus agent-roadmap/archive/** watcher ignore manually." } agent_ops_opencode_config_complete() { @@ -150,15 +150,15 @@ def as_array: (.permission.read["agent-task/archive/**"] == "deny") and (.permission.glob["agent-task/archive/**"] == "deny") -and (.permission.read["agent-ops/roadmap/archive/**"] != "deny") -and (.permission.glob["agent-ops/roadmap/archive/**"] != "deny") -and ((.watcher.ignore | as_array) as $ignore | (($ignore | index("agent-task/archive/**")) != null) and (($ignore | index("agent-ops/roadmap/archive/**")) != null)) +and (.permission.read["agent-roadmap/archive/**"] != "deny") +and (.permission.glob["agent-roadmap/archive/**"] != "deny") +and ((.watcher.ignore | as_array) as $ignore | (($ignore | index("agent-task/archive/**")) != null) and (($ignore | index("agent-roadmap/archive/**")) != null)) ' if command -v jq >/dev/null 2>&1; then jq -e "$filter" "$file" >/dev/null 2>&1 else - grep -q "agent-task/archive" "$file" && grep -q "agent-ops/roadmap/archive" "$file" + grep -q "agent-task/archive" "$file" && grep -q "agent-roadmap/archive" "$file" fi } @@ -206,7 +206,7 @@ EOF "watcher": { "ignore": [ "agent-task/archive/**", - "agent-ops/roadmap/archive/**" + "agent-roadmap/archive/**" ] } } diff --git a/agent-ops/rules/common/rules-roadmap.md b/agent-ops/rules/common/rules-roadmap.md index d38775d..28ac15a 100644 --- a/agent-ops/rules/common/rules-roadmap.md +++ b/agent-ops/rules/common/rules-roadmap.md @@ -1,22 +1,22 @@ # 로드맵 규칙 -`agent-ops/roadmap/` 디렉터리가 있는 프로젝트에서만 적용한다. +`agent-roadmap/` 디렉터리가 있는 프로젝트에서만 적용한다. ## 구조 -- 최상위 로드맵은 `agent-ops/roadmap/ROADMAP.md`다. -- 활성 Phase는 `agent-ops/roadmap/phase//PHASE.md`에 둔다. -- 활성 Milestone은 해당 Phase 아래 `agent-ops/roadmap/phase//milestones/.md`에 둔다. +- 최상위 로드맵은 `agent-roadmap/ROADMAP.md`다. +- 활성 Phase는 `agent-roadmap/phase//PHASE.md`에 둔다. +- 활성 Milestone은 해당 Phase 아래 `agent-roadmap/phase//milestones/.md`에 둔다. - ``와 ``는 소문자 영문, 숫자, 하이픈만 사용한다. -- 완료된 Phase는 scaffold 그대로 `agent-ops/roadmap/archive/phase//PHASE.md`로 이동하고, 하위 Milestone도 `archive/phase//milestones/` 아래에 둔다. -- 진행중 Phase 안에서 완료된 Milestone은 활성 `PHASE.md`에 짧은 archive 링크를 남기고, 상세 문서는 `agent-ops/roadmap/archive/phase//milestones/`로 이동한다. +- 완료된 Phase는 scaffold 그대로 `agent-roadmap/archive/phase//PHASE.md`로 이동하고, 하위 Milestone도 `archive/phase//milestones/` 아래에 둔다. +- 진행중 Phase 안에서 완료된 Milestone은 활성 `PHASE.md`에 짧은 archive 링크를 남기고, 상세 문서는 `agent-roadmap/archive/phase//milestones/`로 이동한다. - archive `PHASE.md`는 Phase 자체가 완료/폐기될 때만 만들며, 진행중 Phase의 완료 Milestone만 archive된 경우 archive Phase 디렉터리에 `milestones/`만 있을 수 있다. ## 로딩 -- 세션 최초 1회 `agent-ops/roadmap/current.md`를 읽고 활성 Phase, 활성 Milestone의 이름, 경로, 선택 규칙만 짧게 기억한다. +- 세션 최초 1회 `agent-roadmap/current.md`를 읽고 활성 Phase, 활성 Milestone의 이름, 경로, 선택 규칙만 짧게 기억한다. - 일반 작업에서는 `ROADMAP.md`를 읽지 않는다. -- 일반 작업에서는 `agent-ops/roadmap/archive/**`를 읽지 않는다. +- 일반 작업에서는 `agent-roadmap/archive/**`를 읽지 않는다. - 기능 추가, 구조 변경, 구현 계획 전에는 요청과 변경 파일에 맞는 활성 Phase와 활성 Milestone 문서를 읽는다. - 로드맵 현지점 확인은 `current.md`, `ROADMAP.md`의 Phase 흐름, 활성 `PHASE.md`의 Milestone 흐름, 활성 Milestone의 제목/목표/상태만 기본으로 읽는다. - `ROADMAP.md`는 로드맵 생성/갱신, Phase 추가/삭제/전환, 전체 구조 변경, 활성 범위 밖 작업 확인 때만 읽는다. @@ -25,8 +25,8 @@ ## Phase와 Milestone 선택 - `current.md`는 현재 작업 위치가 아니라 활성 Phase와 활성 Milestone 후보 목록이다. -- 활성 Phase는 `agent-ops/roadmap/phase/**/PHASE.md`만 대상으로 한다. -- 활성 Milestone은 `agent-ops/roadmap/phase/**/milestones/*.md`만 대상으로 한다. +- 활성 Phase는 `agent-roadmap/phase/**/PHASE.md`만 대상으로 한다. +- 활성 Milestone은 `agent-roadmap/phase/**/milestones/*.md`만 대상으로 한다. - `current.md`에는 `[완료]` 또는 `[폐기]` Phase/Milestone을 남기지 않는다. 완료 후보는 승인 전까지 `[검토중]`으로 둔다. - "로드맵에 추가", "마일스톤에 추가"처럼 target 없는 신규 작업 추가 요청은 `update-roadmap` 스킬로 처리하고, Phase/Milestone/Epic/Task 배치를 자동 판단한다. - target 없는 신규 추가 요청은 먼저 요청 규모를 `phase`, `milestone`, `epic`, `task`, `subtask`, `context` 중 가장 작은 충분한 단위로 판정한다. @@ -71,13 +71,13 @@ - entry는 `id`, `locked`, `rely-on[].target`, `rely-on[].status`, `rely-on[].note`만 사용한다. - `locks.yaml`은 root sequence block style을 기본으로 작성한다. 예: `- id: ...` 아래에 `locked`, `rely-on`을 둔다. - `id`는 기본적으로 `<잠긴-project>:<잠긴-milestone-slug>`로 만든다. -- `locked`와 `rely-on[].target`은 `:agent-ops/roadmap/phase//milestones/.md` 형식으로 기록한다. -- Milestone 경로가 `agent-ops/roadmap/...` 상대 경로이면 현재 프로젝트명을 prefix로 붙인다. workspace 하위 절대/상대 경로이면 workspace 바로 아래 디렉터리명을 project로 삼고, 그 뒤 `agent-ops/roadmap/...` 경로를 붙인다. +- `locked`와 `rely-on[].target`은 `:agent-roadmap/phase//milestones/.md` 형식으로 기록한다. +- Milestone 경로가 `agent-roadmap/...` 상대 경로이면 현재 프로젝트명을 prefix로 붙인다. workspace 하위 절대/상대 경로이면 workspace 바로 아래 디렉터리명을 project로 삼고, 그 뒤 `agent-roadmap/...` 경로를 붙인다. - `locked`는 잠긴 Milestone, `rely-on.target`은 선행 조건 Milestone이다. 둘 다 같은 workspace의 어느 활성 Phase 하위 Milestone이어도 된다. 의존 대상이 `current.md`에 있어야 한다고 가정하지 않는다. - "현재 마일스톤은 X 프로젝트 작업 뒤에 진행", "X 프로젝트 때문에 현재 작업 잠금", "의존성 설정해"처럼 잠긴 Milestone을 생략한 외부 의존 잠금 요청은 현재 프로젝트 `current.md`의 활성 Milestone 단일 후보를 잠긴 대상으로 삼는다. - 의존 대상은 명시 경로, 명시 slug, 명시 제목, 잠긴 Milestone 문서의 선행 Milestone 힌트, 대상 프로젝트 `current.md` 단일 후보 순서로 확정한다. - 정규화 비교는 소문자 변환, backtick/따옴표 제거, 영문/숫자가 아닌 연속 문자를 `-` 하나로 치환, 앞뒤 `-` 제거 후 Milestone 파일 slug와 정규화한 제목에 대조한다. -- 의존 대상 탐색은 대상 프로젝트의 `agent-ops/roadmap/phase/*/milestones/*.md` 활성 문서만 대상으로 한다. archive 문서는 사용자가 archive 경로를 명시한 경우 외에는 읽거나 후보로 삼지 않는다. +- 의존 대상 탐색은 대상 프로젝트의 `agent-roadmap/phase/*/milestones/*.md` 활성 문서만 대상으로 한다. archive 문서는 사용자가 archive 경로를 명시한 경우 외에는 읽거나 후보로 삼지 않는다. - 후보가 없거나 둘 이상이면 locks.yaml을 만들거나 고치지 말고 사용자에게 대상 Milestone 선택을 요청한다. - 외부 의존 잠금을 만들 때 대상 Milestone의 `구현 잠금`은 `잠금`으로 둔다. - 새 `rely-on.status`는 선행 Milestone 상태에서 파생한다. `[검토중]` 또는 `[완료]`이면 `enable`, 그 외 상태거나 상태를 확인할 수 없으면 `disable`이다. @@ -135,8 +135,8 @@ - 완료 또는 폐기되어 현재 작업 후보에서 제외할 Phase/Milestone은 `update-roadmap` 스킬로 아카이빙한다. - `[검토중]` Phase/Milestone은 archive 대상이 아니며, 사용자 승인 전까지 활성 경로에 남긴다. -- Phase 아카이브 대상은 `agent-ops/roadmap/archive/phase//PHASE.md`와 같은 scaffold로 이동한다. -- Milestone 아카이브 대상은 `agent-ops/roadmap/archive/phase//milestones/.md`로 이동한다. +- Phase 아카이브 대상은 `agent-roadmap/archive/phase//PHASE.md`와 같은 scaffold로 이동한다. +- Milestone 아카이브 대상은 `agent-roadmap/archive/phase//milestones/.md`로 이동한다. - 아카이빙할 때는 활성 `ROADMAP.md` 또는 활성 `PHASE.md`에 archive 문서 링크와 짧은 요약만 남긴다. - 아카이브된 Phase/Milestone은 `current.md`에 남기지 않고, 일반 Phase/Milestone 선택이나 위치 분석의 후보로 삼지 않는다. - 아카이브 문서는 과거 기록 스냅샷으로 보고, 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다. diff --git a/agent-ops/rules/common/rules.md b/agent-ops/rules/common/rules.md index cbbc8c7..a3f81d4 100644 --- a/agent-ops/rules/common/rules.md +++ b/agent-ops/rules/common/rules.md @@ -6,14 +6,14 @@ - 요청 범위를 넘는 변경을 하지 않는다. - 불확실하면 단정하지 말고 후보를 제시한다. - `agent-task/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. -- `agent-ops/roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. - agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. **세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. 1. `agent-ops/rules/project/rules.md` 2. `agent-ops/rules/private/rules.md` -3. `agent-ops/roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` # 프로젝트 간 잠금 diff --git a/agent-ops/rules/project/domain/workspace-ops/rules.md b/agent-ops/rules/project/domain/workspace-ops/rules.md index 01d0c95..e60a7b1 100644 --- a/agent-ops/rules/project/domain/workspace-ops/rules.md +++ b/agent-ops/rules/project/domain/workspace-ops/rules.md @@ -21,7 +21,7 @@ NomadCode 원레포 운영 도메인이다. 루트 helper, 문서, ignore 정책 - `agent-ops/.version` — agent-ops framework/version marker. - `agent-ops/bin/` — agent-ops 초기화, sync, entry file helper. - `agent-ops/rules/project/` — project/domain rules. -- `agent-ops/roadmap/` — project roadmap, current milestone pointer, milestone documents. +- `agent-roadmap/` — project roadmap, current milestone pointer, milestone documents. ## 제외 경로 @@ -38,15 +38,15 @@ NomadCode 원레포 운영 도메인이다. 루트 helper, 문서, ignore 정책 - `docs/monorepo.md` — monorepo layout 설명. - `AGENTS.md`, `CLAUDE.md`, `GEMINI.md` — agent별 루트 진입 규칙. - `agent-ops/rules/project/rules.md` — 프로젝트 전체 agent routing. -- `agent-ops/roadmap/ROADMAP.md` — 전체 Phase와 Milestone index. -- `agent-ops/roadmap/current.md` — 현재 Phase와 기본 Milestone pointer. +- `agent-roadmap/ROADMAP.md` — 전체 Phase와 Milestone index. +- `agent-roadmap/current.md` — 현재 Phase와 기본 Milestone pointer. - `agent-ops/bin/sync.sh` — agent-ops 동기화 helper. ## 유지할 패턴 - root helper는 누락된 도구를 친절하게 skip하거나 명확히 실패한다. - 공통 agent-ops 영역과 프로젝트 특화 영역을 섞지 않는다. -- roadmap은 `agent-ops/roadmap/`에 두고, 서비스별 README에 Phase 계획을 중복 유지하지 않는다. +- roadmap은 `agent-roadmap/`에 두고, 서비스별 README에 Phase 계획을 중복 유지하지 않는다. - `.gitignore`에는 private rules만 제외하고, `agent-task/archive/**`는 AI ignore/permission 파일에서 제어한다. - 원레포 구조 변경은 README와 docs를 함께 갱신한다. diff --git a/agent-ops/rules/project/rules.md b/agent-ops/rules/project/rules.md index c9485d1..2bb9eb7 100644 --- a/agent-ops/rules/project/rules.md +++ b/agent-ops/rules/project/rules.md @@ -41,7 +41,7 @@ NomadCode는 AI 병렬 작업 운용을 위한 원레포다. 백엔드 오케스 | `services/core/**` | core | `agent-ops/rules/project/domain/core/rules.md` | | `apps/client/**` | mobile | `agent-ops/rules/project/domain/mobile/rules.md` | | `packages/contracts/**` | contracts | `agent-ops/rules/project/domain/contracts/rules.md` | -| `bin/**`, `docs/**`, `README.md`, `.gitignore`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `opencode.json`, `agent-ops/.version`, `agent-ops/bin/**`, `agent-ops/roadmap/**`, `agent-ops/rules/project/**` | workspace-ops | `agent-ops/rules/project/domain/workspace-ops/rules.md` | +| `bin/**`, `docs/**`, `README.md`, `.gitignore`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `opencode.json`, `agent-ops/.version`, `agent-ops/bin/**`, `agent-roadmap/**`, `agent-ops/rules/project/**` | workspace-ops | `agent-ops/rules/project/domain/workspace-ops/rules.md` | ## 스킬 라우팅 diff --git a/agent-ops/skills/common/_templates/roadmap-current-template.md b/agent-ops/skills/common/_templates/roadmap-current-template.md index 628f934..3169df9 100644 --- a/agent-ops/skills/common/_templates/roadmap-current-template.md +++ b/agent-ops/skills/common/_templates/roadmap-current-template.md @@ -3,26 +3,26 @@ ## 활성 Phase - [<스케치 | 계획 | 진행중 | 검토중 | 보류>] - - 경로: `agent-ops/roadmap/phase//PHASE.md` + - 경로: `agent-roadmap/phase//PHASE.md` ## 활성 Milestone - [<스케치 | 계획 | 진행중 | 검토중 | 보류>] - - Phase: `agent-ops/roadmap/phase//PHASE.md` - - 경로: `agent-ops/roadmap/phase//milestones/.md` + - Phase: `agent-roadmap/phase//PHASE.md` + - 경로: `agent-roadmap/phase//milestones/.md` ## 선택 규칙 - 이 문서는 활성 Phase와 활성 Milestone 후보 목록이며, 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다. -- 활성 Phase는 `agent-ops/roadmap/phase//PHASE.md`를 가리킨다. -- 활성 Milestone은 `agent-ops/roadmap/phase//milestones/.md`를 가리킨다. +- 활성 Phase는 `agent-roadmap/phase//PHASE.md`를 가리킨다. +- 활성 Milestone은 `agent-roadmap/phase//milestones/.md`를 가리킨다. - 활성 항목은 아카이브 경로를 포함하지 않는다. - `[검토중]` 항목은 사용자 완료 확인 전까지 활성 항목으로 남길 수 있다. - `[스케치]` 항목은 활성 후보로 남길 수 있지만 구현 계획 생성 대상은 아니며, `[계획]` 승격 조건을 정리하는 대상으로만 다룬다. - `[완료]` 또는 `[폐기]` 항목은 archive 링크를 남긴 뒤 활성 항목에서 제거한다. - 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Phase와 Milestone을 선택하고 같은 세션에서 1회 읽는다. - 활성 Phase 또는 Milestone 둘 이상에 걸치면 필요한 문서를 모두 읽고 작업 범위를 좁힌다. -- 활성 범위 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. +- 활성 범위 밖의 작업이면 `agent-roadmap/ROADMAP.md`의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. - 완료된 과거 내용이 필요할 때만 `ROADMAP.md` 또는 `PHASE.md`에 있는 archive 링크를 따라가서 읽는다. - 선택된 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 36f9878..669bc84 100644 --- a/agent-ops/skills/common/_templates/roadmap-milestone-template.md +++ b/agent-ops/skills/common/_templates/roadmap-milestone-template.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-ops/roadmap/ROADMAP.md` -- Phase: `agent-ops/roadmap/phase//PHASE.md` +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase//PHASE.md` ## 목표 diff --git a/agent-ops/skills/common/_templates/roadmap-phase-template.md b/agent-ops/skills/common/_templates/roadmap-phase-template.md index a35a127..08daa5d 100644 --- a/agent-ops/skills/common/_templates/roadmap-phase-template.md +++ b/agent-ops/skills/common/_templates/roadmap-phase-template.md @@ -15,7 +15,7 @@ 스케치 Milestone은 아직 구현 가능한 계획이 아니므로 계획 Milestone보다 아래에 둔다. - [<스케치 | 계획 | 진행중 | 검토중 | 완료 | 보류 | 폐기>] - - 경로: `agent-ops/roadmap/phase//milestones/.md` 또는 `agent-ops/roadmap/archive/phase//milestones/.md` + - 경로: `agent-roadmap/phase//milestones/.md` 또는 `agent-roadmap/archive/phase//milestones/.md` - 요약: <목표 또는 결과 1문장> ## Phase 경계 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 14c210e..ac7f9f5 100644 --- a/agent-ops/skills/common/_templates/roadmap-position-report-template.md +++ b/agent-ops/skills/common/_templates/roadmap-position-report-template.md @@ -1,12 +1,12 @@ # 로드맵 현지점 -- [current.md](agent-ops/roadmap/current.md) +- [current.md](agent-roadmap/current.md) -- [로드맵: ](agent-ops/roadmap/ROADMAP.md) - - [Phase: ](agent-ops/roadmap/phase//PHASE.md) - - [Milestone: ](agent-ops/roadmap/phase//milestones/.md) +- [로드맵: ](agent-roadmap/ROADMAP.md) + - [Phase: ](agent-roadmap/phase//PHASE.md) + - [Milestone: ](agent-roadmap/phase//milestones/.md) - [<상태>] <목표 또는 역할 한 줄> - - [Milestone: ](agent-ops/roadmap/phase//milestones/.md) + - [Milestone: ](agent-roadmap/phase//milestones/.md) - [<상태>] <목표 또는 역할 한 줄> ## 전체 Phase 흐름 diff --git a/agent-ops/skills/common/_templates/roadmap-template.md b/agent-ops/skills/common/_templates/roadmap-template.md index 6daeb4b..a8ecce3 100644 --- a/agent-ops/skills/common/_templates/roadmap-template.md +++ b/agent-ops/skills/common/_templates/roadmap-template.md @@ -12,18 +12,18 @@ 스케치 Phase는 아직 구현 가능한 계획이 아니므로 계획 Phase보다 아래에 둔다. - [<스케치 | 계획 | 진행중 | 검토중 | 완료 | 보류 | 폐기>] - - 경로: `agent-ops/roadmap/phase//PHASE.md` 또는 `agent-ops/roadmap/archive/phase//PHASE.md` + - 경로: `agent-roadmap/phase//PHASE.md` 또는 `agent-roadmap/archive/phase//PHASE.md` - 요약: <이 Phase의 목표와 역할 1문장> ## 로딩 정책 -- 일반 작업에서는 `agent-ops/roadmap/ROADMAP.md`를 매번 읽지 않는다. -- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-ops/roadmap/current.md`를 먼저 읽는다. +- 일반 작업에서는 `agent-roadmap/ROADMAP.md`를 매번 읽지 않는다. +- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-roadmap/current.md`를 먼저 읽는다. - `current.md`는 현재 작업 위치가 아니라 활성 Phase와 활성 Milestone 후보 목록이다. - `current.md`에는 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다. -- `current.md`의 활성 Phase는 `agent-ops/roadmap/phase//PHASE.md`를 가리킨다. -- `current.md`의 활성 Milestone은 `agent-ops/roadmap/phase//milestones/.md`를 가리킨다. -- `current.md`는 `agent-ops/roadmap/archive/**` 경로를 활성 항목으로 포함하지 않는다. +- `current.md`의 활성 Phase는 `agent-roadmap/phase//PHASE.md`를 가리킨다. +- `current.md`의 활성 Milestone은 `agent-roadmap/phase//milestones/.md`를 가리킨다. +- `current.md`는 `agent-roadmap/archive/**` 경로를 활성 항목으로 포함하지 않는다. - 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 활성 Phase와 Milestone 문서를 같은 세션에서 1회 읽는다. - 활성 Phase 또는 Milestone 밖의 작업이면 이 문서의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. - 이 문서는 로드맵 생성/갱신, Phase 전환, Phase 추가/수정, 전체 구조 변경 요청이 있을 때만 읽는다. @@ -31,10 +31,10 @@ - `[스케치]` Phase/Milestone은 방향성, 문제의식, 후보 범위, 미정 질문을 기록하는 컨셉 상태이며 구현 계획 생성 대상이 아니다. - `[스케치]` 항목은 `승격 조건`을 정리해 `[계획]`으로 전환한 뒤 구현 계획을 만든다. - 모든 기능 Task와 Task 안에 명시된 검증이 충족된 Milestone은 먼저 `[검토중]`으로 두고, 사용자 완료 확인과 archive 승인을 받은 뒤 `[완료]`로 전환한다. -- 완료된 Phase는 `agent-ops/roadmap/archive/phase//PHASE.md`로 이동하고, 하위 Milestone도 같은 archive Phase scaffold 아래에 둔다. -- 진행중 Phase 안에서 완료된 Milestone은 활성 Phase 문서에 짧은 링크를 남기고, 상세 문서는 `agent-ops/roadmap/archive/phase//milestones/`로 이동한다. +- 완료된 Phase는 `agent-roadmap/archive/phase//PHASE.md`로 이동하고, 하위 Milestone도 같은 archive Phase scaffold 아래에 둔다. +- 진행중 Phase 안에서 완료된 Milestone은 활성 Phase 문서에 짧은 링크를 남기고, 상세 문서는 `agent-roadmap/archive/phase//milestones/`로 이동한다. - archive `PHASE.md`는 Phase 자체가 완료 또는 폐기될 때만 만들며, 진행중 Phase의 완료 Milestone만 archive된 경우 archive Phase 디렉터리에 `milestones/`만 있을 수 있다. -- `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `ROADMAP.md` 또는 `PHASE.md`의 archive 링크를 따라가서 읽는다. +- `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `ROADMAP.md` 또는 `PHASE.md`의 archive 링크를 따라가서 읽는다. - 아카이브된 Phase/Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다. - 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하기 전에 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인한다. - 현재 요청과 직접 관련 없는 미정 항목은 잠금 상태로 남겨도 되며, 기존 구조/도메인 rule/플랫폼 관례로 정할 수 있는 작업은 표준선으로 기록하고 진행할 수 있다. diff --git a/agent-ops/skills/common/analyze-roadmap-position/SKILL.md b/agent-ops/skills/common/analyze-roadmap-position/SKILL.md index 16cf3b3..44d8728 100644 --- a/agent-ops/skills/common/analyze-roadmap-position/SKILL.md +++ b/agent-ops/skills/common/analyze-roadmap-position/SKILL.md @@ -22,8 +22,8 @@ description: "여러 레포를 전환할 때 코드/git 분석 없이 전체 ROA ## 먼저 확인할 것 - [ ] `agent-ops/skills/common/_templates/roadmap-position-report-template.md`를 읽어 최신 답변 템플릿 확인 -- [ ] `agent-ops/roadmap/` 디렉터리 존재 여부 확인 -- [ ] `agent-ops/roadmap/current.md` 존재 여부 확인 +- [ ] `agent-roadmap/` 디렉터리 존재 여부 확인 +- [ ] `agent-roadmap/current.md` 존재 여부 확인 - [ ] 로드맵이 있으면 `ROADMAP.md`의 `Phase 흐름`을 확인 - [ ] `current.md`의 활성 Phase와 활성 Milestone 이름, 상태, 경로 확인 - [ ] 활성 Phase 문서의 `Milestone 흐름` 확인 @@ -31,10 +31,10 @@ description: "여러 레포를 전환할 때 코드/git 분석 없이 전체 ROA ## 실행 절차 -1. `agent-ops/roadmap/` 존재 여부를 확인한다. +1. `agent-roadmap/` 존재 여부를 확인한다. - 없으면 로드맵 없음으로 짧게 보고하고 멈춘다. 2. `agent-ops/skills/common/_templates/roadmap-position-report-template.md`를 읽는다. -3. `agent-ops/roadmap/current.md`를 확인한다. +3. `agent-roadmap/current.md`를 확인한다. - 없으면 current 없음으로 보고하고, `ROADMAP.md`가 있으면 `Phase 흐름`만 보여준다. 4. `ROADMAP.md`의 `Phase 흐름`을 읽어 전체 Phase 목록을 만든다. - 각 Phase는 상태, 이름, 링크만 남긴다. @@ -71,4 +71,4 @@ description: "여러 레포를 전환할 때 코드/git 분석 없이 전체 ROA - 기본 동작에서 Milestone의 `기능` 체크리스트를 감사하지 않는다. - 완료 여부, 남은 작업, 코드와 문서의 동기화 상태를 evidence 기반으로 판정하지 않는다. - 사용자가 명시하지 않은 상태에서 `ROADMAP.md`, `current.md`, Phase, Milestone 문서를 수정하지 않는다. -- 사용자가 과거 기록 확인을 명시하지 않으면 `agent-ops/roadmap/archive/**`를 읽지 않는다. +- 사용자가 과거 기록 확인을 명시하지 않으면 `agent-roadmap/archive/**`를 읽지 않는다. diff --git a/agent-ops/skills/common/check-roadmap-dependency/SKILL.md b/agent-ops/skills/common/check-roadmap-dependency/SKILL.md index e9a0917..50c6531 100644 --- a/agent-ops/skills/common/check-roadmap-dependency/SKILL.md +++ b/agent-ops/skills/common/check-roadmap-dependency/SKILL.md @@ -22,7 +22,7 @@ Milestone identity 역검색과 개별 lock 판별은 `agent-ops/bin/roadmap-dep ## 입력 - `lock-id`: 확인할 lock entry id. 예: `oto:oto-agent-registration`. 명시되면 이 id만 판별한다 (선택) -- `target-milestone`: 확인할 Milestone path 또는 `:agent-ops/roadmap/phase/.../milestones/.md`. 없으면 현재 프로젝트 `current.md`의 활성 Milestone 단일 후보를 사용한다 (선택) +- `target-milestone`: 확인할 Milestone path 또는 `:agent-roadmap/phase/.../milestones/.md`. 없으면 현재 프로젝트 `current.md`의 활성 Milestone 단일 후보를 사용한다 (선택) - `direction`: `locked` / `rely-on` / `both`. 기본값은 `both`다. `locked`는 대상 Milestone이 잠긴 entry만, `rely-on`은 대상 Milestone을 선행 조건으로 삼는 entry만 확인한다 (선택) - `locks-file`: 기본값은 프로젝트 상위 `.agent-roadmap-sync/locks.yaml`이며, 다른 파일을 검사할 때만 지정한다 (선택) @@ -39,10 +39,10 @@ Milestone identity 역검색과 개별 lock 판별은 `agent-ops/bin/roadmap-dep - `locks-file`이 명시되지 않았으면 프로젝트 상위 `.agent-roadmap-sync/locks.yaml`을 사용한다. - `locks-file`이 없거나 읽을 수 없으면 결과를 `error`로 보고한다. 이를 미충족 의존성으로 해석하지 않는다. - `lock-id`가 있으면 그 id만 판별한다. - - `lock-id`가 없으면 `target-milestone` 또는 현재 프로젝트 `agent-ops/roadmap/current.md`의 활성 Milestone 단일 후보로 Milestone identity를 만든다. - - Milestone identity는 `:agent-ops/roadmap/phase//milestones/.md` 형식이다. - - `target-milestone`이 `agent-ops/roadmap/...` 상대 경로이면 현재 프로젝트명을 prefix로 붙인다. - - `target-milestone`이 workspace 하위 절대/상대 경로이면 workspace 바로 아래 디렉터리명을 project로 삼고, 그 뒤 `agent-ops/roadmap/...` 경로를 붙인다. + - `lock-id`가 없으면 `target-milestone` 또는 현재 프로젝트 `agent-roadmap/current.md`의 활성 Milestone 단일 후보로 Milestone identity를 만든다. + - Milestone identity는 `:agent-roadmap/phase//milestones/.md` 형식이다. + - `target-milestone`이 `agent-roadmap/...` 상대 경로이면 현재 프로젝트명을 prefix로 붙인다. + - `target-milestone`이 workspace 하위 절대/상대 경로이면 workspace 바로 아래 디렉터리명을 project로 삼고, 그 뒤 `agent-roadmap/...` 경로를 붙인다. - `target-milestone`이 archive 경로이면 일반 의존 판별 후보로 쓰지 말고 사용자에게 활성 Milestone 선택을 요청한다. - 활성 Milestone 후보가 없거나 둘 이상이면 추정하지 말고 사용자에게 lock id 또는 Milestone 선택을 요청한다. - `lock-id`가 없으면 `agent-ops/bin/roadmap-dependency-checker.sh --find-milestone "" "" ""`로 Milestone identity와 일치하는 entry를 찾는다. diff --git a/agent-ops/skills/common/code-review/SKILL.md b/agent-ops/skills/common/code-review/SKILL.md index 87c8d73..2b82775 100644 --- a/agent-ops/skills/common/code-review/SKILL.md +++ b/agent-ops/skills/common/code-review/SKILL.md @@ -80,7 +80,7 @@ Milestone task group contract: - `agent-task/m-/` is reserved for Milestone-linked work created by the plan skill. - Do not treat normal task groups that do not start with `m-` as runtime milestone completion targets. - For a selected task path, parse only the first path segment as `{task_group}`. If it matches `^m-[a-z0-9][a-z0-9-]*$`, strip `m-` to get ``. -- Do not read or modify `agent-ops/roadmap/**` for milestone routing during code-review finalization. +- Do not read or modify `agent-roadmap/**` for milestone routing during code-review finalization. - Do not call `update-roadmap` from this skill. The runtime consumes the PASS completion event, checks current state, resolves the active Milestone, and calls `update-roadmap` if needed. - For `m-` PASS tasks, report the original active task path, final archive path, complete log path, task group, and milestone slug so the runtime has deterministic event inputs. @@ -358,7 +358,7 @@ After Step 6: - Do not overwrite an existing archive directory. If `agent-task/archive/YYYY/MM/{task_name}/` already exists, append the next numeric suffix to the final path segment: single-plan `agent-task/archive/YYYY/MM/{task_group}_1/`, split-plan `agent-task/archive/YYYY/MM/{task_group}/{subtask_dir}_1/`, and so on. - After moving a split subtask, remove the active parent `agent-task/{task_group}/` only if it is empty. If sibling subtask directories or other files remain, leave the parent task group in place. - If verdict is `PASS` and `{task_group}` matches `m-`, do not resolve the roadmap target and do not call `update-roadmap`. Report completion event metadata after the task archive move: `origin-task=agent-task/{task_name}` from the original active task path, `task-group={task_group}`, `milestone-slug=`, final archive path, `complete.log` path, and archived plan/review log paths. -- The runtime consumes that completion event, checks current state, resolves `agent-ops/roadmap/phase/*/milestones/.md`, and calls `update-roadmap` if needed. +- The runtime consumes that completion event, checks current state, resolves `agent-roadmap/phase/*/milestones/.md`, and calls `update-roadmap` if needed. - `WARN` and `FAIL` do not update the roadmap Milestone; the follow-up plan remains under the same `m-` task group when the original task was Milestone-linked. - `USER_REVIEW` does not update the roadmap Milestone and does not produce PASS completion metadata. Keep the active task directory in place with `USER_REVIEW.md` and archived plan/review logs until the user decides how to resume, replan, defer, or abandon the task. - If `USER_REVIEW.md` is later resolved as complete/PASS by user decision and evidence, write `complete.log`, move the task directory to archive, and report `m-*` PASS completion metadata just like a normal `PASS`. diff --git a/agent-ops/skills/common/create-readme/SKILL.md b/agent-ops/skills/common/create-readme/SKILL.md index fe9875f..9a56647 100644 --- a/agent-ops/skills/common/create-readme/SKILL.md +++ b/agent-ops/skills/common/create-readme/SKILL.md @@ -76,7 +76,7 @@ README는 프로젝트 특성에 맞게 필요한 섹션만 사용하되, 기본 - README 상단에는 프로젝트가 무엇을 해결하는지와 현재 사용할 수 있는 범위를 먼저 쓴다. - AI가 작업을 이어받을 때 필요한 경로, 명령, 검증 방법, 주요 문서를 명확한 제목과 표로 정리한다. - `agent-ops/`가 있으면 규칙, 로드맵, 스킬 문서를 참고 문서나 작업 맥락에 연결한다. -- `agent-ops/roadmap/current.md`가 있으면 README에 현재 작업 위치를 복사하지 말고, 로드맵을 확인할 문서 경로만 적는다. +- `agent-roadmap/current.md`가 있으면 README에 현재 작업 위치를 복사하지 말고, 로드맵을 확인할 문서 경로만 적는다. - README는 제품 소개 문서이면서 작업 진입점이다. 마케팅 문구보다 실행 가능한 정보와 프로젝트 경계를 우선한다. - 불확실한 내용은 단정하지 않고 `TODO` 또는 "확인 필요"로 남긴다. @@ -85,7 +85,7 @@ README는 프로젝트 특성에 맞게 필요한 섹션만 사용하되, 기본 - [ ] 루트 `README.md` 존재 여부와 기존 내용 확인 - [ ] `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `Makefile`, `docker-compose.yml` 등 실행/검증 명령 근거 확인 - [ ] `agent-ops/rules/project/rules.md`가 있으면 프로젝트 개요, 기술 스택, 도메인 매핑 확인 -- [ ] `agent-ops/roadmap/ROADMAP.md` 또는 `agent-ops/roadmap/current.md`가 있으면 제품 방향과 활성 Milestone 문서 경로만 확인 +- [ ] `agent-roadmap/ROADMAP.md` 또는 `agent-roadmap/current.md`가 있으면 제품 방향과 활성 Milestone 문서 경로만 확인 - [ ] 주요 소스 디렉터리와 테스트 디렉터리를 `rg --files`로 가볍게 확인 ## 실행 절차 diff --git a/agent-ops/skills/common/create-roadmap/SKILL.md b/agent-ops/skills/common/create-roadmap/SKILL.md index c294a1f..33322f0 100644 --- a/agent-ops/skills/common/create-roadmap/SKILL.md +++ b/agent-ops/skills/common/create-roadmap/SKILL.md @@ -8,7 +8,7 @@ description: AI-first 개인/소규모 프로젝트의 전체 목표, Phase scaf ## 목적 -`agent-ops/roadmap/` 하위에 `Roadmap -> Phase -> Milestone` 기반 한국어 로드맵 구조를 처음 생성한다. +`agent-roadmap/` 하위에 `Roadmap -> Phase -> Milestone` 기반 한국어 로드맵 구조를 처음 생성한다. 전체 로드맵은 전체 방향과 Phase index만 담당하고, 일반 작업에서는 `current.md`의 활성 Phase/Milestone 링크와 관련 문서만 읽도록 만든다. Milestone은 구현 계획이 아니라 방향성, 범위, 위험, 확인 필요 사항을 기록하는 협업 문서다. Epic과 Task는 별도 파일로 분리하지 않고 Milestone 문서의 `기능` 안에서 관리한다. 별도 `완료 기준` 섹션은 만들지 않고, 검증이 필요한 기능에만 같은 Task 안의 `검증:` 문구로 통합한다. @@ -17,7 +17,7 @@ Epic과 Task는 별도 파일로 분리하지 않고 Milestone 문서의 `기능 - 프로젝트에 파일 기반 로드맵을 처음 만들 때 - 사용자가 "로드맵 만들어줘", "마일스톤 설계해줘", "goal/phase 구조 잡아줘"라고 요청할 때 -- 기존 README나 메모에 흩어진 계획을 `agent-ops/roadmap/` 구조로 분리할 때 +- 기존 README나 메모에 흩어진 계획을 `agent-roadmap/` 구조로 분리할 때 ## 입력 @@ -30,8 +30,7 @@ Epic과 Task는 별도 파일로 분리하지 않고 Milestone 문서의 `기능 ## 생성 구조 ```text -agent-ops/ - roadmap/ +agent-roadmap/ ROADMAP.md current.md phase/ @@ -49,11 +48,11 @@ agent-ops/ | 파일 | 역할 | |------|------| -| `agent-ops/roadmap/ROADMAP.md` | 전체 목표와 Phase 흐름만 담는 최상위 지도. 로드맵 생성/갱신/Phase 전환 때만 읽는다 | -| `agent-ops/roadmap/current.md` | 활성 Phase와 활성 Milestone 후보, 선택 규칙을 담는 얇은 포인터 | -| `agent-ops/roadmap/phase//PHASE.md` | Phase 목표, 상태, Milestone 흐름, Phase 경계를 담는 문서 | -| `agent-ops/roadmap/phase//milestones/.md` | 일반 작업 시 읽는 Milestone 단위 목표, 스케치 승격 조건, 구현 잠금, 범위, 기능 Epic/Task 체크리스트, 범위 제외 항목 | -| `agent-ops/roadmap/archive/phase//...` | 완료 또는 폐기되어 현재 후보에서 제외한 과거 Phase/Milestone. 일반 작업에서는 읽지 않는다 | +| `agent-roadmap/ROADMAP.md` | 전체 목표와 Phase 흐름만 담는 최상위 지도. 로드맵 생성/갱신/Phase 전환 때만 읽는다 | +| `agent-roadmap/current.md` | 활성 Phase와 활성 Milestone 후보, 선택 규칙을 담는 얇은 포인터 | +| `agent-roadmap/phase//PHASE.md` | Phase 목표, 상태, Milestone 흐름, Phase 경계를 담는 문서 | +| `agent-roadmap/phase//milestones/.md` | 일반 작업 시 읽는 Milestone 단위 목표, 스케치 승격 조건, 구현 잠금, 범위, 기능 Epic/Task 체크리스트, 범위 제외 항목 | +| `agent-roadmap/archive/phase//...` | 완료 또는 폐기되어 현재 후보에서 제외한 과거 Phase/Milestone. 일반 작업에서는 읽지 않는다 | ## 템플릿 @@ -73,8 +72,8 @@ agent-ops/ - `[계획]`은 목표, 범위, 기능 Task, 구현 잠금, 결정 필요 항목이 정리되어 구현 계획을 만들 수 있는 상태다. - Phase와 Milestone 이름, 파일명에는 `1`, `2`, `M01`, `P1` 같은 순번을 붙이지 않는다. - 진행 순서는 `ROADMAP.md`와 각 `PHASE.md`의 위에서 아래 순서로 표현한다. -- Phase 파일명은 `agent-ops/roadmap/phase//PHASE.md`로 만든다. -- Milestone 파일명은 `agent-ops/roadmap/phase//milestones/.md`로 만든다. +- Phase 파일명은 `agent-roadmap/phase//PHASE.md`로 만든다. +- Milestone 파일명은 `agent-roadmap/phase//milestones/.md`로 만든다. - ``와 ``는 소문자 영문, 숫자, 하이픈만 사용하고, 공백/언더스코어/순번 prefix를 넣지 않는다. - 중간에 Phase나 Milestone을 끼워 넣을 수 있도록 기존 항목의 이름과 파일명을 불필요하게 바꾸지 않는다. @@ -98,7 +97,7 @@ agent-ops/ ## 먼저 확인할 것 -- [ ] `agent-ops/roadmap/ROADMAP.md` 또는 `agent-ops/roadmap/current.md`가 이미 존재하는지 확인 +- [ ] `agent-roadmap/ROADMAP.md` 또는 `agent-roadmap/current.md`가 이미 존재하는지 확인 - [ ] 이미 존재하면 덮어쓰지 말고 `update-roadmap` 스킬 사용을 안내 - [ ] `README.md`, `agent-ops/GUIDE.md`, `agent-ops/rules/project/rules.md` 등 프로젝트 방향을 설명하는 문서를 확인 - [ ] `rg --files`로 현재 프로젝트의 주요 구조를 가볍게 확인 @@ -108,7 +107,7 @@ agent-ops/ ## 실행 절차 1. **기존 로드맵 확인** - - `agent-ops/roadmap/` 하위 기존 파일 존재 여부를 확인한다. + - `agent-roadmap/` 하위 기존 파일 존재 여부를 확인한다. - 기존 로드맵이 있으면 새로 만들지 않고 `update-roadmap`을 사용하도록 안내한다. 2. **프로젝트 방향 분석** @@ -133,7 +132,7 @@ agent-ops/ 5. **검증** - 생성한 링크가 실제 파일을 가리키는지 확인한다. - - `current.md` 활성 항목에 `agent-ops/roadmap/archive/**` 경로가 없는지 확인한다. + - `current.md` 활성 항목에 `agent-roadmap/archive/**` 경로가 없는지 확인한다. - Epic heading과 Task 체크리스트 id가 형식을 따르는지 확인한다. - 상태 표기가 `[진행중]`처럼 공백 없는 표준값인지 확인한다. - `[스케치]` Milestone에 `승격 조건` 섹션이 있고 `구현 잠금`이 `잠금`인지 확인한다. @@ -144,8 +143,8 @@ agent-ops/ ```markdown ## 생성 완료 -- 로드맵: agent-ops/roadmap/ROADMAP.md -- 현재 컨텍스트: agent-ops/roadmap/current.md +- 로드맵: agent-roadmap/ROADMAP.md +- 현재 컨텍스트: agent-roadmap/current.md - Phase 문서: - Milestone 문서: - 활성 Phase: @@ -156,8 +155,8 @@ agent-ops/ ## 활성 항목 -- Phase: : agent-ops/roadmap/phase//PHASE.md -- Milestone: : agent-ops/roadmap/phase//milestones/.md +- Phase: : agent-roadmap/phase//PHASE.md +- Milestone: : agent-roadmap/phase//milestones/.md ## TODO 항목 @@ -166,9 +165,9 @@ agent-ops/ ## 금지 사항 -- 기존 `agent-ops/roadmap/` 파일을 덮어쓰지 않는다. +- 기존 `agent-roadmap/` 파일을 덮어쓰지 않는다. - 일반 작업마다 전체 `ROADMAP.md`를 읽도록 규칙을 만들지 않는다. -- `current.md`에 `agent-ops/roadmap/archive/**` 경로를 넣지 않는다. +- `current.md`에 `agent-roadmap/archive/**` 경로를 넣지 않는다. - Phase와 Milestone 이름 또는 파일명에 순번을 강제하지 않는다. - `ROADMAP.md`에 Milestone 상세 작업 체크리스트를 넣지 않는다. - Epic과 Task를 별도 파일로 분리하지 않는다. diff --git a/agent-ops/skills/common/init-agent-ops/SKILL.md b/agent-ops/skills/common/init-agent-ops/SKILL.md index 7fb0964..36d4b54 100644 --- a/agent-ops/skills/common/init-agent-ops/SKILL.md +++ b/agent-ops/skills/common/init-agent-ops/SKILL.md @@ -71,8 +71,8 @@ description: 프로젝트 상태를 판별하고 agent-ops 기본 스캐폴드 | `agent-ops/rules/project/domain//rules.md` | 도메인 분석 후 생성 | | `agent-ops/rules/private/` | 폴더만 생성 (내용은 개인이 작성) | | `.gitignore`에 `agent-ops/rules/private/` 추가 | git 추적 제외 | -| `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore` | 사용자 항목은 보존하고 Agent-Ops 관리 block에 `agent-task/archive/**`, `agent-ops/roadmap/archive/**` 추가 | -| `.claude/settings.json`, `opencode.json` | `agent-task/archive/**` 읽기/검색 제외 설정을 생성 또는 병합한다. `agent-ops/roadmap/archive/**`는 필요 시 링크로 읽을 수 있어야 하므로 hard read/glob deny에서 제거한다 | +| `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore` | 사용자 항목은 보존하고 Agent-Ops 관리 block에 `agent-task/archive/**`, `agent-roadmap/archive/**` 추가 | +| `.claude/settings.json`, `opencode.json` | `agent-task/archive/**` 읽기/검색 제외 설정을 생성 또는 병합한다. `agent-roadmap/archive/**`는 필요 시 링크로 읽을 수 있어야 하므로 hard read/glob deny에서 제거한다 | 에이전트별 파일명: @@ -178,12 +178,12 @@ common/rules.md와 내용이 중복되지 않도록 한다. 3. **AI ignore / permission 기본 설정** - `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에는 사용자 항목을 건드리지 않고 Agent-Ops 관리 block만 추가하거나 교체한다 - - Agent-Ops 관리 block에는 `agent-task/archive/**`와 `agent-ops/roadmap/archive/**`를 넣는다 + - Agent-Ops 관리 block에는 `agent-task/archive/**`와 `agent-roadmap/archive/**`를 넣는다 - `.claude/settings.json`, `opencode.json`이 없으면 `agent-task/archive/**` 읽기/검색 제외 설정을 생성하고, 있으면 가능한 경우 기존 설정을 보존하며 필요한 제외 설정만 병합한다 - - `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않도록 AI ignore와 로드맵 규칙으로 제한하되, `.claude/settings.json`이나 `opencode.json`의 hard read/glob deny에는 두지 않는다 - - 기존 `.claude/settings.json`이나 `opencode.json`에 `agent-ops/roadmap/archive/**` hard read/glob deny가 있으면 init-agent-ops 표준에 맞게 제거한다 + - `agent-roadmap/archive/**`는 일반 작업에서 읽지 않도록 AI ignore와 로드맵 규칙으로 제한하되, `.claude/settings.json`이나 `opencode.json`의 hard read/glob deny에는 두지 않는다 + - 기존 `.claude/settings.json`이나 `opencode.json`에 `agent-roadmap/archive/**` hard read/glob deny가 있으면 init-agent-ops 표준에 맞게 제거한다 - 대상 루트에 `.agent-ops-source`가 있으면 AI ignore / permission 파일은 보강하지 않는다 - - `agent-task/archive/**`와 `agent-ops/roadmap/archive/**` 제외는 `.gitignore`에 추가하지 않는다 + - `agent-task/archive/**`와 `agent-roadmap/archive/**` 제외는 `.gitignore`에 추가하지 않는다 4. **agent-ops 폴더 구조 복사** - 공통 관리 레포의 `agent-ops/` 공통 폴더(bin, rules/common, skills/common)를 복사한다 @@ -237,17 +237,17 @@ common/rules.md와 내용이 중복되지 않도록 한다. - [ ] 생성된 domain rules.md가 `domain-rule-template.md` 형식을 따르는가 - [ ] `rules/project/rules.md`의 도메인 매핑 테이블에 생성된 도메인이 모두 등록되어 있는가 - [ ] `.gitignore`에 `agent-ops/rules/private/` 항목이 추가되어 있는가 -- [ ] `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에 Agent-Ops 관리 block이 있고 그 안에 `agent-task/archive/**`와 `agent-ops/roadmap/archive/**`가 포함되어 있는가 +- [ ] `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에 Agent-Ops 관리 block이 있고 그 안에 `agent-task/archive/**`와 `agent-roadmap/archive/**`가 포함되어 있는가 - [ ] `.claude/settings.json`, `opencode.json`에 `agent-task/archive/**` 제외 설정이 있거나, 병합 불가 시 수동 병합 안내를 출력했는가 -- [ ] `.claude/settings.json`, `opencode.json`에 `agent-ops/roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 -- [ ] 기존 `agent-ops/roadmap/archive/**` hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 -- [ ] `.gitignore`에 `agent-task/archive/**` 또는 `agent-ops/roadmap/archive/**`를 추가하지 않았는가 +- [ ] `.claude/settings.json`, `opencode.json`에 `agent-roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 +- [ ] 기존 `agent-roadmap/archive/**` hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 +- [ ] `.gitignore`에 `agent-task/archive/**` 또는 `agent-roadmap/archive/**`를 추가하지 않았는가 - 검증 실패 시: 누락된 파일/항목을 사용자에게 알리고 해당 부분만 보완한다 ## 금지 사항 - 진입 파일에 rules/common/rules.md 외 내용을 추가하지 않는다. -- `agent-task/archive/**`와 `agent-ops/roadmap/archive/**` 제외를 `.gitignore`에 추가하지 않는다. +- `agent-task/archive/**`와 `agent-roadmap/archive/**` 제외를 `.gitignore`에 추가하지 않는다. - 실제 구조보다 앞선 추상 구조를 강요하지 않는다. - 처음부터 많은 domain / skill을 만들지 않는다. - rules/common/rules.md를 프로젝트에서 직접 수정하지 않는다. diff --git a/agent-ops/skills/common/plan/SKILL.md b/agent-ops/skills/common/plan/SKILL.md index ac4b9d7..78cd2a1 100644 --- a/agent-ops/skills/common/plan/SKILL.md +++ b/agent-ops/skills/common/plan/SKILL.md @@ -65,7 +65,7 @@ Task directory naming rules: - A normal single-plan task uses `agent-task/{task_group}/` with a short snake_case category name, e.g. `agent-task/refactoring/`. - If the plan is based on a selected active Milestone, use `agent-task/m-/` as the task group. Do not include the Phase slug, Epic id, Task id, or a separate task slug in the task group. - `m-` is a reserved top-level task group namespace for Milestone-linked work. Non-roadmap tasks must not use `m-`. -- Runtime completion-event routing for `m-*` reads only the top-level `{task_group}` name. It resolves `` by matching exactly one active file at `agent-ops/roadmap/phase/*/milestones/.md`; archive paths are not target candidates. +- Runtime completion-event routing for `m-*` reads only the top-level `{task_group}` name. It resolves `` by matching exactly one active file at `agent-roadmap/phase/*/milestones/.md`; archive paths are not target candidates. - When split gates require decomposition, create one shared category folder and multiple subtask directories under it. Each subtask directory owns exactly one normal active plan file and one normal active review stub. - Multi-plan output is a set of independent `PLAN-{build_lane}-GNN.md` + `CODE_REVIEW-{review_lane}-GNN.md` pairs across `agent-task/{task_group}/{subtask_dir}/` folders, not multiple plan files inside one folder. - Multi-plan subtask directory names must start with a stable two-digit task index. The index must increase across sibling subtask directories for sorting, but it is not a serial execution dependency. @@ -133,8 +133,8 @@ If a selected task directory contains both `USER_REVIEW.md` and active `PLAN-*-G 로드맵 확인: -- `agent-ops/roadmap/current.md`가 있으면 구현 계획 파일을 만들기 전에 읽고, 사용자 요청, 브랜치, 변경 경로를 기준으로 관련 Phase와 Milestone을 선택한다. -- `current.md`가 `agent-ops/roadmap/archive/**`를 가리키면 해당 문서는 읽지 말고 활성 Phase/Milestone이 아니라고 보고한다. +- `agent-roadmap/current.md`가 있으면 구현 계획 파일을 만들기 전에 읽고, 사용자 요청, 브랜치, 변경 경로를 기준으로 관련 Phase와 Milestone을 선택한다. +- `current.md`가 `agent-roadmap/archive/**`를 가리키면 해당 문서는 읽지 말고 활성 Phase/Milestone이 아니라고 보고한다. - 선택한 Phase를 한 번 읽어 Phase 목표, Milestone 흐름, Phase 경계를 확인한다. - 선택한 Milestone을 한 번 읽어 목표, 상태, 승격 조건, 범위, 기능 Task, 완료 리뷰, 범위 제외, 구현 잠금을 확인한다. `승격 조건`은 `[스케치]`에서만 필수이며, `[계획]` 이상에서 섹션이 없으면 `없음`으로 본다. `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인하고, 그 결정 없이는 `PLAN-*-G??.md`, `CODE_REVIEW-*-G??.md`, file/API/package 수준 구현 단계를 확정하지 않는다. - 선택한 Milestone에 legacy `필수 기능`/`완료 기준`이 분리되어 있으면 plan 작성 전에 roadmap preflight로 정규화한다. 흡수 가능한 기준은 관련 기능 Task 안의 선택적 `검증:` 또는 Task 설명으로 즉시 흡수하고, 어느 기능에도 붙지 않는 기준이 남으면 plan 파일을 만들지 말고 남은 기준과 필요한 사용자 판단을 구체적으로 보고한다. diff --git a/agent-ops/skills/common/sync-pull/SKILL.md b/agent-ops/skills/common/sync-pull/SKILL.md index 9afc008..cbcc00b 100644 --- a/agent-ops/skills/common/sync-pull/SKILL.md +++ b/agent-ops/skills/common/sync-pull/SKILL.md @@ -30,9 +30,9 @@ agent-ops/bin/sync.sh --pull - [ ] sync.sh 가 오류 없이 완료됐는가 - [ ] 현재 프로젝트 버전이 framework 버전과 일치하는가 - [ ] `agent-ops/bin/entry-files.sh`의 모든 진입 파일이 갱신됐고, 내용이 framework의 `agent-ops/rules/common/rules.md`와 일치하는가 -- [ ] `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에 Agent-Ops 관리 block이 있고 그 안에 `agent-task/archive/**`와 `agent-ops/roadmap/archive/**`가 포함되어 있는가 -- [ ] `.claude/settings.json`, `opencode.json`에 `agent-task/archive/**` hard deny가 있고 `agent-ops/roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 -- [ ] 현재 프로젝트에 기존 `agent-ops/roadmap/archive/**` hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 +- [ ] `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에 Agent-Ops 관리 block이 있고 그 안에 `agent-task/archive/**`와 `agent-roadmap/archive/**`가 포함되어 있는가 +- [ ] `.claude/settings.json`, `opencode.json`에 `agent-task/archive/**` hard deny가 있고 `agent-roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 +- [ ] 현재 프로젝트에 기존 `agent-roadmap/archive/**` hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 - [ ] agentic-framework의 AI ignore / permission 파일은 수정되거나 stage되지 않았는가 ## 금지 사항 diff --git a/agent-ops/skills/common/sync-push/SKILL.md b/agent-ops/skills/common/sync-push/SKILL.md index 67fe9bf..d20e580 100644 --- a/agent-ops/skills/common/sync-push/SKILL.md +++ b/agent-ops/skills/common/sync-push/SKILL.md @@ -68,15 +68,15 @@ description: 현재 프로젝트의 agent-ops를 공통 원본 repo로 올리거 ```text # BEGIN Agent-Ops managed ignore agent-task/archive/** -agent-ops/roadmap/archive/** +agent-roadmap/archive/** # END Agent-Ops managed ignore ``` - 관리 block 밖의 기존 ignore 항목은 사용자 소유로 보고 삭제, 정렬, 중복 제거하지 않는다. - `.claude/settings.json`과 `opencode.json`은 기존 사용자 설정을 보존하고 `agent-task/archive/**` hard read/glob deny만 보강한다. -- `agent-ops/roadmap/archive/**`는 필요한 경우 링크로 읽을 수 있어야 하므로 `.claude/settings.json`이나 `opencode.json`의 hard read/glob deny로 두지 않는다. -- 대상 프로젝트에 기존 `agent-ops/roadmap/archive/**` hard read/glob deny가 있으면 init-agent-ops 표준에 맞게 제거한다. -- `opencode.json`의 watcher ignore에는 `agent-task/archive/**`와 `agent-ops/roadmap/archive/**`를 둘 수 있다. +- `agent-roadmap/archive/**`는 필요한 경우 링크로 읽을 수 있어야 하므로 `.claude/settings.json`이나 `opencode.json`의 hard read/glob deny로 두지 않는다. +- 대상 프로젝트에 기존 `agent-roadmap/archive/**` hard read/glob deny가 있으면 init-agent-ops 표준에 맞게 제거한다. +- `opencode.json`의 watcher ignore에는 `agent-task/archive/**`와 `agent-roadmap/archive/**`를 둘 수 있다. ```bash agent-ops/bin/sync.sh [target] @@ -90,9 +90,9 @@ agent-ops/bin/sync.sh [target] - [ ] 버전 충돌 경고가 없었는가 — 있었다면 사용자에게 수동 머지 필요함을 알린다 - [ ] 대상 repo의 `agent-ops/rules/common/rules.md`가 현재 공통 원본 repo의 `agent-ops/rules/common/rules.md`와 일치하는가 - [ ] 공통 원본 repo에서 대상 프로젝트로 push한 경우, `agent-ops/bin/entry-files.sh`의 모든 진입 파일 내용이 현재 공통 원본 repo의 `agent-ops/rules/common/rules.md`와 일치하는가 -- [ ] 공통 원본 repo에서 대상 프로젝트로 push한 경우, `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에 Agent-Ops 관리 block이 있고 그 안에 `agent-task/archive/**`와 `agent-ops/roadmap/archive/**`가 포함되어 있는가 -- [ ] 공통 원본 repo에서 대상 프로젝트로 push한 경우, `.claude/settings.json`과 `opencode.json`에 `agent-task/archive/**` hard deny가 있고 `agent-ops/roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 -- [ ] 대상 프로젝트에 기존 `agent-ops/roadmap/archive/**` hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 +- [ ] 공통 원본 repo에서 대상 프로젝트로 push한 경우, `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에 Agent-Ops 관리 block이 있고 그 안에 `agent-task/archive/**`와 `agent-roadmap/archive/**`가 포함되어 있는가 +- [ ] 공통 원본 repo에서 대상 프로젝트로 push한 경우, `.claude/settings.json`과 `opencode.json`에 `agent-task/archive/**` hard deny가 있고 `agent-roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 +- [ ] 대상 프로젝트에 기존 `agent-roadmap/archive/**` hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 - [ ] 일반 프로젝트에서 공통 원본 repo로 push한 경우, AI ignore / permission 파일이 공통 원본 repo에 유입되지 않았는가 - [ ] 대상 repo에 commit/push 된 path가 방향별 허용 범위로 제한되었는가 diff --git a/agent-ops/skills/common/update-roadmap/SKILL.md b/agent-ops/skills/common/update-roadmap/SKILL.md index 129042e..008eaa5 100644 --- a/agent-ops/skills/common/update-roadmap/SKILL.md +++ b/agent-ops/skills/common/update-roadmap/SKILL.md @@ -8,7 +8,7 @@ description: 로드맵 업데이트, 로드맵에 추가, 마일스톤 추가/ ## 목적 -기존 `agent-ops/roadmap/` 구조를 현재 프로젝트 방향과 진행 상태에 맞게 갱신한다. +기존 `agent-roadmap/` 구조를 현재 프로젝트 방향과 진행 상태에 맞게 갱신한다. 표준 구조는 `ROADMAP.md -> phase//PHASE.md -> phase//milestones/.md`다. archive도 같은 Phase scaffold를 유지하며 `archive/phase//...` 아래에 둔다. 로드맵 전체를 매 작업마다 읽지 않도록 유지하면서, `current.md`의 활성 Phase와 활성 Milestone 창이 실제 작업 후보 목록으로 동작하게 한다. @@ -52,7 +52,7 @@ Epic과 Task는 별도 파일로 분리하지 않고 Milestone 문서의 `기능 ## 표준 구조 ```text -agent-ops/roadmap/ +agent-roadmap/ ROADMAP.md current.md phase/ @@ -101,7 +101,7 @@ agent-ops/roadmap/ - 일반 갱신은 `current.md`, 관련 활성 Phase, 관련 활성 Milestone을 우선 읽는다. - `ROADMAP.md`는 Phase 흐름, 전체 구조, 활성 범위 밖 작업, 전체 재계획, archive 링크 갱신이 필요할 때 읽는다. -- `agent-ops/roadmap/archive/**`는 일반 작업이나 sync에서 읽지 않는다. +- `agent-roadmap/archive/**`는 일반 작업이나 sync에서 읽지 않는다. - archive 모드에서 이동 대상이 아직 활성 경로에 있으면 그 대상 문서는 읽을 수 있다. - 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 요청이면 `ROADMAP.md` 또는 `PHASE.md`의 archive 링크를 따라 필요한 archive 문서만 읽는다. @@ -127,17 +127,17 @@ agent-ops/roadmap/ - entry는 `id`, `locked`, `rely-on[].target`, `rely-on[].status`, `rely-on[].note`만 사용한다. - `locks.yaml`은 root sequence block style을 기본으로 작성한다. 예: `- id: ...` 아래에 `locked`, `rely-on`을 둔다. - `id`는 기본적으로 `<잠긴-project>:<잠긴-milestone-slug>`로 만든다. -- `locked`와 `rely-on[].target`은 `:agent-ops/roadmap/phase//milestones/.md` 형식으로 기록한다. -- Milestone 경로가 `agent-ops/roadmap/...` 상대 경로이면 현재 프로젝트명을 prefix로 붙인다. workspace 하위 절대/상대 경로이면 workspace 바로 아래 디렉터리명을 project로 삼고, 그 뒤 `agent-ops/roadmap/...` 경로를 붙인다. +- `locked`와 `rely-on[].target`은 `:agent-roadmap/phase//milestones/.md` 형식으로 기록한다. +- Milestone 경로가 `agent-roadmap/...` 상대 경로이면 현재 프로젝트명을 prefix로 붙인다. workspace 하위 절대/상대 경로이면 workspace 바로 아래 디렉터리명을 project로 삼고, 그 뒤 `agent-roadmap/...` 경로를 붙인다. - `locked`는 잠긴 Milestone, `rely-on.target`은 선행 조건 Milestone이다. 둘 다 같은 workspace의 어느 활성 Phase 하위 Milestone이어도 된다. 의존 대상이 `current.md`에 있어야 한다고 가정하지 않는다. - 의존 Milestone 확정 순서: - 1. 사용자가 명시한 `:agent-ops/roadmap/phase/.../milestones/.md` 또는 파일 경로 + 1. 사용자가 명시한 `:agent-roadmap/phase/.../milestones/.md` 또는 파일 경로 2. 사용자가 명시한 프로젝트와 Milestone slug 3. 사용자가 명시한 프로젝트와 Milestone 제목의 정규화 일치 4. 잠긴 Milestone 문서의 `선행 Milestone: ...`, `관련 Milestone: ...`, `외부 의존 잠금: ...`에 적힌 slug/제목 힌트 5. 프로젝트명만 있고 Milestone 힌트가 없을 때만 해당 프로젝트 `current.md`의 활성 Milestone 단일 후보 - 정규화 비교는 소문자 변환, backtick/따옴표 제거, 영문/숫자가 아닌 연속 문자를 `-` 하나로 치환, 앞뒤 `-` 제거 후 비교한다. 정규화한 힌트는 Milestone 파일 slug와 정규화한 제목 둘 다에 대조한다. -- 2-4번 탐색은 대상 프로젝트의 `agent-ops/roadmap/phase/*/milestones/*.md` 활성 문서만 대상으로 한다. archive 문서는 사용자가 archive 경로를 명시한 경우 외에는 읽거나 후보로 삼지 않는다. +- 2-4번 탐색은 대상 프로젝트의 `agent-roadmap/phase/*/milestones/*.md` 활성 문서만 대상으로 한다. archive 문서는 사용자가 archive 경로를 명시한 경우 외에는 읽거나 후보로 삼지 않는다. - 후보가 없거나 둘 이상이면 `locks.yaml`을 만들거나 고치지 말고 사용자에게 대상 Milestone 선택을 요청한다. - 외부 의존 잠금 요청이 있거나, 갱신 대상 Milestone이 `구현 잠금: 잠금`이며 문서에 외부 의존 잠금/선행 Milestone 컨텍스트가 있으면 `.agent-roadmap-sync/locks.yaml`을 upsert한다. resolvable한 외부 의존 문구를 Milestone에 남기고 lock entry를 누락하지 않는다. - 외부 의존 잠금을 만들 때 대상 Milestone의 `구현 잠금`은 `잠금`으로 둔다. @@ -161,7 +161,7 @@ agent-ops/roadmap/ ## Milestone task group 연동 - 런타임 완료 이벤트의 `origin-task`에서 `agent-task/` 다음 첫 path segment가 `m-`이면 Milestone 기반 plan/review 완료에서 온 요청으로 본다. `origin-task`는 archive 이동 전 active task 경로 또는 런타임이 그 형태로 정규화한 경로를 사용한다. -- ``는 활성 `agent-ops/roadmap/phase/*/milestones/.md`에서 정확히 하나만 찾아야 한다. archive Milestone은 target 후보가 아니다. +- ``는 활성 `agent-roadmap/phase/*/milestones/.md`에서 정확히 하나만 찾아야 한다. archive Milestone은 target 후보가 아니다. - target이 없거나 둘 이상이면 Milestone 내용을 추정해 수정하지 말고 target 불명확으로 보고한다. - target이 확정되면 PASS evidence, `complete.log`, final archive path, archived plan/review log 경로, code-review 결과 요약을 근거로 해당 Milestone의 기능 Task를 갱신한다. target routing 자체는 완료 이벤트의 `m-` task group으로만 결정한다. - 갱신 후 모든 기능 Task와 Task 안에 명시된 검증이 충족되면 `[검토중]` 전환과 `완료 리뷰` 요청 규칙을 적용한다. @@ -232,7 +232,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다 - 대상 Milestone이 `[완료]` 또는 `[폐기]`인지 확인한다. - `[검토중]` Milestone은 archive하지 않는다. 사용자 완료 승인 또는 폐기 지시가 있으면 먼저 `[완료]` 또는 `[폐기]`로 바꾼 뒤 archive한다. -- 대상 파일을 `agent-ops/roadmap/phase//milestones/.md`에서 `agent-ops/roadmap/archive/phase//milestones/.md`로 이동한다. +- 대상 파일을 `agent-roadmap/phase//milestones/.md`에서 `agent-roadmap/archive/phase//milestones/.md`로 이동한다. - 활성 `PHASE.md`의 Milestone 흐름에는 `[완료]` 또는 `[폐기]` 항목을 남기고, 경로는 archive 경로로 바꾼다. - `current.md`의 활성 Milestone에서는 제거한다. - `ROADMAP.md`는 Phase 상태나 경로가 바뀌지 않으면 수정하지 않는다. @@ -242,7 +242,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다 - Phase 전체가 `[완료]` 또는 `[폐기]`인지 확인한다. - `[검토중]` Phase는 archive하지 않는다. 사용자 완료 승인 또는 폐기 지시가 있으면 먼저 `[완료]` 또는 `[폐기]`로 바꾼 뒤 archive한다. -- `agent-ops/roadmap/phase//PHASE.md`를 `agent-ops/roadmap/archive/phase//PHASE.md`로 이동한다. +- `agent-roadmap/phase//PHASE.md`를 `agent-roadmap/archive/phase//PHASE.md`로 이동한다. - 해당 Phase의 하위 Milestone도 `archive/phase//milestones/` 아래로 이동한다. - `ROADMAP.md`의 Phase 흐름에는 해당 Phase 항목을 남기고, 상태와 경로를 archive `PHASE.md`로 바꾼다. - `current.md`의 활성 Phase와 활성 Milestone에서는 해당 Phase와 하위 Milestone을 제거한다. @@ -349,11 +349,11 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다 - 모드: - 수정 파일: - - agent-ops/roadmap/ROADMAP.md - - agent-ops/roadmap/current.md - - agent-ops/roadmap/phase//PHASE.md - - agent-ops/roadmap/phase//milestones/.md - - agent-ops/roadmap/archive/phase//... (archive 모드) + - agent-roadmap/ROADMAP.md + - agent-roadmap/current.md + - agent-roadmap/phase//PHASE.md + - agent-roadmap/phase//milestones/.md + - agent-roadmap/archive/phase//... (archive 모드) ## 변경 사항 @@ -388,7 +388,7 @@ target 없는 신규 추가 요청은 append가 아니라 upsert로 처리한다 - 전체 `ROADMAP.md`를 모든 작업의 필수 로딩 파일로 만들지 않는다. - `ROADMAP.md`에 Milestone 상세 작업 체크리스트를 남기지 않는다. - `current.md`에 개인별 현재 작업 위치나 완료 상태를 남기지 않는다. -- `current.md`에 `agent-ops/roadmap/archive/**` 경로를 남기지 않는다. +- `current.md`에 `agent-roadmap/archive/**` 경로를 남기지 않는다. - archive 문서를 명시 요청 없이 읽거나 최신 템플릿으로 재포맷하지 않는다. - 완료된 Phase/Milestone 기록을 삭제하지 않는다. - Epic과 Task를 별도 파일로 분리하지 않는다. diff --git a/agent-ops/roadmap/ROADMAP.md b/agent-roadmap/ROADMAP.md similarity index 73% rename from agent-ops/roadmap/ROADMAP.md rename to agent-roadmap/ROADMAP.md index 5acb7ad..3e37753 100644 --- a/agent-ops/roadmap/ROADMAP.md +++ b/agent-roadmap/ROADMAP.md @@ -13,48 +13,48 @@ NomadCode는 Flutter 기반 앱, core 서비스, 공유 계약, agent-operation 검토중 또는 진행중 Phase는 계획 Phase보다 위에 두어, 아래로 갈수록 미래 계획에 가까워지게 정렬한다. - [완료] Server Skeleton - - 경로: `agent-ops/roadmap/archive/phase/server-skeleton/PHASE.md` + - 경로: `agent-roadmap/archive/phase/server-skeleton/PHASE.md` - 요약: core 서버 실행 골격, task 저장 구조, 비동기 job 실행, Adapter stub을 구성했다. - [완료] Plane Communication Foundation - - 경로: `agent-ops/roadmap/archive/phase/plane-communication-foundation/PHASE.md` + - 경로: `agent-roadmap/archive/phase/plane-communication-foundation/PHASE.md` - 요약: Plane self-hosted 인스턴스와 통신하기 위한 인증, API client, 외부 참조 저장, smoke 검증 토대를 만들었다. - [완료] Client Platform Consolidation - - 경로: `agent-ops/roadmap/archive/phase/client-platform-consolidation/PHASE.md` + - 경로: `agent-roadmap/archive/phase/client-platform-consolidation/PHASE.md` - 요약: React/Vite 웹 콘솔을 제품 UI 경로에서 걷어내고 Flutter 앱을 NomadCode 클라이언트 source of truth로 정리했다. - [완료] Work Item Provider Pipeline Design - - 경로: `agent-ops/roadmap/archive/phase/work-item-provider-pipeline-design/PHASE.md` + - 경로: `agent-roadmap/archive/phase/work-item-provider-pipeline-design/PHASE.md` - 요약: Plane/Jira 등 work item provider와 core task 사이의 생성, enqueue, 상태 투영, 결과 발행 계약을 provider-neutral하게 정리했다. - [완료] Mattermost Push Plugin Extraction - - 경로: `agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md` + - 경로: `agent-roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md` - 요약: Flutter 앱에 섞인 Mattermost push notification migration을 분리했고, 현재 package 경로는 `../nexo/packages/messaging_flutter`다. - [진행중] Workflow Core - - 경로: `agent-ops/roadmap/phase/workflow-core/PHASE.md` + - 경로: `agent-roadmap/phase/workflow-core/PHASE.md` - 요약: Roadmap Driven Agent-Ops Automation 스케치를 먼저 구체화한 뒤 실제 e2e 흐름을 기준으로 task lifecycle, retry, timeout, notification event를 안정화한다. - [계획] External Integration - - 경로: `agent-ops/roadmap/phase/external-integration/PHASE.md` + - 경로: `agent-roadmap/phase/external-integration/PHASE.md` - 요약: Plane 확장, Mattermost, Agent Integrator, IOP OpenAI API Responses-compatible 호출을 실제 통합 흐름으로 확장한다. - [계획] Project Workspace Management UX - - 경로: `agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md` + - 경로: `agent-roadmap/phase/project-workspace-management-ux/PHASE.md` - 요약: client integration 표준화는 완료했고, 실제 프로젝트 단위 앱 UX 구현은 core workflow와 외부 통합 기준 이후로 미룬다. ## 로딩 정책 -- 일반 작업에서는 `agent-ops/roadmap/ROADMAP.md`를 매번 읽지 않는다. -- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-ops/roadmap/current.md`를 먼저 읽는다. +- 일반 작업에서는 `agent-roadmap/ROADMAP.md`를 매번 읽지 않는다. +- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-roadmap/current.md`를 먼저 읽는다. - `current.md`는 현재 작업 위치가 아니라 활성 Phase와 활성 Milestone 후보 목록이다. - `current.md`에는 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다. -- `current.md`의 활성 Phase는 `agent-ops/roadmap/phase//PHASE.md`를 가리킨다. -- `current.md`의 활성 Milestone은 `agent-ops/roadmap/phase//milestones/.md`를 가리킨다. -- `current.md`는 `agent-ops/roadmap/archive/**` 경로를 활성 항목으로 포함하지 않는다. +- `current.md`의 활성 Phase는 `agent-roadmap/phase//PHASE.md`를 가리킨다. +- `current.md`의 활성 Milestone은 `agent-roadmap/phase//milestones/.md`를 가리킨다. +- `current.md`는 `agent-roadmap/archive/**` 경로를 활성 항목으로 포함하지 않는다. - 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 활성 Phase와 Milestone 문서를 같은 세션에서 1회 읽는다. - 활성 Phase 또는 Milestone 밖의 작업이면 이 문서의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. - 이 문서는 로드맵 생성/갱신, Phase 전환, Phase 추가/수정, 전체 구조 변경 요청이 있을 때만 읽는다. - 상세 작업과 완료 기준은 각 Milestone 문서의 `필수 기능`, `완료 기준`으로 관리한다. - 모든 필수 작업과 완료 기준이 충족된 Milestone은 먼저 `[검토중]`으로 두고, 사용자 완료 확인과 archive 승인을 받은 뒤 `[완료]`로 전환한다. -- 완료된 Phase는 `agent-ops/roadmap/archive/phase//PHASE.md`로 이동하고, 하위 Milestone도 같은 archive Phase scaffold 아래에 둔다. -- 진행중 Phase 안에서 완료된 Milestone은 활성 Phase 문서에 짧은 링크를 남기고, 상세 문서는 `agent-ops/roadmap/archive/phase//milestones/`로 이동한다. +- 완료된 Phase는 `agent-roadmap/archive/phase//PHASE.md`로 이동하고, 하위 Milestone도 같은 archive Phase scaffold 아래에 둔다. +- 진행중 Phase 안에서 완료된 Milestone은 활성 Phase 문서에 짧은 링크를 남기고, 상세 문서는 `agent-roadmap/archive/phase//milestones/`로 이동한다. - archive `PHASE.md`는 Phase 자체가 완료 또는 폐기될 때만 만들며, 진행중 Phase의 완료 Milestone만 archive된 경우 archive Phase 디렉터리에 `milestones/`만 있을 수 있다. -- `agent-ops/roadmap/archive/**`는 일반 작업에서 읽지 않는다. 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `ROADMAP.md` 또는 `PHASE.md`의 archive 링크를 따라가서 읽는다. +- `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `ROADMAP.md` 또는 `PHASE.md`의 archive 링크를 따라가서 읽는다. - 아카이브된 Phase/Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다. - 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하기 전에 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인한다. - 현재 요청과 직접 관련 없는 미정 항목은 잠금 상태로 남겨도 되며, 기존 구조/도메인 rule/플랫폼 관례로 정할 수 있는 작업은 표준선으로 기록하고 진행할 수 있다. diff --git a/agent-ops/roadmap/archive/phase/client-platform-consolidation/PHASE.md b/agent-roadmap/archive/phase/client-platform-consolidation/PHASE.md similarity index 83% rename from agent-ops/roadmap/archive/phase/client-platform-consolidation/PHASE.md rename to agent-roadmap/archive/phase/client-platform-consolidation/PHASE.md index 2b64361..44090e7 100644 --- a/agent-ops/roadmap/archive/phase/client-platform-consolidation/PHASE.md +++ b/agent-roadmap/archive/phase/client-platform-consolidation/PHASE.md @@ -11,7 +11,7 @@ React/Vite 웹 콘솔을 제품 UI 경로에서 제거하고 Flutter 앱을 Noma ## Milestone 흐름 - [완료] Flutter-first Client Consolidation - - 경로: `agent-ops/roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md` + - 경로: `agent-roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md` - 요약: `apps/web` 제거, root `bin/*` Flutter-first 검증 흐름, Flutter code-server 실행 표면, `packages/contracts` 계약 후보 문서를 반영했다. ## Phase 경계 diff --git a/agent-ops/roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md b/agent-roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md similarity index 97% rename from agent-ops/roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md rename to agent-roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md index 0531bff..eaf91f0 100644 --- a/agent-ops/roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md +++ b/agent-roadmap/archive/phase/client-platform-consolidation/milestones/flutter-first-client-consolidation.md @@ -54,7 +54,7 @@ Client Platform Consolidation ## 작업 컨텍스트 -- 관련 경로: `apps/mobile/`, `apps/web/`, `bin/`, `README.md`, `docs/`, `agent-ops/rules/project/`, `agent-ops/roadmap/`, `packages/contracts/` +- 관련 경로: `apps/mobile/`, `apps/web/`, `bin/`, `README.md`, `docs/`, `agent-ops/rules/project/`, `agent-roadmap/`, `packages/contracts/` - 표준선(선택): 앱은 필수 제품 표면이며 Flutter가 클라이언트 source of truth다. React/Vite web은 장기 기준 구현이 아니고, 필요한 웹 타깃은 Flutter Web 또는 Flutter 앱에서 직접 연결하는 웹 surface로 다룬다. - 완료 근거: `apps/web` React/Vite scaffold가 제거되었고, root `bin/test`, `bin/lint`, `bin/build`, `bin/dev`는 core와 `apps/mobile` Flutter 흐름만 참조한다. `apps/mobile/lib/services/workspace_launcher.dart`와 workspace 화면은 code-server URL을 Flutter 앱에서 직접 외부 실행 표면으로 연다. `packages/contracts/notes/flutter-core-api-candidates.md`는 Flutter 앱과 core 사이의 공유 API/schema 후보를 기록한다. - 선행 작업: 없음 diff --git a/agent-ops/roadmap/archive/phase/external-integration/milestones/mattermost-messaging-android-smoke.md b/agent-roadmap/archive/phase/external-integration/milestones/mattermost-messaging-android-smoke.md similarity index 98% rename from agent-ops/roadmap/archive/phase/external-integration/milestones/mattermost-messaging-android-smoke.md rename to agent-roadmap/archive/phase/external-integration/milestones/mattermost-messaging-android-smoke.md index b6708aa..53aaed0 100644 --- a/agent-ops/roadmap/archive/phase/external-integration/milestones/mattermost-messaging-android-smoke.md +++ b/agent-roadmap/archive/phase/external-integration/milestones/mattermost-messaging-android-smoke.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-ops/roadmap/ROADMAP.md` -- Phase: `agent-ops/roadmap/phase/external-integration/PHASE.md` +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/external-integration/PHASE.md` ## 목표 diff --git a/agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md b/agent-roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md similarity index 90% rename from agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md rename to agent-roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md index 93106ba..1a2f8e0 100644 --- a/agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md +++ b/agent-roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md @@ -14,7 +14,7 @@ Flutter 앱에 직접 들어간 Mattermost push notification Dart/API, Android n 완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. - [완료] Mattermost Push Plugin Extraction - - 경로: `agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md` + - 경로: `agent-roadmap/archive/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md` - 요약: `apps/mobile`의 native push 소유권을 plugin으로 옮기고 host 앱은 path dependency, Firebase/auth, routing 경계만 유지하도록 정리했다. ## Phase 경계 diff --git a/agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md b/agent-roadmap/archive/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md similarity index 98% rename from agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md rename to agent-roadmap/archive/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md index 4d21498..2ca8074 100644 --- a/agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md +++ b/agent-roadmap/archive/phase/mattermost-push-plugin-extraction/milestones/mattermost-push-plugin-extraction.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-ops/roadmap/ROADMAP.md` -- Phase: `agent-ops/roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md` +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/archive/phase/mattermost-push-plugin-extraction/PHASE.md` ## 목표 diff --git a/agent-ops/roadmap/archive/phase/plane-communication-foundation/PHASE.md b/agent-roadmap/archive/phase/plane-communication-foundation/PHASE.md similarity index 83% rename from agent-ops/roadmap/archive/phase/plane-communication-foundation/PHASE.md rename to agent-roadmap/archive/phase/plane-communication-foundation/PHASE.md index ddad62c..c817a1f 100644 --- a/agent-ops/roadmap/archive/phase/plane-communication-foundation/PHASE.md +++ b/agent-roadmap/archive/phase/plane-communication-foundation/PHASE.md @@ -11,7 +11,7 @@ Plane self-hosted 인스턴스와의 인증/API 통신, 외부 참조 저장, ## Milestone 흐름 - [완료] Plane Thin E2E Loop - - 경로: `agent-ops/roadmap/archive/phase/plane-communication-foundation/milestones/plane-thin-e2e-loop.md` + - 경로: `agent-roadmap/archive/phase/plane-communication-foundation/milestones/plane-thin-e2e-loop.md` - 요약: Plane adapter 테스트, external ref 저장, comment/state smoke, README/운영 문서 근거를 완료했다. ## Phase 경계 diff --git a/agent-ops/roadmap/archive/phase/plane-communication-foundation/milestones/plane-thin-e2e-loop.md b/agent-roadmap/archive/phase/plane-communication-foundation/milestones/plane-thin-e2e-loop.md similarity index 100% rename from agent-ops/roadmap/archive/phase/plane-communication-foundation/milestones/plane-thin-e2e-loop.md rename to agent-roadmap/archive/phase/plane-communication-foundation/milestones/plane-thin-e2e-loop.md diff --git a/agent-ops/roadmap/archive/phase/project-workspace-management-ux/milestones/client-integration-standardization.md b/agent-roadmap/archive/phase/project-workspace-management-ux/milestones/client-integration-standardization.md similarity index 98% rename from agent-ops/roadmap/archive/phase/project-workspace-management-ux/milestones/client-integration-standardization.md rename to agent-roadmap/archive/phase/project-workspace-management-ux/milestones/client-integration-standardization.md index d79afa0..61ba82c 100644 --- a/agent-ops/roadmap/archive/phase/project-workspace-management-ux/milestones/client-integration-standardization.md +++ b/agent-roadmap/archive/phase/project-workspace-management-ux/milestones/client-integration-standardization.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-ops/roadmap/ROADMAP.md` -- Phase: `agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md` +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/project-workspace-management-ux/PHASE.md` ## 목표 diff --git a/agent-ops/roadmap/archive/phase/server-skeleton/PHASE.md b/agent-roadmap/archive/phase/server-skeleton/PHASE.md similarity index 86% rename from agent-ops/roadmap/archive/phase/server-skeleton/PHASE.md rename to agent-roadmap/archive/phase/server-skeleton/PHASE.md index 0587039..3afcac5 100644 --- a/agent-ops/roadmap/archive/phase/server-skeleton/PHASE.md +++ b/agent-roadmap/archive/phase/server-skeleton/PHASE.md @@ -11,7 +11,7 @@ core 서버 실행 골격, task 저장 구조, 비동기 job 실행, Adapter stu ## Milestone 흐름 - [완료] Server Skeleton - - 경로: `agent-ops/roadmap/archive/phase/server-skeleton/milestones/server-skeleton.md` + - 경로: `agent-roadmap/archive/phase/server-skeleton/milestones/server-skeleton.md` - 요약: core 서버 실행, task API/storage, River job, Plane/Mattermost stub 기반을 완료했다. ## Phase 경계 diff --git a/agent-ops/roadmap/archive/phase/server-skeleton/milestones/server-skeleton.md b/agent-roadmap/archive/phase/server-skeleton/milestones/server-skeleton.md similarity index 100% rename from agent-ops/roadmap/archive/phase/server-skeleton/milestones/server-skeleton.md rename to agent-roadmap/archive/phase/server-skeleton/milestones/server-skeleton.md diff --git a/agent-ops/roadmap/archive/phase/work-item-provider-pipeline-design/PHASE.md b/agent-roadmap/archive/phase/work-item-provider-pipeline-design/PHASE.md similarity index 83% rename from agent-ops/roadmap/archive/phase/work-item-provider-pipeline-design/PHASE.md rename to agent-roadmap/archive/phase/work-item-provider-pipeline-design/PHASE.md index e98e720..57ec1f5 100644 --- a/agent-ops/roadmap/archive/phase/work-item-provider-pipeline-design/PHASE.md +++ b/agent-roadmap/archive/phase/work-item-provider-pipeline-design/PHASE.md @@ -11,7 +11,7 @@ Plane/Jira 등 work item provider와 core task 사이의 생성, enqueue, 상태 ## Milestone 흐름 - [완료] Plane Task Pipeline Design - - 경로: `agent-ops/roadmap/archive/phase/work-item-provider-pipeline-design/milestones/plane-task-pipeline-design.md` + - 경로: `agent-roadmap/archive/phase/work-item-provider-pipeline-design/milestones/plane-task-pipeline-design.md` - 요약: provider-neutral adapter, task mapper, pipeline service, projection/idempotency/retry 정책을 완료했다. ## Phase 경계 diff --git a/agent-ops/roadmap/archive/phase/work-item-provider-pipeline-design/milestones/plane-task-pipeline-design.md b/agent-roadmap/archive/phase/work-item-provider-pipeline-design/milestones/plane-task-pipeline-design.md similarity index 100% rename from agent-ops/roadmap/archive/phase/work-item-provider-pipeline-design/milestones/plane-task-pipeline-design.md rename to agent-roadmap/archive/phase/work-item-provider-pipeline-design/milestones/plane-task-pipeline-design.md diff --git a/agent-ops/roadmap/current.md b/agent-roadmap/current.md similarity index 63% rename from agent-ops/roadmap/current.md rename to agent-roadmap/current.md index 1d7c47a..0e0fd28 100644 --- a/agent-ops/roadmap/current.md +++ b/agent-roadmap/current.md @@ -3,33 +3,33 @@ ## 활성 Phase - [진행중] Workflow Core - - 경로: `agent-ops/roadmap/phase/workflow-core/PHASE.md` + - 경로: `agent-roadmap/phase/workflow-core/PHASE.md` - [계획] External Integration - - 경로: `agent-ops/roadmap/phase/external-integration/PHASE.md` + - 경로: `agent-roadmap/phase/external-integration/PHASE.md` ## 활성 Milestone - [스케치] Roadmap Driven Agent-Ops Automation - - Phase: `agent-ops/roadmap/phase/workflow-core/PHASE.md` - - 경로: `agent-ops/roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md` + - Phase: `agent-roadmap/phase/workflow-core/PHASE.md` + - 경로: `agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md` - [계획] Workflow Core - - Phase: `agent-ops/roadmap/phase/workflow-core/PHASE.md` - - 경로: `agent-ops/roadmap/phase/workflow-core/milestones/workflow-core.md` + - Phase: `agent-roadmap/phase/workflow-core/PHASE.md` + - 경로: `agent-roadmap/phase/workflow-core/milestones/workflow-core.md` - [계획] External Integration - - Phase: `agent-ops/roadmap/phase/external-integration/PHASE.md` - - 경로: `agent-ops/roadmap/phase/external-integration/milestones/external-integration.md` + - Phase: `agent-roadmap/phase/external-integration/PHASE.md` + - 경로: `agent-roadmap/phase/external-integration/milestones/external-integration.md` ## 선택 규칙 - 이 문서는 활성 Phase와 활성 Milestone 후보 목록이며, 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다. -- 활성 Phase는 `agent-ops/roadmap/phase//PHASE.md`를 가리킨다. -- 활성 Milestone은 `agent-ops/roadmap/phase//milestones/.md`를 가리킨다. +- 활성 Phase는 `agent-roadmap/phase//PHASE.md`를 가리킨다. +- 활성 Milestone은 `agent-roadmap/phase//milestones/.md`를 가리킨다. - 활성 항목은 아카이브 경로를 포함하지 않는다. - `[스케치]` 항목은 컨셉 보강과 `[계획]` 승격 후보이며, 구현 계획 생성 대상은 아니다. - `[검토중]` 항목은 사용자 완료 확인 전까지 활성 항목으로 남길 수 있다. - `[완료]` 또는 `[폐기]` 항목은 archive 링크를 남긴 뒤 활성 항목에서 제거한다. - 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Phase와 Milestone을 선택하고 같은 세션에서 1회 읽는다. - 활성 Phase 또는 Milestone 둘 이상에 걸치면 필요한 문서를 모두 읽고 작업 범위를 좁힌다. -- 활성 범위 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. +- 활성 범위 밖의 작업이면 `agent-roadmap/ROADMAP.md`의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. - 완료된 과거 내용이 필요할 때만 `ROADMAP.md` 또는 `PHASE.md`에 있는 archive 링크를 따라가서 읽는다. - 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 구현이나 구현 계획을 시작하기 전에 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인한다. 관련 결정이 없고 표준선으로 처리 가능하면 잠금을 유지한 채 진행할 수 있으며, Milestone 전체에서 사용자만 결정할 항목이 더 이상 없을 때만 `구현 잠금` 상태를 `해제`로 둔다. diff --git a/agent-ops/roadmap/phase/external-integration/PHASE.md b/agent-roadmap/phase/external-integration/PHASE.md similarity index 88% rename from agent-ops/roadmap/phase/external-integration/PHASE.md rename to agent-roadmap/phase/external-integration/PHASE.md index fbe78f2..20590fb 100644 --- a/agent-ops/roadmap/phase/external-integration/PHASE.md +++ b/agent-roadmap/phase/external-integration/PHASE.md @@ -14,11 +14,11 @@ Work Item Provider Pipeline Design과 Workflow Core 이후 Plane/Jira 확장, Ma 완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. - [완료] Mattermost Messaging Android Smoke - - 경로: `agent-ops/roadmap/archive/phase/external-integration/milestones/mattermost-messaging-android-smoke.md` + - 경로: `agent-roadmap/archive/phase/external-integration/milestones/mattermost-messaging-android-smoke.md` - 요약: `../nexo/packages/messaging_flutter` 전환 이후 원격 Android SDK build, emulator runtime, Mattermost FCM 알림 도착, 웹 채널 메시지 도착을 확인했다. - [계획] External Integration - - 경로: `agent-ops/roadmap/phase/external-integration/milestones/external-integration.md` + - 경로: `agent-roadmap/phase/external-integration/milestones/external-integration.md` - 요약: Plane/Jira/Mattermost/Agent Integrator/IOP 호출 경계를 실제 통합 adapter 흐름으로 확장한다. ## Phase 경계 diff --git a/agent-ops/roadmap/phase/external-integration/milestones/external-integration.md b/agent-roadmap/phase/external-integration/milestones/external-integration.md similarity index 97% rename from agent-ops/roadmap/phase/external-integration/milestones/external-integration.md rename to agent-roadmap/phase/external-integration/milestones/external-integration.md index 555a1f0..d6ae4de 100644 --- a/agent-ops/roadmap/phase/external-integration/milestones/external-integration.md +++ b/agent-roadmap/phase/external-integration/milestones/external-integration.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-ops/roadmap/ROADMAP.md` -- Phase: `agent-ops/roadmap/phase/external-integration/PHASE.md` +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/external-integration/PHASE.md` ## 목표 diff --git a/agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md b/agent-roadmap/phase/project-workspace-management-ux/PHASE.md similarity index 89% rename from agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md rename to agent-roadmap/phase/project-workspace-management-ux/PHASE.md index 3e55397..8e15c38 100644 --- a/agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md +++ b/agent-roadmap/phase/project-workspace-management-ux/PHASE.md @@ -14,11 +14,11 @@ Flutter-first 클라이언트 구조 위에서 `apps/client` 모듈, web/mobile 완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. - [완료] Client Integration Standardization - - 경로: `agent-ops/roadmap/archive/phase/project-workspace-management-ux/milestones/client-integration-standardization.md` + - 경로: `agent-roadmap/archive/phase/project-workspace-management-ux/milestones/client-integration-standardization.md` - 요약: NomadCode client를 기준으로 `apps/client` 모듈명, Web + Android 우선 bootstrap, proto-socket, Mattermost push host integration, cloning handoff를 표준화했다. - [계획] Project Workspace Management UX - - 경로: `agent-ops/roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md` + - 경로: `agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md` - 요약: 프로젝트 단위 제어 UX의 desktop/mobile 역할, parity 기준, IOP/task 결과 표시 기준을 정리한다. ## Phase 경계 diff --git a/agent-ops/roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md b/agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md similarity index 97% rename from agent-ops/roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md rename to agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md index a5c391e..495b48e 100644 --- a/agent-ops/roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md +++ b/agent-roadmap/phase/project-workspace-management-ux/milestones/project-workspace-management-ux.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-ops/roadmap/ROADMAP.md` -- Phase: `agent-ops/roadmap/phase/project-workspace-management-ux/PHASE.md` +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/project-workspace-management-ux/PHASE.md` ## 목표 diff --git a/agent-ops/roadmap/phase/workflow-core/PHASE.md b/agent-roadmap/phase/workflow-core/PHASE.md similarity index 91% rename from agent-ops/roadmap/phase/workflow-core/PHASE.md rename to agent-roadmap/phase/workflow-core/PHASE.md index 4338765..fbe5949 100644 --- a/agent-ops/roadmap/phase/workflow-core/PHASE.md +++ b/agent-roadmap/phase/workflow-core/PHASE.md @@ -14,11 +14,11 @@ Plane 통신 토대와 provider-neutral pipeline 설계 이후, 먼저 로드맵 완료, 검토중, 진행중, 계획, 스케치 순서를 기본으로 하되, 이번 Phase에서는 `Roadmap Driven Agent-Ops Automation` 스케치가 `Workflow Core` 구현의 선행 조건이므로 스케치를 먼저 둔다. - [스케치] Roadmap Driven Agent-Ops Automation - - 경로: `agent-ops/roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md` + - 경로: `agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md` - 요약: Workflow Core 구현 전에 사용자가 중요 판단과 상위 계획을 맡고, 에이전트가 로드맵-마일스톤-계획-리뷰 루프를 자동으로 이어가는 운영 컨셉을 구현 가능한 계획으로 구체화한다. - [계획] Workflow Core - - 경로: `agent-ops/roadmap/phase/workflow-core/milestones/workflow-core.md` + - 경로: `agent-roadmap/phase/workflow-core/milestones/workflow-core.md` - 요약: Roadmap Driven Agent-Ops Automation 스케치가 `[계획]` 수준으로 구체화된 뒤 task lifecycle, 상태 전이 책임, 실패 정책, retry/timeout, notification event 모델을 안정화한다. ## Phase 경계 diff --git a/agent-ops/roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md b/agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md similarity index 94% rename from agent-ops/roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md rename to agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md index 668df6c..0689115 100644 --- a/agent-ops/roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md +++ b/agent-roadmap/phase/workflow-core/milestones/roadmap-driven-agent-ops-automation.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-ops/roadmap/ROADMAP.md` -- Phase: `agent-ops/roadmap/phase/workflow-core/PHASE.md` +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/workflow-core/PHASE.md` ## 목표 @@ -12,7 +12,7 @@ NomadCode가 로드맵을 중심으로 판단, 실행, 리뷰 루프를 끊기 ## 상태 [스케치] - +http://127.0.0.1:8080/v1 ## 승격 조건 - [ ] 로드맵, Phase, Milestone, plan, code-review, runtime 완료 이벤트 사이의 책임 경계를 정의한다. @@ -80,7 +80,7 @@ NomadCode가 로드맵을 중심으로 판단, 실행, 리뷰 루프를 끊기 ## 작업 컨텍스트 -- 관련 경로: `agent-ops/roadmap/`, `agent-ops/skills/common/plan/SKILL.md`, `agent-ops/skills/common/code-review/SKILL.md`, `agent-ops/skills/common/update-roadmap/SKILL.md` +- 관련 경로: `agent-roadmap/`, `agent-ops/skills/common/plan/SKILL.md`, `agent-ops/skills/common/code-review/SKILL.md`, `agent-ops/skills/common/update-roadmap/SKILL.md` - 표준선(선택): 로드맵은 판단과 방향의 source of truth로 둔다. 이 `[스케치]` 자체는 구현 계획 대상이 아니며, 승격 이후 구현 작업만 milestone 기반 `agent-task/m-/` 루프로 분리한다. - 선행 작업: Client Integration Standardization, Work Item Provider Pipeline Design - 후속 작업: Workflow Core, `[계획]` 승격 후 runtime, roadmap updater, UI/agent interaction 중 첫 구현 Milestone 후보를 결정한다. diff --git a/agent-ops/roadmap/phase/workflow-core/milestones/workflow-core.md b/agent-roadmap/phase/workflow-core/milestones/workflow-core.md similarity index 97% rename from agent-ops/roadmap/phase/workflow-core/milestones/workflow-core.md rename to agent-roadmap/phase/workflow-core/milestones/workflow-core.md index f53b860..fa7e98c 100644 --- a/agent-ops/roadmap/phase/workflow-core/milestones/workflow-core.md +++ b/agent-roadmap/phase/workflow-core/milestones/workflow-core.md @@ -2,8 +2,8 @@ ## 위치 -- Roadmap: `agent-ops/roadmap/ROADMAP.md` -- Phase: `agent-ops/roadmap/phase/workflow-core/PHASE.md` +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/workflow-core/PHASE.md` ## 목표 diff --git a/opencode.json b/opencode.json index 9dd9cc1..b3074d0 100644 --- a/opencode.json +++ b/opencode.json @@ -11,7 +11,7 @@ "watcher": { "ignore": [ "agent-task/archive/**", - "agent-ops/roadmap/archive/**" + "agent-roadmap/archive/**" ] } }