[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CF4R256GEX07Q0P29WFZHT":3,"skill-same:01M6CF4R256GEX07Q0P29WFZHT":71},{"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":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6CF4R256GEX07Q0P29WFZHT","mci",null,"Identify and capture Minimum Coherent Insights — the smallest learning that changes future behavior.","usurobor\u002Fcnos","usurobor","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F182342826?v=4","01M6CEXJCRMYD8HB2315FGB1Q8","Peter Lisovin","01M6CEXJH2RW04GQ2SNXY40F5S",9,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.core\u002Fskills\u002Fagent\u002Fmci\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"model","coherent","cap","activation","extract","behavior","capture","Rules","trace","reflect","migrate","learning","how","flow","model update","file","learn","update","core","2026-11-10 10:12:30",false,"---\nname: mci\ndescription: Identify and capture Minimum Coherent Insights — the smallest learning that changes future behavior.\ngoverning_question: How does the agent extract a single insight that prevents the next instance of the same mistake?\ntriggers: [MCI, model update, learn, reflect, trace, note]\nscope: task-local\nactivation_status: on-demand — not activation-loaded since cycle\u002F385. Core MCI rules (transferable-lesson tests, capture\u002Fimperative\u002Ftrigger, migrate flow) are absorbed into cap\u002FSKILL.md. Load this file on-demand for scope\u002Fspecificity detail.\n---\n\n# MCI\n\nHow to identify and capture Minimum Coherent Insights.\n\n## Core Principle\n\n**Coherent insight: the smallest learning that changes future behavior.**\n\nMCI = Minimum Coherent Insight. Not a vague takeaway — a specific lesson that, once known, prevents the same mistake or enables a new capability.\n\nFailure mode: confusing feelings with insights. \"That was hard\" is not an insight. \"Verify assumptions before acting\" is.\n\n## 1. Identify\n\nExtract the transferable lesson.\n\n1.1. **Ask \"what would I tell past-me?\"**\n  - ❌ \"I learned a lot\" → ✅ \"Check the return type before calling\"\n  - ❌ \"That was tricky\" → ✅ \"Config files are loaded before env vars\"\n\n1.2. **Distinguish observation from insight**\n  - Observation: what happened\n  - Insight: what it means for the future\n  - ❌ \"The deploy failed\" → ✅ \"Always run migrations before deploy\"\n\n1.3. **Make it transferable**\n  - Would this help someone else in a similar situation?\n  - ❌ \"I should have checked\" → ✅ \"Validate inputs at system boundaries\"\n\n## 2. Scope\n\nSmallest learning that changes behavior.\n\n2.1. **Specific enough to apply**\n  - ❌ \"Be more careful\" → ✅ \"Run tests before pushing\"\n  - ❌ \"Think harder\" → ✅ \"Write the expected output before writing the code\"\n\n2.2. **General enough to transfer**\n  - ❌ \"Don't forget the semicolon on line 47\" → ✅ \"Syntax errors often hide at statement boundaries\"\n  - ❌ \"Check config.yaml\" → ✅ \"Check config files when behavior differs from code\"\n\n2.3. **One insight per capture**\n  - Don't bundle unrelated learnings\n  - ❌ \"Learned about deploys and also testing and also code review\" → ✅ Three separate MCIs\n\n## 3. Capture\n\nWrite it down or lose it.\n\n3.1. **Capture immediately**\n  - Insights decay fast\n  - ❌ \"Will write it up later\" → ✅ Write it now\n\n3.2. **State as imperative when possible**\n  - ❌ \"I realized X is important\" → ✅ \"Always do X\"\n  - ❌ \"It turns out Y matters\" → ✅ \"Check Y first\"\n\n3.3. **Include the trigger**\n  - What situation does this apply to?\n  - ❌ \"Validate inputs\" → ✅ \"Validate inputs at system boundaries\"\n  - ❌ \"Test edge cases\" → ✅ \"Test edge cases when parsing user input\"\n\n## 4. Migrate\n\nInsights should flow to where they'll be used.\n\n4.1. **Daily → Weekly → Skill**\n  - Same insight appearing multiple times? Migrate it up\n  - ❌ Same lesson in 4 daily threads → ✅ Add to relevant skill\n\n4.2. **Choose the right home**\n  - Where would future-you look for this?\n  - ❌ Buried in a daily thread → ✅ In the skill for that task\n\n4.3. **Delete after migrating**\n  - Don't duplicate insights across locations\n  - ❌ Copy to skill, keep in daily → ✅ Move to skill, mark done in daily\n\n---\n\n## MCI vs MCA\n\n| MCI | MCA |\n|-----|-----|\n| Learning | Action |\n| Changes future behavior | Solves current problem |\n| \"Always X\" | \"Do X now\" |\n| Migrates to skills | Completes when done |\n\n**Prefer MCA over MCI.** If you can act, act. Insights are what remain after acting.\n\n---\n\n## Quick Test\n\nBefore capturing, ask:\n\n1. Is this specific enough to apply?\n2. Is this general enough to transfer?\n3. Would past-me have avoided the problem with this knowledge?\n\nIf any answer is \"no\" — refine it.\n","# MCI\n\nHow to identify and capture Minimum Coherent Insights.\n\n## Core Principle\n\n**Coherent insight: the smallest learning that changes future behavior.**\n\nMCI = Minimum Coherent Insight. Not a vague takeaway — a specific lesson that, once known, prevents the same mistake or enables a new capability.\n\nFailure mode: confusing feelings with insights. \"That was hard\" is not an insight. \"Verify assumptions before acting\" is.\n\n## 1. Identify\n\nExtract the transferable lesson.\n\n1.1. **Ask \"what would I tell past-me?\"**\n  - ❌ \"I learned a lot\" → ✅ \"Check the return type before calling\"\n  - ❌ \"That was tricky\" → ✅ \"Config files are loaded before env vars\"\n\n1.2. **Distinguish observation from insight**\n  - Observation: what happened\n  - Insight: what it means for the future\n  - ❌ \"The deploy failed\" → ✅ \"Always run migrations before deploy\"\n\n1.3. **Make it transferable**\n  - Would this help someone else in a similar situation?\n  - ❌ \"I should have checked\" → ✅ \"Validate inputs at system boundaries\"\n\n## 2. Scope\n\nSmallest learning that changes behavior.\n\n2.1. **Specific enough to apply**\n  - ❌ \"Be more careful\" → ✅ \"Run tests before pushing\"\n  - ❌ \"Think harder\" → ✅ \"Write the expected output before writing the code\"\n\n2.2. **General enough to transfer**\n  - ❌ \"Don't forget the semicolon on line 47\" → ✅ \"Syntax errors often hide at statement boundaries\"\n  - ❌ \"Check config.yaml\" → ✅ \"Check config files when behavior differs from code\"\n\n2.3. **One insight per capture**\n  - Don't bundle unrelated learnings\n  - ❌ \"Learned about deploys and also testing and also code review\" → ✅ Three separate MCIs\n\n## 3. Capture\n\nWrite it down or lose it.\n\n3.1. **Capture immediately**\n  - Insights decay fast\n  - ❌ \"Will write it up later\" → ✅ Write it now\n\n3.2. **State as imperative when possible**\n  - ❌ \"I realized X is important\" → ✅ \"Always do X\"\n  - ❌ \"It turns out Y matters\" → ✅ \"Check Y first\"\n\n3.3. **Include the trigger**\n  - What situation does this apply to?\n  - ❌ \"Validate inputs\" → ✅ \"Validate inputs at system boundaries\"\n  - ❌ \"Test edge cases\" → ✅ \"Test edge cases when parsing user input\"\n\n## 4. Migrate\n\nInsights should flow to where they'll be used.\n\n4.1. **Daily → Weekly → Skill**\n  - Same insight appearing multiple times? Migrate it up\n  - ❌ Same lesson in 4 daily threads → ✅ Add to relevant skill\n\n4.2. **Choose the right home**\n  - Where would future-you look for this?\n  - ❌ Buried in a daily thread → ✅ In the skill for that task\n\n4.3. **Delete after migrating**\n  - Don't duplicate insights across locations\n  - ❌ Copy to skill, keep in daily → ✅ Move to skill, mark done in daily\n\n---\n\n## MCI vs MCA\n\n| MCI | MCA |\n|-----|-----|\n| Learning | Action |\n| Changes future behavior | Solves current problem |\n| \"Always X\" | \"Do X now\" |\n| Migrates to skills | Completes when done |\n\n**Prefer MCA over MCI.** If you can act, act. Insights are what remain after acting.\n\n---\n\n## Quick Test\n\nBefore capturing, ask:\n\n1. Is this specific enough to apply?\n2. Is this general enough to transfer?\n3. Would past-me have avoided the problem with this knowledge?\n\nIf any answer is \"no\" — refine it.\n",{"name":5,"scope":43,"triggers":44,"description":7,"activation_status":47,"governing_question":48},"task-local",[45,33,35,28,27,46],"MCI","note","on-demand — not activation-loaded since cycle\u002F385. Core MCI rules (transferable-lesson tests, capture\u002Fimperative\u002Ftrigger, migrate flow) are absorbed into cap\u002FSKILL.md. Load this file on-demand for scope\u002Fspecificity detail.","How does the agent extract a single insight that prevents the next instance of the same mistake?","main","fb527e6c4bfb75c71fa75d6471b3aa3da32106d4","src\u002Fpackages\u002Fcnos.core\u002Fskills\u002Fagent\u002Fmci",0,"https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos","https:\u002F\u002Fgithub.com\u002Fusurobor","Coherence engineer. Building git-CN.","2026-11-07 14:25:44",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add usurobor\u002Fcnos --skill mci",{"tool":63,"command":64},"bunx","bunx skills add usurobor\u002Fcnos --skill mci",{"tool":66,"command":67},"pnpm","pnpm dlx skills add usurobor\u002Fcnos --skill mci","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.core\u002Fskills\u002Fagent\u002Fmci\u002FSKILL.md",true,[],[72,90,106,134,151,170],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":38},"01M6CF8RWQPM0VXZG06XMR0FFX","issues\u002Ftriage","Issue triage doctrine pointer. Use when classifying a new issue, deciding dispatch eligibility, or deciding whether to close\u002Fsupersede\u002Fdefer.","https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.issues\u002Fskills\u002Ftriage\u002FSKILL.md",[],[79,80,81,82,83,31,84,85,86,87,88,89],"triage","issues","issues triage","issue triage","SET","decision","public","use","dispatch","issue","doctrine",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":38},"01M6CF8PJ812DD4APZ3WE8X67B","issues\u002Ftaxonomy","Issue label taxonomy pointer. Use when classifying an issue's kind\u002Farea\u002Fpriority\u002Feffort\u002Fstatus\u002Fprotocol\u002Fdispatch labels, or when the board needs to interpret them.","https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.issues\u002Fskills\u002Ftaxonomy\u002FSKILL.md",[],[80,97,98,99,100,101,83,102,85,103,86,87,104,88,105],"taxonomy","issues taxonomy","github","status","protocol","open","board","github issue","issue labels",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":122,"publishedAt":38},"01M6CF8KBMZ4D0CDJQ3PF1YVTP","issues\u002Fmap","Issue-board (Issue Pivot) generation domain. Use when reasoning about `cn issues map`'s fetch, taxonomy-parse, effort-computation, and render pipeline, or about the board's JSON\u002FHTML output contract.","https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.issues\u002Fskills\u002Fmap\u002FSKILL.md",[112,117],{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":118,"categoryName":119,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[80,123,99,124,125,126,83,127,97,102,31,128,129,103,130,131,132,133,86,88],"issues map","reasoning","data","pipeline","api","json","README","edit","interactive","fetch","generated",{"skillNo":135,"name":80,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":38},"01M6CF8CZQH7G7B7RZPANQWR4G","cnos.issues package entrypoint. Use when reasoning about issue taxonomy, the Issue Pivot \u002F issue-board (`cn issues map`), the read-only CDS issue-state evaluator (`cn issues fsm evaluate`), or the current command-dispatch disposition of issue tooling.","https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.issues\u002FSKILL.md",[],[80,99,140,141,142,143,144,145,146,97,102,31,84,147,129,148,86,149,87,150],"pr","current state","run","artifacts","state","package","boundary","branch","command","only","cds",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":38},"01M6CF896XKSRQVB1CSHY8GSXB","receipt-stream","Cross-cycle receipt-stream doctrine for protocol-iteration. Use when γ closes a cycle and writes the per-cycle iteration artifact (`cdd-iteration.md`), when γ updates the cross-cycle aggregator at `.cdd\u002Fiterations\u002FINDEX.md`, when ε reads the receipt stream across cycles to surface protocol-gap patterns, when a finding's disposition lands a cross-repo patch and the cross-repo trace bundle attaches, or when a courtesy empty-findings stub is written for a `protocol_gap_count == 0` cycle.","https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.handoff\u002Fskills\u002Fhandoff\u002Freceipt-stream\u002FSKILL.md",[],[158,159,143,101,160,31,30,161,27,85,162,163,164,165,86,166,167,168,169,89],"receipt stream","handoff","index","format","repo","closeout","read","channel","embedded","patch","shape","cdd",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":176,"publishedAt":38},"01M6CF84VCBME6RK8V6HAVDM8Z","mid-flight","Mid-flight γ→in-flight-α rescue channel. Use when γ needs to change a load-bearing fact (pinned axis, scope, AC, blocker) after α has begun coding, when γ edits the cycle's GitHub issue body mid-cycle, or when a spec change lands on origin\u002Fmain while α\u002Fβ polling sessions are in-flight.","https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.handoff\u002Fskills\u002Fhandoff\u002Fmid-flight\u002FSKILL.md",[],[177,99,178,179,34,180,31,181,182,147,162,164,86,149,87,183,104,184,185,186],"mid flight","change","sessions","cache","pin","coordination","up","Legacy","gamma","artifact channel"]