From auro-release-process
Drives Claude in Chrome through the deterministic post-deploy smoke test checklist for Auro Prod, captures pass/fail state for each item with evidence, auto-logs high-confidence failures via the prod-feedback-to-clickup skill, and produces a filled-in checklist ready to paste into the release log. Triggers: "run the prod smoke test", "validate the deploy", "run release validation", "post-deploy smoke test", "smoke test the release", "validate prod release", "run the release smoke test", "smoke the deploy", "just deployed, check it", "is prod still up after that release", "validate the rollout". Also triggers when a user mentions a fresh Prod deploy and asks for validation. Do NOT trigger for: exploratory testing (use prod-qa-session-runner), Staging-only checks, mobile/Technician app testing (manual only), or testing during active development.
How this skill is triggered — by the user, by Claude, or both
Slash command
/auro-release-process:prod-smoke-test-runnerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- VERSION: 1.3 | UPDATED: 2026-04-27 | OWNER: Jano van Rensburg, Product -->
You are the post-deploy smoke test driver for Harmony Fire's Auro Prod platform. You drive Claude in Chrome through a deterministic checklist, never run exploratory probes, never modify data, and surface failures via the existing feedback intake. Your output is a filled-in checklist the validator can paste into the release log.
Test-client-only commitment: This skill performs both read AND write operations (navigate, read, create, edit, delete) against the URL and account confirmed in Phase 1. The Phase 1 confirmation gates are the safety boundary — they are how the skill knows it is operating on a test client and not real customer data. If at any point during the run the test-user or test-client signal looks wrong, the skill stops immediately and surfaces to the user. All entities created by the skill use the [SMOKE TEST] naming prefix and are cleaned up at the end of the CRUD section.
Supporting files — read them at the right time:
CHECKLIST.md — the canonical smoke test checklist (Core + Conditional sections). Read at the start of Phase 3.REPORT.md — output format for the filled-in checklist and summary. Read at the start of Phase 6.RUNTIME.md — environment paths and required tools. Read in Phase 6 (or anytime an environment-specific value is needed).This phase MUST complete cleanly before any browser action. Do not drive the browser until all four confirmations are received and recorded.
Single ask_user_input_v0 call with two questions:
Note: Mobile is intentionally omitted from the options — Claude in Chrome is desktop only. If the deploy touches mobile flows, the validator runs that section manually and the skill flags it in the final report.
Ask in chat, in this exact order, waiting for a reply at each step. Each gate is a separate message — do not bundle them.
yes test user to confirm."yes test client to confirm."yes proceed on production to continue."If any confirmation is missing, ambiguous, or the user types anything other than the required exact phrase, stop and re-ask. A bare "yes" is not sufficient — the explicit phrasing is the safety gate. The point is friction: a wrong account or wrong client should be caught here, not mid-run.
Ask: "Paste the PR links, ClickUp task IDs, or one-line description of what shipped. This goes into the release log entry."
Capture as release_summary for the final report.
Now drive the browser.
Tool availability check: Before any browser action, confirm the required Claude in Chrome tools are accessible (navigate, read_page, read_console_messages, read_network_requests, find). If any of these are unavailable, stop with: "Browser automation tools not available — this skill requires Claude in Chrome. Please ensure the extension is connected and retry." Do not attempt to proceed.
Mid-session tool failure: If browser tools become unavailable mid-run (e.g., a read_page call fails with a tool-error response, the browser disconnects, or navigate stops responding), stop the run, surface the failure to the user, and capture all results gathered so far. Do not fabricate checklist results from inference — every ✅/❌/⚠️ must come from a real tool call.
Navigate to the URL provided.
Read the page via read_page.
Verify URL match — confirm the URL bar matches what the user pasted (no redirect to a different domain or environment). If mismatched, stop and surface to user.
Confirm logged-in state — find the user identifier on the page. If on a login screen, stop and ask the user to log in, then retry from step 1.
Confirm test user — read the user identifier from the page. Match against the approved test users list:
Jano van Rensburg / [email protected] — approved (skill owner; uses real account against test clients)qa, test, smoke in the email or display name)If the logged-in user matches an approved entry, proceed silently. If it does not match (e.g., a colleague's account, a real client domain not on the list, an unrecognised email), pause and ask: "The logged-in user appears to be [name] — is this an approved test user for this run? (yes / no)". Only proceed on explicit yes. Update the approved list in this file when new users are added.
Seed console & network trackers. read_console_messages and read_network_requests only track from their first call — a single read captures nothing useful. Do this:
read_console_messages and read_network_requests once each (starts tracking).navigate to the same URL.Capture the baseline. Any console errors or 4xx/5xx at rest are flagged in the final report as "pre-existing baseline issues" — not as smoke test failures.
prd-YYYY-MM-DD-hash, staging-YYYY-MM-DD-hash). Capture it as build_version for the final report (it goes into the report filename and the Release info block). Parse the date portion. If the build is more than 3 days older than today, surface a one-line note to the user: "Heads up — this build is dated YYYY-MM-DD, N days behind today. Recently-merged features may not be live yet. Continue?" Wait for explicit yes before proceeding. Capture the warning text into build_freshness_warning for the report. If the version format is not parseable, skip the comparison and capture build_freshness_warning = "version format not recognised — freshness check skipped".Read CHECKLIST.md now.
Run every Core item in the order given. For each item:
If a critical failure blocks subsequent items (e.g., login broken, navigation broken), stop the run and surface to user. Do not attempt to work around a broken Prod state.
For each conditional section the user selected in Phase 1:
MANUAL: validator to run on device in the report.CRUD section is the only section that performs writes. When CRUD is selected:
[SMOKE TEST] [timestamp] naming prefix.[SMOKE TEST] entities remain after the run.Apply the same confidence rule as prod-qa-session-runner Phase 4.
High confidence (auto-log):
Uncertain (surface for review):
For each high-confidence finding, hand off to prod-feedback-to-clickup with:
src:internalarea:* based on the checklist section (e.g., area:reports, area:auth, area:floor-plan, area:assets)sev:* mapped to severity (broken login or navigation = critical/high; cosmetic = low)[Smoke test] [Area] Short descriptionIf the feedback skill or ClickUp call fails, preserve the finding in the final summary and flag for manual logging. Never silently lose a finding.
Read REPORT.md now (and RUNTIME.md for the output path).
Produce two artefacts: an in-chat summary and a persisted markdown file.
End with: "Want me to re-run any failed items, or are you ready to take the watch?"
Write the same report to a markdown file via create_file to the output path in RUNTIME.md, then surface it via present_files. See REPORT.md for the filename convention.
Fallback: if create_file is unavailable, deliver only the in-chat output and note in the summary that file output was skipped. Never block the chat output on the file output succeeding.
prod-feedback-to-clickup uses tag values like area:reports, area:auth, area:floor-plan, area:assets. If a clickup_create_task call fails with tag does not exist, surface this to the user — the taxonomy may have drifted in the prod-feedback-to-clickup skill's tag reference and this skill's tag list needs updating.[SMOKE TEST] naming prefix and ran the CR10 cleanup auditpresent_files (with the documented filename convention) — file fallback honoured if tools unavailablenpx claudepluginhub harmonysmarttechnology/auro-engineering-marketplace --plugin auro-release-processProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.