Back to list
cliangdev

api-design

by cliangdev

Transform AI-assisted development from chaotic "vibe coding" to disciplined, spec-driven engineering.

5🍴 0📅 Jan 19, 2026

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 action
  • PUT - Full update
  • PATCH - Partial update
  • DELETE - Remove

Response Codes

  • 200 - Success (GET, PUT, PATCH)
  • 201 - Created (POST)
  • 204 - No Content (DELETE)
  • 400 - Bad Request (validation error)
  • 404 - Not Found
  • 500 - 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

  1. Update the relevant domain spec (e.g., tasks.yaml)
  2. Add request/response schemas to components/
  3. Generate TypeScript client: npm run generate:client
  4. Implement backend handler
  5. Use generated types in frontend

Score

Total Score

70/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon