Skip to main content
Glama
spec-example.md5.94 kB
# Specification: [Feature Name] > **Project Type**: Web Application > **Last Updated**: [Date] > **Status**: Draft | In Review | Approved ## Overview Brief description of what this feature does and why it's needed. ## Goals ### Primary Goals 1. **Goal 1**: What we want to achieve 2. **Goal 2**: Another key objective 3. **Goal 3**: Additional objective ### Success Metrics - **Metric 1**: Target value (e.g., "95% user satisfaction") - **Metric 2**: Target value (e.g., "< 2s page load time") - **Metric 3**: Target value (e.g., "50% feature adoption in 30 days") ## User Stories ### User Persona: [Primary User Type] **As a** [user type] **I want to** [perform action] **So that** [achieve benefit] **Acceptance Criteria:** - **When** user [performs action], **then** system [responds with behavior] - **When** user [edge case], **then** system [handles gracefully] - **When** user [another scenario], **then** system [expected outcome] ### User Persona: [Secondary User Type] **As a** [user type] **I want to** [perform action] **So that** [achieve benefit] **Acceptance Criteria:** - **When** user [performs action], **then** system [responds with behavior] ## Features & Requirements ### Feature 1: [Feature Name] **Description**: What this feature does **Functional Requirements:** - REQ-1.1: The system **must** [requirement] - REQ-1.2: The system **must** [requirement] - REQ-1.3: The system **should** [optional requirement] **Non-Functional Requirements:** - PERF-1.1: Feature **must** load in < 2s - SEC-1.1: Feature **must** validate all user inputs - A11Y-1.1: Feature **must** be keyboard accessible ### Feature 2: [Feature Name] **Description**: What this feature does **Functional Requirements:** - REQ-2.1: The system **must** [requirement] - REQ-2.2: The system **must** [requirement] ## UI/UX Considerations ### Layout & Design - Responsive design for mobile, tablet, desktop - Follow existing design system and component library - Maintain consistent spacing and typography ### User Flow 1. User lands on [page/screen] 2. User performs [action] 3. System shows [feedback] 4. User completes [task] ### Mockups & Wireframes - [Link to Figma/design files] - [Screenshots or embedded images] ## Technical Considerations ### Frontend Stack - **Framework**: React 18+ with TypeScript - **Styling**: Tailwind CSS with shadcn/ui components - **State**: React Query for server state - **Forms**: React Hook Form with Zod validation ### API Requirements - **Endpoints**: List required API endpoints - `GET /api/resource` - Fetch resources - `POST /api/resource` - Create resource - `PUT /api/resource/:id` - Update resource - `DELETE /api/resource/:id` - Delete resource ### Data Models ```typescript interface Resource { id: string; name: string; description: string; createdAt: Date; updatedAt: Date; } ``` ### Performance Requirements - Initial page load: < 2s - API response time: < 500ms (p95) - Bundle size impact: < 50KB ### Security Requirements - Authentication required: Yes/No - Authorization levels: [List roles/permissions] - Input validation: All user inputs validated with Zod - Rate limiting: [Specify limits] ## Edge Cases & Error Handling ### Edge Case 1: [Scenario] **When**: User encounters [situation] **Expected**: System [handles with behavior] **Error Message**: "[User-friendly message]" ### Edge Case 2: [Scenario] **When**: User encounters [situation] **Expected**: System [handles with behavior] **Fallback**: [Alternative flow] ### Error States - **Network Error**: Show offline indicator, queue actions - **Validation Error**: Highlight fields, show specific messages - **Server Error**: Show generic error, log details, retry option ## Accessibility Requirements - **Keyboard Navigation**: All interactive elements accessible via keyboard - **Screen Readers**: Proper ARIA labels and semantic HTML - **Color Contrast**: WCAG 2.1 Level AA compliance (4.5:1 ratio) - **Focus Indicators**: Visible focus states for all interactive elements ## Testing Strategy ### Unit Tests - Test utility functions and hooks - Test component logic in isolation - Mock external dependencies ### Integration Tests - Test user flows with React Testing Library - Test form submissions and validations - Test API integration with mocked responses ### E2E Tests - Test critical user journeys - Test cross-browser compatibility - Test responsive layouts ## Dependencies & Integrations ### External Services - **Service 1**: Purpose and API details - **Service 2**: Purpose and API details ### Third-Party Libraries - **Library 1**: Purpose (e.g., "date-fns for date formatting") - **Library 2**: Purpose (e.g., "recharts for data visualization") ## Out of Scope Explicitly list what this feature does NOT include: - ❌ Feature X (planned for v2.0) - ❌ Feature Y (requires different architectural approach) - ❌ Feature Z (separate project initiative) ## Open Questions & Clarifications ### [NEEDS CLARIFICATION] **Question**: Should we support offline mode? **Context**: Users may have intermittent connectivity **Options**: 1. Full offline support with service workers 2. Basic caching only 3. No offline support (require online connection) ### [NEEDS CLARIFICATION] **Question**: What's the expected data volume? **Context**: Affects pagination and caching strategy **Options**: TBD ## Implementation Timeline ### Phase 1: MVP (2 weeks) - Core functionality - Basic UI - Essential validations ### Phase 2: Enhancements (1 week) - Advanced features - Polish and animations - Comprehensive testing ### Phase 3: Launch (1 week) - Performance optimization - Documentation - Deployment ## References - [Related spec or PRD] - [Design mockups] - [Architecture decision records] - [User research findings] --- *This specification serves as the source of truth for implementation. Any changes should be documented and approved before proceeding.*

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/flight505/MCP_DinCoder'

If you have feedback or need assistance with the MCP directory API, please join our Discord server