{"id":"5a6e0085-fd92-4739-8d35-89ce93dbcace","shortId":"patLNm","kind":"skill","title":"pmstudio-recovery","tagline":"Generate detailed service restoration runbooks with step-by-step procedures. Use when someone asks to \"create recovery procedures\", \"restoration runbook\", \"recovery steps\", \"how to restore service\", or needs tactical step-by-step procedures for recovering from disaster scenarios.","description":"# Recovery Plan — Service Restoration Runbooks\n\n## Purpose\n\nGenerates step-by-step runbooks for each disaster scenario defined in the DR plan. These are **tactical execution documents** — meant to be followed during an actual incident by someone who may not be the person who wrote the plan.\n\n## Prerequisites\n\n**Hard dependency:** A DR plan must exist at `Operational/DR-Plan-*.html`. If not found, respond:\n\n> \"No DR plan found for this project. The recovery plan is built from DR plan scenarios and RTO/RPO targets. Run `/dr-plan` first to create one, then run `/recovery-plan` to generate the runbooks.\"\n\n## Process\n\n### Step 1: Read Context\n\n**Required:**\n- `Operational/DR-Plan-*.html` — scenarios, RTO/RPO targets, dependencies, communication plan\n- `CLAUDE.local.md` — architecture, contacts, integrations\n\n**Optional (enriches the runbooks):**\n- `Operational/IRP-*.html` — escalation matrix, communication templates\n- `PRD/*.html` — integrations detail, technical considerations\n- `Architecture/` — system diagrams for reference\n\n### Step 2: Extract Scenarios\n\nFrom the DR plan, extract:\n- Each disaster scenario (name, description, trigger condition)\n- RTO/RPO targets per component\n- Dependencies and contacts\n- Manual workarounds\n\n### Step 3: Generate Runbooks\n\n**Output:** `Operational/Recovery-Procedures-{ProductName}-{Date}.html`\n\nSelf-contained HTML. **Zero CDN dependencies** — this must work offline during recovery.\n\n**Structure:** One runbook per disaster scenario, plus a general section.\n\n**General Section:**\n```markdown\n## Before Any Recovery\n\n### Emergency Contacts\n| Role | Name | Phone | Email |\n|------|------|-------|-------|\n| PM / Incident Commander | ... | ... | ... |\n| Technical Lead | ... | ... | ... |\n| Vendor Support | ... | ... | ... |\n| Security POC | ... | ... | ... |\n\n### Tools Needed\n- Access to vendor admin console\n- Access to monitoring/status page\n- Access to communication channel (Slack/Teams/email)\n- Access to backup location (Snowflake/SharePoint)\n\n### Recovery Principles\n1. Communicate first, then fix\n2. Document every action and timestamp\n3. Verify each step before proceeding to next\n4. If stuck for >15 minutes on any step, escalate\n```\n\n**Per-Scenario Runbook:**\n\n```markdown\n## Scenario: {Name}\n\n**Trigger:** {How you know this is happening}\n**Target RTO:** {time} | **Target RPO:** {time}\n**Severity:** {from IRP if exists}\n\n### Pre-Conditions\n- [ ] Incident declared and logged\n- [ ] Incident Commander assigned\n- [ ] Stakeholders notified (initial)\n\n### Recovery Steps\n\n| # | Action | Owner | How to Verify | Est. Time |\n|---|--------|-------|--------------|-----------|\n| 1 | {action} | {role} | {verification} | {minutes} |\n| 2 | ... | ... | ... | ... |\n\n**Cumulative time: {sum} — within RTO: {yes/no}**\n\n### Decision Points\n- After step N: If {condition}, go to step M instead\n- After step N: If {condition}, escalate to {person}\n\n### Verification Checklist\n- [ ] Service accessible to users\n- [ ] Data integrity confirmed (spot-check N records)\n- [ ] All integrations responding\n- [ ] No error alerts in last 15 minutes\n- [ ] Stakeholders notified of restoration\n\n### If Recovery Fails\n- At step N: {rollback action}\n- Escalation: {who to call}\n- Alternative: {manual workaround from DR plan}\n\n### Post-Recovery\n- [ ] Update incident log with recovery timeline\n- [ ] Schedule PIR within 48 hours\n- [ ] Document any deviations from this runbook\n- [ ] Update this runbook with lessons learned\n```\n\n### Step 4: Validate Timing\n\nFor each runbook, sum the estimated step times. Compare to RTO:\n- If total < RTO: Good.\n- If total > RTO: Flag as risk. Ask user: \"Steps total {X} but RTO is {Y}. Should we adjust the RTO or find ways to parallelize steps?\"\n\n### Step 5: Present for Review\n\nShow all runbook outlines with step counts and timing. Ask for approval before writing.\n\n## Critical Rules\n\n1. **Written for execution, not understanding.** Each step should be a clear action (\"Open {URL} and click Settings > Backup > Export\"), not a description (\"The admin should initiate a backup process\").\n2. **Every step has verification.** Don't move to step N+1 without confirming step N succeeded.\n3. **Include decision trees.** Real recovery rarely follows a straight line. Document branch points.\n4. **Timing must be realistic.** Don't estimate \"1 minute\" for something that requires vendor response. Use pessimistic estimates.\n5. **Offline-capable.** Zero CDN dependencies. Print-friendly CSS. Someone may be reading this on a phone with spotty internet.\n6. **Contacts are phone numbers, not just emails.** During a crisis, email is slow. Include phone numbers for all critical contacts.","tags":["recovery","plan","coco","rkz91","agent-skills","agents-md","ai-agents","claude-code","codex","cursor","developer-tools","llm-tools"],"capabilities":["skill","source-rkz91","skill-recovery-plan","topic-agent-skills","topic-agents-md","topic-ai-agents","topic-claude-code","topic-codex","topic-cursor","topic-developer-tools","topic-llm-tools","topic-mcp","topic-pm-tools","topic-product-management","topic-productivity"],"categories":["coco"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/rkz91/coco/recovery-plan","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add rkz91/coco","source_repo":"https://github.com/rkz91/coco","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 7 github stars · SKILL.md body (4,651 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:14:08.789Z","embedding":null,"createdAt":"2026-05-18T13:21:41.745Z","updatedAt":"2026-05-18T19:14:08.789Z","lastSeenAt":"2026-05-18T19:14:08.789Z","tsv":"'+1':564 '/dr-plan':125 '/recovery-plan':132 '1':139,277,353,523,592 '15':300,407 '2':177,282,358,553 '3':202,288,570 '4':296,458,584 '48':443 '5':503,603 '6':625 'access':256,261,265,270,388 'action':285,346,354,420,535 'actual':76 'adjust':493 'admin':259,547 'alert':404 'altern':425 'approv':518 'architectur':152,171 'ask':18,482,516 'assign':340 'backup':272,541,551 'branch':582 'built':116 'call':424 'capabl':606 'cdn':215,608 'channel':268 'check':396 'checklist':386 'claude.local.md':151 'clear':534 'click':539 'command':247,339 'communic':149,163,267,278 'compar':469 'compon':195 'condit':191,333,371,381 'confirm':393,566 'consider':170 'consol':260 'contact':153,198,240,626,645 'contain':212 'context':141 'count':513 'creat':20,128 'crisi':635 'critic':521,644 'css':613 'cumul':359 'data':391 'date':208 'decis':365,572 'declar':335 'defin':60 'depend':92,148,196,216,609 'descript':189,545 'detail':5,168 'deviat':447 'diagram':173 'disast':42,58,186,227 'document':69,283,445,581 'dr':63,94,106,118,182,429 'email':244,632,636 'emerg':239 'enrich':156 'error':403 'escal':161,305,382,421 'est':351 'estim':466,591,602 'everi':284,554 'execut':68,526 'exist':97,330 'export':542 'extract':178,184 'fail':415 'find':497 'first':126,279 'fix':281 'flag':479 'follow':73,577 'found':103,108 'friend':612 'general':231,233 'generat':4,50,134,203 'go':372 'good':475 'happen':319 'hard':91 'hour':444 'html':100,144,160,166,209,213 'incid':77,246,334,338,435 'includ':571,639 'initi':343,549 'instead':376 'integr':154,167,392,400 'internet':624 'irp':328 'know':316 'last':406 'lead':249 'learn':456 'lesson':455 'line':580 'locat':273 'log':337,436 'm':375 'manual':199,426 'markdown':235,310 'matrix':162 'may':81,615 'meant':70 'minut':301,357,408,593 'monitoring/status':263 'move':560 'must':96,218,586 'n':369,379,397,418,563,568 'name':188,242,312 'need':32,255 'next':295 'notifi':342,410 'number':629,641 'offlin':220,605 'offline-cap':604 'one':129,224 'open':536 'operational/dr-plan-':99,143 'operational/irp-':159 'operational/recovery-procedures-':206 'option':155 'outlin':510 'output':205 'owner':347 'page':264 'parallel':500 'per':194,226,307 'per-scenario':306 'person':85,384 'pessimist':601 'phone':243,621,628,640 'pir':441 'plan':45,64,89,95,107,114,119,150,183,430 'plus':229 'pm':245 'pmstudio':2 'pmstudio-recoveri':1 'poc':253 'point':366,583 'post':432 'post-recoveri':431 'prd':165 'pre':332 'pre-condit':331 'prerequisit':90 'present':504 'principl':276 'print':611 'print-friend':610 'procedur':14,22,38 'proceed':293 'process':137,552 'productnam':207 'project':111 'purpos':49 'rare':576 'read':140,617 'real':574 'realist':588 'record':398 'recov':40 'recoveri':3,21,25,44,113,222,238,275,344,414,433,438,575 'refer':175 'requir':142,597 'respond':104,401 'respons':599 'restor':7,23,29,47,412 'review':506 'risk':481 'role':241,355 'rollback':419 'rpo':324 'rto':321,363,471,474,478,488,495 'rto/rpo':122,146,192 'rule':522 'run':124,131 'runbook':8,24,48,55,136,158,204,225,309,450,453,463,509 'scenario':43,59,120,145,179,187,228,308,311 'schedul':440 'section':232,234 'secur':252 'self':211 'self-contain':210 'servic':6,30,46,387 'set':540 'sever':326 'show':507 'skill' 'skill-recovery-plan' 'slack/teams/email':269 'slow':638 'snowflake/sharepoint':274 'someon':17,79,614 'someth':595 'source-rkz91' 'spot':395 'spot-check':394 'spotti':623 'stakehold':341,409 'step':11,13,26,35,37,52,54,138,176,201,291,304,345,368,374,378,417,457,467,484,501,502,512,530,555,562,567 'step-by-step':10,34,51 'straight':579 'structur':223 'stuck':298 'succeed':569 'sum':361,464 'support':251 'system':172 'tactic':33,67 'target':123,147,193,320,323 'technic':169,248 'templat':164 'time':322,325,352,360,460,468,515,585 'timelin':439 'timestamp':287 'tool':254 'topic-agent-skills' 'topic-agents-md' 'topic-ai-agents' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-llm-tools' 'topic-mcp' 'topic-pm-tools' 'topic-product-management' 'topic-productivity' 'total':473,477,485 'tree':573 'trigger':190,313 'understand':528 'updat':434,451 'url':537 'use':15,600 'user':390,483 'valid':459 'vendor':250,258,598 'verif':356,385,557 'verifi':289,350 'way':498 'within':362,442 'without':565 'work':219 'workaround':200,427 'write':520 'written':524 'wrote':87 'x':486 'y':490 'yes/no':364 'zero':214,607","prices":[{"id":"0895842c-a3c2-4db2-97f7-f59c8e83cbfa","listingId":"5a6e0085-fd92-4739-8d35-89ce93dbcace","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"rkz91","category":"coco","install_from":"skills.sh"},"createdAt":"2026-05-18T13:21:41.745Z"}],"sources":[{"listingId":"5a6e0085-fd92-4739-8d35-89ce93dbcace","source":"github","sourceId":"rkz91/coco/recovery-plan","sourceUrl":"https://github.com/rkz91/coco/tree/main/skills/recovery-plan","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:41.745Z","lastSeenAt":"2026-05-18T19:14:08.789Z"}],"details":{"listingId":"5a6e0085-fd92-4739-8d35-89ce93dbcace","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"rkz91","slug":"recovery-plan","github":{"repo":"rkz91/coco","stars":7,"topics":["agent-skills","agents-md","ai","ai-agents","claude-code","codex","cursor","developer-tools","llm-tools","mcp","pm-tools","product-management","productivity","prompt-engineering","workflow-automation"],"license":"mit","html_url":"https://github.com/rkz91/coco","pushed_at":"2026-04-26T01:51:27Z","description":"Open-source library of AI superpowers — 59 skills, 34 commands, 10 agents + 24 GSD subagents, 3 system bundles. An entire team, wherever your AI lives. Vendor-neutral across Claude Code, Cursor, Codex, and any AGENTS.md tool.","skill_md_sha":"e6ba5fbfadf97ad367eed4048443448e2f544708","skill_md_path":"skills/recovery-plan/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/rkz91/coco/tree/main/skills/recovery-plan"},"layout":"multi","source":"github","category":"coco","frontmatter":{"name":"pmstudio-recovery","description":"Generate detailed service restoration runbooks with step-by-step procedures. Use when someone asks to \"create recovery procedures\", \"restoration runbook\", \"recovery steps\", \"how to restore service\", or needs tactical step-by-step procedures for recovering from disaster scenarios. This is the execution companion to the DR plan — DR defines what and when, recovery-plan defines exactly how. Requires a DR plan to exist (will prompt to run /pmstudio-dr first if missing)."},"skills_sh_url":"https://skills.sh/rkz91/coco/recovery-plan"},"updatedAt":"2026-05-18T19:14:08.789Z"}}