Acceptance: Spell review
A browser walk of the Spell review app on the offline local stack: each seat sees the right items
and acts on the step it owns.
Prerequisites
- The stack is running:
npm run qa:local (or -- --fresh for untouched seed data). See
offline local development.
- Spell review is at http://127.0.0.1:4311. Sign in only through the direct links below.
- If the list is empty, switch the cycle bar to the cycle that has items, or All cycles.
Steps
- EPL sees every item. Open
http://127.0.0.1:4319/sign-in?seat=spell-pm&app=spell.
Choose All cycles in Jump to. Expected: signed in as Erin EPL; both Spark items and
"Sky Core: rotate synthetic oracle" are listed alongside the Grove items (the Sky Core item is
filed for Prime Grove, so it sits in the Grove group). Note the address of "Grove: onboard synthetic RWA vault" for
step 6. Screenshot
spell-01-epl-list.png.
- EPL validates. Open "Grove: onboard synthetic RWA vault". Expected: current step
Validate spell item request. Tick Request is complete and understandable and submit.
Expected: the item moves to Triage & prioritize. Screenshot
spell-02-epl-validated.png.
- BA Labs writes the pre-risk review. Open
http://127.0.0.1:4319/sign-in?seat=spell-risk-reviewer&app=spell, then "Grove: adjust
synthetic PSM parameters". Expected: current step Pre-risk review — write. Set Verdict
to Approved, write a synthetic review and one next step with an owner, submit. Expected: the
item moves to Pre-risk review — confirm next steps. Screenshot
spell-03-ba-labs-review.png.
- BA Labs cannot validate. As the same seat, open "Sky Core: rotate synthetic oracle"
(parked at Validate spell item request). Expected: no submittable form for that step.
Screenshot
spell-04-ba-labs-no-validate.png.
- Grove sees only Grove. Open
http://127.0.0.1:4319/sign-in?seat=prime-member&app=spell. Expected: the four filed Grove items
under All cycles, and the draft "Grove draft: raise the Grove ALM line" under Drafts (1);
neither Spark item, and not the Sky Core item (another seat filed it). Screenshot
spell-05-grove-list.png.
- Spark cannot see Grove. Open
http://127.0.0.1:4319/sign-in?seat=prime-member-spark&app=spell. Expected: the two Spark
items and no Grove item. Then open the Grove item address noted in step 1. Expected: not
found or access denied, with none of its content shown. Screenshot
spell-06-spark-denied.png.
- Tech coordinator owns technical review. Open
http://127.0.0.1:4319/sign-in?seat=spell-tech-coordinator&app=spell, then "Grove: synthetic
technical scope". Expected: current step Independent technical review with an editable
form. Do not submit. Screenshot
spell-07-tech-review.png.
Save every screenshot under .qa-local/screenshots/.
What counts as a failure
- A sign-in link that does not land in Spell review signed in as the named seat.
- A server error, a blank page after the first compile, or a console error on submit.
- A seat seeing an item it should not (Spark seeing Grove, Grove seeing Spark).
- A seat able to submit a step it does not own, or a submitted step that does not advance.
Known gaps
- Steps 2 and 3 change the seed; run
npm run qa:local -- --fresh before walking again.
- Items are seeded for the second offered vote date, so the current cycle view can be empty.
- Continue appears only once a step's required fields are filled; wait for the field autosaves to
finish before clicking it. A click that races an autosave is refused (409) and needs a reload.