[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QZNK30VKYFGP1F5GCCP2PV":3,"skill-same:01M6QZNK30VKYFGP1F5GCCP2PV":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":63,"commitSha":64,"skillDirectory":65,"forksCount":66,"repositoryHtmlUrl":67,"repositoryHomepageUrl":68,"ownerHtmlUrl":69,"ownerBlogUrl":6,"ownerDescription":70,"updatedAt":71,"install":72,"resources":84},"01M6QZNK30VKYFGP1F5GCCP2PV","document-latest",null,"코드 변경 작업 완료 후 Outline 위키 문서를 자동으로 최신화합니다.\n변경 내용을 분석하여 문서 유형을 자동 분류하고, 기존 문서 업데이트 또는 신규 문서 생성을 판단하여\nOutline 위키에 한국어 문서를 작성합니다. 민감정보 자동 마스킹을 포함합니다.\nAutomatically refreshes Outline wiki documentation after code changes: analyzes the diff, classifies the document type, decides between updating an existing doc or creating a new one, and writes Korean docs to the Outline wiki with automatic sensitive-data masking. Use when: updating the wiki after finishing work, syncing documentation, documenting API changes in Outline.","Dokkabei97\u002Fdokkabei-harness","Dokkabei97","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F69792585?v=4","01M6QYPVTYK6CGF609W541QNSD","JangMK","01M6QYPVYXBP1GRYHZ7ZABCZC6",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fdocument-latest\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"document latest","latest","document","diff","when","automatic","Existing","한국어","true","korean","documentation","use","work","wiki","api","sensitive-data","doc","data","code","api changes","2026-11-10 10:12:30",false,"---\nname: document-latest\ndescription: |\n  코드 변경 작업 완료 후 Outline 위키 문서를 자동으로 최신화합니다.\n  변경 내용을 분석하여 문서 유형을 자동 분류하고, 기존 문서 업데이트 또는 신규 문서 생성을 판단하여\n  Outline 위키에 한국어 문서를 작성합니다. 민감정보 자동 마스킹을 포함합니다.\n  Automatically refreshes Outline wiki documentation after code changes: analyzes the diff, classifies the document type, decides between updating an existing doc or creating a new one, and writes Korean docs to the Outline wiki with automatic sensitive-data masking. Use when: updating the wiki after finishing work, syncing documentation, documenting API changes in Outline.\nmetadata:\n  version: 1.0.0\n  domain: wiki-automation\n  requires_mcp: outline\ndisable-model-invocation: true\n---\n\n# Document Latest - Outline 위키 자동 업데이트\n\n## Overview\n\n코드 변경 작업 완료 후 Outline 위키 문서를 자동으로 최신화합니다.\n변경된 파일 경로와 커밋 메시지를 분석하여 문서 유형(API\u002F아키텍처\u002F정책\u002F인프라\u002F일반)을 자동 분류하고,\n기존 문서 업데이트 또는 신규 문서 생성을 판단합니다.\n민감정보(API키, 비밀번호, 사설IP 등)는 자동 마스킹됩니다.\n\n---\n\n## 1. 활성화 규칙\n\n| 트리거 유형 | 조건 | 동작 |\n|-------------|------|------|\n| **수동** | `\u002Fdocument-latest` 명시 호출 (사용자 직접 실행 전용) | Phase 1~6 전체 실행 |\n| **설정 초기화** | \"outline 설정\", \"문서 설정\" | Phase 1만 실행 (`.outline-context.json` 생성) |\n\n---\n\n## 2. 컬렉션 설정 (`.outline-context.json`)\n\n프로젝트 루트에 배치하는 최소 설정 파일. 문서를 관리할 Outline 컬렉션 1개를 지정합니다.\n\n### 설정 파일 구조\n\n```json\n{\n  \"collection_id\": \"uuid-of-collection\",\n  \"language\": \"ko\",\n  \"sensitive_patterns\": [\"password\", \"secret\", \"api_key\", \"token\", \"credential\", \"private_key\", \"db_password\", \"connection_string\", \"aws_access_key\"]\n}\n```\n\n### 설정 파일 초기화\n\n파일이 존재하지 않을 때:\n1. `mcp__outline__list_collections` 호출 → 컬렉션 목록 조회\n2. 사용자에게 문서를 관리할 컬렉션 1개 선택 요청\n3. 선택된 컬렉션의 `id`로 `.outline-context.json` 자동 생성\n4. Git 커밋하여 팀 공유 (UUID만 포함, 보안 위험 없음)\n\n### 컬렉션 동작 방식\n\n- 모든 문서가 설정된 단일 컬렉션에 생성\u002F업데이트됨\n- 문서 카테고리(api\u002Farchitecture\u002Fpolicy\u002Finfrastructure\u002Fgeneral)는 문서 제목 접두어로 구분\n  - 예: `[API] 결제 엔드포인트`, `[Architecture] 인증 모듈 구조`\n\n---\n\n## 3. Behavioral Flow\n\n### Phase 1: Context Loading\n\n```\n1. 프로젝트 루트에서 `.outline-context.json` 파일 탐색\n2. 파일 존재 → JSON 파싱 → collection_id, language, sensitive_patterns 추출\n   파일 미존재 → 초기 설정 워크플로우 실행:\n     a) mcp__outline__list_collections 호출 → 컬렉션 목록 조회\n     b) 사용자에게 컬렉션 목록 표시 → 1개 선택 요청\n     c) 선택된 컬렉션 ID로 `.outline-context.json` 자동 생성\n     d) 생성 완료 알림\n3. collection_id 유효성 검증 (빈 문자열 체크)\n4. 검증 실패 시 → 사용자에게 알림, 재설정 안내\n```\n\n### Phase 2: Change Analysis\n\n```\n1. `git diff --name-only` → 변경 파일 목록 수집\n2. `git diff --stat` → 변경 통계 (파일 수, 추가\u002F삭제 라인)\n3. `git log --oneline -10` → 최근 커밋 이력 수집\n4. MR 컨텍스트 활용 (post-merge 스킬에서 위임 호출 시):\n   - MR 제목\u002F설명 → 문서 요약의 시드 데이터로 활용\n   - MR 라벨 → 카테고리 힌트 (api, infrastructure 등 → Phase 3 가중치 부여)\n   - 타겟 브랜치 → 문서화 우선순위 (main\u002Fmaster → 높음, develop → 보통)\n5. 문서화 필요 여부 판단:\n   - 변경 파일이 없으면 → \"변경사항이 없습니다\" 알림 후 종료\n   - 변경 파일이 설정\u002F문서 파일만이면 → 문서화 선택적 제안\n   - 코드 변경이 있으면 → 문서화 진행\n6. 변경 파일 목록과 커밋 메시지를 Phase 3에 전달\n```\n\n### Phase 3: Document Type Detection\n\n파일 경로 패턴과 커밋 메시지 키워드를 분석하여 문서 카테고리를 자동 분류합니다.\n\n**파일 경로 기반 분류 (1차):**\n\n| 파일 경로 패턴 | 카테고리 | 가중치 |\n|---------------|---------|--------|\n| `controller\u002F`, `route\u002F`, `api\u002F`, `handler\u002F` | api | 3 |\n| `src\u002Fcore\u002F`, `module\u002F`, `service\u002F` (신규 파일) | architecture | 3 |\n| `.eslintrc`, `CONTRIBUTING`, `workflow\u002F` | policy | 3 |\n| `Dockerfile`, `k8s\u002F`, `terraform\u002F`, `.github\u002Fworkflows\u002F` | infrastructure | 3 |\n| 기타 | general | 1 |\n\n**커밋 메시지 키워드 기반 분류 (2차 보조):**\n\n| 키워드 | 카테고리 | 가중치 |\n|--------|---------|--------|\n| `endpoint`, `api`, `rest`, `graphql`, `route` | api | 2 |\n| `architecture`, `module`, `refactor`, `structure` | architecture | 2 |\n| `lint`, `rule`, `policy`, `convention`, `standard` | policy | 2 |\n| `deploy`, `docker`, `k8s`, `ci`, `cd`, `infra` | infrastructure | 2 |\n\n```\n분류 알고리즘:\n1. 각 변경 파일의 경로 패턴을 분석 → 카테고리별 가중치 합산\n2. 커밋 메시지 키워드 분석 → 카테고리별 가중치 추가\n3. 가중치 합계가 가장 높은 카테고리 선택\n4. 최고 가중치가 동일하면 → 사용자에게 카테고리 선택 질문\n5. 모든 카테고리 가중치가 0이면 → general로 분류\n```\n\n### Phase 4: Document Discovery\n\n```\n1. 설정된 컬렉션(collection_id)에서 관련 문서 검색:\n   → mcp__outline__search_documents 로 변경 내용 관련 키워드 검색\n   → 검색 키워드: 변경된 모듈명, 주요 파일명, 커밋 메시지 핵심 키워드\n2. 검색 결과 분석:\n   a) 관련 문서 발견 → \"기존 문서를 업데이트할까요, 새 문서를 만들까요?\" 질문\n      - 기존 문서 목록 표시 (제목, 마지막 수정일)\n      - 사용자가 업데이트할 문서 선택 또는 신규 생성 선택\n   b) 관련 문서 미발견 → 신규 문서 생성 진행\n3. 기존 문서 업데이트 선택 시:\n   → mcp__outline__read_document 로 기존 문서 내용 로드\n   → 기존 내용에 변경사항 병합\n```\n\n### Phase 5: Content Generation & Security Filtering\n\n```\n1. 카테고리별 문서 템플릿에 따라 한국어 문서 생성 (아래 \"카테고리별 문서 템플릿\" 참조)\n2. 보안 필터링 (필수):\n   a) 다음 패턴을 감지하여 마스킹:\n      - password, secret, api_key, token, credential, private_key\n      - db_password, connection_string, aws_access_key\n      - Bearer 토큰: Bearer [토큰값] → Bearer [MASKED]\n      - SSH 키: -----BEGIN ... PRIVATE KEY----- → [SSH_KEY_MASKED]\n      - 사설 IP: 10.x.x.x, 172.16-31.x.x, 192.168.x.x → [PRIVATE_IP_MASKED]\n      - .outline-context.json의 sensitive_patterns에 정의된 추가 패턴\n   b) 마스킹 적용 후 결과 사용자에게 보고:\n      → \"다음 민감정보가 마스킹되었습니다: [항목 목록]\"\n      → 마스킹 항목이 없으면 보고 생략\n3. 생성된 문서 내용을 사용자에게 미리보기로 표시\n4. 사용자 수정 요청이 있으면 반영\n```\n\n### Phase 6: Write to Outline\n\n```\n1. 사용자에게 최종 확인 요청:\n   → \"다음 내용으로 Outline에 [생성\u002F업데이트]하겠습니다. 진행할까요?\"\n2. 승인 시:\n   a) 신규 문서 생성:\n      → mcp__outline__create_document(\n          title=\"[카테고리] 문서 제목\",\n          text=생성된_마크다운,\n          collectionId=collection_id,\n          publish=true\n        )\n   b) 기존 문서 업데이트:\n      → mcp__outline__update_document(\n          id=문서_id,\n          text=업데이트된_마크다운\n        )\n3. 성공 시 → 문서 URL 표시, 완료 알림\n4. 실패 시 → 에러 내용 표시, 재시도 또는 로컬 파일 저장 제안\n```\n\n---\n\n## 4. 카테고리별 문서 템플릿\n\n### API 문서 템플릿\n\n```markdown\n# [API] {제목}\n\n## 개요\n{API 변경 내용 요약}\n\n## Base URL\n`{base_url}`\n\n## 엔드포인트\n\n### {HTTP_METHOD} {path}\n- **설명**: {설명}\n- **인증**: {인증 방식}\n\n#### 요청\n| 파라미터 | 타입 | 필수 | 설명 |\n|---------|------|------|------|\n| {param} | {type} | {required} | {description} |\n\n#### 응답\n```json\n{응답 예시}\n```\n\n## 에러 코드\n| 코드 | 설명 |\n|------|------|\n| {code} | {description} |\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n### 아키텍처 문서 템플릿\n\n```markdown\n# [Architecture] {제목}\n\n## 개요\n{아키텍처 변경 내용 요약}\n\n## 시스템 구조\n{전체 시스템 내에서의 위치와 역할}\n\n## 주요 컴포넌트\n| 컴포넌트 | 역할 | 위치 |\n|----------|------|------|\n| {name} | {role} | {path} |\n\n## 데이터 흐름\n{데이터 흐름 설명}\n\n## 설계 결정\n| 결정 | 이유 | 대안 |\n|------|------|------|\n| {decision} | {reason} | {alternatives} |\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n### 정책 문서 템플릿\n\n```markdown\n# [Policy] {제목}\n\n## 목적\n{정책의 목적}\n\n## 적용 범위\n{정책이 적용되는 범위}\n\n## 정책 내용\n{구체적인 정책 규칙과 가이드라인}\n\n## 예외 사항\n{정책 예외가 허용되는 경우}\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n### 인프라 문서 템플릿\n\n```markdown\n# [Infrastructure] {제목}\n\n## 개요\n{인프라 변경 내용 요약}\n\n## 환경 구성\n| 환경 | 설정 | 비고 |\n|------|------|------|\n| {env} | {config} | {note} |\n\n## 배포 절차\n1. {step1}\n2. {step2}\n\n## 롤백 절차\n1. {rollback_step1}\n2. {rollback_step2}\n\n## 모니터링\n| 항목 | 지표 | 임계값 |\n|------|------|--------|\n| {item} | {metric} | {threshold} |\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n### 일반 문서 템플릿\n\n```markdown\n# {제목}\n\n## 개요\n{변경 내용 요약}\n\n## 상세 내용\n{변경 사항의 상세 설명}\n\n## 영향 범위\n{변경으로 인한 영향}\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n---\n\n## 5. 보안 필터링 규칙\n\n### 감지 패턴\n\n| 패턴 유형 | 정규식 | 마스킹 결과 |\n|----------|--------|------------|\n| 환경변수 값 | `(password\\|secret\\|api_key\\|token\\|credential\\|private_key\\|db_password\\|connection_string\\|aws_access_key)\\s*[=:]\\s*\\S+` | `{key}=[MASKED]` |\n| Bearer 토큰 | `Bearer\\s+[A-Za-z0-9\\-._~+\u002F]+=*` | `Bearer [MASKED]` |\n| SSH 키 | `-----BEGIN\\s+\\w+\\s+PRIVATE\\s+KEY-----[\\s\\S]*?-----END` | `[SSH_KEY_MASKED]` |\n| 사설 IP (10.x) | `10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}` | `[PRIVATE_IP_MASKED]` |\n| 사설 IP (172.16-31.x) | `172\\.(1[6-9]\\|2[0-9]\\|3[01])\\.\\d{1,3}\\.\\d{1,3}` | `[PRIVATE_IP_MASKED]` |\n| 사설 IP (192.168.x) | `192\\.168\\.\\d{1,3}\\.\\d{1,3}` | `[PRIVATE_IP_MASKED]` |\n\n### 필터링 프로세스\n\n```\n1. 문서 생성 완료 후, 전체 텍스트에 대해 위 패턴 순차 검사\n2. 매칭된 패턴을 마스킹 결과로 치환\n3. 마스킹된 항목 목록 생성\n4. 항목이 1개 이상이면 사용자에게 보고:\n   \"⚠ 다음 민감정보가 마스킹되었습니다:\"\n   - password 값 1건\n   - 사설 IP 2건\n   등\n5. .outline-context.json의 sensitive_patterns에 추가 패턴이 있으면 해당 패턴도 검사\n```\n\n---\n\n## 6. Tool Coordination\n\n### Outline MCP 도구\n\n| 단계 | MCP 도구 | 용도 |\n|------|----------|------|\n| 컬렉션 조회 | `mcp__outline__list_collections` | 컬렉션 목록 조회 (초기 설정) |\n| 문서 검색 | `mcp__outline__search_documents` | 기존 문서 탐색 |\n| 문서 읽기 | `mcp__outline__read_document` | 기존 문서 내용 로드 (업데이트 시) |\n| 문서 생성 | `mcp__outline__create_document` | 신규 문서 생성 |\n| 문서 업데이트 | `mcp__outline__update_document` | 기존 문서 수정 |\n\n### Git 도구 (Bash)\n\n| 명령어 | 용도 |\n|--------|------|\n| `git diff --name-only` | 변경 파일 목록 수집 |\n| `git diff --stat` | 변경 통계 (파일 수, 라인 수) |\n| `git log --oneline -10` | 최근 커밋 이력 수집 |\n\n### 파일 도구\n\n| 도구 | 용도 |\n|------|------|\n| **Glob** | `.outline-context.json` 파일 탐색 |\n| **Read** | `.outline-context.json` 설정 로드 |\n| **Write** | `.outline-context.json` 초기 생성 |\n\n---\n\n## 7. Examples\n\n### 예시 1: 최초 실행 (컬렉션 설정)\n\n```\n사용자: \"문서 업데이트해줘\"\n\n[Phase 1] .outline-context.json 탐색 → 미존재\n          → list_collections 호출 → 5개 컬렉션 발견\n          1. \"개발 문서\" (id: abc-123)\n          2. \"API 문서\" (id: def-456)\n          3. \"운영 가이드\" (id: ghi-789)\n          ...\n\n에이전트: 문서를 관리할 Outline 컬렉션을 선택해주세요:\n          1. 개발 문서\n          2. API 문서\n          3. 운영 가이드\n          ...\n\n사용자: \"1번\"\n\n[Phase 1] .outline-context.json 생성:\n          { \"collection_id\": \"abc-123\", \"language\": \"ko\", \"sensitive_patterns\": [...] }\n          → Phase 2로 진행\n```\n\n### 예시 2: API 변경 후 문서 자동 업데이트\n\n```\n사용자: \"API 변경했어, 문서화해줘\"\n\n[Phase 1] .outline-context.json 로드 → collection_id: \"abc-123\"\n[Phase 2] git diff --name-only →\n          src\u002Fcontroller\u002Fpayment.controller.ts\n          src\u002Froute\u002Fpayment.route.ts\n          src\u002Fservice\u002Fpayment.service.ts\n[Phase 3] 파일 경로 분석 → controller\u002F, route\u002F → api 카테고리 (가중치 6)\n[Phase 4] search_documents(\"결제 API\") → 기존 문서 \"[API] 결제 엔드포인트\" 발견\n\n에이전트: 기존 문서 \"[API] 결제 엔드포인트\"를 업데이트할까요?\n\n사용자: \"응\"\n\n[Phase 5] 기존 문서 읽기 → 변경사항 반영 → 보안 필터링\n          → \"민감정보 마스킹: 없음\"\n[Phase 6] update_document 실행 → 완료\n          → \"문서가 업데이트되었습니다: https:\u002F\u002Fwiki.example.com\u002Fdoc\u002F...\"\n```\n\n### 예시 3: 인프라 변경 시 신규 문서 생성\n\n```\n사용자: \"커밋할게\"\n\n에이전트: Outline 위키에 변경사항을 반영할까요?\n\n사용자: \"응\"\n\n[Phase 2] git diff --name-only →\n          .github\u002Fworkflows\u002Fdeploy.yml\n          k8s\u002Fdeployment.yaml\n          Dockerfile\n[Phase 3] 파일 경로 분석 → .github\u002Fworkflows\u002F, k8s\u002F, Dockerfile → infrastructure (가중치 9)\n[Phase 4] search_documents(\"배포 파이프라인\") → 관련 문서 없음\n\n에이전트: 관련 문서가 없습니다. 새 문서를 생성할까요?\n          제목: [Infrastructure] CI\u002FCD 배포 파이프라인\n\n사용자: \"좋아\"\n\n[Phase 5] 인프라 템플릿으로 문서 생성 → 보안 필터링\n          → \"⚠ 다음 민감정보가 마스킹되었습니다: 사설 IP 2건\"\n[Phase 6] create_document 실행 → 완료\n          → \"문서가 생성되었습니다: https:\u002F\u002Fwiki.example.com\u002Fdoc\u002F...\"\n```\n\n---\n\n## 8. Boundaries\n\n**Will:**\n- `.outline-context.json`으로 컬렉션 설정 자동 관리\n- 변경 파일 분석 및 문서 유형 자동 분류\n- 기존 문서 검색 및 업데이트\u002F신규 생성 판단\n- 카테고리별 템플릿 기반 한국어 문서 생성\n- 민감정보 자동 감지 및 마스킹\n- 사용자 확인 후 Outline 위키에 문서 작성\n\n**Will Not:**\n- 사용자 확인 없이 문서 생성\u002F수정\n- 문서 삭제 (Outline의 DISABLE_DELETE 설정 준수)\n- 코드 자동 수정 또는 커밋\n- 여러 컬렉션에 동시 문서 배포\n- Outline 워크스페이스 설정 변경\n","# Document Latest - Outline 위키 자동 업데이트\n\n## Overview\n\n코드 변경 작업 완료 후 Outline 위키 문서를 자동으로 최신화합니다.\n변경된 파일 경로와 커밋 메시지를 분석하여 문서 유형(API\u002F아키텍처\u002F정책\u002F인프라\u002F일반)을 자동 분류하고,\n기존 문서 업데이트 또는 신규 문서 생성을 판단합니다.\n민감정보(API키, 비밀번호, 사설IP 등)는 자동 마스킹됩니다.\n\n---\n\n## 1. 활성화 규칙\n\n| 트리거 유형 | 조건 | 동작 |\n|-------------|------|------|\n| **수동** | `\u002Fdocument-latest` 명시 호출 (사용자 직접 실행 전용) | Phase 1~6 전체 실행 |\n| **설정 초기화** | \"outline 설정\", \"문서 설정\" | Phase 1만 실행 (`.outline-context.json` 생성) |\n\n---\n\n## 2. 컬렉션 설정 (`.outline-context.json`)\n\n프로젝트 루트에 배치하는 최소 설정 파일. 문서를 관리할 Outline 컬렉션 1개를 지정합니다.\n\n### 설정 파일 구조\n\n```json\n{\n  \"collection_id\": \"uuid-of-collection\",\n  \"language\": \"ko\",\n  \"sensitive_patterns\": [\"password\", \"secret\", \"api_key\", \"token\", \"credential\", \"private_key\", \"db_password\", \"connection_string\", \"aws_access_key\"]\n}\n```\n\n### 설정 파일 초기화\n\n파일이 존재하지 않을 때:\n1. `mcp__outline__list_collections` 호출 → 컬렉션 목록 조회\n2. 사용자에게 문서를 관리할 컬렉션 1개 선택 요청\n3. 선택된 컬렉션의 `id`로 `.outline-context.json` 자동 생성\n4. Git 커밋하여 팀 공유 (UUID만 포함, 보안 위험 없음)\n\n### 컬렉션 동작 방식\n\n- 모든 문서가 설정된 단일 컬렉션에 생성\u002F업데이트됨\n- 문서 카테고리(api\u002Farchitecture\u002Fpolicy\u002Finfrastructure\u002Fgeneral)는 문서 제목 접두어로 구분\n  - 예: `[API] 결제 엔드포인트`, `[Architecture] 인증 모듈 구조`\n\n---\n\n## 3. Behavioral Flow\n\n### Phase 1: Context Loading\n\n```\n1. 프로젝트 루트에서 `.outline-context.json` 파일 탐색\n2. 파일 존재 → JSON 파싱 → collection_id, language, sensitive_patterns 추출\n   파일 미존재 → 초기 설정 워크플로우 실행:\n     a) mcp__outline__list_collections 호출 → 컬렉션 목록 조회\n     b) 사용자에게 컬렉션 목록 표시 → 1개 선택 요청\n     c) 선택된 컬렉션 ID로 `.outline-context.json` 자동 생성\n     d) 생성 완료 알림\n3. collection_id 유효성 검증 (빈 문자열 체크)\n4. 검증 실패 시 → 사용자에게 알림, 재설정 안내\n```\n\n### Phase 2: Change Analysis\n\n```\n1. `git diff --name-only` → 변경 파일 목록 수집\n2. `git diff --stat` → 변경 통계 (파일 수, 추가\u002F삭제 라인)\n3. `git log --oneline -10` → 최근 커밋 이력 수집\n4. MR 컨텍스트 활용 (post-merge 스킬에서 위임 호출 시):\n   - MR 제목\u002F설명 → 문서 요약의 시드 데이터로 활용\n   - MR 라벨 → 카테고리 힌트 (api, infrastructure 등 → Phase 3 가중치 부여)\n   - 타겟 브랜치 → 문서화 우선순위 (main\u002Fmaster → 높음, develop → 보통)\n5. 문서화 필요 여부 판단:\n   - 변경 파일이 없으면 → \"변경사항이 없습니다\" 알림 후 종료\n   - 변경 파일이 설정\u002F문서 파일만이면 → 문서화 선택적 제안\n   - 코드 변경이 있으면 → 문서화 진행\n6. 변경 파일 목록과 커밋 메시지를 Phase 3에 전달\n```\n\n### Phase 3: Document Type Detection\n\n파일 경로 패턴과 커밋 메시지 키워드를 분석하여 문서 카테고리를 자동 분류합니다.\n\n**파일 경로 기반 분류 (1차):**\n\n| 파일 경로 패턴 | 카테고리 | 가중치 |\n|---------------|---------|--------|\n| `controller\u002F`, `route\u002F`, `api\u002F`, `handler\u002F` | api | 3 |\n| `src\u002Fcore\u002F`, `module\u002F`, `service\u002F` (신규 파일) | architecture | 3 |\n| `.eslintrc`, `CONTRIBUTING`, `workflow\u002F` | policy | 3 |\n| `Dockerfile`, `k8s\u002F`, `terraform\u002F`, `.github\u002Fworkflows\u002F` | infrastructure | 3 |\n| 기타 | general | 1 |\n\n**커밋 메시지 키워드 기반 분류 (2차 보조):**\n\n| 키워드 | 카테고리 | 가중치 |\n|--------|---------|--------|\n| `endpoint`, `api`, `rest`, `graphql`, `route` | api | 2 |\n| `architecture`, `module`, `refactor`, `structure` | architecture | 2 |\n| `lint`, `rule`, `policy`, `convention`, `standard` | policy | 2 |\n| `deploy`, `docker`, `k8s`, `ci`, `cd`, `infra` | infrastructure | 2 |\n\n```\n분류 알고리즘:\n1. 각 변경 파일의 경로 패턴을 분석 → 카테고리별 가중치 합산\n2. 커밋 메시지 키워드 분석 → 카테고리별 가중치 추가\n3. 가중치 합계가 가장 높은 카테고리 선택\n4. 최고 가중치가 동일하면 → 사용자에게 카테고리 선택 질문\n5. 모든 카테고리 가중치가 0이면 → general로 분류\n```\n\n### Phase 4: Document Discovery\n\n```\n1. 설정된 컬렉션(collection_id)에서 관련 문서 검색:\n   → mcp__outline__search_documents 로 변경 내용 관련 키워드 검색\n   → 검색 키워드: 변경된 모듈명, 주요 파일명, 커밋 메시지 핵심 키워드\n2. 검색 결과 분석:\n   a) 관련 문서 발견 → \"기존 문서를 업데이트할까요, 새 문서를 만들까요?\" 질문\n      - 기존 문서 목록 표시 (제목, 마지막 수정일)\n      - 사용자가 업데이트할 문서 선택 또는 신규 생성 선택\n   b) 관련 문서 미발견 → 신규 문서 생성 진행\n3. 기존 문서 업데이트 선택 시:\n   → mcp__outline__read_document 로 기존 문서 내용 로드\n   → 기존 내용에 변경사항 병합\n```\n\n### Phase 5: Content Generation & Security Filtering\n\n```\n1. 카테고리별 문서 템플릿에 따라 한국어 문서 생성 (아래 \"카테고리별 문서 템플릿\" 참조)\n2. 보안 필터링 (필수):\n   a) 다음 패턴을 감지하여 마스킹:\n      - password, secret, api_key, token, credential, private_key\n      - db_password, connection_string, aws_access_key\n      - Bearer 토큰: Bearer [토큰값] → Bearer [MASKED]\n      - SSH 키: -----BEGIN ... PRIVATE KEY----- → [SSH_KEY_MASKED]\n      - 사설 IP: 10.x.x.x, 172.16-31.x.x, 192.168.x.x → [PRIVATE_IP_MASKED]\n      - .outline-context.json의 sensitive_patterns에 정의된 추가 패턴\n   b) 마스킹 적용 후 결과 사용자에게 보고:\n      → \"다음 민감정보가 마스킹되었습니다: [항목 목록]\"\n      → 마스킹 항목이 없으면 보고 생략\n3. 생성된 문서 내용을 사용자에게 미리보기로 표시\n4. 사용자 수정 요청이 있으면 반영\n```\n\n### Phase 6: Write to Outline\n\n```\n1. 사용자에게 최종 확인 요청:\n   → \"다음 내용으로 Outline에 [생성\u002F업데이트]하겠습니다. 진행할까요?\"\n2. 승인 시:\n   a) 신규 문서 생성:\n      → mcp__outline__create_document(\n          title=\"[카테고리] 문서 제목\",\n          text=생성된_마크다운,\n          collectionId=collection_id,\n          publish=true\n        )\n   b) 기존 문서 업데이트:\n      → mcp__outline__update_document(\n          id=문서_id,\n          text=업데이트된_마크다운\n        )\n3. 성공 시 → 문서 URL 표시, 완료 알림\n4. 실패 시 → 에러 내용 표시, 재시도 또는 로컬 파일 저장 제안\n```\n\n---\n\n## 4. 카테고리별 문서 템플릿\n\n### API 문서 템플릿\n\n```markdown\n# [API] {제목}\n\n## 개요\n{API 변경 내용 요약}\n\n## Base URL\n`{base_url}`\n\n## 엔드포인트\n\n### {HTTP_METHOD} {path}\n- **설명**: {설명}\n- **인증**: {인증 방식}\n\n#### 요청\n| 파라미터 | 타입 | 필수 | 설명 |\n|---------|------|------|------|\n| {param} | {type} | {required} | {description} |\n\n#### 응답\n```json\n{응답 예시}\n```\n\n## 에러 코드\n| 코드 | 설명 |\n|------|------|\n| {code} | {description} |\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n### 아키텍처 문서 템플릿\n\n```markdown\n# [Architecture] {제목}\n\n## 개요\n{아키텍처 변경 내용 요약}\n\n## 시스템 구조\n{전체 시스템 내에서의 위치와 역할}\n\n## 주요 컴포넌트\n| 컴포넌트 | 역할 | 위치 |\n|----------|------|------|\n| {name} | {role} | {path} |\n\n## 데이터 흐름\n{데이터 흐름 설명}\n\n## 설계 결정\n| 결정 | 이유 | 대안 |\n|------|------|------|\n| {decision} | {reason} | {alternatives} |\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n### 정책 문서 템플릿\n\n```markdown\n# [Policy] {제목}\n\n## 목적\n{정책의 목적}\n\n## 적용 범위\n{정책이 적용되는 범위}\n\n## 정책 내용\n{구체적인 정책 규칙과 가이드라인}\n\n## 예외 사항\n{정책 예외가 허용되는 경우}\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n### 인프라 문서 템플릿\n\n```markdown\n# [Infrastructure] {제목}\n\n## 개요\n{인프라 변경 내용 요약}\n\n## 환경 구성\n| 환경 | 설정 | 비고 |\n|------|------|------|\n| {env} | {config} | {note} |\n\n## 배포 절차\n1. {step1}\n2. {step2}\n\n## 롤백 절차\n1. {rollback_step1}\n2. {rollback_step2}\n\n## 모니터링\n| 항목 | 지표 | 임계값 |\n|------|------|--------|\n| {item} | {metric} | {threshold} |\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n### 일반 문서 템플릿\n\n```markdown\n# {제목}\n\n## 개요\n{변경 내용 요약}\n\n## 상세 내용\n{변경 사항의 상세 설명}\n\n## 영향 범위\n{변경으로 인한 영향}\n\n## 변경 이력\n| 날짜 | 변경 내용 | 커밋 |\n|------|----------|------|\n| {date} | {description} | {commit_hash} |\n```\n\n---\n\n## 5. 보안 필터링 규칙\n\n### 감지 패턴\n\n| 패턴 유형 | 정규식 | 마스킹 결과 |\n|----------|--------|------------|\n| 환경변수 값 | `(password\\|secret\\|api_key\\|token\\|credential\\|private_key\\|db_password\\|connection_string\\|aws_access_key)\\s*[=:]\\s*\\S+` | `{key}=[MASKED]` |\n| Bearer 토큰 | `Bearer\\s+[A-Za-z0-9\\-._~+\u002F]+=*` | `Bearer [MASKED]` |\n| SSH 키 | `-----BEGIN\\s+\\w+\\s+PRIVATE\\s+KEY-----[\\s\\S]*?-----END` | `[SSH_KEY_MASKED]` |\n| 사설 IP (10.x) | `10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}` | `[PRIVATE_IP_MASKED]` |\n| 사설 IP (172.16-31.x) | `172\\.(1[6-9]\\|2[0-9]\\|3[01])\\.\\d{1,3}\\.\\d{1,3}` | `[PRIVATE_IP_MASKED]` |\n| 사설 IP (192.168.x) | `192\\.168\\.\\d{1,3}\\.\\d{1,3}` | `[PRIVATE_IP_MASKED]` |\n\n### 필터링 프로세스\n\n```\n1. 문서 생성 완료 후, 전체 텍스트에 대해 위 패턴 순차 검사\n2. 매칭된 패턴을 마스킹 결과로 치환\n3. 마스킹된 항목 목록 생성\n4. 항목이 1개 이상이면 사용자에게 보고:\n   \"⚠ 다음 민감정보가 마스킹되었습니다:\"\n   - password 값 1건\n   - 사설 IP 2건\n   등\n5. .outline-context.json의 sensitive_patterns에 추가 패턴이 있으면 해당 패턴도 검사\n```\n\n---\n\n## 6. Tool Coordination\n\n### Outline MCP 도구\n\n| 단계 | MCP 도구 | 용도 |\n|------|----------|------|\n| 컬렉션 조회 | `mcp__outline__list_collections` | 컬렉션 목록 조회 (초기 설정) |\n| 문서 검색 | `mcp__outline__search_documents` | 기존 문서 탐색 |\n| 문서 읽기 | `mcp__outline__read_document` | 기존 문서 내용 로드 (업데이트 시) |\n| 문서 생성 | `mcp__outline__create_document` | 신규 문서 생성 |\n| 문서 업데이트 | `mcp__outline__update_document` | 기존 문서 수정 |\n\n### Git 도구 (Bash)\n\n| 명령어 | 용도 |\n|--------|------|\n| `git diff --name-only` | 변경 파일 목록 수집 |\n| `git diff --stat` | 변경 통계 (파일 수, 라인 수) |\n| `git log --oneline -10` | 최근 커밋 이력 수집 |\n\n### 파일 도구\n\n| 도구 | 용도 |\n|------|------|\n| **Glob** | `.outline-context.json` 파일 탐색 |\n| **Read** | `.outline-context.json` 설정 로드 |\n| **Write** | `.outline-context.json` 초기 생성 |\n\n---\n\n## 7. Examples\n\n### 예시 1: 최초 실행 (컬렉션 설정)\n\n```\n사용자: \"문서 업데이트해줘\"\n\n[Phase 1] .outline-context.json 탐색 → 미존재\n          → list_collections 호출 → 5개 컬렉션 발견\n          1. \"개발 문서\" (id: abc-123)\n          2. \"API 문서\" (id: def-456)\n          3. \"운영 가이드\" (id: ghi-789)\n          ...\n\n에이전트: 문서를 관리할 Outline 컬렉션을 선택해주세요:\n          1. 개발 문서\n          2. API 문서\n          3. 운영 가이드\n          ...\n\n사용자: \"1번\"\n\n[Phase 1] .outline-context.json 생성:\n          { \"collection_id\": \"abc-123\", \"language\": \"ko\", \"sensitive_patterns\": [...] }\n          → Phase 2로 진행\n```\n\n### 예시 2: API 변경 후 문서 자동 업데이트\n\n```\n사용자: \"API 변경했어, 문서화해줘\"\n\n[Phase 1] .outline-context.json 로드 → collection_id: \"abc-123\"\n[Phase 2] git diff --name-only →\n          src\u002Fcontroller\u002Fpayment.controller.ts\n          src\u002Froute\u002Fpayment.route.ts\n          src\u002Fservice\u002Fpayment.service.ts\n[Phase 3] 파일 경로 분석 → controller\u002F, route\u002F → api 카테고리 (가중치 6)\n[Phase 4] search_documents(\"결제 API\") → 기존 문서 \"[API] 결제 엔드포인트\" 발견\n\n에이전트: 기존 문서 \"[API] 결제 엔드포인트\"를 업데이트할까요?\n\n사용자: \"응\"\n\n[Phase 5] 기존 문서 읽기 → 변경사항 반영 → 보안 필터링\n          → \"민감정보 마스킹: 없음\"\n[Phase 6] update_document 실행 → 완료\n          → \"문서가 업데이트되었습니다: https:\u002F\u002Fwiki.example.com\u002Fdoc\u002F...\"\n```\n\n### 예시 3: 인프라 변경 시 신규 문서 생성\n\n```\n사용자: \"커밋할게\"\n\n에이전트: Outline 위키에 변경사항을 반영할까요?\n\n사용자: \"응\"\n\n[Phase 2] git diff --name-only →\n          .github\u002Fworkflows\u002Fdeploy.yml\n          k8s\u002Fdeployment.yaml\n          Dockerfile\n[Phase 3] 파일 경로 분석 → .github\u002Fworkflows\u002F, k8s\u002F, Dockerfile → infrastructure (가중치 9)\n[Phase 4] search_documents(\"배포 파이프라인\") → 관련 문서 없음\n\n에이전트: 관련 문서가 없습니다. 새 문서를 생성할까요?\n          제목: [Infrastructure] CI\u002FCD 배포 파이프라인\n\n사용자: \"좋아\"\n\n[Phase 5] 인프라 템플릿으로 문서 생성 → 보안 필터링\n          → \"⚠ 다음 민감정보가 마스킹되었습니다: 사설 IP 2건\"\n[Phase 6] create_document 실행 → 완료\n          → \"문서가 생성되었습니다: https:\u002F\u002Fwiki.example.com\u002Fdoc\u002F...\"\n```\n\n---\n\n## 8. Boundaries\n\n**Will:**\n- `.outline-context.json`으로 컬렉션 설정 자동 관리\n- 변경 파일 분석 및 문서 유형 자동 분류\n- 기존 문서 검색 및 업데이트\u002F신규 생성 판단\n- 카테고리별 템플릿 기반 한국어 문서 생성\n- 민감정보 자동 감지 및 마스킹\n- 사용자 확인 후 Outline 위키에 문서 작성\n\n**Will Not:**\n- 사용자 확인 없이 문서 생성\u002F수정\n- 문서 삭제 (Outline의 DISABLE_DELETE 설정 준수)\n- 코드 자동 수정 또는 커밋\n- 여러 컬렉션에 동시 문서 배포\n- Outline 워크스페이스 설정 변경\n",{"name":5,"metadata":57,"description":61,"disable-model-invocation":62},{"domain":58,"version":59,"requires_mcp":60},"wiki-automation","1.0.0","outline","코드 변경 작업 완료 후 Outline 위키 문서를 자동으로 최신화합니다.\n변경 내용을 분석하여 문서 유형을 자동 분류하고, 기존 문서 업데이트 또는 신규 문서 생성을 판단하여\nOutline 위키에 한국어 문서를 작성합니다. 민감정보 자동 마스킹을 포함합니다.\nAutomatically refreshes Outline wiki documentation after code changes: analyzes the diff, classifies the document type, decides between updating an existing doc or creating a new one, and writes Korean docs to the Outline wiki with automatic sensitive-data masking. Use when: updating the wiki after finishing work, syncing documentation, documenting API changes in Outline.\n",true,"main","e9f37e996e3d2b1b6ac9c879e9dfba1223b597c3","plugins\u002Fworkflow\u002Fskills\u002Fdocument-latest",0,"https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness","https:\u002F\u002Fdokkabei97.github.io\u002Fdokkabei-harness\u002F","https:\u002F\u002Fgithub.com\u002FDokkabei97","Contact: wkdrn970@gmail.com","2026-10-29 06:49:16",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":62},[74,77,80],{"tool":75,"command":76},"npx","npx skills add Dokkabei97\u002Fdokkabei-harness --skill document-latest",{"tool":78,"command":79},"bunx","bunx skills add Dokkabei97\u002Fdokkabei-harness --skill document-latest",{"tool":81,"command":82},"pnpm","pnpm dlx skills add Dokkabei97\u002Fdokkabei-harness --skill document-latest","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fdocument-latest\u002FSKILL.md",[85,91],{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"agents\u002Fopenai.yaml","REFERENCE","参考文档",265,"https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fdocument-latest\u002Fagents\u002Fopenai.yaml",{"path":92,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":93,"sourceHtmlUrl":94},"outline-context.template.json",237,"https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fdocument-latest\u002Foutline-context.template.json",[96,121,147,170,191,214],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":103,"publishedAt":52},"01M6QZQTNF815AWYMAMJ3B25GY","sync-claude-md","커밋·푸시·PR\u002FMR 직전에 이번 변경이 프로젝트 CLAUDE.md 를 낡게 만드는지 검토하고, 필요할 때만 갱신 diff 를 제안한다 — 아키텍처·디렉터리 구조, 새 통합\u002FMCP, 컨벤션, 빌드·CI·도구, 주요 의존성 변화가 대상. 해당 없으면 한 줄로 끝낸다.\nReviews whether pending changes make the project CLAUDE.md stale (architecture, integrations, conventions, build\u002FCI\u002Ftooling, major dependencies) and proposes a minimal update diff only when needed.\nUse when: \"CLAUDE.md 갱신 필요해?\", \"CLAUDE.md 동기화\", 커밋\u002F푸시\u002FMR 전에 구조·도구가 바뀐 변경을 정리할 때, sync CLAUDE.md, check CLAUDE.md before commit or PR.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fsync-claude-md\u002FSKILL.md",[102],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[104,105,106,107,108,109,110,111,112,113,43,35,114,115,116,117,118,119,120,36],"sync","claude md","sync claude md","MCP","commit","architecture","pr","update","ci","integrations","only","minimal","project","make","reviews","pending","mr",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":129,"publishedAt":52},"01M6QZQEK94G00N955VQH9EFQN","spec-driven-dev","새 기능·프로젝트·큰 변경을 코드보다 스펙 먼저로 진행하는 게이트 워크플로(SPECIFY → PLAN → TASKS → IMPLEMENT) — 가정 명시, 측정 가능한 성공 기준, Always\u002FAsk\u002FNever 경계, 단계별 사람 검토로 범위 이탈과 재작업을 줄인다.\nSpec-before-code gated workflow for new features or significant changes: explicit assumptions, measurable success criteria, boundaries, and a human review between stages.\nUse when: \"스펙 먼저\", \"기능 명세\", \"요구사항 정리\", starting a new feature or project, a significant change with vague requirements. 단순 버그 수정·1~2줄 변경엔 불필요.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fspec-driven-dev\u002FSKILL.md",[127,128],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},[130,131,132,133,134,135,136,137,138,50,139,140,141,142,116,143,144,145,146,36],"spec","spec driven","dev","spec driven dev","driven","review","workflow","change","tasks","plan","ask","never","human","feature","for","vague","features",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":52},"01M6QZQA9F6QVGTVDMJ28YQGDV","shipping-guide","프로덕션 배포 전후 가이드 — 배포 전 체크리스트, 피처 플래그 수명주기, 단계적 롤아웃과 진행\u002F보류\u002F롤백 임계값, 롤백 계획 템플릿, 배포 후 모니터링.\nProduction shipping guide: pre-launch checklist, feature-flag lifecycle, staged rollout with go\u002Fhold\u002Frollback thresholds, rollback plan template, post-launch monitoring.\nUse when: \"배포 준비\", \"릴리즈 전 점검\", \"롤아웃 계획\", \"롤백 계획\", preparing a production deploy, staged rollout, feature flags.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fshipping-guide\u002FSKILL.md",[],[154,155,156,157,158,159,160,139,161,162,43,163,164,143,165,166,167,168,169,36],"shipping","guide","shipping guide","launch","monitoring","lifecycle","feature flags","template","rollback","rollout","flags","thresholds","post","with","pre-launch","rollback plan",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":176,"publishedAt":52},"01M6QZQ3M962PCWYM6YH62D76Z","retro","세션 회고·교훈 컴파운딩 — 이번 세션의 교정·실수·발견을 추출해 품질 기준(재현·일반화·판정 가능성)으로 거르고, 컨벤션 변화는 sync-claude-md 위임, 반복 실수는 tasks\u002Flessons.md(#가드-훅-후보 태그), 스킬 지식 갱신은 수정 제안으로 나눈다. 모든 적용은 승인 후.\nSession retrospective that turns corrections, mistakes, and discoveries into vetted lessons routed to CLAUDE.md sync, tasks\u002Flessons.md, or skill-edit proposals, with user approval before any write.\nUse when: \"회고\", \"레트로\", \"교훈 정리\", \"같은 실수 반복\", \"재발 방지 규칙\", retrospective, lessons learned, wrapping up a task, review, or loop. 여러 실행에 걸친 하네스 개선은 harness:evolve.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fretro\u002FSKILL.md",[],[172,135,104,138,177,178,179,180,181,182,183,184,114,185,186,187,188,189,190,36],"run","harness","loop","evolve","write","edit","proposals","session","up","dry","learned","Session Retrospective","lessons","mistakes",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":198,"publishedAt":52},"01M6QZPPDATJ7DAGNP0JCXFGRV","project-rules","현재 프로젝트의 스택(빌드 파일 버전, 마이그레이션 도구, ORM 유무, ES 사용, git 호스트)을 감지해 프로젝트 루트 AGENTS.md 의 마커 블록(스택 사실 + 항상 적용되는 스페셜리스트 핵심 ≤15줄 — Claude Code·Codex·Antigravity 공통)과 CLAUDE.md 의 `@AGENTS.md` 연결, Claude 전용 경로 한정 .claude\u002Frules\u002F\u003Cstack>-specialist.md(해당 버전에 실제로 맞는 상세 함정)를 diff 로 제안하고, 스택 플러그인을 런타임별로 프로젝트 범위에서 켜는 법을 안내한다. 이전 버전 출력(CLAUDE.md 블록·specialist-core.md)은 AGENTS.md 로 이전을 제안. --check 는 버전 불일치·사라진 ID·크기 한도·연결 누락을 점검.\nDetects the project's stack and proposes a cross-runtime AGENTS.md block (stack facts + always-on specialist core) linked from CLAUDE.md via @AGENTS.md, plus Claude-only path-scoped specialist rules; migrates the older CLAUDE.md-block layout; --check audits drift.\nUse when: \"이 프로젝트 세팅\", \"프로젝트 규칙 생성\", \"AGENTS.md\u002FCLAUDE.md 점검\", project setup, generate project rules, audit AGENTS.md or CLAUDE.md drift.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fproject-rules\u002FSKILL.md",[197],{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},[199,116,200,201,202,50,203,204,205,206,35,114,207,208,209,210,211,212,213,36],"Rules","project rules","core","generate","git","audit","stack","orm","es","drift","layout","runtime","-specialist","path","scoped",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":222,"publishedAt":52},"01M6QZPF3S8YAM27F297F6GVD7","post-merge","MR 머지 완료 후 Plane 이슈 종료와 Outline 문서 업데이트를 자동으로 처리하는 오케스트레이터 스킬입니다.\nissue-tracker와 document-latest 스킬을 연계 실행하여 머지 후 후속 작업을 일괄 처리합니다.\nOrchestrates post-merge follow-up after an MR is merged: chains the issue-tracker and document-latest skills to close the Plane issue and update Outline wiki docs in a single batch. Use when: an MR was just merged, closing tickets and syncing documentation after a merge, post-merge cleanup.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fpost-merge\u002FSKILL.md",[220,221],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[223,224,166,42,225,111,226,45,227,185,228,229,230,231,232,40,233,234,120,36],"merge","post merge","cleanup","batch","just","issue","tracker","close","closing","follow-up","plane","single"]