[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N855SVS9FNFVCSVMXTTK5J":3,"skill-same:01M6N855SVS9FNFVCSVMXTTK5J":64},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M6N855SVS9FNFVCSVMXTTK5J","mh-cto-sdlc-context-save",null,"Imad-Oute\u002FMicroHard","Imad-Oute","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F139675528?v=4","01M6N68WHDQ53HQJQ5Y84AGMWX","imad outemgount","01M6N68WP1YPV15H5RTGQHM02G",2,"MIT","https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-6-implementation\u002Fmh-cto-sdlc-context-save\u002FSKILL.md",[],[18,19,20,21,22,23],"save","context save","context","sdlc","cto","mh cto sdlc context save","2026-11-10 10:12:30",false,"---\nname: mh-cto-sdlc-context-save\ndescription: Context Save — records the current session state into the in-progress story file so the session can be resumed cleanly by any developer or AI agent. Embeds the session-abort recovery protocol (D32\u002FOQ5-B). Run when a session ends before a story is complete. Trigger phrases: \"context save\", \"save context\", \"save session\", \"end session\", \"pause story\", \"save progress\", \"session save\", \"stop working\".\nmetadata:\n  author: MicroHard\n  version: 1.0.0\n  phase: 6-implementation\n  module: cto-sdlc\n---\n\n# Context Save\n\n**Session-abort recovery (D32\u002FOQ5-B):** This skill writes the session_state block into the story file. A future `story-kickoff` run will detect this block and offer a clean resume path. Without context-save, an interrupted session is invisible — the next developer walks in cold with no recovery information.\n\n**Elite character:** Abandoning a session without saving context is the equivalent of a surgeon leaving the operating room without notes. The next practitioner has to guess what was done, what was decided, and what remains. Context save is not bookkeeping — it is respect for continuity.\n\n## Step 1 — Confirm In-Progress Story\n\nRead `_mh-output\u002Fcto\u002Fsdlc\u002Fsprint-status.yaml`. Find the current `in-progress` story.\n\nIf no story is `in-progress`:\n\n- \"No story is currently in-progress. Context save only applies to an active session.\"\n- Check for `review` stories: \"A story is in review. Run `\u002Fmh-cto-sdlc-code-review` to complete it.\"\n\n## Step 2 — Elicit Session State\n\nAsk the following to build the session_state block. These are short, specific questions:\n\n**Q1 — Last known-good state:**\n\"What is the last point in the implementation where all tests were passing?\"\n\nListen for: specific behavior name, specific test name, or \"none yet — no green state reached.\"\n\n**Q2 — Work in progress:**\n\"What were you working on when the session ended? One sentence.\"\n\n**Q3 — Known divergence:**\n\"Did anything unexpected happen that future-you should know about? A decision made, an assumption broken, a shortcut taken?\"\n\n**Q4 — Next action:**\n\"If you were starting fresh tomorrow, what is the first thing you would do?\"\n\nThese four questions produce a context block that any developer or AI agent can act on without reading the full implementation history.\n\n## Step 3 — Write Session State\n\nUpdate `.mh-state\u002Fstories\u002F{story-id}\u002Fstory.md` — dev-agent-record:\n\n```yaml\nstatus: in-progress\nsession_state:\n  saved_at: '{YYYY-MM-DD HH:MM}'\n  last_green_state: '{verbatim from Q1}'\n  work_in_progress: '{verbatim from Q2}'\n  divergence_notes: \"{verbatim from Q3, or 'none'}\"\n  resume_action: '{verbatim from Q4}'\nlast_updated: '{YYYY-MM-DD}'\n```\n\nThe story file status remains `in-progress`. The story is not abandoned — it is paused with a recovery map.\n\n## Step 4 — Verify Recoverability\n\nRead back the session_state block. Ask: **\"Would a developer with no prior context be able to resume this story from this state?\"**\n\nIf no: prompt for clarification on the weakest field. The session_state is not complete until it is self-contained.\n\nIf yes: confirm: \"Session state saved. Story '{name}' is paused at: '{last_green_state}'. Resume with `\u002Fmh-cto-sdlc-story-kickoff` — it will detect this session state and offer the resume path.\"\n\n## Step 5 — Optional: Mid-Sprint Status Check\n\nOptionally, produce a brief mid-sprint status if requested:\n\n```\nSprint status as of {date}:\n\n  Done:          {N} stories\n  In-progress:   1 story (paused — context saved)\n  Ready-for-dev: {N} stories\n  Backlog:       {N} stories\n\nNext story to pick up: \"{next ready-for-dev story name}\"\n```\n\n## Step 6 — Present Summary\n\n**Context saved for story '{name}'.**\n\n**Last green state:** {value}\n**Resume action:** {value}\n\n**Story status:** in-progress (paused)\n\n**To resume:** Run `\u002Fmh-cto-sdlc-story-kickoff` — it will detect this session state and offer a clean resume.\n","# Context Save\n\n**Session-abort recovery (D32\u002FOQ5-B):** This skill writes the session_state block into the story file. A future `story-kickoff` run will detect this block and offer a clean resume path. Without context-save, an interrupted session is invisible — the next developer walks in cold with no recovery information.\n\n**Elite character:** Abandoning a session without saving context is the equivalent of a surgeon leaving the operating room without notes. The next practitioner has to guess what was done, what was decided, and what remains. Context save is not bookkeeping — it is respect for continuity.\n\n## Step 1 — Confirm In-Progress Story\n\nRead `_mh-output\u002Fcto\u002Fsdlc\u002Fsprint-status.yaml`. Find the current `in-progress` story.\n\nIf no story is `in-progress`:\n\n- \"No story is currently in-progress. Context save only applies to an active session.\"\n- Check for `review` stories: \"A story is in review. Run `\u002Fmh-cto-sdlc-code-review` to complete it.\"\n\n## Step 2 — Elicit Session State\n\nAsk the following to build the session_state block. These are short, specific questions:\n\n**Q1 — Last known-good state:**\n\"What is the last point in the implementation where all tests were passing?\"\n\nListen for: specific behavior name, specific test name, or \"none yet — no green state reached.\"\n\n**Q2 — Work in progress:**\n\"What were you working on when the session ended? One sentence.\"\n\n**Q3 — Known divergence:**\n\"Did anything unexpected happen that future-you should know about? A decision made, an assumption broken, a shortcut taken?\"\n\n**Q4 — Next action:**\n\"If you were starting fresh tomorrow, what is the first thing you would do?\"\n\nThese four questions produce a context block that any developer or AI agent can act on without reading the full implementation history.\n\n## Step 3 — Write Session State\n\nUpdate `.mh-state\u002Fstories\u002F{story-id}\u002Fstory.md` — dev-agent-record:\n\n```yaml\nstatus: in-progress\nsession_state:\n  saved_at: '{YYYY-MM-DD HH:MM}'\n  last_green_state: '{verbatim from Q1}'\n  work_in_progress: '{verbatim from Q2}'\n  divergence_notes: \"{verbatim from Q3, or 'none'}\"\n  resume_action: '{verbatim from Q4}'\nlast_updated: '{YYYY-MM-DD}'\n```\n\nThe story file status remains `in-progress`. The story is not abandoned — it is paused with a recovery map.\n\n## Step 4 — Verify Recoverability\n\nRead back the session_state block. Ask: **\"Would a developer with no prior context be able to resume this story from this state?\"**\n\nIf no: prompt for clarification on the weakest field. The session_state is not complete until it is self-contained.\n\nIf yes: confirm: \"Session state saved. Story '{name}' is paused at: '{last_green_state}'. Resume with `\u002Fmh-cto-sdlc-story-kickoff` — it will detect this session state and offer the resume path.\"\n\n## Step 5 — Optional: Mid-Sprint Status Check\n\nOptionally, produce a brief mid-sprint status if requested:\n\n```\nSprint status as of {date}:\n\n  Done:          {N} stories\n  In-progress:   1 story (paused — context saved)\n  Ready-for-dev: {N} stories\n  Backlog:       {N} stories\n\nNext story to pick up: \"{next ready-for-dev story name}\"\n```\n\n## Step 6 — Present Summary\n\n**Context saved for story '{name}'.**\n\n**Last green state:** {value}\n**Resume action:** {value}\n\n**Story status:** in-progress (paused)\n\n**To resume:** Run `\u002Fmh-cto-sdlc-story-kickoff` — it will detect this session state and offer a clean resume.\n",{},"main","2ec3bbf5ba353f3fdd2c6d842b791fd75d08a635","src\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-6-implementation\u002Fmh-cto-sdlc-context-save",0,"https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard","https:\u002F\u002Fgithub.com\u002FImad-Oute","https:\u002F\u002Fimad369.vercel.app\u002F","I'm just starting my Journey.","2026-05-13 03:02:22",{"source":7,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add Imad-Oute\u002FMicroHard --skill mh-cto-sdlc-context-save",{"tool":44,"command":45},"bunx","bunx skills add Imad-Oute\u002FMicroHard --skill mh-cto-sdlc-context-save",{"tool":47,"command":48},"pnpm","pnpm dlx skills add Imad-Oute\u002FMicroHard --skill mh-cto-sdlc-context-save","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-6-implementation\u002Fmh-cto-sdlc-context-save\u002FSKILL.md",true,[52,58],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"customize.toml","OTHER","其他",222,"https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-6-implementation\u002Fmh-cto-sdlc-context-save\u002Fcustomize.toml",{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"mh-skill-manifest.yaml","REFERENCE","参考文档",215,"https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-6-implementation\u002Fmh-cto-sdlc-context-save\u002Fmh-skill-manifest.yaml",[65,92,109,123,140,157],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":24},"01M6N8JYRPSHVW4Y76X5SAGRDX","mh-vo-vault-brief","Weekly vault intelligence report — health score, pipeline status, OS alignment, and top issues. Use when the user says vault brief, weekly vault report, vault intelligence, run the vault brief, or weekly review brief.","https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fvo\u002F5-report\u002Fmh-vo-vault-brief\u002FSKILL.md",[],[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91],"mh vo vault brief","brief","vault","intelligence report","top","weekly","os","pipeline","health","issues","report","run","status","review","weekly review","user","use","pipeline status","alignment","intelligence",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":24},"01M6N8JCK7E7Y19940RBB51R96","mh-vo-output-bridge","Scan _mh-output\u002F for new artifacts and create or update corresponding vault entries. Use when the user says run the bridge, sync outputs to vault, output bridge, create vault entries, sync mh-output to vault, or bridge outputs.","https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fvo\u002F4-bridge\u002Fmh-vo-output-bridge\u002FSKILL.md",[],[99,100,101,74,102,103,83,104,105,106,87,107,108,88],"bridge","output","mh vo output bridge","artifacts","update","create","sync","for","entries","scan",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":24},"01M6N8HXW3ENQ939C93R59W371","mh-vo-moc-builder","Create or update Maps of Content for vault sections and ensure every note is reachable from a MOC. Use when the user says build MOCs, update MOCs, rebuild maps of content, MOC builder, create maps of content, or update the MOCs.","https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fvo\u002F3-connect\u002Fmh-vo-moc-builder\u002FSKILL.md",[],[116,117,106,118,119,120,121,104,88,74,122,103,87],"builder","mh vo moc builder","note","build","rebuild","maps","content",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":24},"01M6N8HHZ30706B2ZS33X3MR42","mh-vo-link-architect","Identify missing vault connections and generate precise link recommendations. Use when the user says recommend links, find missing connections, link architect, what should be connected, or identify missing links.","https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fvo\u002F3-connect\u002Fmh-vo-link-architect\u002FSKILL.md",[],[130,131,132,87,133,134,135,136,137,88,138,74,139],"mh vo link architect","link","architect","recommend","links","missing","recommendations","connections","find","generate",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":24},"01M6N8H6FKWGTNFWS5PTPPTEN0","mh-vo-base-builder","Generate Obsidian Bases (.base files) for live database views of vault data. Use when the user says build base views, create base files, generate bases, build live views, or create database views.","https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fvo\u002F3-connect\u002Fmh-vo-base-builder\u002FSKILL.md",[],[147,148,149,116,74,150,151,152,139,104,153,87,106,154,119,155,156,88],"mh vo base builder","base builder","base","obsidian bases","data","database","obsidian","live","files","bases",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":24},"01M6N8GSRETQW3B9C843F1S1CP","mh-vo-taxonomy-enforcer","Audit vault tags and frontmatter, find drift, and apply corrections. Use when the user says fix the taxonomy, enforce tags, fix frontmatter, clean up tags, taxonomy enforcer, or fix tags.","https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fvo\u002F2-route\u002Fmh-vo-taxonomy-enforcer\u002FSKILL.md",[],[164,165,166,167,168,169,170,171,172,173,88,174,87,138,74,175],"mh vo taxonomy enforcer","taxonomy","enforce","apply","frontmatter","tags","drift","clean","vault tags","up","fix","audit"]