{"id":"aa0938ed-5200-4de9-8ac5-f4bdf26120d7","shortId":"rGzXRv","kind":"skill","title":"writing-plans","tagline":"Draft lean, executable, and verifiable plans before non-trivial work. Use when the user asks for a plan, implementation plan, roadmap, design plan, migration plan, refactor plan, PR split, plan checklist, or completion checklist for a plan; or when the task needs sequencing, trad","description":"# Writing Plans\n\n## Purpose\n\nWrite plans that help an agent or engineer act, verify progress, and expose uncertainty. Keep the plan as small as the task allows.\n\n## First Steps\n\n1. Retrieve missing context before asking the user when local files, command output, or existing documentation can answer the question.\n2. State assumptions and unknowns only when they affect execution or validation.\n3. Ask at most one clarifying question if the plan would otherwise depend on a risky guess.\n4. Prefer a short plan over a complete-looking template.\n\n## File Output\n\nWhen this skill is used, produce a plan document. Save it to the repository by default unless the user explicitly asks for chat-only output.\n\nUse `./docs/plans/` by default unless the user specifies another path. Name plan files as `YYYY-MM-DD_<topic>-plan.md`, where `<topic>` is a lowercase kebab-case stem, for example `2026-05-10_auth-migration-plan.md` or `2026-05-10_checkout-refactor-plan.md`.\n\nCreate `./docs/plans/` if it does not exist. If the user does not specify a topic, derive a concise lowercase kebab-case stem from the plan goal and report the created file path.\n\nWhen a plan is complete, immediately archive it by moving it to `./docs/plans/archived/YYYY-MM-DD_<topic>-plan.md`. Create `./docs/plans/archived/` if it does not exist. Report the completion evidence and archived file path.\n\n## Output Shape\n\nUse this default structure, deleting optional sections that do not add value.\n\n```markdown\n## Goal\n## Context (optional)\n## Architecture (optional)\n## Tech Stack (optional)\n## Non-Goals (optional)\n## Assumptions (optional)\n## Unknowns (optional)\n## Plan\n## Risks (optional)\n## Rollback / Recovery (optional)\n## Completion Checklist\n```\n\nAlways include `Goal`, `Plan`, and `Completion Checklist`.\n\n## Section Rules\n\n- `Goal`: Describe the intended outcome and success condition.\n- `Context` (optional): Include only task-local background needed to understand the plan.\n- `Architecture` (optional): Include when the work affects module boundaries, data flow, APIs, state management, deployment, permissions, storage, or ownership.\n- `Tech Stack` (optional): Include when the work adds, removes, upgrades, or chooses tools, frameworks, packages, runtimes, databases, CI/CD, or cloud services.\n- `Non-Goals` (optional): Name related work that is explicitly out of scope.\n- `Assumptions` (optional): Name premises the plan depends on but can reasonably proceed with for now.\n- `Unknowns` (optional): Name unanswered questions that could change the plan; convert each important unknown into an early discovery task or completion-check item.\n- `Plan`: Use Markdown task list items (`- [ ]`) for actionable steps. Each task must be independently executable by an agent or engineer, with a clear object, expected result, and an executable acceptance method in the same task item, such as a command, file/path evidence, test result, review status, deployment state, or explicit user acceptance. Example: `- [ ] Update \\`src/auth.ts\\` to reject expired tokens; verify with \\`npm test -- auth\\`.` Prefer tasks that can map to a commit, PR slice, command, file change, investigation, or review step. Include dependencies between steps when order matters.\n- `Risks` (optional): List risks that could break correctness, schedule, data integrity, UX, security, or maintainability.\n- `Rollback / Recovery` (optional): Include when the work touches production data, releases, migrations, infrastructure, public APIs, or user-visible behavior.\n- `Completion Checklist`: End every plan with finite Markdown task list items (`- [ ]`) that prove the whole work outcome is complete. Each item must be objectively checkable by code, docs, command output, test result, deployment state, review status, or explicit user acceptance. Each checklist item must include the verification method or evidence in the same item.\n\n### Plan Task Item Template\n\nUse this shape for `Plan` task list items when it helps keep acceptance explicit:\n\n```markdown\n- [ ] <action> <object> to produce <expected result>; verify with <command/evidence/user acceptance>.\n```\n\n### Completion Checklist Item Template\n\nUse this shape for `Completion Checklist` items to prove the whole work outcome is complete:\n\n```markdown\n- [ ] <completed outcome> is verified by <command/evidence/user acceptance>.\n```\n\n## Planning Standards\n\n- Keep task list items implementation-level when the user needs execution guidance.\n- Keep task list items design-level when the user is choosing direction or scope.\n- Split tasks that combine unrelated outcomes.\n- Avoid vague verbs such as \"handle\", \"improve\", or \"refactor\" unless the object and expected result are concrete.\n- Do not hide uncertainty inside plan steps.\n- Do not add optional sections just to satisfy the template.\n- Mention tradeoffs only when they affect a decision the user or implementer must make.\n- Do not include open-ended completion checks such as \"monitor forever\", \"keep improving\", \"ensure quality\", or \"handle edge cases\"; convert them into bounded checks.\n- End with `Completion Checklist`, not with open-ended commentary. If execution should begin immediately, put the next concrete action in the `Plan` task list.\n\n## Completion Review\n\nTreat a plan as complete only when all of these are true:\n\n1. Every required `Plan` task list item is checked or explicitly marked as not applicable using `- [x] Not applicable: <reason>`.\n2. Every `Completion Checklist` item is checked and has supporting evidence when the evidence is not obvious from repository state. Put evidence in the checklist item or in the completion review response, using commands, file paths, PR or review status, deployment state, or explicit user acceptance.\n3. Any `Unknowns` that affected execution are resolved, converted into follow-up work, or explicitly accepted by the user.\n4. Any unresolved `Risks` are documented as accepted, mitigated, or moved to follow-up work.\n5. Required handoff, documentation, or release notes are completed when the plan calls for them.\n\nDo not infer completion from implementation work alone. If evidence is missing, report which checks remain open instead of calling the plan complete.\n\nWhen the plan is complete, archive it immediately under `./docs/plans/archived/` and report the archived path. Do not archive if completion evidence is missing.\n\n## Useful Distinctions\n\nUse these distinctions when deciding whether a section is needed:\n\n```markdown\nNon-Goal: Do not migrate historical records in this phase.\nAssumption: Historical records can remain readable through the old schema.\nUnknown: Do any reports require historical records in the new schema?\n```","tags":["writing","plans","skills","narumiruna","agent-skills"],"capabilities":["skill","source-narumiruna","skill-writing-plans","topic-agent-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/narumiruna/skills/writing-plans","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add narumiruna/skills","source_repo":"https://github.com/narumiruna/skills","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 (6,661 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:13:48.074Z","embedding":null,"createdAt":"2026-05-18T19:13:48.074Z","updatedAt":"2026-05-18T19:13:48.074Z","lastSeenAt":"2026-05-18T19:13:48.074Z","tsv":"'/docs/plans':166,198 '/docs/plans/archived':245,943 '/docs/plans/archived/yyyy-mm-dd_':242 '1':77,795 '2':97,814 '2026-05-10_auth-migration-plan.md':194 '2026-05-10_checkout-refactor-plan.md':196 '3':109,860 '4':126,880 '5':896 'accept':449,471,582,613,621,646,859,876,887 'act':60 'action':427,775 'add':271,354,709 'affect':105,334,722,864 'agent':57,437 'allow':74 'alon':918 'alway':298 'anoth':173 'answer':94 'api':339,537 'applic':809,813 'architectur':277,328 'archiv':236,256,939,947,951 'ask':19,82,110,159 'assumpt':99,286,381,981 'auth':483 'avoid':683 'background':322 'begin':769 'behavior':542 'bound':754 'boundari':336 'break':514 'call':908,930 'case':190,218,750 'chang':403,496 'chat':162 'chat-on':161 'check':418,738,755,803,820,925 'checkabl':567 'checklist':35,38,297,304,544,584,623,631,759,817,838 'choos':358,673 'ci/cd':364 'clarifi':114 'clear':442 'cloud':366 'code':569 'combin':680 'command':88,459,494,571,847 'command/evidence/user':620,645 'commentari':765 'commit':491 'complet':37,134,234,253,296,303,417,543,561,622,630,640,737,758,781,787,816,843,904,914,933,938,953 'complete-look':133 'completion-check':416 'concis':214 'concret':699,774 'condit':314 'context':80,275,315 'convert':406,751,868 'correct':515 'could':402,513 'creat':197,227,244 'data':337,517,532 'databas':363 'dd':182 'decid':963 'decis':724 'default':154,168,263 'delet':265 'depend':121,387,502 'deploy':342,466,575,854 'deriv':212 'describ':308 'design':26,667 'design-level':666 'direct':674 'discoveri':413 'distinct':958,961 'doc':570 'document':92,147,885,899 'draft':4 'earli':412 'edg':749 'end':545,736,756,764 'engin':59,439 'ensur':745 'everi':546,796,815 'evid':254,461,592,824,827,835,920,954 'exampl':193,472 'execut':6,106,434,448,660,767,865 'exist':91,203,250 'expect':444,696 'expir':477 'explicit':158,377,469,580,614,805,857,875 'expos':64 'file':87,137,177,228,257,495,848 'file/path':460 'finit':549 'first':75 'flow':338 'follow':871,893 'follow-up':870,892 'forev':742 'framework':360 'goal':223,274,284,300,307,370,972 'guess':125 'guidanc':661 'handl':688,748 'handoff':898 'help':55,611 'hide':702 'histor':976,982,996 'immedi':235,770,941 'implement':23,654,728,916 'implementation-level':653 'import':408 'improv':689,744 'includ':299,317,330,350,501,526,587,733 'independ':433 'infer':913 'infrastructur':535 'insid':704 'instead':928 'integr':518 'intend':310 'investig':497 'item':419,425,455,553,563,585,596,599,608,624,632,652,665,801,818,839 'kebab':189,217 'kebab-cas':188,216 'keep':66,612,649,662,743 'lean':5 'level':655,668 'list':424,510,552,607,651,664,780,800 'local':86,321 'look':135 'lowercas':187,215 'maintain':522 'make':730 'manag':341 'map':488 'mark':806 'markdown':273,422,550,615,641,969 'matter':507 'mention':717 'method':450,590 'migrat':28,534,975 'miss':79,922,956 'mitig':888 'mm':181 'modul':335 'monitor':741 'move':239,890 'must':431,564,586,729 'name':175,372,383,398 'need':46,323,659,968 'new':1000 'next':773 'non':12,283,369,971 'non-goal':282,368,970 'non-trivi':11 'note':902 'npm':481 'object':443,566,694 'obvious':830 'old':989 'one':113 'open':735,763,927 'open-end':734,762 'option':266,276,278,281,285,287,289,292,295,316,329,349,371,382,397,509,525,710 'order':506 'otherwis':120 'outcom':311,559,638,682 'output':89,138,164,259,572 'ownership':346 'packag':361 'path':174,229,258,849,948 'permiss':343 'phase':980 'plan':3,9,22,24,27,29,31,34,41,50,53,68,118,130,146,176,222,232,290,301,327,386,405,420,547,597,605,647,705,778,785,798,907,932,936 'plan.md':183,243 'pr':32,492,850 'prefer':127,484 'premis':384 'proceed':392 'produc':144,617 'product':531 'progress':62 'prove':555,634 'public':536 'purpos':51 'put':771,834 'qualiti':746 'question':96,115,400 'readabl':986 'reason':391 'record':977,983,997 'recoveri':294,524 'refactor':30,691 'reject':476 'relat':373 'releas':533,901 'remain':926,985 'remov':355 'report':225,251,923,945,994 'repositori':152,832 'requir':797,897,995 'resolv':867 'respons':845 'result':445,463,574,697 'retriev':78 'review':464,499,577,782,844,852 'risk':291,508,511,883 'riski':124 'roadmap':25 'rollback':293,523 'rule':306 'runtim':362 'satisfi':714 'save':148 'schedul':516 'schema':990,1001 'scope':380,676 'section':267,305,711,966 'secur':520 'sequenc':47 'servic':367 'shape':260,603,628 'short':129 'skill':141 'skill-writing-plans' 'slice':493 'small':70 'source-narumiruna' 'specifi':172,209 'split':33,677 'src/auth.ts':474 'stack':280,348 'standard':648 'state':98,340,467,576,833,855 'status':465,578,853 'stem':191,219 'step':76,428,500,504,706 'storag':344 'structur':264 'success':313 'support':823 'task':45,73,320,414,423,430,454,485,551,598,606,650,663,678,779,799 'task-loc':319 'tech':279,347 'templat':136,600,625,716 'test':462,482,573 'token':478 'tool':359 'topic':211 'topic-agent-skills' 'touch':530 'trad':48 'tradeoff':718 'treat':783 'trivial':13 'true':794 'unansw':399 'uncertainti':65,703 'understand':325 'unknown':101,288,396,409,862,991 'unless':155,169,692 'unrel':681 'unresolv':882 'updat':473 'upgrad':356 'use':15,143,165,261,421,601,626,810,846,957,959 'user':18,84,157,171,206,470,540,581,658,671,726,858,879 'user-vis':539 'ux':519 'vagu':684 'valid':108 'valu':272 'verb':685 'verif':589 'verifi':8,61,479,618,643 'visibl':541 'whether':964 'whole':557,636 'work':14,333,353,374,529,558,637,873,895,917 'would':119 'write':2,49,52 'writing-plan':1 'x':811 'yyyi':180 'yyyy-mm-dd':179","prices":[{"id":"3b9a4db8-c054-47d3-b994-018f08dab993","listingId":"aa0938ed-5200-4de9-8ac5-f4bdf26120d7","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"narumiruna","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-18T19:13:48.074Z"}],"sources":[{"listingId":"aa0938ed-5200-4de9-8ac5-f4bdf26120d7","source":"github","sourceId":"narumiruna/skills/writing-plans","sourceUrl":"https://github.com/narumiruna/skills/tree/main/skills/writing-plans","isPrimary":false,"firstSeenAt":"2026-05-18T19:13:48.074Z","lastSeenAt":"2026-05-18T19:13:48.074Z"}],"details":{"listingId":"aa0938ed-5200-4de9-8ac5-f4bdf26120d7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"narumiruna","slug":"writing-plans","github":{"repo":"narumiruna/skills","stars":7,"topics":["agent-skills"],"license":"mit","html_url":"https://github.com/narumiruna/skills","pushed_at":"2026-05-17T11:15:28Z","description":null,"skill_md_sha":"3695b0c0210ff58adb6e6311792767453f035bc0","skill_md_path":"skills/writing-plans/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/narumiruna/skills/tree/main/skills/writing-plans"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"writing-plans","description":"Draft lean, executable, and verifiable plans before non-trivial work. Use when the user asks for a plan, implementation plan, roadmap, design plan, migration plan, refactor plan, PR split, plan checklist, or completion checklist for a plan; or when the task needs sequencing, tradeoffs, assumptions, unknowns, risk control, or completion criteria. Do not use for small, obvious tasks that can be completed directly."},"skills_sh_url":"https://skills.sh/narumiruna/skills/writing-plans"},"updatedAt":"2026-05-18T19:13:48.074Z"}}