Based on review of existing todo entries in the collection, here are the metadata patterns found:
These fields appear consistently across all todos:
{
"_id": "ObjectId",
"id": "uuid-v4-string",
"description": "string",
"project": "string",
"priority": "High|Medium|Low|Critical",
"status": "pending|completed|in_progress",
"target_agent": "user|claude|system",
"created_at": "unix_timestamp",
"updated_at": "unix_timestamp"
}{
"completed_at": "unix_timestamp",
"duration": "human_readable_string", // e.g. "1 minute"
"duration_sec": "number_of_seconds"
}Used in omnispindle todos for grouping related tasks:
"metadata": {
"phase": "pm2-modernization|docker-update|...",
"file": "path/to/file.ext",
"completed_by": "email_address",
"completion_comment": "detailed_completion_notes"
}From your example in the conversation:
"metadata": {
"file": "src/Omnispindle/stdio_server.py",
"current_state": "hardcoded_all_tools",
"needed": "respect_OMNISPINDLE_TOOL_LOADOUT"
}From inventorium todos:
"metadata": {
"component": "TodoList Integration",
"file": "src/components/TodoList.jsx",
"changes": "170+ lines modified",
"features": ["field validation", "MCP updates", "real-time saving", "TTS integration"],
"completed_by": "email_address",
"completion_comment": "detailed_notes"
}Current analysis task:
"metadata": {
"task_type": "analysis",
"deliverable": "todo_metadata_standards.md",
"scope": "review_existing_formats_and_standardize"
}target_agentvstarget(some todos usetarget)completed_byappears in metadata vs potential top-level fieldcompletion_commentin metadata vs potential standardized field
- Some timestamps as unix timestamps, others as ISO strings
- Duration stored as both human-readable strings and seconds
- Arrays vs comma-separated strings for lists
- No validation schema for metadata contents
- Free-form metadata leads to inconsistent structures
- No standardized way to represent file references, dependencies, or relationships
{
"_id": "ObjectId",
"id": "uuid-v4",
"description": "string (required, max 500 chars)",
"project": "string (required, from approved project list)",
"priority": "Critical|High|Medium|Low (required)",
"status": "pending|in_progress|completed|blocked (required)",
"target_agent": "user|claude|system (required)",
"created_at": "unix_timestamp (auto-generated)",
"updated_at": "unix_timestamp (auto-updated)"
}{
"completed_at": "unix_timestamp",
"completed_by": "email_or_agent_id",
"completion_comment": "string (optional)",
"duration_sec": "number (calculated)"
}"metadata": {
// Technical Context (optional)
"files": ["array", "of", "file/paths"],
"components": ["ComponentName1", "ComponentName2"],
"commit_hash": "string (optional)",
"branch": "string (optional)",
// Project Organization (optional)
"phase": "string (for multi-phase projects)",
"epic": "string (for grouping related features)",
"tags": ["tag1", "tag2", "tag3"],
// State Tracking (optional)
"current_state": "string (what exists now)",
"target_state": "string (desired end state) (or epic-todo uuid)",
"blockers": ["blocker1-uuid", "blocker2-uuid"],
// Deliverables (optional)
"deliverables": ["file1.md", "component.jsx"],
"acceptance_criteria": ["criteria1", "criteria2"],
// Analysis & Estimates (optional)
"complexity": "Low|Medium|High|Complex",
"confidence": "1|2|3|4|5",
// Custom fields (project-specific)
"custom": {
// Project-specific metadata goes here
}
}- Standardize core fields naming (
target_agentovertarget) - Move
completed_byandcompletion_commentto top level, including updating Inventorium to use the new fields - Ensure all timestamps use unix format
- Add validation for required fields
- Create migration script to standardize existing metadata
- Convert string arrays to proper arrays
- Normalize file path references
- Add missing completion tracking fields
- Add dependency tracking between todos
- Implement epic/phase grouping
- Add estimation and complexity tracking
- Create metadata validation schemas
- Auto-populate file references from git changes
- Link todos to commits/branches
- Add integration with project management tools
- Implement todo templates for common patterns
For the metadata form in todo creation:
- Core fields (description, project, priority, target_agent)
- Phase/Epic selection (dropdown with project-specific options)
- Tags (multi-select or chip input)
- File references (file picker or manual entry)
- Component names (autocomplete from project)
- Dependencies (todo picker)
- Current/Target state (text areas)
- Estimated hours (number input)
- Complexity level (radio buttons)
- Acceptance criteria (dynamic list)
- Deliverables (file list)
This structure provides consistency while maintaining flexibility for different project needs.