Knowledge > Runbooks > Agent Ops > How to Run the QA Checklist
How to Run the QA Checklist
A senior QA engineer's approach to self-reviewing your own work before shipping. The goal is to find bugs others miss, not to rubber-stamp your own implementation.
Prerequisites
- Implementation complete and committed to feature branch
C:\dev\QA_CHECKLIST.mdopen (9 sections)C:\dev\AGENT_QUALITY_PRINCIPLES.mdopen (35 principles)
Steps
1. Switch Mental Model
Before starting the QA review, explicitly shift perspective:
"I am now a senior QA engineer who does not know or care how this code was implemented. I am trying to find any way this could fail, confuse a user, or produce wrong output."
This mental shift is essential. As the implementer, you have blind spots. A QA engineer has none — they only see behavior.
2. Read Through QA_CHECKLIST.md (All 9 Sections)
The 9 sections cover:
- Database queries and safety
- Security and auth
- Client/server boundary (Next.js)
- SEO and metadata
- Content accuracy and marketing claims
- UI/UX and branding
- API and integration correctness
- Performance and scalability
- Error handling and edge cases
Work through each section systematically. For each checklist item, actively look for the problem — don't just read the question and assume you're fine.
3. Read Through AGENT_QUALITY_PRINCIPLES.md
These 35 principles are derived from 165 real bugs that shipped. For each principle, ask: "Did I make this exact mistake in what I just built?"
Common failure modes agents repeatedly hit:
- Missing
directory_visible=truefilter onchurchesqueries - Using 261K (total) instead of 218K (visible) in any church count
- Importing server-only modules into
'use client'components - Hardcoding pricing that's already stale vs.
pricing.yaml - Claiming features that don't exist yet (unapproved features in copy)
- Forgetting to paginate large table queries
- Not updating
product_knowledgewhen flows change
4. Persona-Based Testing
Test your implementation as each of these personas. If you can't test the actual UI, trace through the code path as if you were this user:
The Skeptical Pastor
- Has been burned by tech before
- Will read every word on the pricing page
- Will test the chatbot with hard theological questions
- Asks: "Is this price really what it says? What happens if I cancel?"
The Tiny Rural Church
- Single staff member, 40 members, very limited budget
- May have no tech knowledge base set up
- What does the chatbot say when there's no KB content?
- Does the starter plan actually work without customization?
The Committee Buyer
- Must present this to a board of 5 people
- Will screenshot the pricing page and feature list
- Every claim must be accurate — one wrong claim loses the sale
The New Visitor
- Found the church online, wants to learn more
- Will use the widget on the church's site without knowing it's AI
- Should get helpful, accurate, warm responses
For each persona: does the experience make sense? Is the data correct? Are any claims wrong?
5. Check Data Sanity
Review any data displayed in the UI or returned by the API:
- Are counts plausible? (Churches: ~218K.
unified_rag_content: ~327K. Premium churches: 4 currently) - Are prices correct? (Always check against
PRICING.mdorpricing.yaml) - Are dates formatted correctly and in the right timezone?
- Are empty states handled gracefully? (No content, no calls, new account)
- Are error states handled? (API down, invalid token, expired session)
6. Test Edge Cases
For every input field or action in your implementation, ask:
- What happens with empty input?
- What happens with extremely long input?
- What happens when the user is unauthenticated?
- What happens when a required dependency (Supabase, Stripe, external API) is down?
- What happens for a brand-new account with zero data?
7. Fix ALL Issues Found — Never Defer
If you find anything — critical, important, OR minor — fix it before declaring done.
Do NOT:
- Add it to a "future PR" list
- Note it as "known issue"
- Skip it because "it's unlikely to happen"
Every deferred issue is a bug that will eventually reach a real customer or cause a real failure.
8. Verify on the Deployed URL
After deploying, verify the actual production URL — not localhost:
# Check the deployed page actually works
# Use WebFetch tool or curl to read the deployed response
curl -s https://churchwiseai.com/[changed-path] | head -50
Common gaps between local and production:
- Env vars missing in Vercel
- Build-time vs runtime behavior differences
- Tailwind v4 CSS that worked in dev but not in Vercel build
Verification
- Every checklist item in
QA_CHECKLIST.mdhas been reviewed - All issues found are fixed — no deferrals
- At least one persona-based test has been traced through
- Deployed URL confirms expected behavior
See Also
- Deploy Checklist Runbook
- Starting a New Task Runbook
- Quality principles:
C:\dev\AGENT_QUALITY_PRINCIPLES.md - QA checklist:
C:\dev\QA_CHECKLIST.md