Skip to content
EN

Back to the catalog

by-harness

xmzdesign/santong-skill · skills.sh

Open source Repository Open in the app JSON README (API)

About

Skill publicada por xmzdesign/santong-skill no skills.sh. Instale com: npx skills add xmzdesign/santong-skill@by-harness

Details

Kind
Agent skills
Publisher
xmzdesign
Origin
skillssh
Category
ferramentas
Stars
1
Forks
2
Last push
2026-06-08T10:50:33Z
Repository state
ativo
Language
Python
Added
2026-10-07 06:26:40
Updated
2026-10-07 06:26:40
Origin id
xmzdesign/santong-skill/by-harness

README

# santong Skills 技能仓库

这里维护面向 Codex / Claude 等 Agent 的本地技能集合。每个一级目录代表一个独立 skill,真正的执行契约以各目录下的 `SKILL.md` 为准;本 README 只负责说明当前仓库结构、适用场景、常用命令和维护方式。

## 当前内容

```text
santong-skills/
├── by-harness/        # 工程闭环与任务执行 harness
│   ├── SKILL.md
│   ├── scripts/       # scaffold、拆任务、切任务、会话收口、运行时升级
│   ├── templates/     # 初始化时下发到目标仓库的模板
│   └── runtime/       # stable / beta 远程升级 manifest
├── by-tech-plan/      # 技术方案拷问、合成与评审模板
│   └── SKILL.md
└── docs/              # 演示材料与静态 showcase(不属于 skill 运行时依赖)
```

## 使用方式

- 需要某个技能时,让 Agent 直接使用对应 skill 名称,例如 `by-harness` 或 `by-tech-plan`。
- 修改或排查技能行为时,先读对应 `SKILL.md`,再读脚本和模板;不要只按 README 推断执行细节。
- `by-harness` 的脚本可以直接从本仓库运行,也可以由初始化后的目标仓库使用 `.harness/scripts/` 下发副本运行。

## by-harness

`by-harness` 用来给目标仓库安装并运行一套稳定的工程交付闭环:

```text
read task -> plan -> build -> qa -> fix -> mark_pass -> session_close
```

当前运行时版本为 `2.6.0`,版本号在以下位置保持一致:

- `by-harness/scripts/scaffold.py` 的 `HARNESS_RUNTIME_VERSION`
- `by-harness/scripts/update_runtime.py` 的 `LATEST_RUNTIME_VERSION`
- `by-harness/runtime/stable/manifest.json`
- `by-harness/runtime/beta/manifest.json`

### 初始化后布局

默认初始化会在目标仓库生成:

```text
AGENTS.md
CLAUDE.md
.codex/
.claude/
.harness/
├── config/
├── docs/
├── scripts/
└── task-harness/
    ├── index.json
    ├── tasks/
    └── progress/
```

说明:

- `AGENTS.md` 是 Codex 主入口,`CLAUDE.md` 是 Claude 主入口。
- `.harness/config/runtime-version.json` 记录运行时版本,用于后续升级。
- `.harness/config/update-policy.json` 控制 stable / beta manifest 检查、checksum 校验和自动升级策略。
- 新任务默认使用 v3 单任务文件模型,写入 `.harness/task-harness/tasks/<batch>/Txxx-*.json`。
- `.harness/feature_list.json` 只保留 legacy 兼容语义,新项目不要主动依赖它。
- `.harness/task-harness/progress/latest.txt` 是最近一次会话快照,详细历史在 `.harness/task-harness/progress/YYYY-MM/*.md`。

### 核心能力

- `scaffold.py`:向目标仓库安装 by-harness 运行时、入口文档、hooks、任务模板和工程规范。
- `decompose_tasks.py`:把需求拆成可独立验收的完整功能任务文件,避免按 DDL/Mapper/Service/Controller/测试等技术步骤拆碎。
- `ensure_task_branch.py`:定位当前应执行的任务,不负责强制切分支。
- `session_close.py`:写入会话进度、刷新 latest 快照,并给出下一任务建议。
- `task_switch.py`:在当前分支继续下一个任务,并触发运行时检查。
- `update_runtime.py`:做版本化升级、flat-to-grouped 迁移、manifest 拉取与 checksum 校验。
- `qa_runner.py` / `qa_report.py` / `qa_gate.py` / `testcontainers_doctor.py`:执行 QA Gate,解析 Surefire/Failsafe 报告,并将 required 集成测试门禁绑定回 contract。
- Java 规则:下发 Java 总门禁、分片规则和分布式 Java gate,约束 spec、contract、build、qa 全链路。
- Artifact + QA gate:任务标记 `passes=true` 前,必须有真实落盘的 `spec_path` 与 `contract_path`,且 required QA Gate 通过。

