EffortlessMetrics/ripr-swarm
GitHub: EffortlessMetrics/ripr-swarm
ripr 是一款静态变异暴露分析工具,在 PR 草稿阶段识别测试触及但未实际检查的变更行为,并路由针对性的仅限测试的修复方案。
Stars: 0 | Forks: 0
ripr
静态变异暴露分析 — 分析哪些被测试运行但未实际验证的变更行为。
`ripr` 读取 PR diff,并告知您的审查者和编程 Agent,当前测试*触及*但并未实际*检查*了哪些变更行为——这是变异测试试图回答的问题,但它在草稿阶段即可提出,且无需运行任何变异体。如果测试无法捕获到破坏性的变更,它会路由一个专注的、仅限测试的修复方案:验证什么、在哪里验证、执行验证的命令,以及变更前后的回执。 ## 首次实用运行 ``` one PR -> one gap -> one focused test -> one before/after receipt ``` ``` cargo install ripr ripr first-pr --root . --base origin/main --head HEAD ``` 这就是整个循环:ripr 指出首要的可修复 gap,您在 ripr 之外添加一个专注的测试,回执会记录该 gap 是否已闭合。`ripr.toml` 是可选的;零配置运行是其预期的首选交互方式。 ## 适用场景 ``` coverage: did this line run? ripr: would any test notice this changed behavior breaking? mutation testing: did a test fail when a real mutant ran? ``` `ripr` 是静态且建议性的。它不运行变异体,不报告 `killed` 或 `survived`,不替代覆盖率,也不声称正确性或测试的充分性。它只是指出缺乏鉴别器的变更行为,以及下一个需要添加的测试;当变更准备就绪时,像 `cargo-mutants` 这样的真实变异运行器会在执行期间确认这一点。覆盖率仍然是执行层面的信号;而 ripr 是它们之间成本更低的草稿阶段问题。 ## 您将获得什么 | 术语 | 说明 | | --- | --- | | **gap** | 测试过于薄弱而无法注意到其崩溃的变更行为,具有稳定的规范 ID | | **card** | 修复方案——断言什么、在哪里断言,以及为什么当前的证明很薄弱 | | **packet** | 面向人类或 Agent 的有界、仅限测试的工作订单:允许的文件、禁止的文件、停止条件 | | **verify** | 检查修复的专注命令(`cargo test …`、`pytest …`) | | **receipt** | 记录 gap 是否真正闭合的前后对比记录 | ## 示例输出 ``` WARNING src/pricing.rs:88 Static exposure: weakly_exposed Probe: predicate Changed behavior: if amount >= discount_threshold { Evidence: Reachability: related tests found Infection: changed predicate can alter branch behavior Propagation: branch appears to influence returned total Revealability: tests assert returned values, but no equality-boundary case was found Gap: No detected test input for amount == discount_threshold. Recommended next step: Add below, equal, and above-threshold tests with exact assertions. ``` 其措辞是刻意保守的:静态分析识别证据和 gap;它不声称运行时的变异结果。 ## 从您已使用的界面开始 | 您是… | 首要操作 | 文档 | | --- | --- | --- | | VS Code 用户 | 安装 `EffortlessMetrics.ripr`,打开 Rust workspace,使用状态栏、Problems 面板和悬停证据。 | [快速入门](docs/QUICKSTART.md#vs-code-first-hour) | | CI 负责人 | 运行 `ripr init --ci github` 获取建议性的 PR 摘要和 artifact packet。 | [快速入门](docs/QUICKSTART.md#ci-first-hour) | | CLI 用户 | 运行 `ripr pilot --root .`,然后为首要在 gap 添加一个专注的测试。 | [快速入门](docs/QUICKSTART.md#cli-first-hour) | | Agent 操作员 | 运行 `ripr agent status --root .` 或使用有界的、禁止编辑源码的 seam packet。 | [LLM 操作员指南](docs/LLM_OPERATOR_GUIDE.md) | ## 状态 成熟的循环针对 Rust/Cargo。对于选定的 pytest/unittest 工作流(修复卡片、验证命令、有界的 Agent packet、前后回执),Python 修复路由处于 `usable alpha` 阶段;TypeScript 是可选的 `preview` 阶段。`ripr` 是建议性的静态分析——不是合并门禁,也不是变异运行器。本 README 是一个入口,不是指标的权威来源:有关什么是可用、预览或建议性的内容,请参见[支持等级](docs/status/SUPPORT_TIERS.md);有关详细状态,请参见[能力矩阵](docs/CAPABILITY_MATRIX.md)和[指标](docs/METRICS.md)。`ripr-swarm` 是开发主干;源码 [`EffortlessMetrics/ripr`](https://github.com/EffortlessMetrics/ripr) 是发布和分发权威机构。 ## 文档 | 需求 | 文档 | | --- | --- | | 根据界面选择首小时路径 | [快速入门](docs/QUICKSTART.md) | | 将通俗语言映射到内部模型 | [术语表](docs/TERMINOLOGY.md) | | 了解模型(鉴别与覆盖率) | [静态暴露模型](docs/STATIC_EXPOSURE_MODEL.md) | | 了解什么是可用 / 预览 / 建议性 | [支持等级](docs/status/SUPPORT_TIERS.md) | | 了解 JSON / context 输出 | [输出 schema](docs/OUTPUT_SCHEMA.md) | | 将 gap 转化为测试 | [针对性测试工作流](docs/TARGETED_TEST_WORKFLOW.md) | | 证明一个真实 PR 的采用情况 | [首个成功 PR 工作流](docs/FIRST_PR_WORKFLOW.md) | | 安装和使用编辑器扩展 | [编辑器扩展](docs/EDITOR_EXTENSION.md) | | 查看行为契约和架构 | [规格说明](docs/specs/README.md) · [架构](docs/ARCHITECTURE.md) · [ADR](docs/adr/README.md) | | 关注方向和正在进行的工作 | [路线图](docs/ROADMAP.md) · [计划](docs/IMPLEMENTATION_PLAN.md) · [活动](docs/IMPLEMENTATION_CAMPAIGNS.md) · [Codex 目标](docs/CODEX_GOALS.md) | | 贡献范围明确的 PR | [贡献指南](CONTRIBUTING.md) · [范围 PR 契约](docs/SCOPED_PR_CONTRACT.md) · [PR 自动化](docs/PR_AUTOMATION.md) | | 其他所有内容 | [文档索引](docs/DOCUMENTATION.md) | ## 许可证 `ripr` 采用 MIT 或 Apache-2.0 许可证,您可以任选其一。 它基于 Rust 2024 版本,并要求 Rust `1.95` 或更高版本。标签:Rust, SOC Prime, 可视化界面, 安全规则引擎, 开发工具, 编辑器插件, 网络流量审计, 通知系统