Claude-skill-registry gmacko-init-interview
Use when (1) starting a new project from the gmacko template, (2) user wants to create a fresh app without git history, (3) gathering requirements for PROJECT_MANIFEST.json. Conducts a guided interview to capture project goals, platforms, integrations, data model, and deployment preferences.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gmacko-init-interview" ~/.claude/skills/majiayu000-claude-skill-registry-gmacko-init-interview && rm -rf "$T"
skills/data/gmacko-init-interview/SKILL.mdGmacko Project Interview
Conduct a structured interview to gather project requirements and generate
PROJECT_MANIFEST.json.
Workflow
digraph interview { rankdir=TB; node [shape=box]; start [label="Start Interview" shape=ellipse]; frame [label="1. Frame the Interview"]; product [label="2. Product Questions"]; platforms [label="3. Platform Questions"]; integrations [label="4. Integration Questions"]; data [label="5. Data Model Questions"]; api [label="6. API Questions"]; deploy [label="7. Deployment Questions"]; summarize [label="8. Show Summary"]; confirm [label="Confirm?" shape=diamond]; write [label="9. Write PROJECT_MANIFEST.json"]; done [label="Interview Complete" shape=ellipse]; start -> frame -> product -> platforms -> integrations; integrations -> data -> api -> deploy -> summarize; summarize -> confirm; confirm -> write [label="yes"]; confirm -> product [label="revise"]; write -> done; }
Execution Steps
Step 1: Frame the Interview
Tell the user:
I'll guide you through setting up your new Gmacko Ventures project. This interview has 7 sections covering:
- Product goals and scope
- Platform choices (web/mobile)
- Integrations (auth, payments, analytics, etc.)
- Data model and entities
- API design
- Deployment configuration
You can say "skip" to use defaults for any section, or "back" to revise previous answers.
At the end, I'll show you a summary before generating your PROJECT_MANIFEST.json.
Step 2: Product Questions
Ask these questions (wait for responses):
PRODUCT GOALS ============= 1. What is the name of your project? (lowercase, hyphens allowed) Example: "acme-saas", "team-tracker", "invoice-app" 2. What is the display name? (human-readable) Example: "Acme SaaS Platform", "Team Tracker Pro" 3. Describe your project in one sentence: Example: "A B2B platform for managing team projects and tasks" 4. Who are your target users? Example: "Small to medium B2B teams (5-50 users)" 5. What are 3-5 features that MUST be in your MVP? Example: - User authentication - Project management - Task tracking - Team collaboration 6. What features are explicitly OUT of scope for MVP? Example: - Mobile app - Advanced reporting - Third-party integrations
Step 3: Platform Questions
PLATFORMS ========= 7. Which platforms do you need? a) Web only b) Web + Mobile (React Native via Expo) c) Mobile only 8. If mobile is deferred, which phase? (e.g., "Phase 2") 9. Does the app need to work offline? (yes/no)
Step 4: Integration Questions
INTEGRATIONS ============ I'll ask about each integration. Answer "yes", "no", or "later" (for Phase 2+). 10. Authentication (Clerk) - Do you need it? (default: yes) - Social providers? (google, github, apple, none) - Multi-factor auth? (yes/no) - Organizations/teams? (yes/no) 11. Payments (Stripe) - Do you need it? (yes/no/later) - Model: subscription, one-time, or usage-based? - How many pricing tiers? - Free trial days? 12. Analytics (PostHog) - Do you need it? (default: yes) - Session recording? (yes/no) 13. Error Monitoring (Sentry) - Do you need it? (default: yes) - Performance monitoring? (yes/no) 14. Email (SendGrid) - Do you need transactional emails? (yes/no/later) 15. Real-time (Pusher) - Do you need real-time updates? (yes/no/later) - Use case? (e.g., live notifications, collaborative editing) 16. File Storage (Uploadthing) - Do you need file uploads? (yes/no/later) - Use case? (e.g., profile photos, documents)
Step 5: Data Model Questions
DATA MODEL ========== 17. List your core entities (database tables): Example: users, teams, projects, tasks, comments 18. For each entity, list the key fields: Example: - users: id, email, name, avatar - projects: id, name, description, status, ownerId 19. Describe the main relationships: Example: - users -> teams (many-to-many via teamMembers) - teams -> projects (one-to-many) - projects -> tasks (one-to-many) 20. Is this a multi-tenant app? (single tenant / team-based / organization-based)
Step 6: API Questions
API DESIGN ========== 21. API style preference? a) tRPC (default, type-safe, recommended) b) REST c) GraphQL d) Mix of tRPC + WebSockets 22. List your main API routers/endpoints: Example: users, teams, projects, tasks, billing
Step 7: Deployment Questions
DEPLOYMENT ========== 23. Web deployment platform? a) Vercel (default, recommended) b) Kubernetes cluster c) Other (specify) 24. What environments do you need? Default: development, staging, production 25. Custom domains? - Production: (e.g., app.example.com) - Staging: (e.g., staging.example.com) 26. Mobile deployment (if applicable)? - EAS (Expo Application Services) is default - Bundle ID base: (e.g., com.gmacko.myapp)
Step 8: Show Summary
After gathering all answers, display a summary table:
PROJECT CONFIGURATION SUMMARY ============================= Project ------- Name: acme-saas Display: Acme SaaS Platform Description: A B2B platform for managing team projects Target Users: Small to medium B2B teams Platforms --------- Web: Yes Mobile: Phase 2 Integrations ------------ | Integration | Enabled | Configuration | |-------------|---------|---------------| | Clerk | Yes | Google, GitHub, Orgs | | Stripe | Yes | Subscription, 3 tiers, 14-day trial | | PostHog | Yes | Autocapture, Session recording | | Sentry | Yes | Performance monitoring | | SendGrid | No | - | | Pusher | Yes | Private channels | | Uploadthing | No | - | Data Model ---------- Entities: users, teams, teamMembers, projects, tasks Multi-tenancy: Team-based API --- Style: tRPC Routers: users, teams, projects, tasks, billing Deployment ---------- Web: Vercel (dev/staging/prod) Mobile: EAS Domains: app.acme-saas.com, staging.acme-saas.com
Step 9: Confirm and Write
Ask:
Does this look correct? Reply "yes" to generate PROJECT_MANIFEST.json, or tell me what to change.
On confirmation:
- Write
to the repository rootPROJECT_MANIFEST.json - Report success and suggest next steps:
PROJECT_MANIFEST.json has been created!
Next steps:
- Review the manifest file
- Run the
skill to generate INITIAL_PLAN.mdgmacko-init-plan - Run the
skill to execute setupgmacko-init-bootstrap
Output Format
The
PROJECT_MANIFEST.json must follow this schema:
{ "version": "1.0.0", "createdAt": "<ISO timestamp>", "project": { "name": "<project-name>", "displayName": "<Display Name>", "description": "<one-sentence description>", "org": "gmacko", "repository": "gmacko/<project-name>" }, "goals": { "primary": "<main goal>", "targetUsers": "<target audience>", "successMetrics": ["<metric 1>", "<metric 2>"], "mvpScope": ["<feature 1>", "<feature 2>"], "outOfScope": ["<deferred 1>", "<deferred 2>"] }, "platforms": { "web": true, "mobile": false, "mobilePhase": 2 }, "integrations": { "auth": { "provider": "clerk", "enabled": true, "config": {} }, "payments": { "provider": "stripe", "enabled": true, "config": {} }, "analytics": { "provider": "posthog", "enabled": true, "config": {} }, "monitoring": { "provider": "sentry", "enabled": true, "config": {} }, "email": { "provider": "sendgrid", "enabled": false }, "realtime": { "provider": "pusher", "enabled": false }, "storage": { "provider": "uploadthing", "enabled": false } }, "database": { "provider": "neon", "orm": "drizzle", "entities": [], "relationships": [] }, "api": { "style": "trpc", "realtime": false, "routers": [] }, "screens": { "mvp": [], "phase2": [] }, "deployment": { "web": { "provider": "vercel", "environments": [] }, "mobile": { "provider": "eas", "profiles": [], "bundleId": "" } }, "domains": {} }
Red Flags
| Rationalization | Correction |
|---|---|
| "I'll skip the interview, user seems clear" | ALWAYS complete all sections; use defaults if user says "skip" |
| "I'll just write the manifest without confirmation" | ALWAYS show summary and get explicit "yes" before writing |
| "The user didn't specify entities, I'll guess" | ASK explicitly; don't invent data model |
| "I'll add extra integrations they might need" | Only enable what user explicitly requests |
References
- Example manifest:
docs/ai/examples/PROJECT_MANIFEST.example.json - Skill system design:
docs/ai/SKILL_SYSTEM_DESIGN.md