Build a working MVP of an IMD skill named measure-test-quality for Solidity/Foundry projects. Deliver a reusable skill package, a bounded mutation-testing runner, a small Foundry benchmark and actual reproducible measurements. This is development tooling: no token, website, deployment or broadcast. Publish the delivered source on GitHub.
The public authoring reference is https://github.com/Identity-md/identitymd-skill-crafting at commit fa541fd81326b532d315576fa113c78b67b30ca7 (skill-authoring/SKILL.md, REFERENCE.md and check-skill.mjs). This hire form starts a standalone project, not a checkout of that repository. The self-contained requirements below govern the work; do not depend on fetching a repository to build or test. If the upstream checker is available, run it unchanged and record its version/hash; otherwise label upstream checker validation as pending, never fabricate a pass. Explain why the new skill complements write-foundry-tests and adversarial-review.
DELIVERABLES
- measure-test-quality/SKILL.md and REFERENCE.md; dependency-free Node scripts/*.mjs and tests for those scripts.
- A standalone Foundry benchmark at the repository root: foundry.toml, one modest ordered-registry contract in src/, an independent naive model confined to test/, a preserved initial suite and an improved final suite.
- docs/MUTATIONS.md, a versioned JSON report schema and validator, artifacts/measurement.json, baseline hashes, and exact reproduction commands in README.md.
Use genuine Foundry and Solidity 0.8.24 already installed. No package downloads, vendored frameworks, RPC, credentials, external services or background processes. All delivered campaigns must work offline with the documented toolchain installed.
RUNNER
Implement a manifest-driven single-site mutation runner, not a general Solidity parser. Accept an explicit project path and manifest. Each mutation includes an ID, relative source path, unique exact before/after replacement, rationale and category. Support operator-supplied manifests with provenance fixed before measurement. Reject absolute paths, traversal, symlink escapes, ambiguous/missing replacements and no-ops. Run mutations in isolated temporary project copies; never mutate the original source, frozen baseline, tests or configuration. Spawn tools with argument arrays without shell interpolation. Enforce bounded campaign size and process timeouts, terminate child processes on timeout, and record partial execution honestly.
MEASUREMENT
Hash original source, initial tests, mutation definitions and tool versions/seed before the initial run. Compile and test the honest baseline first. A failing baseline or zero executed tests invalidates the campaign. Classify each mutation as killed (successful compile followed by a relevant failing test assertion), survived, compile-error, timeout, infrastructure-error, not-applicable or equivalence-unresolved. A compiler failure, crash, missing tool or empty test selection is never a kill. Preserve commands, exit status, executed test counts and diagnostic evidence. Do not automatically claim semantic equivalence. Report all counts, exclusions and the score denominator explicitly. A score is evidence about these mutations, not proof of security.
BENCHMARK
Use a permissionless ordered registry with bounded capacity, nonzero values, documented custom errors, stable insertion order, and no funds/admin/upgrade path. Its independent naive model must not import production logic. Freeze a genuinely runnable initial test suite that misses one demonstrable defect, such as high-bit truncation; preserve the original miss and a concrete caller-visible counterexample. Apply at least five valid mutations covering capacity/boundary, ordering, wrong error or precedence, stale state, and truncation. Then strengthen tests with full-width inputs, every relevant bit boundary, sequences of operations, exact refusal bytes and complete observable state. Keep honest production code unchanged. It must pass initial and final suites; every designated non-equivalent benchmark mutant must compile and fail the final suite. Do not misrepresent a deliberately weak author-written public benchmark as an independent or hidden evaluation. Document how an operator can maintain a separate held-out mutation set.
RUNNER TESTS AND EVIDENCE
Test malformed manifests, unsafe paths, ambiguous/no-op mutations, missing tools, empty/failing baselines, compiler errors, timeouts, surviving mutants and genuine assertion failures. Include real Foundry executions, not mocks alone. Record initial/final per-mutation outcomes with hashes in both JSON and a readable report. Preserve baseline evidence even when fixing later findings. Run forge build, forge test, forge fmt --check, Node tests, report validation and both mutation campaigns. Do not substitute plausible output for execution. If a tool or check is unavailable, state exactly what failed and mark that verification incomplete.
IMD SKILL FORMAT
The directory and frontmatter id must both be measure-test-quality, version 1. Use the simple IMD YAML subset: scalar key:value or indented dash lists, no nested maps, duplicate keys or unknown keys. Runnable fields: id, version, description, role: tests, kind: code, judge: verifier-paths, checks: none, requires (may be empty), variables containing objective, objective using the double-curly-brace objective placeholder, concrete acceptanceCriteria, and reads containing skill:measure-test-quality. Deliver self-contained REFERENCE.md and scripts/*.mjs through that pinned read; these are the only supporting files that travel automatically. Use the smallest write budget that permits new tests and measurement artifacts, or omit writes and explain the caller-supplied paths required. Every mustProduce path must be inside the granted budget. Do not grant protected paths, new tools or network access. Work with both Codex and Claude Code.
VERIFICATION LIMITS
The ordinary network Foundry checks do not rerun the full Node mutation campaign. Do not call mutation measurements class-1 verified, invent a verifier profile, or claim that a passing build proves test quality. Document the operator-side verifier integration needed for independent full-campaign replay. This hire form assigns one build-contract-project skill; do not claim a separate agent audited this package. Perform a concrete self-review and prepare an independent-review checklist covering classification, filesystem boundaries, timeout handling and evidence. Actual independent review is a later task.
ACCEPTANCE
Deliver working code rather than a report-only proposal. Demonstrate the preserved initial miss, improved final coverage, honest passing baseline, safe isolation, reproducible machine-readable results and declared verification limits. Include maintainer instructions for reviewing, validating with the official checker, merging and deploying the catalog. Do not claim this proposed skill is already registered or live, and do not open an upstream PR automatically.