Community코딩 & 개발github.com

Levix-Digital/plan-memory

프로젝트 저장소 내에서 공유되고 버전 관리되는 공유 계획 - 백로그(docs/BACKLOG.md)는 버그, 기능, 개선 사항 및 조정 사항을 에픽 아래에 그룹화하여 저장하고, 로드맵(docs/ROADMAP.md)은 릴리스와 각 릴리스가 제공하는 항목을 정리하며, 완전하고 압축되지 않은 계획(docs/plans, 기능 또는 버그 계획)은 마일스톤, 계보, 상태 기록, 백로그 항목 승격, 로컬 ChromaDB 인덱스를 통한 의미론적 검색 및 드리프트 감지를 제공합니다. 캡처 또는 트라이지에 사용합니다.

plan-memory란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Cursor 등)가 프로젝트 계획을 지속적으로 기억하고 관리할 수 있도록 설계된 '플랜 메모리(plan-memory)'를 제공합니다. 백로그, 로드마, 완전한 계획 문서를 버전 관리하여 세션 간 정보 손실 없이 일관된 개발을 지원합니다. 지원 플랫폼은 명시되어 있지 않지만, dev-cycle 프로토콜을 통해 셸 및 PowerShell 환경에서 실행됩니다. 각 계획은 YAML 프론트매터와 마크다운 본문을 포함하는 파일(docs/plans/<plan_id>.md)로 저장되며, 로컬 ChromaDB 인덱스를 통해 의미론적 검색 및 드리프트 감지가 가능합니다. 주요 기능으로는 계획 저장/업데이트, 마일스톤 추적, 아키텍처 드리프트 감지, 의미론적 검색, 상태 관리, 내보내기 등이 있으며, 모든 조작은 파일 기반으로 이루어져 변경 사항을 명확하게 추적할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Levix-Digital/ai-code-agent-skills/tree/HEAD/plan-memory

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

📐 프로젝트 플랜 메모리 스킬 (plan-memory)

경로: <skills_root>는 이 스킬을 포함하는 폴더입니다 (이 SKILL.md 폴더의 상위 폴더). 명령어 실행 시 실제 절대 경로를 사용하세요.

plan-memory 스킬은 프로젝트의 100% 완전하고 압축되지 않은 아키텍처 계획, 전략적 로드맵 및 다단계 청사진을 프로젝트에 참여하는 모든 사람이 공유할 수 있도록 유지합니다.

  • 진리 소스: 프로젝트 저장소의 각 계획당 하나의 마크다운 파일, docs/plans/<plan_id>.md (YAML 프론트매터 + 계획 본문). 계획은 버전 관리되고, 검토되며, 코드와 함께 병합됩니다. 프로젝트의 .dev-cycle.json에서 "plans_dir"로 폴더를 변경할 수 있습니다.
  • 검색 인덱스: ~/.ai-code-agent-memory/plan-memory/db의 로컬 ChromaDB ( PLAN_MEMORY_DB로 재정의 가능), 컬렉션 plan_index. 일회용입니다: 모든 명령어가 파일에서 이를 동기화하며(SHA-256 사용), rebuild_index (엔진)가 다시 생성합니다.
  • 프로젝트: 현재 디렉토리의 Git 저장소에서 확인됩니다 (--dir로 재정의 가능): .dev-cycle.json의 project_name, 없으면 저장소 폴더 이름을 kebab-case로 정규화합니다. --project가 이를 재정의합니다.
  • 수준: 백로그 (docs/BACKLOG.md)는 발견 없이 초 단위로 작업을 캡처하며, 에픽 아래에 그룹화됩니다. 로드맵 (docs/ROADMAP.md)은 릴리스를 정렬하고 항목을 할당합니다. 사용자가 백로그 항목을 승격시킬 때 계획이 생성되며, 발견 및 계획 내용을 담습니다 ("백로그" 및 "로드맵" 참조).
  • Spec Kit 봉투: 프로젝트가 Spec Kit을 사용하는 경우, 기능 계획은 Spec Kit 폴더(specs/NNN-slug/)의 봉투(spec_dir)이며, 세부 정보를 보관합니다. 검색, 드리프트 감지 및 get_plan은 계획과 함께 폴더의 아티팩트를 읽습니다 ("Plans with Spec Kit" 참조).
  • 지침 원칙: 제로 압축 / 제로 손실. 계획은 모든 개발자와 세션을 위한 지속적인 지식으로 전체(Mermaid 다이어그램, 표, 단계, 공식, 근거)가 보존됩니다.

