# Make Route > Type one sentence about the media you want to make. Make Route proposes the ordered generation > pipeline — which image, video, voice and delivery step comes next and why — and you confirm it in > one click. Then it writes the production package: the literal prompt, the settings, the artifact > each step hands the next, and the check that says it worked. Live at https://make-route.skillsafe.ai/ ## What it is for People who want to make something with generative tools rarely get stuck on any single tool. They get stuck on the route: which capability comes first, what has to exist before the expensive step runs, and where the money goes. Make Route answers that. You never pick a mode, a lane or a tool — the model reads your sentence and proposes the route; you only ever confirm, drop a step, reorder, or swap in the alternative it suggested. ## The interaction 1. **Ask.** One text field. One plain-language sentence, e.g. "a 20-second vertical ad for our cold-brew can, Spanish voiceover, I have one product photo". 2. **Plan.** A card of confirmable choices: an ordered list of steps, each naming the known capability it applies, why this brief needs it, what it consumes, what it hands on, and what it costs. Drop, reorder, or swap any step. Confirm with one click. 3. **Execute.** The production package for the confirmed route: per step, what to do, the literal prompt to paste, the settings that change the result, the named input and output artifact, the observable check, and the fallback when the check fails. ## Contract Two tasks over one system prompt, both returning a single fenced JSON object. - `task: "plan"` — input `brief` (string). Returns `read`, `target` (format, aspect, duration, language, platform), `unknowns[]`, `steps[]` (each with `skill_id`, `title`, `why`, `needs`, `gives`, `cost`, `optional`, `after[]`, optional `alt`), and `watch[]`. - `task: "execute"` — input `brief` plus `plan_json` (the confirmed, possibly edited step list as a JSON string). Returns `title`, `target`, `steps[]` (each with `do`, `prompt`, `settings[]`, `input`, `output`, `check`, `fallback`), `sequence_notes[]`, `budget`, `not_covered[]`. The confirmed order is honoured exactly. If the user's reordering breaks a dependency, the package is written in the order they confirmed and the conflict is raised in `sequence_notes` rather than being silently corrected. ## What runs in the browser, free The brief is read client-side on every keystroke: duration, aspect, platform, language, quantity and which assets the user says they already have. Those facts are shown as chips before sign-in, passed into the run, and reconciled against what the model returned — so a route that targets 30 seconds when the brief said 20 is flagged rather than shipped. ## Honest limits - Make Route plans and specifies. It does not run any generation tool, and it never claims to have. - It names model families where its own catalogue names them, and does not invent versions, prices or latency figures. - `not_covered` is routinely non-empty: music licensing, legal sign-off, a physical shoot and platform upload are outside the route and are reported as such. ## Sources The step catalogue is derived from the `@inference-sh` agent skills on SkillSafe: `ai-content-pipeline`, `ai-image-generation`, `ai-video-generation`, `ai-product-photography`, `talking-head-production`, `ai-voice-cloning`, `image-upscaling`, `background-removal` and `ai-social-media-content`. Each catalogue record names the source skill it was derived from. ## API Programmatic access is documented at https://make-route.skillsafe.ai/api.html — base URL `https://api.skillsafe.ai/v1/app-api`, with a worked example for each of the two tasks.