{"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":"ec3d70f1-bcdf-4d62-9f81-e23b4f2fd09d","kind":"skill:build-website","nodes":[{"acceptedSubmissionHash":"1d007ed69827f92939bc9d12868b745c96574f8c874f269f78a547d8caf6316e","dependsOn":[],"execution":{"mustProduce":["dist/index.html"],"network":true,"optionalTools":["browser"],"profile":"none","requires":["network"],"skillHash":"6715a761ae197330be56ba3ef74f7628c405aa1d94f0e62b3dcf3715e0135cbc","skillId":"build-website","tools":[]},"key":"build_website","kind":"code","role":"implement","skillHash":"6715a761ae197330be56ba3ef74f7628c405aa1d94f0e62b3dcf3715e0135cbc","skillId":"build-website","state":"accepted"}],"objective":"Add the Keel website to this project: a static site (IPFS) for the contracts deployed in this launch on Ethereum mainnet. It reads the chain directly through a public RPC with a fallback list; no backend. Desktop and phone. Change nothing under src/.\n\nAddresses (deployment block 26162060): KeelVault 0xe2fb1c0e5ea5342cd8607efa8e7c44f06b47013c, KeelFactory 0x39dfa7d3ce9364db50433fe9cc2f308c6a219f5f, KeelHook 0x77ad6136c102384d0f1a213bcb241b7d090528cc, KeelRouter 0x072d42c1605e944d53c4bf720c65c27ef88ef2eb, KeelToken template 0x89258d7a82ffbb685f3e1551b76c66f4e6d7d9b2, IMD 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7. Keep them in one config file.\n\nLook: black #050505 and chrome, monochrome. Display font Syncopate 700 with chrome-gradient text, body Manrope, numbers JetBrains Mono. 20px rounded cards with a thin #252527 border, silver gradient buttons, brushed-metal token avatars with the ticker's first letter (used when a token has no image). Logo: a chrome ribbon letter K plus \"KEEL\". Hidden scrollbars, no emoji, very short texts.\n\nStart screen (first route; \"Skip\" always visible): a small walkable game.\n- A floating island in black space, 3/4 view, all chrome: polished chrome trees with silver leaves around the edges, light beams, slowly falling silver leaves, white pixel stars, a faint ground grid, a chrome slab edge with dark shards below.\n- Player: chibi in a white hoodie, moves tile by tile (arrows, WASD, on-screen D-pad bottom left, \"A\" button bottom right to talk and turn pages). Sprites depth-sorted. Top bar: logo, \"Stalls 0/5\" with 5 squares that fill, menu.\n- Center plaza with a chrome obelisk and orbiting dots (IMD swarm). Paths to 4 stalls, each with a small chrome robot and a label chip that turns white once visited: 01 Jobs (who may launch), 02 Pool (launch and locked liquidity), 03 Fees (the 1% split), 04 Basket (runs, repayment, build pulse, close and claim). RPG dialog: black box, white border, name, \"1 / 3\", one short sentence per page.\n- North: KEEL HQ, black building with chrome trim, a K emblem and a door that glows on its step; dialog \"Enter Keel →\" opens the launchpad.\n- East: stepping stones to a broken bridge, fog, a small islet with a sealed gate and a pulsing \"?\". Only text: \"[ CLASSIFIED ] Come back later.\" Never explain it.\n- Phone: top-down portrait camera so the whole island fits; sprites 1.6× larger; dialog moves to the top when the player is low on screen.\n\n- Header: logo, Market, Launch, How it works, \"← Island\", Connect (injected wallet).\n- Hero card over a dark chrome-forest image with falling silver leaves: a \"Built on IMD\" pill, title \"Every trade ships code.\", one line under it, buttons \"Launch a token\" and \"Explore market\", 3 stats from events (launches, builds shipped, IMD in baskets).\n- Market: grid of tokens from Launched events with tabs New / Building / Closed and search. Card: avatar, name, $TICKER, status chip, price and market cap in IMD from the pool, build pulse bar with \"last build N h ago\", Buy and Details. Empty state: \"No launches yet. Launches open soon.\"\n- Launch page: while factory.paused() is true show the form as a preview with the button disabled and \"Launches open soon\". Form: name, ticker, IMD job id, image URL, description, links, a \"Your share\" slider 0 to 80% with the live split (team 10%, you X%, basket the rest), a preview card, and a collapsed \"Launch permit\" section with the launch gate response (projectRef, startTick, deadline, signature).\n- Token page: price; buy and sell through KeelRouter with a quote, minimum output and deadline; fee split and creator status; basket; run feed from RunVerified (repaid amount or recorded only) linking explorer.imd.fun job pages; build pulse: each run adds 1 and halves every 7 days, full bar at 20, \"Quiet\" below 0.5, text \"last build N h ago, M in 7 days, K total\"; close status with countdown; claim button with claimable amount.\n- How it works: the 1% IMD fee on every trade; the split; the creator pays each continuation on IMD and the basket repays the real price up to the run price only after a verifier confirms the finished job; only the team closes, after a 7-day notice and at least 30 days after launch; holders are paid on the smaller of their balance when the close was announced and just before the close, so selling during a close gives up the share; rounding leftovers stay in the contract.\n- Footer: KEEL in chrome, \"Built on IMD\", \"back to the island\", links to the contracts on Etherscan.\n- Phone: one column; the hero shows only the title and one button so token cards are on the first screen. Show only real data from the chain: no sample or placeholder tokens, prices or stats anywhere; when there are no launches show the empty state.\nFooter also says \"not operated by IMD\".","parentJobId":"22a15e63-2986-4cf5-b2a7-71ca7756c47e","planHash":"71e67d31840c9c742a6ae055b837fc620d0bd7e0caa397f5b33d972e639b4140","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"22a15e63-2986-4cf5-b2a7-71ca7756c47e","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1233-deploy-repository-ethereum-mainnet"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51167","feedbackHash":"fe43d70cf7a6624e6f9cc5b228af73cf0fce26ee7d5b022441b4e8ee5938d11f","nodeKey":"build_website","submissionHash":"1d007ed69827f92939bc9d12868b745c96574f8c874f269f78a547d8caf6316e","tag1":"verification:structural","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"e256d682e4c0a8c3c2ec8709572aff03f4fe2cfeb4976e0a1b0bc77106ce1298","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"1929e404f88ebaaa961c332e98f3988555fa05e2232d38a8034fdb89855ff826","device":"2c736d2f8963f8a5","findings":[],"hash":"1d007ed69827f92939bc9d12868b745c96574f8c874f269f78a547d8caf6316e","nodeId":"a1a83638-c7cc-422e-935a-9c2c2fb4b86d","outcome":"completed","summary":"Implemented the Keel site and static [export](dist/index.html), with island gameplay, responsive pages, chain reads and wallet flows.\n\nBuild, typecheck, 30 browser checks and 25 chain/wallet checks passed. Submission files total **3.94 MiB**, below 8 MiB. Contracts remain unchanged.\n\n[README](README.md) · [Design](DESIGN.md) · [Validation](docs/website/validation.md)\n\nNo transactions were sent. Run-job links require the original job ID because events store hashes.","treeHash":"df64c5271d963ac77f7e0dc317a7294ad7e0eb11","usage":{"cachedInputTokens":7918976,"inputTokens":170474,"model":"gpt-6-astra","outputTokens":59139,"runtime":"codex","turns":10,"wallClockMs":1690816}}],"verification":[{"checks":[],"detail":"paths and tree verified; no suite was run for this kind of work","evaluation":"structural","profile":"none","status":"accepted","submissionHash":"1d007ed69827f92939bc9d12868b745c96574f8c874f269f78a547d8caf6316e","verifiedTreeHash":"df64c5271d963ac77f7e0dc317a7294ad7e0eb11","verifierVersion":"0.1.0+fdeb4d4a"}]}