🏛️ 계획 파일 형식

---
plan_id: my_app_blueprint_v1_2_0_two_stage_search
project: my-app
title: Two-stage search with local re-ranking
kind: feature              # feature (기본값) | bug
version: v1.2.0
status: in_progress        # draft | planned | active | in_progress | completed | superseded
author: Jane Doe           # 생성한 사람의 git user.name
created_at: '2026-10-15T16:36:00'
updated_at: '2026-10-16T09:10:00'
session_id: 8abbc3bf-...   # 계획이 수립된 대화 (선택 사항)
tags: [search, reranker]
supersedes: my_app_blueprint_v1_1_0_search
superseded_by: null
parent_plan_id: null
backlog_items: [FEAT-004]  # 계획이 제공하는 백로그 항목 (선택 사항)
spec_dir: specs/004-reranker  # 계획 세부 정보가 있는 Spec Kit 폴더 (선택 사항)
milestones:
- name: M1 Runtime base
  done: true
  done_at: '2026-10-15'
  by: Jane Doe
- name: M2 Reranker
  done: false
status_log:
- at: '2026-10-15T16:36:00'
  by: Jane Doe
  status: active
  note: Plan created
---

# 계획 제목

...마크다운 형식의 전체 계획 본문...
  • 스크립트는 프론트매터만 다시 씁니다. 본문은 save_plan에 의해 한 번 작성되거나 (또는 수동으로 편집됩니다). 마일스톤 및 상태 변경은 작고 읽기 쉬운 차이점을 생성합니다.
  • 파일 이름은 계획 ID입니다. 계보 필드(supersedes, superseded_by, parent_plan_id)는 다른 계획 ID를 참조합니다.
  • 스크립트는 절대 커밋하지 않습니다. 에이전트는 계획 파일을 해당 작업이 설명하는 코드와 함께 커밋합니다 ("팀 워크플로" 참조).

⚙️ 명령어

모든 스크립트는 <skills_root>/plan-memory/에 있으며 --dir <프로젝트 디렉토리> (기본값: 현재 디렉토리) 및 --project <이름>을 허용합니다.

1. 계보와 함께 계획 저장 / 업데이트 (save_plan)

자르거나 요약하지 않고 전체 계획을 docs/plans/<plan_id>.md에 씁니다. 기존 ID를 저장하면 제목, 본문 및 필드가 업데이트되고 작성자, 생성 날짜 및 마일스톤 진행 상황은 유지됩니다. --supersedes는 이전 계획을 superseded로 표시합니다. save_plan은 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory save_plan \
  --title "통합 로드맵: Python -> Rust, 모델 라우터 및 모델 키트" \
  --file "path/to/plan.md" \
  --version "v1.2.0" \
  --tags "roadmap,rust_refactor,model_router" \
  --milestones "Priority 1,Priority 2,Milestone 3" \
  --status "active" \
  --session-id "<session_id>" \
  --supersedes "<old_plan_id>"

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory save_plan [인수]를 대신 실행하세요. 옵션: --id (기본값: <project>_<title> 슬러그), --parent-id, --file 대신 --content, --kind feature|bug, --backlog-items "BUG-001,FEAT-002" (항목을 연결하며 planned 상태가 됨), --spec-dir specs/NNN-slug (계획은 해당 Spec Kit 폴더의 봉투가 됩니다).

2. 마일스톤 및 진행 상황 추적기 (check_milestone)

check_milestone은 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

# 최신 활성 계획의 진행 상황 및 체크리스트 (또는 --id <plan_id>):
"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory check_milestone --list

# 마일스톤을 완료로 표시 (날짜와 작성자 기록):
"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory check_milestone --milestone "Priority 1" --notes "PR #319를 통해 완료됨"

