|
810 | 810 | <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> |
811 | 811 |
|
812 | 812 | <li class="md-nav__item"> |
813 | | - <a href="#v10-foundation-current" class="md-nav__link"> |
| 813 | + <a href="#v10-foundation" class="md-nav__link"> |
814 | 814 | <span class="md-ellipsis"> |
815 | 815 |
|
816 | | - v1.0 — Foundation (current) |
| 816 | + v1.0 — Foundation |
817 | 817 |
|
818 | 818 | </span> |
819 | 819 | </a> |
|
1079 | 1079 | </span> |
1080 | 1080 | </a> |
1081 | 1081 |
|
| 1082 | +</li> |
| 1083 | + |
| 1084 | + <li class="md-nav__item"> |
| 1085 | + <a href="#v20-unified-platform" class="md-nav__link"> |
| 1086 | + <span class="md-ellipsis"> |
| 1087 | + |
| 1088 | + v2.0 — Unified Platform |
| 1089 | + |
| 1090 | + </span> |
| 1091 | + </a> |
| 1092 | + |
| 1093 | +</li> |
| 1094 | + |
| 1095 | + <li class="md-nav__item"> |
| 1096 | + <a href="#v21-health-self-update-current" class="md-nav__link"> |
| 1097 | + <span class="md-ellipsis"> |
| 1098 | + |
| 1099 | + v2.1 — Health & Self-Update (current) |
| 1100 | + |
| 1101 | + </span> |
| 1102 | + </a> |
| 1103 | + |
| 1104 | +</li> |
| 1105 | + |
| 1106 | + <li class="md-nav__item"> |
| 1107 | + <a href="#next" class="md-nav__link"> |
| 1108 | + <span class="md-ellipsis"> |
| 1109 | + |
| 1110 | + Next |
| 1111 | + |
| 1112 | + </span> |
| 1113 | + </a> |
| 1114 | + |
| 1115 | + <nav class="md-nav" aria-label="Next"> |
| 1116 | + <ul class="md-nav__list"> |
| 1117 | + |
| 1118 | + <li class="md-nav__item"> |
| 1119 | + <a href="#phase-6-cicd-pipeline" class="md-nav__link"> |
| 1120 | + <span class="md-ellipsis"> |
| 1121 | + |
| 1122 | + Phase 6: CI/CD Pipeline |
| 1123 | + |
| 1124 | + </span> |
| 1125 | + </a> |
| 1126 | + |
| 1127 | +</li> |
| 1128 | + |
| 1129 | + <li class="md-nav__item"> |
| 1130 | + <a href="#phase-7-docker-web-server-side-tts" class="md-nav__link"> |
| 1131 | + <span class="md-ellipsis"> |
| 1132 | + |
| 1133 | + Phase 7: Docker Web + Server-Side TTS |
| 1134 | + |
| 1135 | + </span> |
| 1136 | + </a> |
| 1137 | + |
| 1138 | +</li> |
| 1139 | + |
| 1140 | + <li class="md-nav__item"> |
| 1141 | + <a href="#phase-2-fastapi-web-ui" class="md-nav__link"> |
| 1142 | + <span class="md-ellipsis"> |
| 1143 | + |
| 1144 | + Phase 2: FastAPI Web UI |
| 1145 | + |
| 1146 | + </span> |
| 1147 | + </a> |
| 1148 | + |
| 1149 | +</li> |
| 1150 | + |
| 1151 | + <li class="md-nav__item"> |
| 1152 | + <a href="#phase-3-mcp-agent-integration" class="md-nav__link"> |
| 1153 | + <span class="md-ellipsis"> |
| 1154 | + |
| 1155 | + Phase 3: MCP Agent Integration |
| 1156 | + |
| 1157 | + </span> |
| 1158 | + </a> |
| 1159 | + |
| 1160 | +</li> |
| 1161 | + |
| 1162 | + </ul> |
| 1163 | + </nav> |
| 1164 | + |
1082 | 1165 | </li> |
1083 | 1166 |
|
1084 | 1167 | </ul> |
|
1143 | 1226 | <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> |
1144 | 1227 |
|
1145 | 1228 | <li class="md-nav__item"> |
1146 | | - <a href="#v10-foundation-current" class="md-nav__link"> |
| 1229 | + <a href="#v10-foundation" class="md-nav__link"> |
1147 | 1230 | <span class="md-ellipsis"> |
1148 | 1231 |
|
1149 | | - v1.0 — Foundation (current) |
| 1232 | + v1.0 — Foundation |
1150 | 1233 |
|
1151 | 1234 | </span> |
1152 | 1235 | </a> |
|
1412 | 1495 | </span> |
1413 | 1496 | </a> |
1414 | 1497 |
|
| 1498 | +</li> |
| 1499 | + |
| 1500 | + <li class="md-nav__item"> |
| 1501 | + <a href="#v20-unified-platform" class="md-nav__link"> |
| 1502 | + <span class="md-ellipsis"> |
| 1503 | + |
| 1504 | + v2.0 — Unified Platform |
| 1505 | + |
| 1506 | + </span> |
| 1507 | + </a> |
| 1508 | + |
| 1509 | +</li> |
| 1510 | + |
| 1511 | + <li class="md-nav__item"> |
| 1512 | + <a href="#v21-health-self-update-current" class="md-nav__link"> |
| 1513 | + <span class="md-ellipsis"> |
| 1514 | + |
| 1515 | + v2.1 — Health & Self-Update (current) |
| 1516 | + |
| 1517 | + </span> |
| 1518 | + </a> |
| 1519 | + |
| 1520 | +</li> |
| 1521 | + |
| 1522 | + <li class="md-nav__item"> |
| 1523 | + <a href="#next" class="md-nav__link"> |
| 1524 | + <span class="md-ellipsis"> |
| 1525 | + |
| 1526 | + Next |
| 1527 | + |
| 1528 | + </span> |
| 1529 | + </a> |
| 1530 | + |
| 1531 | + <nav class="md-nav" aria-label="Next"> |
| 1532 | + <ul class="md-nav__list"> |
| 1533 | + |
| 1534 | + <li class="md-nav__item"> |
| 1535 | + <a href="#phase-6-cicd-pipeline" class="md-nav__link"> |
| 1536 | + <span class="md-ellipsis"> |
| 1537 | + |
| 1538 | + Phase 6: CI/CD Pipeline |
| 1539 | + |
| 1540 | + </span> |
| 1541 | + </a> |
| 1542 | + |
| 1543 | +</li> |
| 1544 | + |
| 1545 | + <li class="md-nav__item"> |
| 1546 | + <a href="#phase-7-docker-web-server-side-tts" class="md-nav__link"> |
| 1547 | + <span class="md-ellipsis"> |
| 1548 | + |
| 1549 | + Phase 7: Docker Web + Server-Side TTS |
| 1550 | + |
| 1551 | + </span> |
| 1552 | + </a> |
| 1553 | + |
| 1554 | +</li> |
| 1555 | + |
| 1556 | + <li class="md-nav__item"> |
| 1557 | + <a href="#phase-2-fastapi-web-ui" class="md-nav__link"> |
| 1558 | + <span class="md-ellipsis"> |
| 1559 | + |
| 1560 | + Phase 2: FastAPI Web UI |
| 1561 | + |
| 1562 | + </span> |
| 1563 | + </a> |
| 1564 | + |
| 1565 | +</li> |
| 1566 | + |
| 1567 | + <li class="md-nav__item"> |
| 1568 | + <a href="#phase-3-mcp-agent-integration" class="md-nav__link"> |
| 1569 | + <span class="md-ellipsis"> |
| 1570 | + |
| 1571 | + Phase 3: MCP Agent Integration |
| 1572 | + |
| 1573 | + </span> |
| 1574 | + </a> |
| 1575 | + |
| 1576 | +</li> |
| 1577 | + |
| 1578 | + </ul> |
| 1579 | + </nav> |
| 1580 | + |
1415 | 1581 | </li> |
1416 | 1582 |
|
1417 | 1583 | </ul> |
|
1432 | 1598 |
|
1433 | 1599 |
|
1434 | 1600 | <h1 id="roadmap">Roadmap<a class="headerlink" href="#roadmap" title="Permanent link">¶</a></h1> |
1435 | | -<h2 id="v10-foundation-current">v1.0 — Foundation (current)<a class="headerlink" href="#v10-foundation-current" title="Permanent link">¶</a></h2> |
| 1601 | +<h2 id="v10-foundation">v1.0 — Foundation<a class="headerlink" href="#v10-foundation" title="Permanent link">¶</a></h2> |
1436 | 1602 | <ul> |
1437 | 1603 | <li>[x] Monorepo with studyctl + agent-session-tools</li> |
1438 | 1604 | <li>[x] Kiro CLI + Claude Code agent definitions</li> |
@@ -1527,19 +1693,19 @@ <h4 id="cowork-integration-claude-desktop">Cowork Integration (Claude Desktop)<a |
1527 | 1693 | </ul> |
1528 | 1694 | <h2 id="v12-community-polish">v1.2 — Community & Polish<a class="headerlink" href="#v12-community-polish" title="Permanent link">¶</a></h2> |
1529 | 1695 | <ul> |
1530 | | -<li>[ ] PyPI publishing</li> |
| 1696 | +<li>[x] PyPI publishing (v2.0 — OIDC trusted publishing)</li> |
1531 | 1697 | <li>[ ] Additional test coverage (exporters, scheduler, CLI commands, speak, PDF)</li> |
1532 | 1698 | <li>[ ] VSCode integration (fix circular import)</li> |
1533 | | -<li>[ ] TUI interface (textual)</li> |
| 1699 | +<li>[x] TUI interface (textual) (v1.5)</li> |
1534 | 1700 | <li>[ ] Watchdog file watcher for auto-sync</li> |
1535 | 1701 | <li>[ ] Community-contributed study topics</li> |
1536 | 1702 | <li>[ ] Localisation support</li> |
1537 | 1703 | <li>[x] TTS voice output (kokoro-tts / ltts integration)</li> |
1538 | 1704 | <li>[x] MkDocs documentation site (font toggle, Nord colours, reading preferences, 7 admonition types, <code>studyctl docs</code> CLI)</li> |
1539 | 1705 | <li>[x] Gemini CLI / OpenCode / Amp agents (unified shared framework)</li> |
1540 | | -<li>[ ] CI Python version matrix (3.12, 3.13)</li> |
1541 | | -<li>[ ] GitHub Pages deployment workflow</li> |
1542 | | -<li>[ ] CHANGELOG.md and release automation</li> |
| 1706 | +<li>[x] CI Python version matrix (3.12, 3.13)</li> |
| 1707 | +<li>[x] GitHub Pages deployment workflow</li> |
| 1708 | +<li>[x] CHANGELOG.md and release automation (git-cliff + release.yml)</li> |
1543 | 1709 | <li>[ ] <code>query_sessions.py</code> refactor — split into CLI, formatters, resolver modules</li> |
1544 | 1710 | </ul> |
1545 | 1711 | <h2 id="v13-audhd-intelligence-from-review">v1.3 — AuDHD Intelligence (from review)<a class="headerlink" href="#v13-audhd-intelligence-from-review" title="Permanent link">¶</a></h2> |
@@ -1611,6 +1777,48 @@ <h2 id="v15-code-quality-framework-unification">v1.5 — Code Quality & Fram |
1611 | 1777 | <li>[x] <strong>Docs site</strong>: <code>studyctl docs serve/open/list/read</code> commands</li> |
1612 | 1778 | <li>[x] <strong>Agent installation integration</strong>: <code>install-agents.sh</code> called from <code>config init</code> flow</li> |
1613 | 1779 | </ul> |
| 1780 | +<h2 id="v20-unified-platform">v2.0 — Unified Platform<a class="headerlink" href="#v20-unified-platform" title="Permanent link">¶</a></h2> |
| 1781 | +<p>Monorepo restructure, content pipeline absorption, packaging, and infrastructure hardening.</p> |
| 1782 | +<ul> |
| 1783 | +<li>[x] <strong>Phase 0</strong>: Config consolidation (<code>settings.py</code> single source), CLI split into <code>cli/</code> package with LazyGroup (12 modules), WAL mode on all SQLite connections, service layer (<code>services/review.py</code>, <code>services/content.py</code>), JSON contract formalised</li> |
| 1784 | +<li>[x] <strong>Phase 1</strong>: Content absorption — 7 modules from pdf-by-chapters (<code>splitter</code>, <code>notebooklm_client</code>, <code>syllabus</code>, <code>markdown_converter</code>, <code>models</code>, <code>storage</code>), 10 CLI commands under <code>studyctl content</code>, 76 tests</li> |
| 1785 | +<li>[x] <strong>Phase 4</strong>: PyPI publishing (<code>studyctl</code> on PyPI), Homebrew personal tap (<code>NetDevAutomate/studyctl/studyctl</code>), OIDC trusted publishing, <code>studyctl setup</code> wizard</li> |
| 1786 | +<li>[x] <strong>327 tests</strong>, 4 skipped (optional deps)</li> |
| 1787 | +</ul> |
| 1788 | +<h2 id="v21-health-self-update-current">v2.1 — Health & Self-Update (current)<a class="headerlink" href="#v21-health-self-update-current" title="Permanent link">¶</a></h2> |
| 1789 | +<p>Diagnostic engine, self-update mechanism, and AI-guided setup for non-technical users.</p> |
| 1790 | +<ul> |
| 1791 | +<li>[x] <strong><code>studyctl doctor</code></strong> — 19 health checks across 7 categories (core, database, config, agents, deps, voice, updates). Rich table output, <code>--json</code> for AI agents/CI, <code>--quiet</code> for scripts, <code>--category</code> for filtering. Exit codes: 0=healthy, 1=actionable, 2=core failure.</li> |
| 1792 | +<li>[x] <strong><code>studyctl update</code></strong> — check for available updates (always exit 0, informational)</li> |
| 1793 | +<li>[x] <strong><code>studyctl upgrade</code></strong> — apply updates with <code>--dry-run</code>, <code>--component</code>, <code>--force</code>. Package manager detection (uv/brew/pip), DB backup with 30-day pruning, agent definition updates.</li> |
| 1794 | +<li>[x] <strong>Install-mentor agent</strong> — tool-agnostic AI-guided setup prompt (<code>agents/shared/install-mentor.md</code>). Uses <code>studyctl doctor --json</code> as contract, fix loop capped at 3 iterations. Works with Claude Code, Kiro, Gemini CLI, OpenCode, Amp.</li> |
| 1795 | +<li>[x] <strong>Agent manifest</strong> — <code>agents/manifest.json</code> tracks SHA-256 hashes of all agent definitions. <code>scripts/update-agent-manifest.py</code> regenerates.</li> |
| 1796 | +<li>[x] <strong>Documentation</strong> — README, CLI reference, setup guide, agent-install all updated for non-technical users.</li> |
| 1797 | +</ul> |
| 1798 | +<h2 id="next">Next<a class="headerlink" href="#next" title="Permanent link">¶</a></h2> |
| 1799 | +<h3 id="phase-6-cicd-pipeline">Phase 6: CI/CD Pipeline<a class="headerlink" href="#phase-6-cicd-pipeline" title="Permanent link">¶</a></h3> |
| 1800 | +<p>Nightly drift detection, pre-release gate, and Docker image pipeline. Spec at <code>docs/ci-cd-pipeline.md</code>.</p> |
| 1801 | +<ul> |
| 1802 | +<li>[ ] Nightly: fresh install on Ubuntu + macOS, <code>studyctl doctor --json</code> as gate</li> |
| 1803 | +<li>[ ] Pre-release: upgrade path N-1 -> N, triggered on release tags</li> |
| 1804 | +<li>[ ] Docker: <code>studyctl-web</code> image with server-side TTS, health check via doctor</li> |
| 1805 | +<li>[ ] <code>compatibility.json</code> for pre-flight version checks</li> |
| 1806 | +</ul> |
| 1807 | +<h3 id="phase-7-docker-web-server-side-tts">Phase 7: Docker Web + Server-Side TTS<a class="headerlink" href="#phase-7-docker-web-server-side-tts" title="Permanent link">¶</a></h3> |
| 1808 | +<ul> |
| 1809 | +<li>[ ] Docker image running <code>studyctl web</code> with kokoro-onnx TTS</li> |
| 1810 | +<li>[ ] FastAPI audio endpoint for browser playback</li> |
| 1811 | +</ul> |
| 1812 | +<h3 id="phase-2-fastapi-web-ui">Phase 2: FastAPI Web UI<a class="headerlink" href="#phase-2-fastapi-web-ui" title="Permanent link">¶</a></h3> |
| 1813 | +<ul> |
| 1814 | +<li>[ ] Replace stdlib HTTP server with FastAPI</li> |
| 1815 | +<li>[ ] HTMX + Alpine.js frontend, artefact viewer, progress dashboard</li> |
| 1816 | +</ul> |
| 1817 | +<h3 id="phase-3-mcp-agent-integration">Phase 3: MCP Agent Integration<a class="headerlink" href="#phase-3-mcp-agent-integration" title="Permanent link">¶</a></h3> |
| 1818 | +<ul> |
| 1819 | +<li>[ ] FastMCP v1 server with stdio transport</li> |
| 1820 | +<li>[ ] Flashcard/quiz generation tools, study context, onboarding agent</li> |
| 1821 | +</ul> |
1614 | 1822 |
|
1615 | 1823 |
|
1616 | 1824 |
|
|
0 commit comments