SuperAPI AI 工具集

harness-init

部署与运维

查看项目

更新于 10-19 23:26

技能介绍

用途

harness-init 是一个强制性交互式向导,用于将全局 harness 运行时连接到当前仓库,并根据机器上实际安装的提供方(Cursor、Claude Code 或两者)完成接线。它生成项目级策略文件 .tlc/harness/config.json,并为检测到的提供方写入 shim hooks。该技能仅用于初始设置,帮助文档以 CLI(tlc harness help <topic>)为准,而非本技能。

主要能力

  • 前置检查:运行 tlc harness doctor 与 tlc harness help init,确认全局运行时可用(Node 24+、dist/、tlc-exec)。
  • 提供方检测:解析各提供方实际生效的配置目录,尊重 CLAUDE_CONFIG_DIR 与 CURSOR_CONFIG_DIR 环境变量,而不是假定默认路径;并明确告知用户将接线哪些提供方。
  • 已有配置处理:若 .tlc/harness/config.json 已存在,展示内容并询问覆盖、合并或中止。
  • 钩子运行时选择:检测 Bun 是否在 PATH;Bun 缺失时以取舍方式说明(约 1ms 对约 27ms,每轮约 30 次钩子),不阻塞,Node 完全受支持,答案记入项目状态避免重复询问。
  • 逐项能力发现:按 references/capabilities.md 的能力目录逐项呈现名称、受益、取舍、默认值与是否启用,用户接受后才收集参数。
  • 评论门禁:四选一(off / declared / resolvable / strict),分别控制 Agent 新增注释的规则;附带声明的 /** */ 注释与工具指令在每种模式下另有判定或豁免。
  • 空闲轮门禁:在轮次结束时若存在未完成交接工作、零工具调用与零文件变更则阻止停止,默认关闭,适合对话型仓库可关闭。
  • 文档陈旧门禁:在停止时运行仓库自有的陈旧检测工具(如 drift、oasdiff、ast-grep 或 package.json 中的 docs 脚本),需用户提供确切 argv,可选 warn 或 deny,默认 warn。
  • 操作规则:开关加至少一个 markdown 规则文件,使用封闭词汇(on / require / otherwise),规则可放在仓库 .tlc/harness/rules/ 或运行时主目录的 rules/;前置元数据强制执行,正文在触发时原样注入。
  • 确认与写入:在围栏代码块中展示完整拟议配置(仅英文键与字符串),用户明确确认后通过 tlc harness init --write --stdin-json 写入;失败时手写配置文件,--minimal 仅作最后手段。
  • 收尾验证:确保 .gitignore 覆盖 .tlc/harness/state/;如启用 lessons 且 syncRulesFile 非 never,运行一次 tlc harness lessons sync-rules;最后运行 tlc harness status 与 tlc harness doctor,并提示用户重载或重启提供方会话。

使用方式

在需要配置的仓库中触发该技能,按向导步骤执行:先运行前置检查与提供方检测,再逐项选择能力并确认配置,最后写入与验证。shim hooks 必须调用 $HOME/.tlc/harness/bin/tlc-exec shim <handler>,不得直接运行源码或使用旧版裸 harness-exec。不要为 harness 斜杠命令创建项目本地 commands 目录,提供方原生命令应保持全局。

适用场景

适合希望为仓库统一建立 Agent 行为策略的团队项目,包括需要评论门禁、空闲轮门禁、文档陈旧门禁或操作规则约束的工作流;也适合已有配置需要合并或调整的场景。

限制与注意事项

启用任何能力都必须由用户明确接受,向导不会自动开启。启用 subagent 允许列表时需用户自行提供模型 slug,空列表不产生约束且 doctor 会报告为故障;enforceAllowlist 为 true 但列表为空时不生效。规则中的 subagent(<type>) 仅在支持自定义类型的宿主上可满足,跨宿主应改用 command(<pattern>)。on: pr-open 不对草稿 PR 创建触发。若仓库没有文档陈旧检测工具,应保持该能力关闭,不要臆造命令。全局运行时检查失败时应先修复全局安装,再进行项目策略配置。