Skip to content

t1k:plans-kanban

FieldValue
Modulet1k-base
Version3.6.6
Effortlow
Tools—

Keywords: dashboard, kanban, phase progress, plan status, plans overview, timeline

/t1k:plans-kanban
[plans-dir]

Renders every plan under a plans/ root as a kanban-style board grouped by status, using the already-shipped data layer — no scanning or parsing logic lives in this skill. Built-in, no delegation needed.

Terminal window
node .claude/scripts/plan-scanner.cjs [plans-dir] # default: ./plans

Prints a JSON array of plan objects to stdout, already sorted by lastModified descending. Each object: id, name, path, phases ({total, completed, inProgress, pending, percentage}), progress, lastModified, status (pending/in-progress/in-review/completed/ cancelled), createdDate, completedDate, durationDays, durationFormatted, totalEffortHours, totalEffortFormatted, priority, issue, branch, description, tags, assignee, title.

scanPlans(), generateTimelineStats(plans), and generateActivityHeatmap(plans) are also requirable directly from .claude/scripts/plan-scanner.cjs for a programmatic call instead of the CLI form — same data, no parsing duplicated either way.

  1. Scan — run the CLI form above against the requested plans-dir argument (default plans). Treat a non-existent directory or an empty array as “no plans found” — report it plainly, don’t error.
  2. Group — bucket the returned array by status into five columns, in this fixed order: in-progress, in-review, pending, completed, cancelled. Skip an empty column rather than rendering a header with nothing under it.
  3. Render — one line per plan under its column: name (progress% — phases.completed/phases.total phases), plus priority/issue/ assignee inline when present (omit a field that’s null, don’t print the literal null).
  4. Timeline — call generateTimelineStats(plans) and surface its summary fields (total/completed/active/pending counts, average duration, total and completed effort hours, this-week/this-month completions).
  5. Activity (optional, on request or when the board itself is small enough that a heatmap adds signal) — call generateActivityHeatmap(plans) and render its 12-week series as a compact sparkline-style row, not a full chart.
## Plans Kanban — {plans-dir}
### In Progress ({n})
- {name} ({progress}% — {completed}/{total} phases)
### In Review ({n})
- {name} ({progress}% — {completed}/{total} phases)
### Pending ({n})
- {name} ({progress}% — {completed}/{total} phases)
### Completed ({n})
- {name} — {durationFormatted}
### Cancelled ({n})
- {name}
### Timeline
- Total: {totalPlans} · Completed: {completedPlans} · Active: {activePlans} · Pending: {pendingPlans}
- Avg duration: {avgDurationDays}d · Effort: {completedEffortHours}/{totalEffortHours}h
- This week: {thisWeekCompleted} completed · This month: {thisMonthCompleted} completed

Read-only. Never writes to a plan file, never changes a plan’s status — that’s t1k-project-manager’s job during phase execution. This skill only renders what’s already on disk.

  • t1k-plan — creates the plans this skill visualizes.
  • t1k-project-manager — phase coordination and status transitions during execution.
  • t1k-watzup — session-level summary; this skill is plans-only, cross-session.