diff --git a/.w4c/template.json b/.w4c/template.json new file mode 100644 index 0000000..03248a3 --- /dev/null +++ b/.w4c/template.json @@ -0,0 +1,110 @@ +{ + "schema": 1, + "id": "content-site", + "title": "Content Site (Blog / Docs)", + "description": "A fast, SEO-friendly content site for a blog, documentation or marketing pages, with a typed content model.", + "tags": [ + "web", + "content", + "seo" + ], + "thumbnail": ".w4c/preview.svg", + "agentId": "w4c-startup", + "defaultName": "content-site", + "skills": [ + "project-bootstrap" + ], + "fields": [ + { + "key": "siteName", + "label": "Site name", + "type": "text", + "required": true, + "placeholder": "Acme Docs" + }, + { + "key": "stack", + "label": "Tech stack", + "type": "select", + "options": [ + "Vue 3 + Quasar", + "Nuxt 3", + "Next.js", + "React + Vite", + "Angular", + "SvelteKit", + "SolidStart", + "Remix", + "Astro", + "Laravel + Vue", + "Django + HTMX", + "Rails + Hotwire", + "Phoenix (Elixir)", + "Spring Boot + React", + "ASP.NET Core + Blazor", + "Go + Templ", + "Rust + Axum", + "Flutter", + "React Native (Expo)", + "SwiftUI", + "Jetpack Compose (Kotlin)" + ], + "default": "Astro", + "required": true + }, + { + "key": "content", + "label": "Content type", + "type": "select", + "options": [ + "Blog", + "Documentation", + "Marketing pages", + "All of them" + ], + "default": "Blog", + "required": true + }, + { + "key": "cms", + "label": "Authoring", + "type": "select", + "options": [ + "Markdown / MDX", + "Contentful", + "Sanity", + "Notion" + ], + "default": "Markdown / MDX" + }, + { + "key": "features", + "label": "Must-have features", + "type": "textarea", + "default": "sitemap, RSS, search, dark mode, code highlighting, OG images" + }, + { + "key": "notes", + "label": "Additional notes", + "type": "textarea" + } + ], + "promptTemplate": "You are starting a new project from the '{{title}}' template.\n\nRepository: {{repoFullName}}\nSite: {{siteName}}\nTech stack: {{stack}}\nContent type: {{content}}\nAuthoring: {{cms}}\nMust-have features: {{features}}\nAdditional notes: {{notes}}\n\nRead README.md, SPEC.md and the .w4c/ folder before writing code — they define the scope, the routes/screens, the content model, the flows and the acceptance criteria. Then work top-down in layers (scaffold → content model → layouts → SEO/feed → search → authoring → quality), keeping docs/PLAN.md, the board and .w4c/project.json in sync. Define a typed content model, then layout/SEO, then search and polish; ship as static output where possible. Apply the project-bootstrap best practices. Bundled assets: {{elements}}\n\nFIRST TURN — lay the project out on its board before writing any code. Read `.w4c/boards/roadmap.json` and create one board card per layer in THIS repository (projectId = the repository full name above), prefixing every title with its unicode icon: 🧭 plan & scope, 🎨 design (mockups), 🗺️ architecture diagram, 🗄️ database & forms, ⚙️ backend & API, 💻 frontend (code), 🛡️ admin panel, 📊 control panel, 🔀 workflows, 🚀 deploy, ✅ quality & delivery. Each card body carries the goal, the deliverables, the acceptance criteria (a command or a runtime check) and the references; set the priority labels. Do not create or configure new agents — that is a follow-up, not part of bootstrap. Then report the card list and invite the user to continue on My Boards (/boards); do not start a layer before the user has reviewed the plan.", + "elements": [ + { + "kind": "diagram", + "name": "Architecture", + "path": ".w4c/diagrams/architecture.excalidraw.json" + }, + { + "kind": "board", + "name": "Project roadmap", + "path": ".w4c/boards/roadmap.json" + }, + { + "kind": "workflow", + "name": "CI Build", + "path": ".w4c/workflows/ci-build.yaml" + } + ] +}