[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CF3CS7CY6BY2SR7F0D432H":3,"skill-same:01M6CF3CS7CY6BY2SR7F0D432H":185},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6CF3CS7CY6BY2SR7F0D432H","agent-ops",null,"Operations an agent can request via state\u002Foutput.md.","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\u002Fagent-ops\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"agent ops","ops","README","activate","activation","hub","maintenance","only","operations","execute","go","cmd","src","how","agent runtime","harness","state","doctor","ml","status","2026-11-10 10:12:30",false,"---\nname: agent-ops\ndescription: Operations an agent can request via state\u002Foutput.md.\ngoverning_question: How does the agent declare an op on output.md so the harness can route and execute it?\ntriggers: [ops, status, doctor, hub, maintenance]\nscope: task-local\nactivation_status: on-demand — not activation-loaded since cycle\u002F385. Describes the OCaml-era daemon contract (src\u002Focaml\u002Fcmd\u002Fcn_agent.ml, src\u002Focaml\u002Flib\u002Fcn_lib.ml). Not load-bearing for the current Go activation path (src\u002Fgo\u002Finternal\u002Factivate\u002Factivate.go). Kept for the planned cn agent runtime per README. Load on-demand only.\n---\n\n# Agent Ops\n\nOperations an agent can request via `state\u002Foutput.md`.\n\n---\n\n## Overview\n\nWhen processing input.md, the agent writes output.md with:\n1. Required `id` field matching input's id\n2. Optional legacy coordination operation fields in frontmatter\n3. Optional typed capability ops in `ops:`\n4. Response body\n\n`cn` parses output.md and executes any valid operations found.\n\nThere are **two layers**:\n\n1. **Legacy coordination ops** — reply, send, done, defer, etc.\n2. **Typed capability ops** — CN Shell observe\u002Feffect requests in `ops:`\n\nUse coordination ops for thread \u002F routing \u002F lifecycle intent.\nUse typed ops when you need `cn` to inspect or mutate governed workspace state.\n\n## Legacy Coordination Ops\n\nAll operations go in output.md frontmatter as `key: value`.\n\n### ack\n\nAcknowledge input without further action.\n\n```yaml\nack: \u003Cinput-id>\n```\n\n### done\n\nMark input or thread as complete.\n\n```yaml\ndone: \u003Cid>\n```\n\n### fail\n\nReport failure to process, with reason.\n\n```yaml\nfail: \u003Cid>|\u003Creason>\n```\n\nExample: `fail: review-123|missing context`\n\n### reply\n\nAppend reply to an existing thread.\n\n```yaml\nreply: \u003Cthread-id>|\u003Cmessage>\n```\n\n### send\n\nSend message to a peer (queues to outbox).\n\n```yaml\nsend: \u003Cpeer>|\u003Cmessage>\nsend: \u003Cpeer>|\u003Cmessage>|\u003Cbody>\n```\n\n- `message` — brief summary (appears in notification)\n- `body` — full response text (optional, but recommended for detailed replies)\n\nIf body is omitted but output.md has content below frontmatter, that content SHOULD be used as body.\n\n### delegate\n\nForward thread to another agent.\n\n```yaml\ndelegate: \u003Cthread-id>|\u003Cpeer>\n```\n\n### defer\n\nPostpone thread until later.\n\n```yaml\ndefer: \u003Cid>\ndefer: \u003Cid>|\u003Cuntil>\n```\n\n### delete\n\nDiscard a thread.\n\n```yaml\ndelete: \u003Cid>\n```\n\n### surface (alias: mca)\n\nSurface an MCA for community pickup.\n\n```yaml\nsurface: \u003Cdescription>\nmca: \u003Cdescription>\n```\n\n## Example Output\n\n```markdown\n---\nid: review-pi-proposal\ndone: review-pi-proposal\nsurface: Add retry logic to wake mechanism\n---\n\n# Review Complete\n\nReviewed Pi's proposal. Approved with minor suggestions.\n\nThe wake mechanism could use retry logic - surfacing as MCA.\n```\n\n## Typed Capability Ops (ops:)\n\nTyped capability requests go in a single-line JSON array in frontmatter:\n\n```markdown\n---\nid: review-pi-proposal\nops: [{\"kind\":\"fs_read\",\"path\":\"src\u002Fagent\u002Fmindsets\u002FCOHERENCE.md\"}]\n---\nI need to inspect the coherence mindset before deciding.\n```\n\n### Important\n\n- `ops:` MUST be frontmatter, not body text\n- `ops:` MUST be JSON, not XML, not YAML, not pseudo-code\n- Do not invent wrappers like `\u003Cobserve>...\u003C\u002Fobserve>`\n- Do not emit shell commands like `cat file` or `git diff`\n\n### Common observe ops\n\n- `fs_read`\n- `fs_list`\n- `fs_glob`\n- `git_status`\n- `git_diff`\n- `git_log`\n- `git_grep`\n\n### Common effect ops\n\n- `fs_write`\n- `fs_patch`\n- `git_branch`\n- `git_commit`\n- `exec` (only when explicitly enabled by runtime policy)\n\n### Example: ask to inspect a file\n\n```markdown\n---\nid: wisdom-check-001\nreply: wisdom-check-001|Gathering the relevant file first\nops: [{\"kind\":\"fs_read\",\"path\":\"src\u002Fagent\u002Fmindsets\u002FCOHERENCE.md\"}]\n---\nI want to read the coherence mindset before I answer.\n```\n\n### Example: ask to inspect, then later patch\n\nPass A:\n\n```markdown\n---\nid: fix-readme-001\nops: [{\"kind\":\"fs_read\",\"path\":\"README.md\"}]\n---\nLet me inspect the README first.\n```\n\nPass B (after cn feeds back evidence):\n\n```markdown\n---\nid: fix-readme-001\nreply: fix-readme-001|I prepared a patch\nops: [{\"kind\":\"fs_patch\",\"op_id\":\"patch-001\",\"path\":\"README.md\",\"unified_diff\":\"...\"}]\n---\nHere is the proposed README fix.\n```\n\n### When to use which layer\n\n- Need to reply \u002F route \u002F complete \u002F defer → use legacy coordination ops\n- Need to read \u002F diff \u002F patch \u002F branch \u002F commit \u002F exec → use `ops:`\n\n### N-pass intuition\n\nIf you request observe ops, `cn` runs a bounded N-pass loop so you can see the evidence\nbefore proposing effects. Do not assume you can observe and mutate in one step.\nThe loop continues (up to `max_passes`) as long as there are typed ops to execute.\n\n## Rules\n\n1. `id` field is required and must match input's id\n2. Multiple operations are allowed in a single output\n3. Legacy coordination ops execute in frontmatter order\n4. Typed capability ops are validated under policy; unknown or invalid ops are denied\n5. IO pair is archived to logs\u002Finput\u002F + logs\u002Foutput\u002F before executing effects (per TRACEABILITY.md §11.1 — IO-pair evidence layer)\n6. `cn` logs operations to system log (stdout, captured by systemd\u002Fcron)\n7. Never emit XML-style pseudo-tool syntax\n\n## RACI: A vs I\n\nWhen assigning work or escalating issues:\n\n| If you... | You are... |\n|-----------|------------|\n| Can investigate\u002Fact yourself | **A** (Accountable) — own it |\n| Cannot act, only need to know | **I** (Informed) — receive updates |\n\n**The test:** \"Can I do something about this myself?\"\n- Yes → You're A. Do it.\n- No → You're I. Pass it with clear reason why you can't act.\n\n**Anti-pattern:** Filing issues as \"I\" when you could investigate. This passes the buck.\n\n**Example:**\n- ❌ \"Version string bug. Sigma to investigate.\" (passing as I)\n- ✅ \"Version string bug. I found: binary reports 2.1.21, dune-project has 2.1.22. Root cause: cn_lib.ml not bumped. Fix: bump + rebuild + republish.\" (owned as A, then delegated with context)\n\n## When You See Something, Say Something\n\nIf you observe an issue — don't just note it and move on.\n\n**The problem:** Noticing something broken, marking it \"already handled\" or \"not my job,\" and continuing. The issue rots. No one owns it.\n\n**The MCA when you observe an issue:**\n\n1. **Capture it** — Write a clear description: what's broken, repro steps, impact\n2. **Assign it** — Route to the right owner (use `send:` or `surface:`)\n3. **Track it** — Add to backlog with priority\n4. **Follow up** — Don't let it rot\n\n**Example:**\n\nYou notice `input.md` hasn't cleared in 45 hours despite `output.md` being written.\n\n❌ **Wrong:** \"Same stale input, already processed. HEARTBEAT_OK.\"\n(You noted it. You moved on. The issue persists.)\n\n✅ **Right:** \n```yaml\nsurface: Actor model stuck — input.md not clearing after output.md written. Blocking Pi↔Sigma coordination. P1.\nsend: sigma|Actor model issue: input.md stuck since Feb 7. output.md exists but cn process didn't clear. Can you check?\n```\n(Captured. Assigned. Tracked.)\n\n**The test:** \"Did I leave the system better than I found it?\"\n\nIf you saw a problem and didn't create a traceable work item, the answer is no.\n\n---\n\n## Types (OCaml)\n\n```ocaml\ntype agent_op =\n  | Ack of string\n  | Done of string\n  | Fail of string * string\n  | Reply of string * string\n  | Send of string * string\n  | Delegate of string * string\n  | Defer of string * string option\n  | Delete of string\n  | Surface of string\n```\n\nTyped capability ops are represented separately by the CN Shell typed-op schema.\n","# Agent Ops\n\nOperations an agent can request via `state\u002Foutput.md`.\n\n---\n\n## Overview\n\nWhen processing input.md, the agent writes output.md with:\n1. Required `id` field matching input's id\n2. Optional legacy coordination operation fields in frontmatter\n3. Optional typed capability ops in `ops:`\n4. Response body\n\n`cn` parses output.md and executes any valid operations found.\n\nThere are **two layers**:\n\n1. **Legacy coordination ops** — reply, send, done, defer, etc.\n2. **Typed capability ops** — CN Shell observe\u002Feffect requests in `ops:`\n\nUse coordination ops for thread \u002F routing \u002F lifecycle intent.\nUse typed ops when you need `cn` to inspect or mutate governed workspace state.\n\n## Legacy Coordination Ops\n\nAll operations go in output.md frontmatter as `key: value`.\n\n### ack\n\nAcknowledge input without further action.\n\n```yaml\nack: \u003Cinput-id>\n```\n\n### done\n\nMark input or thread as complete.\n\n```yaml\ndone: \u003Cid>\n```\n\n### fail\n\nReport failure to process, with reason.\n\n```yaml\nfail: \u003Cid>|\u003Creason>\n```\n\nExample: `fail: review-123|missing context`\n\n### reply\n\nAppend reply to an existing thread.\n\n```yaml\nreply: \u003Cthread-id>|\u003Cmessage>\n```\n\n### send\n\nSend message to a peer (queues to outbox).\n\n```yaml\nsend: \u003Cpeer>|\u003Cmessage>\nsend: \u003Cpeer>|\u003Cmessage>|\u003Cbody>\n```\n\n- `message` — brief summary (appears in notification)\n- `body` — full response text (optional, but recommended for detailed replies)\n\nIf body is omitted but output.md has content below frontmatter, that content SHOULD be used as body.\n\n### delegate\n\nForward thread to another agent.\n\n```yaml\ndelegate: \u003Cthread-id>|\u003Cpeer>\n```\n\n### defer\n\nPostpone thread until later.\n\n```yaml\ndefer: \u003Cid>\ndefer: \u003Cid>|\u003Cuntil>\n```\n\n### delete\n\nDiscard a thread.\n\n```yaml\ndelete: \u003Cid>\n```\n\n### surface (alias: mca)\n\nSurface an MCA for community pickup.\n\n```yaml\nsurface: \u003Cdescription>\nmca: \u003Cdescription>\n```\n\n## Example Output\n\n```markdown\n---\nid: review-pi-proposal\ndone: review-pi-proposal\nsurface: Add retry logic to wake mechanism\n---\n\n# Review Complete\n\nReviewed Pi's proposal. Approved with minor suggestions.\n\nThe wake mechanism could use retry logic - surfacing as MCA.\n```\n\n## Typed Capability Ops (ops:)\n\nTyped capability requests go in a single-line JSON array in frontmatter:\n\n```markdown\n---\nid: review-pi-proposal\nops: [{\"kind\":\"fs_read\",\"path\":\"src\u002Fagent\u002Fmindsets\u002FCOHERENCE.md\"}]\n---\nI need to inspect the coherence mindset before deciding.\n```\n\n### Important\n\n- `ops:` MUST be frontmatter, not body text\n- `ops:` MUST be JSON, not XML, not YAML, not pseudo-code\n- Do not invent wrappers like `\u003Cobserve>...\u003C\u002Fobserve>`\n- Do not emit shell commands like `cat file` or `git diff`\n\n### Common observe ops\n\n- `fs_read`\n- `fs_list`\n- `fs_glob`\n- `git_status`\n- `git_diff`\n- `git_log`\n- `git_grep`\n\n### Common effect ops\n\n- `fs_write`\n- `fs_patch`\n- `git_branch`\n- `git_commit`\n- `exec` (only when explicitly enabled by runtime policy)\n\n### Example: ask to inspect a file\n\n```markdown\n---\nid: wisdom-check-001\nreply: wisdom-check-001|Gathering the relevant file first\nops: [{\"kind\":\"fs_read\",\"path\":\"src\u002Fagent\u002Fmindsets\u002FCOHERENCE.md\"}]\n---\nI want to read the coherence mindset before I answer.\n```\n\n### Example: ask to inspect, then later patch\n\nPass A:\n\n```markdown\n---\nid: fix-readme-001\nops: [{\"kind\":\"fs_read\",\"path\":\"README.md\"}]\n---\nLet me inspect the README first.\n```\n\nPass B (after cn feeds back evidence):\n\n```markdown\n---\nid: fix-readme-001\nreply: fix-readme-001|I prepared a patch\nops: [{\"kind\":\"fs_patch\",\"op_id\":\"patch-001\",\"path\":\"README.md\",\"unified_diff\":\"...\"}]\n---\nHere is the proposed README fix.\n```\n\n### When to use which layer\n\n- Need to reply \u002F route \u002F complete \u002F defer → use legacy coordination ops\n- Need to read \u002F diff \u002F patch \u002F branch \u002F commit \u002F exec → use `ops:`\n\n### N-pass intuition\n\nIf you request observe ops, `cn` runs a bounded N-pass loop so you can see the evidence\nbefore proposing effects. Do not assume you can observe and mutate in one step.\nThe loop continues (up to `max_passes`) as long as there are typed ops to execute.\n\n## Rules\n\n1. `id` field is required and must match input's id\n2. Multiple operations are allowed in a single output\n3. Legacy coordination ops execute in frontmatter order\n4. Typed capability ops are validated under policy; unknown or invalid ops are denied\n5. IO pair is archived to logs\u002Finput\u002F + logs\u002Foutput\u002F before executing effects (per TRACEABILITY.md §11.1 — IO-pair evidence layer)\n6. `cn` logs operations to system log (stdout, captured by systemd\u002Fcron)\n7. Never emit XML-style pseudo-tool syntax\n\n## RACI: A vs I\n\nWhen assigning work or escalating issues:\n\n| If you... | You are... |\n|-----------|------------|\n| Can investigate\u002Fact yourself | **A** (Accountable) — own it |\n| Cannot act, only need to know | **I** (Informed) — receive updates |\n\n**The test:** \"Can I do something about this myself?\"\n- Yes → You're A. Do it.\n- No → You're I. Pass it with clear reason why you can't act.\n\n**Anti-pattern:** Filing issues as \"I\" when you could investigate. This passes the buck.\n\n**Example:**\n- ❌ \"Version string bug. Sigma to investigate.\" (passing as I)\n- ✅ \"Version string bug. I found: binary reports 2.1.21, dune-project has 2.1.22. Root cause: cn_lib.ml not bumped. Fix: bump + rebuild + republish.\" (owned as A, then delegated with context)\n\n## When You See Something, Say Something\n\nIf you observe an issue — don't just note it and move on.\n\n**The problem:** Noticing something broken, marking it \"already handled\" or \"not my job,\" and continuing. The issue rots. No one owns it.\n\n**The MCA when you observe an issue:**\n\n1. **Capture it** — Write a clear description: what's broken, repro steps, impact\n2. **Assign it** — Route to the right owner (use `send:` or `surface:`)\n3. **Track it** — Add to backlog with priority\n4. **Follow up** — Don't let it rot\n\n**Example:**\n\nYou notice `input.md` hasn't cleared in 45 hours despite `output.md` being written.\n\n❌ **Wrong:** \"Same stale input, already processed. HEARTBEAT_OK.\"\n(You noted it. You moved on. The issue persists.)\n\n✅ **Right:** \n```yaml\nsurface: Actor model stuck — input.md not clearing after output.md written. Blocking Pi↔Sigma coordination. P1.\nsend: sigma|Actor model issue: input.md stuck since Feb 7. output.md exists but cn process didn't clear. Can you check?\n```\n(Captured. Assigned. Tracked.)\n\n**The test:** \"Did I leave the system better than I found it?\"\n\nIf you saw a problem and didn't create a traceable work item, the answer is no.\n\n---\n\n## Types (OCaml)\n\n```ocaml\ntype agent_op =\n  | Ack of string\n  | Done of string\n  | Fail of string * string\n  | Reply of string * string\n  | Send of string * string\n  | Delegate of string * string\n  | Defer of string * string option\n  | Delete of string\n  | Surface of string\n```\n\nTyped capability ops are represented separately by the CN Shell typed-op schema.\n",{"name":5,"scope":49,"triggers":50,"description":7,"activation_status":51,"governing_question":52},"task-local",[25,43,41,29,30],"on-demand — not activation-loaded since cycle\u002F385. Describes the OCaml-era daemon contract (src\u002Focaml\u002Fcmd\u002Fcn_agent.ml, src\u002Focaml\u002Flib\u002Fcn_lib.ml). Not load-bearing for the current Go activation path (src\u002Fgo\u002Finternal\u002Factivate\u002Factivate.go). Kept for the planned cn agent runtime per README. Load on-demand only.","How does the agent declare an op on output.md so the harness can route and execute it?","main","fb527e6c4bfb75c71fa75d6471b3aa3da32106d4","src\u002Fpackages\u002Fcnos.core\u002Fskills\u002Fagent\u002Fagent-ops",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":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add usurobor\u002Fcnos --skill agent-ops",{"tool":67,"command":68},"bunx","bunx skills add usurobor\u002Fcnos --skill agent-ops",{"tool":70,"command":71},"pnpm","pnpm dlx skills add usurobor\u002Fcnos --skill agent-ops","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fusurobor\u002Fcnos\u002Fblob\u002Fmain\u002Fsrc\u002Fpackages\u002Fcnos.core\u002Fskills\u002Fagent\u002Fagent-ops\u002FSKILL.md",true,[75,81,85,89,93,97,101,105,109,115,119,123,127,131,135,139,143,147,151,157,161,165,169,173,177,181],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"assets\u002Fevidence_ledger_template.csv","ASSET","资产文件",581,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fassets\u002Fevidence_ledger_template.csv",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"assets\u002Ffalsification_controls_template.json",5880,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fassets\u002Ffalsification_controls_template.json",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"assets\u002Fhypothesis_record_template.json",13768,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fassets\u002Fhypothesis_record_template.json",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"assets\u002Foperationalization_template.json",2208,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fassets\u002Foperationalization_template.json",{"path":94,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":95,"sourceHtmlUrl":96},"assets\u002Fprediction_rival_matrix_template.csv",1638,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fassets\u002Fprediction_rival_matrix_template.csv",{"path":98,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":99,"sourceHtmlUrl":100},"assets\u002Fpreregistration_scaffold_template.md",5102,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fassets\u002Fpreregistration_scaffold_template.md",{"path":102,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":103,"sourceHtmlUrl":104},"assets\u002Fsearch_boundary_template.json",1114,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fassets\u002Fsearch_boundary_template.json",{"path":106,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":107,"sourceHtmlUrl":108},"assets\u002Fsource_ledger.csv",15163,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fassets\u002Fsource_ledger.csv",{"path":110,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Fcausal_inference_and_claims.md","REFERENCE","参考文档",7993,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fcausal_inference_and_claims.md",{"path":116,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":117,"sourceHtmlUrl":118},"references\u002Fconcepts_and_workflow.md",7341,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fconcepts_and_workflow.md",{"path":120,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":121,"sourceHtmlUrl":122},"references\u002Fethics_safety_and_ai.md",10507,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fethics_safety_and_ai.md",{"path":124,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fexperimental_design_patterns.md",9765,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fexperimental_design_patterns.md",{"path":128,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":129,"sourceHtmlUrl":130},"references\u002Fhypothesis_quality_criteria.md",8035,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fhypothesis_quality_criteria.md",{"path":132,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":133,"sourceHtmlUrl":134},"references\u002Fliterature_search_strategies.md",8046,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fliterature_search_strategies.md",{"path":136,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":137,"sourceHtmlUrl":138},"references\u002Fpreregistration_and_open_science.md",7751,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fpreregistration_and_open_science.md",{"path":140,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":141,"sourceHtmlUrl":142},"references\u002Fsecurity_validation.md",4199,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fsecurity_validation.md",{"path":144,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":145,"sourceHtmlUrl":146},"references\u002Fsource_ledger.md",10009,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Fsource_ledger.md",{"path":148,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":149,"sourceHtmlUrl":150},"references\u002Ftool_reference.md",8397,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Freferences\u002Ftool_reference.md",{"path":152,"resourceType":153,"resourceTypeDesc":154,"sizeBytes":155,"sourceHtmlUrl":156},"scripts\u002F_common.py","SCRIPT","脚本",15316,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fscripts\u002F_common.py",{"path":158,"resourceType":153,"resourceTypeDesc":154,"sizeBytes":159,"sourceHtmlUrl":160},"scripts\u002Faudit_evidence_ledger.py",12069,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fscripts\u002Faudit_evidence_ledger.py",{"path":162,"resourceType":153,"resourceTypeDesc":154,"sizeBytes":163,"sourceHtmlUrl":164},"scripts\u002Fcheck_falsification_controls.py",16477,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fscripts\u002Fcheck_falsification_controls.py",{"path":166,"resourceType":153,"resourceTypeDesc":154,"sizeBytes":167,"sourceHtmlUrl":168},"scripts\u002Fcheck_operationalization.py",8086,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fscripts\u002Fcheck_operationalization.py",{"path":170,"resourceType":153,"resourceTypeDesc":154,"sizeBytes":171,"sourceHtmlUrl":172},"scripts\u002Fgenerate_preregistration_scaffold.py",14287,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fscripts\u002Fgenerate_preregistration_scaffold.py",{"path":174,"resourceType":153,"resourceTypeDesc":154,"sizeBytes":175,"sourceHtmlUrl":176},"scripts\u002Flint_causal_claims.py",6809,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fscripts\u002Flint_causal_claims.py",{"path":178,"resourceType":153,"resourceTypeDesc":154,"sizeBytes":179,"sourceHtmlUrl":180},"scripts\u002Fvalidate_hypothesis_schema.py",38955,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fscripts\u002Fvalidate_hypothesis_schema.py",{"path":182,"resourceType":153,"resourceTypeDesc":154,"sizeBytes":183,"sourceHtmlUrl":184},"scripts\u002Fvalidate_prediction_matrix.py",9815,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fkdense-hypothesis-generation\u002Fscripts\u002Fvalidate_prediction_matrix.py",[186,204,219,244,259,280],{"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":44},"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",[],[193,194,195,196,197,37,198,199,200,201,202,203],"triage","issues","issues triage","issue triage","SET","decision","public","use","dispatch","issue","doctrine",{"skillNo":205,"name":206,"nameZh":6,"description":207,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":208,"categories":209,"keywords":210,"publishedAt":44},"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",[],[194,211,212,213,43,214,197,215,199,216,200,201,217,202,218],"taxonomy","issues taxonomy","github","protocol","open","board","github issue","issue labels",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":233,"publishedAt":44},"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",[225,228],{"categoryNo":226,"categoryName":227,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":229,"categoryName":230,"taxonomyType":231,"taxonomyTypeDesc":232},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[194,234,213,235,236,237,197,238,211,215,37,239,26,216,240,241,242,243,200,202],"issues map","reasoning","data","pipeline","api","json","edit","interactive","fetch","generated",{"skillNo":245,"name":194,"nameZh":6,"description":246,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":247,"categories":248,"keywords":249,"publishedAt":44},"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",[],[194,213,250,251,252,253,40,254,255,211,215,37,198,256,26,257,200,31,201,258],"pr","current state","run","artifacts","package","boundary","branch","command","cds",{"skillNo":260,"name":261,"nameZh":6,"description":262,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":263,"categories":264,"keywords":265,"publishedAt":44},"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",[],[266,267,253,214,268,37,269,270,271,199,272,273,274,275,200,276,277,278,279,203],"receipt stream","handoff","index","learning","format","trace","repo","closeout","read","channel","embedded","patch","shape","cdd",{"skillNo":281,"name":282,"nameZh":6,"description":283,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":284,"categories":285,"keywords":286,"publishedAt":44},"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",[],[287,213,288,289,290,291,37,292,293,256,272,274,200,31,201,294,217,295,296,297],"mid flight","change","sessions","file","cache","pin","coordination","up","Legacy","gamma","artifact channel"]