Phase 1b: Rename all ~94 commands across 12 plugins to /<noun> <action> sub-command pattern. Git-flow consolidated from 8→5 commands (commit variants absorbed into --push/--merge/--sync flags). Dispatch files, name: frontmatter, and cross-reference updates for all plugins. Phase 2: Design documents for 8 new plugins in docs/designs/. Phase 3: Scaffold 8 new plugins — saas-api-platform, saas-db-migrate, saas-react-platform, saas-test-pilot, data-seed, ops-release-manager, ops-deploy-pipeline, debug-mcp. Each with plugin.json, commands, agents, skills, README, and claude-md-integration. Marketplace grows from 12→20. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
name, description
| name | description |
|---|---|
| framework-detection | Detect FastAPI vs Express, identify project structure, locate route files and models |
Framework Detection
Purpose
Identify the API framework in use and map the project structure. This skill is loaded by the api-architect agent during setup and code generation to ensure framework-appropriate output.
Detection Rules
FastAPI Detection
| Indicator | Location | Confidence |
|---|---|---|
from fastapi import in Python files |
*.py |
High |
fastapi in requirements.txt |
Project root | Medium |
fastapi in pyproject.toml dependencies |
Project root | Medium |
uvicorn in requirements alongside fastapi |
Project root | High |
@app.get, @router.post decorators |
*.py |
High |
FastAPI Project Structure (typical):
app/
__init__.py
main.py # FastAPI app instance, middleware, router includes
routes/ # Route modules (one per resource)
models/ # Pydantic models (request/response schemas)
dependencies/ # Dependency injection functions
middleware/ # Custom middleware
core/ # Config, security, database setup
Express Detection
| Indicator | Location | Confidence |
|---|---|---|
express in package.json dependencies |
Project root | High |
require('express') or import express |
*.js, *.ts |
High |
express.Router() usage |
*.js, *.ts |
High |
tsconfig.json present alongside Express |
Project root | Express+TS variant |
Express Project Structure (typical):
src/
app.js or app.ts # Express app instance, middleware, router mounts
routes/ # Route modules (one per resource)
models/ # Database models (Sequelize, Mongoose, etc.)
schemas/ # Validation schemas (Zod, Joi)
middleware/ # Custom middleware
config/ # Environment config, database setup
Project Mapping Procedure
- Check package files first:
requirements.txt,pyproject.toml,package.json - Scan entry points:
main.py,app.py,app.js,app.ts,index.js,index.ts - Locate route directory: Search for
routes/,routers/,controllers/,api/ - Locate model directory: Search for
models/,schemas/,entities/ - Locate test directory: Search for
tests/,test/,__tests__/,spec/ - Check for existing OpenAPI spec:
openapi.yaml,openapi.json,swagger.*
Framework Version Detection
FastAPI: Parse version from requirements.txt pin or pyproject.toml constraint. Important for feature availability (e.g., lifespan parameter in 0.93+).
Express: Parse version from package.json dependencies. Important for middleware compatibility (Express 4 vs 5).
Ambiguous Projects
If both FastAPI and Express indicators are found (monorepo), ask the user which service to target. Store the selection in .api-platform.json with a service_root field pointing to the specific service directory.