# 마일스톤을 보류로 되돌리기:
"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory check_milestone --milestone "Priority 1" --uncheck

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory check_milestone [인수]를 대신 실행하세요. 첫 번째 완료된 마일스톤은 active 계획을 in_progress로 이동시키고, 마지막 마일스톤은 completed로 이동시킵니다.

3. 아키텍처 드리프트 감지기 (detect_drift)

구현 제안, 이슈 또는 새 프롬프트를 활성 계획과 비교합니다: 의미론적 유사성, 마일스톤 범위 및 순서, 프로젝트 자체의 안티패턴 규칙. detect_drift는 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory detect_drift --proposal "Priority 1: Python LangGraph를 대체하여 Rust로 네이티브 ReAct 오케스트레이터 구축"
"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory detect_drift --file "path/to/proposal.md" --strict   # 충돌 시 종료 코드 != 0

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory detect_drift [인수]를 대신 실행하세요.

안티패턴 규칙은 프로젝트의 .dev-cycle.json ( --dir에서 위로 찾음)의 drift_rules 키에 있습니다. 규칙이 없으면 유사성과 마일스톤만 확인됩니다.

"drift_rules": [
  { "tech": "langchain", "conflict_msg": "기본 계획은 LangChain을 제거합니다." },
  {
    "tech": "parallel database",
    "negative_markers": ["single source", "settings.db"],
    "proposal_allow": [],
    "conflict_msg": "제안이 단일 진실 공급원을 위반하는 병렬 데이터베이스를 암시합니다."
  }
]

규칙은 적용 중인 계획(active / in_progress)이 tech를 거부 표시자와 함께 언급하고, 제안이 허용된 구문 없이 tech를 언급할 때 충돌을 발생시킵니다.

  • negative_markers (선택 사항): 거부를 표시하는 단어. 기본값: remove, replace, without, forbidden, ... 및 해당 포르투갈어 동의어 (기존 계획이 아직 번역되지 않는 동안 유지됨).
  • proposal_allow (선택 사항): 언급을 허용 가능하게 만드는 구문. 기본값: without <tech>, remove <tech>, replace <tech>, ... 및 해당 포르투갈어 동의어.

4. 계획 목록 (list_plans)

list_plans는 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory list_plans [--status active] [--kind bug]

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory list_plans [인수]를 대신 실행하세요.

5. 전체 계획 읽기 (get_plan)

get_plan은 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory get_plan --id "<plan_id>"
"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory get_plan                  # 최신 활성 계획

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory get_plan [인수]를 대신 실행하세요.

6. 의미론적 검색 (search_plans)

search_plans는 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory search_plans --query "채팅에서 모델 라우터를 구현하는 방법" [--limit 5] [--all-projects]

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory search_plans [인수]를 대신 실행하세요.

7. 수명 주기 상태 업데이트 (update_plan_status)

계획의 상태를 설정하고, 상태 로그에 기록하며, 연결된 백로그 항목을 함께 가져옵니다. update_plan_status는 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory update_plan_status --id "<plan_id>" --status "completed" --notes "Priority 1 및 2가 제공되었습니다."

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory update_plan_status [인수]를 대신 실행하세요.

8. 내보내기 (export_plan)

계획을 JSON 또는 프론트매터 유무에 관계없이 마크다운으로 다른 곳에 복사합니다. export_plan은 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory export_plan --id "<plan_id>" --format json --output-dir "out/"

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory export_plan [인수]를 대신 실행하세요.

9. 인덱스 재구축 (rebuild_index)

rebuild_index는 네이티브 엔진에서 실행됩니다. sh 셸(Linux, macOS, Git Bash)에서:

"<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory rebuild_index [--project <name>] [--dir <path>]

PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory rebuild_index [인수]를 대신 실행하세요.


📥 백로그 (backlog)

첫 번째 계획 수준: 하나의 마크다운 파일 (.dev-cycle.json의 backlog.file, 기본값 docs/BACKLOG.md), 첫 번째 add에 의해 templates/BACKLOG_TEMPLATE.md에서 생성됩니다.

## Bugs | Features | Improvements | Adjustments | Epics | Closed

