# Roadmap

> Query via CLI: `anki-utils roadmap`

## Current Focus: Infrastructure

Building the foundation for reliable, agent-driven development.

### Testing Infrastructure
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Add pytest to dev dependencies | ✅ done | small | Update pyproject.toml with pytest, pytest-cov |
| Create tests/test_exporter.py | ✅ done | medium | Test each card type generation produces valid notes |
| Create tests/test_markdown.py | ✅ done | medium | Test markdown_to_html() edge cases (bold, italic, code, lists, cloze preservation) |
| Create tests/test_themes.py | ✅ done | small | Test all theme getters return valid CSS |
| Add GitHub Actions test workflow | ✅ done | small | Run pytest on push/PR, block merge on failure |
| Reach 60% coverage on exporter.py | ✅ done | medium | Core functionality must have tests (achieved 61%) |

### Code Quality
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Extract markdown_to_html() to markdown.py | ✅ done | medium | 130-line function should be its own module |
| Add input validation | ✅ done | medium | Validate JSON structure before processing, clear error messages |
| Replace print() with logging | ✅ done | small | Use Python logging module, add log levels |
| Add type hints to public functions | ✅ done | medium | Improve IDE support and documentation |
| Reconcile preview-template.jsx CSS | ✅ done | small | Sync with themes.py, document the duplication |

### Documentation
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Write API docstrings | ✅ done | medium | Document all public functions |
| Create HTML roadmap generator | ✅ done | small | Convert ROADMAP.md to styled HTML for Claude web |
| Update README.md | ✅ done | small | Reflect new package structure and capabilities |

### Agent Integration
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Add breaking changes announcements | ✅ done | small | CLI command to surface breaking changes that require skill updates |
| Add migration notes system | ✅ done | medium | Structured way to communicate API changes to consuming agents |
| Version compatibility check | ✅ done | medium | Skill can query if its expected API version is still supported |

---

## Phase 1: Stabilization

Polish existing features before adding new ones.

### Theme System
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Make themes visually distinct | pending | medium | Currently too similar; each should have clear identity |
| Complete Theme Designer testing | in-progress | small | v3.2 needs user review and bug fixes |
| Verify IO card support in Theme Designer | pending | small | Image occlusion cards render correctly |

### Image Occlusion
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Test .apkg export for IO cards | pending | medium | Verify exported cards work correctly in Anki |
| Update exporter.py IO model for embedded SVG | pending | medium | Match preview approach for consistency |
| End-to-end IO workflow testing | pending | medium | Real diagrams through full pipeline |

### Preview System
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Responsive design for preview | pending | medium | Adapt to different screen sizes |
| Verify IO rendering with base64 images | pending | small | Test image occlusion in preview |
| UX polish based on usage | pending | small | Fix issues found through hands-on testing |

---

## Phase 2: Features

New capabilities based on user needs.

### Card Creation
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Cloze cards from lists | pending | medium | Auto-generate cloze deletions from 3+ item lists |
| Structured feedback picklist | pending | medium | Replace freeform edit text with common options |
| Deeper quality review option | pending | medium | Optional thorough review for pre-formatted cards |
| Fact verification flow | pending | medium | "Add citation" triggers web search |
| Auto-tagging | pending | medium | Automatic tags based on content analysis |

### Import/Export
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Document extraction workflow | pending | large | PDF/doc → analyze → cards (multi-turn) |
| Batch import from CSV/JSON | pending | medium | Structured data → card transformation |
| Source/citation cards | pending | medium | Cards that cite information sources |

### Advanced
| Task | Status | Effort | Description |
|------|--------|--------|-------------|
| Custom note type import | pending | large | Extract note types from user's .apkg files |
| Token efficiency audit | pending | medium | Identify and reduce waste across all paths |

---

## Completed

| Task | Version | Date |
|------|---------|------|
| Slim SKILL.md router | 0.1.0 | 2024 |
| Developer portal | 0.1.0 | 2024 |
| Preview artifact | 0.1.0 | 2024 |
| .apkg export script | 0.1.0 | 2024 |
| Quick cards workflow | 0.1.0 | 2024 |
| User guide/onboarding | 0.1.0 | 2024 |
| Developer mode launch pattern | 0.1.0 | 2024 |
| PyPI package publication | 0.1.1 | 2024 |
| OCR-based coordinate detection | 0.1.1 | 2024 |
| Preview SVG embedding for IO | 0.1.1 | 2024 |
| Repository restructure for agent development | 0.2.0 | 2025-01 |
| HTML roadmap generator | 0.2.1 | 2025-01 |
| Migration notes system | 0.2.1 | 2025-01 |
| Breaking changes announcements | 0.2.1 | 2025-01 |
| Version compatibility check | 0.2.1 | 2025-01 |

---

## Task Sizing

- **small**: < 1 hour, single file change
- **medium**: 1-4 hours, multiple files or moderate complexity
- **large**: 4+ hours, architectural changes or extensive testing
