Files
IronPad-Docker/docs/ai-workflow/CHECKLIST.md

6.5 KiB
Raw Permalink Blame History

Ironpad — Implementation Checklist

This checklist tracks what is planned vs what is done, based on the PRD. It is the authoritative execution status for the project.


Phase 0 — Preparation (COMPLETED)

Repository & Tooling

  • Create project root structure
  • Initialize Rust backend (ironpad, edition 2021)
  • Add backend dependencies (Axum, Tokio, notify, git2, etc.)
  • Verify backend builds (cargo check)

Backend Scaffolding

  • Create routes/, services/, models/ modules
  • Create placeholder files for all planned backend components
  • Prepare WebSocket and file watcher modules

Data Layer

  • Create data/ directory structure
  • Create initial files (index.md, inbox.md)
  • Initialize data/ as its own Git repository

Project Meta

  • Create ai-context.md
  • Create implementation checklist

Phase 1 — MVP (COMPLETED)

Backend Core

  • Implement main.rs (Axum server bootstrap)
  • Dynamic port selection (30003010)
  • Auto-open system browser on startup
  • Serve static frontend files (production path)

Notes (CRUD)

  • List notes from filesystem
  • Read markdown file by ID
  • Create new note with auto-generated frontmatter
  • Update note with auto-save + timestamp update
  • Archive note on delete (move to data/archive/)

Frontmatter Automation

  • Parse/serialize frontmatter
  • Deterministic ID from path
  • Auto-manage created/updated timestamps
  • Preserve user-defined fields

Frontend (Basic)

  • Vue 3 + Vite setup
  • Note list sidebar
  • Note viewer/editor (textarea)
  • Create/archive note actions
  • Auto-save on edit

Phase 2 — Core Daily Driver (COMPLETED)

Real-Time Sync

  • File system watching (notify crate)
  • WebSocket server for real-time updates
  • External edit detection + UI notifications
  • Filter out own saves from notifications
  • Full-text search (ripgrep with fallback)
  • Search endpoint (GET /api/search?q=)
  • UI search integration (Ctrl+K)

Git Integration

  • Git status endpoint
  • Auto-commit (60-second batching)
  • Manual commit button
  • Git status indicator in UI

Projects

  • Project creation (folder + index.md + assets/)
  • List projects API
  • Project task file creation (tasks.md)

Tasks (Basic)

  • Task parsing from markdown checkboxes
  • Tasks API (list all tasks)
  • Task view in sidebar

Phase 3 — Full PRD Compliance (COMPLETED)

Projects & Tasks (Per PRD Section 7.2, 7.3)

  • Project-specific task endpoint (GET /api/projects/:id/tasks)
  • Task toggle endpoint (update checkbox state)
  • Add task via UI (append to tasks.md)
  • Task sections: Active, Completed, Backlog
  • Project task view at /projects/:id/tasks route

File Locking (Per PRD Section 7.7)

  • Backend tracks open files via WebSocket
  • File lock when Task View opens
  • Editor shows "Read-Only" if file locked
  • Auto-unlock when view closes

Daily Notes (Per PRD Section 6)

  • Create data/daily/ directory
  • Daily note endpoint (create/get today's note)
  • Daily note templates
  • Daily notes in sidebar

CodeMirror 6 Editor (Per PRD Section 9.3)

  • Install CodeMirror 6 dependencies
  • Replace textarea with CodeMirror
  • Markdown syntax highlighting
  • Line numbers
  • Keyboard shortcuts

Markdown Preview (Per PRD Section 5)

  • Split view (editor + preview)
  • Markdown-it rendering
  • CommonMark consistency

Assets API (Per PRD Section 8)

  • POST /api/assets/upload endpoint
  • GET /api/assets/:project/:file endpoint
  • Image upload UI in editor

Git Advanced (Per PRD Section 7.5)

  • Git conflict detection
  • Conflict warning banner in UI
  • POST /api/git/push endpoint
  • GET /api/git/conflicts endpoint

Frontend Architecture (Per PRD Section 14)

  • Vue Router for navigation
  • Pinia state management
  • Separate view components (NotesView, TasksView, ProjectView)
  • WebSocket composable

Phase 4 — Enhanced Task System (COMPLETED)

Dashboard

  • Cross-project dashboard as home page (/)
  • Project cards with active task counts and summaries
  • Click-through to project or task detail
  • Clickable "Ironpad" title navigates to dashboard

Tags

  • Tags field in task frontmatter (YAML sequence)
  • Backend parses/writes tags on task CRUD
  • Tag pills displayed on task list items
  • Tag filter bar — click to filter tasks by tag
  • Tag editor in task detail panel with autocomplete
  • projectTags computed getter for all unique tags in project

Subtasks

  • parent_id field in task frontmatter
  • Backend accepts parent_id on task creation
  • Task list groups subtasks under parent (indented)
  • Subtask count badge on parent tasks (completed/total)
  • Subtask panel in task detail with inline add
  • Subtasks clickable to view/edit

Recurring Tasks

  • recurrence and recurrence_interval fields in frontmatter
  • Backend auto-creates next instance on recurring task completion
  • Due date advanced by interval (daily/weekly/monthly/yearly)
  • Recurrence picker (dropdown) in task detail panel
  • Recurrence indicator on task list items

Calendar View

  • Month grid calendar at /calendar
  • Tasks with due dates plotted on day cells
  • Daily notes shown as blue dots
  • Color-coded urgency (overdue/today/soon)
  • Month navigation (prev/next) + Today button
  • Click task → navigate to detail, click date → daily note
  • Calendar link in sidebar navigation

Due Date

  • Inline date picker in task detail panel
  • Clear due date button
  • Due date display with color-coded urgency on task items

Phase 5 — Polish

  • UI polish and animations
  • Responsive sidebar
  • Better error handling/messages
  • Loading states

Phase 6 — Future / Optional

  • Global hotkey (Ctrl+Shift+Space)
  • System tray mode
  • Backlinks between notes
  • Graph view
  • Export (PDF / HTML)
  • Custom themes
  • Tantivy search (if >5000 notes)
  • Task dependencies (blocked by)
  • Time estimates on tasks
  • Calendar drag-and-drop rescheduling
  • Week/day calendar views

Rules

  • No item is marked complete unless it is implemented and verified.
  • New features must be added to this checklist before implementation.
  • If it's not on this list, it's out of scope.