Reckit

🛡️ 结构化验证引擎,让AI代码可审计

AI驱动的代码验证引擎,通过并行审查、变异测试和交叉验证生成可审计的质量证明,支持多语言项目从构建到发布的全生命周期质量门禁。

收藏
4.4k
安装
1.2k
版本
2.4.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

reckit 是一种结构化的 AI 代码验证框架,其核心设计哲学是"AI 不能自我验证"——通过将 Builder/Tester/Breaker 角色分离到独立上下文中,避免模型自我确认偏差。它支持四种自动检测模式:

  • BUILD(绿场开发):从空仓库 + PRD 启动完整流水线
  • REBUILD(迁移重构):捕获既有行为并回放验证
  • FIX(缺陷修复):修复后验证无回归
  • AUDIT(代码审计):只读验证与报告

执行流程采用门禁系统(Gates)设计,涵盖:AI Slop 扫描、类型检查、Ralph 循环(实现计划验证)、测试质量、变异测试、交叉验证、行为捕获、回归检测、SAST 静态分析、LLM-as-Judge、设计审查、CI 集成等 12 类门禁。

并行集群架构(Swarm):主代理生成 wreckit 编排器,调度 Architect、Implementer、Gate Worker 等子代理并行执行,最终聚合为 Ship/Caution/Blocked 三级裁决。

显著优点

1. 去中心化验证:通过角色隔离和交叉验证消除单点信任,比单一 LLM 输出更可靠
2. 语言无关设计:TypeScript/Python/Rust/Go/Swift/Java/Shell 等主流语言全覆盖,通过 detect-stack.sh 自动识别工具链

3. 确定性脚本体系:所有验证逻辑封装为可复用 shell 脚本,避免每次重写验证逻辑

4. 可审计产出:生成 .wreckit/ 证明包(proof bundle),包含门禁结果、覆盖率、变异杀伤率、SAST 报告等,支持 dashboard.json 可视化

5. 自适应容错:支持 skip_gates 配置和警告阈值调整,在严格性与实用性间平衡

潜在局限

  • Swift/Xcode 生态支持降级:Swift 缺乏自动化变异测试工具,依赖 AI 估算且强制输出 CAUTION;Xcode 项目类型检查置信度为 medium
  • 集群依赖较重:Swarm 模式需要 maxSpawnDepth >= 2maxChildrenPerAgent: 8,在资源受限环境需回退到单代理顺序执行
  • 外部工具链假设:部分门禁(如 Stryker、PIT、cargo-mutants)依赖宿主环境预装,未内嵌
  • 2026-02-22 版本 Codex CLI 兼容性问题--full-auto 沙箱会阻断 npm install,需使用 --dangerously-bypass-approvals-and-sandbox

适合人群

  • AI 辅助开发团队:需要结构化验证替代" vibe coding" 的不可靠感
  • 代码迁移/重构项目:REBUILD 模式的行为捕获与回放机制降低回归风险
  • 安全敏感场景:SAST + 变异测试 + 交叉验证的三重保障适合金融、医疗等合规领域
  • 多语言 monorepo:统一验证框架降低认知负担

常规风险

| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| **AI 幻觉传导** | 若底层模型在验证环节产生幻觉,可能污染整个证明包 | 强制交叉验证(cross-verify gate)要求多源 corroboration |
| **工具链缺失** | 目标环境未安装 tsc/mypy/cargo 等导致门禁跳过 | `check-deps.sh` 前置检查 + 降级到 AI-estimated CAUTION |
| **Swarm 死锁** | 子代理未按 `handoff.md` 格式返回导致编排器等待 | 严格遵守 `references/swarm/collect.md` 协议 |
| **证明包伪造** | 恶意/错误实现可能伪造 `.wreckit/proof.json` | 门禁文件(`references/gates/*.md`)明文可审计,建议人工抽检 |
| **版本漂移** | 脚本与文档版本不匹配 | 依赖 `project-type.sh` 的 calibration profile 动态适配 |

Reckit 内容

assets文件夹
dashboard文件夹
references文件夹
gates文件夹
swarm文件夹
scripts文件夹
手动下载zip · 120.4 kB
index.htmltext/plain
请选择文件