[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80657":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":15,"starSnapshotCount":15,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},80657,"medharness","charliehzm\u002Fmedharness","charliehzm","让医疗机构所有大模型流量：PHI 不外泄 · 模型走白名单 · 全量可审计 · 成本可控。  ","https:\u002F\u002Fgithub.com\u002Fcharliehzm\u002Fmedharness",null,"Python",101,8,11,0,51,2.86,"Apache License 2.0",false,"main",[22,23,24,25,26,27,28,29,30,31,32,33],"ai-coding","claude-code","compliance","healthcare","hipaa","mcp","medical","openspec","phi","pipl","presidio","skills","2026-06-12 02:04:05","# MedHarness\n\n> **医疗数据 SaaS 公司的 AI Coding 合规落地体系**\n>\n> 开源 · Apache 2.0 · HIPAA + PIPL + 数据安全法 + 健康医疗数据安全指南 四合规\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](LICENSE)\n[![Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocs-CC_BY--SA_4.0-lightgrey.svg)](LICENSE-CC-BY-SA-4.0)\n[![Status](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FStatus-v0.5.0--edge_in_progress-blue.svg)](CHANGELOG.md)\n[![Tests](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftests-337_passed-brightgreen.svg)](#实测验证)\n[![PHI Recall](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPHI_recall-1.0_\u002F_FP_0.09-brightgreen.svg)](#l5-合规层三道闸门)\n[![Container](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontainer-8_MCP_images-brightgreen.svg)](#容器化部署栈)\n\n---\n\n## 这个项目解决什么\n\n你是医疗数据 SaaS 技术负责人。团队在用 Cursor \u002F Claude Code 写代码。\n\n**昨天**，一个工程师在 chat 框粘了 3 行病人样例数据让 LLM 帮 debug。这 3 行包含姓名 \u002F 身份证号 \u002F 病案号 \u002F 入院日期。\n\n**它们走了境外公共 API。**\n\n恭喜，你刚违反了 **HIPAA + PIPL + 数据安全法 + 健康医疗数据安全指南** 四部法规。监管发现可以罚到全球营业额 4%。\n\n**MedHarness 让这种事不可能发生**：\n\n- Hook 自动扫所有 prompt（**PHI 召回 100% \u002F 误报 9%**，220 个合成样本测）\n- 想带数据进 prompt？必须先经 `phi-desensitize`（AES-256-GCM + AAD 上下文绑定，**p99 加密 0.02ms**）\n- LLM 调用必须经 `mcp-model-router`（5 层 runtime gate，**11\u002F11 越狱攻击全防**）\n- 每个 tool \u002F model \u002F Skill 调用全量落 `mcp-audit-log`（3 层 WORM + 哈希链 + 6 年保留）\n- 合规审查必须用**异构模型**（防 v2.0 \"自证清白\"教训，runtime 不可绕过）\n\n**这不是文档承诺。这是 60+ 个 leaf 的代码 + 337 个测试 + 4 个红队演练 + 9 个 ADR · CI weekly enforce**。\n\n---\n\n## 一眼数字\n\n| 维度 | 数字 |\n|---|---|\n| 测试 | 337 passed + 1 skipped |\n| 红队演练 | 4 全实装（PHI \u002F router \u002F audit \u002F injection） |\n| CI gates | 5 enforced（每周一自动跑 + 失败自动开 issue） |\n| PR merged | 80+ leaf-level |\n| ADR | 9 落档（每个决策含替代 + 否决理由） |\n| 容器 | 8 MCP image · 全 Trivy scan · 0 high vuln |\n| 漏出 | 0 PHI · 0 contract violations |\n\n---\n\n## 你现在能拿到什么\n\n### 已落地（v0.5.0-edge · Phase 1-3 大部分完成）\n\n| 能力 | 实现 | 落地证据 |\n|---|---|---|\n| **PHI 检测** | `mcp\u002Fphi-detector\u002F` | Presidio + 11 中文识别器 + 6 上下文规则 · recall 1.0 \u002F FP 0.09 |\n| **PHI 脱敏 + KMS** | `mcp\u002Fdesensitize\u002F` | AES-256-GCM + AAD 5 字段 · FileKeyProvider 多代轮换 · 云 KMS 接口预留 |\n| **LLM 路由 runtime gate** | `mcp\u002Fmodel-router\u002F` | 5 层 PolicyCore + 异构性强制 · \u003C 5ms overhead |\n| **WORM 审计日志** | `mcp\u002Faudit-log\u002F` | hashchain + fallback + 3 态 state machine + ClickHouse schema |\n| **Prompt injection 防御** | `mcp\u002Fprompt-injection-scan\u002F` | 5 类攻击 detector · 25 case corpus · block rate 1.0 |\n| **8 MCP 容器化** | `mcp\u002F**\u002FDockerfile` | multi-stage + 非 root + Trivy scan · 生产 \u003C 500MB \u002F stub \u003C 200MB |\n| **Docker Compose 编排** | `deploy\u002Fdocker-compose.prod.yml` | 8 services + DMZ\u002Finternal 双网 + per-service resource limits |\n| **TLS 反代** | `deploy\u002Fnginx\u002F` + `scripts\u002Fgen-tls.sh` | self-signed + BYO 双路径 · TLS 1.2\u002F1.3 · HSTS |\n| **红队 CI cron** | `.github\u002Fworkflows\u002Fcompliance.yml` | weekly Monday · 失败自动开 issue · 90-day artifact |\n\n### 进行中\n\n- T12 部署运维脚本（T12.1 backup+restore ✅ · T12.2 upgrade+teardown · T12.3 收尾）\n\n### 路线图\n\n- **Phase 4** 离线包 + 培训文档（T13-T20 · 单 tarball \u002F install.sh \u002F 合规 runbook \u002F 培训材料）\n- **v0.6+** 真 ClickHouse 集成 \u002F drill 3 语义重放 \u002F 真 jailbreak corpus 校准 \u002F 云 KMS proxy-mode\n\n详细 task ledger：[openspec\u002Fchanges\u002Ffeat-edge-tier-production-v0.5.0\u002F](openspec\u002Fchanges\u002Ffeat-edge-tier-production-v0.5.0\u002F)\n\n---\n\n## L5 合规层 · 三道闸门\n\n医疗 SaaS 公司的合规生死线。MedHarness 落地这三道闸门：\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  闸门一  PHI 出站扫描 (UserPromptSubmit Hook)                  │\n│         开发者粘 PHI 到 chat → Hook 自动扫描 → 阻断          │\n│         recall 1.0 · FP 0.09 · 220 正 + 110 负样本验证       │\n└─────────────────────────────────────────────────────────────┘\n                          │\n                          ↓\n┌─────────────────────────────────────────────────────────────┐\n│  闸门二  脱敏 + KMS (mcp-desensitize)                         │\n│         业务真要带数据 → 主动调 desensitize API              │\n│         AES-256-GCM + AAD 绑定 5 字段 · 反查表 ClickHouse    │\n│         p99 加密延迟 0.02ms                                   │\n└─────────────────────────────────────────────────────────────┘\n                          │\n                          ↓\n┌─────────────────────────────────────────────────────────────┐\n│  闸门三  模型路由 runtime gate (mcp-model-router)             │\n│         LLM 调用必经此 · 5 层 PolicyCore                      │\n│         allowlist + role + data_level + heterogeneity        │\n│         \u003C 5ms overhead · 11\u002F11 router bypass 全防            │\n└─────────────────────────────────────────────────────────────┘\n                          ↓\n              所有动作落审计 (mcp-audit-log)\n              WORM · 哈希链 · 6 年保留 · 4 小时可重放\n```\n\n三道闸门**不冗余**：闸门一管\"无意识泄露\"，闸门二管\"主动带数据\"，闸门三管\"运行时不可绕\"。Swiss cheese model — 任意一层漏，下一层挡。\n\n附加防线（第四层）：`mcp-prompt-injection-scan` · 5 类攻击家族 · 25 case 合成 corpus · drill 4 block rate 1.0 \u002F FP 0.0。\n\n详见 [`design.md` ADR-01\u002F02\u002F03\u002F04\u002F07](openspec\u002Fchanges\u002Ffeat-edge-tier-production-v0.5.0\u002Fdesign.md)。\n\n---\n\n## 6 层架构\n\n```\nL6 治理层   技术委员会(双周) │ 合规委员会(月度) │ Skill Owner 制\n─────────────────────────────────────────────────────────────────\nL5 合规层   数据分级 │ PHI 脱敏 │ 模型可用性矩阵 │ 注入防护 │ 审计血缘\n           ↑↓ 横切，所有动作必经\n─────────────────────────────────────────────────────────────────\nL4 SOP 层   12 步主通道 + 5 步 micro 通道（速度 \u002F 合规双轨）\n─────────────────────────────────────────────────────────────────\nL3 Skill 层 23 Skill：合规 5 \u002F 通用 16 \u002F 别名 2\n─────────────────────────────────────────────────────────────────\nL2 Harness  Orchestrator + 6 Sub-agent │ Tiered Memory │ 9 Hook │ 8 MCP\n─────────────────────────────────────────────────────────────────\nL1 模型层   编码 \u002F Review \u002F 架构 \u002F 医学长文 \u002F 脱敏小模型\n           异构性 runtime 强制（防 v2.0 \"自证清白\"教训）\n```\n\n---\n\n## 容器化部署栈\n\nv0.5.0-edge 已 production-ready：\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  Host (single instance · 30-人公司部署 · 约 4-5GB \u002F 4 cpu)   │\n│                                                              │\n│  ┌─────────────┐                                             │\n│  │   nginx     │  ← DMZ entrypoint                           │\n│  │  (TLS 443)  │     TLS 1.2\u002F1.3 + HSTS + Mozilla cipher    │\n│  └──────┬──────┘                                             │\n│         │                                                    │\n│  ┌──────┴───────────────────────────────────────────────┐   │\n│  │  medharness_internal (internal: true · 不暴露 host)   │   │\n│  │                                                       │   │\n│  │  phi-detector  desensitize  model-router  audit-log  │   │\n│  │  ci-trigger    internal-kb  pm-bridge     vector-db  │   │\n│  └───────────────────────────────────────────────────────┘   │\n│                                                              │\n│  Host volumes:                                               │\n│   \u002Fdata\u002Fmedharness\u002Faudit       (WORM + chattr +a)           │\n│   \u002Fdata\u002Fmedharness\u002Fkeystore    (chmod 0o400)                │\n│   \u002Fetc\u002Fmedharness\u002Ftls          (TLS cert · self-signed\u002FBYO) │\n└─────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## 三种开始方式\n\n### 路径 A · 5 分钟试一下（开发机）\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcharliehzm\u002Fmedharness.git && cd medharness\npython -m venv .venv && source .venv\u002Fbin\u002Factivate\npip install -r requirements.txt -r requirements-dev.txt\n\n# 跑全量测试 + 4 红队演练\n.venv\u002Fbin\u002Fpython -m pytest tests\u002F                       # 337 passed\nbash tests\u002Fred-team-drills\u002Frun_all.sh                    # 4 drills + 5 gates\n\n# 跑 12 步 SOP（合成 PHI 走完合规闸门）\nbash dryrun_e2e_v2.sh --ci                               # Step 0-12 pass\n```\n\n### 路径 B · 容器化部署（生产 staging）\n\n```bash\n# 1. 生成 TLS cert（默认 self-signed · BYO 见 ADR-06）\nbash scripts\u002Fgen-tls.sh\n\n# 2. 构建 8 MCP images\nfor mcp in phi-detector desensitize model-router audit-log \\\n           ci-trigger internal-kb pm-bridge vector-db; do\n  bash scripts\u002Fdocker-build.sh \"$mcp\"\ndone\n\n# 3. 启动 stack\ncp deploy\u002F.env.production.example deploy\u002F.env.production\ndocker compose -f deploy\u002Fdocker-compose.prod.yml \\\n               --env-file deploy\u002F.env.production up -d\n\n# 4. 健康检查\ndocker compose ps                                        # 9 services healthy\ncurl -k https:\u002F\u002Flocalhost\u002Fapi\u002Froute                      # 走 nginx → model-router\n```\n\n### 路径 C · 离线包部署（T13 完成后可用）\n\n待 Phase 4 完成。届时单 tarball + `install.sh` 一键部署到客户内网。\n\n---\n\n## FAQ\n\n**Q: 这跟 LangChain \u002F LlamaIndex 是什么关系？**\n不替代。LangChain \u002F LlamaIndex 是 LLM 应用框架（让你写 RAG）· MedHarness 是合规工程体系（确保你写的 RAG 不违法）。两者正交，可共存。\n\n**Q: 这跟 spec-kit \u002F OpenSpec 什么关系？**\nOpenSpec 是我们用的 spec 工具（已加 12+5 双通道扩展）· spec-kit 是 GitHub 的通用 spec 工具。MedHarness 在 OpenSpec 之上做了医疗合规专属的 Step 0 (合规预检) + Step 10 (合规 Gate) + Step 12 (审计冻结)。\n\n**Q: 这跟 Cursor \u002F Claude Code 什么关系？**\nCursor \u002F Claude Code 是 AI 编辑器（IDE）· MedHarness 是给 Claude Code 用的合规体系。我们选 Claude Code 作为企业标准 IDE（Skill 系统 + Hook 治理友好）· Cursor 仅限白名单场景（前端原型 \u002F 公开文档）。\n\n**Q: 我们才 10 个工程师，这套体系是不是太重？**\nv0.5.0-edge 部署堆约 4-5GB mem \u002F 4 cpu · 一台 host 跑得动。SOP 有 5 步 micro 通道处理轻量改动（\u003C 2 文件 \u002F 仅文档 \u002F 配置）· 不是所有 PR 都要走 12 步。\n\n**Q: 我已经有 LGTM \u002F Prometheus \u002F Loki 监控，需要 mcp-audit-log 吗？**\n需要。监控记的是 system metrics · audit-log 记的是 AI 决策血缘（哪个 prompt \u002F 哪个模型 \u002F 哪个 Skill \u002F 哪条数据）。HIPAA 6 年可重放是监管硬要求，不是可选项。\n\n**Q: 训练好的中文医疗 PHI detector 在哪？**\n社区版用规则 + Presidio + 11 中文识别器（recall 1.0 是合成语料）· 真实生产场景需要训练过的模型。这是商业版的差异化点（见社区版 vs 商业版表）。\n\n**Q: 不适合谁？**\n通用 SaaS（用 spec-kit）· 医疗器械 SaMD（用 IEC 62304 工具链）· 个人爱好者（项目过重）· 不接触 PHI 的纯前端项目（不需要 L5 合规层）。\n\n---\n\n## 与开源生态的关系\n\n| 我们用 | 我们加 |\n|---|---|\n| [microsoft\u002Fpresidio](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002F) | 中文医疗 recognizer + 31 fields.yml + RegexOnlyNlpEngine workaround |\n| [Fission-AI\u002FOpenSpec](https:\u002F\u002Fgithub.com\u002FFission-AI\u002FOpenSpec) | 12+5 双通道 SOP · Step 0\u002F10\u002F12 合规扩展 |\n| [github\u002Fspec-kit](https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit) | verify \u002F compliance gate \u002F audit freeze |\n| [anthropics\u002Fskills](https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills) | 医疗专属 21+2 Skill |\n| [modelcontextprotocol\u002Fservers](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers) | 8 件医疗合规专属 MCP |\n\n**我们独有**（核心 IP，不在上述任何生态里）：\n\n- **异构性 runtime gate**（model-router 5 层 PolicyCore · 不可绕）\n- **3 层 WORM 审计**（ClickHouse + chattr +a + fallback state machine + 哈希链）\n- **12+5 双通道 SOP**（速度 \u002F 合规双轨 · 不是非此即彼）\n- **PIPL + 健康医疗数据安全指南本土化合规层**\n- **90 天督导 + 主理人接棒培训方法论**\n\n---\n\n## 12 步 SOP\n\n```\nStep 0   合规预检         数据分级 + 模型 allowlist\nStep 1-3 PRD \u002F TDD \u002F OpenSpec    业务诉求 → spec\nStep 4-5 任务拆解 + Mock 数据    合成测试数据\nStep 6   实现             PHI 任务强制 phi-desensitize 前置\nStep 7   Verify           一次通过率 ≥ 75%\nStep 8   Review + Debug   Reviewer-Agent 异构模型\nStep 9   Mocking 测试     联调\nStep 10  合规 Gate        Compliance-Agent 异构 + 阻断\nStep 11  合规整改         仅 Step 10 有整改时\nStep 12  审计冻结归档     AUDIT_BUNDLE 哈希链上链\n```\n\n**5 步 micro 通道**（≤ 2 文件 \u002F 文档 \u002F 配置）：见 [研发交付SOP-v2.2-micro.md](研发交付SOP-v2.2-micro.md)。\n\n---\n\n## 5 条红线（任何 PR 必读）\n\n1. **PHI 永不裸入 prompt** — 含原始患者标识必须先经 `phi-desensitize`\n2. **模型按 allowlist 路由** — 不允许直连境外公共 API\n3. **审计全量记录** — 每次 tool \u002F 模型 \u002F Skill 调用必落 `mcp-audit-log`\n4. **测试数据合规** — 禁止生产采样脱敏，强制走 `test-data-generation` 合成\n5. **绕过 Hook = 合规违规** — 关 Hook 需双委员会签字\n\n---\n\n## 实测验证\n\n**当前 main**：\n\n```bash\n.venv\u002Fbin\u002Fruff check .                        # clean\n.venv\u002Fbin\u002Fpython -m pytest tests\u002F              # 337 passed, 1 skipped\nbash tests\u002Fred-team-drills\u002Frun_all.sh          # 4 drills + 5 gates 全过\nbash dryrun_e2e_v2.sh --ci                     # Step 0-12 pass\n```\n\n**Red-team CI**（`.github\u002Fworkflows\u002Fcompliance.yml` · 每周一 09:00 CST）：\n\n| Drill | Threshold | 实测 |\n|---|---|---|\n| drill 1 PHI recall | ≥ 92% | 1.0 |\n| drill 1 FP rate | ≤ 15% | 0.09 |\n| drill 2 router bypass | 11\u002F11 deny | 11\u002F11 |\n| drill 3 audit chain | intact + tampered detected | 全过 |\n| drill 4 injection block_rate | ≥ 95% | 1.0 |\n| drill 4 injection fp_rate | ≤ 10% | 0.0 |\n\n**Docker build CI**（`.github\u002Fworkflows\u002Fdocker-build.yml` · 每周一 10:00 CST · Trivy scan）：\n\n| 维度 | 阈值 | 实测 |\n|---|---|---|\n| 生产 MCP image | \u003C 500MB | 4\u002F4 通过 |\n| stub MCP image | \u003C 200MB | 4\u002F4 通过 |\n| Trivy HIGH+CRITICAL | 0 | 0 |\n\n失败时自动开 GitHub Issue（label: `compliance` + `red-team-regression` + `sev-2`）。\n\n---\n\n## 社区版 vs 商业版\n\n| 能力 | 社区版（Apache 2.0） | 商业版 |\n|---|---|---|\n| 6 层架构骨架 + 23 Skill + 8 MCP（容器化） | ✅ | ✅ |\n| 4 红队 drill + 5 CI gates | ✅ | ✅ + Slack\u002FPagerDuty |\n| 31 fields.yml | ✅ 通用 | ✅ + 客户化字段 |\n| 训练好的中文医疗 phi-detector 模型 | ❌ | ✅ |\n| 托管 MCP 集群（KMS \u002F WORM） | ❌ | ✅ |\n| Dashboard SaaS | ❌ | ✅ |\n| 24x7 合规事件 SLA | ❌ | ✅ |\n| 1 对 1 督导 \u002F 现场培训 | ❌ | ✅ |\n\n**License 永久承诺**：已发布的社区版组件，license **永久** Apache 2.0 \u002F CC BY-SA 4.0。\n不会效仿 MongoDB \u002F Elastic 改 SSPL \u002F BSL。\n\n详见 [docs\u002Fcommunity-vs-commercial.md](docs\u002Fcommunity-vs-commercial.md)。\n\n---\n\n## 加入\n\n| 我想... | 路径 |\n|---|---|\n| 提问 \u002F 案例分享 | [GitHub Discussions](https:\u002F\u002Fgithub.com\u002Fcharliehzm\u002Fmedharness\u002Fdiscussions)（推荐 · 可被搜索） |\n| 报 bug \u002F 提 feature | [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fcharliehzm\u002Fmedharness\u002Fissues\u002Fnew\u002Fchoose) |\n| 报合规漏洞 \u002F PHI 泄漏 | [GitHub Security Advisory](https:\u002F\u002Fgithub.com\u002Fcharliehzm\u002Fmedharness\u002Fsecurity\u002Fadvisories\u002Fnew)（私密 · **勿在 public issue 提**） |\n| 早期客户接洽 \u002F 深度合规咨询 | 微信 `supernera`（maintainer 直联 · 工作日 24h） |\n| 贡献代码 | [CONTRIBUTING.md](CONTRIBUTING.md) → fork → PR |\n\n**Star 这个仓库**如果你认同这个方向。Star 数会决定我们投入多少时间在社区版 vs 商业版上。\n\n---\n\n## License + 引用\n\n- 代码：[Apache 2.0](LICENSE)\n- 文档：[CC BY-SA 4.0](LICENSE-CC-BY-SA-4.0)\n- 安全披露：[SECURITY.md](SECURITY.md)\n- 行为准则：[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\n\n```bibtex\n@software{medharness2026,\n  title  = {MedHarness: Compliance Engineering for Medical AI Coding},\n  author = {MedHarness Maintainers},\n  year   = {2026},\n  url    = {https:\u002F\u002Fgithub.com\u002Fcharliehzm\u002Fmedharness},\n  license = {Apache-2.0}\n}\n```\n\n---\n\n## 项目目标\n\n> 成为医疗数据 SaaS 公司用 AI Coding 的事实合规标准。\n>\n> 让每一行 AI 写的医疗代码都可审计 \u002F 可追溯 \u002F 可重放。\n","MedHarness 是一个专为医疗数据 SaaS 公司设计的 AI 编码合规落地体系，确保在使用 AI 生成代码时不会违反 HIPAA、PIPL 等关键法规。其核心功能包括自动 PHI（个人健康信息）检测与脱敏处理、LLM 调用的安全路由控制以及全面的审计日志记录，采用 AES-256-GCM 加密技术保证数据安全，并通过一系列自动化测试和红队演练验证了系统的有效性。适用于任何需要处理敏感医疗数据且希望利用 AI 辅助开发但又必须严格遵守隐私保护法律法规的企业或团队。",2,"2026-06-11 04:01:32","CREATED_QUERY"]