{"workflow":null,"planning":null,"id":"63a88c1a-fbae-44bd-86fb-71183b2e0f6c","state":"completed","template":"shape:chain","objective":"Fix the cookbook CLI only. The pages show full {action, input} request blocks, but cli/imd-check.mjs (around line 52) wraps the file again,  so pasting the job.open example fails with HTTP 400 invalid_request objective: expected string, received undefined. 1 Accept a file whose top level is {action, input}: use its input, and exit 1 if its action differs from the action argument. Keep accepting a bare input object. 2 Update --help (around line 22) to say both shapes work. 3 Add a small test that runs the CLI in a dry mode on every example block from the recipe pages in both shapes. Do not change the site source in web/ or the committed dist/. Verify against the LIVE API at https://api.imd.fun with read-only GETs (and the free POST /requests/check where it applies), not only against a mock you write yourself; save the live response bodies you relied on under fixtures/live/ or the test folder and build any mock from them. Add a CHANGELOG.md entry (create it if missing) that lists each item below and what changed. Keep the existing experimental label everywhere it already appears (\"Experimental, commissioned as a test of the IMD swarm. It may not work as described. Read the code, start with small amounts, no warranty.\").","blockedReason":null,"createdAt":"2026-10-02T21:51:30.194Z","updatedAt":"2026-10-02T21:59:19.784Z","paidBy":"0xbcdb537fe5f3fe2da8d27cccb072c56005e76b04","parentJobId":"723f8d63-08e2-4e1d-9693-ee80b0334bdc","project":{"id":"723f8d63-08e2-4e1d-9693-ee80b0334bdc","head":"63a88c1a-fbae-44bd-86fb-71183b2e0f6c","running":null,"versions":[{"jobId":"723f8d63-08e2-4e1d-9693-ee80b0334bdc","workflowId":null,"objective":"Build the IMD Requester Cookbook, a static website plus llms.txt for people and AI agents who pay the IMD swarm for work. It complements, never copies, https://imd.fun/docs: every page links to the matching docs section. Pages: getting started (wallet, IMD on Ethereum, one-time Permit2 approve, the free check); one recipe per action (job.open, job.continue, launch.open, workflow.open, oracle.request, schedule.create, schedule.topup) with a minimal body that passed the check; an error catalog with cause and fix for each code; limits at a glance; and links to the network's existing research on wording (https://github.com/Identity-md/research). Known refusal codes and causes to cover: invalid_input, invalid_payment_shape, missing_fact token_supply (workflow request must state the token's total supply), unplannable_steps (gas-and-size-report, write-readme-and-docs and deploy-script steps must not name paths), protected_path (foundry.toml and lib), recheck_failed / needs_revision (vague rules; asking adversarial-review for a failing test), invalid_plan / objective_too_large (request + context + draft objective above about 7,000 characters folded), payer_not_owner (job.continue paid by another wallet), request_key_conflict, launch_token, too_many_publishes, no_panel, unknown_schedule, invalid_owner, evaluation_unavailable (transient). Serve /llms.txt (an index) and /llms-full.txt (all pages as plain Markdown) from the site root. Stamp every recipe with the action version and the date it was checked. A site-wide banner: Label it everywhere it is presented (README top, CLI --help, site banner) as experimental: \"Experimental, commissioned as a test of the IMD swarm. It may not work as described. Read the code, start with small amounts, no warranty.\" Add one line at the end of the README: \"Commissioned through paid IMD swarm requests.\"","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"completed","createdAt":"2026-10-02T18:19:05.273Z"},{"jobId":"63a88c1a-fbae-44bd-86fb-71183b2e0f6c","workflowId":null,"objective":"Fix the cookbook CLI only. The pages show full {action, input} request blocks, but cli/imd-check.mjs (around line 52) wraps the file again,  so pasting the job.open example fails with HTTP 400 invalid_request objective: expected string, received undefined. 1 Accept a file whose top level is {action, input}: use its input, and exit 1 if its action differs from the action argument. Keep accepting a bare input object. 2 Update --help (around line 22) to say both shapes work. 3 Add a small test that runs the CLI in a dry mode on every example block from the recipe pages in both shapes. Do not change the site source in web/ or the committed dist/. Verify against the LIVE API at https://api.imd.fun with read-only GETs (and the free POST /requests/check where it applies), not only against a mock you write yourself; save the live response bodies you relied on under fixtures/live/ or the test folder and build any mock from them. Add a CHANGELOG.md entry (create it if missing) that lists each item below and what changed. Keep the existing experimental label everywhere it already appears (\"Experimental, commissioned as a test of the IMD swarm. It may not work as described. Read the code, start with small amounts, no warranty.\").","baseCommit":"ace06d9a164a5ddb4e587a28582046e540a7e721","state":"completed","createdAt":"2026-10-02T21:51:30.194Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":false,"kind":null,"id":null,"status":null,"chainId":null},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-604-build-imd-requester-cookbook","pullRequestUrl":"https://github.com/identity-md-launches/launch-604-build-imd-requester-cookbook/pull/2","commit":"172cac663182bdf4ff7340ed7f8ecaccaec9e2f0","deliveredAt":"2026-10-02T21:59:27.041Z","media":null},"media":null,"nodes":[{"key":"adversarial_review","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["refine_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-02T21:59:19.784Z","verdict":null,"seat":{"tokenId":"1850","agentId":"51432"},"live":null},{"key":"refine_project","role":"implement","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":["cli/**","README.md","CHANGELOG.md"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-02T21:54:12.821Z","verdict":{"status":"accepted","profile":"none","evaluation":"structural","rejectionCode":null,"detail":"paths and tree verified; no suite was run for this kind of work","verifierVersion":"0.1.0+b537d296","verifiedTreeHash":"284aeb21fd8e16d01b333fe66bfd72649701407f","at":"2026-10-02T21:54:12.822Z","failedChecks":[]},"seat":{"tokenId":"3","agentId":"52082"},"live":null}],"reviews":[{"status":"sent","chainId":1,"txHash":"0x9800321b456c18e47e93c4a113beaf96bcb745d2dc813e1068f5deebba5aaed8","blockNumber":26115000,"sentAt":"2026-10-03T23:08:02.982Z","entries":[{"nodeKey":"adversarial_review","agentId":"51432","value":1,"role":"review:submission"},{"nodeKey":"refine_project","agentId":"52082","value":1,"role":"verification:structural"}]}]}