Expand description
§AIDA — AI-Native Requirements Management
Track what you build and why, with structured context for AI coding agents.
§Install the CLI
cargo install aida-cli§Library Usage
This crate re-exports aida-core. For most users, install the CLI instead.
use aida::models::{Requirement, RequirementsStore};§Links
Modules§
- ai
- AI Integration Module for AIDA
- analytics
- Analytics engine — deeper metrics for requirements management.
- conflict
- Conflict detection and resolution for distributed AIDA.
- daemon
- Daemon dispenser — Phase 3 sequence number server over Unix socket.
- db
- Database abstraction layer for AIDA requirements management
- dispenser
- Sequence Dispenser — generates monotonically increasing sequence numbers for object ID creation.
- export
- Export/Import functionality for requirements.
- git_ops
- Git operations for distributed AIDA.
- hlc
- Hybrid Logical Clock (HLC) implementation for distributed timestamp ordering.
- import
- Import functionality for legacy/incompatible requirements databases.
- integrations
- External integrations module.
- meta
- META Requirements Module
- models
- node
- Node identity and workspace configuration for distributed AIDA.
- object_
store - Git-friendly object store for distributed AIDA.
- oplog
- Operation Log — append-only event log for conflict-free distributed sync.
- project
- registry
- report
- AI Integration Report Generation
- scaffolding
- AI Project Scaffolding Module
- storage
- telemetry
- Telemetry — track AIDA usage for measuring tool effectiveness.
- templates
- Template loading system for scaffolding.
- workspace
- Multi-repo workspace support for distributed AIDA.
Structs§
- AddResult
- Result of adding a new requirement atomically
- Agreed
Counters - Per-type counters for agreed IDs assigned at merge-to-trunk.
- AiAction
Prompt Config - Configuration for a single AI prompt action (evaluation, duplicates, etc.)
- AiClient
- AI Client for interacting with Claude
- AiIntegration
Report - AI Integration Report data
- AiPrompt
Config - Complete AI prompt configuration for a project
- AiPrompts
Section - AI Prompts configuration section
- AiType
Prompt Config - Per-type AI prompt customization
- Background
Evaluator - Background AI Evaluator
- Baseline
- Represents a baseline - a named snapshot of requirements at a point in time
- Baseline
Comparison - Summary of changes between two baselines or baseline and current state
- Baseline
Requirement Diff - Represents changes to a single requirement between baselines
- Comment
- Represents a comment on a requirement with threading support
- Comment
Reaction - Represents a reaction on a comment
- Conflict
Info - Information about a conflict detected during save
- Custom
Field Definition - Definition of a custom field for a requirement type
- Custom
Type Definition - Definition of a custom requirement type with its specific statuses and fields
- Database
Config - Configuration for database backends
- Dispenser
State - Current state of the dispenser — all counters for a given node.
- Edit
Lock - Information about a requirement being edited
- Evaluation
Response - Response from evaluation action
- Evaluation
Result - Result of an evaluation to be applied to the store
- Evaluator
Config - Configuration for the background evaluator
- Feature
Definition - Configuration for a feature with its prefix
- Field
Change - Represents a field change in a requirement’s history
- Field
Conflict - Describes a conflict in a specific field
- File
Dispenser - File-backed dispenser using a TOML state file with advisory locking. This is the Phase 1 implementation per the distributed architecture spec.
- GitBackend
- Git-backed storage backend.
- GitLab
Issue Link - Represents a link between an AIDA requirement and a GitLab issue Used to track traceability between specs and implementation work
- GitLab
Sync State - Tracks sync state between an AIDA requirement and a GitLab issue
- History
Entry - Represents a history entry for a requirement update
- Hlc
- The HLC clock instance. Thread-safe via internal Mutex.
- HlcTimestamp
- A Hybrid Logical Clock timestamp.
- IdConfig
Validation - Result of validating ID configuration changes
- IdConfiguration
- ID system configuration
- Implementation
Info - Tracks implementation metadata for a requirement Stores information about how and when a requirement was implemented
- Import
Config - Configuration for an import operation
- Import
Issue - Represents an issue found during import validation
- Import
Summary - Summary of an import operation
- Import
Validation - Result of validating an import file
- Issue
Report - Issue found in a requirement
- Lock
File Info - Lock file contents tracking all active sessions
- Memory
Dispenser - A simple in-memory dispenser for testing and single-session use. Not persistent — loses state on drop.
- Node
Config - Information about a registered node (persisted locally, gitignored).
- Node
Registry - The shared node registry (committed to git, append-only).
- Node
Registry Entry - A node registration entry in the shared registry (committed to git).
- Prompt
Customization - Individual prompt customization
- Queue
Entry - Represents an entry in a user’s personal work queue
- RawImport
Store - Raw store structure for initial parsing
- Reaction
Definition - Represents a reaction emoji definition
- Registry
- Registry of all projects
- Relationship
- Represents a relationship between two requirements
- Relationship
Definition - Defines a relationship type and its constraints
- Relationship
Validation - Result of validating a relationship
- Report
Generator - Report generator
- Requirement
- Represents a single requirement in the system
- Requirement
Snapshot - A snapshot of a requirement at a specific point in time (for baselines) This is a full copy of the requirement state, not a reference
- Requirement
Type Definition - Configuration for a requirement type with its prefix
- Requirements
Store - Collection of all requirements
- Scaffold
Artifact - Represents a scaffolding artifact to be generated
- Scaffold
Config - Configuration for what scaffolding artifacts to generate
- Scaffold
Preview - Result of scaffolding preview
- Scaffold
Status - Result of comparing scaffold to actual project
- Scaffolder
- Scaffolding generator
- Session
Info - Information about a user session with an open requirements file
- Sqlite
Backend - SQLite backend implementation
- Sqlite
Dispenser - SQLite-backed dispenser using atomic UPSERT for sequence generation. This is the Phase 2 implementation per the distributed architecture spec.
- Storage
- Handles saving and loading requirements from disk with file locking for rudimentary multi-user support
- Stored
AiEvaluation - Stored AI evaluation with metadata This struct wraps evaluation results with timestamps to track when evaluations need to be refreshed (when requirement changes).
- Suggested
Improvement - Suggested improvement to a requirement
- Team
- Represents a team in the system Teams can contain users (members) and can be nested (parent/child teams)
- Template
Info - Information about an embedded template
- Template
Loader - Template loader that checks external files first, then falls back to embedded.
- Trace
Link - Represents a trace link between a requirement and a code artifact This enables bidirectional traceability: requirement -> code and code -> requirement
- Traceability
Stats - Traceability statistics
- Type
Prompt Customization - Type-specific prompt customization
- UrlLink
- Represents an external URL link attached to a requirement
- User
- Represents a user in the system
- User
Registry - The shared user registry (committed to git, append-only).
- User
Registry Entry - A user registration entry in the shared registry.
- Version
Conflict - Error type for version conflicts during optimistic locking
- Workspace
Config - Workspace configuration — discovered by walking up the directory tree.
- Yaml
Backend - YAML file backend implementation
Enums§
- AiMode
- AI operation mode
- Artifact
Type - Represents the type of artifact being traced
- Backend
Type - Types of database backends available
- Cardinality
- Cardinality constraints for relationships
- Confidence
Level - Confidence level for AI-generated implementation
- Conflict
Resolution - Resolution strategy when a conflict is detected
- Custom
Field Type - Field type for custom fields
- Deployment
Mode - The deployment mode for an AIDA instance.
- Evaluator
Status - Status of the background evaluator
- File
Status - Status of a scaffolded file compared to disk
- GitLab
Link Type - Type of link between AIDA requirement and GitLab issue
- IdFormat
- ID format style for requirement identifiers
- IdMode
- The operating mode for ID generation.
- Import
Issue Type - Types of issues that can occur during import
- Import
Merge Mode - How to merge imported data with existing data
- Issue
Resolution - How to handle a specific issue during import
- Link
Origin - How a GitLab link was originally created
- Meta
Subtype - Represents the subtype for Meta requirements
- Migration
Check - Result of checking for migration status
- Numbering
Strategy - Numbering strategy for requirement IDs
- Project
Type - Project type for specialized scaffolding
- Relationship
Type - Represents a relationship type between requirements
- Report
Format - Report output format
- Requirement
Priority - Represents the priority of a requirement
- Requirement
Status - Represents the status of a requirement
- Requirement
Type - Represents the type of a requirement
- Save
Result - Result of attempting a save with conflict detection
- Scaffold
Error - Errors that can occur during scaffolding
- Storage
Error - Error type for storage operations
- Sync
Status - Current sync status between AIDA and GitLab
- Template
Source - Source of a template
- Update
Result - Result type for optimistic locking operations
- UrlOpen
Mode - How a URL should be opened when clicked
Constants§
- DEFAULT_
DUPLICATES_ PROMPT - Default template for finding duplicates
- DEFAULT_
EVALUATION_ PROMPT - Default template for requirement evaluation
- DEFAULT_
GENERATE_ CHILDREN_ PROMPT - Default template for generating child requirements
- DEFAULT_
IMPROVE_ PROMPT - Default template for improving descriptions
- DEFAULT_
RELATIONSHIPS_ PROMPT - Default template for suggesting relationships
- META_
PREFIX_ FEATURE - META_
PREFIX_ TEAM - META_
PREFIX_ USER - Meta-type prefixes for special object types
- META_
PREFIX_ VIEW
Traits§
- Database
Backend - Core trait for database backends
- Dispenser
- The Dispenser trait — the stable interface for sequence number generation.
Functions§
- check_
migration_ status - Check if a YAML file has been migrated to SQLite
- check_
scaffold_ status - Check scaffold status for a project (standalone function for CLI)
- create_
backend - Creates a database backend based on the file extension or explicit type
- create_
backup - Create a backup of the current requirements file
- default_
reaction_ definitions - Returns the default set of reaction definitions
- default_
type_ definitions - Returns the default type definitions
- determine_
requirements_ path - Determines the requirements file path to use based on the available information.
This version does NOT check for migration - use
determine_requirements_path_with_migration_checkfor migration-aware path resolution. - execute_
import - Execute an import operation with the given configuration
- export_
to_ json - Exports a RequirementsStore to a JSON file
- get_
config_ dir - Gets the path to the AIDA config directory (~/.config/aida/)
- get_
embedded_ templates - Get all embedded templates with their info
- get_
prompt_ template - Get a prompt template, checking database first, then falling back to embedded
- get_
registry_ path - Gets the path to the registry file
- get_
template_ categories - Get template categories with descriptions
- get_
templates_ by_ category - Get templates by category
- get_
templates_ dir - Gets the path to the templates directory (~/.config/aida/templates/)
- import_
from_ json - Imports a RequirementsStore from a JSON file
- migrate_
sqlite_ to_ yaml - Migrates data from a SQLite database to a YAML file
- migrate_
yaml_ to_ sqlite - Migrates data from a YAML file to a SQLite database
- needs_
meta_ seeding - Check if META requirements need seeding
- open_
or_ create - Opens an existing database or creates a new one
- seed_
meta_ requirements - Seed META requirements in a new database
- validate_
import_ content - Validate import content (YAML string)
- validate_
import_ file - Validate an import file and return validation results