Issue Type: Sprint Gate
Parent: [Sprint Epic, e.g., M0-GLUE]
Labels: gate, process, required-for-close
This gate ensures the sprint cannot close without verification that implementation is complete—not just “appears complete.” It operationalizes lessons from the 75% Pattern (Aug 2025 stubs, Jan 2026 #728/#734).
This issue blocks sprint closure until all criteria have explicit sign-off.
Purpose: Verify that user-facing “success” messages correspond to actual database writes.
| Flow | Success Message | DB Table | E2E Test Name | Verified By |
|---|---|---|---|---|
| example: Project creation | “Added to portfolio” | projects | test_project_creation_persists | [initials] |
Purpose: Ensure implementation matches design intent and conversational quality standards.
Design Document Reference: ___________
Parrot Confirmation Audit:
Colleague Test Log: | Flow | Tested Phrase | Pass/Fail | Notes | |——|—————|———–|——-| | | | | | | | | | |
Purpose: Verify user-scoped data is actually user-scoped with no cross-user leakage.
Skip if sprint has no user-data features. Mark N/A with justification.
user_id or owner_id in queriesuser_id="default", owner_id=None, hardcoded user referencesRequestContext.user_idGrep Results (must be empty or justified):
grep -r "user_id=\"default\"" --include="*.py" services/ web/
grep -r "owner_id=None" --include="*.py" services/ web/
Result: ___________
Cross-User Test Name: ___________
New Endpoints Audit: | Endpoint | Has RequestContext | Uses user_id | Verified | |———-|——————-|————–|———-| | | | | |
Sprint: _________ **Closure Date**: ___________ **Authorized By**: _____________
Template Version: 1.0 Created: February 3, 2026 Origin: Ship #028 “Conversation ≠ Reality” learning