[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CF6DMJ6GH3QF3ZZNXKX28F":3,"skill-same:01M6CF6DMJ6GH3QF3ZZNXKX28F":85},{"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":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M6CF6DMJ6GH3QF3ZZNXKX28F","follow-up",null,"Check that prior work actually held — verify the claim landed, the consumer sees it, and nothing regressed.","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.eng\u002Fskills\u002Feng\u002Ffollow-up\u002FSKILL.md",[],[19,20,21,22,23,24,25],"up","follow up","verify","how","loop","work","check","2026-11-10 10:12:30",false,"---\nname: follow-up\ndescription: Check that prior work actually held — verify the claim landed, the consumer sees it, and nothing regressed.\ngoverning_question: How do we close the loop on prior work without leaving silent regressions or unverified claims?\ntriggers: [follow up, check, verify, confirm, track]\nscope: task-local\n---\n\n# Follow-Up Skill\n\n## Purpose\n\nEnsure Eng doesn't go dark. If no update for 1 hour on active work, ping for status.\n\n## Trigger\n\nOn heartbeat, check:\n1. Is there active work assigned to Eng?\n2. When was last update (commit, inbox message, or thread update)?\n3. If >1 hour since last update → ping Eng\n\n## How to Check\n\n```bash\n# Check Eng's last commit\ncd \u003Ceng-hub-clone> && git fetch origin && git log -1 --format=\"%cr\" origin\u002Fmain\n\n# Check Eng's inbox for responses\nls -lt \u003Cyour-hub>\u002Fthreads\u002Finbox\u002F | head -5\n\n# Check Eng's daily thread timestamp\nstat \u003Ceng-hub-clone>\u002Fthreads\u002Fdaily\u002F$(date +%Y%m%d).md\n```\n\n## Ping Template\n\nWrite to `threads\u002Foutbox\u002Feng-status-check.md`:\n\n```markdown\n# Status Check\n\n**To:** [Eng name]\n**Re:** [Active work item]\n\nNo update in >1 hour. Status?\n\n- Blocked?\n- In progress?\n- Need anything?\n```\n\nThen push:\n```bash\ncd \u003Cyour-hub> && git add -A && git commit -m \"outbox: status check to Eng\" && git push\n```\n\n## Escalation\n\n**Escalate to human immediately when:**\n- Eng is blocked on P0\u002FP1 and not responding\n- Work is stalled >1 hour with no update\n- Multiple pings ignored\n\nDon't wait for 2+ hours on blockers. Human attention is cheaper than stalled work.\n\n**How to escalate:**\n1. State the blocker clearly\n2. State what you've tried (pings sent, inbox checked)\n3. Ask human to intervene\n\n## Anti-Patterns\n\n| Smell | Fix |\n|-------|-----|\n| Pinging every 10 minutes | 1 hour minimum |\n| Pinging when no active work | Only ping if work is assigned |\n| Assuming blocked without asking | Ask first |\n","# Follow-Up Skill\n\n## Purpose\n\nEnsure Eng doesn't go dark. If no update for 1 hour on active work, ping for status.\n\n## Trigger\n\nOn heartbeat, check:\n1. Is there active work assigned to Eng?\n2. When was last update (commit, inbox message, or thread update)?\n3. If >1 hour since last update → ping Eng\n\n## How to Check\n\n```bash\n# Check Eng's last commit\ncd \u003Ceng-hub-clone> && git fetch origin && git log -1 --format=\"%cr\" origin\u002Fmain\n\n# Check Eng's inbox for responses\nls -lt \u003Cyour-hub>\u002Fthreads\u002Finbox\u002F | head -5\n\n# Check Eng's daily thread timestamp\nstat \u003Ceng-hub-clone>\u002Fthreads\u002Fdaily\u002F$(date +%Y%m%d).md\n```\n\n## Ping Template\n\nWrite to `threads\u002Foutbox\u002Feng-status-check.md`:\n\n```markdown\n# Status Check\n\n**To:** [Eng name]\n**Re:** [Active work item]\n\nNo update in >1 hour. Status?\n\n- Blocked?\n- In progress?\n- Need anything?\n```\n\nThen push:\n```bash\ncd \u003Cyour-hub> && git add -A && git commit -m \"outbox: status check to Eng\" && git push\n```\n\n## Escalation\n\n**Escalate to human immediately when:**\n- Eng is blocked on P0\u002FP1 and not responding\n- Work is stalled >1 hour with no update\n- Multiple pings ignored\n\nDon't wait for 2+ hours on blockers. Human attention is cheaper than stalled work.\n\n**How to escalate:**\n1. State the blocker clearly\n2. State what you've tried (pings sent, inbox checked)\n3. Ask human to intervene\n\n## Anti-Patterns\n\n| Smell | Fix |\n|-------|-----|\n| Pinging every 10 minutes | 1 hour minimum |\n| Pinging when no active work | Only ping if work is assigned |\n| Assuming blocked without asking | Ask first |\n",{"name":5,"scope":31,"triggers":32,"description":7,"governing_question":35},"task-local",[20,25,21,33,34],"confirm","track","How do we close the loop on prior work without leaving silent regressions or unverified claims?","main","fb527e6c4bfb75c71fa75d6471b3aa3da32106d4","src\u002Fpackages\u002Fcnos.eng\u002Fskills\u002Feng\u002Ffollow-up",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":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add usurobor\u002Fcnos --skill follow-up",{"tool":50,"command":51},"bunx","bunx skills add usurobor\u002Fcnos --skill follow-up",{"tool":53,"command":54},"pnpm","pnpm dlx skills add usurobor\u002Fcnos --skill follow-up","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.eng\u002Fskills\u002Feng\u002Ffollow-up\u002FSKILL.md",true,[58,64,69,73,77,81],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"CHANGELOG.md","REFERENCE","参考文档",41,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkucoin-official-convert\u002FCHANGELOG.md",{"path":65,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"LICENSE","许可证",1072,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkucoin-official-convert\u002FLICENSE",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"LICENSE.md",1063,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkucoin-official-convert\u002FLICENSE.md",{"path":74,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Fauthentication.md",3395,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkucoin-official-convert\u002Freferences\u002Fauthentication.md",{"path":78,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":79,"sourceHtmlUrl":80},"SOURCE.md",169,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkucoin-official-convert\u002FSOURCE.md",{"path":82,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":83,"sourceHtmlUrl":84},"TRUST.auto.yaml",2232,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkucoin-official-convert\u002FTRUST.auto.yaml",[86,104,120,148,165,186],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":26},"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",[],[93,94,95,96,97,22,98,99,100,101,102,103],"triage","issues","issues triage","issue triage","SET","decision","public","use","dispatch","issue","doctrine",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":26},"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",[],[94,111,112,113,114,115,97,116,99,117,100,101,118,102,119],"taxonomy","issues taxonomy","github","status","protocol","open","board","github issue","issue labels",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":136,"publishedAt":26},"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",[126,131],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":132,"categoryName":133,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[94,137,113,138,139,140,97,141,111,116,22,142,143,117,144,145,146,147,100,102],"issues map","reasoning","data","pipeline","api","json","README","edit","interactive","fetch","generated",{"skillNo":149,"name":94,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":26},"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",[],[94,113,154,155,156,157,158,159,160,111,116,22,98,161,143,162,100,163,101,164],"pr","current state","run","artifacts","state","package","boundary","branch","command","only","cds",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":26},"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",[],[172,173,157,115,174,22,175,176,177,99,178,179,180,181,100,182,183,184,185,103],"receipt stream","handoff","index","learning","format","trace","repo","closeout","read","channel","embedded","patch","shape","cdd",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":26},"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",[],[193,113,194,195,196,197,22,198,199,161,178,180,100,163,101,19,118,200,201,202],"mid flight","change","sessions","file","cache","pin","coordination","Legacy","gamma","artifact channel"]