Curated project templates that guide feature-dev Phase 3 questions with research-backed technology choices. Provides standardized options for common project types (SaaS API, ML Service, CLI Tool, Full-Stack). Use when starting new projects or when feature-dev needs structured decision guidance. Do NOT use for existing projects with established stacks - analyze existing code instead.
Provides curated, research-backed project templates for common project types (SaaS API, ML Service, CLI Tool, Full-Stack) during Phase 3 questions. Triggers when starting new projects with `/popkit:dev full` to guide technology decisions with standardized options instead of dynamic generation.
/plugin marketplace add jrc1883/popkit-claude/plugin install popkit-core@popkit-claudeThis skill inherits all available tools. When active, it can use any tool Claude has access to.
templates/cli-tool.jsontemplates/fullstack.jsontemplates/index.jsontemplates/ml-service.jsontemplates/saas-api.jsonProvides curated, research-backed project templates for /popkit:dev full Phase 3 (Questions).
Instead of dynamically generating technology options (which can miss relevant choices or suggest unfamiliar stacks), this skill provides:
| Template | Use Case | Key Decisions |
|---|---|---|
saas-api | Backend APIs for SaaS products | Runtime, Database, Auth, Billing |
ml-service | ML/AI inference APIs | Runtime, Model Serving, Inference Engine |
cli-tool | Command-line applications | Language, Distribution, Config Format |
fullstack | Full-stack web applications | Frontend, Backend, Database, Hosting |
browser-extension | Browser extensions | Manifest Version, Framework, Storage |
mobile-backend | Mobile app backends | Runtime, Push Notifications, Real-time |
Each template is a JSON file with this structure:
{
"id": "saas-api",
"name": "SaaS Backend API",
"description": "Backend API for SaaS products with auth, billing, multi-tenancy",
"icon": "cloud",
"questions": [
{
"id": "runtime",
"header": "Runtime",
"question": "Which runtime/framework should we use for the API server?",
"multiSelect": false,
"options": [
{
"value": "node-fastify",
"label": "Node.js + Fastify",
"description": "Fast, TypeScript-native, great for APIs",
"pros": ["Fastest Node framework", "First-class TypeScript", "Schema validation built-in"],
"cons": ["Smaller ecosystem than Express", "Less middleware available"],
"when": "Performance critical, TypeScript preferred, API-focused",
"popularity": { "npm_weekly": 2000000, "github_stars": 28000 }
}
],
"default": "node-fastify",
"research_sources": ["npm trends", "TechEmpower benchmarks", "State of JS 2024"]
}
],
"agents": {
"primary": ["api-designer", "code-architect"],
"supporting": ["security-auditor", "test-writer-fixer"]
},
"quality_gates": ["typescript", "lint", "test", "security-scan"],
"scaffolding": {
"directories": ["src", "src/routes", "src/services", "tests"],
"files": ["package.json", "tsconfig.json", ".env.example"]
}
}
When /popkit:dev full reaches Phase 3 (Questions):
Template Selection - First question asks project type:
What type of project is this?
- SaaS Backend API
- ML/AI Service
- CLI Tool
- Full-Stack Web App
- Custom (dynamic questions)
Load Template - Based on selection, load the corresponding template
Ask Template Questions - Use AskUserQuestion with template-defined options:
Use AskUserQuestion tool with:
- questions: template.questions (converted to AskUserQuestion format)
- Each question has curated options with descriptions
Store Decisions - Save answers for Phase 4 (Architecture)
## Phase 3: Questions
Based on your PRODUCT-SPEC.md, this looks like a **SaaS API** project.
[AskUserQuestion: Project Type confirmation]
Loading SaaS API template...
[AskUserQuestion: Runtime - Node.js+Fastify / Python+FastAPI / Go+Fiber / Bun+Hono]
[AskUserQuestion: Database - PostgreSQL / MySQL / MongoDB / SQLite]
[AskUserQuestion: Auth - Clerk / Auth0 / Supabase Auth / Custom JWT]
[AskUserQuestion: Billing - Stripe / Paddle / LemonSqueezy / None]
Decisions captured. Moving to Phase 4: Architecture...
To add a project-specific template:
templates/my-template.json following the schematemplates/index.jsonEach template option should include:
Sources:
templates/<type>.json