Skip to content

Add Crucible to Mutation Testing#96

Open
Jott2121 wants to merge 1 commit into
cleder:mainfrom
Jott2121:add-crucible
Open

Add Crucible to Mutation Testing#96
Jott2121 wants to merge 1 commit into
cleder:mainfrom
Jott2121:add-crucible

Conversation

@Jott2121

@Jott2121 Jott2121 commented Jul 13, 2026

Copy link
Copy Markdown

Adds Crucible to the Mutation Testing section (alphabetical, between Cosmic Ray and Mutatest).

What it is: adversarial test-hardening for AI-written code, built on top of mutmut rather than competing with it. A Tester agent writes tests, mutation testing names the surviving mutants, and a Critic agent is handed those named survivors and writes tests to kill exactly them. Every verdict is mechanical — pytest kills the mutant or it doesn't — so no model ever grades model output.

Why it belongs on this list: the coverage/fault-detection gap gets systematically worse when a model writes both the code and its tests, and mutation testing is the only cheap way to see it. On a real module with 7 passing tests and 97% line coverage, 25 of 71 injected defects survived.

  • MIT licensed, Python + pytest, mutmut pinned to 3.6.0
  • The diagnose (crucible score) calls no model and needs no API key
  • Also ships as a GitHub Action that comments the mutation score on a PR
  • 332 tests; dogfooded — it runs its own mutation gate on itself (982 mutants, 977 killed, 5 documented survivors)
  • Includes a pre-registered experiment with a published null result

Happy to reword the entry or move it if you'd prefer a different section or a shorter description.

Summary by Sourcery

Documentation:

  • Document Crucible as an adversarial test-hardening tool for AI-written code in the mutation testing section of the README.

@semanticdiff-com

Copy link
Copy Markdown

Review changes with  SemanticDiff

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@sourcery-ai

sourcery-ai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Adds Crucible to the Mutation Testing tools list in README in alphabetical order, with a concise description emphasizing adversarial test-hardening for AI-written code.

Sequence diagram for Crucible adversarial test-hardening workflow

sequenceDiagram
  actor Developer
  participant Crucible
  participant TesterAgent
  participant Mutmut
  participant CriticAgent
  participant Pytest

  Developer->>Crucible: run crucible score
  Crucible->>TesterAgent: generate_initial_tests
  TesterAgent-->>Developer: tests_written
  Crucible->>Mutmut: run_mutation_testing
  Mutmut-->>Crucible: surviving_mutants
  Crucible->>CriticAgent: generate_targeted_tests
  CriticAgent-->>Developer: new_tests_for_survivors
  Crucible->>Pytest: run_test_suite
  Pytest-->>Crucible: mutation_score
  Crucible-->>Developer: report_surviving_mutants_and_score
Loading

File-Level Changes

Change Details Files
Add Crucible entry to the mutation testing section of the README, keeping the list alphabetical and using a concise summary of its functionality.
  • Insert a new Markdown list item describing Crucible between Cosmic Ray and Mutatest in the Mutation Testing subsection.
  • Provide a short description highlighting adversarial test-hardening for AI-written code, its relationship to mutmut, and the Tester/Critic agent workflow.
README.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • Consider shortening Crucible’s description to a single concise phrase (similar to other entries) and trimming the multi-sentence explanation to keep the README’s mutation testing list consistent in style and length.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Consider shortening Crucible’s description to a single concise phrase (similar to other entries) and trimming the multi-sentence explanation to keep the README’s mutation testing list consistent in style and length.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a new entry for 'Crucible' to the list of Python mutation testing resources in the README.md. The reviewer suggested capitalizing 'mutmut' as 'Mutmut' for consistency with other entries in the list.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread README.md

- [bough](https://github.com/CodeEnPlace/bough) - Bough is a polyglot incremental mutation tester.
- [Cosmic Ray](https://github.com/sixty-north/cosmic-ray) - makes small changes to your source code, running your test suite for each one.
- [Crucible](https://github.com/Jott2121/crucible) - Adversarial test-hardening for AI-written code, built on mutmut. A Tester agent writes tests, mutation testing names the survivors, and a Critic agent kills exactly those.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency with the entry for Mutmut on line 130, please capitalize "mutmut" as "Mutmut".

Suggested change
- [Crucible](https://github.com/Jott2121/crucible) - Adversarial test-hardening for AI-written code, built on mutmut. A Tester agent writes tests, mutation testing names the survivors, and a Critic agent kills exactly those.
- [Crucible](https://github.com/Jott2121/crucible) - Adversarial test-hardening for AI-written code, built on Mutmut. A Tester agent writes tests, mutation testing names the survivors, and a Critic agent kills exactly those.

@llamapreview llamapreview Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto Pull Request Review from LlamaPReview

Review Status: Automated Review Skipped

Dear contributor,

Thank you for your Pull Request. LlamaPReview has analyzed your changes and determined that this PR does not require an automated code review.

Analysis Result:

PR only contains documentation changes (1 files)

Technical Context:

Documentation changes typically include:

  • Markdown/RST file updates
  • API documentation
  • Code comments
  • README updates
  • Documentation in /docs directory
  • License and contribution files

We're continuously improving our PR analysis capabilities. Have thoughts on when and how LlamaPReview should perform automated reviews? Share your insights in our GitHub Discussions.

Best regards,
LlamaPReview Team

@mergify

mergify Bot commented Jul 13, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant