Documentation

fsds/README.md

Feature Specification Documents (FSDs)

Comprehensive documentation for major features that span multiple components or introduce significant new functionality.

What Belongs Here

Feature specifications for:

  • Cross-component features - Spanning multiple services
  • Major new capabilities - Significant functionality additions
  • Complex integrations - External system integrations
  • Architectural features - New patterns or approaches

Rule of thumb: If you're creating a Linear project for it, create an FSD.

What Doesn't Belong Here

  • Single-component features → Document in component README
  • Small enhancements → Update existing docs
  • Bug fixes → Mention in CHANGELOG
  • Configuration changes → Update reference docs
  • How-to guides → Use docs/how-to/

Documentation Structure

Each feature specification follows a consistent structure:

docs/fsds/feature-name/
├── README.md                   # Overview and navigation
├── technical-design.md         # Architecture and implementation
├── entity-model.md             # Database schema (if applicable)
├── api-reference.md            # API endpoints (if applicable)
├── usage-examples.md           # Code examples
├── configuration.md            # Setup and configuration
├── migration-guide.md          # Upgrade guide (if applicable)
└── troubleshooting.md          # Common issues

For simpler features, a single markdown file is acceptable.

Current Feature Specifications

Feature Description Status
Unit of Measure System ISO 80000/SI-compliant measurement framework In Progress
Linear Notification System Bidirectional Linear activity notifications for agent sessions Phase 1 Complete

Writing Guidelines

README Template

# [Feature Name]

[One-paragraph description of the feature]

## Quick Start

[Minimal example showing the feature]

## Documentation

- [Technical Design](technical-design.md) - Architecture and implementation
- [Usage Examples](usage-examples.md) - Code samples and patterns
- [Configuration](configuration.md) - Setup and options
- [API Reference](api-reference.md) - Endpoint documentation

## Status

**Version:** 1.0
**Status:** Production
**Components:** [List of affected components]

## Related

- [ADR-XXX: Related Decision](../adrs/xxx-decision.md)

Technical Design Template

# Technical Design: [Feature Name]

## Overview

[High-level description]

## Architecture

[Architecture diagram and explanation]

## Components

### [Component Name]
**Role:** [What this component does for the feature]
**Location:** `engines/component-name/`

## Data Model

[Entity relationships, database schema]

## API Design

[HTTP endpoints, request/response schemas]

## Integration Points

[How this integrates with other systems]

## Security Considerations

[Authentication, authorization, data protection]

## Performance Characteristics

[Expected performance, scalability considerations]

FSD Lifecycle

1. Planning Phase

Create:

  • README.md (overview)
  • technical-design.md (architecture)
  • Related ADR documenting key decisions

2. Implementation Phase

Add:

  • usage-examples.md (as code is written)
  • configuration.md (as options are added)

3. Release Phase

Complete:

  • API reference (from OpenAPI specs)
  • migration-guide.md (if upgrading existing system)
  • troubleshooting.md (from testing)

4. Maintenance Phase

Update:

  • Keep examples current
  • Document new use cases
  • Add troubleshooting entries
  • Update version/status

Checklist

  • README - Clear overview and navigation
  • Design doc - Architecture explained
  • Examples - Real, working code samples
  • Configuration - All options documented
  • Testing - How to test the feature
  • Migration - Upgrade path (if applicable)
  • ADRs - Key decisions recorded
  • Related components - All components listed
  • Status - Current version and production status