8 KiB
8 KiB
| name | version | description |
|---|---|---|
| analyze-roadmap-position | 1.5.0 | 지금 작업이 뭐지?, 현재 작업 분석, 남은 작업 확인 요청에 대해 활성 Milestone과 코드 상태를 함께 읽어 현재 작업 지점, Milestone 문서 링크, 남은 일을 추정하는 읽기 전용 스킬 |
작업 지점 분석
목적
현재 브랜치, 변경 파일, 코드 구조, 활성 Milestone 문서를 함께 분석해 지금 작업이 어느 Milestone에 걸쳐 있는지와 남은 작업 후보를 보고한다.
결과에는 추정한 Milestone의 문서 링크를 항상 함께 출력한다.
Milestone의 필수 기능 항목에 item-id가 있으면 남은 작업과 판단 근거에 함께 표시해 사용자가 짧은 id로 후속 지시를 할 수 있게 한다.
결과 보고는 agent-ops/skills/common/_templates/roadmap-position-report-template.md 템플릿의 섹션, 필드, 순서를 그대로 따라 작성한다.
current.md만 보고 현재 작업 위치를 단정하지 않고, 실제 코드 상태와 요청 내용을 근거로 판단한다.
언제 호출할지
- 사용자가 "지금 작업이 뭐지?", "현재 작업이 뭐야?", "어디까지 했지?"라고 물을 때
- 사용자가 현재 브랜치 또는 변경 파일 기준으로 남은 작업을 알고 싶어 할 때
- 활성 Milestone 안에서 이번 요청이 어느 범위에 속하는지 확인해야 할 때
- 구현 전에 로드맵 기준 작업 위치를 가볍게 점검해야 할 때
입력
question: 사용자의 현재 작업 지점 질문 또는 남은 작업 질문 (선택)scope: 분석할 경로, 기능명, 도메인명, 브랜치명 힌트 (선택)depth:quick또는deep(선택, 없으면quick)
먼저 확인할 것
agent-ops/skills/common/_templates/roadmap-position-report-template.md를 읽어 최신 답변 템플릿 확인agent-ops/roadmap/current.md존재 여부 확인current.md의 활성 Milestone 목록이 가리키는 문서 존재 여부 확인- 활성 Milestone 목록이
agent-ops/roadmap/archive/**경로를 가리키지 않는지 확인 - 활성 Milestone 이름과 문서 경로를 결과 출력에 쓸 Markdown 링크로 기록
- git 저장소이면 현재 브랜치,
git status --short, 변경 파일 목록 확인 - 변경 파일이 있으면
agent-ops/rules/project/rules.md의 도메인 매핑 기준으로 관련 domain rule 확인
실행 절차
-
활성 Milestone 창 확인
agent-ops/roadmap/current.md를 읽고 활성 Milestone 후보와 선택 규칙을 파악한다.current.md의 후보가agent-ops/roadmap/archive/**를 가리키면 해당 문서는 읽지 말고 로드맵 갱신 필요 항목으로 기록한다.- 활성 Milestone 문서를 모두 읽되, 목록이 많으면 사용자 요청이나 변경 파일과 관련 높은 문서부터 읽는다.
- 읽은 Milestone은
<milestone-name>: <path>형태로 보존하고, 결과 보고에서는[<milestone-name>](<path>)Markdown 링크로 출력한다. current.md가 없거나 형식이 맞지 않으면agent-ops/roadmap/ROADMAP.md의 Milestone 목록을 확인하고 불확실성을 보고한다.
-
작업 흔적 확인
- git 저장소이면
git branch --show-current,git status --short,git diff --name-only, 필요 시git diff --stat을 확인한다. - 변경 파일이 없으면 사용자의 요청 문장과 최근 대상 경로 힌트를 기준으로 추정한다.
- 변경 파일이 있으면 관련 코드와 테스트 파일을 필요한 만큼만 읽는다.
- git 저장소이면
-
Milestone 매칭
- 활성 Milestone의 목표, 범위, 완료 기준, 범위 제외 항목과 변경 파일/요청 내용을 비교한다.
- 활성 Milestone의
필수 기능체크리스트를 확인하고, 관련 항목에 item-id가 있으면 판단 근거와 남은 작업에 item-id를 함께 기록한다. - 여러 Milestone 후보에서 같은 item-id가 보이면 item-id만으로 위치를 확정하지 말고 Milestone 이름과 문서 링크를 함께 제시한다.
- 활성 Milestone의
구현 잠금섹션, 상태,결정 필요항목을 함께 확인한다. 섹션이 없거나 상태가잠금이면 사용자 결정이 필요한 항목을 보고하고, 결정이 모두 정해진 작업이면 로드맵에서 해제 가능하다고 보고한다. - 하나의 Milestone에 명확히 속하면 단일 후보로 보고한다.
- 둘 이상의 Milestone에 걸치면 복수 후보로 보고하고, 어떤 파일이나 기능이 어느 Milestone에 닿는지 나눈다.
- 활성 Milestone 밖으로 보이면
ROADMAP.md의 Milestone 목록을 확인하고 전환 또는 신규 Milestone 필요성을 제안한다.
-
남은 작업 분류
확인됨: 코드, 문서, 테스트, diff로 근거가 있는 남은 작업추정됨: 구조상 필요해 보이지만 추가 확인이 필요한 작업확인 필요: 제품 판단, 범위 결정, 사용자 의도가 필요한 작업- 완료 여부는 evidence 없이 확정하지 않는다.
-
결과 보고
agent-ops/skills/common/_templates/roadmap-position-report-template.md를 기준으로 출력한다.- 템플릿의 섹션 제목, 필드명, 순서를 바꾸지 않는다.
- 템플릿의 모든 필드를 채우며, 근거가 없으면 생략하지 말고
없음,확인 불가,확인 필요중 하나로 명시한다. 판단 근거에는 브랜치, 변경 파일, 로드맵 근거, 코드/테스트 근거를 각각 분리해 적는다.남은 작업은확인됨,추정됨,확인 필요세 분류를 모두 유지한다.다음 행동에는 가장 우선해야 할 실행 또는 확인을 1~2개만 적는다.읽은 주요 파일에는 실제로 읽은 핵심 파일만 적는다.
Milestone을 하나로 확정할 수 없으면 후보 Milestone마다 링크를 출력한다.
Milestone 문서 경로를 찾지 못한 경우에도 링크 항목을 생략하지 말고 링크 확인 불가: <이유>와 확인한 로드맵 파일 경로를 함께 적는다.
실행 결과 검증
roadmap-position-report-template.md를 읽고 그 섹션 순서와 필드명을 유지했는가current.md만 근거로 현재 위치를 단정하지 않았는가- 활성 Milestone 문서의 목표와 범위 제외 항목을 확인했는가
agent-ops/roadmap/archive/**문서를 명시 요청 없이 읽지 않았는가- 활성 Milestone 문서의
구현 잠금섹션 존재 여부, 상태,결정 필요항목을 확인했는가 - 추정 Milestone마다 문서 링크를 출력했는가
- 관련
필수 기능항목에 item-id가 있으면 결과에 함께 표시했는가 - 변경 파일 또는 사용자 요청과 Milestone 판단 근거가 연결되어 있는가
- 남은 작업을
확인됨,추정됨,확인 필요로 구분했는가 - 템플릿 필드를 근거 없이 생략하지 않고
없음,확인 불가,확인 필요로 채웠는가 - 로드맵 파일을 수정하지 않았는가
- 검증 실패 시: 부족한 근거를 명시하고 신뢰도를 낮춘다. Milestone 링크 누락은 출력 전 반드시 보정한다.
출력 형식
- 템플릿 경로:
agent-ops/skills/common/_templates/roadmap-position-report-template.md - 템플릿을 그대로 복사해 placeholder를 채운다.
- 섹션 제목과 필드명을 임의로 번역, 축약, 삭제하지 않는다.
- 값이 없는 필드는
없음,확인 불가,확인 필요중 하나로 채운다.
금지 사항
current.md만 읽고 현재 작업 위치를 확정하지 않는다.- 사용자가 명시하지 않은 상태에서
ROADMAP.md,current.md, Milestone 문서를 수정하지 않는다. - 사용자가 명시하지 않은 상태에서
agent-ops/roadmap/archive/**를 읽지 않는다. - evidence 없이 Milestone이나 기능을 완료 처리하지 않는다.
- 활성 Milestone 밖 작업을 임의로 새 Milestone으로 추가하지 않는다.