Fix: Ensure all skills are tracked as files, not submodules
This commit is contained in:
79
skills/loki-mode/examples/api-only.md
Normal file
79
skills/loki-mode/examples/api-only.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# PRD: REST API Service
|
||||
|
||||
## Overview
|
||||
A simple REST API for managing notes. Tests Loki Mode's backend-only capabilities.
|
||||
|
||||
## Target Users
|
||||
Developers who need a notes API.
|
||||
|
||||
## API Endpoints
|
||||
|
||||
### Notes Resource
|
||||
|
||||
#### GET /api/notes
|
||||
- Returns list of all notes
|
||||
- Response: `[{ id, title, content, createdAt }]`
|
||||
|
||||
#### GET /api/notes/:id
|
||||
- Returns single note
|
||||
- Response: `{ id, title, content, createdAt }`
|
||||
- Error: 404 if not found
|
||||
|
||||
#### POST /api/notes
|
||||
- Creates new note
|
||||
- Body: `{ title, content }`
|
||||
- Response: `{ id, title, content, createdAt }`
|
||||
- Error: 400 if validation fails
|
||||
|
||||
#### PUT /api/notes/:id
|
||||
- Updates existing note
|
||||
- Body: `{ title?, content? }`
|
||||
- Response: `{ id, title, content, updatedAt }`
|
||||
- Error: 404 if not found
|
||||
|
||||
#### DELETE /api/notes/:id
|
||||
- Deletes note
|
||||
- Response: 204 No Content
|
||||
- Error: 404 if not found
|
||||
|
||||
### Health Check
|
||||
|
||||
#### GET /health
|
||||
- Returns `{ status: "ok", timestamp }`
|
||||
|
||||
## Tech Stack
|
||||
- Runtime: Node.js 18+
|
||||
- Framework: Express.js
|
||||
- Database: In-memory (array) for simplicity
|
||||
- Validation: zod or joi
|
||||
- Testing: Jest + supertest
|
||||
|
||||
## Requirements
|
||||
- Input validation on all endpoints
|
||||
- Proper HTTP status codes
|
||||
- JSON error responses
|
||||
- Request logging
|
||||
- Unit tests for each endpoint
|
||||
|
||||
## Out of Scope
|
||||
- Authentication
|
||||
- Database persistence
|
||||
- Rate limiting
|
||||
- API documentation (OpenAPI)
|
||||
- Deployment
|
||||
|
||||
## Test Cases
|
||||
```
|
||||
POST /api/notes with valid data → 201 + note object
|
||||
POST /api/notes with missing title → 400 + error
|
||||
GET /api/notes → 200 + array
|
||||
GET /api/notes/:id with valid id → 200 + note
|
||||
GET /api/notes/:id with invalid id → 404
|
||||
PUT /api/notes/:id with valid data → 200 + updated note
|
||||
DELETE /api/notes/:id → 204
|
||||
GET /health → 200 + status object
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Purpose:** Tests backend agent capabilities, code review, and QA without frontend complexity.
|
||||
Reference in New Issue
Block a user