use-charter/charter

GitHub: use-charter/charter

Charter 是一款离线、确定性的 AI agent 就绪度扫描器,对代码仓库进行 0–100 评分并针对上下文、MCP 安全、密钥、CI 等 9 大类共 18 条规则提供可操作的修复方案。

Stars: 0 | Forks: 0

Charter ### AI-agent 就绪度,量化评分。 Charter 对任何代码仓库的 AI 编程 agent 安全操作度进行 **0–100** 的评分 — 然后针对每一个不足之处提供确切的修复方案。完全离线、确定性执行、不依赖任何 LLM。 [文档](https://use-charter.dev/docs) · [规则目录](https://use-charter.dev/rules) · [GitHub Action](https://use-charter.dev/docs/ci/github-action) · [更新日志](https://use-charter.dev/changelog)

Release CI License Go SLSA Level 3 Network Output


charter doctor scoring a repository: 85/100 PASS, one HIGH finding, per-category readiness bars
## 为什么选择 Charter AI 编程 agent 的安全性和有效性,完全取决于它所操作的代码仓库。缺失的 上下文文件、未固定版本的 MCP server、泄漏的密钥以及缺失的 CI 门禁,都会悄然降低 每一个接触你代码的 agent 的表现——而你往往是在查看 diff 时才发现这些问题,而非事先察觉。 Charter 让这种就绪度变得**可衡量**:一个确定性评分,涵盖 **9 个类别**的 **18 条规则**,以及 **0 次网络调用**。在本地运行它,在 CI 中将其设为门禁,并修复它标记出的问题。 | | | |---|---| | **确定性** | 同一代码仓库,每次评分相同。核心环节无模型介入,杜绝不稳定输出。 | | **离线运行** | 绝不向外部发送数据。对于私有、受监管和气隙隔离的代码库完全安全。 | | **可操作** | 每一项检查结果都包含规则 ID、原因和修复方法。`charter fix` 会以 diff 优先的方式自动修复其中许多问题。 | | **跨供应商** | 提供适用于 Claude Code、Cursor、Copilot、Gemini、Windsurf、Codex、Zed 和 Replit 的统一评分标准。 | ## 快速开始 ``` # 安装 (macOS / Linux) brew install use-charter/tap/charter # 为当前 repo 评分 charter doctor ``` 这就是完整的闭环。`charter doctor` 会扫描目录树,评估 18 条规则,并打印出一个分段评分,附带每个类别的详细分类以及每一项内联的检查结果。退出码即作为门禁: `0` 通过 · `1` 低于阈值 · `2` 错误。 ## 安装 我们为 **macOS、Linux 和 Windows** 的 `amd64` 和 `arm64` 架构均提供已签名的二进制文件。请在下方选择 适合你的平台,或在任一平台上使用 Go。 ### macOS ``` brew install use-charter/tap/charter ``` 兼容 Apple Silicon 和 Intel 芯片。之后可使用 `brew upgrade charter` 进行升级。 ### Linux ``` # Homebrew (Linuxbrew) brew install use-charter/tap/charter ``` 没有安装 Homebrew?请从 [最新发布版本](https://github.com/use-charter/charter/releases/latest) 中获取适合你架构的压缩包 — `charter__linux_amd64.tar.gz` (或 `_arm64`) — 然后执行: ``` tar -xzf charter_*_linux_*.tar.gz sudo install charter /usr/local/bin/charter ``` ### Windows 从 [最新发布版本](https://github.com/use-charter/charter/releases/latest) 下载 `charter__windows_amd64.zip` (或 `_arm64`),解压后将 `charter.exe` 添加到你的 `PATH` 中: ``` # 从你解压 charter.exe 的文件夹中 $dest = "$env:LOCALAPPDATA\Programs\charter" New-Item -ItemType Directory -Force $dest | Out-Null Move-Item charter.exe $dest -Force [Environment]::SetEnvironmentVariable("Path", "$env:Path;$dest", "User") # reopen the terminal ``` ### 任意平台 — Go ``` go install go.use-charter.dev/charter/cmd/charter@latest # requires Go 1.26+ ``` ### 从源码构建 ``` git clone https://github.com/use-charter/charter && cd charter go build -o charter ./cmd/charter ``` ### 验证下载 每次发布都**附有 cosign 签名及 SLSA Level 3 来源证明**,并包含 `checksums.txt`、 Sigstore 包 (`checksums.txt.sigstore.json`) 以及针对每个压缩包的 SBOM。你可以随时确认已安装的内容: ``` charter version --verify # prints version, build provenance, and cosign verification status ``` ## 命令 精简而强大的操作界面。以下七个命令在你的 shell 和 CI 环境中的行为完全一致。 | 命令 | 功能描述 | |---------|--------------| | `charter doctor` | 扫描并为代码仓库打分 (0–100),提供按类别的分数细分。 | | `charter init` | 为缺失的上下文文件生成基础结构。绝不覆盖现有文件。 | | `charter fix` | 针对受支持的规则提供 diff 优先的自动修复——在你批准之前绝不写入任何内容。 | | `charter explain ` | 打印某条规则的类别、摘要、严重程度和文档 URL。 | | `charter suppress ` | 登记一项受管理的豁免,包含原因、负责人和到期时间。 | | `charter report` | 生成独立的离线 HTML 报告(内嵌字体和数据)。 | | `charter version` | 打印版本号、构建来源和供应链验证状态。 | ## 检查内容 涵盖 9 个类别的 18 条规则。严重程度决定了评分权重;每一条规则都拥有 `AE-*` ID 及对应的修复方案。完整参考请见 [use-charter.dev/rules](https://use-charter.dev/rules)。 | 类别 | 规则 | 检查内容 | |----------|-------|-----------| | **Context** | `AE-CTX-001/002/004/006` | 具备有意义且准确的 `AGENTS.md`;agent 产生的产物已被 git 忽略;强调标记克制有度。 | | **Secrets** | `AE-SEC-001/002` | agent 可见的文件或 MCP 配置中无明文密钥。 | | **MCP Safety** | `AE-MCP-001/002/003` | MCP server 版本已固定,来源受信任,已声明认证信息。 | | **Agent Config** | `AE-CC-001/002` | 无危险的 hook 命令;具备明确的 agent 编辑范围。 | | **Environment** | `AE-ENV-001` | 可复现的工具链 — 包含 lockfile 及固定版本。 | | **CI** | `AE-CI-002` | Charter 和工作流 linter 在 CI 中运行。 | | **Testing** | `AE-TEST-001` | 存在自动化测试,以便 agent 进行自我验证。 | | **Autonomy** | `AE-AUTO-001` | 验证命令易于发现。 | | **Governance** | `AE-SUPPRESS-001/002/003` | 豁免操作具备原因、审批人,且保持在健康的比率内。 | ## 评分机制 ``` score = max(0, 100 − B×20 − H×10 − M×4 − L×1) final = min(score, applicable_cap) ``` `B`/`H`/`M`/`L` 分别代表 Blocker/High/Medium/Low 级别的问题发现数量。Informational 级别的发现 不计入其中。硬性上限确保了对危险情况的严格把控: - agent 可见内容中出现明文密钥 → **≤ 49** - 存在任何活跃的 Blocker → **≤ 59** 该公式是公开的,并且在同一个主版本内保持稳定。相同的输入,相同的评分——始终保持一致。 ## 在 CI 中设为门禁 ``` # .github/workflows/charter.yml - uses: use-charter/charter-action@v1 with: threshold: "80" # fail PRs that score below this verify: true # cosign + sha256 the binary before running ``` 该 action 会下载已签名的二进制文件,运行 `charter doctor --format sarif`,并上传至 **GitHub Code Scanning** —— 检查结果将直接内联显示在 PR 中,无需学习使用新的控制面板。详见 [`action/README.md`](./action/README.md)。 ## 契约 Charter 做出了十项承诺,并在每一项上展现其实际行动: - ✅ 绝不发起网络调用 - ✅ 核心逻辑不调用任何 LLM - ✅ 不删除任何文件 - ✅ 绝不静默修改 — 仅限 diff 优先的修复 - ✅ 每一项发现都附带规则 ID 和修复指南 - ✅ 每一次发布都经过签名 (SLSA L3 + cosign) - ✅ 评分公式公开,且在同一个主版本内保持稳定 - ✅ 跨供应商支持所有主流编程 agent - ✅ 绝不打印密钥 - ✅ CLI 永久免费 (Apache-2.0) ## 性能表现 `charter doctor` 可在 **≤ 2 秒**内扫描包含 **50,000 个文件**的代码库,且 RSS 内存占用 **≤ 256 MiB** — 该表现已通过 CI 中的 `moon run :perf` 进行断言验证。 ## 技术栈 | 层级 | 构建工具 | |-------|------------| | **核心 CLI** | ![Go](https://img.shields.io/badge/Go_1.26-00ADD8?style=flat-square&logo=go&logoColor=white) | | **构建与工具链** | ![Moonrepo](https://img.shields.io/badge/Moonrepo-6F52F4?style=flat-square&logo=moonrepo&logoColor=white) ![mise](https://img.shields.io/badge/mise-A78BFA?style=flat-square) ![Bun](https://img.shields.io/badge/Bun-1B1817?style=flat-square&logo=bun&logoColor=white) ![hk](https://img.shields.io/badge/hk_hooks-2F6FDB?style=flat-square) | | **Web 与文档** | ![Astro](https://img.shields.io/badge/Astro-BC52EE?style=flat-square&logo=astro&logoColor=white) ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white) ![Mintlify](https://img.shields.io/badge/Mintlify-18181B?style=flat-square&logo=mintlify&logoColor=white) | | **基础设施与 CI/CD** | ![Cloudflare Workers](https://img.shields.io/badge/Cloudflare_Workers-F38020?style=flat-square&logo=cloudflareworkers&logoColor=white) ![Cloudflare Pages](https://img.shields.io/badge/Cloudflare_Pages-F38020?style=flat-square&logo=cloudflarepages&logoColor=white) ![GitHub Actions](https://img.shields.io/badge/GitHub_Actions-2088FF?style=flat-square&logo=githubactions&logoColor=white) | | **供应链** | ![SLSA](https://img.shields.io/badge/SLSA_L3-45DD92?style=flat-square) ![cosign](https://img.shields.io/badge/Sigstore_cosign-003A70?style=flat-square) ![SARIF](https://img.shields.io/badge/SARIF_2.1.0-A78BFA?style=flat-square) | ## 文档 | | | |---|---| | **产品文档** | [use-charter.dev/docs](https://use-charter.dev/docs) (Mintlify) · 源码位于 [`docs/product/`](./docs/product/) | | **规则参考** | [use-charter.dev/rules](https://use-charter.dev/rules) | | **架构设计** | [`docs/internal/architecture/charter-architecture-2026.md`](./docs/internal/architecture/charter-architecture-2026.md) | | **仓库契约** | [`AGENTS.md`](./AGENTS.md) · [`ARCHITECTURE.md`](./ARCHITECTURE.md) · [`SECURITY.md`](./SECURITY.md) · [`CONTRIBUTING.md`](./CONTRIBUTING.md) · [`TESTING.md`](./TESTING.md) | ## Star 历史 Star History Chart ## 许可证 [Apache License 2.0](./LICENSE)。采用 DCO 优先的贡献方式。

为 agent 时代而构建 · use-charter.dev
标签:AI代理, EVTX分析, Go, Ruby工具, 云安全监控, 安全合规, 日志审计, 程序员工具, 网络代理, 静态分析