Every sub-command,
named.
Reference for the Stardust sub-commands. Inputs, common flags, and the artifacts each one writes.
You don't need to memorize the syntax. Every command and flag can be triggered through plain conversational intent — Stardust reads your phrasing and routes it. The reference below is the canonical form, not a requirement.
The main flow is four commands in order — extract describes the current state, direct resolves a target, prototype renders proposed redesigns, migrate ships deployable HTML. Each writes its own artifacts under stardust/; the next reads them. You can run them in order, or jump in at any point. For a presales pitch deck, the uplift shortcut collapses extract → direct → three variants into one command. The optional distill step turns user-provided design samples into a brief that direct reads as anchor references.
/stardust:uplift
One URL in. Three presales-quality redesign variants out. Collapses extract → direct → prototype × 3 into one opinionated command — every variability axis is picked from the captured brand surface rather than asked. Variant C is always cinematic.
Syntax
›/stardust:uplift <url> [flags]
Flags
- <url>
- Required. The page to redesign. Defaults to the homepage when the URL has no path.
- --page <slug>
- Override the slug if the URL points elsewhere or you want a different surface.
- --cinematic-register <name>
- Override the auto-picked register for variant C. One of
arrival,kinetic-display,live-systems,editorial,kinetic-grid. RecordsregisterSource: "user-override"in C's provenance. - --two-variants
- Render only A and C (skip B). Useful when the brand surface is thin and a forced three-way differentiation would produce a weak middle.
Writes
stardust/uplift-improvements.mdfive specific captured-site weaknesses — load-bearing for variant Astardust/uplift-questions.md"what if…" candidate walk with disqualificationsstardust/direction.mdresolved direction + three variant declarationsstardust/prototypes/<slug>-{A,B,C}-proposed.htmlthree rendered variantsstardust/prototypes/<slug>-C-cinematic.htmlcinematic variant CDESIGN-{A,B,C}.{md,json}per-variant design specs at project root
Example
›/stardust:uplift https://example.com ›/stardust:uplift https://example.com/about --cinematic-register editorial ›/stardust:uplift https://example.com --two-variants # thin surface
The three-variant role contract is non-negotiable. A is "tomorrow's version of the site you have today." B is "what if we amplified <captured trait>?" C is "what if motion was part of the identity?" Uplift refuses to ship three weak variants — if the brand surface can't differentiate three, it drops to two automatically.
/stardust:extract
Capture a brand surface — palette, typography, voice, motifs. Most often from a live URL (Stardust crawls it), but also from a prompt, a document, a Figma file, or any other source where brand traits can be read. Descriptive only; does not modify the source.
Syntax
›/stardust:extract [url] [flags]
Flags
- [url]
- Optional. The most common source. If supplied, Stardust crawls the origin (a path narrows to a subtree). If omitted, supply another source via the chat — a prompt describing the brand, a document, a Figma URL, an image.
- --cap <N>
- URL crawl only. Override the default 5-page cap. Stardust picks the home plus four IA pillars by default.
- --all
- URL crawl only. Lift the cap entirely. Crawl every discovered page after junk filtering.
- --pages <slug,…>
- URL crawl only. Restrict the crawl to specific paths. Bypasses the cap.
- --refresh <slug>
- Re-extract one page that already exists in
state.json. - --wait <mode>
- URL crawl only. Wait strategy per page:
fast,medium(default),spec, orauto. Usespecfor JavaScript-driven sites.
Writes
stardust/current/PRODUCT.mddescriptive snapshot of the captured brandstardust/current/DESIGN.md+DESIGN.json— captured visual surfacestardust/current/brand-review.htmleyeball-check artifactstardust/current/pages/<slug>.jsonper-page parsed structure + content (URL crawl)stardust/current/_brand-extraction.jsonconsolidated brand surfacestardust/state.jsonpages: extracted
Example
›/stardust:extract https://example.com --cap 10 --wait spec ›/stardust:extract # with a Figma URL or document attached in chat
New site, no source to extract from? Stardust supports designing new sites too — provide a brief about the new brand and it will roll a fresh seed without an inherited surface. Redesigning an existing source is the main supported use case today; new-site design works but is less battle-tested.
/stardust:direct
Resolve a redesign direction from a freeform phrase. Writes the target spec — what the site should become.
Syntax
›/stardust:direct "<phrase>" [flags]
Flags
- "<phrase>"
- Optional positional. Your freeform redesign intent — "more editorial", "feel more premium on mobile", "keep typography and palette". If omitted, Stardust asks for one.
- --re-direct
- Replace the current direction with a new one. Stale-flags any prototyped, approved, or migrated pages.
- --rebrand
- Force rebrand mode — full divergence-seed roll, no brand-faithful inheritance. The default is brand-faithful when the captured surface has signal; this flag opts out.
Writes
PRODUCT.mdat project root — target product specDESIGN.md+DESIGN.jsonat project root — target design systemstardust/direction.mdresolved direction + full reasoning tracestardust/state.jsonpages: extracted → directed
Example
›/stardust:direct "more editorial. lean into typography. keep the palette."
/stardust:prototype
Generate a proposed redesign for one page or all directed pages. Writes a per-page composition brief, then renders the proposed HTML, then opens a before/after viewer.
Syntax
›/stardust:prototype [slug] [flags]
Flags
- [slug]
- Optional positional. Prototype just this page. Without it, prototype every
directedpage that isn'tstale. - --refresh-stale
- Re-prototype every page flagged
staleby a direction change. - --all
- Prototype every
directedpage, including stale ones. - --no-iterate
- Render the proposed file and open the viewer, but skip the iteration loop. You iterate manually later.
- --no-critique
- Skip the automatic post-render critique pass. Default behaviour gates
prototypedstatus on P0/P1 findings. - --cinematic
- Layer a cinematic motion register on top of the static prototype. Register is read from
DESIGN.json.extensions.motion.register(written bydirect); falls back to the auto-selection heuristic if absent. Output is<slug>-cinematic.html, alongside the static<slug>-proposed.html— never replacing it. - --cinematic=<register>
- Same as
--cinematicbut forces a specific register:arrival,kinetic-display,live-systems,editorial, orkinetic-grid. Recorded asregisterSource: "user-override"so reviewers can spot when direction's heuristic was bypassed.
Writes
stardust/prototypes/<slug>-shape.mdper-page composition briefstardust/prototypes/<slug>-proposed.htmlthe proposed redesignstardust/prototypes/<slug>-cinematic.htmlcinematic overlay (when--cinematicis set)stardust/prototypes/<slug>.htmlbefore/after viewerstardust/state.jsonpage status: directed → prototyped
Example
›/stardust:prototype home ›/stardust:prototype home --cinematic ›/stardust:prototype home --cinematic=editorial ›/stardust:prototype # every directed page
/stardust:migrate
Emit deployable static HTML from approved prototypes. The final step. Output is yours to publish anywhere.
Syntax
›/stardust:migrate [slug] [flags]
Flags
- [slug]
- Optional positional. Migrate just this page. Without it, migrate every page whose status is
directed,prototyped, orapproved(and notstale). - --refresh-stale
- Re-migrate every page flagged
stale. Default skips them. - --all
- Migrate every page including stale ones.
- --force
- Re-migrate every page even when the idempotent skip would skip them.
- --require-approved
- Refuse to migrate any non-
approvedpage. Default migratesdirectedpages too. - --strict-canon
- Refuse approvals that conflict with canon. Default logs the deviation and continues.
Writes
stardust/migrated/<slug>.htmldeployable static pagestardust/migrated/assets/media + fonts + anything referencedstardust/state.jsonpage status: prototyped/approved → migrated
Example
›/stardust:migrate home ›/stardust:migrate # whole site
/stardust:prepare-migration
Before migrate can run at scale, the project needs a typed-page catalog, a module catalog, canon, and downloaded assets. prepare-migration orchestrates that cascade. It runs extract --prep, direct --prep, prototype --prep, and an assets-prep phase in sequence, with confirmation gates between phases.
Syntax
›/stardust:prepare-migration [flags]
Flags
- --from <phase>
- Resume the cascade from a specific phase. Values:
extract,direct,prototype,assets. Default starts from the earliest incomplete phase. - --skip-confirm
- Skip the per-phase confirmation gates. Useful for re-runs where the catalog is already settled.
- --canon-from <slug>
- Override the default canon-author (which is
home). Forwarded toprototype --prepwhen that phase runs.
Writes
state.json.pages[].typepage typing — set by extract --prepDESIGN.json.extensions.modules[]module catalog — confirmed by direct --prepDESIGN.json.extensions.colorReservations[]color reservations — by direct --prepstardust/canon/header, footer, css, modules — by prototype --prepstardust/migrated/assets/favicon-*favicon variants — by assets prepstardust/migrated/assets/fonts/downloaded webfont files — by assets prep
Example
›/stardust:prepare-migration ›/stardust:prepare-migration --from prototype --canon-from about
Why the two-step boundary? The split between prepare-migration and migrate is intentional. It makes "I'm committing to migrate this site" a conscious gesture and keeps idempotency obvious — re-running prep resumes from the earliest incomplete phase without re-doing settled work.
/stardust:distill — optional
Optional pre-extract step. Read a directory of user-provided design samples — static HTML mocks plus a manifest of live URLs — and produce a structured trait matrix + narrative brief that direct reads as anchor references. Use when the redesign direction has been pre-set by an art director and arrives as a folder of references.
Syntax
›/stardust:distill [samples-dir] [flags]
Flags
- [samples-dir]
- Optional positional. Defaults to
samples/. Expects a directory containingstatic/<sample>/subdirs and/or alive/urls.jsonmanifest. - --from-static
- Distill only static samples; skip live fetching.
- --from-live
- Distill only live samples; skip static parsing.
- --cap <N>
- Cap live URLs to fetch. Default 8 — enough to triangulate a visual language without burning budget on near-duplicates.
- --refresh
- Re-fetch and re-parse every sample even when cached snapshots exist.
Writes
samples/SAMPLES.mdnarrative vocabulary brief — direct reads this under Mode Bsamples/trait-matrix.jsonper-sample + cross-sample design tokenssamples/live/snapshots/cached DOM + screenshots from live URLsstardust/state.jsonaddssamples.distilledAt+ inventory
Example
›/stardust:distill # defaults to ./samples/ ›/stardust:distill samples/q2-refresh --cap 12