CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

service-factory/gds-assessment-plugin

Granular 4-phase, 4-role GDS Service Standard assurance skills, panel orchestrator, and synthesis engine.

Quality

87%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

README.md

GDS assessment plugin

Tessl plugin that assesses a UK public sector service against the Service Standard at Discovery, Alpha, Beta, and Live.

The panel is four disciplines: lead, user research, design, and technical. Sixteen assessor skills cover the four phases. assessment-panel-orchestrator keeps those four perspectives in the conversation with the team, and logs questions and answers in panel/dialogue.md. assessment-report-synthesis writes the report, using plain-english and no-ai-slop, which ship inside this plugin.

How to run an assessment, how to create the evidence kit, and how to try the fictional Alpha example are in skills/gds-assessment-how-to/SKILL.md. The blank kit is created with python3 skills/gds-assessment-how-to/create-evidence-kit.py docs/evidence-kit. The fictional Alpha example is created with python3 skills/gds-assessment-how-to/create-example.py docs/examples/apply-for-a-blue-badge.

Run an assessment

  1. Confirm the phase. Do not let a later phase's bar leak backwards. The boundaries are in rules/phase-expectations.md.
  2. Run skills/assessment-panel-orchestrator. The first message is a question in the chat. Ask one question at a time and wait. A point that would be Not Met is always a question. Store the full exchange in panel/dialogue.md after each question is closed.
  3. When every question is closed, run the four skills for that phase. Each one scores only the points named in its SKILL.md and works through its lines-of-questioning.md.
  4. Pass the four JSON outputs, the service name, and the phase to skills/assessment-report-synthesis.
  5. The report follows skills/assessment-report-synthesis/report-template.md, written with skills/plain-english and edited with skills/no-ai-slop. Overall result is Met or Not Met. Any in-scope Not Met, or any fired red line, makes the overall result Not Met. Anecdotal replies and skipped questions leave the evidence outstanding.

Points outside the phase are Not assessed. At Live, unchanged points the panel does not own are Not reassessed. Neither is a failure.

Skills

PhaseLeadUser researchDesignTechnical
Discovery2, 6, 712, 39, 11, 13
Alpha6, 71, 22, 3, 48, 9, 11
Beta6, 7, 101, 2, 53, 4, 5, 138, 9, 11, 12, 13, 14
Live6, 71, 103, 4, 58, 9, 14

Beta is the first phase that scores all 14 points. The technical skill also records point 5 when the independent WCAG 2.2 AA audit is missing.

Red lines

Hard fails live in context/rubrics/. The ones that decide most panels:

  • Discovery. Production code, a component library, or a versioned schema is premature architecture. The team is still in the problem space and should not write production code. A decision to stop can still be a pass. See context/few-shot-examples/discovery-lead-stop.md.
  • Alpha. Production infrastructure, or a single design treated as signed off, fails the phase. Throwaway spikes with a risk register and a buy-versus-build log pass. See context/few-shot-examples/alpha-tech-spikes.md.
  • Beta. If no participant used assistive technology, point 5 is Not Met. Name the gap: assistive technology, JAWS, NVDA, screen reader. Design System use and an audit do not outvote that finding. See context/few-shot-examples/beta-ur-fail-assistive-tech.md.
  • Live. The panel needs an exercised incident runbook, a disaster-recovery drill result, a contract exit strategy, and a civil service team that can change the service.

Layout

.tessl-plugin/plugin.json          manifest
rules/                             always-on standard and phase boundaries
skills/                            assessor skills, how-to, report scripts, plain-english, no-ai-slop
context/rubrics/                   phase red lines, in this checkout
context/few-shot-examples/         this checkout's downloaded reports, when present
evals/                             ground-truth assertions for four cases

Published reports

The registry package does not contain the GOV.UK reports. A project that installs the plugin has no past assessments until it downloads them.

From the project root, using the script that ships in the how-to skill:

pip install requests beautifulsoup4
python3 skills/gds-assessment-how-to/scrape_gds_reports.py

On an installed copy, the script is next to gds-assessment-how-to. Run it from the project root. It writes docs/past-assessments/reports/ and docs/past-assessments/catalogue/. In this checkout, the same command keeps writing to context/ because that library is already here. A full run takes a few minutes.

The gds-assessment-reports server is skills/gds-assessment-how-to/reports_mcp_server.py. .mcp.json starts it. It reads the project library, or context/ in this checkout. GOV.UK is not called during an assessment. The rule is rules/past-assessments.md. Rebuild the catalogue without downloading again with python3 skills/gds-assessment-how-to/build_past_assessment_catalogue.py.

An assessment can run with an empty library. The report then cites no published precedent.

Checks

Ground-truth cases:

  • evals/test-discovery-premature-build.json — Discovery technical work that is already a build must fail, and the finding must call it premature architecture in the problem space.
  • evals/test-alpha-tech-spikes.json — disposable Alpha spikes pass.
  • evals/test-beta-ur-assistive-tech.json — Beta research with no assistive-technology users fails point 5.
  • evals/test-synthesis-beta-report.json — a point 5 failure becomes an overall Not Met report even when the other three assessors pass.

With the Tessl CLI, from this directory:

tessl skill lint
tessl skill review --optimize
tessl eval run

tessl eval run expects the plugin root (the directory that contains .tessl-plugin/plugin.json). The JSON files in evals/ are the regression assertions for this plugin's own skills. Tessl's hosted evaluator, if you use it, looks for scenario directories (task.md and criteria.json) and will not read those JSON files as scenarios.

Point titles

The 14 titles used in every report are fixed in rules/gds-service-standard.md. WCAG 2.2 AA is the non-negotiable bar on point 5 from Beta onwards. The mandatory performance measures are completion rate, user satisfaction, digital take-up, and cost per transaction, read with step-level drop-off.

.mcp.json

README.md

tile.json