tzone85/themis
GitHub: tzone85/themis
AI代码生成合规网关,确保代码变更符合安全政策。
Stars: 0 | Forks: 0
# Themis
[](https://github.com/tzone85/themis/actions/workflows/ci.yml)
[](https://github.com/tzone85/themis/releases/latest)
[](https://go.dev)
[](LICENSE)
[](https://slsa.dev)
**AI生成代码的合规网关。**
Themis 记录并管理 AI 编码工具(Claude Code、Cursor、GitHub Copilot、如 [VXD](https://github.com/tzone85/vortex-dispatch) 之类的自主代理)对您的软件所做的每个更改。它捕获 *谁*(哪个 AI、哪个提示、哪个人类)更改了 *什么*(哪个事件合约、哪个服务、哪个下游消费者),通过密码学方式证明(每个拉取请求的签名 AI 材料清单、防篡改账本),并在合并之前阻止违反您政策的更改。
## 状态
## 安装
三种安装路径。选择一种。完整操作员指南:
[`docs/ops/deployment.md`](docs/ops/deployment.md).
```
# A. 容器(推荐)。
docker pull ghcr.io/tzone85/themis:0.1.0
# B. 签名二进制文件。
VERSION=v0.1.0
curl -sLo themis.tar.gz \
"https://github.com/tzone85/themis/releases/download/${VERSION}/themis_${VERSION#v}_linux_x86_64.tar.gz"
tar -xzf themis.tar.gz && sudo install -m 0755 themis /usr/local/bin/themis
# C. 从源代码。
git clone https://github.com/tzone85/themis && cd themis && make build
```
## 验证发布
每个发布都使用 [cosign keyless](https://docs.sigstore.dev/) 通过 GitHub Actions OIDC 签名,并按存档和按镜像提供 SPDX SBOMs (`syft`)。在部署之前:
```
# 容器镜像。
cosign verify ghcr.io/tzone85/themis:0.1.0 \
--certificate-identity-regexp '^https://github.com/tzone85/themis/' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
# 二进制:验证校验和文件,然后检查存档是否与行匹配。
cosign verify-blob \
--certificate checksums.txt.pem --signature checksums.txt.sig \
--certificate-identity-regexp '^https://github.com/tzone85/themis/' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
checksums.txt
grep themis_0.1.0_linux_x86_64.tar.gz checksums.txt | sha256sum -c
```
## 快速入门
要查看从从头到尾的引导教程,请参阅 [`docs/onboarding/README.md`](docs/onboarding/README.md).
此块是最小可能的端到端演示。
```
go build -o /tmp/themis ./cmd/themis
DIR=/tmp/themis-demo
# 1. 租户引导。
/tmp/themis tenant init --id acme --base "$DIR"
# 2. 为租户颁发管理员令牌。
/tmp/themis tokens grant --base "$DIR" --tenant acme --role admin --description quickstart
# 3. 目录快照(使用捆绑的示例树)。
/tmp/themis catalogue sync --id acme --base "$DIR" \
--source ./internal/catalogue/testdata/sample
# 4. 通过 git_heuristic(或编写自己的 AIChange JSON)导入真实的PR。
/tmp/themis ingest --id acme --base "$DIR" \
--adapter git_heuristic --pr-id "demo#1" \
--workdir "$PWD" --base-ref HEAD~1
# 5. 策略 + 决策。
echo 'version: 1
default: REQUIRE_APPROVAL
rules:
- name: doc-only allowed
when:
impact.kind: [DOC_ONLY]
then:
verdict: ALLOW' > "$DIR/themis.yaml"
/tmp/themis decide --id acme --base "$DIR" \
--aichange "$DIR/tenants/acme/aichange/demo_1.json" \
--policy "$DIR/themis.yaml"
# 6. 构建 + 签署BOM(本地ed25519;cosign-keyless-stub也可用)。
/tmp/themis bom build --id acme --base "$DIR" --pr-id "demo#1"
/tmp/themis bom sign --id acme --base "$DIR" --pr-id "demo#1"
# 7. 获取LLM风格的咨询笔记(默认为NullLLM)。
/tmp/themis advise --id acme --base "$DIR" --pr-id "demo#1"
# 8. 账本完整性 + 外部锚点。
/tmp/themis ledger doctor --id acme --base "$DIR"
/tmp/themis ledger anchor --id acme --base "$DIR" --sink "s3://demo/"
# 9. 启动REST API + 仪表板。
/tmp/themis serve --base "$DIR" --addr 127.0.0.1:8787 &
open http://127.0.0.1:8787/?tenant=acme # the dashboard
```
## 更新日志
有关按计划的历史记录,请参阅 [`CHANGELOG.md`](CHANGELOG.md)(计划 1 至 18)。README 以前曾嵌入它;该部分增长到 ~360 行,将面向操作员的内容推到了折叠之下。
## 文档
- 🚀 **[入门教程](docs/onboarding/README.md)** — 从干净安装到运行部署的 30 分钟引导,每个命令都经过现场验证。如果您想 *使用* Themis,请从这里开始。
- 📒 **[食谱](docs/onboarding/cookbook/README.md)** — 8 个命名食谱(锁定策略、供应链、覆盖、Sigstore-stub、OIDC 链、自定义声明映射等),每个食谱都引用了证明它的测试。
- 🧪 **[练习](docs/onboarding/exercises/README.md)** — 6 个动手练习,带有检查命令。
- 📜 **[更新日志](CHANGELOG.md)** — 按计划的历史记录。
- 📄 **[执行摘要](docs/superpowers/specs/2026-05-22-themis-exec-summary.md)** — 一页。
- 📄 **[完整设计规范](docs/superpowers/specs/2026-05-22-themis-design.md)** — 标准工件。
- 📁 **[利益相关者简报索引](docs/stakeholders/README.md)** — 合规性、工程、安全、执行、锚定试点提案。
- 🛠 **[操作](docs/ops/)** — [`deployment`](docs/ops/deployment.md), [`observability`](docs/ops/observability.md), [`backup-restore`](docs/ops/backup-restore.md), [`runbook`](docs/ops/runbook.md).
- 🔐 **治理** — [`SECURITY`](SECURITY.md), [`CONTRIBUTING`](CONTRIBUTING.md), [`SUPPORT`](SUPPORT.md), [`CODE_OF_CONDUCT`](CODE_OF_CONDUCT.md).
## 关于名称
**Themis** 是希腊神话中 *神圣法律、秩序和习俗* 的化身 — 决策遵循规则、规则可知、结果可与之对照的原则。与该产品的映射是直接的:受 AI 影响的代码更改遵循明确的政策,政策被记录,每个决策都是可回放的,审计跟踪是可独立验证的。图标(手持天平的正义女神)无需解释即可立即与合规买家产生共鸣。
以下是名称获得其位置的三条实际原因:
1. **企业可信而不可爱。** 合规性、风险和监管受众立即阅读参考;没有“那是什么意思?”的差距需要弥合。
2. **全球发音无歧义。** *THEE-miss.* 简短易说,拼写简单,在会议中不太可能听错。
3. **适用于未来的模块。** 如果 Themis 从 AI 编码治理扩展到一般 AI 系统运行时治理或更广泛的变化管理,该名称仍然适用。子模块可以采用互补的神话名称(`Themis Gateway` = 策略引擎,`Themis Ledger` = AI-BOM 存储,`Themis Eye` = 仪表板)而无需重新品牌。
在命名过程中被拒绝(在我们的买家空间中的搜索命名空间冲突):
- *Catalyst* — Cisco、Salesforce。
- *Argus* — Argus Cyber Security(相邻信息安全领域的既定供应商)。
- *Aegis* — Aegis Group 本身是一家保险公司。
- *Lineage* — Lineage Logistics、Lineage OS。
如果 `themis.dev` / `themis.ai` 不可用时的备选方案:**Provene**(一个以来源为基础的新词,具有干净的商标表面)。
## 解决的问题
在受监管的环境中(保险、银行、医疗保健、公共部门),AI 辅助工程创建了一个审计差距:当 AI 编写代码时,关于 *哪个 AI、哪个提示、哪个模型、哪个人类审查了它* 的痕迹在拉取请求合并的瞬间消失。合规团队合理地要求:“*证明 AI 没有违反合同、没有泄露数据,以及人类对任何重要事项都进行了签字。*”今天,大多数组织都无法做到。
非官方的行业答案是“不要使用 AI 处理任何重要事项。”这降低了生产力,滋生了规避措施,并且随着 AI 辅助工程成为常态,这是不可持续的。
Themis 关闭了差距:常规 AI 工作流程自动进行,影响合同的作业暂停以进行明确签字,每个更改都留下一个已签字的审计包,并且检测到系统被静默绕过并发出警报。
## 架构支柱(每条一行)
1. **适配器驱动式摄取** — 一个标准化的 `AIChange` 事件格式;每个 AI 工具通过其自己的适配器连接。
2. **[EventCatalog](https://eventcatalog.dev) 作为事实真相** — 我们知道哪些事件、服务和领域受更改影响。
3. **策略即代码** — YAML 规则;确定性裁决;纯函数引擎。
4. **只读账本** — 每个租户的 `events.jsonl` + SQLite WAL;通过 Merkle 链进行篡改证据。
5. **Sigstore 风格签名** — 默认 cosign keyless;本地密钥回退用于断网。
6. **通过文件系统隔离实现多租户** — 在存储层中,跨租户数据泄露在物理上是不可能的。
7. **多个表面,一个核心** — EventCatalog 插件、CLI、GitHub Action / git 钩、Web 仪表板、REST API。
## 首个试点目标
一个锚定受监管的组织(保险/金融服务、南非) — 请参阅 [锚定试点提案](docs/superpowers/specs/2026-05-22-themis-anchor-pilot-proposal.md) 了解范围、计划、退出标准和风险概况。
## 许可证(计划)
- **EventCatalog 插件** (`@themis/eventcatalog-plugin`): Apache 2.0。
- **AI-BOM 架构** (`themis-bom-schema`): Apache 2.0。
- **Themis 核心**:最初是开放核心与封闭源代码之间的利益相关者决策。在代码发布之前需要做出决定。
© 2026 Thando Mini。保留所有权利,直到许可决定最终确定。
标签:AI代码生成, AI伦理, AI治理, Apache许可证, Claude Code, Cursor, EVTX分析, GitHub Copilot, Go语言, NIDS, SLSA标准, VXD, 代码合规, 代码审查, 加密签名, 区块链技术, 容器化, 开源框架, 持续集成, 政策即代码, 日志审计, 智能代理, 智能合约, 源代码管理, 程序破解, 请求拦截, 跌倒检测, 软件供应链安全, 软件物料清单, 远程方法调用, 防篡改