Dashboard sync finalizer. Reads ~/Tandem/stats.json and ~/Tandem/tasks/kanban.md, recomputes all statistics, and writes the JSON block in ~/Tandem/dashboard.html. Triggers when user says "sync dashboard", "update dashboard", "refresh stats", "sync my stats", "/sync", "update my numbers", "how are my stats". Also called by session-logger at session end. Do NOT activate for opening/viewing the dashboard without sync intent (just tell user to open dashboard.html), for stats about non-Tandem tools, or for editing dashboard layout/design (that's manual HTML work).
From tandemnpx claudepluginhub binatrixai/tandem-marketplace --plugin tandemThis skill is limited to using the following tools:
evals/evals.jsonreferences/stats-schema.mdreferences/sync-algorithm.mdDispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
Read source data files and rebuild the dashboard statistics in ~/Tandem/dashboard.html.
For the stats.json schema, see ${CLAUDE_SKILL_DIR}/references/stats-schema.md.
For the full rebuild algorithm, see ${CLAUDE_SKILL_DIR}/references/sync-algorithm.md.
For the dashboard JSON schema, see tandem-skills/core/dashboard/references/DASHBOARD-GUIDE.md.
| Source | Path | Provides |
|---|---|---|
| Activity log | ~/Tandem/stats.json | Email, document, task, research, meeting counts + timestamps |
| Task board | ~/Tandem/tasks/kanban.md | Task column counts (To Do, In Progress, Done) |
| Dashboard | ~/Tandem/dashboard.html | Current JSON to preserve (user, connectors, etc.) |
Read ~/Tandem/stats.json. If it does not exist, create it as [] and report "No activity recorded yet — dashboard will show zeros."
Read ~/Tandem/tasks/kanban.md. If it does not exist, skip task counts (use zeros).
Follow the algorithm in ${CLAUDE_SKILL_DIR}/references/sync-algorithm.md:
meeting-prep and meeting-debrief type entriesRead the current ~/Tandem/dashboard.html and parse the existing JSON from <script id="tandem-data" type="application/json">.
Preserve these fields from existing JSON unchanged: user, weeklyStats, quickActions, connectors, mondayWidget, scheduledTasks, suggestions.
Replace these fields with recomputed values: stats (all sub-fields), recentActivity, meetings (meetingsPrepared + meetingsDebriefed), lastUpdated, lastUpdatedISO, lastSession.
Write the complete updated JSON block back into dashboard.html using the Edit tool.
After sync, report a brief summary:
| Action | Minutes per unit |
|---|---|
| Email triaged | 5 |
| Document created | 30 |
| Task operation | 5 |
| Research session | 45 |
| Daily plan/briefing | 15 |
These are used by skills when appending to stats.json, NOT by /sync itself. /sync reads the pre-computed timeSavedMinutes from each entry.
[], continue with zeros