### 常用命令

初始化目标仓库:

```bash
python3 by-harness/scripts/scaffold.py \
  --project-name "your-project" \
  --description "一句话描述项目目标" \
  --tech-stack "Java 8 + Spring Boot" \
  --project-type "backend service" \
  --target-dir "/path/to/target-repo"
```

初始化后在目标仓库执行:

```bash
bash .harness/scripts/init.sh
```

持续拆任务:

```bash
python3 by-harness/scripts/decompose_tasks.py \
  --target-dir "/path/to/target-repo" \
  --batch-name "权限与审计" \
  --item "新增用户权限矩阵" \
  --item "增加组织级审计日志"
```

拆任务时宁可少而完整:每个 `--item` 应是一个可独立发布、验证、回滚的功能;同一功能里的建表、接口、服务、前端、测试和文档应写入该任务的 `steps`,不要拆成多个任务。

会话收口:

```bash
python3 .harness/scripts/session_close.py \
  --target-dir "." \
  --feature-id "B001-T001" \
  --outcome "in-progress" \
  --qa-score 72 \
  --note "已完成 plan/build,准备进入 fix"
```

自动续跑下个任务:

```bash
python3 .harness/scripts/task_switch.py continue --target-dir "."
```

执行 QA Gate:

```bash
python3 .harness/scripts/qa_runner.py --target-dir "." --contract ".harness/docs/contracts/<feature>.md"
python3 .harness/scripts/qa_gate.py --target-dir "." --result-json ".harness/docs/qa/<feature>.result.json"
```

手动检查或升级运行时:

```bash
python3 .harness/scripts/update_runtime.py --target-dir "." --check-remote --force-check
```

### 老仓库升级

老仓库优先使用版本化升级,不要重新全量覆盖:

```bash
python3 by-harness/scripts/update_runtime.py --target-dir "/path/to/target-repo"
```

升级策略:

- 默认先读取目标仓库 `.harness/config/runtime-version.json`。
- 有 `manifest_url` 时,从远程 manifest 拉取文件并校验 `sha256`。
- 没有 `manifest_url` 时,只执行本地兼容迁移。
- 本地版本高于当前内置版本时,只告警,不降级覆盖。
- `upgrade_legacy_repo.py` 仍保留兼容入口,但新维护优先使用 `update_runtime.py`。

当前 stable / beta manifest 地址:

```text
https://raw.githubusercontent.com/xmzDesign/santong-skill/main/by-harness/runtime/stable/manifest.json
https://raw.githubusercontent.com/xmzDesign/santong-skill/main/by-harness/runtime/beta/manifest.json
```

## by-tech-plan

`by-tech-plan` 用来把业务需求、PRD、接口约束和代码上下文整理成可评审、可上线、可追责的技术方案。它不是简单套模板,而是先澄清目标、边界、系统影响、数据模型、接口契约、并发一致性、测试、上线、运维和风险。

适用场景:

- 写技术方案、技术设计、方案评审文档。
- 把 PRD 或需求草稿整理成 Markdown 方案。
- 对接口、库表、任务、消息、缓存、发布和回滚做评审前拷问。
- 在 `by-harness` 执行前,把“要做什么、为什么这么做、验收口径是什么”先锁清楚。

工作模式:

- 拷问模式:用户只有粗略想法时,一次只问一个关键问题,并给出推荐答案供确认。
- 合成模式:输入材料足够时,先做信息回放,再产出完整技术方案。

建议输入:

- PRD / 需求说明
- 接口文档
- 代码仓库或相关模块路径
- 数据库表结构或迁移脚本
- 历史方案、ADR、线上问题或运维约束

`docs/examples/by-harness-by-tech-plan-demo.md` 展示了一个完整串联示例:先用 `by-tech-plan` 明确 LeadSpark 百应标签补充方案,再用 `by-harness` 拆成可执行任务。



## 维护校验

修改 `by-harness` 脚本、模板或 manifest 后,至少执行:

```bash
python3 -m py_compile by-harness/scripts/*.py
bash -n by-harness/templates/task/init.sh
python3 -m json.tool by-harness/runtime/stable/manifest.json >/dev/null
python3 -m json.tool by-harness/runtime/beta/manifest.json >/dev/null
```

如果改动了 manifest 中声明的文件,必须重新计算对应 `sha256`,并同步更新 stable / beta 两个 manifest。

修改 README 时同步检查这些高漂移点:

- `by-harness` 当前运行时版本。
- 初始化后的 `.harness/` 目录结构。
- 任务存储模型是否仍是 v3 单任务文件。
- stable / beta manifest 地址和默认更新策略。
- 新增或删除的 skill 目录。

More