OpenHIS — Harness Engineering 开发指南
模型决定上限,Harness 决定底线。
本文件是 OpenHIS 项目的 Harness Engineering 落地。整合了 OpenAI/Anthropic Harness Engineering 方法论与 walkinglabs 实战模式。
📋 项目信息
OpenHIS 医院管理系统 | Java 17 + Spring Boot + MyBatis Plus | Vue 3 + Element Plus | PostgreSQL
构建和运行
关键路径
🔧 5 子系统模型(WalkingLabs)
源自:Learn Harness Engineering
1. 指令子系统(Instruction)
| 文件 |
用途 |
| AGENTS.md(本文件) |
项目规则、约束、工作流程 |
.harness/feature_list.json |
机器可读的功能状态追踪 |
.harness/PROGRESS.md |
会话进度和已验证状态 |
.harness/session-handoff.md |
跨会话交接摘要 |
2. 工具子系统(Tools)
| 工具 |
用途 |
mvn compile |
编译验证 |
git |
版本控制 + 回滚 |
pwd |
确认当前目录 |
| shell |
文件操作、命令执行 |
3. 环境子系统(Environment)
| 组件 |
状态 |
| Java 17 |
✅ pom.xml 锁定 |
| Maven |
✅ mvn-wrapper |
| PostgreSQL |
✅ 192.168.110.252:15432 |
| Node.js |
✅ package.json 锁定 |
4. 状态子系统(State)
| 机制 |
用途 |
update_plan |
当前步骤检查点 |
.harness/PROGRESS.md |
跨会话进度记录 |
.harness/feature_list.json |
功能状态跟踪 |
git log |
变更历史追溯 |
5. 反馈子系统(Feedback)
| 层级 |
命令 |
时间 |
| L1 编译 |
mvn compile -pl openhis-application -am |
<30 秒 |
| L2 全链路 |
六环检查清单(见下文) |
<5 分钟 |
| L3 审查 |
你人工审查 diff |
10-30 分钟 |
📋 标准工作循环
🔗 全链路修复原则
修 Bug 时,不得"就事论事",必须走通完整的数据流全链路:
六环检查清单
常见陷阱
| 陷阱 |
解决 |
| 只修主入口,批量保存/签发保存漏了 |
检查所有 Service 实现类 |
| 前端加了后端没传 |
逐个入口确认 |
| UNION ALL 只改一半 |
所有子查询统一加 |
| DTO 继承链没检查 |
检查父类/子类字段一致性 |
| 只测新增没测编辑 |
新增和编辑都要测 |
📐 代码风格规范
Java 后端
| 项目 |
规范 |
| 包结构 |
com.openhis(业务)、com.core(核心) |
| 命名 |
类 PascalCase、方法 camelCase、常量 SCREAMING_SNAKE_CASE |
| 注解 |
@Slf4j、@Data、@Service/@Controller/@Repository |
| 异常 |
统一异常处理,业务异常继承 RuntimeException |
| 缩进 |
4 空格,行 120 字符 |
Vue 前端
| 项目 |
规范 |
| 框架 |
Vue 3 + Composition API + Element Plus + Pinia |
| 命名 |
组件 PascalCase、文件 kebab-case、变量 camelCase |
| 缩进 |
2 空格,单引号,行 100 字符 |
导入顺序
Java: java.* → javax.* → 第三方 → com.core.* → com.openhis.*
Vue: vue 相关 → 第三方 → @/ 别名 → 相对路径
🏗️ 开发约定
| 领域 |
约定 |
| API |
RESTful,统一响应格式,Swagger 文档 |
| 数据库 |
snake_case 命名,主键 id,软删除 valid_flag |
| 安全 |
所有 API 需权限验证,SQL 注入/XSS 防护 |
| 性能 |
Druid 连接池,路由懒加载,虚拟滚动 |
⚙️ 关键配置
| 项目 |
值 |
| 后端端口 |
18080 |
| 前端端口 |
81 |
| API 前缀 |
/openhis |
| Swagger |
/openhis/swagger-ui/index.html |
| 后端配置 |
application.yml / application-{profile}.yml |
| 前端配置 |
vite.config.js / .env.* |
📈 成熟度追踪
| 等级 |
特征 |
本项目 |
| L1 初始 |
零星使用 AI 工具 |
✅ 已超越 |
| L2 管理 |
基础约束 + 反馈 + 控制 |
✅ 当前 |
| L3 定义 |
标准化、可复用 |
🔄 walkinglabs 5 子系统整合 |
| L4 量化 |
数据驱动优化 |
⏳ |
| L5 优化 |
AI 自主优化 Harness |
⏳ |
📚 技能索引(Codex 内置)
| 技能 |
用途 |
$harness-engineering |
主方法论 — 约束 + 反馈 + 控制 + 持久 |
$walkinglabs-harness |
实战模式 — 5 子系统 + 模板 + 会话持续 |
$durable-execution |
检查点、幂等性、事件溯源 |
$closed-loop-testing |
质量门禁、测试策略、反馈循环 |
$constraint-design |
DSL 设计、策略模式、约束编排 |
$review-audit |
审查工作流、审计追踪、合规检查 |
$full-chain-fix |
全链路数据流修复 |
$karpathy-guidelines |
减少 LLM 编码常见错误 |
总纲: 你负责"做什么"和"为什么",Agent 负责"怎么做"和"做多好"
工作循环: Init → Plan → Implement → Verify → Cleanup