[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N89W9W8MDJMEN80YATEJYM":3,"skill-same:01M6N89W9W8MDJMEN80YATEJYM":63},{"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":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M6N89W9W8MDJMEN80YATEJYM","mh-cto-sdlc-user-feedback",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-8-validation\u002Fmh-cto-sdlc-user-feedback\u002FSKILL.md",[],[18,19,20,21,22],"feedback","user","sdlc","cto","mh cto sdlc user feedback","2026-11-10 10:12:30",false,"---\nname: mh-cto-sdlc-user-feedback\ndescription: User Feedback Collection — structured synthesis of post-launch user signal. Four channels: surveys (breadth), interviews (depth), analytics (behavior), support tickets (pain). Output is insight, not data. Trigger phrases: \"user feedback\", \"collect feedback\", \"post-launch feedback\", \"what are users saying\", \"voice of customer\", \"user signal\", \"feedback synthesis\".\nmetadata:\n  author: MicroHard\n  version: 1.0.0\n  phase: 8-validation\n  module: cto-sdlc\n---\n\n# User Feedback Collection\n\n**Output is insight, not data.** The failure mode of feedback collection is producing a dump of raw responses and calling it analysis. This skill synthesizes across four channels to produce structured insight: what users are experiencing, what they want, and what the gap is between the product's intent and their reality.\n\n**Four channels, four signal types:**\n\n- **Surveys** — breadth. What fraction of users feel X? Are sentiments correlated with segments?\n- **Interviews** — depth. Why do users feel X? What is the underlying job-to-be-done they are struggling with?\n- **Analytics** — behavior. What are users actually doing, regardless of what they say they do?\n- **Support tickets** — pain. Where is the gap between expectation and reality causing friction?\n\nBehavioral data (analytics) often contradicts attitudinal data (surveys, interviews). Name the contradiction — it is the most informative signal.\n\n## Step 1 — Load Context\n\nRead Phase 1 `user-research.md` — the original user problems and mental models are the baseline. This feedback session measures whether the product solved what Phase 1 found.\n\nRead `outcome-report.md` — know which outcomes were achieved, partial, or unmet. Feedback collection should investigate the \"why\" behind those assessments.\n\n## Step 2 — Survey Design and Collection\n\nDesign a short survey (5-7 questions maximum) targeting the primary user segments from Phase 1.\n\n**Survey structure:**\n\n1. One Net Promoter Score question (0-10, \"how likely to recommend\")\n2. One overall satisfaction question\n3. Two to three questions targeting specific outcome criteria that were PARTIAL or NOT ACHIEVED\n4. One open-ended: \"What is the one thing you wish this product did differently?\"\n\nIf surveys have already been collected, skip to synthesis. If not, produce the survey instrument for the user to deploy.\n\n**NPS interpretation:**\n\n- Promoters (9-10): What is working?\n- Passives (7-8): What is missing or friction-causing?\n- Detractors (0-6): What failed to meet expectations? Why?\n\n## Step 3 — Interview Synthesis\n\nIf user interview notes are available, synthesize by job-to-be-done:\n\nFor each recurring theme across 3+ interviews:\n\n- **Theme:** {observed pattern}\n- **JTBD:** {underlying job the user is trying to accomplish}\n- **Gap:** {what the product does vs. what the user needs}\n- **Frequency:** {N of N interviews}\n\nIf no interviews are available: flag it. \"No qualitative depth available. NPS detractor themes cannot be diagnosed without interviews. Recommend 5 interviews targeting the top 2 NPS detractor reasons before the next cycle.\"\n\n## Step 4 — Analytics Signal\n\nFor each key user flow defined in Phase 3 user flows:\n\n| Flow        | Drop-off Rate | Completion Rate | Avg Time | Trend | Signal           |\n| ----------- | ------------- | --------------- | -------- | ----- | ---------------- |\n| {flow name} | {%}           | {%}             | {N sec}  | ↑\u002F↓\u002F→ | {interpretation} |\n\nFlag any flow with drop-off > 40% — that is a product failure, not a user failure.\n\nIdentify: features shipped that show near-zero usage. A feature with \u003C5% adoption after 30 days is a candidate for sunset (flagged for `mh-cto-sdlc-roadmap-refresh`).\n\n## Step 5 — Support Ticket Analysis\n\nCategorize support tickets by theme:\n\n| Theme   | Volume | % of Total | Severity     | Root Cause                             |\n| ------- | ------ | ---------- | ------------ | -------------------------------------- |\n| {theme} | {N}    | {%}        | High\u002FMed\u002FLow | {product\u002FUX\u002Fdocumentation\u002Fexpectation} |\n\n**Root cause classification:**\n\n- **Product defect:** The product is doing the wrong thing\n- **UX gap:** The product works but users cannot find or use it\n- **Documentation gap:** Users are doing it wrong because they don't know how\n- **Expectation mismatch:** The product does what it does, but users expected something different\n\n## Step 6 — Cross-Channel Synthesis\n\nProduce the insight synthesis. This is the output that matters:\n\n**What users say vs. what users do:**\nIf surveys\u002Finterviews claim X but analytics show Y, this is a behavioral contradiction. Name it explicitly.\n\n**Top 3 insights:**\nFor each:\n\n- **Insight:** {the finding}\n- **Evidence:** {which channels support this}\n- **Implication:** {what this means for the next cycle}\n- **Confidence:** High \u002F Medium \u002F Low (based on data quality and consistency across channels)\n\n## Step 7 — Write Output\n\nSave to `_mh-output\u002Fcto\u002Fsdlc\u002Fuser-feedback\u002F{YYYY-MM-DD}_{r###}_user-feedback-synthesis.md`:\n\n```markdown\n# User Feedback Synthesis\n\n**Product:** {name}\n**Synthesis date:** {date}\n**Period covered:** {launch date} to {date}\n**Data sources:** {which channels had data}\n\n---\n\n## NPS Summary\n\n**Score:** {N} | Promoters: {N%} | Passives: {N%} | Detractors: {N%}\n\n## Top Insights\n\n### Insight 1 — {title}\n\n{body}\n\n### Insight 2 — {title}\n\n{body}\n\n### Insight 3 — {title}\n\n{body}\n\n## Behavioral Contradictions\n\n{attitudinal vs. behavioral gaps, or \"None identified.\"}\n\n## Zero-Usage Features\n\n{List features with \u003C5% adoption — sunset candidates}\n\n## Support Ticket Themes\n\n{Table from Step 5}\n\n## Recommended Actions for Next Cycle\n\n{Top 2-3 actions ranked by impact}\n```\n\n## Step 8 — Present Summary\n\n**User Feedback Synthesis complete.**\n\n**Channels synthesized:** {N channels with data}\n\n**Top insight:** {single most important finding}\n\n**Zero-usage features flagged:** {N} — will feed sunset decisions in `mh-cto-sdlc-roadmap-refresh`.\n\n**Next step:** Run `\u002Fmh-cto-sdlc-defect-retro` to trace escaped defects, or `\u002Fmh-cto-sdlc-roadmap-refresh` once all Phase 8 synthesis is complete.\n","# User Feedback Collection\n\n**Output is insight, not data.** The failure mode of feedback collection is producing a dump of raw responses and calling it analysis. This skill synthesizes across four channels to produce structured insight: what users are experiencing, what they want, and what the gap is between the product's intent and their reality.\n\n**Four channels, four signal types:**\n\n- **Surveys** — breadth. What fraction of users feel X? Are sentiments correlated with segments?\n- **Interviews** — depth. Why do users feel X? What is the underlying job-to-be-done they are struggling with?\n- **Analytics** — behavior. What are users actually doing, regardless of what they say they do?\n- **Support tickets** — pain. Where is the gap between expectation and reality causing friction?\n\nBehavioral data (analytics) often contradicts attitudinal data (surveys, interviews). Name the contradiction — it is the most informative signal.\n\n## Step 1 — Load Context\n\nRead Phase 1 `user-research.md` — the original user problems and mental models are the baseline. This feedback session measures whether the product solved what Phase 1 found.\n\nRead `outcome-report.md` — know which outcomes were achieved, partial, or unmet. Feedback collection should investigate the \"why\" behind those assessments.\n\n## Step 2 — Survey Design and Collection\n\nDesign a short survey (5-7 questions maximum) targeting the primary user segments from Phase 1.\n\n**Survey structure:**\n\n1. One Net Promoter Score question (0-10, \"how likely to recommend\")\n2. One overall satisfaction question\n3. Two to three questions targeting specific outcome criteria that were PARTIAL or NOT ACHIEVED\n4. One open-ended: \"What is the one thing you wish this product did differently?\"\n\nIf surveys have already been collected, skip to synthesis. If not, produce the survey instrument for the user to deploy.\n\n**NPS interpretation:**\n\n- Promoters (9-10): What is working?\n- Passives (7-8): What is missing or friction-causing?\n- Detractors (0-6): What failed to meet expectations? Why?\n\n## Step 3 — Interview Synthesis\n\nIf user interview notes are available, synthesize by job-to-be-done:\n\nFor each recurring theme across 3+ interviews:\n\n- **Theme:** {observed pattern}\n- **JTBD:** {underlying job the user is trying to accomplish}\n- **Gap:** {what the product does vs. what the user needs}\n- **Frequency:** {N of N interviews}\n\nIf no interviews are available: flag it. \"No qualitative depth available. NPS detractor themes cannot be diagnosed without interviews. Recommend 5 interviews targeting the top 2 NPS detractor reasons before the next cycle.\"\n\n## Step 4 — Analytics Signal\n\nFor each key user flow defined in Phase 3 user flows:\n\n| Flow        | Drop-off Rate | Completion Rate | Avg Time | Trend | Signal           |\n| ----------- | ------------- | --------------- | -------- | ----- | ---------------- |\n| {flow name} | {%}           | {%}             | {N sec}  | ↑\u002F↓\u002F→ | {interpretation} |\n\nFlag any flow with drop-off > 40% — that is a product failure, not a user failure.\n\nIdentify: features shipped that show near-zero usage. A feature with \u003C5% adoption after 30 days is a candidate for sunset (flagged for `mh-cto-sdlc-roadmap-refresh`).\n\n## Step 5 — Support Ticket Analysis\n\nCategorize support tickets by theme:\n\n| Theme   | Volume | % of Total | Severity     | Root Cause                             |\n| ------- | ------ | ---------- | ------------ | -------------------------------------- |\n| {theme} | {N}    | {%}        | High\u002FMed\u002FLow | {product\u002FUX\u002Fdocumentation\u002Fexpectation} |\n\n**Root cause classification:**\n\n- **Product defect:** The product is doing the wrong thing\n- **UX gap:** The product works but users cannot find or use it\n- **Documentation gap:** Users are doing it wrong because they don't know how\n- **Expectation mismatch:** The product does what it does, but users expected something different\n\n## Step 6 — Cross-Channel Synthesis\n\nProduce the insight synthesis. This is the output that matters:\n\n**What users say vs. what users do:**\nIf surveys\u002Finterviews claim X but analytics show Y, this is a behavioral contradiction. Name it explicitly.\n\n**Top 3 insights:**\nFor each:\n\n- **Insight:** {the finding}\n- **Evidence:** {which channels support this}\n- **Implication:** {what this means for the next cycle}\n- **Confidence:** High \u002F Medium \u002F Low (based on data quality and consistency across channels)\n\n## Step 7 — Write Output\n\nSave to `_mh-output\u002Fcto\u002Fsdlc\u002Fuser-feedback\u002F{YYYY-MM-DD}_{r###}_user-feedback-synthesis.md`:\n\n```markdown\n# User Feedback Synthesis\n\n**Product:** {name}\n**Synthesis date:** {date}\n**Period covered:** {launch date} to {date}\n**Data sources:** {which channels had data}\n\n---\n\n## NPS Summary\n\n**Score:** {N} | Promoters: {N%} | Passives: {N%} | Detractors: {N%}\n\n## Top Insights\n\n### Insight 1 — {title}\n\n{body}\n\n### Insight 2 — {title}\n\n{body}\n\n### Insight 3 — {title}\n\n{body}\n\n## Behavioral Contradictions\n\n{attitudinal vs. behavioral gaps, or \"None identified.\"}\n\n## Zero-Usage Features\n\n{List features with \u003C5% adoption — sunset candidates}\n\n## Support Ticket Themes\n\n{Table from Step 5}\n\n## Recommended Actions for Next Cycle\n\n{Top 2-3 actions ranked by impact}\n```\n\n## Step 8 — Present Summary\n\n**User Feedback Synthesis complete.**\n\n**Channels synthesized:** {N channels with data}\n\n**Top insight:** {single most important finding}\n\n**Zero-usage features flagged:** {N} — will feed sunset decisions in `mh-cto-sdlc-roadmap-refresh`.\n\n**Next step:** Run `\u002Fmh-cto-sdlc-defect-retro` to trace escaped defects, or `\u002Fmh-cto-sdlc-roadmap-refresh` once all Phase 8 synthesis is complete.\n",{},"main","2ec3bbf5ba353f3fdd2c6d842b791fd75d08a635","src\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-8-validation\u002Fmh-cto-sdlc-user-feedback",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":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add Imad-Oute\u002FMicroHard --skill mh-cto-sdlc-user-feedback",{"tool":43,"command":44},"bunx","bunx skills add Imad-Oute\u002FMicroHard --skill mh-cto-sdlc-user-feedback",{"tool":46,"command":47},"pnpm","pnpm dlx skills add Imad-Oute\u002FMicroHard --skill mh-cto-sdlc-user-feedback","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-8-validation\u002Fmh-cto-sdlc-user-feedback\u002FSKILL.md",true,[51,57],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"customize.toml","OTHER","其他",477,"https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-8-validation\u002Fmh-cto-sdlc-user-feedback\u002Fcustomize.toml",{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"mh-skill-manifest.yaml","REFERENCE","参考文档",431,"https:\u002F\u002Fgithub.com\u002FImad-Oute\u002FMicroHard\u002Fblob\u002Fmain\u002Fsrc\u002Fdepartments\u002Fcto\u002Fsdlc\u002Fphase-8-validation\u002Fmh-cto-sdlc-user-feedback\u002Fmh-skill-manifest.yaml",[64,90,107,121,138,155],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":23},"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",[],[71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,19,86,87,88,89],"mh vo vault brief","brief","vault","intelligence report","top","weekly","os","pipeline","health","issues","report","run","status","review","weekly review","use","pipeline status","alignment","intelligence",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":23},"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",[],[97,98,99,73,100,101,82,102,103,104,19,105,106,86],"bridge","output","mh vo output bridge","artifacts","update","create","sync","for","entries","scan",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":23},"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",[],[114,115,104,116,117,118,119,102,86,73,120,101,19],"builder","mh vo moc builder","note","build","rebuild","maps","content",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":23},"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",[],[128,129,130,19,131,132,133,134,135,86,136,73,137],"mh vo link architect","link","architect","recommend","links","missing","recommendations","connections","find","generate",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":23},"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",[],[145,146,147,114,73,148,149,150,137,102,151,19,104,152,117,153,154,86],"mh vo base builder","base builder","base","obsidian bases","data","database","obsidian","live","files","bases",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":23},"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",[],[162,163,164,165,166,167,168,169,170,171,86,172,19,136,73,173],"mh vo taxonomy enforcer","taxonomy","enforce","apply","frontmatter","tags","drift","clean","vault tags","up","fix","audit"]