megaalive/myzig
GitHub: megaalive/myzig
myzig 是一款为 Zig 语言提供确定性所有权推理、证据审计及标准库接口隔离的代码质量教练工具。
Stars: 0 | Forks: 0
# myzig
一款用于 Zig 代码和编码 Agent 的确定性安全教练。
myzig 专注于 **所有权推理与证据**:义务、可靠的确定性、
结构化的修复选择,以及可审计的凭证 —— 同时保持原生 Zig 的
一等公民地位(无需强制导入、无方言、无 ReleaseFast 性能损耗)。
除了所有权教练之外,**`myzig.compat`** 还提供了一个精简的门面层,用于
封装高频变动的 Zig std 接口(fs/dir/env/path/time),这样像 zrig 这样的内部测试应用就
无需在每次工具链升级时重写调用点。当前规则集版本:
`0.0.0-seed26`。
## 构建
需要最新的 Zig 0.17 开发工具链。
```
zig build
zig build test
zig build run -- --help
powershell -File scripts/ci.ps1 # local/agent CI parity (fmt + build + test + CLI smoke)
```
GitHub Actions 是构建门禁(默认使用 ubuntu;可通过
`workflow_dispatch` → `full_matrix` 运行完整的 OS 矩阵)。使用 `powershell -File scripts/ci.ps1` 可以在
离线环境或 Agent 循环中执行相同的冒烟测试;它与 `.github/workflows/ci.yml` 保持一致。
## 库亮点
```
const myzig = @import("myzig");
// Coach schemas
_ = myzig.schema.seed_alloc_undischarged;
// Std insulation — prefer over raw std.Io.Dir / env / time
const data = try myzig.compat.readFileAlloc(io, gpa, "file.txt", 1024 * 1024);
defer gpa.free(data);
```
## CLI
```
myzig check [path] [--ratchet] [--prefer-compat] [--sarif] [--receipt]
myzig explain [--json|--agent]
myzig explain --rule [--json|--agent]
myzig adopt [path] # editable .myzig/policy.md + baseline if missing
myzig baseline [path] # snapshot findings for ratchet
myzig friction [--sources] # living text tips; update without new Zig code
myzig limits [--sources] # published honest detector ceilings
myzig agent [--full] # agent contract (+ limits/friction/rules)
myzig rules [--json|--markdown|--agent|--sarif]
myzig receipt [path]
myzig verify-cost
myzig verify-cost --list
myzig init
```
渐进收紧:在执行 `myzig baseline` 之后,CI 可以运行 `myzig check --ratchet ` 来拒绝 **新增的** 技术债务,同时接受当前快照。
SARIF:`myzig check --sarif` 会输出面向构建系统的 SARIF 2.1.0(适用于 GitHub code scanning 上传)。
开销见证:`myzig verify-cost id-passthrough` 会写入 `.myzig/cost-witnesses/…`;只有这样,`myzig receipt` 才能包含 `claimed.verify_cost`。
## 目录结构
| 路径 | 职责 |
|------|------|
| `src/` | 库(`myzig`)与 CLI |
| `spec/` | 规则目录的事实来源(`.zon`) |
| `fixtures/` | 原生 Zig 的通过/失败示例 |
| `research/incidents/` | 事故实验记录(内部测试数据集) |
项目配置在执行 `myzig init` 后存放在 `.myzig/` 目录中。
## 身份
```
deterministic · honest · auditable
```
辅助工具和包装器只会在事故和开销见证证明其合理性时才会引入。
标签:AI合规, AI编程助手, SOC Prime, Zig, 云安全监控, 开发工具, 所有权机制, 文档结构分析, 静态分析