Project Templates Skill
Provides curated, research-backed project templates for /popkit:dev full Phase 3 (Questions).
Purpose
Instead of dynamically generating technology options (which can miss relevant choices or suggest unfamiliar stacks), this skill provides:
- Curated templates for common project types
- Research-backed options with pros/cons/when-to-use
- Consistent question flow across similar projects
- Extensibility for custom project types
Available Templates
| 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 |
Template Schema
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"]
}
}
Usage in feature-dev
Phase 3 Integration
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)
Example Flow
## 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...
Adding Custom Templates
To add a project-specific template:
- Create
templates/my-template.json following the schema
- Add entry to
templates/index.json
- Template will appear in project type selection
Research Methodology
Each template option should include:
- Popularity metrics: npm downloads, GitHub stars, survey data
- Performance data: Benchmarks where relevant
- Ecosystem size: Available plugins, middleware, tools
- Production usage: Companies using it at scale
- Maintenance status: Last release, contributor activity
Sources:
- npm trends (https://npmtrends.com)
- State of JS/Python/Go surveys
- TechEmpower benchmarks
- GitHub star history
- Developer surveys (Stack Overflow, JetBrains)
Process
- Detect Project Type: Analyze PRODUCT-SPEC.md or ask user
- Load Template: Read from
templates/<type>.json
- Present Questions: Use AskUserQuestion with template options
- Capture Decisions: Store for architecture phase
- Generate Scaffolding: Optional project structure setup
1---2name: project-templates3description: 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.4---5
6# Project Templates Skill
7
8Provides curated, research-backed project templates for `/popkit:dev full` Phase 3 (Questions).
9
10## Purpose
11
12Instead of dynamically generating technology options (which can miss relevant choices or suggest unfamiliar stacks), this skill provides:
13
141. **Curated templates** for common project types
152. **Research-backed options** with pros/cons/when-to-use
163. **Consistent question flow** across similar projects
174. **Extensibility** for custom project types
18
19## Available Templates
20
21| Template | Use Case | Key Decisions |
22| ------------------- | ------------------------------ | ---------------------------------------- |
23| `saas-api` | Backend APIs for SaaS products | Runtime, Database, Auth, Billing |
24| `ml-service` | ML/AI inference APIs | Runtime, Model Serving, Inference Engine |
25| `cli-tool` | Command-line applications | Language, Distribution, Config Format |
26| `fullstack` | Full-stack web applications | Frontend, Backend, Database, Hosting |
27| `browser-extension` | Browser extensions | Manifest Version, Framework, Storage |
28| `mobile-backend` | Mobile app backends | Runtime, Push Notifications, Real-time |
29
30## Template Schema
31
32Each template is a JSON file with this structure:
33
34```json
35{
36 "id": "saas-api",
37 "name": "SaaS Backend API",
38 "description": "Backend API for SaaS products with auth, billing, multi-tenancy",
39 "icon": "cloud",
40 "questions": [
41 {
42 "id": "runtime",
43 "header": "Runtime",
44 "question": "Which runtime/framework should we use for the API server?",
45 "multiSelect": false,
46 "options": [
47 {
48 "value": "node-fastify",
49 "label": "Node.js + Fastify",
50 "description": "Fast, TypeScript-native, great for APIs",
51 "pros": [
52 "Fastest Node framework",
53 "First-class TypeScript",
54 "Schema validation built-in"
55 ],
56 "cons": ["Smaller ecosystem than Express", "Less middleware available"],
57 "when": "Performance critical, TypeScript preferred, API-focused",
58 "popularity": { "npm_weekly": 2000000, "github_stars": 28000 }
59 }
60 ],
61 "default": "node-fastify",
62 "research_sources": ["npm trends", "TechEmpower benchmarks", "State of JS 2024"]
63 }
64 ],
65 "agents": {
66 "primary": ["api-designer", "code-architect"],
67 "supporting": ["security-auditor", "test-writer-fixer"]
68 },
69 "quality_gates": ["typescript", "lint", "test", "security-scan"],
70 "scaffolding": {
71 "directories": ["src", "src/routes", "src/services", "tests"],
72 "files": ["package.json", "tsconfig.json", ".env.example"]
73 }
74}
75```
76
77## Usage in feature-dev
78
79### Phase 3 Integration
80
81When `/popkit:dev full` reaches Phase 3 (Questions):
82
831. **Template Selection** - First question asks project type:
84
85 ```
86 What type of project is this?
87 - SaaS Backend API
88 - ML/AI Service
89 - CLI Tool
90 - Full-Stack Web App
91 - Custom (dynamic questions)
92 ```
93
942. **Load Template** - Based on selection, load the corresponding template
95
963. **Ask Template Questions** - Use `AskUserQuestion` with template-defined options:
97
98 ```
99 Use AskUserQuestion tool with:
100 - questions: template.questions (converted to AskUserQuestion format)
101 - Each question has curated options with descriptions
102 ```
103
1044. **Store Decisions** - Save answers for Phase 4 (Architecture)
105
106### Example Flow
107
108```markdown
109## Phase 3: Questions
110
111Based on your PRODUCT-SPEC.md, this looks like a **SaaS API** project.
112
113[AskUserQuestion: Project Type confirmation]
114
115Loading SaaS API template...
116
117[AskUserQuestion: Runtime - Node.js+Fastify / Python+FastAPI / Go+Fiber / Bun+Hono]
118[AskUserQuestion: Database - PostgreSQL / MySQL / MongoDB / SQLite]
119[AskUserQuestion: Auth - Clerk / Auth0 / Supabase Auth / Custom JWT]
120[AskUserQuestion: Billing - Stripe / Paddle / LemonSqueezy / None]
121
122Decisions captured. Moving to Phase 4: Architecture...
123```
124
125## Adding Custom Templates
126
127To add a project-specific template:
128
1291. Create `templates/my-template.json` following the schema
1302. Add entry to `templates/index.json`
1313. Template will appear in project type selection
132
133## Research Methodology
134
135Each template option should include:
136
137- **Popularity metrics**: npm downloads, GitHub stars, survey data
138- **Performance data**: Benchmarks where relevant
139- **Ecosystem size**: Available plugins, middleware, tools
140- **Production usage**: Companies using it at scale
141- **Maintenance status**: Last release, contributor activity
142
143Sources:
144
145- npm trends (https://npmtrends.com)
146- State of JS/Python/Go surveys
147- TechEmpower benchmarks
148- GitHub star history
149- Developer surveys (Stack Overflow, JetBrains)
150
151## Process
152
1531. **Detect Project Type**: Analyze PRODUCT-SPEC.md or ask user
1542. **Load Template**: Read from `templates/<type>.json`
1553. **Present Questions**: Use AskUserQuestion with template options
1564. **Capture Decisions**: Store for architecture phase
1575. **Generate Scaffolding**: Optional project structure setup