How to use: Each task has a checkbox. Mark
[x]when complete with the date. Tasks are executed in order within each phase. Do not skip phases. SeeCLAUDE.mdfor the task execution protocol.
- T-1.1: Create
.claude/settings.jsonwith permissions (2026-03-04) - T-1.2: Create
.claude/scripts/session-start.sh(idempotent bootstrap) (2026-03-04) - T-1.3: Create all
.claude/commands/slash commands (2026-03-04) - T-1.4: Create all
.claude/agents/sub-agent definitions (2026-03-04) - T-1.5: Create
CLAUDE.mdwith full project knowledge (2026-03-04) - T-1.6: Create
TASKS.mdwith complete task breakdown (2026-03-04) - T-1.7: Create
.mise.toml,.gitignore,bunfig.toml,package.json(root),nx.json,renovate.json(2026-03-04) - T-1.8: Create
README.mdwith project overview (2026-03-04) - T-1.9: Create
docs/specs/TEMPLATE.md(feature spec template) (2026-03-04) - T-1.10: Create
features/example.feature(smoke test BDD feature) (2026-03-04) - T-1.11: Copy
.claude/prompts/init.mdtodocs/SPECIFICATION.md(2026-03-04) - T-1.12: Commit all bootstrap files, push to remote (2026-03-04)
- T-1.13: Print "Bootstrap complete" message (2026-03-04)
- T0.1: Initialize monorepo with mise, bun, Nx, tsconfig (2026-03-04)
- T0.2: Set up CI workflow (
.github/workflows/ci.yml— lint + typecheck + test stubs) (2026-03-04) - T0.3: Create
packages/core/with all abstraction interfaces (types only) (2026-03-04) - T0.4: Create
packages/ui/skeleton with React, TailwindCSS (2026-03-04) - T0.5: Create
packages/web/Vite entry point with dev server (2026-03-04) - T0.6: Set up Playwright with a single smoke test (2026-03-04)
- T0.7: Set up Vitest with a single unit test (2026-03-04)
- T0.8: Set up BDD tooling —
@amiceli/vitest-cucumberfor unit BDD (2026-03-04) - T0.9: Create
features/directory structure with example.featurefile and step definitions (2026-03-04) - T0.10: Create
docs/specs/TEMPLATE.mdand initial feature spec stubs for Phase 1 features (2026-03-04) - T0.11: Set up GitHub Pages preview deployment workflow (
.github/workflows/preview-deploy.yml) (2026-03-04) - T0.12: Implement
CEPT_DEMO_MODEflag — onboarding skips backend selection, goes straight toBrowserFsBackendwith sample content (2026-03-04)
- T1.1: Implement
StorageBackendinterface +BrowserFsBackend(lightning-fs / IndexedDB) +LocalFsBackend(Node fs) (2026-03-04) - T1.2: Implement
GitBackendextendingStorageBackendwith isomorphic-git (2026-03-04) - T1.3: Implement Markdown <-> Block tree parser (CommonMark + GFM + cept extensions) (2026-03-04)
- T1.4: Implement YAML front matter parser/serializer (2026-03-04)
- T1.5: Implement database engine (schema, CRUD, filter, sort, group) (2026-03-04)
- T1.6: Implement formula evaluator for database formulas (2026-03-04)
- T1.7: Implement search index (client-side full-text) (2026-03-04)
- T1.8: Implement template engine (2026-03-04)
- T2.1: TipTap editor setup with basic blocks (paragraph, headings, lists) (2026-03-04)
- T2.2: All text blocks (code, quote, callout, toggle, divider) (2026-03-04)
- T2.3: Media blocks (image, embed, bookmark) (2026-03-04)
- T2.4: Slash command menu (2026-03-04)
- T2.5: Block drag-and-drop reordering (2026-03-04)
- T2.6: Block actions menu (2026-03-04)
- T2.7: Inline formatting toolbar (2026-03-04)
- T2.8: Column layout blocks (2026-03-04)
- T2.9: Mentions (page, person, date) (2026-03-04)
- T2.10: Math equations (KaTeX) (2026-03-04)
- T2.11: Mermaid diagram block — custom TipTap node with live preview, all 20+ diagram types, SVG/PNG export (2026-03-04)
- T3.1: Sidebar with page tree (infinite nesting) (2026-03-04)
- T3.2: Current page highlighting + auto-expand in sidebar (2026-03-04)
- T3.3: Breadcrumbs in topbar (2026-03-04)
- T3.4: Page CRUD (create, rename, move, delete, restore) (2026-03-04)
- T3.5: Favorites and recent sections (2026-03-04)
- T3.6: Trash with restore (2026-03-04)
- T3.7: Command palette (Cmd+K) (2026-03-04)
- T3.8: Full-text search UI (2026-03-04)
- T3.9: Knowledge Graph — global view with D3 force-directed layout (2026-03-04)
- T3.10: Knowledge Graph — local view with depth slider (2026-03-04)
- T3.11: Knowledge Graph — filters, color groups (2026-03-04)
- T3.12: Knowledge Graph — time-lapse animation, performance optimization (2026-03-04)
- T4.1: Database schema UI (add/edit/reorder properties) (2026-03-04)
- T4.2: Table view with sortable, filterable, resizable columns (2026-03-04)
- T4.3: Board/Kanban view with drag-and-drop (2026-03-04)
- T4.4: Calendar view (2026-03-04)
- T4.5: Map view (Leaflet + OpenStreetMap) (2026-03-04)
- T4.6: Gallery view (2026-03-04)
- T4.7: List view (2026-03-04)
- T4.8: Inline database blocks (embed in pages) (2026-03-04)
- T4.9: Linked database views (reference existing DB with custom filter) (2026-03-04)
- T4.10: Relations and rollups (2026-03-04)
- T4.11: Select/Multi-select dropdown editors with color (2026-03-04)
- T4.12: All remaining property type editors (2026-03-04)
- T5.1: GitHub OAuth App flow (2026-03-04)
- T5.2: Repo picker/creator UI (2026-03-04)
- T5.3: Auto-commit engine (2026-03-04)
- T5.4: Auto-branch strategy (2026-03-04)
- T5.5: Auto-merge + conflict resolution engine (2026-03-04)
- T5.6: Conflict notification + resolution UI (2026-03-04)
- T5.7: Page history viewer (Git log + diff) (2026-03-04)
- T5.8: Sync engine (pull/push cycle) (2026-03-04)
- T6.1: Yjs integration with TipTap (y-prosemirror) (2026-03-04)
- T6.2: Signaling server implementation (2026-03-04)
- T6.3: Presence awareness (cursors, avatar stack) (2026-03-04)
- T6.4: Real-time sync of database changes (2026-03-04)
- T6.5: Offline queue + reconnect sync (2026-03-04)
- T7.1: Electrobun desktop shell (macOS) (2026-03-04)
- T7.2: Electron desktop shell (Windows/Linux) (2026-03-04)
- T7.3: PWA service worker + manifest (2026-03-04)
- T7.4: Capacitor mobile project setup (2026-03-04)
- T7.5: Mobile-specific UI adaptations (responsive, touch) (2026-03-04)
- T7.6: Native OAuth flow for mobile (2026-03-04)
- T8.1: Notion export ZIP importer (2026-03-04)
- T8.2: Obsidian vault importer (2026-03-04)
- T8.3: Markdown/HTML/PDF exporter (2026-03-04)
- T8.4: Built-in template library (2026-03-04)
- T9.1: Documentation site setup (Starlight/VitePress) (2026-03-04)
- T9.2: Write all getting-started guides (2026-03-04)
- T9.3: Write all reference docs (2026-03-04)
- T9.4: Write migration guides (2026-03-04)
- T9.5: Screenshot integration from Playwright (2026-03-04)
- T9.6: README and CONTRIBUTING.md (2026-03-04)
- T9.7: Polish: animations, loading states, error boundaries, empty states (2026-03-04)
- T10.1: Release CI workflows (desktop, web, mobile) (2026-03-04)
- T10.2: Code signing setup (2026-03-04)
- T10.3: Auto-update mechanism (desktop) (2026-03-04)
- T10.4: First release (2026-03-04)
The phases below replace the original init.md numbering. The app works end-to-end with localStorage but needs real storage backends wired in.
- P2.1: Fix known bugs — GitBackend
node:fshardcode, diff empty hunks, signaling server entry point (2026-03-04) - P2.2: Harden Markdown parser/serializer roundtrip — fuzz-test all block types, fix extractText (2026-03-04)
- P2.3: Replace App.tsx localStorage with BrowserFsBackend (keystone task) (2026-03-04)
- P2.4: Wire page CRUD to storage backend — individual page files via StorageBackend (2026-03-04)
- P2.4a: Landing page — nice onboarding/landing page for GitHub Pages with links to getting started and "what is this app" guides; guides describe how the demo area works (2026-03-04)
- P2.4b: Folder pages — directory listing of child pages; handle pages with/without index; pages should be linked (2026-03-04)
- P2.4c: Front matter — emoji icon via YAML front matter, optional page banner (like Notion) (2026-03-04)
- P2.4d: Table rendering — fix table rendering in editor, ensure tables work in slash commands with helpful creation UI (2026-03-04)
- P2.4e: Table tests — unit, integration, snapshot, and E2E tests to ensure table rendering never breaks (2026-03-04)
- P2.4f: Playwright CI screenshots — automated screenshots from Playwright in CI (including table usage), stored in docs/screenshots/ (2026-03-04)
- P2.4g: Roadmap updates — add custom emoji support as future item; add "view raw file" as roadmap item in page options (2026-03-04)
- P2.5: Wire database persistence to storage backend — .cept/databases/*.yaml (2026-03-04)
- P2.6: Wire search index to storage backend — index real file contents (2026-03-04)
- P2.7: Implement LocalFsBackend using File System Access API / Node fs (2026-03-04)
- P2.8: Fix GitBackend to use injected filesystem (not hardcoded node:fs) (2026-03-04, done in P2.1)
- P2.9: Multi-space support (create, switch, delete) (2026-03-04)
- P2.10: Wire Notion importer UI (2026-03-04)
- P2.11: Wire Obsidian importer UI (2026-03-04)
- P2.12: Wire exporter UI (2026-03-04)
- P3.1: Add database navigation — sidebar section, routes
- P3.2: Validate database engine wired to StorageBackend
- P3.3: Wire TableView to real database data
- P3.4: Wire BoardView to real data with drag-and-drop
- P3.5: Wire CalendarView to real data
- P3.6: Wire GalleryView to real data
- P3.7: Wire ListView to real data
- P3.8: Integrate Leaflet into MapView
- P3.9: Verify all 18 property type editors work
- P3.10: Wire relations & rollups to real cross-database data
- P3.11: Wire InlineDatabase TipTap extension to engine
- P3.12: Wire LinkedDatabaseView to engine
- P4.1: Implement graph builder (scan pages, extract links, build GraphData)
- P4.2: Wire KnowledgeGraph component into app shell
- P4.3: Implement backlinks panel
- P4.4: Support [[wiki-links]] in editor and parser
- P4.5: Verify graph filters with real data
- P4.6: Verify graph time-lapse with real page dates
- P4.7: Wire template engine to StorageBackend
- P4.8: Add template gallery UI to app shell
- P4.9: "Save as template" action
- P5.1: Wire GitHub OAuth into app
- P5.2: Wire RepoPicker component
- P5.3: Wire auto-commit engine to app
- P5.4: Wire sync engine (pull/push cycle)
- P5.5: Wire HistoryViewer into page context menu
- P5.6: Wire ConflictResolver UI to merge engine
- P5.7: Implement concrete Yjs binding (y-prosemirror for TipTap)
- P5.8: Create signaling server entry point (Bun.serve + RoomManager)
- P5.9: Wire AvatarStack and CursorOverlay to Yjs awareness
- P5.10: Wire OfflineQueue to sync engine reconnect
- P5.11: Signaling server Dockerfile and self-hosting docs
- P6.1: Create Electron main process with BrowserWindow
- P6.2: Wire native "Open Folder" dialog to LocalFsBackend
- P6.3: Test Electron packaging
- P6.4: Evaluate Electrobun, implement or fall back
- P6.5: Wire system tray, deep linking, auto-updater
- P6.6: Create Capacitor project
- P6.7: Test Capacitor iOS + Android builds
- P6.8: Mobile-specific UI polish
- P7.1: Drag-and-drop page reordering (real persistence)
- P7.2: Page cover images
- P7.3: Page icons (emoji picker + custom upload)
- P7.4: Undo/redo with proper history stack
- P7.5: Keyboard shortcut customization
- P7.6: Theming (custom colors, fonts)
- P7.7: Plugin system architecture — extension API, lifecycle hooks, sandboxed execution
- P7.7a: Community plugin registry — discovery, installation, versioning, and trust/verification
- P7.7b: Community editor extensions — custom TipTap nodes, slash commands, and block types via plugins
- P7.7c: Plugin SDK and developer documentation — templates, examples, testing harness. Use the Mermaid extension (
packages/ui/src/components/editor/extensions/mermaid.ts) as the canonical reference implementation: it demonstrates a custom TipTap node with attributes, renderHTML, slash command registration, and E2E test coverage - P7.8: API documentation
- P7.9: Sentry integration — error tracking, performance monitoring, session replay (opt-in)
- P7.10: Analytics — privacy-respecting usage analytics (opt-in, no PII)
- P7.11: Feature gates — local + remote feature flag system for gradual rollout
- P8.1: MCP server — CRUD pages/databases, search
- P8.2: MCP resources — page content, schemas, metadata
- P8.3: MCP prompts — common task prompts
- P8.4: GitHub Pages renderer — pre-built JS bundle
- P8.5: Embeddable script tag for static rendering
- P8.6: SEO-friendly server-rendered output
- P8.7: Custom domain support