Story: Agile dashboard PoC: JavaScript UI over org-mode data

Table of Contents

This page documents a story in Sprint 20. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Determine whether a lightweight, read-only JavaScript agile dashboard is feasible for this project: a single-page application that parses org-mode files (and optionally the knowledge-graph SQLite database) to render sprints, stories, and tasks in an interactive kanban/list view. The deliverable is a PoC that can be served from GitHub Pages and run locally without a backend.

Status

Field Value
State DONE
Parent sprint Sprint 20
Now Nothing.
Waiting on Nothing.
Next Nothing — follow-ups live in the backlog.
Last touched 2026-06-06

Acceptance

  • A PoC page loads in a browser (GitHub Pages URL and file:// / local dev server) and displays the current sprint with its stories and tasks.
  • Clicking a story expands its details (goal, status, acceptance).
  • Data is sourced exclusively from checked-in org files and/or the knowledge-graph database; no additional backend is required.
  • A brief written assessment covers: feasibility, chosen libraries, known limitations, and a recommended path forward (or a clear "not worth it" verdict with rationale).

Tasks

Task State Start End Description
Scaffold story DONE 2026-06-06 2026-06-06 Create story, wire sprint table, open scaffold PR.
Research JS libraries and org-mode parsing DONE 2026-06-06 2026-06-07 Evaluate libraries; produce feasibility assessment.

Decisions

Project naming
The browser apps live in projects/ores.org-js/ — "dashboard" is owned by the ores-dashboard.el emacs mode, and the org parsing layer may be generalised beyond agile.
Fork org-roam-ui
Its static build moved from external/ to projects/ores.org-js/graph/; graph and agile deploy uniformly via ores-deploy-web-apps in the site build.
Single data artefact
The agile app reads graphdata.json — the existing org-roam db export that drives the graph — whose nodes carry the full raw org source. No manifest, no second data path; the org files remain the source of truth and the database remains the only intermediary.
No build step
Preact + htm and uniorg over ESM CDN — no bundler in the repo. uniorg (the parser family org-roam-ui uses) renders documents; a small tailored parser extracts the board model (states, tasks, epics) from our codegen-regular docs.
Charts
Hand-rolled SVG (burn-up, velocity, tasks-by-state) — no chart library for the PoC.

Out of scope

  • Any write or edit capability — this PoC is strictly read-only.
  • Real-time data sync or webhooks.
  • Authentication or access control.
  • Integration with external agile tools (Jira, Linear, etc.).

Emacs 29.1 (Org mode 9.6.6)