Twelve AI-drafted user stories with Gherkin acceptance criteria go through your INVEST and testability gates. Four are engineered to fail — one compound, one with no real beneficiary, one with unverifiable criteria, one that contradicts a constraint the architect stated on the record. Sprint-ready means the gate caught all four and you rewrote them.
Meera's audited findings pack from Lab 01 was approved, and TransHarbor's delivery team wants a story backlog for the vendor onboarding portal by Thursday. Meera lets AI draft all twelve stories — that part takes four minutes. The next fifty are the job: running every draft through a quality gate, because a story that reads well and builds wrong costs a sprint. You do not need Lab 01 in front of you; the condensed findings are below.
VERIFIED FINDINGS — Vendor Onboarding Portal (from Lab 01 audit)
F1 Vendors self-register and upload compliance docs (Rajan)
F2 Vendors track their own approval status online (Rajan)
F3 Alert before insurance certificates expire (Elke)
F4 Must work on a mobile browser — ops approves from warehouse floor (Elke)
F5 Volumes: ~40 vendor onboardings per QUARTER, 60 in peak (Elke, evidenced)
F6 CONSTRAINT: SAP vendor-master sync is nightly batch only, fixed this FY (Sanjay)
F7 CONSTRAINT: SSO via Azure AD only, no local accounts (Sanjay)
F8 OPEN: who owns vendor data quality once vendors self-edit (Sanjay)
Twelve stories, condensed to story line plus key acceptance criteria. This is your input — gate it before you polish it.
S1 As a vendor, I want to self-register with company details,
so my onboarding starts without emailing TransHarbor.
AC: Given a valid GST/VAT id, when I submit, then a draft
vendor record is created and I receive a confirmation email.
S2 As a vendor, I want to upload compliance documents,
so approval can proceed. AC: PDF/JPG up to 10 MB accepted;
upload confirmed on screen; file visible to ops within 1 min.
S3 As an ops approver, I want a queue of pending vendors sorted
by age, so nothing stalls. AC: queue shows days-waiting; items
over 5 days are visually flagged.
S4 As a vendor, I want to register, get approved, and upload my
compliance documents, so I can start receiving shipments.
AC: registration, approval, and document upload all complete
in one session.
S5 As an ops approver, I want to approve or reject from my phone
browser, so I can act from the warehouse floor. AC: approve and
reject actions usable at 390px width; decision saved with timestamp.
S6 As the system, I want to sync approved vendors to SAP, so
records stay aligned. AC: sync completes for every approval.
S7 As a compliance officer, I want expiry alerts 30 days before an
insurance certificate lapses, so shipments are not blocked.
AC: alert email sent at T-30; vendor flagged in queue at T-14.
S8 As a vendor, I want to see my approval status and what is
pending, so I do not have to ask. AC: status page lists each
outstanding document by name.
S9 As a vendor, I want the portal to feel fast and intuitive,
so onboarding is a pleasant experience. AC: pages load fast;
the interface is user-friendly and vendors are satisfied.
S10 As an ops approver, I want to request corrections on a document
with a reason, so vendors know what to fix. AC: rejection requires
a reason code; vendor is notified with the reason text.
S11 As an ops approver, I want approved vendors available in SAP
in real time, so purchase orders can be raised immediately.
AC: vendor record appears in SAP within 60 seconds of approval.
S12 As an admin, I want vendor accounts provisioned via Azure AD SSO,
so there are no local passwords. AC: login only via Azure AD;
local credential creation is disabled.
Set up the gate sheet. Columns: Story | I | N | V | E | S | T | Testable ACs? | Contradicts a finding? | Verdict | Fix needed. One row per story, verdicts PASS or FAIL. INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable. The sheet is the graded artifact — the rewritten stories are the bonus.
Gate the first six yourself, no AI. Fifteen minutes. For each story ask three blunt questions: could this go to done in one sprint slice (Small, Independent)? Who exactly benefits, and would they recognize the value (Valuable)? Could QA write a failing test from each AC as written (Testable)? Write FAIL the moment an answer is "not really" — gates exist to be ungenerous.
Gate the second six with AI as challenger. Prompt: "Act as a skeptical QA lead. For stories S7–S12, evaluate each against INVEST and answer: (a) can every acceptance criterion be objectively verified, yes/no, why; (b) does any story conflict with these constraints: [paste F6, F7]. Be harsh." Record its findings in your sheet, but verify each one yourself before accepting it — you are grading the stories, not outsourcing the grade.
Cross-check every story against the constraints. This is its own pass, separate from INVEST. Read F6 and F7, then scan all twelve stories for anything that silently assumes the opposite. A story can pass INVEST perfectly and still be unbuildable this fiscal year. Expect exactly one hard collision.
Hunt the beneficiary problem. One story has no human (or role) who wants anything — a classic AI tell, because system behaviors are easy to phrase as stories. Find it, then decide what it should become: a story rewritten around the person who benefits, or an explicit technical/enabler item that does not pretend to be a user story.
Rewrite the failures with AI, one at a time. For each FAIL: "Rewrite this story to pass INVEST. If it is compound, split it into separate stories. Write acceptance criteria in Gherkin (Given/When/Then), each objectively verifiable, and respect this constraint: [paste the relevant finding]." Then re-gate the rewrite in a new sheet row. A rewrite that fails the gate again gets rewritten again — the gate does not bend.
Re-point the split stories at the findings. Every story in the final pack should trace to at least one F-number from the condensed findings. Add a Source column and fill it. Anything tracing to nothing is scope that walked in uninvited — park it in an "unvalidated ideas" list, not the sprint backlog.
Write the gate summary. Top of the sheet: twelve gated, N failed, which INVEST letters failed most, one constraint collision found and resolved. That summary is what you would tell the delivery lead before sprint planning.
A well-written story that contradicts a stated constraint is more expensive than a badly written one — the badly written story fails in review, the contradicting one fails in the sprint.
A complete lab has all of the following:
Source column tracing every final story to an F-number, with untraceable scope parked.AI drafts stories faster than you can read them — so the gate, not the draft, is where the analyst earns their keep. INVEST plus a testability check plus a constraint sweep, run without mercy, is what turns twelve plausible paragraphs into a backlog a sprint can survive.