[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CF6653TNKYRT93R4P3QE5D":3,"skill-same:01M6CF6653TNKYRT93R4P3QE5D":88},{"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":23,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M6CF6653TNKYRT93R4P3QE5D","code",null,"Ship code where unintended behavior — by machine or maintainer — is unrepresentable. Use before implementing, during review, or pre-ship.","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\u002Fcode\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[5,24,25,26,27,28,29,30,31],"review","implement","ship","how","develop","write","behavior","use","2026-11-10 10:12:30",false,"---\nname: code\ndescription: Ship code where unintended behavior — by machine or maintainer — is unrepresentable. Use before implementing, during review, or pre-ship.\ngoverning_question: How do we ship code where unintended behavior is unrepresentable rather than merely unlikely?\ntriggers: [code, implement, write code, program, develop]\nscope: task-local\n---\n\n# Code\n\n## Core Principle\n\n**Coherent code: unintended behavior — by machine or maintainer — is unrepresentable.**\n\nIf the machine can do something unintended, it's incoherent. If a maintainer can misread the intent, it's incoherent. You're done when neither can go wrong.\n\n## Coherence at Each Level\n\n### 1. Types\n\nConstrain what values can exist.\n\n1.1. **Forbid invalid states**\n  - ❌ `status: string`\n  - ✅ `type status = Pending | Active | Closed`\n\n1.2. **Use structure, not strings**\n  - ❌ `exec (sprintf \"cn %s\" args_str)`\n  - ✅ `Unix.execvp bin_path argv`\n\n1.3. **Embed context in errors**\n  - ❌ `\"Parse error\"`\n  - ✅ `\"Parse error: expected semver, got 'garbage'\"`\n\n1.4. **Name paths explicitly**\n  - ❌ `execvp \"cn\"`\n  - ✅ `execvp \"\u002Fusr\u002Flocal\u002Fbin\u002Fcn\"`\n\n### 2. Functions\n\nConstrain what behavior can occur.\n\n2.1. **Name for the output**\n  - ❌ `process_version()`\n  - ✅ `version_to_tuple()`\n\n2.2. **Pass state, don't hide it**\n  - ❌ `let latest_tag = ref \"\"`\n  - ✅ Return `update_info`, pass to next function\n\n2.3. **Isolate effects**\n  - ❌ Function that parses AND writes AND logs\n  - ✅ `parse` → `decide` → `execute`\n\n2.4. **One abstraction level**\n  - ❌ `Unix.putenv` next to `check_for_update`\n  - ✅ High calls low, not mixed\n\n2.5. **Bound iteration**\n  - ❌ `while true`\n  - ✅ `for i = 1 to max_attempts`\n\n2.6. **Guard re-entry**\n  - ❌ `re_exec()` can loop forever\n  - ✅ Set `RUNNING=1`, check on entry\n\n2.7. **Clean all exits**\n  - ❌ Failure leaves `.new` file\n  - ✅ Remove temp on every path\n\n2.8. **Idempotent operations**\n  - ❌ Append without checking\n  - ✅ Check before mutate\n\n2.9. **Validate before destroy**\n  - ❌ `curl && mv new old`\n  - ✅ `curl && .\u002Fnew --version && mv`\n\n### 3. Modules\n\nConstrain what a maintainer can misunderstand.\n\n3.1. **Group by domain**\n  - ❌ Types at top, functions below\n  - ✅ Type + impl + tests together\n\n3.2. **Helpers near usage**\n  - ❌ `show_tuple` 500 lines away\n  - ✅ `show_tuple` before its tests\n\n3.3. **Docstring states scope**\n  - ❌ No header\n  - ✅ `(** Pure functions only. I\u002FO needs integration tests. *)`\n\n3.4. **Comment the why**\n  - ❌ `(* increment counter *)`\n  - ✅ `(* last — no Unix.unsetenv *)`\n\n3.5. **Document ordering**\n  - ❌ Arbitrary order\n  - ✅ \"This test last — env persists\"\n\n### 4. Boundaries\n\nConstrain what external interactions can occur.\n\n4.1. **Cooldown external calls**\n  - ❌ Check API every heartbeat\n  - ✅ Skip if checked within 1 hour\n\n4.2. **Test garbage inputs**\n  - ❌ Only test \"2.4.3\"\n  - ✅ Test garbage, empty, HTML blob\n\n4.3. **Enumerate failure modes first**\n  - ❌ Implement → \"works\"\n  - ✅ \"What if API returns HTML?\"\n\n4.4. **Pass data via stdin, not args**\n  - ❌ `exec (sprintf \"curl -d '%s'\" body)` — injection risk\n  - ✅ `exec_args ~prog:\"curl\" ~args:[\"--config\"; \"-\"] ~stdin_data:config`\n\n4.5. **Use `data-raw` not `data` for curl**\n  - ❌ `--data` — curl interprets `@filename` as file read\n  - ✅ `--data-raw` — literal bytes, no interpretation\n\n4.6. **Merge stderr into stdout for subprocesses**\n  - ❌ Read stdout then stderr — deadlock if buffer fills\n  - ✅ `create_process prog argv stdin_r stdout_w stdout_w`\n\n4.7. **Default timeouts on all external calls**\n  - ❌ `curl $url` — hangs forever on stall\n  - ✅ `curl --connect-timeout 10 --max-time 120`\n\n4.8. **Verify side effects — don't trust exit codes**\n  - ❌ `git push` returns 0 → assume branch landed\n  - ✅ `git push` then `git ls-remote` to confirm branch exists on remote\n  - Rule: if the side effect matters, verify it independently\n  - From RCA `2026-02-21`: `git push` returned exit code 0 but branches never landed on GitHub. FSM marked messages as \"sent\". Silent data loss for 9 messages.\n\n4.9. **Design for crash recovery**\n  - ❌ Assume the process runs to completion\n  - ✅ Design for resume: check what state exists on entry, pick up from there\n  - Pattern: if output exists → finalize; if input exists → resume LLM call; neither → start fresh\n  - Reference: `cn_runtime.ml` process_one recovery model\n\n4.10. **Graceful degradation for optional inputs**\n  - ❌ `let content = Fs.read path` — crashes if missing\n  - ✅ `let content = if Fs.exists path then Fs.read path else \"\"`\n  - Rule: missing optional files → skip, don't error\n\n4.11. **Retry policy: backoff on transient, fail-fast on permanent**\n  - ❌ Retry all errors the same way\n  - ✅ 5xx\u002Ftimeout → retry 3x with exponential backoff; 4xx → fail immediately\n  - Reference: `cn_llm.ml`, `cn_telegram.ml`\n\n4.12. **Single-line output for injection-prone contexts**\n  - ❌ Multi-line JSON body in curl config → line break terminates directive\n  - ✅ `to_string` guarantees single-line; `curl_quote` escapes `\\` and `\"`\n  - Reference: `cn_json.ml` to_string, `cn_ffi.ml` Http.curl_quote\n\n## Reference\n\nCase study: `references\u002Fauto-update-case.md`\n","# Code\n\n## Core Principle\n\n**Coherent code: unintended behavior — by machine or maintainer — is unrepresentable.**\n\nIf the machine can do something unintended, it's incoherent. If a maintainer can misread the intent, it's incoherent. You're done when neither can go wrong.\n\n## Coherence at Each Level\n\n### 1. Types\n\nConstrain what values can exist.\n\n1.1. **Forbid invalid states**\n  - ❌ `status: string`\n  - ✅ `type status = Pending | Active | Closed`\n\n1.2. **Use structure, not strings**\n  - ❌ `exec (sprintf \"cn %s\" args_str)`\n  - ✅ `Unix.execvp bin_path argv`\n\n1.3. **Embed context in errors**\n  - ❌ `\"Parse error\"`\n  - ✅ `\"Parse error: expected semver, got 'garbage'\"`\n\n1.4. **Name paths explicitly**\n  - ❌ `execvp \"cn\"`\n  - ✅ `execvp \"\u002Fusr\u002Flocal\u002Fbin\u002Fcn\"`\n\n### 2. Functions\n\nConstrain what behavior can occur.\n\n2.1. **Name for the output**\n  - ❌ `process_version()`\n  - ✅ `version_to_tuple()`\n\n2.2. **Pass state, don't hide it**\n  - ❌ `let latest_tag = ref \"\"`\n  - ✅ Return `update_info`, pass to next function\n\n2.3. **Isolate effects**\n  - ❌ Function that parses AND writes AND logs\n  - ✅ `parse` → `decide` → `execute`\n\n2.4. **One abstraction level**\n  - ❌ `Unix.putenv` next to `check_for_update`\n  - ✅ High calls low, not mixed\n\n2.5. **Bound iteration**\n  - ❌ `while true`\n  - ✅ `for i = 1 to max_attempts`\n\n2.6. **Guard re-entry**\n  - ❌ `re_exec()` can loop forever\n  - ✅ Set `RUNNING=1`, check on entry\n\n2.7. **Clean all exits**\n  - ❌ Failure leaves `.new` file\n  - ✅ Remove temp on every path\n\n2.8. **Idempotent operations**\n  - ❌ Append without checking\n  - ✅ Check before mutate\n\n2.9. **Validate before destroy**\n  - ❌ `curl && mv new old`\n  - ✅ `curl && .\u002Fnew --version && mv`\n\n### 3. Modules\n\nConstrain what a maintainer can misunderstand.\n\n3.1. **Group by domain**\n  - ❌ Types at top, functions below\n  - ✅ Type + impl + tests together\n\n3.2. **Helpers near usage**\n  - ❌ `show_tuple` 500 lines away\n  - ✅ `show_tuple` before its tests\n\n3.3. **Docstring states scope**\n  - ❌ No header\n  - ✅ `(** Pure functions only. I\u002FO needs integration tests. *)`\n\n3.4. **Comment the why**\n  - ❌ `(* increment counter *)`\n  - ✅ `(* last — no Unix.unsetenv *)`\n\n3.5. **Document ordering**\n  - ❌ Arbitrary order\n  - ✅ \"This test last — env persists\"\n\n### 4. Boundaries\n\nConstrain what external interactions can occur.\n\n4.1. **Cooldown external calls**\n  - ❌ Check API every heartbeat\n  - ✅ Skip if checked within 1 hour\n\n4.2. **Test garbage inputs**\n  - ❌ Only test \"2.4.3\"\n  - ✅ Test garbage, empty, HTML blob\n\n4.3. **Enumerate failure modes first**\n  - ❌ Implement → \"works\"\n  - ✅ \"What if API returns HTML?\"\n\n4.4. **Pass data via stdin, not args**\n  - ❌ `exec (sprintf \"curl -d '%s'\" body)` — injection risk\n  - ✅ `exec_args ~prog:\"curl\" ~args:[\"--config\"; \"-\"] ~stdin_data:config`\n\n4.5. **Use `data-raw` not `data` for curl**\n  - ❌ `--data` — curl interprets `@filename` as file read\n  - ✅ `--data-raw` — literal bytes, no interpretation\n\n4.6. **Merge stderr into stdout for subprocesses**\n  - ❌ Read stdout then stderr — deadlock if buffer fills\n  - ✅ `create_process prog argv stdin_r stdout_w stdout_w`\n\n4.7. **Default timeouts on all external calls**\n  - ❌ `curl $url` — hangs forever on stall\n  - ✅ `curl --connect-timeout 10 --max-time 120`\n\n4.8. **Verify side effects — don't trust exit codes**\n  - ❌ `git push` returns 0 → assume branch landed\n  - ✅ `git push` then `git ls-remote` to confirm branch exists on remote\n  - Rule: if the side effect matters, verify it independently\n  - From RCA `2026-02-21`: `git push` returned exit code 0 but branches never landed on GitHub. FSM marked messages as \"sent\". Silent data loss for 9 messages.\n\n4.9. **Design for crash recovery**\n  - ❌ Assume the process runs to completion\n  - ✅ Design for resume: check what state exists on entry, pick up from there\n  - Pattern: if output exists → finalize; if input exists → resume LLM call; neither → start fresh\n  - Reference: `cn_runtime.ml` process_one recovery model\n\n4.10. **Graceful degradation for optional inputs**\n  - ❌ `let content = Fs.read path` — crashes if missing\n  - ✅ `let content = if Fs.exists path then Fs.read path else \"\"`\n  - Rule: missing optional files → skip, don't error\n\n4.11. **Retry policy: backoff on transient, fail-fast on permanent**\n  - ❌ Retry all errors the same way\n  - ✅ 5xx\u002Ftimeout → retry 3x with exponential backoff; 4xx → fail immediately\n  - Reference: `cn_llm.ml`, `cn_telegram.ml`\n\n4.12. **Single-line output for injection-prone contexts**\n  - ❌ Multi-line JSON body in curl config → line break terminates directive\n  - ✅ `to_string` guarantees single-line; `curl_quote` escapes `\\` and `\"`\n  - Reference: `cn_json.ml` to_string, `cn_ffi.ml` Http.curl_quote\n\n## Reference\n\nCase study: `references\u002Fauto-update-case.md`\n",{"name":5,"scope":37,"triggers":38,"description":7,"governing_question":41},"task-local",[5,25,39,40,28],"write code","program","How do we ship code where unintended behavior is unrepresentable rather than merely unlikely?","main","fb527e6c4bfb75c71fa75d6471b3aa3da32106d4","src\u002Fpackages\u002Fcnos.eng\u002Fskills\u002Feng\u002Fcode",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":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add usurobor\u002Fcnos --skill code",{"tool":56,"command":57},"bunx","bunx skills add usurobor\u002Fcnos --skill code",{"tool":59,"command":60},"pnpm","pnpm dlx skills add usurobor\u002Fcnos --skill code","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.eng\u002Fskills\u002Feng\u002Fcode\u002FSKILL.md",true,[64,70,76,80,84],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"agents\u002Fopenai.yaml","REFERENCE","参考文档",238,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002F1139030773-cmd\u002Fagent-workflow-system\u002Fskills\u002Fagent-project-master\u002Fagents\u002Fopenai.yaml",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"icon.svg","ASSET","资产文件",352,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002F1139030773-cmd\u002Fagent-workflow-system\u002Fskills\u002Fagent-project-master\u002Ficon.svg",{"path":77,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":78,"sourceHtmlUrl":79},"manifest.json",268,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002F1139030773-cmd\u002Fagent-workflow-system\u002Fskills\u002Fagent-project-master\u002Fmanifest.json",{"path":81,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":82,"sourceHtmlUrl":83},"README.md",260,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002F1139030773-cmd\u002Fagent-workflow-system\u002Fskills\u002Fagent-project-master\u002FREADME.md",{"path":85,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fauto-update-case.md",1051,"https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.eng\u002Fskills\u002Feng\u002Fcode\u002Freferences\u002Fauto-update-case.md",[89,106,122,148,165,186],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":32},"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",[],[96,97,98,99,100,27,101,102,31,103,104,105],"triage","issues","issues triage","issue triage","SET","decision","public","dispatch","issue","doctrine",{"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":112,"publishedAt":32},"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",[],[97,113,114,115,116,117,100,118,102,119,31,103,120,104,121],"taxonomy","issues taxonomy","github","status","protocol","open","board","github issue","issue labels",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":136,"publishedAt":32},"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",[128,133],{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000037","律师与法务",[97,137,115,138,139,140,100,141,113,118,27,142,143,119,144,145,146,147,31,104],"issues map","reasoning","data","pipeline","api","json","README","edit","interactive","fetch","generated",{"skillNo":149,"name":97,"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":32},"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",[],[97,115,154,155,156,157,158,159,160,113,118,27,101,161,143,162,31,163,103,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":32},"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,117,174,27,175,176,177,102,178,179,180,181,31,182,183,184,185,105],"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":32},"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,115,194,195,196,197,27,198,199,161,178,180,31,163,103,200,120,201,202,203],"mid flight","change","sessions","file","cache","pin","coordination","up","Legacy","gamma","artifact channel"]