Backend to frontend handoff docs skill

Create API handoff documentation for frontend developers.

by davila7·MIT license·★ 32,299 Stars on the repo·GitHub ↗

Use now

Files of Backend to frontend handoff docs

davila7/main1 file shown
SKILL.md
Show the full text123 lines

API Handoff Mode

No Chat Output: Produce the handoff document only. No discussion, no explanation—just the markdown block saved to the handoff file.

You are a backend developer completing API work. Your task is to produce a structured handoff document that gives frontend developers (or their AI) full business and technical context to build integration/UI without needing to ask backend questions.

When to use: After completing backend API work—endpoints, DTOs, validation, business logic—run this mode to generate handoff documentation.

Simple API shortcut: If the API is straightforward (CRUD, no complex business logic, obvious validation), skip the full template—just provide the endpoint, method, and example request/response JSON. Frontend can infer the rest.

Goal

Produce a copy-paste-ready handoff document with all context a frontend AI needs to build UI/integration correctly and confidently.

Inputs

  • Completed API code (endpoints, controllers, services, DTOs, validation).
  • Related business context from the task/user story.
  • Any constraints, edge cases, or gotchas discovered during implementation.

Workflow

  1. Collect context — confirm feature name, relevant endpoints, DTOs, auth rules, and edge cases.
  2. Create/update handoff file — write the document to .claude/docs/ai/<feature-name>/api-handoff.md. Increment the iteration suffix (-v2, -v3, …) if rerunning after feedback.
  3. Paste template — fill every section below with concrete data. Omit subsections only when truly not applicable (note why).
  4. Double-check — ensure payloads match actual API behavior, auth scopes are accurate, and enums/validation reflect backend logic.

Output Format

Produce a single markdown block structured as follows. Keep it dense—no fluff, no repetition.


# API Handoff: [Feature Name]

## Business Context
[2-4 sentences: What problem does this solve? Who uses it? Why does it matter? Include any domain terms the frontend needs to understand.]

## Endpoints

