Changelog
All notable changes to AI Operations Dashboard will be documented in this file. The format follows Keep a Changelog and the project adheres to Semantic Versioning.
[Unreleased]
Added
- Sprints panel (
id: sprints) โ a dedicated sprint-progress board, split out of the Plan panel. The Plan tab is now roadmap-only (roadmap + sub-task ledger + decision log); the sprint board lives on its own tab. Brings the built-in panel count to 12: Overview, Plan, Sprints, Activity, Pending, Log, Postmortems, Usage, Scheduled Jobs, Repos, Docs, Skills. - In-app `/help` page โ the dashboard's own product guides now render in-app at
/help(index) and/help/<slug>. Root docs (HANDBOOK, USAGE, AGENTS, README, CHANGELOG) are reachable at/help/<slug>too. A footer link "AI Operations Dashboard docs" โ/helpwas added.
Changed
- Schedule โ Scheduled Jobs โ the tab/panel label is renamed "Scheduled Jobs". The panel
idstaysscheduled, the data filedata/scheduled-jobs.jsonand the job names are unchanged. - Product guides moved `docs/` โ `help/` โ the 9 product guides (getting-started, configuration, panels, custom-tabs, data-schemas, connecting-repos, deployment, upgrading, faq) now live in
help/and serve at/help. The operator's owndocs/(operator-log.md excluded) now drives the Docs tab; in this product repo it is empty by default. - Doc-page layout โ widened and left-aligned for more comfortable long-form reading.
The "custom tabs + Skills" release. v0.3 gave the dashboard a multi-repo surface; v0.4 makes the panel set itself extensible. Five panel archetypes, a generic CLI dispatcher, a visual /admin/add-tab wizard, a Claude-only Skills inventory panel, and a dashboard-level CLAUDE.md that orients every new Claude Code session before it does anything else.
Added
- 5 panel archetypes โ
list,timeline,metrics,folder,rest. Each lives underlib/panels/archetypes/<name>/and ships with a loader, a default Component, a JSON schema, and a verb set (listโadd | edit | close | remove;timelineโappend;metricsโrecord;folderโnew;restโrefresh). All custom panels are scaffolded from one of these โ no bespoke per-panel handlers. - `/admin/add-tab` visual wizard โ archetype โ slug โ label โ fields โ AI allow-list โ review. On commit writes the panel component, appends the import + registration to
ai-ops-dashboard.config.ts, registers the entry in.ai-ops-dashboard/manifest.json -> customPanels[], and seeds the data file. Idempotent on re-run. - `npx ai-ops-dashboard panel add` CLI โ same flow, no browser. Interactive or non-interactive via
--fields name:type:requiredsyntax. - Generic CLI dispatcher โ
npx ai-ops-dashboard <slug> <verb>looks the slug up incustomPanels[], finds the archetype, validates the verb againstaiAllowedTasks, delegates to the matching archetype handler. Falls back to the existing top-level subcommands (log,pending,postmortem, etc.) when the slug isn't a custom panel. - Skills inventory panel (
components/panels/skills-panel.tsx) โ Claude Code only, opt-in viaai.includeSkillsInventory: true. Read-only scan of~/.claude/skills,~/.claude/agents,~/.claude/plugins, and declared MCP servers. Review mode exports the selection to~/Downloads/ai-ops-dashboard-skills-inventory-<timestamp>.{json,md}. Silently drops out of the tab strip when~/.claude/doesn't exist at render time. - Dashboard-level `CLAUDE.md` โ top-level orientation file. Short pointer to
AGENTS.md, must-read trio, canonical commands list, conventions cheatsheet. Auto-loaded by Claude Code at session boot. - `docs/custom-tabs.md` โ full archetype reference: shape per archetype, verb set, JSON schema, field-type table, allow-list conventions, debugging tips.
- HANDBOOK Days 5 + 6 โ Day 5: scaffold a custom panel end-to-end. Day 6: enable + read + export the Skills inventory.
- AGENTS.md ยง v0.4 โ contract for custom panels (the 5 archetypes, the
customPanels[]schema, the registration triple, the dispatcher) and the Skills inventory panel (Claude-only gating, Review mode, the hard rule against AI-initiated deletions of~/.claude/*). - `skills/ai-ops-dashboard-operator/SKILL.md` ยง 7 intent triggers โ natural-language phrases mapped to recipes: "add a custom tab" โ
.ai-ops-dashboard/recipes/add-custom-tab.md; "show me my Claude installations" / "remove these skills" โ.ai-ops-dashboard/recipes/skills-inventory.md. - `ArchetypeName` + `CustomPanelEntry` exported types in
lib/panels/types.ts. - `ai.includeSkillsInventory` optional field on
AiOpsDashboardConfig. - Footer "Add a tab" link โ
components/dashboard/footer.tsxgains a one-click entry into the wizard.
Changed
ai-ops-dashboard.config.tsnow declares theaiobject as a local before the config literal so the panels array can referenceai.includeSkillsInventorywithout a self-referential lookup. Skills panel imported + conditionally registered.scripts/refresh-manifest.mjsnow extractscustomPanels[]from the.ai-ops-dashboard/custom-panels.jsonsidecar (written by the scaffolder), cross-checks againstai-ops-dashboard.config.tsfor registration drift (emitsregistered: falseon orphans), and emits askillsEnabledboolean derived from the config. Manifest schema URL bumped tomanifest-0.4.json.aiOpsDashboardVersionin the emitted manifest pinned to0.4.0.- README roadmap: v0.4 marked shipped; v0.5 absorbs the static-export + SSE + Hosted Studio bundle that was on the v0.4 line; v0.6 broadens to "panel + archetype marketplace".
Not changed
- All v0.3 connected-repo wiring works unchanged. Custom panels can be created from inside any connected repo via the same CLI dispatcher.
- The 9 templates from v0.2 install cleanly. The Skills panel stays off by default โ existing installs see no surprise tab.
[0.3.0] โ 2026-06-02
The "one dashboard, many repos" release. v0.2 made it trivial to wire ONE repo into a dashboard; v0.3 turns the dashboard into a true multi-repo hub. New CLI, new customer-repo kit, new wizard step, new panel, new aggregation โ all backwards-compatible with v0.2 installs.
Added
- `ai-ops-dashboard` CLI (
cli/ai-ops-dashboard.mjs, exposed via theai-ops-dashboardbin) โ Node CLI for the customer-repo side. Subcommands:init(create.ai-ops-dashboard-client/kit + register repo with dashboard),link(re-issue write token),log(append operator-log entry),pending add | close,postmortem(write a new postmortem file),status(show dashboard wiring),refresh(re-fingerprint tokens). All writes atomic via.tmp+ rename. Token-bound againstdata/connected-repos.json. - Customer-repo kit โ
.ai-ops-dashboard-client/directory thatai-ops-dashboard initdrops into a connected repo:config.json(dashboard path, repo id, write token, emit-signals allowlist),AGENTS.md(Claude Code briefing for sessions in that repo),README.md(human summary),.gitignore(keeps the write token out of git). Schema versioned0.3. - `/setup/connect` wizard step โ new step 7 (web + CLI). Captures
connectedRepos(absolute paths, one per line),runInit(whether to shellai-ops-dashboard initper path), anddefaultEmitSignals(per-repo signal allowlist). Wired throughapp/api/setup/route.tsโlib/setup/apply.tsso both wizards converge on the same applier. - `SetupAnswers.connectedRepos / runInit / defaultEmitSignals` โ new fields on the wizard payload. The apply step validates each path, optionally spawns
ai-ops-dashboard init, and falls back to registering a stub row indata/connected-repos.jsonwhenrunInitis off. - `/repos` panel (
components/panels/repos-panel.tsx) โ renders every row indata/connected-repos.jsonwith last-write timestamp, write count, emit-signals chips, andpendingInit: truewarnings for stub registrations awaiting their firstai-ops-dashboard init. Registered in the defaultai-ops-dashboard.config.ts. - Multi-repo Activity aggregation โ the Activity panel folds external commits from each connected repo's
commitsSnapshotPathinto the heat map alongside the dashboard's own git log. - `docs/connecting-repos.md` โ full SOP: per-repo setup (wizard vs CLI), one-time Claude Code briefing prompt, troubleshooting (token mismatch, dashboard path moved, multiple machines), schema reference for
data/connected-repos.json. - AGENTS.md + `skills/ai-ops-dashboard-operator/SKILL.md` updates โ top-level AGENTS.md now references the multi-repo contract; SKILL.md documents the CLI subcommands as the canonical write interface so Claude Code reaches for
npx ai-ops-dashboard loginstead of hand-editing JSON.
Changed
- Setup wizard step count bumped from 6 โ 7 (Welcome โ Branding โ Template โ Panels โ Data โ AI โ Connect โ Review). Layout progress strip already supported 7 dots; the new step slots in between AI and Review without breaking deep links.
lib/setup/apply.{ts,mjs}SETUP_VERSIONconstant bumped to0.3. Existing v0.2 installs continue to read fine โ the new fields are optional and default to no-op.- README roadmap re-numbered (the previous "v0.3 โ Hosted Studio" entry shifts to v0.5; the previous "v0.4 โ Marketplace" shifts to v0.6).
- Setup layout footer now reads
AI Operations Dashboard v0.3 โ first-run setup.
Not changed
- All v0.2 templates still install cleanly. The Connect step is opt-in โ leaving it blank produces a single-repo dashboard identical to v0.2.
- v0.2 dashboards upgrade to v0.3 by pulling the new code;
data/connected-repos.jsonis created lazily on first wire-up.
[0.2.0] โ 2026-05-23
The "wires itself up" release. v0.1 sold a dashboard you had to configure by hand; v0.2 ships an interactive wizard, a richer template library, AI-agent integration, and a schema validator so buyers go from npm install to "my dashboard, my data" in under 5 minutes.
Added
- `npm run setup` โ interactive CLI wizard (and matching
/setupweb route) that walks through product naming, theme pick, template selection, data seeding, optional AI-agent integration, and final review. FlipssetupComplete: trueon commit. Replaces the manual "edit ai-ops-dashboard.config.ts then read USAGE.md sections 4โ6" path. - 9 starter templates under
templates/(up from 3 example configs): AI project tracker, indie SaaS ops, personal OS, content publication ops, agency client tracker, open-source maintainer, research lab, freelance pipeline, dev journal. Each is a fullai-ops-dashboard.config.ts+ seeded data files for that persona. - HANDBOOK.md โ new top-level "how AI Operations Dashboard thinks" doc. Mental model first, code references second. README + USAGE both link to it.
- AI-agent integration โ new optional
aifield onAiOpsDashboardConfig({ enabled, lastRefreshedAt?, allowedTasks? }). When enabled, the wizard generatesAGENTS.md+.ai-ops-dashboard/manifest.json+ theai-ops-dashboard-operatorSKILL + a starter recipe library in.ai-ops-dashboard/recipes/so any AI coding agent (Claude Code, Cursor, Aider) can read + write the dashboard's data files without re-discovering paths every session. - Schema validator โ
npm run check:datavalidates every data file against its declaredPanelSource.schema. Wired intoprebuildso deploys block on malformed JSON / missing required fields. - Manifest refresh script โ
npm run manifest:refreshrebuilds.ai-ops-dashboard/manifest.jsonfrom current panelsources[]declarations. Use after adding a new panel or changing a source path. - `AiOpsDashboardConfig.setupComplete` + `setupVersion` fields โ drive the wizard gate. When
setupComplete: false, the dashboard short-circuits to/setup.setupVersionenables future "complete the new wizard steps" migration prompts without forcing a full re-onboarding. - `PanelSource.schema` field โ free-form type hint used by the manifest + the operator SKILL to validate writes before commit.
Changed
- README Quick start is now 3 steps (
npm installโnpm run setupโnpm run dev) instead of 2. - USAGE.md leads with a v0.2 Quick start callout pointing at HANDBOOK.md and
npm run setupbefore the long-form walkthrough. ai-ops-dashboard.config.tsships withsetupComplete: falseso a fresh clone gates into the wizard on firstnpm run dev.
Removed
examples/directory โ superseded by the richertemplates/library + the wizard's template picker. Migration: every config previously inexamples/exists as a template under the same persona name.
[0.1.0] โ 2026-05-18
Initial public release.
Added
- Next.js 16 + Tailwind 4 base
- Plugin-based panel architecture (
PanelDefinitionAPI) - 8 built-in panels: Overview, Plan, Activity, Pending, Log, Postmortems, Usage, Schedule
- 4 data-source adapters:
readJson,readMarkdown,walkMarkdown,readGitLog,fetchJson - 3 themes: dark (default), warm, paper
- 3 deploy modes via
AI_OPS_DASHBOARD_MODEenv var: vercel (SSR), static (export), node - AI spend watchdog banner with configurable yellow/red thresholds
- Generator scripts:
freeze-commits.mjs,aggregate-usage.mjs,build-data.mjs,new-panel.mjs,watch-data.mjs - 3 example configs:
ai-project-tracker,indie-product-ops,personal-os - Documentation: getting-started, configuration, panels, deployment, upgrading, FAQ
- Sales materials: landing page, one-pager, headline variations, launch thread
- Interactive HTML pitch deck (15 slides)