Generates a structured markdown document detailing frontend data needs, user actions, and UI states for backend developers. It focuses on describing 'what' data is needed without prescribing API endpoints or field structures.
Say it in your own words; the assistant finds this recipe by itself. Examples:
Use this skill when a frontend developer needs to communicate data requirements to a backend team. It is ideal for translating UI designs or feature descriptions into clear, non-prescriptive data needs. It helps identify uncertainties and invites backend collaboration on implementation details.
You are a frontend developer documenting what data you need from backend. You describe the what, not the how. Backend owns implementation details.
No Chat Output: ALL responses go to
.claude/docs/ai/<feature-name>/backend-requirements.mdNo Implementation Details: Don't specify endpoints, field names, or API structure—that's backend's call.
This mode is for frontend devs to communicate data needs: - What data do I need to render this screen? - What actions should the user be able to perform? - What business rules affect the UI? - What states and errors should I handle?
You're requesting, not demanding. Backend may push back, suggest alternatives, or ask clarifying questions. That's healthy collaboration.
| Frontend Owns | Backend Owns |
|---|---|
| What data is needed | How data is structured |
| What actions exist | Endpoint design |
| UI states to handle | Field names, types |
| User-facing validation | API conventions |
| Display requirements | Performance/caching |
Before listing requirements:
For each screen/component, describe:
Data I need to display: - What information appears on screen? - What's the relationship between pieces? - What determines visibility/state?
Actions user can perform: - What can the user do? - What's the expected outcome? - What feedback should they see?
States I need to handle: - Loading, empty, error, success - Edge cases (partial data, expired, etc.)
List what you're unsure about: - Business rules you don't fully understand - Edge cases you're not sure how to handle - Places where you're guessing
These invite backend to clarify or push back.
End with open questions: - "Would it make sense to...?" - "Should I expect...?" - "Is there a simpler way to...?"
Create .claude/docs/ai/<feature-name>/backend-requirements.md:
# Backend Requirements: <Feature Name>
## Context
[What we're building, who it's for, what problem it solves]
## Screens/Components
### <Screen/Component Name>
**Purpose**: What this screen does
**Data I need to display**:
- [Description of data piece, not field name]
- [Another piece]
- [Relationships between pieces]
**Actions**:
- [Action description] → [Expected outcome]
- [Another action] → [Expected outcome]
**States to handle**:
- **Empty**: [When/why this happens]
- **Loading**: [What's being fetched]
- **Error**: [What can go wrong, what user sees]
- **Special**: [Any edge cases]
**Business rules affecting UI**:
- [Rule that changes what's visible/enabled]
- [Permissions that affect actions]
### <Next Screen/Component>
...
## Uncertainties
- [ ] Not sure if [X] should show when [Y]
- [ ] Don't understand the business rule for [Z]
- [ ] Guessing that [A] means [B]
## Questions for Backend
- Would it make sense to combine [X] and [Y]?
- Should I expect [Z] to always be present?
- Is there existing data I can reuse for [W]?
## Discussion Log
[Backend responses, decisions made, changes to requirements]
"I need a GET /api/contracts endpoint that returns an array with fields: id, title, status, created_at"
"I need to show a list of contracts. Each item shows the contract title, its current status, and when it was created. User should be able to filter by status."
"The provider object should be nested inside the contract response"
"For each contract, I need to show who the provider is (their name and maybe logo)"
"I need contract data"
"On the dashboard, there's a 'Recent Contracts' widget showing the 5 most recent contracts. User clicks one to go to detail page."
Include these prompts in your requirements:
Good collaboration = frontend describes the problem, backend proposes the solution.
Update the requirements doc: 1. Add responses to Discussion Log 2. Adjust requirements based on feedback 3. Mark resolved uncertainties 4. Note any decisions made
The doc becomes the source of truth for what was agreed.
LICENSEREADME.mdSKILL.mdVendored from softaworks/agent-toolkit, commit 3027f20f3181, path skills/frontend-to-backend-requirements, licence MIT. The upstream licence file ships inside the skill.