mcpField
Q
qa-sprint-report-by-testomatio

qa-sprint-report-by-testomatio

github.com/testomatioTesting & quality1678 installsUpdated 6d ago
Repository

About qa-sprint-report-by-testomatio

A reporting workflow for QA teams using Testomat.io, covering sprint identification, test-result collection, and HTML report output. It requires verifying the sprint identity first and reports only data returned by MCP.

Key features

  1. 01Identify sprints by milestone, run group, or run
  2. 02Collect run and test results
  3. 03Organize report sections from a template
  4. 04Create HTML reports with optional Markdown export
  5. 05Avoid assumptions about missing data

Use cases

  1. 01Share QA status with stakeholders at sprint end
  2. 02Review passed, failed, and blocked tests
  3. 03Record test progress mid-sprint

MCP support

Uses MCP tools to query milestones, runs, test results, and available analytics, then uses that data to populate the report.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/testomatio/skills --skill qa-sprint-report-by-testomatio

After installing, type/qa-sprint-report-by-testomatioin Claude Code to confirm it loaded.

Bundled filesreferences/qa-sprint-report.md

Details

From the project README

QA Sprint Report by Testomat.io

When to Use

  • End of sprint — produce a shareable QA report for stakeholders.
  • Sprint review — need a structured view of what was tested, passed, failed, blocked.
  • Mid-sprint status — capture current execution progress.
  • The user mentions "sprint report", "QA summary", "sprint progress", or similar.

How to Identify the Sprint

The user may identify the sprint in one of these ways (in priority order):

  1. Milestone name or ID — e.g. "Sprint 42", "Sprint 2024.3" — use milestones_list(type="Sprint") to find it.
  2. Run group title — e.g. "Sprint 42 Run" — use rungroups_list / rungroups_get.
  3. Direct run ID or run title — use runs_get or runs_list.
  4. Plan title or ID — use plans_list / plans_get.
  5. No identifier provided — ask the user to specify the sprint milestone, run group, or run.

If the user provides only a sprint name like "Sprint 42", always resolve it to a concrete milestone/rungroup/run first. Do not assume the title directly maps to an ID.

Rules

  • Do not fabricate data. If MCP does not return a value, use [None] or hide the section. Never invent numbers or statuses.
  • Resolve sprint first. Never assume a sprint name maps directly to a run ID without verification.
  • Hide unavailable sections. If analytics (Section 8) is not available, omit it entirely rather than leaving placeholder text.
  • One blank line between actions. In any generated code or CLI snippets.
  • Use TQL for filtering. Always prefer tql filters over client-side filtering when calling runs_list, tests_list, testruns_list.
  • HTML is the default output. Generate .html first; only offer .md if the user explicitly asks for it or their initial prompt includes a request to save as .md.

MCP Tools Mapping

Each report section maps to specific MCP tools. See the full section structure and metrics in the template:

Quick Commands
ActionMCP ToolKey Parameters
Find sprint milestonemilestones_listtype="Sprint", status="active"
List runs for sprintruns_listtql: milestone == '{id}'
Get run detailsruns_getrun_id
Get test resultstestruns_listrun_id, filter_status
Get suite teststests_listsuite_id, per_page=100
Check analytics availabilitysystem_ping(Enterprise flag in response)
Get test health analyticsanalytics_testskind, days, from, to
Get stats analyticsanalytics_statskind, from, to

Workflow

Step 1: Resolve Sprint Identity

Ask the user if no sprint identifier is provided. Try to resolve:

1. milestones_list(type="Sprint") — find milestone matching sprint name
2. rungroups_list — find rungroup with sprint title
3. runs_list(tql="title % 'Sprint N'") — find runs by title
Step 2: Gather Sprint Metadata & Time Range

Collect for the report header:

  • milestones_get(milestone_id) or rungroups_get(rungroup_id) for sprint title/dates.
  • Ask user for QA Lead name if not in TMS.

Critical: Extract Sprint Time Range

Resolve the sprint time range in this priority order:

  1. User-provided — If the user specified a time range in their original prompt, use it.
  2. Milestone/Rungroup dates — Extract start_date / due_date from milestones_get or rungroups_get.
  3. Run timestamps — If milestone/rungroup has no dates, derive from earliest created_at and latest finished_at across the sprint's runs (runs_get).
  4. Manual input — If no time range can be determined from TMS, ask the user to specify the sprint period manually.

