Granular 4-phase, 4-role GDS Service Standard assurance skills, panel orchestrator, and synthesis engine.
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
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.
rules/phase-expectations.md.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.SKILL.md and works through its lines-of-questioning.md.skills/assessment-report-synthesis.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.
| Phase | Lead | User research | Design | Technical |
|---|---|---|---|---|
| Discovery | 2, 6, 7 | 1 | 2, 3 | 9, 11, 13 |
| Alpha | 6, 7 | 1, 2 | 2, 3, 4 | 8, 9, 11 |
| Beta | 6, 7, 10 | 1, 2, 5 | 3, 4, 5, 13 | 8, 9, 11, 12, 13, 14 |
| Live | 6, 7 | 1, 10 | 3, 4, 5 | 8, 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.
Hard fails live in context/rubrics/. The ones that decide most panels:
context/few-shot-examples/discovery-lead-stop.md.context/few-shot-examples/alpha-tech-spikes.md.context/few-shot-examples/beta-ur-fail-assistive-tech.md..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 casesThe 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.pyOn 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.
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 runtessl 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.
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.
.tessl-plugin
skills
alpha-assessor-design
alpha-assessor-lead
alpha-assessor-technical
alpha-assessor-user-research
assessment-panel-orchestrator
assessment-report-synthesis
beta-assessor-design
beta-assessor-lead
beta-assessor-technical
beta-assessor-user-research
discovery-assessor-design
discovery-assessor-lead
discovery-assessor-technical
discovery-assessor-user-research
gds-assessment-how-to
evidence-kit
alpha
beta
accessibility
decisions
design
operations
performance
platforms
privacy
research
team
discovery
live
accessibility
decisions
design
operations
performance
privacy
research
team
technology
panel
examples
apply-for-a-blue-badge
alpha
live-assessor-design
live-assessor-lead
live-assessor-technical
live-assessor-user-research