[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QZMYDYMMR03AXHNEJHK7NW":3,"skill-same:01M6QZMYDYMMR03AXHNEJHK7NW":72},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6QZMYDYMMR03AXHNEJHK7NW","deprecation-guide",null,"시스템·모듈·API 폐기와 소비자 이관 가이드 — 폐기 결정 5질문, 권고형\u002F강제형 구분, 대체 구축→공지→점진 이관→사용량 0 확인 후 제거, Strangler·Adapter·Feature Flag 패턴, 좀비 코드 신호.\nDeprecation and migration guide: decision questions, advisory vs compulsory, replace-announce-migrate-remove process, Strangler\u002FAdapter\u002FFeature-Flag patterns, zombie-code signals.\nUse when: \"폐기\", \"레거시 제거\", \"마이그레이션 계획\", \"좀비 코드\", \"API 버전 전환\", deprecating a system or API, removing dead code.","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\u002Fdeprecation-guide\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"deprecation guide","deprecation","guide","migration","when","Migration Guide","questions","adapter","feature","signals","advisory","code","use","remove","process","deprecation and migration","decision","system","migrate","api","2026-11-10 10:12:30",false,"---\nname: deprecation-guide\ndescription: |\n  시스템·모듈·API 폐기와 소비자 이관 가이드 — 폐기 결정 5질문, 권고형\u002F강제형 구분, 대체 구축→공지→점진 이관→사용량 0 확인 후 제거, Strangler·Adapter·Feature Flag 패턴, 좀비 코드 신호.\n  Deprecation and migration guide: decision questions, advisory vs compulsory, replace-announce-migrate-remove process, Strangler\u002FAdapter\u002FFeature-Flag patterns, zombie-code signals.\n  Use when: \"폐기\", \"레거시 제거\", \"마이그레이션 계획\", \"좀비 코드\", \"API 버전 전환\", deprecating a system or API, removing dead code.\n---\n\n# Deprecation & Migration Guide\n\n핵심 전제: **Hyrum's Law** — 사용자가 충분히 많으면 API 의 모든 관찰 가능한 동작(버그·타이밍 포함)에\n누군가 의존한다. 공지만으로는 이관되지 않으므로 능동적 이관과 사용량 측정이 필요하다.\n\n## 1. 결정\n\n| # | 질문 | 판단 |\n|---|------|------|\n| 1 | 아직 고유한 가치가 있는가? | 대체 불가 기능이 있으면 보류 |\n| 2 | 소비자는 몇인가? | 호출처·트래픽으로 정량화 |\n| 3 | 대체가 존재하는가? | **없으면 먼저 구축** |\n| 4 | 소비자별 이관 비용은? | 자동화 가능하면 소유자가 수행 |\n| 5 | 유지 비용은? | 보안·운영 시간·복잡성 |\n\n- **Advisory**: 이관 선택적, 구 시스템 안정 — 경고 로그·문서\n- **Compulsory**: 보안·차단 이슈 — 확정 기한 + 이관 도구\u002F가이드 제공 필수\n- **Churn Rule**: 인프라\u002F라이브러리 소유자가 이관 책임을 진다(또는 하위 호환을 제공)\n\n## 2. 프로세스\n\n1. **대체 구축** — 핵심 유스케이스 커버, 프로덕션 검증\n2. **공지** — 상태·대체·제거 예정일·이유·이관 가이드·담당자. 코드에는 언어별 deprecation 표시\n   (Kotlin `@Deprecated(replaceWith = ReplaceWith(...))`, Go `\u002F\u002F Deprecated:` 주석 단락 — `staticcheck` SA1019 가 사용처를 경고)\n3. **점진 이관** — 소비자별: 접점 식별 → 교체 → 테스트 → 구 참조 제거\n4. **제거** — 사용량 0 을 메트릭\u002F로그로 확인 → 코드·테스트·문서·설정 삭제 → 스키마 정리는 expand-contract 의 contract 단계로\n\n## 3. 패턴\n\n| 패턴 | 방식 | 적합 |\n|------|------|------|\n| Strangler | 신구 병렬, 트래픽 0→100% 이동 | 대규모 교체, API 버전 전환 |\n| Adapter | 구 인터페이스 유지, 내부만 신구현 위임 | 소비자가 많아 인터페이스 즉시 변경 불가 |\n| Feature Flag | 소비자\u002F요청별 분기 | 점진 전환, 비교, 빠른 롤백 |\n\n## 4. 좀비 코드 신호\n\n6개월+ 무커밋인데 소비자 존재 \u002F 소유자 없음 \u002F 방치된 실패 테스트 \u002F CVE 방치 의존성 \u002F 사라진 시스템을 가리키는 문서.\n발견 시: 소유자 확인 → 폐기 여부 결정 → 위 프로세스.\n\n## Red Flags\n\n대체 없는 폐기 공지, 이관 도구 없는 기한, 수년째 진전 없는 소프트 폐기, 폐기된 시스템에 새 기능, 사용량 측정 없이 삭제.\n\n## Related\n\n- `workflow:shipping-guide` — 대체 시스템의 플래그·롤아웃\n- `observe:observe-report` — 하네스 자산(스킬·커맨드)의 미사용 후보 탐지\n","# Deprecation & Migration Guide\n\n핵심 전제: **Hyrum's Law** — 사용자가 충분히 많으면 API 의 모든 관찰 가능한 동작(버그·타이밍 포함)에\n누군가 의존한다. 공지만으로는 이관되지 않으므로 능동적 이관과 사용량 측정이 필요하다.\n\n## 1. 결정\n\n| # | 질문 | 판단 |\n|---|------|------|\n| 1 | 아직 고유한 가치가 있는가? | 대체 불가 기능이 있으면 보류 |\n| 2 | 소비자는 몇인가? | 호출처·트래픽으로 정량화 |\n| 3 | 대체가 존재하는가? | **없으면 먼저 구축** |\n| 4 | 소비자별 이관 비용은? | 자동화 가능하면 소유자가 수행 |\n| 5 | 유지 비용은? | 보안·운영 시간·복잡성 |\n\n- **Advisory**: 이관 선택적, 구 시스템 안정 — 경고 로그·문서\n- **Compulsory**: 보안·차단 이슈 — 확정 기한 + 이관 도구\u002F가이드 제공 필수\n- **Churn Rule**: 인프라\u002F라이브러리 소유자가 이관 책임을 진다(또는 하위 호환을 제공)\n\n## 2. 프로세스\n\n1. **대체 구축** — 핵심 유스케이스 커버, 프로덕션 검증\n2. **공지** — 상태·대체·제거 예정일·이유·이관 가이드·담당자. 코드에는 언어별 deprecation 표시\n   (Kotlin `@Deprecated(replaceWith = ReplaceWith(...))`, Go `\u002F\u002F Deprecated:` 주석 단락 — `staticcheck` SA1019 가 사용처를 경고)\n3. **점진 이관** — 소비자별: 접점 식별 → 교체 → 테스트 → 구 참조 제거\n4. **제거** — 사용량 0 을 메트릭\u002F로그로 확인 → 코드·테스트·문서·설정 삭제 → 스키마 정리는 expand-contract 의 contract 단계로\n\n## 3. 패턴\n\n| 패턴 | 방식 | 적합 |\n|------|------|------|\n| Strangler | 신구 병렬, 트래픽 0→100% 이동 | 대규모 교체, API 버전 전환 |\n| Adapter | 구 인터페이스 유지, 내부만 신구현 위임 | 소비자가 많아 인터페이스 즉시 변경 불가 |\n| Feature Flag | 소비자\u002F요청별 분기 | 점진 전환, 비교, 빠른 롤백 |\n\n## 4. 좀비 코드 신호\n\n6개월+ 무커밋인데 소비자 존재 \u002F 소유자 없음 \u002F 방치된 실패 테스트 \u002F CVE 방치 의존성 \u002F 사라진 시스템을 가리키는 문서.\n발견 시: 소유자 확인 → 폐기 여부 결정 → 위 프로세스.\n\n## Red Flags\n\n대체 없는 폐기 공지, 이관 도구 없는 기한, 수년째 진전 없는 소프트 폐기, 폐기된 시스템에 새 기능, 사용량 측정 없이 삭제.\n\n## Related\n\n- `workflow:shipping-guide` — 대체 시스템의 플래그·롤아웃\n- `observe:observe-report` — 하네스 자산(스킬·커맨드)의 미사용 후보 탐지\n",{"name":5,"description":7},"main","e9f37e996e3d2b1b6ac9c879e9dfba1223b597c3","plugins\u002Fworkflow\u002Fskills\u002Fdeprecation-guide",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":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add Dokkabei97\u002Fdokkabei-harness --skill deprecation-guide",{"tool":64,"command":65},"bunx","bunx skills add Dokkabei97\u002Fdokkabei-harness --skill deprecation-guide",{"tool":67,"command":68},"pnpm","pnpm dlx skills add Dokkabei97\u002Fdokkabei-harness --skill deprecation-guide","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fdeprecation-guide\u002FSKILL.md",true,[],[73,103,128,150,171,194],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":44},"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",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[85,86,87,88,89,90,91,92,93,94,36,95,96,97,98,99,100,101,102,28],"sync","claude md","sync claude md","MCP","commit","architecture","pr","update","ci","integrations","diff","only","minimal","project","make","reviews","pending","mr",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":111,"publishedAt":44},"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",[109,110],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[112,113,114,115,116,117,118,119,120,35,121,122,123,124,98,32,125,126,127,28],"spec","spec driven","dev","spec driven dev","driven","review","workflow","change","tasks","plan","ask","never","human","for","vague","features",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":44},"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",[],[135,26,136,137,138,139,140,121,141,142,36,143,144,32,145,146,147,148,149,28],"shipping","shipping guide","launch","monitoring","lifecycle","feature flags","template","rollback","rollout","flags","thresholds","post","with","pre-launch","rollback plan",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":44},"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",[],[152,117,85,120,157,158,159,160,161,162,163,164,96,165,166,167,168,169,170,28],"run","harness","loop","evolve","write","edit","proposals","session","up","dry","learned","Session Retrospective","lessons","mistakes",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":178,"publishedAt":44},"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",[177],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[179,98,180,181,182,35,183,184,185,186,95,96,187,188,189,190,191,192,193,28],"Rules","project rules","core","generate","git","audit","stack","orm","es","drift","layout","runtime","-specialist","path","scoped",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":204,"publishedAt":44},"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",[200,203],{"categoryNo":201,"categoryName":202,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},[205,206,146,207,208,92,209,210,211,165,212,213,214,215,216,217,218,219,102,28],"merge","post merge","documentation","cleanup","batch","wiki","just","issue","tracker","close","closing","follow-up","true","plane","single"]