api-design
REST API design patterns for SpecFlux. Use when creating new API endpoints, designing request/response schemas, implementing pagination, or updating OpenAPI specifications. Follows Domain-Driven Design with specs organized by domain.
$ Installer
git clone https://github.com/cliangdev/specflux /tmp/specflux && cp -r /tmp/specflux/.claude/skills/api-design ~/.claude/skills/specflux// tip: Run this command in your terminal to install the skill
SKILL.md
name: api-design description: REST API design patterns for SpecFlux. Use when creating new API endpoints, designing request/response schemas, implementing pagination, or updating OpenAPI specifications. Follows Domain-Driven Design with specs organized by domain.
API Design Patterns for SpecFlux
RESTful Conventions
Follow these patterns consistently:
Resource Naming
- Use plural nouns:
/tasks,/epics,/projects - Nested resources:
/projects/:id/tasks - Actions as POST to sub-resources:
/tasks/:id/start
HTTP Methods
GET- Read (list or single)POST- Create or actionPUT- Full updatePATCH- Partial updateDELETE- Remove
Response Codes
200- Success (GET, PUT, PATCH)201- Created (POST)204- No Content (DELETE)400- Bad Request (validation error)404- Not Found500- Server Error
Pagination
All list endpoints support pagination:
GET /projects/1/tasks?page=1&limit=20&status=in-progress
Response:
{
"success": true,
"data": {
"tasks": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 45,
"pages": 3
}
}
}
Filtering & Sorting
GET /tasks?epic_id=5&repo=backend&status=ready&sort=-created_at
// Sort: prefix with '-' for descending
OpenAPI First (Domain-Driven)
API specs are organized by domain in orchestrator/openapi/:
openapi/
├── index.yaml # Main entry point, references domain specs
├── projects.yaml # Project domain endpoints
├── epics.yaml # Epic domain endpoints
├── tasks.yaml # Task domain endpoints
├── repositories.yaml # Repository domain endpoints
├── notifications.yaml # Notification domain endpoints
└── components/ # Shared schemas and responses
Workflow
- Update the relevant domain spec (e.g.,
tasks.yaml) - Add request/response schemas to
components/ - Generate TypeScript client:
npm run generate:client - Implement backend handler
- Use generated types in frontend
Repository

cliangdev
Author
cliangdev/specflux/.claude/skills/api-design
3
Stars
0
Forks
Updated1d ago
Added6d ago