How this skill is triggered — by the user, by Claude, or both
Slash command
/nrf-library:test-featureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
When invoked, `args` will be a space-separated string: `<ticket> <url>`
When invoked, args will be a space-separated string: <ticket> <url>
NRF2-358http://localhost:3000/Playwright MCP manages its own browser — no existing Chrome instance is needed.
Before testing:
Fetch the Jira ticket details by running the script at read-jira-ticket.sh which is in the same folder as this skill file:
bash <path>/read-jira-ticket.sh <ticket>
This uses the JIRA_USER and JIRA_TOKEN environment variables, loaded from ~/.env if not already in the environment. See docs/feature-tester.md in nrf-library for setup instructions.
If the script fails for any reason (missing env vars, network error, non-zero exit code), stop immediately. Do not proceed to any further steps. Report the exact error to the user and ask them to fix the issue before retrying.
Extract every scenario from the description as a numbered checklist before touching the app.
Navigate to the test URL using mcp__playwright__browser_navigate. Confirm the correct page loaded by checking the page title or H1 via mcp__playwright__browser_snapshot before proceeding.
You must narrate every step out loud — the user cannot see tool calls and has no other way to know you are working.
"Fetching Jira ticket...", "Testing AC2: navigating to /cookies/preferences", "Clicking Accept button", "Checking dataLayer push". Never call a tool without narrating first."AC3: Banner should not reappear after accepting"."Waiting for browser — <tool name> has not returned yet...". Do not silently wait."FAILED: <tool name> — <error>. Stopping this scenario.". Do not silently skip the failure or move on."Scenario 3 done — PASS" or "Scenario 3 done — FAIL: <reason>".Use mcp__playwright__browser_navigate to load a fresh page for each scenario. Playwright MCP maintains isolated storage contexts — use a new navigation to reset state between scenarios rather than manually clearing cookies.
document.cookie — it will not work. Hapi sets cookies as HttpOnly by default.fetch to reset state — CSRF protection will block it (403).mcp__playwright__browser_snapshot to read page structure for assertions (preferred over screenshots).mcp__playwright__browser_evaluate to inspect JS globals, e.g. window.dataLayer, window.gtag, inline <script> tags injected by the template.Test purely through the browser UI. Do not read source code, route files, or templates unless you need to verify something that is impossible to observe through the browser (e.g. HttpOnly cookie flags, cookie expiry). If you do read code, note it explicitly in the results table.
Mark these as code-verified or not testable in dev rather than silently skipping:
After all scenarios are complete, close the browser using mcp__playwright__browser_close.
Return only the results table and any bugs/gaps below it. No preamble, no narration of steps taken.
| Scenario | Description | Result | Notes |
|---|---|---|---|
| 1 | ... | ✅ Pass / ❌ Fail / ⚠️ Partial / 🔍 Code-verified | ... |
List bugs, gaps, or deferred items separately below the table.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub defra/nrf-library