
Technical Specification
- 720 installs
- 305 repo stars
- Updated March 4, 2026
- aj-geddes/useful-ai-prompts
technical-specification is a Claude Code skill that generates complete, consistent TypeScript interfaces and endpoint documentation for developers who need unambiguous API contracts that agents can implement without gues
About
technical-specification is a prompt skill from aj-geddes/useful-ai-prompts that produces API data models and REST endpoint documentation agents can implement directly. It emits TypeScript interfaces such as User, LoginRequest, LoginResponse, and RegisterRequest with typed fields, plus endpoint sections like POST /api/auth/register with JSON request and response examples. Developers reach for technical-specification when starting auth, CRUD, or service APIs and need contracts that eliminate ambiguous field names, missing types, or inconsistent response shapes before coding. The output pairs interface blocks with per-route descriptions, HTTP methods, and payload schemas so implementation agents follow one canonical spec.
- Produces exact TypeScript interfaces from natural language or partial specs
- Generates full endpoint documentation including request/response schemas, status codes and error cases
- Enforces naming consistency and data model relationships across an entire API surface
- Outputs ready-to-implement artifacts that feed directly into coding agents
- Supports iterative refinement when requirements change
Technical Specification by the numbers
- 720 all-time installs (skills.sh)
- Ranked #514 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill technical-specificationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 720 |
|---|---|
| repo stars | ★ 305 |
| Security audit | 3 / 3 scanners passed |
| Last updated | March 4, 2026 |
| Repository | aj-geddes/useful-ai-prompts ↗ |
How do you generate TypeScript API specs for agents?
Generate complete, consistent TypeScript interfaces and endpoint documentation that an agent can implement without ambiguity.
Who is it for?
Backend developers delegating API implementation to agents who need complete TypeScript models and endpoint docs before writing route handlers.
Skip if: Developers who already have OpenAPI specs or need runtime validation schemas should skip technical-specification in favor of OpenAPI or Zod tooling.
When should I use this skill?
Trigger when scoping a new REST API and the agent needs TypeScript interfaces plus endpoint documentation to implement routes.
What you get
TypeScript interface definitions, REST endpoint documentation, and JSON request-response examples
- TypeScript interfaces
- Endpoint documentation
- JSON request-response examples
Files
Technical Specification
Table of Contents
Overview
Create comprehensive technical specifications that define system requirements, architecture, implementation details, and acceptance criteria for software projects.
When to Use
- Feature specifications
- System design documents
- Requirements documentation (PRD)
- Architecture decision records (ADR)
- Technical proposals
- RFC (Request for Comments)
- API design specs
- Database schema designs
Quick Start
Minimal working example:
# Technical Specification: [Feature Name]
**Document Status:** Draft | Review | Approved | Implemented
**Version:** 1.0
**Author:** John Doe
**Date:** 2025-01-15
**Reviewers:** Jane Smith, Bob Johnson
**Last Updated:** 2025-01-15
## Executive Summary
Brief 2-3 sentence overview of what this spec covers and why it's being built.
**Problem:** What problem are we solving?
**Solution:** High-level description of the solution
**Impact:** Expected business/user impact
---
## 1. Background
### Context
Provide background on why this feature is needed:
// ... (see reference guides for full implementation)Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Functional Requirements | Functional Requirements |
| Non-Functional Requirements | Non-Functional Requirements |
| Database Schema | Database Schema |
| API Data Models | API Data Models |
| Authentication Endpoints | Authentication Endpoints |
| Rate Limiting | Rate Limiting |
| Phase 1: Core Authentication | Phase 1: Core Authentication (Week 1-2), Phase 2: Email Verification (Week 3), Phase 3: Social Login (Week 4), Phase 4: Security Features (Week 5) (+1 more) |
Best Practices
✅ DO
- Include acceptance criteria for each requirement
- Provide architecture diagrams
- Document API contracts
- Specify performance requirements
- List risks and mitigations
- Include implementation timeline
- Add success metrics
- Document security considerations
- Version your specs
- Get stakeholder review
❌ DON'T
- Be vague about requirements
- Skip non-functional requirements
- Forget about security
- Ignore alternatives
- Skip testing strategy
- Forget monitoring/observability
- Leave questions unanswered
API Data Models
API Data Models
interface User {
id: string;
email: string;
emailVerified: boolean;
twoFactorEnabled: boolean;
createdAt: string;
updatedAt: string;
lastLoginAt?: string;
}
interface LoginRequest {
email: string;
password: string;
twoFactorCode?: string;
}
interface LoginResponse {
success: boolean;
token: string;
refreshToken: string;
user: User;
expiresIn: number;
}
interface RegisterRequest {
email: string;
password: string;
confirmPassword: string;
}---
Authentication Endpoints
Authentication Endpoints
POST /api/auth/register
Description: Register a new user account
Request:
{
"email": "user@example.com",
"password": "SecurePass123!",
"confirmPassword": "SecurePass123!"
}Response (201):
{
"success": true,
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "user@example.com",
"emailVerified": false
},
"message": "Verification email sent"
}Errors:
- 400: Invalid email format
- 409: Email already exists
- 422: Password too weak
POST /api/auth/login
Description: Authenticate user and return JWT token
Request:
{
"email": "user@example.com",
"password": "SecurePass123!",
"twoFactorCode": "123456"
}Response (200):
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "eyJhbGciOiJIUzI1NiIs...",
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "user@example.com"
},
"expiresIn": 3600
}Errors:
- 401: Invalid credentials
- 403: Account locked
- 428: 2FA code required
Database Schema
Database Schema
-- Users table
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255),
email_verified BOOLEAN DEFAULT FALSE,
two_factor_enabled BOOLEAN DEFAULT FALSE,
two_factor_secret VARCHAR(32),
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW(),
last_login_at TIMESTAMP
);
-- OAuth connections
CREATE TABLE oauth_connections (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id) ON DELETE CASCADE,
provider VARCHAR(50) NOT NULL, -- 'google', 'github'
provider_user_id VARCHAR(255) NOT NULL,
access_token TEXT,
refresh_token TEXT,
created_at TIMESTAMP DEFAULT NOW(),
UNIQUE(provider, provider_user_id)
);
-- Sessions
CREATE TABLE sessions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id) ON DELETE CASCADE,
token VARCHAR(255) UNIQUE NOT NULL,
expires_at TIMESTAMP NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
ip_address INET,
user_agent TEXT
);
-- Indexes
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_sessions_token ON sessions(token);
CREATE INDEX idx_sessions_user_id ON sessions(user_id);
CREATE INDEX idx_oauth_user_id ON oauth_connections(user_id);Functional Requirements
Functional Requirements
FR-1: User Authentication
Priority: P0 (Must Have) Description: Users must be able to authenticate using email/password
Acceptance Criteria:
- [ ] User can register with email and password
- [ ] User can log in with credentials
- [ ] User receives email verification
- [ ] User can reset forgotten password
- [ ] Session expires after 7 days of inactivity
Dependencies: None
FR-2: Social Login
Priority: P1 (Should Have) Description: Users can authenticate using OAuth providers
Acceptance Criteria:
- [ ] Support Google OAuth
- [ ] Support GitHub OAuth
- [ ] Link social accounts to existing accounts
- [ ] Unlink social accounts
Dependencies: FR-1
FR-3: Two-Factor Authentication
Priority: P2 (Nice to Have) Description: Optional 2FA for enhanced security
Acceptance Criteria:
- [ ] Enable/disable 2FA in settings
- [ ] Support TOTP (Google Authenticator, Authy)
- [ ] Backup codes generation
- [ ] Recovery process if device is lost
Dependencies: FR-1
Non-Functional Requirements
Non-Functional Requirements
Performance
- Response Time: API endpoints < 200ms p95
- Throughput: Support 1000 requests/second
- Database Queries: < 50ms p95
- Page Load: First contentful paint < 1.5s
Scalability
- Concurrent Users: Support 100,000 simultaneous users
- Data Growth: Handle 10M user records
- Horizontal Scaling: Support 10 application instances
Security
- Authentication: JWT-based with refresh tokens
- Password Hashing: bcrypt with 12 rounds
- Rate Limiting: 100 requests/hour per IP
- Data Encryption: AES-256 at rest, TLS 1.3 in transit
Availability
- Uptime: 99.9% SLA
- Recovery Time: RTO < 4 hours, RPO < 1 hour
- Backup: Daily automated backups, 30-day retention
Compliance
- GDPR compliant (data export/deletion)
- SOC 2 Type II requirements
- PCI DSS (if handling payments)
---
Phase 1: Core Authentication
Phase 1: Core Authentication (Week 1-2)
- [ ] Database schema setup
- [ ] User registration endpoint
- [ ] Email/password login
- [ ] JWT token generation
- [ ] Password hashing
- [ ] Basic frontend forms
Phase 2: Email Verification (Week 3)
- [ ] Email service integration
- [ ] Verification token generation
- [ ] Verification endpoint
- [ ] Email templates
- [ ] Resend verification email
Phase 3: Social Login (Week 4)
- [ ] OAuth integration (Google)
- [ ] OAuth integration (GitHub)
- [ ] Account linking
- [ ] Frontend OAuth buttons
Phase 4: Security Features (Week 5)
- [ ] Two-factor authentication
- [ ] Password reset flow
- [ ] Rate limiting
- [ ] Session management
- [ ] Security headers
Phase 5: Testing & Polish (Week 6)
- [ ] Unit tests
- [ ] Integration tests
- [ ] E2E tests
- [ ] Security audit
- [ ] Performance testing
- [ ] Documentation
---
Rate Limiting
Rate Limiting
| Endpoint | Limit | Window |
|---|---|---|
| POST /api/auth/login | 5 attempts | 15 minutes |
| POST /api/auth/register | 3 attempts | 1 hour |
| POST /api/auth/reset-password | 3 attempts | 1 hour |
---
Document Title
Overview
TODO: Brief description of this document's purpose.
Prerequisites
- TODO: List prerequisites
Getting Started
TODO: Step-by-step instructions.
Configuration
TODO: Configuration details.
Examples
TODO: Add practical examples.
Troubleshooting
TODO: Common issues and solutions.
References
- TODO: Add relevant links
Related skills
FAQ
What does technical-specification output for API work?
technical-specification outputs TypeScript interface blocks for entities like User and LoginRequest, plus REST endpoint sections with HTTP methods, descriptions, and JSON request-response examples such as POST /api/auth/register. Agents use the spec to implement routes without am
When should developers use technical-specification?
Developers should use technical-specification when starting API features and needing complete, consistent TypeScript data models and endpoint documentation before implementation. The skill targets auth and CRUD contracts where missing types or inconsistent responses would block a
Is Technical Specification safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.