You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[persona-runtime soak] qa-lead mention smoke test #1300
Controlled end-to-end test of the persona mention framework in the next ring.
Scenario for the persona to assess (synthetic): a PR adds a new POST /v1/refunds endpoint. Its only test asserts a 200 on a valid refund. There are no tests for: a double-submit with the same idempotency key, a refund exceeding the original charge, or an already-refunded charge. The endpoint touches money and has no documented rollback path.
I'll mention the QA Lead persona in a comment below to exercise the full chain: router → dispatch → runner → advisory. Soak artifact; will be closed after.
Thanks for setting up this soak test — the synthetic scenario is well-scoped and the end-to-end chain (router → dispatch → runner → advisory) is a useful exercise. Since this is a controlled runtime test rather than a bug report or feature request, could you share what output or artifact you expect to capture from the run so we know what a successful soak looks like before closing?
Risk tier: HIGH — money-moving endpoint with only a happy-path test; no coverage for duplicate submission, over-refund, or double-refund, and no rollback path.
What I'd shore up (highest leverage first):
Idempotency under retry: add a test that fires two concurrent (or sequential) requests with the same idempotency key and asserts exactly one refund is executed — the risk isn't just a wrong response, it's a duplicate money movement.
Boundary/negative amount paths: a refund greater than the original charge, and a refund against an already-fully-refunded charge, both need explicit tests asserting rejection with the correct error — right now nothing proves these are blocked.
NFR gap — recoverability: "no documented rollback path" on a financial mutation is itself a finding, not just a test gap. At minimum, add an integration test that forces a downstream failure mid-refund and asserts the system lands in a consistent, reconcilable state (not partially applied).
Test level: a single 200-on-valid-refund check is unit/happy-path only — this endpoint needs integration-level tests hitting a real (or realistic) ledger/idempotency store, since the risk lives in state consistency, not response shape.
Escalate? yes — a payment endpoint shipping with no negative-path or idempotency tests and no rollback strategy should not merge without at least the idempotency and over-refund cases covered.
Advisory only — I comment, I do not change code. Ground: BMAD Test Architecture (bmad-tea v1.19.0). Opt out on this item with the qa-lead:hands-off label.
Cosmetic: the advisory posts as don-petry (the GH_PAT_WORKFLOWS owner), not a distinct persona/bot identity. Worth a follow-up if a persona byline is wanted.
Activity
don-petry commentedon Jul 18, 2026
@petry-projects/qa-lead please assess the test risk on the refunds endpoint described above.
github-actions commentedon Jul 18, 2026
Thanks for setting up this soak test — the synthetic scenario is well-scoped and the end-to-end chain (router → dispatch → runner → advisory) is a useful exercise. Since this is a controlled runtime test rather than a bug report or feature request, could you share what output or artifact you expect to capture from the run so we know what a successful soak looks like before closing?
don-petry commentedon Jul 18, 2026
@petry-projects/qa-lead retrying after the stub permission fix — please assess the refunds endpoint test risk.
don-petry commentedon Jul 18, 2026
QA Lead — test-risk advisory
Risk tier: HIGH — money-moving endpoint with only a happy-path test; no coverage for duplicate submission, over-refund, or double-refund, and no rollback path.
What I'd shore up (highest leverage first):
Escalate? yes — a payment endpoint shipping with no negative-path or idempotency tests and no rollback strategy should not merge without at least the idempotency and over-refund cases covered.
Advisory only — I comment, I do not change code. Ground: BMAD Test Architecture (bmad-tea v1.19.0). Opt out on this item with the qa-lead:hands-off label.
Mention stub template must grant contents:read (#778)
don-petry commentedon Jul 18, 2026
Soak PASSED ✅ — persona mention framework works end-to-end in the
nextringFull chain verified live:
@petry-projects/qa-lead→ dispatchedpersona-mentionbmad-tea)<!-- persona:qa-lead -->marker — substantive and correct (Risk tier: HIGH; flagged idempotency-under-retry, over-refund, double-refund; money-path escalation)29646556305) that returnedskipped— the two-axis guard caught its own marker and refused to re-route. No loop (the feat: implement issue #846 — [Phase 2] Cache the LSP index and enforce the 30s cold-start SLA with auto-skip #860 failure mode, contained). The advisory also contained no literal@petry-projects/handle.Two findings the soak surfaced (both fixed / noted):
contents: read→startup_failure(§5 violation). Fixed in Persona mention stub must grant contents:read (next-ring startup_failure) #1301 (live) + feat: implement issue #749 — [Phase 1] Define the consumer manifest + validator (shared-surface -> consumers map) #778 (template).don-petry(theGH_PAT_WORKFLOWSowner), not a distinct persona/bot identity. Worth a follow-up if a persona byline is wanted.Closing this soak artifact.