skills/jira-sprint-dashboard-canvas/SKILL.md
Create a visual Jira sprint dashboard from Jira project, space, sprint, board, filter, JQL, work item keys, or Jira URL data. Use when the user asks for a Jira sprint dashboard, standup dashboard, sprint review, delivery review, engineering manager dashboard, WIP review, planning view, closeout view, or a visual snapshot of Jira work that is more useful than a flat report. Use the richest dashboard format supported by the current agent, such as Cursor Canvas, an interactive artifact, HTML, or Markdown.
npx skillsauth add atlassian/atlassian-mcp-server jira-sprint-dashboardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Build a focused dashboard that helps an engineering manager, tech lead, or senior engineer see current Jira work quickly enough to decide what needs attention. The output is a dashboard, not a prose report and not a generic health score.
This skill is read-only by default. Do not create, update, transition, assign, or comment on Jira work items unless the user explicitly asks for a write action after reviewing the dashboard.
Use the richest dashboard renderer supported by the current environment. The dashboard content, claims, counts, and source appendix must stay consistent across renderers; only the presentation changes.
Choose the renderer in this order:
Do not mention that Cursor Canvas is unavailable unless the user specifically asked for Cursor Canvas. If the user asked for a dashboard generally, use the best available renderer without apologizing for the environment.
Use this section only when running in Cursor with Canvas support.
Read ~/.cursor/skills-cursor/canvas/SKILL.md before writing canvas code. If
you need exact exports or prop shapes, read the files in
~/.cursor/skills-cursor/canvas/sdk/.
Canvas constraints:
.canvas.tsx file in the Cursor canvases directory.cursor/canvas. Do not import react, CSSProperties,
JSX, Atlaskit, or other packages.Stack, Grid, Card, Stat, Table,
Pill, Callout, UsageBar, BarChart, LineChart, PieChart, and Code
over raw HTML.useHostTheme() for custom styles. Do not hardcode hex colors, gradients,
box shadows, ADS variables, unsupported CSS frameworks, or @atlaskit/*.Use this section when Cursor Canvas is unavailable.
For an interactive artifact renderer:
For static HTML:
For Markdown:
For JSON fallback:
Do not guess the Jira scope. If the user does not provide a project key, space key, board, sprint, filter, JQL, work item keys, or Jira URL, stop and ask for one. A dashboard from a random visible project or guessed team context is worse than no dashboard.
If the user gives a project or space key but no sprint, board, or filter, start
with the Jira JQL project field and the user's key:
project = "SPACE_KEY" AND sprint in openSprints() ORDER BY Rank ASC
If the open sprint result is empty, stale, or misleading, switch to snapshot mode and say so in a compact caveat below the top bar:
project = "SPACE_KEY" AND statusCategory != Done ORDER BY priority DESC, updated ASC
project = "SPACE_KEY" AND updated >= -60d ORDER BY updated DESC
Use a 60-day recent movement window by default unless the user asks for another period.
Use read-only Jira search. Request only fields needed for the dashboard and tolerate missing fields.
Useful fields: key, summary, status, statusCategory, assignee,
priority, issuetype, created, updated, resolutiondate, duedate,
parent, issuelinks, labels, components, fixVersions, sprint, and any
available estimate/story point field.
Start with maxResults: 100. For complete sprint, board, or filter dashboards,
paginate until the scope is complete or too large for useful work-item-level
rendering.
Default to one complete paginated scope query. Derive ordinary dashboard signals locally from the returned work item set instead of issuing separate JQL calls for each signal.
Derive these locally when the scope query returned the required fields:
statusCategory = Done and resolutiondate.statusCategory != Done and updated.statusCategory != Done and empty assignee.statusCategory != Done and priority.status, statusCategory, and labels.Use targeted follow-up queries only when they are needed to support a visible claim that cannot be derived safely from the scope data, when the scope is too large for useful local processing, or when the user asks for an audit-style dashboard with exact evidence per signal.
Rule of thumb:
Examples of targeted follow-up queries, only when justified:
<scope> AND statusCategory = Done ORDER BY resolutiondate DESC<scope> AND statusCategory != Done AND updated <= -3d ORDER BY updated ASC<scope> AND statusCategory != Done AND assignee is EMPTY ORDER BY priority DESC, updated ASC<scope> AND statusCategory != Done AND priority in (Highest, High) ORDER BY priority DESC, updated ASC<scope> AND statusCategory != Done AND (status = Blocked OR text ~ "blocked" OR labels in (blocked, blocker)) ORDER BY priority DESC, updated ASCDo not make negative claims such as "no blockers" or "no dependencies" unless the source appendix shows the query or returned field coverage that supports the claim. If only status and labels were checked for blockers, say that no status/label blockers were found rather than claiming there are no blockers. If a signal was not checked, say so.
For derived signals, cite the base scope JQL and field coverage in the source appendix instead of inventing separate support queries. Include additional JQL only for targeted follow-up queries that were actually run.
For work item links (issuelinks), fetch linked work item status/category when
possible. If linked details are unavailable, show dependency status as unknown
rather than resolved.
Before designing the output, create a compact renderer-independent work item model with:
Unassignedactive, inactive, unknown, or unassignedDerived signals should stay explainable from Jira facts: done, active, not started, stale, very stale, blocked, unowned, inactive owner, time-sensitive, support-impacting, cross-space dependency, and missing planning data. Mark weak text-only signals as inferred.
Create a dashboard model before rendering. Every renderer should use this same model.
Include:
Needs attention.Do not invent data to fill the model. Empty or unsupported sections should be omitted.
Keep the visible dashboard simple and deterministic. When the data exists, broadly follow this order:
Compact context header
Four-stat top bar
Needs attention should combine the highest-signal risks: blocked, stale,
unassigned, time-sensitive, or unresolved linked work.Scope caveat, only when needed
Capacity or commitment bar
Sprint charts
Owner load and gaps
Risk and attention
Highest-priority work item table
Recently completed and optional detail
Source appendix
Needs attention at the bottom.If the full data set is unavailable, preserve the same broad order and omit the sections or charts that cannot be rendered honestly.
success for done,
warning for stale/deadline risk, danger for blocked/overdue/severe risk,
info for caveats/linked work, and neutral for low-signal facts.For Cursor Canvas:
For interactive artifacts or static HTML:
For Markdown:
Before returning:
cursor/canvas.development
Intelligently triage bug reports and error messages by searching for duplicates in Jira and offering to create new issues or add comments to existing ones. When an agent needs to: (1) Triage a bug report or error message, (2) Check if an issue is a duplicate, (3) Find similar past issues, (4) Create a new bug ticket with proper context, or (5) Add information to an existing ticket. Searches Jira for similar issues, identifies duplicates, checks fix history, and helps create well-structured bug reports.
testing
Automatically convert Confluence specification documents into structured Jira backlogs with Epics and implementation tickets. When an agent needs to: (1) Create Jira tickets from a Confluence page, (2) Generate a backlog from a specification, (3) Break down a spec into implementation tasks, or (4) Convert requirements into Jira issues. Handles reading Confluence pages, analyzing specifications, creating Epics with proper structure, and generating detailed implementation tickets linked to the Epic.
development
Search across company knowledge bases (Confluence, Jira, internal docs) to find and explain internal concepts, processes, and technical details. When an agent needs to: (1) Find or search for information about systems, terminology, processes, deployment, authentication, infrastructure, architecture, or technical concepts, (2) Search internal documentation, knowledge base, company docs, or our docs, (3) Explain what something is, how it works, or look up information, or (4) Synthesize information from multiple sources. Searches in parallel and provides cited answers.
development
Generate project status reports from Jira issues and publish to Confluence. When an agent needs to: (1) Create a status report for a project, (2) Summarize project progress or updates, (3) Generate weekly/daily reports from Jira, (4) Publish status summaries to Confluence, or (5) Analyze project blockers and completion. Queries Jira issues, categorizes by status/priority, and creates formatted reports for delivery managers and executives.