CLAUDE.md@harness · git:20260711.c4ff200 · 2026-07-11 · sha256 35d2037fa0c5f104
CLAUDE.md@harness git:20260711.c4ff200A
Immutable. This exact content never changes and is served at /api/v1/blob/35d2037fa0c5f104.
# Harness Ops 目录约定 `harness/` 是工程、工具和第三方 Skills 的长期经验驾驭层。这里的 `harness` 指稳定的约束、读取、验证和写回框架;目录中的具体 Skill 一律使用 `<target>-ops` 命名,其中 `ops` 是 Operations,表示目标对象的运行、维护、适配与持续改进。 ## 创建路由 当用户说“创建一个 harness skill”“给某工程建 harness”或“把这个工具的经验沉淀起来”时: 1. 使用官方 `skill-creator`。 2. 默认创建到 `harness/<target>-ops/`,名称和 frontmatter `name` 都使用 `<target>-ops`。 3. 不再创建 `*-harness` 目录;`harness` 只作为顶层分类名。 4. 先确认目标对象和典型触发场景;没有额外要求时,采用本文件规定的最小结构。 ## 最小结构 ```text harness/<target>-ops/ ├── SKILL.md ├── .gitignore └── experience.local.md # 本机创建,默认不进 Git ``` 只有在真实需要时才增加: - `scripts/`:反复执行且需要确定性的修复、诊断或提取脚本。 - `references/`:较长的可分享机制、协议和最佳实践。 - `assets/`:Skill 产出必须复用的模板或静态资源。 不要给单个 Skill 增加 README、安装指南或变更日志;设计说明统一放在仓库 `docs/`。 ## 职责边界 Ops Skill 可以服务两类对象: 1. **自有工程**:保存架构入口、调试路径、运行拓扑、问题复盘和维护手册。 2. **第三方工具或 Skills**:不复制、不篡改上游能力,专门保存最佳实践、版本差异、本机水土不服、兼容性问题、已验证绕法和组合方式。 `SKILL.md` 负责稳定、可分享的部分: - 目标对象和触发场景 - 读取本地经验的规则 - 问题路由、验证顺序和写回协议 - 换一台机器仍成立的最佳实践 - 隐私边界和失效处理规则 `experience.local.md` 负责实时、本机私有的部分: - 绝对路径、机器、地址、端口、账号、代理、登录态和版本快照 - 本机复现的错误、根因、修复命令和验证证据 - 上游 Skill 在本机不适配的表现与绕法 - 尚未泛化、需要继续验证的经验 ## 工作循环 每次触发 Ops Skill 时: 1. 先读 `experience.local.md`,再检查源码或当前运行态。 2. 优先复用最近且带验证证据的经验;旧记录冲突时不做平均判断。 3. 完成排障、适配或最佳实践验证后,当场写回本地经验。 4. 只有经过重复验证、与具体机器无关的结论,才提炼进 `SKILL.md`。 5. 既有经验失效时标记或替换旧结论,不允许只追加相互冲突的新段落。 ## Worktree 原则 Ops Skill 位于独立的 `jacky-skills/harness/`,不放进被维护工程的 `CLAUDE.md`。这样同一工程的多个 Worktree 可以读取同一份外部经验源,避免每个分支各自复制、合并和版本化本机事实。 如果 `jacky-skills` 自身使用多个 Worktree,本机经验仍应选择一个明确的主目录作为唯一写入源,其他 Worktree 通过链接或安装注册表复用,避免出现多个 `experience.local.md` 真相源。 ## 隐私和分享 - `experience.local.md`、`*.local.*` 和私有子目录必须被 `.gitignore` 排除。 - 真实用户路径、主机、密钥、私有端点和代理端口不得进入可分享文件。 - 分享时只发布通用协议、抽象示例和已脱敏的最佳实践。 - 文件格式允许演进,但“先读取、再验证、解决后写回、私有事实不进 Git”是稳定协议。 ## 重命名与迁移 重命名 Ops Skill 时必须同步更新:目录名、frontmatter `name`、description 触发词、自引用、跨 Skill 调用、安装器、审计器、README、测试和全局链接。以评测、打分为职责的 `harness-benchmark` 不属于本目录,不因名称含 `harness` 而迁入。