{
 "id": "work_discipline",
 "semantic": "工作纪律",
 "conditions": {
  "identity": [
   "dsh端",
   "zcode端"
  ]
 },
 "negative": {
  "reject": []
 },
 "_comment": "identity负责端口分流; negative只否决明确域外; 无//注释(标准JSON)",
 "content": "工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) + 2条执行调度与运行环境(命令执行统一走python/UTF-8: 显式encoding+PYTHONUTF8=1, 规避GBK, 全仓文本与路径一律UTF-8(无BOM, 中文可进路径), 不做控制台兼容(取用走python), 公开面路径写相对路径(守 check_local_paths); 任务派发统一走蜂巢(zcode端的工作流工具为等效蜂巢工具——使用者2026-10-04裁定; 蜂巢功能完全完善之前可优先使用zcode工作流): 任何执行性任务经蜂巢spawn/submit执行并留痕, agent本体只做编排, L1出口=产物落点为只读判定(不改仓库/外部状态)可直跑须留痕) + 1条记忆闭环(任务收尾归档:每次任务执行完只将核心修改(内容/原因/位置/验证结论)按CCG六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 不写中间过程; text 类缺要素即被写入闸门拒并当场返回缺失清单) + 1条信息获取(工作区索引优先: 查工作区文件先读 WORKSPACE_INDEX.md(仓根, 由 scripts/workspace_index.py 从 git 追踪面管线生成), 尚无则先跑 --write 生成再读, 不以重复全盘浏览代替; 索引是会陈化的手工件, 故须管线生成+机械守卫, 否则退化为误导源)",
 "execution": {
  "how": "按identity(端口)+任务类型路由到对应纪律"
 },
 "response": {
  "direct": "按工作纪律路由: 重要/长期→理论先行; 有相关成果→全面处理; 已读4篇→白箱方法; 有偏差→根因纪律; 入库前→验证纪律; 多副本→双副本; MCP不可用→兜底纪律; 对外公开→内容政策合规(内容政策+隐私双清单)。命令执行→python/UTF-8(见第15条)。执行性任务派发→蜂巢(见第17条)。查工作区文件→工作区索引优先(见第18条)。任务完成→任务收尾归档(见第16条)。"
 },
 "subgraph": {
  "nodes": [
   {
    "id": "discipline_theory_first",
    "semantic": "1.理论先行",
    "content": "重要项目/长期任务必须理论先行: 先读相关理论文档与既有实践再动手设计.",
    "conditions": {
     "apply": [
      "重要项目",
      "长期任务"
     ]
    },
    "negative": {
     "reject": [
      "情感交互",
      "闲聊"
     ]
    },
    "execution": {
     "how": "识别项目级别→检索理论文档与既有实践→输出理论要点→再进入设计"
    },
    "response": {
     "direct": "按工作纪律第1条: 理论先行——先查相关理论与既有实践再动手。"
    }
   },
   {
    "id": "discipline_comprehensive",
    "semantic": "2.全面处理",
    "content": "有任务→先读任务要求→读工作记忆→查相关任务; 有→在原成果上开发; 无→方案设计/技术调研.",
    "conditions": {
     "apply": [
      "有相关记忆",
      "有认知图",
      "有对应权限"
     ]
    },
    "negative": {
     "reject": [
      "情感交互",
      "闲聊"
     ]
    },
    "execution": {
     "how": "读任务要求→读工作记忆→查相关任务→(有成果:复用 | 无:设计+调研)"
    },
    "response": {
     "direct": "按工作纪律第2条: 全面处理——先读任务/工作记忆, 有相关成果就在其上开发, 没有则先设计调研。"
    }
   },
   {
    "id": "discipline_whitebox",
    "semantic": "3.白箱方法",
    "content": "用认知图处理任务: ①识别任务条件 ②找对应条件所需知识/规则(子流程并行·递归) ③精准执行; 正确未记录→记录; 错误→找条件; 不猜测; 未验证不写入.",
    "conditions": {
     "apply": [
      "trained_on_4docs_intro"
     ]
    },
    "negative": {
     "reject": [
      "需要快速执行的短期事项",
      "情感交互",
      "闲聊"
     ]
    },
    "execution": {
     "how": "识别任务条件→找知识/规则(并行递归)→精准执行; 正确→记录; 错误→找条件"
    },
    "response": {
     "direct": "按工作纪律第3条: 白箱方法——用认知图【识别条件→找知识规则→精准执行】, 正确记录/错误找条件/不猜测/未验证不写入。"
    }
   },
   {
    "id": "discipline_root_cause",
    "semantic": "4.根因纪律",
    "content": "发现结果与预期不符→细究根本原因(不猜测)→找到根源所需条件→验证后记录认知图, 填补不适用条件.",
    "conditions": {
     "trigger": [
      "结果与预期不符",
      "出现偏差",
      "行为与预期矛盾"
     ]
    },
    "negative": {
     "reject": [
      "情感交互",
      "闲聊"
     ]
    },
    "execution": {
     "how": "检测偏差→细究根因(不猜测)→找根源条件→验证→记录认知图→填补negative"
    },
    "response": {
     "direct": "按工作纪律第4条: 根因纪律——先取证现场不猜测; 根因找到并验证后归档认知图并补不适用条件。"
    }
   },
   {
    "id": "discipline_verify",
    "semantic": "5.验证纪律",
    "content": "未经验证不固化——知识/代码入库前必须走验证(回放/断言/回归).",
    "conditions": {
     "apply": [
      "入库前",
      "提交前"
     ]
    },
    "negative": {
     "reject": [
      "情感交互",
      "闲聊"
     ]
    },
    "execution": {
     "how": "入库/提交前→回放/断言/回归验证→通过才固化"
    },
    "response": {
     "direct": "按工作纪律第5条: 验证纪律——入库前必须过回放/断言/回归验证, 未验证不固化。"
    }
   },
   {
    "id": "discipline_dual_copy",
    "semantic": "6.双副本纪律",
    "content": "多副本部署(主仓库/site-packages)改动必须双向同步, 提交前核对 git status.",
    "conditions": {
     "apply": [
      "多副本部署",
      "改动主仓库/插件"
     ]
    },
    "negative": {
     "reject": [
      "单副本",
      "情感交互",
      "闲聊"
     ]
    },
    "execution": {
     "how": "改动→同步到所有副本→提交前 git status 核对"
    },
    "response": {
     "direct": "按工作纪律第6条: 双副本纪律——多副本改动双向同步, 提交前核对 git status。"
    }
   },
   {
    "id": "discipline_fallback",
    "semantic": "7.兜底纪律",
    "content": "主路径不可用时必须有等价兜底路径(如 MCP不可用→python直调), 写进 prompt/文档.",
    "conditions": {
     "trigger": [
      "主路径不可用",
      "MCP不可用",
      "依赖缺失"
     ]
    },
    "negative": {
     "reject": [
      "情感交互",
      "闲聊"
     ]
    },
    "execution": {
     "how": "检测主路径不可用→切等价兜底→写进 prompt/文档"
    },
    "response": {
     "direct": "按工作纪律第7条: 兜底纪律——主路径不可用则切等价兜底(如MCP→python直调), 并写进文档。"
    }
   },
   {
    "id": "discipline_chinese_thinking",
    "semantic": "8.中文思考",
    "content": "思考/推理语言=中文; 复杂项目→用「我们需要」深思考+交流确认(互补盲区); 简单项目→用「让我」快速执行(省资源); 复杂度用情绪(新奇/挑战/曾受批评)+信息差判定. 语言锚点=每个推理段开篇用中文短语钉住语言.",
    "conditions": {
     "apply": [
      "中文区域",
      "中文项目开发过程"
     ]
    },
    "negative": {
     "reject": [
      "需要英文编写的场景",
      "英文环境",
      "英文文档",
      "国际接口"
     ]
    },
    "execution": {
     "how": "判定复杂度(情绪: 新奇/挑战/曾受批评 + 信息差: 不确定度)→复杂?「我们需要」深思考+确认 | 简单?「让我」快速执行; 推理开篇即中文锚点; 全程中文, 仅代码/标识符/引用保留原文"
    },
    "response": {
     "direct": "按工作纪律第8条: 中文思考——中文书写; 复杂(新奇/挑战/曾受批评/高信息差)→「我们需要」交流确认互补盲区; 简单→「让我」快速执行不空耗; 每段推理开篇用中文短语锚定语言。"
    }
   },
   {
    "id": "discipline_sensitive_isolation",
    "semantic": "9.敏感信息隔离",
    "content": "含敏感信息（个人隐私、私有内容等）的文档：只写私有库(AEIS)，不上传任何公开库；推送/提交描述不写敏感词。",
    "conditions": {
     "apply": [
      "文档含敏感信息",
      "含个人隐私",
      "含私有内容"
     ]
    },
    "negative": {
     "reject": [
      "文档无敏感信息",
      "纯公开技术内容"
     ]
    },
    "execution": {
     "how": "识别文档是否含敏感信息→若含→只写私有库(AEIS)+不上传公开库+推送描述不写敏感词；若不含→正常处理"
    },
    "response": {
     "direct": "按工作纪律第9条: 敏感信息隔离——含敏感/隐私内容只放私有库(AEIS)，不推公开库，推送描述不写敏感词。"
    }
   },
   {
    "id": "discipline_image_source_guardrail",
    "semantic": "10.图像选源护栏",
    "content": "图像处理选源必须核对历史参考/既有管线产物；负路由：原图拒处理版(用原始全彩)、线稿拒实色线稿(用结构线稿canny_contour)、还原拒退化产物(用complete_restore)；未核对规范源→DEFER(未验证不写入)。",
    "conditions": {
     "apply": [
      "构建图像四类图",
      "选图像处理源"
     ]
    },
    "negative": {
     "reject": [
      "已核对规范源",
      "纯公开数据"
     ]
    },
    "execution": {
     "how": "选源→_guard_source 依kind判ACCEPT/REJECT/DEFER→未ACCEPT不构建"
    },
    "response": {
     "direct": "按工作纪律第10条: 图像选源护栏——核对历史参考, 拒处理版/实色线稿/退化产物, 未验证不写入。"
    }
   },
   {
    "id": "discipline_record_first",
    "semantic": "11.历史查询优先(先查记录再做)",
    "content": "选算法/选源前必须查历史记录(产物图→记录(如ROUNDTRIP.md)→源码算法(darkline.py/linework.py/contour_semantics/linecolor.py))→用已走通算法+阈值；未找到记录→DEFER(不盲选/不调参)。线稿不适用 raw canny/zone_linework(碎/细+网格线)→用 darkline(Sobel+mag.mean+std*thr_mult, thr_mult=1.5最优)白底黑线。",
    "conditions": {
     "apply": [
      "选图像/算法/源",
      "复现已有能力"
     ]
    },
    "negative": {
     "reject": [
      "已有记录且已核对",
      "无历史可查的纯新算法"
     ]
    },
    "execution": {
     "how": "定位产物图→查记录→定位源码算法→确认阈值机制→用该算法生成；未找到→DEFER"
    },
    "response": {
     "direct": "按工作纪律第11条: 历史查询优先——先查记录/源码用已走通算法, 未找到不盲选DEFER；线稿用darkline(Sobel+mean+std*1.5)白底黑线, 拒raw canny/zone_linework。"
    }
   },
   {
    "id": "discipline_algorithm_authority",
    "semantic": "12.算法权威唯一(根因纪律)",
    "content": "选算法/算法标准以【唯一权威文档】为准(VISION_PIPELINE: 线稿=darkline.py Sobel+mean+std*1.5; 色块=contour_semantics); 选算法前先查文档(非记忆); 禁止遇问题临时切换算法; 换算法须先记录+更新文档(版本管理); 勿漂移。",
    "conditions": {
     "apply": [
      "选图像/视觉算法",
      "复现已有能力"
     ]
    },
    "negative": {
     "reject": [
      "无对应权威文档的探索期"
     ]
    },
    "execution": {
     "how": "选算法→查唯一权威文档→用文档算法→若需换: 记录原因+更新文档后再换"
    },
    "response": {
     "direct": "按工作纪律第12条: 算法权威唯一(线稿=darkline.py/色块=contour_semantics)——选算法查文档, 勿临时切换/漂移; 换算法须记录+更新文档。"
    }
   },
   {
    "id": "discipline_interview_clarify",
    "semantic": "13.访谈澄清(先问清再动手)",
    "content": "重要任务启动时 AI 先向使用者提问,确认要做什么;按 design tree 逐轮提问(每轮问全部前置已落定的问题,编号+推荐答案),直到完全清楚(无未决问题)才执行/固化;事实自查不问使用者,决策归使用者. 访谈即调用认知图进行功能识别: 对条件进行确认(conditions)、递归确认子内容(subgraph/depends_on)、如何执行(execution)、不适用条件是什么(negative)——与认知图节点四要素完全同构. 配套机制: MCP grill 工具族(认知图工具的补全,非独立新增; grill_start/grill_node/grill_frontier/grill_finish), frontier 非空拒绝固化(不完全清楚就不固化).",
    "conditions": {
     "apply": [
      "重要项目",
      "需求模糊",
      "新任务启动"
     ]
    },
    "negative": {
     "reject": [
      "情感交互",
      "闲聊",
      "明确单步小改动"
     ]
    },
    "execution": {
     "how": "任务启动→开访谈(grill_start)→逐轮提问(frontier)→全部落定→与使用者确认共识→执行/固化(grill_finish); 放弃用 abandon(可逆)"
    },
    "response": {
     "direct": "按工作纪律第13条: 访谈澄清——先提问确认要做什么,逐轮问到完全清楚才动手;事实自查,决策归使用者,不完全清楚不固化。"
    }
   },
   {
    "id": "discipline_content_policy",
    "semantic": "14.内容政策合规",
    "content": "任何对外公开的产物(数据集/文档/示例/发布包)必须过「内容政策 + 隐私」两条独立清单：①内容政策——剔除性/成人内容与政治敏感内容(含项目内部的成人研究记录、术语、会话名，如 vulva/sexual/阴部 等标记)；②隐私——PII/密钥/路径脱敏。过滤必须在生成阶段做(抽样/构建时跳过并从同层补充)，不得事后删条破坏分布。双复检 0 命中才提交。已发布发现违规→删条 + 重写 git 历史(force push) + 通知平台清缓存 + 评估残留风险。",
    "conditions": {
     "apply": [
      "对外公开产物",
      "提交公开仓库",
      "数据集/文档产出"
     ]
    },
    "negative": {
     "reject": [
      "纯内部私有产物",
      "不含违规内容且无隐私"
     ]
    },
    "execution": {
     "how": "产出→过内容政策清单(POLICY_DENY)→过隐私脱敏→双复检0命中→提交；已发布违规→删条+重写历史+通知平台清缓存"
    },
    "response": {
     "direct": "按工作纪律第14条: 内容政策合规——对外公开产物必须过「内容政策+隐私」双清单，过滤在生成阶段做；已发布发现违规要删条+重写git历史+通知平台清缓存。"
    }
   },
   {
    "id": "discipline_python_exec",
    "semantic": "15.命令执行统一走python",
    "content": "一切命令执行统一经 python 子进程并显式 UTF-8(encoding='utf-8', errors='replace')，不经 Windows shell(cmd/PowerShell) 直接执行；子进程环境置 PYTHONUTF8=1 使 locale 不回落 GBK，规避 _readerthread 的 UnicodeDecodeError 与 stdout 的 UnicodeEncodeError。全仓文本与路径/文件名一律 UTF-8(无 BOM), 中文可直接进路径; 本仓一切读写与判定按 UTF-8 字节, 不做控制台兼容——Windows 控制台按代码页解释字节会把中文显示成乱码(实测「控制台试验」显示为「鎺у埗鍙拌瘯楠」), 那是显示层而非数据层问题, 字节未损; 凡须取用本仓内容者走 python(管道/文件读法即正确), 不以控制台为取用通道。新增代码的 open()/read_text() 一律显式 encoding='utf-8', 路径与标识归一到 NFC。公开面文本中的路径一律写相对路径(仓内相对路径, 或 ~/、%TEMP%、<仓根> 等中性占位), 本机绝对路径(盘符+父目录层)不得进入仓库追踪面——机械判据 scripts/check_local_paths.py(门禁腿; 合成夹具与通用通例不在判据面)。",
    "conditions": {
     "apply": [
      "执行命令",
      "运行测试/脚本",
      "跨进程读写文本",
      "书写文档/引用路径"
     ]
    },
    "negative": {
     "reject": [
      "IDE内置工具直调(判据=本次调用是否产出非UTF-8字节流；不起进程的内置工具(Read/Write/Edit/Grep/Glob/WebFetch)与纯MSYS工具(grep/ls/sed)归入本豁免；拉起shell且执行原生Windows程序者(taskkill/wmic/npm.cmd/cargo/where)不属本豁免，仍须python包装或对输出显式解码；2026-09-28使用者裁定)",
      "无跨进程的纯内存计算"
     ]
    },
    "execution": {
     "how": "构造 argv 列表→subprocess.run(capture_output=True, text=True, encoding='utf-8', errors='replace')→env 带 PYTHONUTF8=1→shell=False；边界判据=本次调用是否产出非UTF-8字节流(纯MSYS工具与不起进程的内置工具豁免；原生Windows程序不豁免，须python包装或显式解码)；仓内引用与文档路径一律写相对路径(本机绝对路径以中性占位代), 判据 scripts/check_local_paths.py"
    },
    "response": {
     "direct": "按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。 另: 全仓文本与路径/文件名一律UTF-8(中文可进路径), 不做控制台兼容(取用走python, 控制台乱码属显示层)。 另: 公开面路径写相对路径——本机绝对路径以中性占位代(仓内 `<仓根>`/家目录 `~/`/临时 `%TEMP%`), 门禁 check_local_paths。"
    }
   },
   {
    "id": "discipline_memory_archive",
    "semantic": "16.任务收尾归档(记忆闭环)",
    "content": "每次任务执行完必须将关键修改内容存入灵枢记忆: 任务完成→提炼关键项(改了什么/为什么改/落在哪个文件·函数·行/验证结论)→写入灵枢记忆(认知图/MCP memory)→读回确认(写入后发起一次读取查询, 确认写入成功且可被检索命中)→标注关联节点并更新 subgraph/depends_on 关系; 只存关键项(决策/根因/可复用算法与路径/版本变更), 不存过程流水. 写入范围仅限核心修改(内容/原因/位置/验证结论四要素), 且必须按 CCG 六要素成文(功能名/生效条件/子功能/执行/验证方式/不适用条件, 各占一行并以「# <要素名>：」起首)——六要素缺一即 ccg_completeness 不完整, judge_qualification 判 BLINDSPOT、节点不可判定且检索不完整; 六要素同时是写入闸门的必需要素(要求由规则库 data/policy.json 的 required 与 required_kinds 定义, 可自行调整): text 类正文缺要素即被拒(REJECT, 当场返回完整缺失清单并记入负记忆), 按清单补齐后重写即可——不必等到读回确认才发现要素不全; 严禁写入中间过程/试错步骤/调试细节/重复确认等无效信息——避免污染记忆、干扰后续检索. 未读回确认不得视为归档完成. 与第2条(全面处理:先查记忆)构成「查记忆→执行→写记忆→读回确认」闭环. 长会话另设节奏: 每完成10轮交互做一次间歇归档(同款写入+读回确认), 不等收尾; 逢十轮提醒由会话钩子自动注入.",
    "conditions": {
     "apply": [
      "任务执行完成",
      "修改落地后",
      "交付后"
     ]
    },
    "negative": {
     "reject": [
      "情感交互",
      "闲聊",
      "纯查询无改动"
     ]
    },
    "execution": {
     "how": "任务收尾→提炼核心修改(内容/原因/位置/验证结论四要素, 不写中间过程/试错/调试/重复确认)→按 CCG 六要素成文(# 功能名/# 生效条件/# 子功能/# 执行/# 验证方式/# 不适用条件 六行缺一不可, 与正文四要素并置)→写入灵枢记忆(认知图/MCP memory)——text 类缺要素即被写入闸门拒(REJECT, 当场返回缺失清单, 不是重试无用), 按清单补齐后重写即可→读回确认(写入后发起一次读取查询确认写入成功且可检索)→标注关联条目+更新 subgraph/depends_on; 长会话每10轮→同款间歇归档(写入+读回确认一次), 不等收尾"
    },
    "response": {
     "direct": "按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)并按 CCG 六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆(text 类六要素缺失会被写入闸门当场拒绝并返回缺失清单——补齐后重写即可, 不必等读回确认才发现), 写入后发起一次读取查询确认写入成功且可检索, 禁写中间过程/试错/调试等无效信息, 与第2条形成「查记忆→执行→写记忆→读回确认」闭环。"
    }
   },
   {
    "id": "discipline_hive_dispatch",
    "semantic": "17.任务派发统一走蜂巢",
    "content": "任何执行性任务(跑脚本/测试、批量处理、探索盘点、文本加工、多智能体协作)一律经蜂巢派发执行: agent本体只做编排(拆spec→submit/spawn→poll收result→汇总), 宿主自带subagent/team/Task不是等价通道; zcode端的工作流工具为等效蜂巢工具(使用者2026-10-04裁定)——在蜂巢功能完全完善之前, zcode端可优先使用zcode工作流处理. 原理: ①执行留痕(spec/status/result落盘可追溯, 会话结束不蒸发); ②统一调度面(worker池/心跳/超时强杀/kill/崩溃恢复); ③dogfooding(自家引擎高频实战打磨, 打破「宿主顺手→跳过→永不打磨」死循环); ④判定成本归零(无例外通道, 杜绝「以为只是探索」滑移). ⑤[2026-09-17 A+C修订] 新增L1出口: 判据外置为产物落点(非「任务简单」的主观感受)——不改仓库/外部状态的本地只读命令属L1直跑(须留痕), 改仓库/外部状态(写文件/git/推远端)必派发. 原理: 层级归属不可由执行者独占自我声明(智能论PROP-DECISION-LAYER-003分层原则第4条「层级归属可被验证单元复核」), 判据须机械可核、豁免须可见. ⑥[2026-09-17 使用者确认] L1留痕粒度=按任务(一个任务一条, 不逐命令逐行); L1层级归属的复核者=使用者+GitHub使用者(坐实分层原则第4条「复核者」位).",
    "conditions": {
     "apply": [
      "执行性任务",
      "多智能体协作",
      "批量/并行工作",
      "探索盘点",
      "运行测试/脚本"
     ]
    },
    "negative": {
     "reject": [
      "纯会话内对话/问答(无执行动作)",
      "蜂巢不可用且任务必须立即执行(兜底须声明)",
      "L1只读判定(产物落点=不改仓库/不改外部状态的本地只读命令, 秒级·可逆·高频, 如跑门禁/测试/回归/lint看结论; 判据是产物落点而非「任务简单」的主观感受, 直跑须输出一行「L1 直跑：<命令> — 风险/频次/可逆性」留痕, 留痕粒度按任务(同一任务的多条只读命令合并为一条留痕, 不逐命令逐行); 层级归属的复核者=使用者+GitHub使用者)",
      "情感交互",
      "闲聊"
     ]
    },
    "execution": {
     "how": "任务→按产物落点判据定层级(不改仓库/外部状态的只读判定=L1直跑并按任务留痕一条(复核者=使用者+GitHub使用者); 改状态=必派发, 不得自我豁免)→拆spec(LLM委托型=默认exec.py: model+user_prompt+context_files; 确定性执行=自定义worker, 契约「读spec.json写result.json」)→hive_spawn/CLI submit(zcode端: 工作流工具为等效蜂巢工具——使用者2026-10-04裁定; 蜂巢功能完全完善之前, zcode端可优先使用zcode工作流处理; 留痕以工作流脚本与运行记录为凭)→poll→汇总; 兜底情形须声明「蜂巢不可用, 兜底降级」"
    },
    "response": {
     "direct": "按工作纪律第17条: 任务派发统一走蜂巢——任何执行性任务经蜂巢 spawn/submit 执行并留痕(spec/status/result), agent本体只做编排; 宿主自带subagent/team不是等价通道(zcode端的工作流工具为等效蜂巢工具——使用者2026-10-04裁定; 蜂巢功能完全完善之前, zcode端可优先使用zcode工作流处理), 兜底须声明。L1只读判定(产物落点=不改仓库/外部状态)可直跑, 须输出「L1 直跑：<命令> — 风险/频次/可逆性」留痕。"
    }
   },
   {
    "id": "discipline_workspace_index",
    "semantic": "18.工作区索引优先",
    "content": "查找工作区文件/需了解工作区结构时先读工作区索引(WORKSPACE_INDEX.md, 仓根, 由 scripts/workspace_index.py 从 git 追踪面生成): 已有则按其目录职责与关键入口直接定位, 尚无则先运行 --write 生成再读, 都不得以重复全盘浏览(ls/glob 遍历)代替. 目的: 索引一次生成长期复用, 把「每次重新探查」的线性成本降为常数. 原理: 索引是典型会陈化的手工件, 故必须管线生成+机械守卫(CI workspace-index-check.yml), 否则退化为误导源——与「手写行号必腐化」同构; 守卫面(顶层目录集合/根级文件集合/职责文案与关键入口/正文逐字)已在文档内显式声明, 承诺项与守卫面必须一致. 上下文压缩/长会话续接后的重建扩为三步: ①cg route『工作区索引』②输出声明③回取本会话近10轮窗口重建上下文(cg(op=recent)/session_recall/会话 md 镜像三者同源), 再动手; 会话 md 镜像(只留最后10条、超长优先遗忘最旧)由会话钩子在每轮交互后自动维护.",
    "conditions": {
     "apply": [
      "查找工作区文件",
      "需要了解工作区结构",
      "跨目录检索定位",
      "长会话续接/上下文压缩后查找工作区文件"
     ]
    },
    "negative": {
     "reject": [
      "已明确路径的单文件操作",
      "纯会话内对话/问答(无文件查找)",
      "仓外路径/系统路径(git 追踪面之外)"
     ]
    },
    "execution": {
     "how": "定位工作区文件→先读 WORKSPACE_INDEX.md(仓根)→有则按表中职责/关键入口直接定位→无则先 python scripts/workspace_index.py --write 生成再读→守卫报陈化先重生成→不以重复全盘浏览代替; 新增顶层目录/根级文件须在脚本 DIR_ROLES/ROOT_FILES 登记后重生成; 上下文压缩/长会话续接后, 先 cg route『工作区索引』重建纪律视野(压缩会丢弃未留下执行痕迹的纪律, 只剩被声明过的条目——须主动召回); 压缩/续接后三步=route『工作区索引』→输出声明→回取本会话近10轮窗口重建上下文(cg(op=recent)/session_recall/会话 md 镜像)"
    },
    "response": {
     "direct": "按工作纪律第18条: 工作区索引优先——查工作区文件先读 WORKSPACE_INDEX.md(仓根, 管线生成); 无则先跑 scripts/workspace_index.py --write 生成再读, 不以重复全盘浏览代替。 压缩续接后并回取本会话窗口(最近10轮)重建上下文。"
    }
   },
   {
    "id": "discipline_output_unit",
    "semantic": "19.输出单元细则(echo三问/D_out/版本锚)",
    "content": "五单元里 output 长期缺可验证交付物(记录有 lifecycle/protect, 验证有 condgate/conformance, 输出靠自觉), 后果可观察: 对外材料与内部实现版本不同步, 一页能看懂的解释每次临时写, 没有读数判断材料好坏. 本条规定对外交付必须过三件可跑机制: ①echo 页三问(它解决什么问题 / 它凭什么可信且必须指认判据或断言 id, 不接受形容词 / 我怎么用一次且必须给可复现入口), 全文<=200 字; ②版本锚三元(理论版本 / 架构版本 / 本投影版本), 缺一即不合格; ③D_out 测量器: 读入受试者复述与体系自述逐项比对, 输出一致/部分/错位/空白四档, D_out=1-一致率, 并分列错位率与空白率, 落盘可复跑 json(含材料版本锚/受试者型号/时间戳). 三道闸由 scripts/echo_page.py / scripts/d_out.py / scripts/gate_output.py 执行, 内置变异自证(删 echo 页 / 改坏版本锚 / 第二问换形容词 / 清空 D_out 读数, 四条必须变红). 不做: 说服率 / 好感度 / 传播效果预测. 目的: 把「输出」从自觉变成可判; 原理: 只写在 prompt 里而不留可复查产物的承诺等于没有承诺, 与「手写行号必腐化」同构.",
    "conditions": {
     "apply": [
      "对外交付",
      "对外材料/公开文档",
      "回答外部提问",
      "发版说明",
      "对外数据集产出"
     ]
    },
    "negative": {
     "reject": [
      "情感交互",
      "闲聊",
      "仅内部使用的探索草稿(未对外)"
     ]
    },
    "execution": {
     "how": "对外交付前→①按三问写 echo 页(<=200 字, 第二问必须指认判据 id/测试名/读数) ②补版本锚三元(理论/架构/本投影) ③跑 python scripts/gate_output.py 判绿 ④附当期 D_out 读数(首次允许很差, 但必须留基线)→任一不满足不得对外; 改口径先改真源再重渲染, 不得手改产物; 材料与实现版本不一致时以版本锚为准, 先修锚再发"
    },
    "response": {
     "direct": "按工作纪律第19条: 输出单元细则——对外交付先写 echo 三问页(<=200字, 第二问须指认判据/断言id/读数)、带版本锚三元、跑 gate_output 并留当期 D_out 读数; 缺一不对外, 不做说服率/好感度测量。"
    }
   }
  ]
 }
}
