AI Capabilities Documentation
Overview
Structured documentation system for AI assistance using a two-level TypeScript interface structure: a consolidated main file and domain-specific capability files, each with a 500-line limit.
Status
- ✅ Initial consolidated capabilities file
- ✅ Core interfaces and types
- 🚧 Split into domain-specific files
- 🚧 Cross-reference system
NEXT_TASK: Implement cross-reference system between main capabilities.ts and domain-specific files using JSDoc references
Components
Core Components
-
System Capabilities Index
- Location:
toma/docs/ai/capabilities.ts - Size: Maximum 500 lines
- Purpose: Core interfaces and common types
- Content: Main interfaces and cross-domain types
- Location:
-
Domain Capability Files
- Location:
toma/docs/ai/capabilities/{domain}/index.ts - Size: Maximum 500 lines per domain
- Content: Domain-specific interfaces and types
- Structure:
capabilities/
├── capabilities.ts # Main SystemCapabilities
├── mercury-bot/index.ts # MercuryBotCapabilities
├── mercury-ta/index.ts # MercuryTACapabilities
├── arcana-bot/index.ts # ArcanaBotCapabilities
└── infrastructure/index.ts # InfrastructureCapabilities
- Location:
Technical Implementation
File Organization
-
Main File (
capabilities.ts):export interface SystemCapabilities {
/** @see {MercuryBotCapabilities} ./mercury-bot/index.ts */
mercuryBot: MercuryBotCapabilities;
/** @see {MercuryTACapabilities} ./mercury-ta/index.ts */
mercuryTA: MercuryTACapabilities;
/** @see {ArcanaBotCapabilities} ./arcana-bot/index.ts */
arcanaBot: ArcanaBotCapabilities;
/** @see {InfrastructureCapabilities} ./infrastructure/index.ts */
infrastructure: InfrastructureCapabilities;
}
// Common interfaces and types used across domains
interface CommonTypes {
// ...
} -
Domain Files (
{domain}/index.ts):export interface DomainCapabilities {
// Complete domain interfaces in single file
// Maximum 500 lines
}
Size Guidelines
-
Main File:
- Maximum: 500 lines
- Content:
- SystemCapabilities interface
- Common types and interfaces
- Cross-domain utilities
-
Domain Files:
- Maximum: 500 lines per domain
- Content: Complete domain interfaces
- When to split: Create new domain if exceeding 500 lines
Documentation Standards
-
Cross-References:
/** @see {DomainCapabilities} ./domain/index.ts */
type ServiceRef = DomainCapabilities; -
Interface Documentation:
/**
* Domain capability description
* @package domain-name
*/
interface DomainCapabilities {
/** Feature description */
feature: FeatureInterface;
}
Development Guidelines
-
File Organization:
- Keep main file focused on core interfaces
- One file per domain
- Clear JSDoc references
-
Size Management:
- Hard limit: 500 lines per file
- Create new domain when limit reached
- Keep related interfaces together
-
Updates:
- Add new services to main file
- Keep domain files focused
- Maintain JSDoc references
Usage Examples
-
Adding New Service:
// 1. Add to capabilities.ts
interface SystemCapabilities {
/** @see {NewServiceCapabilities} ./new-service/index.ts */
newService: NewServiceCapabilities;
}
// 2. Create domain file
// new-service/index.ts
export interface NewServiceCapabilities {
// Complete service interfaces...
// Maximum 500 lines
} -
Updating Domain:
// domain/index.ts
export interface DomainCapabilities {
// Update domain interfaces
// Keep under 500 lines
}