3 files changed
src/api/invoices/[id]/route.tssrc/services/invoices.tstests/invoices.test.tsPRODUCT / SYSTEM From changed line to release decision
MaruCheck connects approved behavior, the real Git diff, historical failures, targeted checks, and reproducible evidence in one accountable chain.
ACT 01 — DEFINE
Quality Contracts preserve the behavior that must remain true—even when an agent rewrites both code and tests.
feature: subscription-management
criticality: high
owners: [product, engineering]
requirements:
- id: SUB-004
statement: Cancellation keeps Pro active
until the current billing period ends.
evidence_policy:
blocking: [SUB-004]ACT 02 — CHALLENGE
Risk is deterministic. Changed paths, critical contracts, coverage gaps, and QA Memory each explain their contribution.
src/api/invoices/[id]/route.tssrc/services/invoices.tstests/invoices.test.tsA previous invoice-ownership bypass touched the same authorization boundary.
+25 RISKSecurity, API, contract regression, and the recorded cross-account test enter the plan.
ACT 03 — DECIDE
Every result resolves to expected behavior, observed behavior, reproduction, and the evidence that supports the decision.
npx vitest run tests/regressions/cross-account.test.tsOPERATING RULES
The coding agent can request verification. It cannot approve product intent.
A missing tool, test, or requirement never gets rewritten into a pass.
Execution happens in the repository or CI; teams choose which evidence becomes shared proof.