plugins/development/skills/fullstack-orchestrator/SKILL.md
Orchestrates fullstack application development by coordinating backend and frontend workflow skills, managing API contracts, and ensuring consistency between layers. Auto-detects tech stack or asks. Use when a feature requires both backend API and frontend UI, or when starting a new fullstack project. Trigger phrases - "fullstack", "full stack", "backend and frontend", "API plus UI", "new project with both layers". NOT for backend-only (use fastapi-workflow) or frontend-only work (use frontend-app/frontend-lp).
npx skillsauth add petrogurcak/skills fullstack-orchestratorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill orchestrates fullstack application development by coordinating existing workflow skills. It does NOT implement workflows itself - it detects the tech stack and calls the appropriate backend + frontend skills.
Philosophy:
Orchestrator = Conductor
Workflow Skills = Musicians
The conductor doesn't play instruments, but coordinates who plays when.
Announce: "I'm using the fullstack-orchestrator to coordinate backend and frontend development."
USE this skill:
DON'T use this skill:
Trigger phrases:
"Create an application..." → Orchestrator
"Add feature with UI..." → Orchestrator
"Need endpoint + page" → Orchestrator
"Change API and update frontend" → Orchestrator
"Add endpoint..." → Backend skill directly
"Update component..." → Frontend skill directly
"Fix bug in API..." → Backend skill directly
Is there .claude/fullstack.yaml?
├─ YES → Use stored stack config
└─ NO → Continue to Step 2
| File/Pattern | Detected Technology | Skill |
| ----------------------------------------- | ------------------- | ------------------- |
| requirements.txt contains fastapi | FastAPI backend | fastapi-workflow |
| composer.json contains nette | Nette backend | nette-workflow |
| package.json contains alpinejs | Alpine frontend | frontend-workflow |
| package.json contains expo | Expo mobile | expo-workflow |
| pubspec.yaml | Flutter mobile | flutter-workflow |
| package.json contains react (no expo) | React frontend | no skill - warn |
Detection commands:
# Backend detection
grep -l "fastapi" requirements.txt 2>/dev/null && echo "fastapi"
grep -l "nette" composer.json 2>/dev/null && echo "nette"
# Frontend detection
grep -l "alpinejs" package.json 2>/dev/null && echo "alpine"
grep -l "expo" package.json 2>/dev/null && echo "expo"
test -f pubspec.yaml && echo "flutter"
If autodetection fails, look for keywords in user's request:
Keywords → Stack mapping
"fastapi", "python backend", "python api" → fastapi-workflow
"nette", "php", "latte" → nette-workflow
"alpine", "tailwind frontend", "vite" → frontend-workflow
"expo", "react native" → expo-workflow
"flutter", "dart" → flutter-workflow
If still unclear, ask:
I need to know your tech stack. Please specify:
**Backend:**
A) FastAPI (Python)
B) Nette (PHP)
C) None / API already exists
**Frontend:**
A) Vite + TypeScript + Tailwind + Alpine.js (Web)
B) Expo + React Native (Mobile)
C) Flutter (Mobile)
D) None / No frontend needed
After detection, create .claude/fullstack.yaml:
# Fullstack project configuration
# Generated by fullstack-orchestrator
stack:
backend: fastapi # fastapi | nette | none
frontend: alpine # alpine | expo | flutter | none
skills:
backend: fastapi-workflow
frontend: frontend-workflow
specs: openspec-workflow
# Optional: custom skill mappings
# custom_skills:
# database: my-database-skill
fullstack-orchestrator
│
├── project-setup.skill (initial setup, TDD principles)
│
├── openspec-workflow (specs, proposals, tasks)
│
├── Backend skill (one of):
│ ├── fastapi-workflow.skill
│ └── nette-workflow.skill
│
└── Frontend skill (one of):
├── frontend-workflow.skill
├── expo-workflow.skill
└── flutter-workflow.skill
When orchestrator needs backend work:
"I'm now using fastapi-workflow for backend implementation."
When orchestrator needs frontend work:
"I'm now using frontend-workflow for frontend implementation."
When orchestrator needs specs:
"I'm now using openspec-workflow to create specifications."
For any fullstack feature, first create specs:
User: "Add user authentication with login page"
↓
Create OpenSpec proposal with:
- Backend requirements (endpoints, auth logic)
- Frontend requirements (UI components, state)
- API Contract (request/response schemas)
↓
Get user approval before implementation
API Contract format (in proposal or separate file):
## API Contract
### POST /auth/login
**Request:**
```json
{
"email": "string",
"password": "string"
}
```
Response (200):
{
"token": "string",
"user": {
"id": "number",
"email": "string",
"name": "string"
}
}
Errors:
### Phase 2: Implementation Order
Ask or determine implementation order:
| Approach | When to use |
|----------|-------------|
| **Backend first** | API-driven design, frontend consumes finished API |
| **Frontend first** | UI mockup exists, backend adapts to UI needs |
| **Parallel** | Clear contract, both can proceed simultaneously |
Default: **Backend first** (most common for API-driven apps)
### Phase 3: Backend Implementation
Invoke backend workflow skill:
For each backend task from specs:
### Phase 4: Frontend Implementation
Invoke frontend workflow skill:
For each frontend task from specs:
### Phase 5: Integration Verification
After both layers implemented:
```bash
# Start backend
cd backend && [start command from stack]
# Start frontend
cd frontend && [start command from stack]
# Verify integration
# - Frontend can reach backend
# - API calls succeed
# - E2E flow works
Verification checklist:
☐ Backend server starts without errors
☐ Frontend server starts without errors
☐ Frontend can call backend API
☐ Authentication flow works (if applicable)
☐ Data flows correctly between layers
☐ Error handling works (backend errors show in frontend)
User request arrives
↓
┌─ Affects only backend? ─┐
│ │
YES NO
↓ ↓
Use backend ┌─ Affects only frontend? ─┐
skill directly │ │
YES NO
↓ ↓
Use frontend FULLSTACK FEATURE!
skill directly ↓
1. OpenSpec specs
2. API contract
3. Backend impl
4. Frontend impl
5. Integration test
When starting a new fullstack project:
Follow Stack Detection process above.
# Create directories
mkdir -p backend frontend
# Create config
mkdir -p .claude
Backend:
- Use project-setup skill with detected backend variant
- Creates CLAUDE.md, .claude/ in backend/
Frontend:
- Use project-setup skill with detected frontend variant
- Creates CLAUDE.md, .claude/ in frontend/
Root:
- Create .claude/fullstack.yaml with stack config
✅ Fullstack project initialized!
Stack:
- Backend: [detected] → [skill]
- Frontend: [detected] → [skill]
Structure:
project/
├── .claude/
│ └── fullstack.yaml # Stack configuration
├── backend/
│ ├── CLAUDE.md
│ └── .claude/ # Backend principles
└── frontend/
├── CLAUDE.md
└── .claude/ # Frontend principles
Ready! Try: "Add user authentication with login page"
If technology detected but no skill exists:
⚠️ No workflow skill found for: React frontend
Options:
A) Continue without docs-first workflow
(I'll use general best practices, but won't fetch current docs)
B) Switch to supported frontend
- Alpine.js (frontend-workflow)
- Expo (expo-workflow)
- Flutter (flutter-workflow)
C) Add custom skill
(Create your own react-workflow.skill)
Which option?
# Required
stack:
backend: fastapi | nette | none
frontend: alpine | expo | flutter | none
# Auto-populated based on stack
skills:
backend: fastapi-workflow | nette-workflow | null
frontend: frontend-workflow | expo-workflow | flutter-workflow | null
specs: openspec-workflow
# Optional overrides
custom_skills:
backend: my-custom-backend-skill
frontend: my-custom-frontend-skill
# Optional project-specific settings
settings:
implementation_order: backend-first | frontend-first | parallel
api_contract_location: openspec/contracts/ # where to store contracts
User: "Create a task management app with FastAPI and Alpine frontend"
Orchestrator:
1. Detected stack: fastapi + alpine
2. Created .claude/fullstack.yaml
3. Initialized backend/ with project-setup (FastAPI variant)
4. Initialized frontend/ with project-setup (Frontend variant)
5. Ready for features
User: "Add task creation with form"
Orchestrator:
1. Read .claude/fullstack.yaml → fastapi + alpine
2. This is fullstack (backend endpoint + frontend form)
3. Create OpenSpec proposal:
- POST /tasks endpoint
- Task creation form component
- API contract
4. After approval:
- "Using fastapi-workflow for POST /tasks endpoint"
- "Using frontend-workflow for task form component"
5. Integration verification
User: "Add pagination to /tasks endpoint"
Orchestrator:
1. This is backend-only (no new UI mentioned)
2. Direct to: "Using fastapi-workflow for pagination"
3. No orchestration needed
Before considering fullstack work complete:
PROJECT SETUP:
☐ Stack detected/configured
☐ .claude/fullstack.yaml exists
☐ Both layers have CLAUDE.md and .claude/
FEATURE IMPLEMENTATION:
☐ OpenSpec proposal created and approved
☐ API contract defined
☐ Backend implemented with TDD (via backend skill)
☐ Frontend implemented (via frontend skill)
☐ API calls match contract
INTEGRATION:
☐ Both servers start without errors
☐ Frontend successfully calls backend
☐ Error handling works across layers
☐ E2E flow verified
Fullstack Orchestrator:
.claude/fullstack.yamlopenspec-workflowKey principle: One change in workflow skill = benefit for all fullstack projects using it.
No duplication: Orchestrator is just "glue" - all real work happens in specialized workflow skills.
development
Builds a pre-launch social proof strategy through structured beta programs using D'Souza Brain Audit interviews. Use when launching new products/services and need compelling testimonials, planning a beta cohort, designing interview questions to harvest objection-busting social proof, improving video testimonials for landing pages, or designing case studies with metrics. Trigger phrases include "beta tester program for testimonials", "pre-launch social proof", "Brain Audit testimonial framework", "case study harvest", "reverse testimonial", "video testimonial mechanics", "social proof landing page", "sběr referencí", "beta tester program", "testimonial pro landing page", "social proof před launchem", "rozhovor s klientem", "case study sběr", "reference před spuštěním". NOT for ongoing case study production (use growth-hacking case-study approach), offer design (use offer-creation), or conversion optimization (use ux-optimization).
development
Use when planning a product launch and the product type is unclear or could be either generic (SaaS/app/physical) or info-product. Routes between marketing:launch-strategy (generic launches) and marketing:info-product-launch (courses, memberships, ebooks, cohorts, communities). Trigger phrases - "launch", "spuštění", "go-to-market", "product launch", "release strategy", "uvedení na trh", "launch plan", "spuštění produktu", "launch sequence", "launch strategy". Do NOT trigger when product type is already clear (use specific skill directly).
testing
Specialized 8-week launch cadence for info-products — online courses, cohort programs, memberships, communities, ebooks, masterminds. Combines Jeff Walker's Product Launch Formula (Seed/Internal/JV variants, PLC sequence, open-cart day-by-day) with Stu McLaren's membership mechanics (closed cart, Success Path) and Hormozi Grand Slam Offer stacking. Use when planning "launch online kurzu", "info-product launch", "PLF launch", "course launch", "membership launch", "cohort launch", "ebook launch", "open cart close cart", "8-week launch of online course", "beta cohort to launch sequence", "spuštění kurzu", "launch členské sekce", "open cart strategie". Differentiates from marketing:launch-strategy (generic SaaS/app launches) — info-product-specific. NOT for SaaS launches, physical products, or services.
development
Use when releasing an Expo/React Native mobile app to App Store and Google Play - covers eas submit, ASC "Submit for Review", Play promote Internal→Production, OTA update, and decoding common silent failures (Apple agreement expiry, missing English locale, Background Location declaration, web bundle failure on react-native-maps).