Summary
初始化、维护和执行 by-harness 工作流时必须使用本 skill。适用于用户提到 by-harness、harness、初始化、持续拆任务、执行 feat、plan/build/qa/fix、quick fix、session_close、自动续跑、runtime 升级,或需要下发 Java 总门禁、分布式…
xmzdesign/santong-skill · Archived
初始化、维护和执行 by-harness 工作流时?
npx skills add xmzdesign/santong-skill --skill by-harness
初始化、维护和执行 by-harness 工作流时必须使用本 skill。适用于用户提到 by-harness、harness、初始化、持续拆任务、执行 feat、plan/build/qa/fix、quick fix、session_close、自动续跑、runtime 升级,或需要下发 Java 总门禁、分布式…
This repository is archived — consider an actively maintained alternative.
?
20 installs在当前项目一键初始化 Harness Engineering 框架。适用于用户提到 'harness'、'init harness'、'initi…
2 installs将需求拆解为结构化任务清单,生成长时运行 Agent 的任务管理系统(基于 Anthropic Effective harness…
1 installsControl a real browser via CDP: clicking, typing, navigation, logged-in sessions, JS-rendered o…
8 installsRelated neighbors and high-traction skills in the same topics — useful to compare before installing.
Guidance for distinctive, intentional visual design when building new UI or reshaping an existi…
866.4K installsBrowser automation CLI for AI agents. Use when the user needs to interact with websites, includ…
810.4K installsReview UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "chec…
617.3K installsBuild, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and …
576.5K installsDebug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe …
568.9K installsOther skills from xmzdesign/santong-skill.
npx skills add xmzdesign/santong-skill
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
18,351 B
SUMMARY.md
590 B
by-harness 是一个独立 skill,用来给目标仓库安装并运行一套稳定的工程闭环:
read task -> plan -> build -> qa -> fix -> mark_pass -> session_close
核心目标不是“多放一些文档”,而是让模型每次开发都有明确的任务来源、规格、实现边界、验收方式和会话收口记录。
收到请求后,先把用户意图归到下表之一,再执行对应动作。
| 用户意图 | 常见说法 | 主要动作 |
|---|---|---|
| 初始化 harness | “初始化”“用 by-harness 初始化这个仓库” | 运行 scripts/scaffold.py,再提示执行或执行 .harness/scripts/init.sh |
| 持续拆任务 | “持续拆任务”“拆 5 个任务”“把这个主题拆一下” | 运行 scripts/decompose_tasks.py,默认新增 v3 单任务文件 |
| 执行某个任务 | “执行某个任务 ID”“继续当前任务” | 读取任务,按 plan/build/qa/agent-review/fix/mark_pass 闭环推进 |
| 快速模式 | “quick fix”“fast-track”“修一下报错”“局部调整校验规则” | 未显式指定 plan/build/qa/sprint 的自然语言改动也先运行 .harness/scripts/quickfixclassifier.py;high quick-fix 走轻量修复,high/medium fast-track 走局部快速通道,low 自动回到标准闭环 |
| 会话收口 | “收口”“保存进度”“session_close” | 运行 .harness/scripts/session_close.py |
| 自动续跑 | “继续下个任务”“自动续跑” | 运行 .harness/scripts/task_switch.py continue --target-dir . |
| 老仓库升级 | “升级 harness”“同步 runtime”“更新脚手架” | 运行 scripts/update_runtime.py,默认不创建备份文件;确需回滚快照时显式传 --backup |
| Java 规范约束 | “Java 硬规则”“Service 接口实现”“MapStruct/金额/Redis/分页规则” | 先读 .harness/docs/java-dev-conventions.md 入口,再按触发维度读取 .harness/docs/java/rules/ 分片规则 |
| 分布式 Java 约束 | “分布式编码规范”“幂等/重试/锁/事务/消息/缓存一致性” | 使用 .harness/docs/java/rules/distributed-java-gate.md 约束 spec/contract/build/qa |
用户发起 by-harness 指令后,默认输入的技术方案、需求描述或任务背景已经经过用户确认。不要反复澄清需求;能从当前仓库、技术方案、.harness/task-harness/index.json 和既有 spec/contract 推断时,直接形成假设、取舍、风险和范围外事项并继续产出。只有目标目录/任务 ID 完全无法定位、或下一步会执行破坏性操作时,才问一个必要问题。
初始化使用 skill 内置脚本:
python3 {{SKILL_PATH}}/scripts/scaffold.py \
--project-name "<项目名称>" \
--description "<项目目标>" \
--tech-stack "<技术栈,可选>" \
--project-type "<项目类型,可选>" \
--design-guidance "<设计约束,可选>" \
--target-dir "<项目目录>"
初始化后生成:
AGENTS.md、CLAUDE.md.codex/、.claude/.harness/config/、.harness/docs/、.harness/scripts/、.harness/task-harness/.harness/task-harness/index.json.harness/task-harness/tasks/.harness/config/runtime-version.json.harness/config/update-policy.json如果目标仓库已经存在 AGENTS.md / AGENT.md / agents.md / agent.md 或 CLAUDE.md / claude.md,初始化与升级都必须保留原内容,只合并或替换 <!-- BEGIN BY-HARNESS MANAGED BLOCK --> 到 <!-- END BY-HARNESS MANAGED BLOCK --> 之间的 by-harness 托管区块。
初始化完成后,执行或提示:
bash .harness/scripts/init.sh
项目根 AGENTS.md / CLAUDE.md 会要求每个新会话开始、处理用户请求前先运行:
python3 .harness/scripts/update_runtime.py --target-dir . --check-remote
该检查仍受 .harness/config/update-policy.json 的 checkintervalminutes 限制,默认 12 小时内不会重复访问远程;失败只记录原因,不阻断开发。
不要在已有项目中默认使用 --force。只有用户明确要求覆盖时才使用。
默认使用 v3 单任务文件存储:
.harness/task-harness/index.json:稳定路由索引,记录 task_globs,日常拆任务不修改它。.harness/task-harness/tasks/*.json 与 .harness/task-harness/tasks/**/*.json:权威任务源,每个任务一个独立 JSON 文件;新任务默认按批次目录归档。.harness/task-harness/progress/YYYY-MM/*.md:每次会话一个独立进度文件,避免多分支同时追加同一月度文件。.harness/task-harness/progress/latest.txt:legacy 兼容快照,不作为权威进度源。.harness/task-harness/features/*.json:只作为 v2/legacy bucket 读取兼容,不作为新任务默认写入目标。session-context.json / session-boundary.json 已禁用:收口和续跑只依赖会话日志、任务状态和模型提示,不再写会引发分支冲突的会话运行态 JSON。.harness/feature_list.json 只用于 legacy 项目兼容:如果旧项目已经存在该文件,可以继续作为旧 active bucket 视图;新项目不要主动创建它。
任务 ID 不再使用 feat-01 这种全局递增序号。新任务内部仍保留由 UTC 时间戳、类型前缀、描述 slug 和短 hash 组成的机器 ID,例如:
20260508T153012Z-feat-login-rate-limit-a3f9c2
文件名和展示名使用批次号、任务号、中文标题和短 hash,例如:
.harness/task-harness/tasks/B001-20260508T153012Z-音频转写/
T001-音频转写记录DDL和Mapper仓储-a3f9c2.json
任务 JSON 内会写入 batchid、batchname、displayid、localdisplayid、taskno、title 和 displayname。日常定位优先使用 displayid(如 B001-T001),也兼容完整机器 ID。排序依赖 priority、created_at、id,不要把执行顺序编码进机器 ID。
当用户要求拆解需求、追加任务或扩展 backlog 时,运行:
python3 {{SKILL_PATH}}/scripts/decompose_tasks.py \
--target-dir "<项目目录>" \
--item "<任务描述1>" \
--item "<任务描述2>" \
--category "feature"
执行原则:
read task -> plan -> build -> qa -> fix -> mark_pass 闭环。DDL、Mapper/DAO、Service、Controller/API、前端页面、测试、文档 等单独任务;这些应作为同一个功能任务的 steps。.harness/task-harness/tasks/<批次目录>/,不得为了追加任务而修改 backlog-core.json 或 index.json。旧 feature_list.json 或 v2 bucket 过大时,才考虑运行 legacy 重平衡工具:
python3 {{SKILL_PATH}}/scripts/rebalance_tasks.py --target-dir "<项目目录>"
当用户要求执行某个 feature,按以下顺序推进:
.harness/scripts/ensuretaskbranch.py 扫描单任务文件与 legacy bucket 后选择当前任务。description、steps、specpath、contractpath、qareportpath。.harness/docs/specs/<feature>.md。convention-check、required 集成测试门禁和 Agent Review Closeout(single-pass,只审查一次);失败要记录问题。specpath / contractpath 文件真实存在后,才可把 passes=false 改为 true。如果 3 轮后单元测试仍失败,保持 passes=false,记录原因、已尝试修复和下一步建议。
当用户请求的是明确、局部、可验证改动时,先运行分类器,而不是直接进入完整 feature 闭环。即使用户没有显式说 quick-fix 或 fast-track,只要请求是修复、调整、优化、补测试、改校验、改提示或处理报错这类自然语言改动,且没有显式指定 plan/build/qa/sprint,也必须先分类:
python3 .harness/scripts/quick_fix_classifier.py \
--target-dir . \
--prompt "<用户原始改动描述>"
分类器输出 confidence、recommendedmode、riskflags、changed_files 和 diff 统计:
confidence=high 且 recommendedmode=quickfix:可进入 quick-fix。recommendedmode=fasttrack 且 confidence=high|medium:可进入 fast-track。confidence=low 或 recommendedmode=standardfeature:必须走标准 read task -> plan -> build -> qa -> fix -> mark_pass。Quick/Fast Track 允许范围:
执行后必须复核:
python3 .harness/scripts/quick_fix_classifier.py \
--target-dir . \
--phase post-diff \
--prompt "<用户原始 bug 描述>"
如果 post-diff 出现 risk_flags、超过文件/行数阈值,或验证失败原因不明确,立即补 spec/contract 并升级到标准闭环。quick-fix/fast-track 只写进度日志,不得修改任务定义或把 feature passes 置为 true。
Quick-fix 收口使用:
python3 .harness/scripts/session_close.py \
--target-dir . \
--quick-fix \
--title "<bug 标题>" \
--outcome pass \
--note "<修改文件、验证命令和结果>"
如 quick-fix 关联已有任务,可追加 --feature-id "<task-id>" 作为日志引用,但仍不能绕过该任务的 spec/contract/QA Gate 门禁。
Fast-track 收口使用:
python3 .harness/scripts/session_close.py \
--target-dir . \
--fast-track \
--title "<改动标题>" \
--outcome pass \
--note "<范围、风险判断、验证命令和结果>"
每次会话结束或用户要求保存进度时,运行:
python3 .harness/scripts/session_close.py \
--target-dir . \
--feature-id "<task-id>" \
--outcome "pass|fail|blocked|in-progress" \
--qa-score "<0-100,可选>" \
--note "<本轮摘要>"
completed 作为旧命令兼容别名,会被脚本映射为 pass;新命令必须优先使用 pass。
收口脚本会:
.harness/task-harness/progress/YYYY-MM/<timestamp>-<task-id>.md 独立进度日志。.harness/task-harness/progress/YYYY-MM/<timestamp>-quickfix|fasttrack-<slug>.md,并在日志中记录 workmode=quickfix|fast_track。.harness/task-harness/progress/latest.txt。继续下个任务时运行:
python3 .harness/scripts/task_switch.py continue --target-dir .
老仓库优先使用版本化升级,不要重新全量覆盖:
python3 {{SKILL_PATH}}/scripts/update_runtime.py --target-dir "<项目目录>"
升级行为:
--backup。.harness/runtime-cache/runtime-version.json,没有 cache state 时再读 .harness/config/runtime-version.json。manifest_url 时从远程 manifest 拉取并校验 checksum;Python runtime 与 hook 写入 .harness/runtime-cache/,项目 tracked 位置只保留稳定 wrapper,避免多分支重复产生 runtime diff。manifest_url 时只执行本地兼容迁移。远程定时检查使用:
python3 .harness/scripts/update_runtime.py --target-dir . --check-remote
默认 update-policy.json 是 enabled=false;只有用户配置 manifest_url 并开启后才自动检查。
初始化会下发 Java 工程规范:
.harness/docs/java-dev-conventions.md.harness/docs/java/rules/Java 后端采用分片 Java 总门禁,并融合真实项目验证过的落地规则:
00-core.md、java-ddd.md、dubbo-api.md、logging-error.md、persistence-infra.md、testing-security.md、distributed-java-gate.md。distributed-java-gate.md。AGENTS.md 是主契约,定义 Plan / Build / Verify / Fix。.harness/docs/TASK-HARNESS.md 是任务层契约,不得覆盖主契约。passes=true;advisory/manual QA 与 Agent Review 结果必须记录。passes=true 的 feature,如果缺少 specpath 或 contractpath 对应文件,pre-completion hook 必须阻断完成。--force。执行完成后,用简短结构回报:
用 by-harness 初始化这个仓库,项目名 xxx,目标是 xxx持续拆任务 主题:支付链路稳定性,拆 5 个执行 20260508T153012Z-feat-login-rate-limit-a3f9c2,严格按 read task -> plan -> build -> qa -> fix -> mark_passquick-fix 修复一个明确小 bug,先分类,修完后 quick closefast-track 调整一个局部校验规则,先分类,修完后 fast close把当前会话收口,记录 qa 分数和下一步升级这个项目里的 harness runtime这个 Java 功能按 Java 总门禁检查 Service、金额、Redis、分页和配置这个 Java 功能按分布式编码规范检查幂等、重试、锁、事务和消息