{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"91be6bd6-54f0-4ad1-863e-ee6bd3ffeed8","kind":"skill:build-contract-project","nodes":[{"acceptedSubmissionHash":"732915b154ab4edbe64a7455dd0432d624c9e24e27034c4dbaf510a2916a96c5","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"0f3e7566c3ff8e87fc95936b79ba455be33eea683bb01a6834a4a4d43e58e1df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"0f3e7566c3ff8e87fc95936b79ba455be33eea683bb01a6834a4a4d43e58e1df","skillId":"build-contract-project","state":"accepted"}],"objective":"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.\n\nThe 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.\n\nDELIVERABLES\n- measure-test-quality/SKILL.md and REFERENCE.md; dependency-free Node scripts/*.mjs and tests for those scripts.\n- 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.\n- docs/MUTATIONS.md, a versioned JSON report schema and validator, artifacts/measurement.json, baseline hashes, and exact reproduction commands in README.md.\nUse 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.\n\nRUNNER\nImplement 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.\n\nMEASUREMENT\nHash 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.\n\nBENCHMARK\nUse 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.\n\nRUNNER TESTS AND EVIDENCE\nTest 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.\n\nIMD SKILL FORMAT\nThe 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.\n\nVERIFICATION LIMITS\nThe 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.\n\nACCEPTANCE\nDeliver 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.","parentJobId":null,"planHash":"768a5728a678781643c8ea12f41962b8089ce7232831ba85da36aac32ac97a74","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"91be6bd6-54f0-4ad1-863e-ee6bd3ffeed8","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-198-build-working-mvp-imd"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"50904","feedbackHash":"fb97608c7f795e85e167ad4771944e0730ac91e19ad18012302c4fd3880e494b","nodeKey":"build_contract_project","submissionHash":"732915b154ab4edbe64a7455dd0432d624c9e24e27034c4dbaf510a2916a96c5","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"f66c64a8c6816f40de2a3a3b14e05b184c74a84dcda57dc0c0a37a2700404289","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"9359c3c08b260397db6fe4d9eb1ee0e446a781edbba4d3776ee9873d0e660a66","device":"c4f696e22e7a36f7","findings":[],"hash":"732915b154ab4edbe64a7455dd0432d624c9e24e27034c4dbaf510a2916a96c5","nodeId":"cc2ee51a-1c0b-4f1c-b63b-c6af899ab58f","outcome":"completed","summary":"Implemented locally. [README and reproduction commands](/root/.identitymd/work/91be6bd6-54f0-4ad1-863e-ee6bd3ffeed8/cc2ee51a-1c0b-4f1c-b63b-c6af899ab58f/README.md).\n\n- Mutation kills improved from **4/6 to 6/6**, with passing honest baselines and no exclusions.\n- Passed: `forge build`, 12 Foundry tests, formatting, 15 Node tests, report validation, and the pinned official checker.\n- Preserved initial misses, hashes, counterexample logs, and reproducible campaign evidence.\n- [Verified source archive](/root/.identitymd/work/91be6bd6-54f0-4ad1-863e-ee6bd3ffeed8/cc2ee51a-1c0b-4f1c-b63b-c6af899ab58f/artifacts/measure-test-quality-source.tar.gz).\n\n**GitHub publication remains pending:** no destination or permitted publishing route was provided under the restrictions on credentials, external services, and `.git/`. Maintainer publishing instructions are included. Measurements are self-reported; independent review remains a later task.","treeHash":"409dbc236b4d2e3927be0a997812f3d5975b3f43","usage":{"cachedInputTokens":1781504,"inputTokens":97386,"model":"gpt-6-astra","outputTokens":56904,"runtime":"codex","turns":10,"wallClockMs":1820864}}],"verification":[{"checks":[{"durationMs":239,"exitCode":0,"name":"build","output":"Compiling 4 files with Solc 0.8.24\nSolc 0.8.24 finished in 194.88ms\nCompiler run successful!\n","passed":true},{"durationMs":404,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 5 tests for test/initial/RegistryInitial.t.sol:RegistryInitial\n[PASS] testCapacity() (gas: 483793)\n[PASS] testRefusals() (gas: 276818)\n[PASS] testRemoveMembership() (gas: 348949)\n[PASS] testSmallValues() (gas: 345004)\n[PASS] testStableOrder() (gas: 448223)\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 1.82ms (2.24ms CPU time)\n\nRan 7 tests for test/final/RegistryFinal.t.sol:RegistryFinal\n[PASS] testEveryBitBoundary() (gas: 344860335)\n[PASS] testFullWidthCounterexample() (gas: 698691)\nLogs:\n  inserted: 340282366920938463463374607431768211463\n  at(0): 340282366920938463463374607431768211463\n\n[PASS] testFuzzFullWidth(uint256) (runs: 64, μ: 1084482, ~: 1099085)\n[PASS] testFuzzSequence(uint256) (runs: 64, μ: 5130661, ~: 5175613)\n[PASS] testPermissionlessCallers() (gas: 501276)\n[PASS] testRefusalBytesAndPrecedence() (gas: 2241693)\n[PASS] testSequences() (gas: 1803300)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 357.01ms (520.77ms CPU time)\n\nRan 2 test suites in 357.75ms (358.83ms CPU time): 12 tests passed, 0 failed, 0 skipped (12 total tests)\n","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"732915b154ab4edbe64a7455dd0432d624c9e24e27034c4dbaf510a2916a96c5","verifiedTreeHash":"409dbc236b4d2e3927be0a997812f3d5975b3f43","verifierVersion":"0.1.0+bb39ded9"}]}