### [METHOD] /path/to/endpoint
- **Purpose**: [1 line: what it does]
- **Auth**: [required role/permission, or "public"]
- **Request**:
  ```json
  {
    "field": "type — description, constraints"
  }
  • Response (success):
    {
      "field": "type — description"
    }
    
  • Response (error): [HTTP codes and shapes, e.g., 422 validation, 404 not found]
  • Notes: [edge cases, rate limits, pagination, sorting, anything non-obvious]

[Repeat for each endpoint]

Data Models / DTOs

[List key models/DTOs the frontend will receive or send. Include field types, nullability, enums, and business meaning.]

// Example shape for frontend typing
interface ExampleDto {
  id: number;
  status: 'pending' | 'approved' | 'rejected';
  createdAt: string; // ISO 8601
}

Enums & Constants

[List any enums, status codes, or magic values the frontend needs to know. Include display labels if relevant.]

Value Meaning Display Label
pending Awaiting review Pending

Validation Rules

[Summarize key validation rules the frontend should mirror for UX—required fields, min/max, formats, conditional rules.]

Business Logic & Edge Cases

  • [Bullet each non-obvious behavior, constraint, or gotcha]
  • [e.g., "User can only submit once per day", "Soft-deleted items excluded by default"]

Integration Notes

  • Recommended flow: [e.g., "Fetch list → select item → submit form → poll for status"]
  • Optimistic UI: [safe or not, why]
  • Caching: [any cache headers, invalidation triggers]
  • Real-time: [websocket events, polling intervals if applicable]

Test Scenarios

[Key scenarios frontend should handle—happy path, errors, edge cases. Use as acceptance criteria or test cases.]

  1. Happy path: [brief description]
  2. Validation error: [what triggers it, expected response]
  3. Not found: [when 404 is returned]
  4. Permission denied: [when 403 is returned]

Open Questions / TODOs

[Anything unresolved, pending PM decision, or needs frontend input. If none, omit section.]


---

## Rules
- **NO CHAT OUTPUT**—produce only the handoff markdown block, nothing else.
- Be precise: types, constraints, examples—not vague prose.
- Include real example payloads where helpful.
- Surface non-obvious behaviors—don't assume frontend will "just know."
- If backend made trade-offs or assumptions, document them.
- Keep it scannable: headers, tables, bullets, code blocks.
- No backend implementation details (no file paths, class names, internal services) unless directly relevant to integration.
- If something is incomplete or TBD, say so explicitly.

## After Generating
Write the final markdown into the handoff file only—do not echo it in chat. (If the platform requires confirmation, reference the file path instead of pasting contents.)
1---
2name: backend-to-frontend-handoff-docs
3description: Create API handoff documentation for frontend developers. Use when backend work is complete and needs to be documented for frontend integration, or user says 'create handoff', 'document API', 'frontend handoff', or 'API documentation'.
4---
5 
6# API Handoff Mode
7 
8> **No Chat Output**: Produce the handoff document only. No discussion, no explanation—just the markdown block saved to the handoff file.
9 
10You are a backend developer completing API work. Your task is to produce a structured handoff document that gives frontend developers (or their AI) full business and technical context to build integration/UI without needing to ask backend questions.
11 
12> **When to use**: After completing backend API work—endpoints, DTOs, validation, business logic—run this mode to generate handoff documentation.
13 
14> **Simple API shortcut**: If the API is straightforward (CRUD, no complex business logic, obvious validation), skip the full template—just provide the endpoint, method, and example request/response JSON. Frontend can infer the rest.
15 
16## Goal
17Produce a copy-paste-ready handoff document with all context a frontend AI needs to build UI/integration correctly and confidently.
18 
19## Inputs
20- Completed API code (endpoints, controllers, services, DTOs, validation).
21- Related business context from the task/user story.
22- Any constraints, edge cases, or gotchas discovered during implementation.
23 
24## Workflow
25 
261. **Collect context** — confirm feature name, relevant endpoints, DTOs, auth rules, and edge cases.
272. **Create/update handoff file** — write the document to `.claude/docs/ai/<feature-name>/api-handoff.md`. Increment the iteration suffix (`-v2`, `-v3`, …) if rerunning after feedback.
283. **Paste template** — fill every section below with concrete data. Omit subsections only when truly not applicable (note why).
294. **Double-check** — ensure payloads match actual API behavior, auth scopes are accurate, and enums/validation reflect backend logic.
30 
31## Output Format
32 
33Produce a single markdown block structured as follows. Keep it dense—no fluff, no repetition.
34 
35---
36 
37```markdown
38# API Handoff: [Feature Name]
39 
40## Business Context
41[2-4 sentences: What problem does this solve? Who uses it? Why does it matter? Include any domain terms the frontend needs to understand.]
42 
43## Endpoints
44 
45### [METHOD] /path/to/endpoint
46- **Purpose**: [1 line: what it does]
47- **Auth**: [required role/permission, or "public"]
48- **Request**:
49 ```json
50 {
51 "field": "type — description, constraints"
52 }
53 ```
54- **Response** (success):
55 ```json
56 {
57 "field": "type — description"
58 }
59 ```
60- **Response** (error): [HTTP codes and shapes, e.g., 422 validation, 404 not found]
61- **Notes**: [edge cases, rate limits, pagination, sorting, anything non-obvious]
62 
63[Repeat for each endpoint]
64 
65## Data Models / DTOs
66[List key models/DTOs the frontend will receive or send. Include field types, nullability, enums, and business meaning.]
67 
68```typescript
69// Example shape for frontend typing
70interface ExampleDto {
71 id: number;
72 status: 'pending' | 'approved' | 'rejected';
73 createdAt: string; // ISO 8601
74}
75```
76 
77## Enums & Constants
78[List any enums, status codes, or magic values the frontend needs to know. Include display labels if relevant.]
79 
80| Value | Meaning | Display Label |
81|-------|---------|---------------|
82| `pending` | Awaiting review | Pending |
83 
84## Validation Rules
85[Summarize key validation rules the frontend should mirror for UX—required fields, min/max, formats, conditional rules.]
86 
87## Business Logic & Edge Cases
88- [Bullet each non-obvious behavior, constraint, or gotcha]
89- [e.g., "User can only submit once per day", "Soft-deleted items excluded by default"]
90 
91## Integration Notes
92- **Recommended flow**: [e.g., "Fetch list → select item → submit form → poll for status"]
93- **Optimistic UI**: [safe or not, why]
94- **Caching**: [any cache headers, invalidation triggers]
95- **Real-time**: [websocket events, polling intervals if applicable]
96 
97## Test Scenarios
98[Key scenarios frontend should handle—happy path, errors, edge cases. Use as acceptance criteria or test cases.]
99 
1001. **Happy path**: [brief description]
1012. **Validation error**: [what triggers it, expected response]
1023. **Not found**: [when 404 is returned]
1034. **Permission denied**: [when 403 is returned]
104 
105## Open Questions / TODOs
106[Anything unresolved, pending PM decision, or needs frontend input. If none, omit section.]
107```
108 
109---
110 
111## Rules
112- **NO CHAT OUTPUT**—produce only the handoff markdown block, nothing else.
113- Be precise: types, constraints, examples—not vague prose.
114- Include real example payloads where helpful.
115- Surface non-obvious behaviors—don't assume frontend will "just know."
116- If backend made trade-offs or assumptions, document them.
117- Keep it scannable: headers, tables, bullets, code blocks.
118- No backend implementation details (no file paths, class names, internal services) unless directly relevant to integration.
119- If something is incomplete or TBD, say so explicitly.
120 
121## After Generating
122Write the final markdown into the handoff file only—do not echo it in chat. (If the platform requires confirmation, reference the file path instead of pasting contents.)
123 

Discussion

Alternatives