{"ok":true,"site":{"host":"tryprismlaunch.vercel.app","url":"https://tryprismlaunch.vercel.app/","type":"live","desc":"An agent-native launch-video studio for software. You direct; your agent turns the product you built into the film that launches it.","tools":[{"name":"prism.read_guide","kind":"answer","impl":"imperative","description":"Required first: read SKILL.md and PRISM_METHOD.md before planning, drafting or editing. Call once per document; returns the full current guide. Editing tools require both this session. Re-read relevant sections before stages and revisions.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"document":{"type":"string","enum":["SKILL.md","PRISM_METHOD.md"],"description":"Required before work: read SKILL.md for operation and PRISM_METHOD.md for creative method. Call separately for each full guide."}},"required":["document"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.get_project_context","kind":"act","impl":"imperative","description":"Read required agent guidance, storage, canvas and process state. Read agentGuidance first: call prism.read_guide for both guides before planning or editing, including when resuming an existing film. Then follow process and the person's notes.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.create_project","kind":"act","impl":"imperative","description":"Create and open an empty composition in linked storage. Starts with visual/audio tracks and grows as clips are placed. Needs storage setup first. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Folder name to create under .prismlaunch, e.g. 'vector-launch'. (up to 48 chars)"},"name":{"type":"string","description":"Human-readable title, e.g. 'Vector launch video'. (up to 80 chars)"},"durationSeconds":{"description":"Usually omit this. A new composition starts with no runtime and grows automatically as you place clips, so you do not have to guess a length up front. (0.5–300)","type":"number"},"width":{"type":"integer","description":"(64–4096)"},"height":{"type":"integer","description":"(64–4096)"},"fps":{"description":"Defaults to 30. (1–60)","type":"integer"},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["solid"]},"color":{"type":"string"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["gradient"]},"from":{"type":"string"},"to":{"type":"string"},"angle":{"type":"number","description":"(0–360)"}},"required":["kind"]}]}},"required":["slug","name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.open_project","kind":"act","impl":"imperative","description":"Show a composition that already exists in the linked folder, by its folder name. Use the slugs from get_project_context. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Folder name under .prismlaunch, as listed by get_project_context. (up to 48 chars)"}},"required":["slug"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.submit_brief","kind":"transact","impl":"imperative","description":"Stage 1: audience, message, feeling, length. Gather product assets first. End your turn after submission; only the person approves in Process. Follow PRISM_METHOD.md §5. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"audience":{"type":"string","description":"One kind of person, specifically. Not 'developers'. (up to 200 chars)"},"message":{"type":"string","description":"The one sentence the film has to land. No commas, no 'and'. (up to 200 chars)"},"feeling":{"type":"string","description":"One word: what they should feel. Relief, envy, recognition, calm. (up to 40 chars)"},"lengthSeconds":{"type":"number","description":"15 is one idea, 30 is one idea with a turn, 45 is an idea with an escalation. (5–180)"},"summary":{"description":"One sentence on what you did and why. Shown to the person beside the artifact. (up to 300 chars)","type":"string"}},"required":["audience","message","feeling","lengthSeconds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.submit_concepts","kind":"transact","impl":"imperative","description":"Stage 2: submit 2–4 directions, scored with the six tests, and recommend one. Requires approved brief. PRISM_METHOD.md §5. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"directions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Short handle, e.g. 'c1'. (up to 40 chars)"},"title":{"type":"string","description":"(up to 60 chars)"},"line":{"type":"string","description":"The idea in one sentence with no 'and'. (up to 200 chars)"},"angle":{"description":"Which lever produced it: 'the enemy', 'before/after', 'the contrast'… (up to 40 chars)","type":"string"},"feel":{"description":"The one-word feeling. (up to 24 chars)","type":"string"},"score":{"description":"Out of 12, from the six tests in PRISM_METHOD.md §5. (0–12)","type":"integer"}},"required":["id","title","line"]},"description":"Two to four directions. Three is right. Generated from 8–12 angles, not the first one. (2–4 items)"},"recommended":{"type":"string","description":"The id of the one you recommend. (up to 40 chars)"},"summary":{"description":"One sentence on what you did and why. Shown to the person beside the artifact. (up to 300 chars)","type":"string"}},"required":["directions","recommended"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.submit_script","kind":"transact","impl":"imperative","description":"Stage 3: submit timed beats and optional voiceover. Timing follows events. Requires approved concept. PRISM_METHOD.md §1, §6. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"beats":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"(up to 40 chars)"},"label":{"type":"string","description":"'Hook', 'Reveal', 'Proof 1'… (up to 40 chars)"},"words":{"type":"string","description":"On-screen text in runs of 1–4 words per line; one accent word. PRISM_METHOD.md §6. (up to 160 chars)"},"seconds":{"type":"number","description":"Derive from visual events, never a preset budget. Usually 2–4 seconds per section, averaging two events per second. PRISM_METHOD.md §1. (0.3–20)"},"sound":{"description":"What the music or SFX does here. (up to 140 chars)","type":"string"}},"required":["id","label","words","seconds"]},"description":"The film as connected visual events. Around 10–12 sections for 30 seconds; let the actual events determine length. PRISM_METHOD.md §1. (2–14 items)"},"voiceover":{"description":"The full VO if there is one. Never the same words as on screen. (up to 800 chars)","type":"string"},"summary":{"description":"One sentence on what you did and why. Shown to the person beside the artifact. (up to 300 chars)","type":"string"}},"required":["beats"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.submit_storyboard","kind":"transact","impl":"imperative","description":"Stage 4: DRAW every shot with required visual.layers (positioned UI, images, subjects, words, cursors and keyframes), plus action, duration, handoff and sound. Section titles alone are not boards. Read SKILL.md Visual storyboards. Requires approved script. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"panels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"(up to 40 chars)"},"beatId":{"description":"The script beat this boards. (up to 40 chars)","type":"string"},"label":{"type":"string","description":"'Hook', 'Reveal', 'Proof 1'… (up to 40 chars)"},"frame":{"type":"string","description":"What is on screen: ground, composition, type role, the product if shown. A sentence a designer could draw from. (up to 280 chars)"},"action":{"description":"The events, in order, with frames: what arrives, what it does, what leaves. 'Line pops in 6f, holds 18f, out 5f; phone flies in 20f, drifts.' (up to 240 chars)","type":"string"},"handoff":{"description":"What is still on screen when the next panel starts — the object that carries the cut. 'The phone, flying left, dragging the bar.' (up to 140 chars)","type":"string"},"durationInFrames":{"type":"integer","description":"At 30fps: the SUM of the events' frames in `action`, never a budget chosen first. Then nudged onto the beat grid once you have chosen music. (6–9000)"},"transitionIn":{"description":"Defaults to fade.","type":"string","enum":["none","fade","rise","fall","slide-left","slide-right","scale","blur","pop","zoom","flip","wipe"]},"transitionOut":{"description":"Defaults to fade.","type":"string","enum":["none","fade","rise","fall","slide-left","slide-right","scale","blur","pop","zoom","flip","wipe"]},"sound":{"description":"What the music or SFX does here. (up to 140 chars)","type":"string"},"words":{"description":"The on-screen words, if any. Under seven. (up to 160 chars)","type":"string"},"visual":{"type":"object","properties":{"background":{"type":"string","enum":["light","dark"]},"layers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"(up to 40 chars)"},"kind":{"type":"string","enum":["rect","ellipse","text","image","browser","phone","cursor","arrow"]},"label":{"type":"string","description":"What this object represents; describe missing footage honestly. (up to 80 chars)"},"x":{"type":"number","description":"(-2–3)"},"y":{"type":"number","description":"(-2–3)"},"width":{"type":"number","description":"(0–3)"},"height":{"type":"number","description":"(0–3)"},"rotation":{"type":"number","description":"(-180–180)"},"opacity":{"type":"number","description":"(0–1)"},"text":{"type":"string","description":"(up to 240 chars)"},"src":{"description":"An imported image under assets/ or a library/ image. Never invent a screenshot path. (up to 200 chars)","type":"string"},"fit":{"type":"string","enum":["contain","cover"]},"tone":{"type":"string","enum":["ink","muted","paper","outline"]},"fontSize":{"description":"Fraction of canvas height. (0.015–0.4; defaults to 0.055)","type":"number"},"from":{"type":"integer","description":"(0–8999)"},"until":{"description":"Exclusive end frame; omit to remain until the cut. (1–9000)","type":"integer"},"keyframes":{"description":"Ordered target poses at shot-local frames. Omitted pose fields keep their preceding value. hold makes a cut. (0–8 items; defaults to [])","type":"array","items":{"type":"object","properties":{"x":{"type":"number","description":"(-2–3)"},"y":{"type":"number","description":"(-2–3)"},"width":{"type":"number","description":"(0–3)"},"height":{"type":"number","description":"(0–3)"},"rotation":{"type":"number","description":"(-180–180)"},"opacity":{"type":"number","description":"(0–1)"},"at":{"type":"integer","description":"(1–8999)"},"easing":{"type":"string","enum":["linear","smooth","hold"]}},"required":["at"]}}},"required":["id","kind","label","x","y","width","height"]},"description":"Back to front. Draw the actual shot: subjects, UI regions, text and movement, not its section title. (1–32 items)"}},"required":["layers"],"description":"REQUIRED shot composition. Position real screenshots or labelled rough subjects, type, arrows and cursors. Keyframes show changes within the shot. Section titles alone are not boards."}},"required":["id","label","frame","durationInFrames","visual"]},"description":"One panel per script beat, in order. Board the first, then the last, then fill between. (2–40 items)"},"summary":{"description":"One sentence on what you did and why. Shown to the person beside the artifact. (up to 300 chars)","type":"string"}},"required":["panels"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.lay_animatic","kind":"act","impl":"imperative","description":"Optional planning scaffold: copy approved boards to the Boards track. Re-running replaces that track. Before animatic review, replace all roughs with approved style elements and remove/hide Boards; this tool does not build finished shots. Requires approved storyboard. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.submit_animatic","kind":"transact","impl":"imperative","description":"Stage 6: submit all shots in the approved visual style with continuous music. Visible storyboard roughs are refused. Watch playback with sound first; still captures cannot verify audio or stalls. Human approval locks timing. Requires approved style frames. PRISM_METHOD.md §10. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"summary":{"description":"One sentence on what you did and why. Shown to the person beside the artifact. (up to 300 chars)","type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.submit_style_frames","kind":"transact","impl":"imperative","description":"Stage 5: submit the look, elements and 2–3 real clips (hook, reveal, endcard). Requires approved storyboard. PRISM_METHOD.md §7. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"look":{"type":"string","enum":["kinetic","void","paper","editorial","spec","custom"],"description":"Which look from PRISM_METHOD.md §7 — kinetic, void, paper, editorial or spec — or 'custom' if you built your own."},"elementIds":{"type":"array","items":{"type":"string","description":"(up to 60 chars)"},"description":"The elements the look is made of — at least the headline style. From prism.add_element. (1–60 items)"},"clipIds":{"type":"array","items":{"type":"string","description":"(up to 60 chars)"},"description":"The clips you built for real — the hook, the reveal, the endcard. Everything else copies these. (1–12 items)"},"summary":{"description":"One sentence on what you did and why. Shown to the person beside the artifact. (up to 300 chars)","type":"string"}},"required":["look","elementIds","clipIds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.submit_build","kind":"transact","impl":"imperative","description":"Stage 8: submit the finished film with placeholders replaced and sound placed. Requires approved polish. After human approval, request_render. PRISM_METHOD.md §10. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"summary":{"description":"One sentence on what you did and why. Shown to the person beside the artifact. (up to 300 chars)","type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.submit_polish","kind":"transact","impl":"imperative","description":"Stage 7: submit checklist verdicts and revised sound plan after reviewing the rough with sound, muted and half size. Requires approved animatic. PRISM_METHOD.md §9, §12. Read both guides with prism.read_guide before work.","inputSchema":{"type":"object","properties":{"checklist":{"type":"array","items":{"type":"string","description":"(up to 200 chars)"},"description":"Each line of the §12 checklist you ran against the rough, with its verdict: '✓ two events per second', '✗ the cut at f240 has no handoff — the phone now carries it'. (1–80 items)"},"soundPlan":{"description":"The sound, rethought against the person's notes: the filled-in plan from PRISM_METHOD.md §9. The build places it. (up to 1600 chars)","type":"string"},"summary":{"description":"One sentence on what you did and why. Shown to the person beside the artifact. (up to 300 chars)","type":"string"}},"required":["checklist"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.wait_for_decision","kind":"act","impl":"imperative","description":"Read the submitted stage’s human decision and note. Call once when the person returns after review. Do not poll: submit, end your turn and ask for review. Read-only.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"stage":{"description":"Which stage to wait on. Default: the one that is submitted and waiting.","type":"string","enum":["brief","concept","script","storyboard","style","animatic","polish","build"]},"timeoutSeconds":{"description":"How long to wait before returning \"still waiting\", so you can call again. Default 25, kept short so the call fits any harness. (1–600)","type":"integer"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prism.use_toolset","kind":"act","impl":"imperative","description":"Switch the visible PrismLaunch tools. workflow: project and 8 stages; graphics: tracks, text, shapes, icons, particles; media: HTML, devices, image, video, audio; elements: reusable styles/library/place; edit: update clips, canvas, preview, capture and render. Call again whenever another set is needed, then fetch tools again.","inputSchema":{"type":"object","properties":{"toolset":{"type":"string","enum":["workflow","graphics","media","elements","edit"],"description":"Tool group to expose."}},"required":["toolset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"AI & Agents","favicon":"/favicons/tryprismlaunch.vercel.app.ico","apiSurface":"spec","toolCount":15}}