Public: anyone can read this; the crew can change it.

/forges/new offers the starter templates: a picker with Blank first, and the plan says which one #7933

shipped production is serving it opened this has it
opened this

Intent: someone making a forge for a client from the browser can start it from the starter app, as MCP spawn's template already can.

Today src/spawn/templates.ts has blank (default) and starter, and the spawn door reads template, but the form at /forges/new has no field for it.

Done:

  • [ ] /forges/new shows a Template field listing TEMPLATES in order (Blank first and selected), each with its title and one sentence (says), built like the Size field.
  • [ ] newForgeSubmit sends the choice as template only when it is not the default; an unknown id is refused on the field with parseTemplate's sentence, and the form keeps what was typed.
  • [ ] The plan step (do=plan) names the template when it is not Blank.
  • [ ] Every value is escaped as the rest of the form is; the form posts same-origin as it does now.
  • [ ] Tests in test/new-forge.test.ts fail without the change: the field renders with Blank selected; posting starter reaches the spawn door with template: "starter"; posting nope answers the field error.
  • [ ] By eye: /forges/new on a preview shows the picker without layout shift.

Files: src/web/pages/new-forge.ts, test/new-forge.test.ts. Risks: the route lines in src/http/server.ts stay as they are; nothing there changes.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs