diff --git a/.claude/skills/pql-board/SKILL.md b/.claude/skills/pql-board/SKILL.md index ae73d33ba..bf5aff017 100644 --- a/.claude/skills/pql-board/SKILL.md +++ b/.claude/skills/pql-board/SKILL.md @@ -1,10 +1,12 @@ --- name: pql-board description: > - Refresh (or first-create) the pql ticket-board Artifact — the clide-style - two-column board snapshot hosted at a stable claude.ai URL. Use when the user - says "refresh the board", "update the pql board", "/pql-board", or asks to see - the ticket board in the desktop app. + Two board surfaces for pql in the Claude desktop app: (1) refresh (or + first-create) the ticket-board Artifact — the clide-style two-column snapshot + at a stable claude.ai URL; (2) render an interactive in-chat board panel with + one-click ticket pick-up (sendPrompt). Use when the user says "refresh the + board", "update the pql board", "/pql-board", "board panel", "pick-up panel", + or asks to see/act on the ticket board in the desktop app. --- # pql Board Artifact @@ -54,6 +56,40 @@ so the page is a **snapshot** — this skill regenerates and redeploys it. editing. Dep edges cover non-terminal tickets only — if pql grows `ticket list --with-blockers`, simplify the script (candidate upstream FR per the pql-gaps-go-upstream rule). -- Companion interaction surface: the visualize widget (`show_widget`) supports - `sendPrompt()` — for in-chat quick actions (refresh button, WIP strip); see - the session pattern, not this skill. +## Interactive panel (in-chat, one-click pick-up) + +The artifact is reference-only (sandboxed: clipboard-out is its ceiling). +Real one-click interactivity lives in the in-chat widget — render it when the +user asks for "the panel", "pick-up panel", or wants to act on tickets rather +than read them. + +1. Pull live data (small, native projections — never embed the whole store): + + ```bash + pql ticket list --status in_progress --fields id,type,priority,title + pql ticket list --under T-750 --unblocked --leaf --fields id,type,priority,title + ``` + + Panel contents: WIP + the unblocked ready work of the active phase (cap at + ~10 rows; if more, take highest priority first and say so under the panel). + +2. Render with `mcp__visualize__show_widget` (load its `read_me` first, + `interactive` module). Panel shape — compact bordered rows, CDS tokens: + - Each row: mono ticket id (link to the artifact deep-link `#T-NNN`), + title, status/priority pill, and two buttons: + - **Pick up ↗** → `sendPrompt('pick up the following ticket: T-NNN —