Jasper - Gotchas¶
Common Pitfalls in Test Reconciliation¶
This file documents common mistakes and how to avoid them.
Gotcha Template¶
## Gotcha: {Title}
**What it is:** {Description of the mistake}
**Why it happens:** {Common causes}
**How to avoid:** {Prevention strategy}
**Example:** {Real example from GE projects, if available}
Classification Gotchas¶
Gotcha: Assuming Test Names Match¶
What it is: Assuming TDD and POST tests with different names are different tests
Why it happens: - TDD tests follow specification naming conventions - POST tests follow implementation/developer naming conventions - Same behavior, different terminology
How to avoid: - Always perform semantic analysis (compare behavior, not just names) - Use three-pass reconciliation pattern - Check test inputs and expected outputs, not just test names
Example:
- TDD test: test_invalid_email_returns_400
- POST test: should_reject_malformed_email_address
- Same test, different names → don't route as coverage gap
Gotcha: Classifying Error Message Tests as Implementation Details¶
What it is: Approving error message validation tests as Type 3 (implementation detail) when they should be Type 2 (spec-derivable)
Why it happens: - Error messages feel like "implementation details" - Specifications often include error message requirements - Easy to overlook error messages in formal specifications
How to avoid: - Always check formal specification for error message requirements - If specification defines error message → Type 2 (TDD should have caught it) - If specification silent on error message → Type 3 (implementation detail)
Impact: - Incorrect classification allows TDD gaps to persist - Error messages are part of API contract (not implementation detail)
Gotcha: Escalating Instead of Routing¶
What it is: Escalating clear coverage gaps to Ron instead of routing to appropriate teams
Why it happens: - Uncertainty about classification - Fear of making wrong routing decision - Desire to defer responsibility
How to avoid: - Use divergence classification matrix (Type 1-4) - Only escalate Type 4 (conflicts) and ambiguous cases - Type 1, 2, 3 should be routed autonomously - Trust classification, don't over-escalate
Impact: - Slows down reconciliation process - Creates unnecessary work for Ron - Reduces Jasper's effectiveness
Conflict Resolution Gotchas¶
Gotcha: Assuming Implementation is Correct¶
What it is: Siding with POST test expectations because "implementation is reality"
Why it happens: - Implementation exists, specification is abstract - Bias toward concrete over abstract - Desire to avoid implementation changes
How to avoid: - Formal specification is ground truth, not implementation - If implementation contradicts specification → implementation is wrong - Always load specification before arbitrating - Let Ron decide if specification should change (not Jasper's authority)
Impact: - Allows specification violations to reach production - Undermines TDD process (specification becomes meaningless)
Gotcha: Resolving Conflicts Without Ron¶
What it is: Choosing which test expectation is "correct" without escalating to Ron
Why it happens: - Conflict seems obvious - Desire to move faster - Specification appears clear
How to avoid: - ALL Type 4 conflicts must escalate to Ron - Even "obvious" conflicts need arbitration (cognitive bias) - Jasper's role is routing, not arbitration - Never approve conflicting tests without resolution
Impact: - Incorrect conflict resolution - Undermines Ron's guardian role - Creates precedent for skipping arbitration
Process Gotchas¶
Gotcha: Approving Deployment with Unresolved Conflicts¶
What it is: Allowing deployment to proceed despite open Type 4 conflicts
Why it happens: - Pressure to ship - "Ship it and fix later" mentality - Assuming conflict is minor
How to avoid: - Zero tolerance for unresolved conflicts at deployment - Block deployment if reconciliation incomplete - Escalate to human if deployment pressure conflicts with quality - Document conflict as blocker explicitly
Impact: - Production bugs - Contradictory test suite (undermines testing trust) - Technical debt
Gotcha: Missing Systemic Patterns¶
What it is: Treating each reconciliation independently, missing recurring coverage gaps
Why it happens: - Focus on current reconciliation only - No longitudinal analysis - Missing forest for trees
How to avoid: - Track reconciliation metrics over time - Identify recurring divergence types - Escalate patterns to Annegreet for process improvement - Review past reconciliations monthly
Impact: - Systemic TDD or POST gaps persist - Repeated work on same types of divergences - Missed opportunity for process improvement
Gotchas will be added as Jasper encounters pitfalls and Annegreet documents them for future avoidance.