templates.AIAgent/.w4c/template.json

118 lines
4.2 KiB
JSON

{
"schema": 1,
"id": "ai-agent",
"title": "AI Agent App",
"description": "A chat app around an LLM agent with tool calling, retrieval over your documents and streaming answers.",
"tags": [
"ai",
"llm",
"rag"
],
"thumbnail": ".w4c/preview.svg",
"agentId": "w4c-startup",
"defaultName": "ai-agent",
"skills": [
"project-bootstrap"
],
"fields": [
{
"key": "agentName",
"label": "Agent name",
"type": "text",
"required": true,
"placeholder": "Support Copilot"
},
{
"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": "Next.js",
"required": true
},
{
"key": "model",
"label": "Default model",
"type": "select",
"options": [
"deepseek-v4-flash-vision-exp",
"deepseek-v4-flash",
"OpenAI",
"Anthropic",
"BYOK"
],
"default": "deepseek-v4-flash-vision-exp",
"required": true
},
{
"key": "retrieval",
"label": "Retrieval",
"type": "select",
"options": [
"pgvector",
"Qdrant",
"OpenSearch",
"None (chat only)"
],
"default": "pgvector"
},
{
"key": "tools",
"label": "Agent tools",
"type": "textarea",
"default": "search_documents, http_fetch, run_sql"
},
{
"key": "features",
"label": "Must-have features",
"type": "textarea",
"default": "streaming chat, document upload + RAG, tool calls, conversation history"
},
{
"key": "notes",
"label": "Additional notes",
"type": "textarea"
}
],
"promptTemplate": "You are starting a new project from the '{{title}}' template.\n\nRepository: {{repoFullName}}\nAgent: {{agentName}}\nTech stack: {{stack}}\nModel: {{model}}\nRetrieval: {{retrieval}}\nTools: {{tools}}\nMust-have features: {{features}}\nAdditional notes: {{notes}}\n\nBefore writing any code, read README.md, SPEC.md and the .w4c/ folder: they define the scope, routes/screens, data model, flows and acceptance criteria. Then apply the project-bootstrap best practices and work top-down in layers: scaffold → streaming chat → conversation persistence → document ingestion/retrieval → tool calling → usage/limits → quality. Keep model keys server-side and stream tokens end-to-end. Keep docs/PLAN.md, the board and .w4c/project.json in sync as the project evolves. 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"
}
]
}