Builds stakeholder-readable scripted manual test cases from a feature spec in four formats: a step-table (preconditions / steps / expected result / actual / pass-fail / notes) for spreadsheet review, a Gherkin Given/When/Then format for BDD-aware teams, a business-language UAT script with acceptance-criteria mapping and contractual sign-off (references/uat-format.md), and a one-line-per-item execution checklist for smoke / on-call / bug-bash / compliance sweeps (references/checklist-format.md). Each script is self-contained (no implicit team knowledge), single-scenario (one happy + N edge per script), and includes the data setup the tester needs without being a developer. Use when a feature can't be (or shouldn't be) fully automated and a human tester needs an executable script or checklist - UAT sign-off rounds, regression baselines, certification testing, deploy smoke checklists, exploratory follow-up scripts.
94
88%
Does it follow best practices?
Impact
95%
0.98xAverage score across 10 eval scenarios
High
Do not use without reviewing
Every release someone in support runs the refund regression by hand against the
staging store. The case is scripts/TC-207-refund.md and it has not been touched
since its author left.
Last week a new contractor was handed the case on her first day and stopped at step 2. She had no way to know which admin login to use, which of the ~400 staging orders to open, or what to type into the amount field. She asked three people and got three different answers. Two of them refunded different orders and recorded a pass; the third recorded a fail because the confirmation she was watching for never appeared, and nobody can now tell whether that was a real defect.
The case also cannot be run twice. Whichever order it lands on is fully refunded on the first run, so a second attempt the same afternoon errors out at the refund step and the tester either grabs a different order at random or marks the case blocked.
Two of the facts this case depends on are contradicted inside our own documentation. Last release was signed off on somebody's guess about them. Do not guess them again.
Produce one markdown document at exactly scripts/TC-207-refund-rewrite.md
containing:
Out of scope: automating the case, changing the product, and rewriting any other case in the regression pack.
Extract the following files before beginning.
=============== FILE: scripts/TC-207-refund.md ===============
Owner: Marek (left the company) Last updated: 2025-06
Notes: if the Refund button is greyed out, ask in #payments.
=============== FILE: docs/staging-store-notes.md ===============
Admin URL: https://staging-admin.northwind-shop.example Build string in the admin footer at time of writing: 2026.8.3
| Login | Role | Can issue a refund |
|---|---|---|
| qa.viewer@northwind.example | Support Viewer | no |
| qa.support@northwind.example | Support Agent | no - needs approval |
| qa.payments@northwind.example | Payments Admin | yes |
Passwords live in the team vault under staging/admin-logins.
| Order | Customer inbox | Total | Currency | Payment state |
|---|---|---|---|---|
| NW-40011 | qa+40011@northwind.example | 89.90 | EUR | captured |
| NW-40012 | qa+40012@northwind.example | 149.00 | GBP | captured |
| NW-40013 | qa+40013@northwind.example | 24.50 | EUR | authorised, not captured |
| NW-40014 | qa+40014@northwind.example | 310.00 | GBP | captured, 60.00 already refunded |
| NW-40015 | qa+40015@northwind.example | 12.00 | EUR | captured |
The Refund button is disabled on orders that are authorised but not captured. All five orders above were captured 74 days ago.
The refund amount field in the admin renders a bare number with no currency symbol and no selector. Finance state that the merchant account settles in EUR. The payments team wiki states that the refund amount is entered in the order's own currency. Nobody has reconciled the two statements.
The ops runbook (ops/refunds.md, section 4) permits refunds up to 90 days
after capture. The customer-facing help centre says 60 days.
Staging outbound mail is captured by MailHog at https://staging-mail.northwind-shop.example - nothing reaches a real inbox. Delivery to MailHog is typically under a minute.