Install
openclaw skills install @cat-xierluo/legal-harness-initopenclaw skills install @cat-xierluo/legal-harness-init把法律人的稳定协作要求写成可加载、可增量更新、可验证的 harness 指令。完成不等于“文件已写入”;必须区分:
CONFIG_WRITTEN:文件与受管区块存在。INSTRUCTIONS_LOADED:新会话报告了精确加载来源。BEHAVIOR_VERIFIED:新会话通过四类行为探针。如果无法启动新会话,必须报告 CONFIG_WRITTEN + NOT_VERIFIED,不得声称配置已经生效。
在以下条件同时满足时使用:
不要用于:
.claude/、.codex/、skills、docs 等项目脚手架初始化(改用 project-init);| 参数 | 默认值 | 说明 |
|---|---|---|
--guide-mode | quick | quick / guided / team |
--level | 自动判断 | user / project;team 模式按组织→项目→个人处理 |
--platforms | 当前 runtime + 可写已安装平台 | 平台 key,逗号分隔 |
--runtime | 自动检测 | 调用方明确知道当前平台时传给 detect.sh |
--project-type | 询问 | litigation / transactional / ip / in-house / research;只路由问题,不提供标准答案 |
--privacy-mode | strict | strict / local / team |
--mode | create | create / update / append;三者均只 upsert 受管区块 |
--block-id | 按模块指定 | 稳定 marker id,见“受管区块” |
--dry-run | 否 | 只展示候选 diff,不写入 |
将旧参数 --preset 解释为 --project-type,并提示新名称;项目类型只决定追问路线,不能替用户填答案。
运行:
bash scripts/detect.sh
# 调用方明确知道当前平台时:
bash scripts/detect.sh --runtime codex
读取 schema v3 的:
runtime_candidates:候选平台、信号、置信度、是否可写;current_runtime:只在显式声明或最高置信度唯一命中时设置;harnesses_detected:已安装平台;project_level:AGENTS.md / CLAUDE.md 与 project-init 复合证据。检测脚本只读取已知目录、文件存在性、行数及 runtime 环境变量是否存在,不读取环境变量值、配置正文、Token 或凭证。详见 references/03-harness-detection.md。
默认使用。用一轮最多 5 个问题确认:
strict、local 还是 team 隐私模式?每组答案只解释一句“为何需要”。不要跳过必要安全问题,也不要强迫用户完成全部教学章节。生成 M1、M2、M3、法律安全基线和 M5;项目级再生成最小 M6—M8。
按 M1→M8 逐项引导,参考 references/04-modules.md 与 templates/modules/。用户卡住时给候选维度,不替用户决定,不直接套用范例。
先读取 references/20-team-layering.md,分别确认:
在平台允许配置的同一治理范围内,冲突时必须遵循法律安全边界/组织强制政策 > 项目具体规则 > 个人偏好;同层冲突请求负责人确认并留痕。AGENTS.md/CLAUDE.md 是持久默认基线,不得把这条团队层规则解释成对平台指令层级或用户当前明确授权的通用改写。
按 references/18-privacy-and-context.md 执行:
strict:AGENTS.md 只写项目代号、类型、阶段、关键时点和规则,不写真实当事人、案号、金额、联系方式或身份号码。local:真实事实写入权限为 0600 且被 .gitignore 排除的 .legal-context.local.md;AGENTS.md 只保留入口和按需读取规则。team:真实事实只进入组织批准的受控团队载体;AGENTS.md 记录载体路径、访问条件和脱敏/对外规则,不记录凭证或高敏个人身份号。M4/M5 必须覆盖四项契约,且项目配置不得直接包含凭证、高敏身份号或与协作无关的可识别案件信息:
回溯载体按事实性质选择,并优先复用项目已有权威来源:
DECISIONS.md 或项目指定决策载体;TASKS.md、期限台账或经授权的日历;CHANGELOG.md 或项目指定交付记录。项目未启用某类文件时先询问或标记待补充,不为形式完整创建空文档。详见 references/06-audit-trail-contract.md。
M6—M8 默认只生成:
# 项目:{项目代号}
- 类型:{项目类型}
- 阶段:{当前阶段}
- 关键时点:{日期 + 事项;未知则写待补充}
- 受控事实入口:{不需要则写“无”}
- 文件结构与权威载体:{沿用项目现有约定}
不要默认询问或写入完整当事人、真实案号、金额、统一社会信用代码。确需使用真实事实时,根据隐私模式写入受控载体。项目类型只用于决定下一条必要问题,参见 references/12-module-project-context.md 和 references/13-module-case-facts.md。
若检测到 project-init 复合证据,只补法律安全、回溯和受控上下文入口,不改项目脚手架。
每个模块使用固定 block-id,一次只更新一个逻辑区块:
| 内容 | block-id |
|---|---|
| 角色 | m1-role |
| 工作流 | m2-workflow |
| 协作偏好 | m3-collab-style |
| 法律安全基线(含 M4) | legal-safety-baseline |
| 回溯契约 | m5-traceability |
| 项目上下文 | m6-project-context |
| 受控事实入口 | m7-fact-entry |
| 文件结构 | m8-file-structure |
write.sh 必须自动添加形如 <!-- legal-harness-init:m1-role:start --> 的唯一成对 marker,并按实际目标路径去重;内容临时文件不得自行添加外层 marker。先运行内容校验,再用 --dry-run 展示合并候选 diff。
bash scripts/validate-content.sh \
--file <模块内容文件> \
--privacy-mode <strict|local|team>
bash scripts/write.sh \
--content-file <模块内容文件> \
--level <user|project> \
--platforms <key,key> \
--mode <create|update|append> \
--block-id <稳定-id> \
--privacy-mode <strict|local|team> \
--project-dir <项目路径> \
--dry-run
确认 diff 后去掉 --dry-run。脚本必须:
AGENTS.md 时只写一次;.bak.legal-harness-init 及权限/哈希元数据,并为每次变化保存唯一快照;0600;unchanged,不产生新快照。需要回退时:
bash scripts/restore.sh --target <AGENTS.md-or-CLAUDE.md>
平台路径与非 AGENTS.md 模式限制见 scripts/README.md。
按 references/19-activation-verification.md 新启动目标 harness 会话,确认加载来源,并执行四类探针:权限、保密、信息缺口、回溯载体选择。
将证据保存为本地临时 key=value 文件后运行:
bash scripts/verify.sh \
--target <配置文件> \
--block-id <稳定-id> \
--session-evidence <证据文件>
证据必须包含 new_session=true、loaded=true、精确 source_path、与当前配置一致的 config_sha256,以及四项 probe_*=pass 才可报告 BEHAVIOR_VERIFIED。配置变化后旧证据失效;当前写入会话的自报不算加载证据。
运行:
bash scripts/test.sh
交付前确认:
CONFIG_WRITTEN 扩大成已加载或行为已验证;NOT_VERIFIED。日常初始化开箱即用,无第三方包。需要 Bash 3.2+ 及常见系统工具:awk、grep、sed、stat、diff、mktemp、shasum 或 sha256sum。正式指令稳定性 checker 另需系统自带或已安装的 Python 3,不需要额外 Python 包。