Skip to content

chore: mutation 80% — baseline run and backlog tracker - #108

Merged
Bonobo791 merged 1 commit into
mainfrom
mt-80-baseline
Aug 5, 2026
Merged

chore: mutation 80% — baseline run and backlog tracker#108
Bonobo791 merged 1 commit into
mainfrom
mt-80-baseline

Conversation

@Bonobo791

@Bonobo791 Bonobo791 commented Aug 5, 2026

Copy link
Copy Markdown
Owner

User description

Behavior

Docs-only. Adds docs/mutation-80-backlog.md: the living tracker for the push to an overall mutation score ≥ 80% across the Stryker mutate scope.

Baseline (this branch, 2d397ae)

Full run npx stryker run --ignoreStatic with the merged config (perTest, incremental, ignoreStatic: true): 6m54s.

  • Mutation score: 72.76% — 2,367 detected / 3,253 valid mutants
  • 886 survived, 222 no-coverage, 422 ignored
  • Net kills needed for 80%: 236

The backlog doc records the per-file table, the batch plan (A: schema.ts → B: auth/OAuth → C: moderation core → D: tenancy/routes → E: plumbing → final re-baseline), and the working rules each batch follows.

Maintainer decisions baked in

  • Overall ≥80% with per-module tiers (80–90% on critical paths), not a strict per-file floor
  • CI stays report-only — thresholds.break remains a deferred maintainer-approved step
  • Justified equivalent-mutant exclusions allowed, one-line justification each

Verification

  • npm run check — 0 errors, 0 warnings
  • npm run test — 59 files, 533 tests, all pass
  • codacy-analysis analyze --files docs/mutation-80-backlog.md — 0 issues

No source or test changes in this PR; it is the baseline and tracker the kill batches (separate PRs per batch) will update.


CodeAnt-AI Description

Add a tracked plan for raising mutation test coverage to 80%

What Changed

  • Documents the current mutation testing baseline: 72.76% across 3,253 valid mutants, with 236 additional kills needed to reach 80%
  • Lists mutation results by file, including survived, uncovered, timed-out, and excluded cases
  • Defines prioritized batches for schema, authentication, moderation, tenancy, routes, and supporting code
  • Records review rules for validating tests, handling equivalent mutants, and keeping CI report-only during the work

Impact

✅ Clear mutation coverage baseline
✅ Prioritized test improvement work
✅ Traceable coverage progress toward 80%

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

@cla-bot cla-bot Bot added the cla-signed label Aug 5, 2026
@codeant-ai

codeant-ai Bot commented Aug 5, 2026

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR 0819479 Aug 05, 2026 · 17:07 17:08

@codeant-ai

codeant-ai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@netlify

netlify Bot commented Aug 5, 2026

Copy link
Copy Markdown

Deploy Preview for moderaty ready!

Name Link
🔨 Latest commit 0819479
🔍 Latest deploy log https://app.netlify.com/projects/moderaty/deploys/6a736dcbec489700089015fd
😎 Deploy Preview https://deploy-preview-108--moderaty.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 89
Accessibility: 97
Best Practices: 100
SEO: 100
PWA: -
View the detailed breakdown and full score reports
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@Bonobo791, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 16 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 4185e2de-11d9-4e9b-b3ad-98c99c146bea

📥 Commits

Reviewing files that changed from the base of the PR and between 2d397ae and 0819479.

📒 Files selected for processing (1)
  • docs/mutation-80-backlog.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Aug 5, 2026

@amazon-q-developer amazon-q-developer 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.

This documentation-only PR effectively establishes a baseline for mutation testing improvement work. The document is well-structured with clear metrics, organized batches, and actionable tracking information. No issues found that would block merge.


You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.

@codeant-ai

codeant-ai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Sequence Diagram

This documentation-only PR establishes the mutation testing baseline and records the planned workflow for reaching an overall mutation score of at least 80 percent. It keeps CI report-only while guiding future batch triage and re-baselining.

sequenceDiagram
    participant Maintainer
    participant MutationRunner
    participant TestSuite
    participant Backlog

    Maintainer->>MutationRunner: Run full mutation analysis
    MutationRunner->>TestSuite: Execute tests against mutants
    TestSuite-->>MutationRunner: Mutation results
    MutationRunner-->>Maintainer: Baseline score and survivors
    Maintainer->>Backlog: Record metrics and prioritize batches
    Maintainer->>Backlog: Track triage, exclusions, and final re-baseline
Loading

Generated by CodeAnt AI

@sonarqubecloud

sonarqubecloud Bot commented Aug 5, 2026

Copy link
Copy Markdown

@codeant-ai

codeant-ai Bot commented Aug 5, 2026

Copy link
Copy Markdown

🏁 CodeAnt Quality Gate Results

Commit: 08194792
Scan Time: 2026-08-05 17:08:03 UTC

✅ Overall Status: PASSED

Quality Gate Details

Quality Gate Status Details
Secrets ✅ PASSED 0 secrets found
Duplicate Code ✅ PASSED 0.0% duplicated
SAST ✅ PASSED No security issues
Bugs ✅ PASSED Rating S: No bugs
IAC ✅ PASSED No IAC issues

View Full Results

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Add mutation-testing 80% baseline and backlog tracker doc

📝 Documentation 🕐 Less than 10 minutes

Grey Divider

AI Description

• Add a living backlog document to track progress toward ≥80% mutation score.
• Record baseline Stryker run metrics and net kills needed to reach the target.
• Define batch plan, triage log structure, and working rules for follow-up PRs.
Diagram

graph TD
  A["Maintainer policy"] --> B["Mutation 80% backlog"] --> C[/"Stryker baseline run"/] --> D["Baseline metrics"] --> E["Batch plan"] --> F["Follow-up kill PRs"]
  G{{"CI mode"}} --> B
  subgraph Legend
    direction LR
    _doc["Document"] ~~~ _proc[/"Process"/] ~~~ _dec{{"Decision"}}
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Track in GitHub Projects/Issues instead of a repo doc
  • ➕ Built-in status fields, assignments, and notifications
  • ➕ Easier cross-linking to PRs and automation
  • ➖ Harder to keep baseline metrics/versioning in lockstep with code/config
  • ➖ Less discoverable for contributors working locally/offline
2. Store backlog as machine-readable data (YAML/JSON) + generated markdown
  • ➕ Enables tooling to auto-update per-file tables from Stryker reports
  • ➕ Reduces manual drift as batches land
  • ➖ More upfront complexity for what is currently a planning artifact
  • ➖ Requires maintaining a generator script and CI/update workflow

Recommendation: Keeping the backlog as a versioned markdown document in-repo is the best fit for the current goal: it ties baseline numbers, maintainer decisions, and batch sequencing directly to the codebase and PR history. If the manual table becomes painful to maintain, consider evolving toward a small YAML/JSON source plus generated markdown in a later step.

Files changed (1) +144 / -0

Documentation (1) +144 / -0
mutation-80-backlog.mdAdd mutation 80% baseline metrics and backlog tracking doc +144/-0

Add mutation 80% baseline metrics and backlog tracking doc

• Introduces a living markdown tracker for improving overall Stryker mutation score to ≥80%. Records the baseline run metrics, a prioritized batch plan by module/file scope, and working rules/triage structure for upcoming mutation-kill PRs.

docs/mutation-80-backlog.md

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

@Bonobo791
Bonobo791 merged commit 7b4e795 into main Aug 5, 2026
19 of 22 checks passed
@Bonobo791
Bonobo791 deleted the mt-80-baseline branch August 5, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant