teamcraft:work-board
Launch (or re-launch) the user's live, multi-project work board. The dashboard is a single HTML file copied to a stable user-side location at ~/.claude/teamcraft-board.html and opened in the user's default browser. It has two views via a header toggle — a drag-and-drop Kanban Board and a live Status tab with analytics (work by status, throughput, cycle time, aging, blocked chains, recomputed on every poll). Each project is added via a header dropdown; the dashboard polls each project's .teamcraft/work directly from the browser and updates in real time. Use when the user says 'show me the kanban', 'work board', 'open the board', 'board view', 'kanban view', 'live dashboard', 'visual dashboard', 'live status dashboard', 'status dashboard', 'project metrics', 'throughput/cycle-time view', 'HTML view of work items', 'drag-and-drop board', or asks to see/move/track work visually.
What this skill does
## Goal
Make the dashboard usable immediately on invocation. Two things happen, every single time:
1. **Refresh the dashboard at a stable user-side path.** Copy `${CLAUDE_PLUGIN_ROOT}/skills/work-board/dashboard.html` to `~/.claude/teamcraft-board.html`, overwriting unconditionally. The stable path is what keeps the user's browser-side state (IndexedDB project handles) persistent across plugin upgrades — the plugin-cache path includes the version segment, which would otherwise blow away saved projects on every update.
2. **Launch the dashboard, and always print the URL.** Auto-launch the file in the user's default browser using whatever mechanism is available in the current environment. Always print the `file://` URL too — that's the universal fallback and the link the user bookmarks once for one-click future access.
The dashboard handles everything else: a **Board / Status view toggle** in the header (Status is a live analytics view — work by status, throughput, cycle time, aging alerts, blocked chains, recomputed on every poll, with no tokens and no regeneration step), a dropdown for adding/switching/removing projects, polling each project's `.teamcraft/work/` for changes, drag-and-drop with copy-as-prompt round-trip, and click-card-for-detail with relationship visualization. The Status tab is the live counterpart to the in-session `/project-status` text read.
## What to Do
**1. Copy the dashboard to a stable location.** Source: `${CLAUDE_PLUGIN_ROOT}/skills/work-board/dashboard.html`. Destination: `~/.claude/teamcraft-board.html`. Always overwrite. If `~/.claude/` doesn't exist, create it.
**2. Launch the dashboard.** Don't ask permission — running this skill *is* the request to launch. Use whatever mechanism actually works in the current environment:
- macOS: `open ~/.claude/teamcraft-board.html`
- Linux: `xdg-open ~/.claude/teamcraft-board.html`
- Windows: `start "" "%USERPROFILE%\.claude\teamcraft-board.html"`
- Claude Cowork / headless / any environment where shell-based browser launching isn't available: skip the launch attempt silently and rely on step 3
If the launch command exits non-zero, don't error — just note "couldn't auto-launch in this environment" and continue.
**3. Always print the `file://` URL.** Form it as `file://<absolute-path>` and print it as the final line. Most terminals render it clickable. This is the universal fallback when auto-launch isn't possible, and the durable link the user can bookmark once for direct future access — no Claude needed.
**4. On the user's first run only, briefly tell them what to do:** click the project name in the header → "Add a project…" → pick the project's `.teamcraft/` folder → grant read access. The browser remembers each added project; subsequent runs of this skill just re-launch the same dashboard. The user can add as many projects as they want and toggle between them from the dropdown.
## Constraints
- **Always copy.** Plugin upgrades must flow through; never skip the copy on the assumption that the file exists.
- **Always try to launch.** Auto-launch is the default — never gate it behind a confirmation question.
- **Always print the URL.** Even if auto-launch succeeded. The URL is the bookmarkable handle.
- **Write only `~/.claude/teamcraft-board.html`.** That's the single managed artifact this skill produces. No regeneration step, no per-project state files, no other side effects on the filesystem. Project state lives in the browser's IndexedDB.
- **Don't run scripts to build the dashboard.** The bundled HTML is the dashboard. Plugin updates replace it; this skill just copies and launches.
Related in Web Dev
generating-lwc-components
IncludedLightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use generating-apex), Aura components, or Visualforce.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Set up queries with useQuery, mutations with useMutation, configure QueryClient caching strategies, implement optimistic updates, and handle infinite scroll with useInfiniteQuery. Use when: setting up data fetching in React projects, migrating from v4 to v5, or fixing object syntax required errors, query callbacks removed issues, cacheTime renamed to gcTime, isPending vs isLoading confusion, keepPreviousData removed problems.
document-processor-api
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
nutrient-document-processing
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Covers useMutationState, simplified optimistic updates, throwOnError, network mode (offline/PWA), and infiniteQueryOptions. Use when setting up data fetching, fixing v4→v5 migration errors (object syntax, gcTime, isPending, keepPreviousData), or debugging SSR/hydration issues with streaming server components.
accelint-nextjs-best-practices
IncludedNext.js performance optimization and best practices. Use when writing Next.js code (App Router or Pages Router); implementing Server Components, Server Actions, or API routes; optimizing RSC serialization, data fetching, or server-side rendering; reviewing Next.js code for performance issues; fixing authentication in Server Actions; or implementing Suspense boundaries, parallel data fetching, or request deduplication.