### BUG-001: Frontier 프리셋이 오래된 모델 ID를 선택함
- **Severity**: high              # bugs: critical | high | medium | low
- **Status**: open                # open | planned | in_progress (Closed 아래: done | dropped | duplicate | superseded)
- **Found**: 2026-10-16, v0.45.0, PR #333
- **Plan**: -                     # 승격되면 계획 ID
- **Description**: `/preset frontier`가 `claude-3-7-sonnet`을 설정하며, 공급자가 이를 거부할 수 있습니다.

기능 (FEAT-NNN), 개선 사항 (IMP-NNN) 및 조정 사항 (ADJ-NNN)은 Severity 대신 Priority (high, medium, low)를 갖습니다. 에픽을 제외한 모든 항목은 - **Epic**: EPIC-NNN을 가질 수 있습니다. 에픽 (EPIC-NNN, ## Epics 섹션)은 전체 제품의 항목을 그룹화합니다. Priority, Status (open ~ closed), Found 및 Description을 가지며 Plan이 없고 절대 승격되지 않습니다. 대신 해당 항목이 승격됩니다. validate는 모든 항목이 종료된 열린 에픽에 대해 경고합니다. ID는 재사용되지 않습니다. 종료된 항목은 ## Closed 아래에 - **Closed**: 메모 (날짜 및 풀 리퀘스트, 이유, duplicate of <ID>, 또는 superseded by <ID>[, <ID>...])와 함께 남습니다. 항목이 더 잘 정의된 다른 항목으로 대체되면 대체(superseded) 된 것입니다 (아이디어 분할 또는 착상 후 재구성). 중복(duplicate) 은 동일한 요청이 두 번 캡처된 것입니다.

backlog는 네이티브 엔진에서 실행됩니다: sh 셸(Linux, macOS, Git Bash)에서 "<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory backlog <command> [arguments]. PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory backlog [arguments]를 대신 실행하세요.

작업명령어
캡처backlog add --type bug|feature|improvement|adjustment|epic --title "<t>" --description "<d>" [--severity S] [--priority P] [--epic EPIC-NNN] [--found-in "v1.2.0, PR #12"]
실패한 수동 테스트 캡처backlog add --from-failed --run vX.Y.Z-rc.N [--severity S]
요약 (새 작업 전 버그 우선)backlog summary [--json]
목록, 보기backlog list [--type T] [--status S] [--epic EPIC-NNN] [--all] [--json], backlog show <ID>
변경backlog set <ID> [--title] [--description] [--severity] [--priority] [--status] [--plan] [--epic ID|-]
계획으로 승격backlog promote <ID> [<ID> ...] [--title T] [--id PLAN_ID] [--version V] 또는 --into <PLAN_ID>
종료backlog close <ID> [--ref "PR #12"], drop <ID> --reason R, duplicate <ID> --of <ID>, supersede <ID> --by <ID>[,<ID>...], reopen <ID>
검증backlog validate
  • 캡처 비용은 없습니다: 발견이나 계획이 필요 없습니다. 사용자는 /backlog 명령어로 수행합니다. 에이전트는 현재 범위를 벗어난 버그를 발견할 때 수행합니다.
  • 승격은 templates/BUG_PLAN_TEMPLATE.md (모든 항목이 버그인 경우: 재현, 증거 및 근본 원인, 수정 설계, 회귀 테스트) 또는 templates/FEATURE_PLAN_TEMPLATE.md에서 draft 계획을 생성하며, 항목을 Backlog items 섹션에 복사하고 양방향으로 연결합니다. 발견 내용은 해당 계획에 기록되며, 승인을 위해 마일스톤과 함께 active로 다시 저장됩니다.
  • 연결된 항목은 계획을 따릅니다: 계획이 draft 또는 active인 동안 planned, 진행 중이면 in_progress, 완료되면 done으로 종료됩니다 (check_milestone 및 update_plan_status 엔진 사용).
  • 트라이지는 사용자의 결정입니다: 에이전트는 스스로 승격, 드롭 또는 우선 순위 재지정을 하지 않습니다.
  • 스크립트는 절대 커밋하지 않으며 읽을 수 없는 구조의 파일을 다시 쓰는 것을 거부하므로 수동 편집이 손실되지 않습니다.

🗺️ 로드맵 (roadmap)

제품의 릴리스를 전달 순서대로 정리합니다 (.dev-cycle.json의 roadmap.file, 기본값 docs/ROADMAP.md). 첫 번째 roadmap add에 의해 templates/ROADMAP_TEMPLATE.md에서 생성됩니다.

# 로드맵

## v1.1.0 — 2026-11-15
- **상태**: planned              # planned | in_progress | released | deferred | cancelled
- **계획**: my_app_blueprint_v1_1_0, my_app_blueprint_v1_1_0_two_stage_search
- **백로그**: BUG-001, FEAT-002
- **메모**: 핵심 검색 및 재순위화.

### v1.1.0에 포함된 항목
- [BUG-001] Frontier 프리셋이 오래된 모델 ID를 선택함
- [FEAT-002] 두 단계 검색

roadmap은 네이티브 엔진에서 실행됩니다: sh 셸(Linux, macOS, Git Bash)에서 "<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory roadmap <command> [arguments]. PowerShell에서는 & "<skills_root>/dev-cycle-protocol/bin/dev-cycle.ps1" plan-memory roadmap [arguments]를 대신 실행하세요.

작업명령어
릴리스 추가roadmap add --release v1.1.0 --date 2026-11-15 [--status planned] [--notes "..."]
릴리스 업데이트roadmap set v1.1.0 [--date] [--status] [--notes]
항목 할당roadmap assign v1.1.0 --items "BUG-001,FEAT-002"
릴리스 표시roadmap show v1.1.0
계획 할당roadmap assign-plan v1.1.0 --plans "my_app_blueprint_v1_1_0"
항목 제거roadmap unassign v1.1.0 --items "BUG-001"
모든 릴리스 나열roadmap list
  • 할당된 항목은 로드맵과 백로그 모두에 나타납니다. backlog show <ID>는 백로그에서 연결된 릴리스를 보여줍니다.
  • 계획은 연결된 백로그 항목을 통해 릴리스에 연결됩니다. roadmap assign-plan v1.1.0 --plans "<id>"는 계획의 모든 백로그 항목을 해당 릴리스에 할당합니다. 계획이 릴리스에 직접 할당되면 해당 항목도 상속됩니다.
  • 스크립트는 읽을 수 없는 구조의 문서를 수정하지 않습니다.

🏗️ 완전한 계획 관리 (plans 명령어)

backlog promote 외에도 plans 명령어는 다음을 처리합니다:

작업명령어
계획 편집 (수동 후크)plans edit <plan_id>
유효하지 않은 계획 찾기
└─ 검증plans validate

plans는 네이티브 엔진에서 실행됩니다: "<skills_root>/dev-cycle-protocol/bin/dev-cycle" plan-memory plans <command> [arguments].

  • plans edit은 편집을 위해 기본 편집기( $EDITOR)에서 계획 파일을 엽니다. 저장 시 프론트매터가 업데이트되고 ChromaDB가 동기화됩니다.
  • plans validate는 계획 파일의 프론트매터가 스키마를 준수하는지, 계보 필드가 존재하는 ID를 참조하는지, 파일 시스템 상태와 ChromaDB 간에 불일치가 없는지 확인합니다.

🔍 Spec Kit을 사용한 계획 (spec_dir)

프로젝트가 Spec Kit을 사용하는 경우, 기능 계획은 spec_dir: specs/NNN-slug 프론트매터 키를 갖습니다. 이는 계획이 해당 Spec Kit 폴더의 봉투임을 의미합니다:

  • 계획 프론트매터는 마일스톤, 상태, 계보 및 연결된 백로그 항목을 추적합니다.
  • get_plan은 계획 본문 및 Spec Kit 폴더의 아티팩트( SPEC.md, ARCHITECTURE.md, 다이어그램 등)를 읽고 단일 응답으로 병합합니다.
  • search_plans는 계획 본문 및 Spec Kit 폴더의 내용을 인덱싱합니다.
  • detect_drift는 Spec Kit의 ARCHITECTURE.md를 아키텍처 사양으로 사용하여 드리프트를 더욱 정밀하게 감지합니다.
  • save_plan은 (Spec Kit이 아직 생성되지 않은 경우) spec_dir 아래에 Spec Kit 템플릿을 자동으로 생성할 수 있습니다.

📂 명령어 요약 테이블

명령어네이티브 엔진sh 셸 예시PowerShell 예시
save_plan예<skills_root>/dev-cycle-protocol/bin/dev-cycle plan-memory save_plan [...]& ".../dev-cycle.ps1" plan-memory save_plan [...]
check_milestone예... check_milestone --list... check_milestone --list
detect_drift예... detect_drift --proposal "..."... detect_drift --proposal "..."
list_plans예... list_plans --status active... list_plans --status active
get_plan예... get_plan --id "<id>"... get_plan --id "<id>"
search_plans예... search_plans --query "..."... search_plans --query "..."
update_plan_status예... update_plan_status --id "<id>" --status completed... update_plan_status --id "<id>" --status completed
export_plan예... export_plan --id "<id>" --format json... export_plan --id "<id>" --format json
rebuild_index예... rebuild_index [--project <name>]... rebuild_index [--project <name>]
backlog <하위 명령어>예... plan-memory backlog add --type bug ...... plan-memory backlog add --type bug ...
roadmap <하위 명령어>예... plan-memory roadmap add --release v1.1.0 ...... plan-memory roadmap add --release v1.1.0 ...
plans <하위 명령어>예... plan-memory plans validate... plan-memory plans validate

🤝 팀 워크플로

  1. 백로그 캡처: 버그 또는 빠른 아이디어를 발견하면 backlog add합니다 (비용 없음, 발견 없음).
  2. 로드맵 할당: 주간 회의 중 roadmap add / roadmap assign을 사용하여 백로그 항목을 릴리스에 할당합니다.
  3. 계획 승격: 작업을 시작할 준비가 되면 backlog promote합니다. 계획이 draft로 생성됩니다. 발견 내용을 계획 본문에 작성하고 마일스톤을 설정한 후 save_plan --status active로 저장합니다.
  4. 검토 및 승인: 팀 동료가 get_plan으로 계획을 읽고, detect_drift가 활성 계획과의 충돌을 확인하며, PR에서 계획이 병합됩니다 (계획 파일 자체가 PR의 일부입니다 - 스크립트는 커밋하지 않습니다).
  5. 구현: check_milestone으로 마일스톤을 완료로 표시합니다. 완료되면 update_plan_status --status completed로 설정합니다.
  6. 닫힌 주기: 완료된 계획의 백로그 항목이 Closed로 이동됩니다.

🧠 ChromaDB 및 인덱스 세부 사항

  • 경로: ~/.ai-code-agent-memory/plan-memory/db ( PLAN_MEMORY_DB 환경 변수로 재정의 가능).
  • 컬렉션: plan_index.
  • 동기화: 각 명령어는 계획 파일의 SHA-256 해시를 인덱스와 비교합니다. 파일이 변경되면 인덱스가 업데이트됩니다.
  • 일회용: rebuild_index를 실행하여 언제든지 처음부터 다시 빌드할 수 있습니다. 인덱스를 잃어도 계획 파일은 그대로 유지됩니다.
  • 검색: search_plans는 의미론적 유사성 (cosine 거리)을 사용하며, 선택적으로 --all-projects로 모든 프로젝트를 검색할 수 있습니다.

⚠️ 중요한 참고 사항

  • 커밋 없음: 이 스킬의 명령어 중 어느 것도 git add / git commit을 수행하지 않습니다. 에이전트는 계획 파일을 관련 코드 변경 사항과 함께 커밋해야 합니다.
  • 수동 편집: 사용자는 언제든지 계획 파일을 직접 편집할 수 있습니다. 스크립트는 프론트매터만 다시 쓰므로 본문 변경 사항이 유지됩니다.
  • 프로젝트 식별: 프로젝트 이름은 Git 원격 또는 .dev-cycle.json을 기반으로 자동 감지됩니다. --project 플래그로 수동 재정의할 수 있습니다.
  • 백업: 파일이 진리 소스이므로 ChromaDB 인덱스를 잃어도 복구가 가능합니다. rebuild_index만 실행하면 됩니다.

🔗 관련 스킬

  • backlog: 백로그 명령어에 대한 간단한 인터페이스 (/backlog).
  • dev-cycle-protocol: 이 스킬의 명령어를 실행하는 기본 엔진.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