Starter Harness Designer — Coding v1
"智能体做不好的事,不是能力不足,而是环境不足。"
这个技能是为谁准备的
- 第一次创建编码工具的人
- 想组建开发团队的非开发者/初级开发者
- 想用经过验证的全栈、API、ML模板快速开始的人
它保持了与专家版 harness-designer-coding 相同的 Planner → Generator → Evaluator 三段哲学,只是将每个阶段的输入复杂度和输出精度重新分配到了初学者水平。
| 阶段 | 专家版 | Starter(本技能) |
|---|---|---|
| Planner | 4阶段探索,开放式提问 | 3个选择题 → 匹配示例编号 |
| Generator | 设计方案 → 文件/结构生成 | 复制示例 + 替换 |
| Evaluator | 8大支柱独立验证 | 轻量级检查清单 — 仅检查替换遗漏和损坏引用 |
技能矩阵
│ 专家(自由设计) │ 初学者(复制示例)
──────────────┼─────────────────────────────┼────────────────────────────
工作区 │ harness-designer-workspace │ harness-starter-workspace
──────────────┼─────────────────────────────┼────────────────────────────
编码 │ harness-designer-coding │ harness-starter-coding ★(本技能)
不应使用本技能的情况
- 文档、分析、内容制作 → 使用
harness-starter-workspace - 需要架构自由度的高级用户 → 使用
harness-designer-coding - 企业级微服务 → 使用
enterprise技能
执行流程(总共5~10分钟)
1. [Planner] 3个选择题(应用类型、数据性质、规模)
2. [Planner] 匹配示例编号 + 推荐Scale Mode + 推荐预设
3. [Generator] 复制 harness-100 示例
4. [Generator] 替换项目名、技术栈、领域术语
5. [Evaluator] 轻量级检查清单(10秒)
6. 完成提示("现在可以这样开发了")
Phase 0: Pattern Match (Planner)
问题1 — 你想构建什么?(选择题)
| 编号 | 应用类型 | 代表示例 |
|---|---|---|
| 1 | 🌐 全栈网页应用(前端+后端+数据库) | #16-fullstack-webapp |
| 2 | 🔌 仅API服务器 | #18-api-designer |
| 3 | 📱 移动应用(iOS/Android) | #17-mobile-app-builder |
| 4 | 🗃️ 数据管道·ETL | #27-data-pipeline |
| 5 | 🤖 AI/LLM应用·RAG | #41-llm-app-builder |
| 6 | 🧪 ML实验·模型训练 | #31-ml-experiment |
| 7 | 🎨 设计系统(基于shadcn) | #36-design-system |
| 8 | 🔐 安全审计·渗透测试 | #28-security-audit |
| 9 | 🚀 CI/CD·仅基础设施 | #20-cicd-pipeline |
| 10 | ♻️ 遗留系统现代化·重构 | #22-legacy-modernizer |
问题2 — 规模如何?(选择题 → 自动决定Scale Mode)
| 规模 | Scale Mode | 部署代理 |
|---|---|---|
| 1人MVP/原型 | Single | 仅最核心的1名 |
| 小团队/1个月内 | Reduced | 3名(架构师 + 核心开发者 + QA) |
| 中大规模/生产环境 | Full | 5名(架构师 + 前端 + 后端 + QA + DevOps) |
问题3 — 项目名称是什么?
以文件夹名称为准。不询问技术栈 — 直接使用示例的默认技术栈(用户后续可自行替换)。
默认技术栈(不替换直接进行):
- 全栈: Next.js + Prisma + SQLite
- API: FastAPI 或 Express
- 移动端: React Native (Expo)
- 数据/ML: Python + pandas + scikit-learn
- RAG: Next.js + Vercel AI SDK + pgvector
问题4 — 是否保留变更历史?(可选,yes/no)
"以后改进这个工具时,是否创建一个空间来记录什么变了和为什么变?"
- yes → 自动创建
05-flow-history/维基 +00-system/protocols/flow-change-protocol.md(初始构建记录为 change 0001)。参考:~/.claude/skills/harness-designer-workspace/references/flow-history-template.md - no → 不创建(以后可手动添加)
用途: 流程改进回顾、回滚时的依据、创建其他类似工具时的参考。1~2周的原型建议 no。
管理原则: 此历史记录仅记录工作流系统(提示词、协议、模板、命令、CLAUDE.md)的变化。系统生成的产出物(代码、构建结果、部署记录)不在此记录范围内。
区分标准: "如果没有这个变更,下次执行的结果会不同吗?"
→ 不同 = 系统变更 = 记录 / 不变 = 产出物 = 无需记录
详情: 00-system/protocols/flow-change-protocol.md
Phase 1: 选择预设(评估权重)
| 预设 | 说明 | 自动推荐 |
|---|---|---|
| [均衡](默认) | 所有质量标准均衡 | 默认值 |
| [质量优先] | OWASP、测试、Reviewer 权重加倍 | 安全审计、支付、医疗、金融 |
| [速度优先] | Scale=Single,测试最小化 | 黑客松、单人原型 |
选择记录在 _workspace/00_input.md 中。
Phase 2: Generator — 复制并替换示例
复制步骤(自动回退)
自动检测 gh 是否存在,以最佳方式下载。只有 git 也能正常工作。
EXEMPLAR="{NN}-{exemplar-name}" # Planner匹配结果(例如: 16-fullstack-webapp)
BASE="ko/$EXEMPLAR/.claude"
if command -v gh &>/dev/null && gh auth status &>/dev/null 2>&1; then
# ── 方式 A: GitHub CLI (gh) ──────────────────────────────
echo "📡 使用 gh api 方式下载..."
FILES=$(gh api "repos/revfactory/harness-100/git/trees/main?recursive=1" \
--jq ".tree[] | select(.path | startswith(\"$BASE/\")) | select(.type==\"blob\") | .path")
mkdir -p .claude/agents .claude/skills
while IFS= read -r filepath; do
rel="${filepath#$BASE/}"
dest=".claude/$rel"
mkdir -p "$(dirname "$dest")"
gh api "repos/revfactory/harness-100/contents/$filepath" \
--jq '.content' | base64 -d > "$dest"
echo " ✅ $dest"
done <<< "$FILES"
else
# ── 方式 B: git sparse checkout(没有 gh 时) ─────────────
echo "📡 使用 git sparse checkout 方式下载..."
TMP=$(mktemp -d)
git clone --depth 1 --filter=blob:none --sparse \
https://github.com/revfactory/harness-100.git "$TMP"
git -C "$TMP" sparse-checkout set "$BASE"
mkdir -p .claude
cp -r "$TMP/$BASE/." .claude/
rm -rf "$TMP"
echo " ✅ sparse checkout 完成"
fi
| 条件 | 使用方式 | 所需工具 |
|---|---|---|
gh 已安装且登录 | 方式 A (gh api) | gh |
仅有 git | 方式 B (sparse checkout) | git |
| 两者都无或失败 | 方式 C(用户确认后 Claude 直接创建) | 无 |
方式 A·B 均失败时,Claude 会直接提示用户:
⚠️ 无法从 GitHub 获取模板。
原因:
gh和git均不可用或网络未连接。在这种情况下,Claude 可以参照示例索引说明直接编写工具文件。 但请注意,这不是实际验证过的模板,而是 Claude 重构的结构,质量可能会有差异。
是否继续?
- 是 → Claude 直接创建
.claude/文件(基于 exemplar-index.md)- 否 → 在此停止。请连接网络或安装 git 后重试。
用户选择是时: 读取 references/exemplar-index.md 中对应示例的描述,直接编写 CLAUDE.md、agents/、skills/ 结构。
用户选择否时: 立即停止,提示重试方法后结束。
完成后结构:
.claude/
├── CLAUDE.md
├── agents/
│ ├── architect.md — 需求·架构·数据库·API设计
│ ├── frontend-dev.md — React/Next.js(根据Scale可能移除)
│ ├── backend-dev.md — API·数据库·认证
│ ├── qa-engineer.md — 测试·代码审查(Reviewer)
│ └── devops-engineer.md — CI/CD·基础设施(根据Scale可能移除)
└── skills/
├── {orchestrator}/skill.md
├── component-patterns/skill.md
└── api-security-checklist/skill.md
- 根据 Scale Mode 删除代理文件:
- Single → 仅保留 architect 1人(或最相关的1人)
- Reduced → 保留 architect + 核心开发者 + QA
- Full → 保留全部5人
- 创建
_workspace/文件夹。产物编号约定:00_input.md— 整理后的用户输入01_architecture.md— 架构设计02_api_spec.md— API规格说明03_db_schema.md— 数据库Schema04_test_plan.md— 测试计划05_deploy_guide.md— 部署指南06_review_report.md— 审查报告
替换规则
| 原内容 | 替换为 | 备注 |
|---|---|---|
| 工具名称 | 用户项目名 | 16-fullstack-webapp → my-todo-app |
| 技术栈(Next.js/Prisma等) | 默认保留 | 仅当用户明确指定时替换 |
| 触发关键词 | 领域关键词 | "todo app" → 项目关键词 |
_workspace/NN_*.md | 保留 | 编号约定绝对禁止更改 |
| OWASP·SOLID·DORA 注入 | 绝对保留 | 领域专业性的核心 |
| Scale Modes 表格 | 保留 | Full/Reduced/Single 定义保留 |
SendMessage 协议 | 保留 | 代理间通信机制 |
编码代理行为原则(受Karpathy启发,必须插入)
复制示例后,必须在 .claude/CLAUDE.md 末尾强制添加以下部分(禁止替换/需保留):
## Coding Agent Behavior Principles (Karpathy-inspired)
所有编码代理在工作时必须遵守以下4条原则。
详情请参考 karpathy-guidelines 技能(自动触发)。
1. Think Before Coding — 明确假设,模糊时提问,提供替代方案
2. Simplicity First — 只做要求的。禁止推测性抽象和功能
3. Surgical Changes — 只修改请求的行。禁止改进周围代码
4. Goal-Driven Execution — 可验证的成功标准 → 循环 → 确认
Evaluator 轻量级检查清单中添加 "CLAUDE.md 中存在 Karpathy 4原则部分" 项目。
禁止替换列表
- 框架名: OWASP Top 10, SOLID, DDD, Test Pyramid, DORA Metrics, CWE Top 25, Star/Snowflake Schema, SHAP/LIME, Great Expectations
- 协议: SendMessage, TaskCreate, TaskUpdate
- 文件夹约定:
_workspace/,src/, 编号前缀 - Scale Modes 定义
- 3种测试场景结构 (Normal / Existing / Error)
- bkit 自动修改: Karpathy 4原则、OWASP Top 10、DORA Metrics、Scale Modes 禁止被 bkit 代理(code-analyzer, pdca-iterator 等)的建议修改
- 循环元素: 完成标准(终止条件)、Reviewer(qa-engineer)审查顺序、review_report 的判定格式 — 禁止替换或删除(循环必须有 Goal+Check+终止条件才能成立)
术语简化解说(面向用户)
| 原文 | 简化 |
|---|---|
| architect | 架构师 |
| frontend-dev | 前端开发者 |
| backend-dev | 后端开发者 |
| qa-engineer | 质量审查者 |
| devops-engineer | 部署负责人 |
| Dependency DAG | 任务顺序表 |
| Scale Mode | 团队规模 |
内部文件保留原文,仅与用户对话时使用简化版。
Phase 3: Evaluator — 轻量级检查清单
自动检查(10秒)
-
.claude/CLAUDE.md存在 -
agents/文件数量与 Scale Mode 一致(Single=1, Reduced=3, Full=5) - 包含 Reviewer 角色 (qa-engineer)
-
skills/<orchestrator>/skill.md存在 - 至少包含1个 agent-extending 技能(component-patterns 或 api-security-checklist)
- 已创建
_workspace/文件夹 + 编号产物模板 - OWASP·SOLID 等框架名保留(通过 grep 确认原文数量一致)
- 存在 Trigger Boundaries
should-NOT部分 - 存在 Scale Modes 表格
- 存在 3种测试场景 (Normal / Existing / Error) 部分
- 原始示例名称(如
16-fullstack-webapp)残留0处 - (问题4选择 yes 时)已创建
05-flow-history/文件夹 +00-system/protocols/flow-change-protocol.md - orchestrator skill.md 中存在可检查的完成标准(终止条件)
- Reviewer 产物(review_report)的格式包含通过/需要修改判定
失败时
- 替换遗漏 → 重新向 Planner 提问
- 框架丢失 → 重新复制示例后替换
- 失败3次 → 提示切换到专家版
harness-designer-coding
Phase 4: 完成提示(面向非开发者的平实报告)
✅ 编码工具已准备好!
📁 位置: /my-todo-app/.claude/
👥 开发团队(Reduced 模式,3人):
- 架构师(architect): 数据库·API结构设计
- 后端开发者: Next.js API + Prisma
- 质量审查者(qa): 测试·代码审查
🛠️ 默认技术栈: Next.js + Prisma + SQLite(可替换)
🚀 使用方法:
1. 在 Claude Code 中请求类似 "给我做个待办应用登录功能"
2. 团队按顺序工作:
架构师 → 后端开发者 → 质量审查者
3. 成果物: _workspace/01_architecture.md ~ 06_review_report.md
4. 源代码: 生成在 src/ 文件夹中
🔒 内置安全·质量:
- 自动应用 OWASP Top 10 检查清单
- 基于 SOLID 原则的代码审查
- 3种测试场景(正常·现有文件·错误)
🔄 团队工作方式(循环):
团队按照 "目标(Goal) → 实现 → 审查(Check) → 通过则完成" 的循环工作。
最后的质量审查者报告(06_review_report.md)就是验证结果。
如果结果不满意,请具体说明并重新请求 —
最终判断是您的角色(外循环)。
📘 下一步:
- 如果想扩充团队到5人,添加前端和部署负责人(Full 模式)
- 高级定制请使用 harness-designer-coding 技能
参考资料
- exemplar-index.md — 27个编码示例 + Scale Modes + 框架索引
- 原版: https://github.com/revfactory/harness-100 (Apache-2.0)
- 专家版变体:
harness-designer-coding - 工作区变体:
harness-starter-workspace