test(cli): kill the surviving mutants of the tools context - #807
Merged
Conversation
…ts and registry Tests written for the survivors stryker named in the tools scope's domain layer: the mcp json-to-toml transform and user-prime merge, the command frontmatter and path builders, the agents, rules, skills, commands, settings, hooks and plugins capabilities, the registry's signal scan and activation queries, the flat hooks merges, the marketplace catalog builders, the host registration answers and the marketplace source conflict. Every test was watched red under a hand-applied mutation before the source was restored. Scope measured 80.2 before this pass (1358 killed, 67 timed out, 232 survived, 120 uncovered of 1777) and 96.8 after this lot and the infrastructure lot (1687 killed, 34 timed out, 50 survived, 6 uncovered). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb AIDD-Session-Id: 4acc9a1c-19bc-4468-b8b6-e86644bcba60
…ugin CLI adapter Tests written for the survivors stryker named in the tools scope's infrastructure: the plugin CLI adapter's marketplace removal, source check, declared verbs, failure messages and batch-shim spawn; the PATH lookup's empty segments, quoting and host description; Claude's, Codex's and Copilot's plugin registries at the edges of their shapes; and Claude's marketplace registry on documents that are not objects, entries without an install location and a dead path. Every test was watched red under a hand-applied mutation before the source was restored. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb AIDD-Session-Id: 4acc9a1c-19bc-4468-b8b6-e86644bcba60
Measured 96.8 under run-mutation.mjs tools --force after the two test lots; the floor sits two under the measurement, as the other scopes' floors do. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb AIDD-Session-Id: 4acc9a1c-19bc-4468-b8b6-e86644bcba60
1 task
hasToolSignals joins its answers with node's own path.join, so on Windows the registry test compared a backslash path against a slash literal and failed there alone. The expected list is now built the same way the source builds it; the intention of the test is unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb AIDD-Session-Id: 4acc9a1c-19bc-4468-b8b6-e86644bcba60
Brings in the catalog's recommended field under metadata. The marketplace catalog test keeps this branch's new cases and next's two metadata-spelling cases; nothing conflicted. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb AIDD-Session-Id: 4acc9a1c-19bc-4468-b8b6-e86644bcba60
blafourcade
added a commit
that referenced
this pull request
Sep 9, 2026
…#808) The coverage job's `apt-get update` fails a few times a day on the Google Chrome source the runner image ships, whose mirror serves a stale index ("Hash Sum mismatch"), and the whole job goes red before a test runs; it hit #804 and #807 within an hour. `expect` comes from ubuntu's own archive, so the chrome source is removed before the update. Claude-Session: https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb AIDD-Session-Id: 4acc9a1c-19bc-4468-b8b6-e86644bcba60 Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎯 What & why
First pass of #799: the
toolsmutation scope (registry, capabilities, formats; the five profiles have their own scopes) held at a floor of 76 with 232 surviving and 120 uncovered mutants of 1777. Score 80.2 → 96.8, floor 76 → 94.🛠️ How it works
its, one intention each indescribeblocks by responsibility: four new files (mcp-format,commandformat,registry, the abstract native-plugin CLI adapter) and every capability, hooks-merge, catalog, registration and host-registry reader test extended.src/change: no mutant revealed a defect.splitthat never yields an empty array, an assignedundefineddropped by the serializer, guards the constructor already enforces, aneverbranch the type-honesty gate refuses to reach). Two hand-verified kills are recorded Survived by stryker's per-test attribution, the artefact test(cli): kill the surviving mutants of tools, telemetry, kernel, runtime and the profile pockets #799 names.describelevel turns every constructor-throwing mutant into a collection failure recorded Survived; those constructions moved insideit.🧪 How to verify
cd cli && node scripts/run-mutation.mjs tools --force→ score ≥ 94.git diff --stat origin/next...HEAD -- cli/src→ empty.Telemetry, kernel, runtime and the profile pockets named in #799 are not in this pass; the issue stays open for them.
🔗 Linked issue
Refs #799
✅ I certify
🤖 Generated with Claude Code
https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb