Skip to main content

Test Finding Post-Op Procedure

The Problem This Solves

Testing agents find issues and fix code. But the root cause often exists in multiple places — journey specs, persona YAMLs, CLAUDE.md, product_knowledge, marketing copy, acceptance specs. If you only fix the code, the NEXT audit finds the same "bug" again because the specs are still wrong.

Example: SermonWise journey tests reported "FAIL: /sermons/dashboard returns 404." Three agents spent time investigating. We built redirect pages. But the real issue was that journey YAMLs pointed to /sermons/dashboard (doesn't exist) instead of /sermons/app (the real route). The code was fine. The specs were wrong.

The Procedure

After EVERY significant test finding (SPEC VIOLATION, GOAL BLOCKED, or any fix that changes behavior), run through this checklist:

Step 1: Classify the Finding

Was it...Then...
A real code bugFix code → then check if docs/specs describe the old (buggy) behavior and need updating
A spec/doc errorFix the spec → then verify the code actually works correctly at the real URL/behavior
A gap (feature missing)Build the feature → then add it to all relevant specs, journeys, personas, product_knowledge
A stale referenceFix the reference → then search for the same stale reference everywhere else

Search for the same incorrect information across ALL knowledge sources:

grep -r "the wrong thing" across:
C:\dev\knowledge\tests\journeys\*.yaml # Journey specs
C:\dev\knowledge\tests\personas\*.yaml # Persona definitions
C:\dev\knowledge\acceptance\*.md # Acceptance specs
C:\dev\knowledge\**\*.md # All knowledge docs
C:\dev\*\CLAUDE.md # All project CLAUDE.md files
C:\dev\PRICING.md # Pricing source of truth
C:\dev\FEATURE_REGISTRY.md # Feature registry

Fix EVERY instance, not just the one the test found.

Step 3: Source of Truth Verification

Ask: "Where should the correct value live canonically?"

What changedCanonical source
Route/URLThe actual src/app/*/page.tsx files (code is truth)
PricingC:\dev\PRICING.md + knowledge/data/pricing.yaml
FeaturesC:\dev\FEATURE_REGISTRY.md + knowledge/data/features.yaml
Product behaviorThe code + acceptance specs in knowledge/acceptance/
Denomination/tradition listsrc/lib/theolenses.ts (code is truth)
Church countDatabase query with directory_visible=true (DB is truth)

If the canonical source is wrong, fix it FIRST. Then propagate to all downstream docs.

Step 4: Regression Prevention

Add a test or check that catches this specific issue automatically:

Finding typePrevention
Wrong URL in specAdd URL validation: for every url: field in journey/persona YAMLs, verify the route exists in the codebase
Stale pricingCross-source consistency test (already exists in knowledge/tests/)
Missing featureAdd to FEATURE_REGISTRY.md
Broken linkAdd to Playwright smoke test
Wrong church countAlready caught by feedback_church_count_filter.md

Step 5: Document the Learning

If the finding reveals something non-obvious about the system:

  • Update the relevant CLAUDE.md
  • Add a memory if it's a pattern agents keep getting wrong
  • Update the DECISION_LOG.md if a design decision was involved

When to Skip This

  • Visual baseline drift (just update baselines)
  • Flaky timeouts (fix the test, not the docs)
  • Rate limiting masking tests (environmental, not systemic)

When This is MANDATORY

  • Any SPEC VIOLATION or GOAL BLOCKED finding
  • Any fix that changes a URL, route, price, feature name, or product behavior
  • Any finding where the code was correct but the spec was wrong
  • Any finding that affected 2+ agents (indicates a systemic documentation gap)