Stitch
Goal
The upload helper for the toolbox. Fill in a form, get back a toolbox-ready folder — meta.json + info.md (+ your index.html if you drop it in) — as a zip you unzip straight into tools/public/. Replaces hand-writing meta.json by hand.
Current state
Concept — deferred to phase 1.5. Not built yet. This page is the placeholder that mode: "placeholder" renders instead of a half-built app — see /stitch itself, which shows this same write-up.
Deferred deliberately: the exact field list is likely to change as real tools get migrated and the storage block (added during the v1 build, see below) gets used in practice. Building stitch by hand is also good practice for the manual upload/move-folder workflow it's meant to eventually replace.
Spec to build against
Form fields (mirrors the full meta.json schema):
title,description,version— free textstatus— segmented control: stable / wip / conceptmode— segmented control: live / placeholdertype— static / external (revealing aurlfield when external)icon— picker rendering the actual sprite at/icons/sprite.svgorder— numberstorage— method (localstorage / indexeddb / session / manual / none), a plain-language note, export format, import support. This block doesn't exist in the original handoff — it was added during the v1 build after auditing the first five tools and finding one (Writer) with zero persistence. It drives the risk framing in the chrome panel and on this info page, so getting it right matters more than the other fields.
Guided info.md composer — Goal / Current state / Notes / Changelog sections, with a live preview using the same markdown rules as the build (scripts/lib/markdown.mjs — headings, bold/italic, links, lists, fenced code, blockquotes, hr).
Readiness checklist — verifies the folder is toolbox-ready before export: slug is URL-safe, title and description present, description reads as one sentence, icon exists in the sprite, index.html (if any) sits at the folder root.
Optional compatibility check — drag-drop your index.html (read locally, never uploaded anywhere) and get a report on what the chrome injection will do to it: does it use 100vh/height:100%, does it touch document.body directly, does it have position:fixed overlays. This is exactly the audit that was done by hand for the first five tools when the handoff's spec'd inline chrome bar turned out to break all of them.
Export — a zip ({slug}/meta.json, {slug}/info.md, your index.html if provided) via a hand-rolled store-only zip writer, no library. Unzip into tools/public/ (or private/paused), commit, done.
Notes
- Every toolbox build prints a
⚠ CONCEPT / PLACEHOLDERwarning listing this tool until it's built — that's the standing reminder. - When ready: drop a real
index.htmlintotools/public/stitch/, flipmodeto"live"andstatusto something other than"concept"in this folder'smeta.json. The route is already live and the card is already on the grid — no other change needed.
Changelog
- v0 — placeholder shipped with the v1 toolbox build.