The time range is required for:

  • analytics_tests(kind="...", from="YYYY-MM-DD", to="YYYY-MM-DD")
  • analytics_stats(kind="...", from="YYYY-MM-DD", to="YYYY-MM-DD")
  • Filtering runs by sprint period
Step 3: Collect Run Data
  1. runs_list(tql="milestone == '{id}'") — all runs for the sprint milestone
  2. For each run, call runs_get to get status, counts, environments
  3. testruns_list(run_id, filter_status) — get passed/failed/skipped per run
Step 4: Build Report Sections

Iterate sections 1–9 of the template, populating each with MCP data. Apply rules:

  • If a metric is not available → use [None] in the cell
  • If an entire section has no data → hide the section (do not show placeholder text)
  • Section 8 (Analytics) → check system_ping response for Enterprise capability; if not available, hide
Step 5: Write Output File

Write the filled report to:

{user-specified-path}/QA_Sprint_Progress_Report_{SprintName}_{YYYY-MM-DD}.html

If no path specified, save to current working directory.

Step 6: Offer Markdown Export

After writing the .html file, ask the user if they also want to export the report as a .md file:

❓ The report has been saved to `{path}`.
Would you like to also export it as a `.md` file?

1. ✏️ Yes, save as `.md` in the same location
2. 👍 No, keep the `.html` only

If user picks option 1:

  1. Convert the HTML content to Markdown format.
  2. Generate ".md" markdown format report using template from the references - qa-sprint-report.md.
  3. Save as QA_Sprint_Progress_Report_{SprintName}_{YYYY-MM-DD}.md in the same directory as the HTML file.

If user picks option 2:

  • Confirm the .html path and end the workflow.

HTML Template Styling

When exporting to HTML, apply the following styles:

Color Palette
TokenHexUsage
--primary-color#6366f1Headers, badges, links
--primary-hover#4f46e5Hover states
--success-color#10b981Passed/ready badges
--danger-color#ef4444Failed/blocked badges
--warning-color#f59e0bIn-progress badges
--info-color#3b82f6Info badges
--gray-50 to --gray-900#f9fafb → #111827Text hierarchy
Typography
  • Font Family: Inter (Google Fonts) with fallback: -apple-system, BlinkMacSystemFont, sans-serif
  • Font Weights: 300 (light), 400 (regular), 500 (medium), 600 (semibold), 700 (bold), 800 (extrabold)
  • Monospace: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas — for ticket IDs and code
  • Icons: Font Awesome 6.4.0 (fa-solid)
Status Badges
StatusBackgroundText Color
passed, ready#d1fae5#065f46
failed, blocked#fee2e2#991b1b
progress#fef3c7#92400e
info#dbeafe#1e40af
Key Elements
ElementDescription
.main-containerWhite glass card (rgba(255,255,255,0.98)) with backdrop-filter: blur(20px), max-width 1300px, border-radius 20px
.headerGradient background (linear-gradient(135deg, #6366f1, #4f46e5)), white text, flex layout
.section-cardWhite background, 1px border --gray-200, border-radius 12px, box-shadow
.report-tableFull-width, collapse borders, hover highlight on rows
.meta-gridCSS Grid (repeat(auto-fit, minmax(220px, 1fr))), gap 20px
.instruction-cardInfo box with left 5px border in --primary-color, background #eef2ff
.tms-linkPrimary color link with hover underline
HTML Structure
<div class="main-container">
  <header class="header">
    <div class="header-title">
      <h1>QA Sprint Progress Report</h1>
      <p><i class="fa-solid fa-cubes"></i> [Project Name]</p>
    </div>
    <div class="header-badge">
      <i class="fa-solid fa-calendar-days"></i> Sprint: [Sprint Number]
    </div>
  </header>

  <section class="instruction-section">
    <div class="instruction-card">
      <h5><i class="fa-solid fa-circle-info"></i> How to Use This Template</h5>
      <ul>...</ul>
    </div>
  </section>

  <main class="content-section">
    <div class="section-card">
      <div class="section-title"><i class="fa-solid fa-chart-pie"></i> 1. Sprint Summary Scorecard</div>
      <div class="meta-grid">...</div>
    </div>
    <!-- Repeat section-card for each section -->
  </main>
</div>

Report Template Reference

SectionDescription
qa-sprint-report.mdFull template with all sections, emoji, and fill-in placeholders

Comments

Markdown supported