[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CF05DNHXY4TVWN1TGG3FBW":3,"skill-same:01M6CF05DNHXY4TVWN1TGG3FBW":78},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6CF05DNHXY4TVWN1TGG3FBW","issue\u002Fconstraints",null,"Write the constraint sections of a cnos issue — constraint strata, exceptions, path resolution, and cross-surface projections.","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.cdd\u002Fskills\u002Fcdd\u002Fissue\u002Fconstraints\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"constraints","issue","issue constraints","acceptance","compliance","verify","how","write","list","example","embedded","gate","surfaces","document","2026-11-10 10:12:30",false,"---\nname: issue\u002Fconstraints\ndescription: Write the constraint sections of a cnos issue — constraint strata, exceptions, path resolution, and cross-surface projections.\nartifact_class: skill\nkata_surface: embedded\ngoverning_question: How does γ define and document constraints so α cannot inadvertently violate them and β can verify compliance?\nvisibility: internal\nparent: issue\ntriggers:\n  - constraint strata\n  - exceptions\n  - path resolution\n  - cross-surface\nscope: task-local\ninputs:\n  - scope\n  - acceptance criteria\n  - affected runtime surfaces\noutputs:\n  - constraint strata section (hard gate \u002F exception-backed \u002F optional \u002F validated-if-present \u002F deferred)\n  - exceptions ledger\n  - path resolution rule with example\n  - cross-surface projection list\n---\n\n# Issue Constraints\n\n## Core Principle\n\nConstraints protect invariants. A constraint that cannot be violated is not a constraint — it is a fact. A constraint that can be violated but goes undetected is silent technical debt.\n\nFailure mode: **exception theater** — exceptions hide the rule instead of documenting temporary debt.\n\n---\n\n## 1. Define\n\n### 1.1 Identify the parts\n\nThe constraint surface of an issue has:\n\n- **Constraint strata** — what is hard-gated vs. exception-backed vs. optional vs. validated-if-present vs. deferred\n- **Exceptions ledger** — field-specific exceptions with reason and removal condition\n- **Path resolution** — how implementers resolve relative paths\n- **Cross-surface projections** — all surfaces that must update when one surface changes\n\n### 1.2 Articulate how they fit\n\nStrata name the enforcement model. Exceptions document permitted violations and their removal conditions. Path resolution prevents mis-implementation when multiple bases are possible. Cross-surface projections prevent incomplete updates.\n\n### 1.3 Name the failure mode\n\nConstraints fail through:\n\n- **Exception blanket** — one exception covers a whole file instead of specific fields\n- **Stale path base** — issue says \"relative to the skill's directory\" but no example is given\n- **Missing projection** — CI job added but notification aggregation not updated\n- **Deferred field as hard gate** — a field marked deferred appears in a hard-gate check\n\n---\n\n## 2. Unfold\n\n### 2.1 Constraint strata\n\nStratify every rule the issue defines or enforces:\n\n| Stratum | Meaning |\n|---|---|\n| **Hard gate** | Failure if missing or violated; no exception |\n| **Exception-backed** | Failure unless explicitly listed with reason |\n| **Optional\u002Fdefaulted** | May be omitted; default or absence semantics defined |\n| **Validated if present** | Not required, but checked when declared |\n| **Ignored\u002Fdeferred** | Explicitly not checked in this issue |\n\n```markdown\n## Constraint strata\n\nHard gate:\n- name\n- description\n- governing_question\n\nException-backed:\n- artifact_class\n- kata_surface\n\nOptional\u002Fdefaulted:\n- visibility (default: internal)\n\nValidated if present:\n- calls\n- calls_dynamic\n\nIgnored\u002Fdeferred:\n- CTB v0.2 witnessed close-out semantics\n```\n\nRules:\n\n- Hard-gate fields cannot appear in exceptions.\n- Exception-backed fields require field-specific (not file-level) exceptions.\n- Optional\u002Fdefaulted fields must name the default.\n- Validated-if-present fields must name what is checked.\n- Deferred fields must be explicitly listed as not enforced in this issue.\n\n- ❌ Hard gate: `artifact_class` AND exception example shows `artifact_class` as `allowed_missing`.\n- ✅ Hard gate: `name`, `description`; Exception-backed: `artifact_class` with a specific path and reason.\n\n### 2.2 Exceptions ledger\n\nExceptions are debt, not permission to ignore the rule.\n\n```json\n[\n  {\n    \"path\": \"src\u002Fpackages\u002Fcnos.core\u002Fskills\u002Fexample\u002FSKILL.md\",\n    \"allowed_missing\": [\"artifact_class\", \"kata_surface\"],\n    \"reason\": \"Legacy skill; v0.1 migration pending\",\n    \"spec_ref\": \"docs\u002Freference\u002Fctb\u002FLANGUAGE-SPEC.md §2.1\",\n    \"owner\": \"cnos.core\",\n    \"remove_when\": \"frontmatter migration completes\"\n  }\n]\n```\n\nRules:\n\n- Exceptions are field-specific, not whole-file blanket passes.\n- Every exception needs a reason.\n- Include `remove_when` or a follow-up issue reference.\n- Exception examples must not contradict hard-gate rules.\n\n- ❌ `{ \"path\": \"src\u002F...\", \"ignore\": true }`\n- ✅ `{ \"path\": \"src\u002F...\", \"allowed_missing\": [\"artifact_class\"], \"reason\": \"Legacy skill\", \"remove_when\": \"migration completes\" }`\n\n### 2.3 Path resolution semantics\n\nWhen an issue asks implementers to validate paths, load files, resolve calls, or traverse directories, it must define the resolution base.\n\nQuestions to answer:\n\n- Is the path repo-root-relative? Package-root-relative? Caller-file-relative?\n- CWD-relative? Branch-relative? Generated-artifact-relative?\n\nInclude at least one concrete resolution example.\n\n- ❌ `Validate each target file exists relative to the skill's parent directory.`\n- ✅ `Validate static calls targets relative to the package skill root. Example: src\u002Fpackages\u002Fcnos.cdd\u002Fskills\u002Fcdd\u002Falpha\u002FSKILL.md with calls: design\u002FSKILL.md resolves to: src\u002Fpackages\u002Fcnos.cdd\u002Fskills\u002Fcdd\u002Fdesign\u002FSKILL.md`\n\n### 2.4 Cross-surface projections\n\nWhen an issue changes a surface that appears in more than one place, name all projections.\n\n| Change | Surfaces to update |\n|---|---|\n| CI job added | workflow job; notification aggregation; local command; expected diagnostics; link\u002Fcheck job |\n| README source map changed | root README; docs\u002FREADME; link checker; status labels |\n| Schema added | schema; fixtures; exceptions; docs; CI invocation |\n| New command or runtime surface | help text; doctor; status; operator docs |\n\n- ❌ `Add CI job I5.`\n- ✅ `Add CI job I5 and update notify job status aggregation so failure summaries include I5.`\n\n---\n\n## 3. Rules\n\n3.1. **Hard gates have no exceptions.** If a rule admits exceptions, it is not a hard gate.\n\n3.2. **Exceptions are field-specific.** Blanket file-level passes are incoherent. Exceptions must name the specific fields allowed to be missing.\n\n3.3. **Every exception has a reason and a removal condition.** Exceptions without `remove_when` or a follow-up issue are permanent debt.\n\n3.4. **Path resolution must name the base and give an example.** Prose that says \"relative to X\" without an example will produce mis-implementation.\n\n3.5. **Cross-surface projections must be enumerated.** If a change affects CI, docs, runtime status, commands, schemas, or source maps, name every surface that must also update.\n\n---\n\n## 4. Kata\n\n### Scenario\n\nYou are filing an issue to add a CUE schema for SKILL.md frontmatter validation. The schema has three hard-gate fields (`name`, `description`, `governing_question`) and two exception-backed fields (`artifact_class`, `kata_surface`). The CI job validates files under `src\u002Fpackages\u002F`. A CI notification job aggregates job statuses.\n\n### Task\n\nWrite:\n\n- constraint strata (all five levels, with at least one entry each or explicit \"none\")\n- one exception ledger entry for a legacy skill missing `artifact_class`\n- path resolution rule with example\n- cross-surface projection list\n\n### Expected artifacts\n\n- Strata that do not list a hard-gate field in the exceptions entry.\n- Exception with `allowed_missing`, `reason`, and `remove_when`.\n- Path resolution with a concrete before\u002Fafter example.\n- Cross-surface list that includes the notification aggregation job.\n\n### Common failures\n\n- Hard gate lists `artifact_class`, but the exception entry also lists `artifact_class` as `allowed_missing`.\n- Exception is `{ \"ignore\": true }` without field specificity.\n- Path resolution says \"relative to the skill root\" without an example.\n- Cross-surface list names the CI job but not the notification aggregation.\n","# Issue Constraints\n\n## Core Principle\n\nConstraints protect invariants. A constraint that cannot be violated is not a constraint — it is a fact. A constraint that can be violated but goes undetected is silent technical debt.\n\nFailure mode: **exception theater** — exceptions hide the rule instead of documenting temporary debt.\n\n---\n\n## 1. Define\n\n### 1.1 Identify the parts\n\nThe constraint surface of an issue has:\n\n- **Constraint strata** — what is hard-gated vs. exception-backed vs. optional vs. validated-if-present vs. deferred\n- **Exceptions ledger** — field-specific exceptions with reason and removal condition\n- **Path resolution** — how implementers resolve relative paths\n- **Cross-surface projections** — all surfaces that must update when one surface changes\n\n### 1.2 Articulate how they fit\n\nStrata name the enforcement model. Exceptions document permitted violations and their removal conditions. Path resolution prevents mis-implementation when multiple bases are possible. Cross-surface projections prevent incomplete updates.\n\n### 1.3 Name the failure mode\n\nConstraints fail through:\n\n- **Exception blanket** — one exception covers a whole file instead of specific fields\n- **Stale path base** — issue says \"relative to the skill's directory\" but no example is given\n- **Missing projection** — CI job added but notification aggregation not updated\n- **Deferred field as hard gate** — a field marked deferred appears in a hard-gate check\n\n---\n\n## 2. Unfold\n\n### 2.1 Constraint strata\n\nStratify every rule the issue defines or enforces:\n\n| Stratum | Meaning |\n|---|---|\n| **Hard gate** | Failure if missing or violated; no exception |\n| **Exception-backed** | Failure unless explicitly listed with reason |\n| **Optional\u002Fdefaulted** | May be omitted; default or absence semantics defined |\n| **Validated if present** | Not required, but checked when declared |\n| **Ignored\u002Fdeferred** | Explicitly not checked in this issue |\n\n```markdown\n## Constraint strata\n\nHard gate:\n- name\n- description\n- governing_question\n\nException-backed:\n- artifact_class\n- kata_surface\n\nOptional\u002Fdefaulted:\n- visibility (default: internal)\n\nValidated if present:\n- calls\n- calls_dynamic\n\nIgnored\u002Fdeferred:\n- CTB v0.2 witnessed close-out semantics\n```\n\nRules:\n\n- Hard-gate fields cannot appear in exceptions.\n- Exception-backed fields require field-specific (not file-level) exceptions.\n- Optional\u002Fdefaulted fields must name the default.\n- Validated-if-present fields must name what is checked.\n- Deferred fields must be explicitly listed as not enforced in this issue.\n\n- ❌ Hard gate: `artifact_class` AND exception example shows `artifact_class` as `allowed_missing`.\n- ✅ Hard gate: `name`, `description`; Exception-backed: `artifact_class` with a specific path and reason.\n\n### 2.2 Exceptions ledger\n\nExceptions are debt, not permission to ignore the rule.\n\n```json\n[\n  {\n    \"path\": \"src\u002Fpackages\u002Fcnos.core\u002Fskills\u002Fexample\u002FSKILL.md\",\n    \"allowed_missing\": [\"artifact_class\", \"kata_surface\"],\n    \"reason\": \"Legacy skill; v0.1 migration pending\",\n    \"spec_ref\": \"docs\u002Freference\u002Fctb\u002FLANGUAGE-SPEC.md §2.1\",\n    \"owner\": \"cnos.core\",\n    \"remove_when\": \"frontmatter migration completes\"\n  }\n]\n```\n\nRules:\n\n- Exceptions are field-specific, not whole-file blanket passes.\n- Every exception needs a reason.\n- Include `remove_when` or a follow-up issue reference.\n- Exception examples must not contradict hard-gate rules.\n\n- ❌ `{ \"path\": \"src\u002F...\", \"ignore\": true }`\n- ✅ `{ \"path\": \"src\u002F...\", \"allowed_missing\": [\"artifact_class\"], \"reason\": \"Legacy skill\", \"remove_when\": \"migration completes\" }`\n\n### 2.3 Path resolution semantics\n\nWhen an issue asks implementers to validate paths, load files, resolve calls, or traverse directories, it must define the resolution base.\n\nQuestions to answer:\n\n- Is the path repo-root-relative? Package-root-relative? Caller-file-relative?\n- CWD-relative? Branch-relative? Generated-artifact-relative?\n\nInclude at least one concrete resolution example.\n\n- ❌ `Validate each target file exists relative to the skill's parent directory.`\n- ✅ `Validate static calls targets relative to the package skill root. Example: src\u002Fpackages\u002Fcnos.cdd\u002Fskills\u002Fcdd\u002Falpha\u002FSKILL.md with calls: design\u002FSKILL.md resolves to: src\u002Fpackages\u002Fcnos.cdd\u002Fskills\u002Fcdd\u002Fdesign\u002FSKILL.md`\n\n### 2.4 Cross-surface projections\n\nWhen an issue changes a surface that appears in more than one place, name all projections.\n\n| Change | Surfaces to update |\n|---|---|\n| CI job added | workflow job; notification aggregation; local command; expected diagnostics; link\u002Fcheck job |\n| README source map changed | root README; docs\u002FREADME; link checker; status labels |\n| Schema added | schema; fixtures; exceptions; docs; CI invocation |\n| New command or runtime surface | help text; doctor; status; operator docs |\n\n- ❌ `Add CI job I5.`\n- ✅ `Add CI job I5 and update notify job status aggregation so failure summaries include I5.`\n\n---\n\n## 3. Rules\n\n3.1. **Hard gates have no exceptions.** If a rule admits exceptions, it is not a hard gate.\n\n3.2. **Exceptions are field-specific.** Blanket file-level passes are incoherent. Exceptions must name the specific fields allowed to be missing.\n\n3.3. **Every exception has a reason and a removal condition.** Exceptions without `remove_when` or a follow-up issue are permanent debt.\n\n3.4. **Path resolution must name the base and give an example.** Prose that says \"relative to X\" without an example will produce mis-implementation.\n\n3.5. **Cross-surface projections must be enumerated.** If a change affects CI, docs, runtime status, commands, schemas, or source maps, name every surface that must also update.\n\n---\n\n## 4. Kata\n\n### Scenario\n\nYou are filing an issue to add a CUE schema for SKILL.md frontmatter validation. The schema has three hard-gate fields (`name`, `description`, `governing_question`) and two exception-backed fields (`artifact_class`, `kata_surface`). The CI job validates files under `src\u002Fpackages\u002F`. A CI notification job aggregates job statuses.\n\n### Task\n\nWrite:\n\n- constraint strata (all five levels, with at least one entry each or explicit \"none\")\n- one exception ledger entry for a legacy skill missing `artifact_class`\n- path resolution rule with example\n- cross-surface projection list\n\n### Expected artifacts\n\n- Strata that do not list a hard-gate field in the exceptions entry.\n- Exception with `allowed_missing`, `reason`, and `remove_when`.\n- Path resolution with a concrete before\u002Fafter example.\n- Cross-surface list that includes the notification aggregation job.\n\n### Common failures\n\n- Hard gate lists `artifact_class`, but the exception entry also lists `artifact_class` as `allowed_missing`.\n- Exception is `{ \"ignore\": true }` without field specificity.\n- Path resolution says \"relative to the skill root\" without an example.\n- Cross-surface list names the CI job but not the notification aggregation.\n",{"name":5,"scope":38,"inputs":39,"parent":20,"outputs":43,"triggers":48,"visibility":53,"description":7,"kata_surface":29,"artifact_class":54,"governing_question":55},"task-local",[40,41,42],"scope","acceptance criteria","affected runtime surfaces",[44,45,46,47],"constraint strata section (hard gate \u002F exception-backed \u002F optional \u002F validated-if-present \u002F deferred)","exceptions ledger","path resolution rule with example","cross-surface projection list",[49,50,51,52],"constraint strata","exceptions","path resolution","cross-surface","internal","skill","How does γ define and document constraints so α cannot inadvertently violate them and β can verify compliance?","main","fb527e6c4bfb75c71fa75d6471b3aa3da32106d4","src\u002Fpackages\u002Fcnos.cdd\u002Fskills\u002Fcdd\u002Fissue\u002Fconstraints",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":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add usurobor\u002Fcnos --skill issue\u002Fconstraints",{"tool":70,"command":71},"bunx","bunx skills add usurobor\u002Fcnos --skill issue\u002Fconstraints",{"tool":73,"command":74},"pnpm","pnpm dlx skills add usurobor\u002Fcnos --skill issue\u002Fconstraints","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.cdd\u002Fskills\u002Fcdd\u002Fissue\u002Fconstraints\u002FSKILL.md",true,[],[79,96,112,140,157,177],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":33},"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",[],[86,87,88,89,90,25,91,92,93,94,20,95],"triage","issues","issues triage","issue triage","SET","decision","public","use","dispatch","doctrine",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":33},"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",[],[87,103,104,105,106,107,90,108,92,109,93,94,110,20,111],"taxonomy","issues taxonomy","github","status","protocol","open","board","github issue","issue labels",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":128,"publishedAt":33},"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",[118,123],{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[87,129,105,130,131,132,90,133,103,108,25,134,135,109,136,137,138,139,93,20],"issues map","reasoning","data","pipeline","api","json","README","edit","interactive","fetch","generated",{"skillNo":141,"name":87,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":33},"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",[],[87,105,146,147,148,149,150,151,152,103,108,25,91,153,135,154,93,155,94,156],"pr","current state","run","artifacts","state","package","boundary","branch","command","only","cds",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":33},"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",[],[164,165,149,107,166,25,167,168,169,92,170,171,172,173,93,29,174,175,176,95],"receipt stream","handoff","index","learning","format","trace","repo","closeout","read","channel","patch","shape","cdd",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":33},"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",[],[184,105,185,186,187,188,25,189,190,153,170,172,93,155,94,191,110,192,193,194],"mid flight","change","sessions","file","cache","pin","coordination","up","Legacy","gamma","artifact channel"]