AgentDB State Manager Skill
Purpose
The AgentDB State Manager provides persistent database storage for workflow state tracking using DuckDB through Claude Code's AgentDB integration. This skill enables:
- •Read-only analytics: Complex queries over workflow history without parsing files
- •Checkpoint management: Store/recover context checkpoints at 100K token threshold
- •Dependency resolution: Query task dependencies and critical paths
- •Metrics analysis: Historical trends, time-in-phase, bottleneck identification
Primary source of truth: TODO_*.md files (AgentDB is an analytics cache)
Primary purpose: Data gathering and analysis
Workflow phase: Cross-phase (Utilities) - All phases (1-6)
When to Use
Use this skill when:
- •Querying complex task dependencies or critical paths
- •Analyzing workflow metrics (time-in-phase, completion rates)
- •Storing context checkpoints at 100K tokens
- •Tracking state transitions and historical trends
- •Avoiding repetitive TODO file parsing for analytics
Triggered by keywords: "analyze workflow", "query state", "checkpoint", "workflow metrics", "task dependencies"
Integration with Workflow
Phase integration: Cross-phase (Utilities)
This skill integrates with all workflow phases:
Phase 0 (Setup):
- •Initialize AgentDB schema on first use
- •Load canonical state definitions from workflow-states.json
Phase 1 (Planning - BMAD):
- •Track BMAD Q&A responses
- •Store epic definitions and requirements
Phase 2 (Specification + Implementation):
- •Sync tasks from TODO_*.md to AgentDB
- •Query task dependencies for parallel execution
- •Track implementation progress
Phase 3 (Quality):
- •Store quality gate results
- •Track test coverage trends
- •Historical quality metrics
Phase 4 (Integration):
- •Store as-built deviation data
- •Metrics for feedback loop
- •Compare planning vs actual
Phase 5 (Release):
- •Release workflow state tracking
- •Final QA checkpoint data
Phase 6 (Hotfix):
- •Hotfix-specific state tracking
- •Emergency rollback data
Context checkpoints (all phases):
- •Store checkpoint at 100K tokens
- •Faster resume with structured queries vs file parsing
Orchestrator integration:
- •workflow-orchestrator optionally calls AgentDB for complex queries
- •Fallback to file parsing if AgentDB unavailable
- •Automatic sync after TODO file updates
Official Documentation Alignment
This skill follows the local workflow system patterns which extend official Claude Code skill specifications:
Official Claude Code Skills:
- •Specification: https://docs.claude.com/en/docs/agents-and-tools/agent-skills
- •Building Agents: https://docs.claude.com/en/docs/agents-and-tools/building-agents
- •AgentDB Documentation: (Reference from TODO_agentdb-prompt-template.md)
Local Pattern Extensions:
file_structure:
- •Local: ['SKILL.md', 'CLAUDE.md', 'README.md', 'CHANGELOG.md', 'ARCHIVED/', 'scripts/', 'templates/']
- •Official: ['skill.md', 'README.md']
- •Rationale: Extended structure supports multi-phase workflow with version tracking, context files, and archived materials
frontmatter:
- •Local: YAML with 'name', 'version', 'description' fields
- •Official: YAML with 'name', 'description' fields only
- •Rationale: 'version' field enables semantic versioning integration with validate_versions.py and UPDATE_CHECKLIST.md workflow
directory_organization:
- •Local: scripts/, templates/ subdirectories
- •Official: Flat structure with skill.md
- •Rationale: Separates Python code (scripts/) from templates (workflow-states.json) for better maintainability
These extensions support the multi-phase workflow system while maintaining compatibility with core Claude Code concepts.
Architecture
Data Flow (Read-Only Analytics Mode)
TODO_*.md (source of truth)
↓
sync_todo_to_db.py
↓
AgentDB (DuckDB)
↓
query_state.py / analyze_metrics.py
↓
Analytics results
Session ID Generation
AgentDB requires a session ID for database identification. This skill uses:
Method: Timestamp-based (reproducible)
from datetime import datetime import hashlib # Generate session ID from current timestamp current_time = datetime.utcnow().isoformat() session_id = hashlib.md5(current_time.encode()).hexdigest()[:16] # Example: "f8e7d6c5b4a39281"
Rationale: Provides reproducible session IDs across agent invocations within the same timeframe, balancing uniqueness with reproducibility.
Schema Design (Immutable Append-Only)
Core principle: NEVER UPDATE or DELETE records - always INSERT new records
Primary table: workflow_records
CREATE TABLE IF NOT EXISTS workflow_records (
record_id UUID PRIMARY KEY DEFAULT uuid(),
record_datetimestamp TIMESTAMP DEFAULT current_timestamp,
object_id VARCHAR NOT NULL, -- Stable ID for workflow object
object_type VARCHAR NOT NULL, -- 'feature', 'task', 'epic', etc.
object_state VARCHAR NOT NULL, -- '20_in-progress', '99_done', etc.
object_metadata JSON -- Framework, dependencies, etc.
);
CREATE INDEX idx_records_object
ON workflow_records(object_id, record_datetimestamp DESC);
Current state query pattern:
-- Get latest state for each object
SELECT DISTINCT ON (object_id)
object_id, object_type, object_state, object_metadata
FROM workflow_records
WHERE object_type = 'task'
ORDER BY object_id, record_datetimestamp DESC;
Usage
1. Initialize AgentDB (First Use)
# Initialize database schema and load state definitions python .claude/skills/agentdb-state-manager/scripts/init_database.py
What it does:
- •Creates workflow_records table
- •Loads workflow-states.json
- •Sets up indexes for efficient queries
- •Stores session metadata
2. Sync TODO Files to AgentDB
# Sync all TODO_*.md files to database python .claude/skills/agentdb-state-manager/scripts/sync_todo_to_db.py # Sync specific TODO file python .claude/skills/agentdb-state-manager/scripts/sync_todo_to_db.py \ TODO_feature_20251023T143000Z_my-feature.md
What it does:
- •Parses YAML frontmatter from TODO files
- •Converts to immutable append-only records
- •Stores workflow progress, tasks, quality gates
- •Preserves full state history
3. Query Current Workflow State
# Get current state of all workflows python .claude/skills/agentdb-state-manager/scripts/query_state.py # Query specific workflow python .claude/skills/agentdb-state-manager/scripts/query_state.py \ --slug my-feature # Query task dependencies python .claude/skills/agentdb-state-manager/scripts/query_state.py \ --dependencies --task impl_003
What it does:
- •Queries latest state for each object
- •Resolves task dependencies
- •Identifies blocked tasks
- •Shows critical path
4. Analyze Workflow Metrics
# Generate metrics report python .claude/skills/agentdb-state-manager/scripts/analyze_metrics.py # Historical trends python .claude/skills/agentdb-state-manager/scripts/analyze_metrics.py \ --trends --days 30 # Bottleneck analysis python .claude/skills/agentdb-state-manager/scripts/analyze_metrics.py \ --bottlenecks
What it does:
- •Calculates time-in-phase for workflows
- •Identifies bottlenecks and slow phases
- •Tracks quality gate pass/fail rates
- •Compares planning estimates vs actual
5. Context Checkpoint Management
# Store checkpoint at 100K tokens python .claude/skills/agentdb-state-manager/scripts/checkpoint_manager.py \ store --todo TODO_feature_*.md # List available checkpoints python .claude/skills/agentdb-state-manager/scripts/checkpoint_manager.py list # Restore from checkpoint python .claude/skills/agentdb-state-manager/scripts/checkpoint_manager.py \ restore --checkpoint-id <uuid>
What it does:
- •Stores complete workflow state to AgentDB
- •Records token count, phase, step, last task
- •Provides resume instructions
- •Faster recovery than parsing TODO files
Best Practices
1. AgentDB as Analytics Cache
✓ DO: Treat TODO_*.md files as source of truth ✗ DON'T: Modify TODO files based on AgentDB state
Rationale: Files are git-tracked and permanent; AgentDB sessions last 24 hours
2. Sync After TODO Updates
✓ DO: Run sync_todo_to_db.py after every TODO file update ✗ DON'T: Let AgentDB state drift from file state
Rationale: AgentDB is a cache - it must stay synchronized
3. Use for Complex Queries Only
✓ DO: Use AgentDB for dependency graphs, metrics, historical analysis ✗ DON'T: Use for simple current state queries (parse TODO file instead)
Rationale: Minimize token overhead - use database for queries that justify the cost
4. Immutable Records
✓ DO: Always INSERT new records for state changes ✗ DON'T: UPDATE or DELETE existing records
Rationale: Preserves full history for temporal analysis
5. Session Lifetime Awareness
✓ DO: Re-initialize at session start if needed ✗ DON'T: Assume AgentDB persists across days
Rationale: 24-hour auto-deletion - treat as ephemeral cache
Scripts Reference
init_database.py
Purpose: Initialize AgentDB schema and load state definitions When to run: First use in a session, or if schema corrupted Token cost: ~300-400 tokens
sync_todo_to_db.py
Purpose: Sync TODO_*.md files to AgentDB When to run: After every TODO file update Token cost: ~200-300 tokens per TODO file
query_state.py
Purpose: Query current workflow state and dependencies When to run: Complex state queries (dependency graphs, critical paths) Token cost: ~100-200 tokens per query
analyze_metrics.py
Purpose: Historical metrics and trend analysis When to run: End of phase, workflow retrospectives Token cost: ~400-600 tokens (complex queries)
checkpoint_manager.py
Purpose: Store/restore context checkpoints When to run: At 100K token threshold, or before context reset Token cost: ~200-400 tokens (store + verify)
Token Efficiency
Before AgentDB (Manual File Parsing)
Complex dependency query:
- •Read TODO_*.md file (~1,500 tokens)
- •Parse YAML frontmatter (~500 tokens)
- •Iterate through tasks (~1,000 tokens)
- •Resolve dependencies (~800 tokens) Total: ~3,800 tokens
After AgentDB (Database Query)
Same query:
- •Run query_state.py --dependencies (~200 tokens)
- •Parse SQL results (~100 tokens) Total: ~300 tokens
Savings: ~3,500 tokens (92% reduction) for complex queries
Context Checkpoint Recovery
Before AgentDB:
- •Parse TODO_*.md (~1,500 tokens)
- •Reconstruct state (~1,000 tokens)
- •Determine next step (~800 tokens) Total: ~3,300 tokens
After AgentDB:
- •Query checkpoint table (~150 tokens)
- •Load resume instructions (~100 tokens) Total: ~250 tokens
Savings: ~3,050 tokens (92% reduction)
Integration with Other Skills
workflow-orchestrator
- •Calls query_state.py for complex next-step determination
- •Uses checkpoint_manager.py at 100K tokens
- •Falls back to file parsing if AgentDB unavailable
workflow-utilities
- •todo_updater.py triggers sync_todo_to_db.py after updates
- •Dual write: update file + sync to database
speckit-author
- •Uses AgentDB for as-built metrics (update_asbuilt.py)
- •Queries historical planning accuracy
quality-enforcer
- •Stores quality gate results to AgentDB
- •Tracks coverage trends over time
bmad-planner
- •Stores BMAD Q&A responses
- •Epic definition tracking
Related Documentation
- •CLAUDE.md - Claude Code usage context
- •README.md - Human-readable overview
- •CHANGELOG.md - Version history
- •templates/workflow-states.json - Canonical state definitions
Related Skills
- •workflow-orchestrator - Calls AgentDB for complex queries
- •workflow-utilities - Triggers sync after TODO updates
- •speckit-author - Uses for as-built metrics
- •quality-enforcer - Stores quality gate results
- •bmad-planner - Stores planning data
Limitations
- •Session lifetime: AgentDB persists for 24 hours, then auto-deleted
- •Source of truth: TODO_*.md files remain authoritative
- •Sync overhead: ~200-300 tokens per sync operation
- •DuckDB constraints: Optimized for OLAP (analytics), not OLTP (transactions)
- •No vector search: Unlike PostgreSQL pgvector
Academic References
This skill implements the MIT Agent Synchronization Pattern based on:
Meng, E., & Jackson, D. (2025). "What You See Is What It Does: A Structural Pattern for Legible Software." Onward! at SPLASH 2025. arXiv:2508.14511v1. https://arxiv.org/abs/2508.14511
Key concepts from the paper:
- •Concepts: Fully independent services (implemented as agents/worktrees)
- •Synchronizations: Event-based rules mediating between services (implemented as
agent_synchronizationstable)
The pattern improves incrementality, integrity, and transparency in multi-agent workflows.
Version History
v1.0.0 (2025-11-02):
- •Initial release
- •Read-only analytics mode
- •Sync from TODO files to AgentDB
- •Complex query support (dependencies, metrics)
- •Context checkpoint storage
- •All phases (1-6) integration