claw-code/.guardrails/docs/workflows/TESTING_VALIDATION.md

7.3 KiB

Testing & Validation Protocols

Double-check all work before committing.

Related: AGENT_GUARDRAILS.md | COMMIT_WORKFLOW.md


Overview

This document defines validation functions and git diff verification patterns to ensure all changes are correct before committing. Use these protocols to double-check work and catch errors early.


Validation Function Patterns

Pre-Edit Validation

Before making any edit, validate these conditions:

Check Command/Method Expected Result
File exists test -f <file> Exit code 0
File readable Read tool returns content No error
Target content exists Search for old_string Found at expected location
Line numbers match Count lines to target Matches expected range
No pending changes git status <file> Clean or expected state

Pre-Edit Checklist:

[ ] Target file exists and is readable
[ ] Target content found at expected location
[ ] Line numbers match documentation
[ ] No unexpected modifications in file
[ ] Rollback command identified

Post-Edit Validation

After every edit, immediately verify:

Check Command/Method Pass Condition
Edit succeeded Tool response "Success" or equivalent
Syntax valid Language-specific check No errors
Content correct Read edited section Matches expected
No collateral damage git diff Only expected changes

Post-Edit Checklist:

[ ] Edit tool reported success
[ ] Syntax check passes
[ ] Re-read confirms correct content
[ ] Git diff shows only intended changes
[ ] No unrelated files modified

Git Diff Verification Patterns

Reviewing Changes Before Commit

Standard diff review workflow:

# Step 1: See what files changed
git status

# Step 2: Review changes in each file
git diff <file>

# Step 3: Verify only expected changes
# Look for:
# - Lines starting with + (additions)
# - Lines starting with - (deletions)
# - Context lines (unchanged)

# Step 4: Check for unintended changes
git diff --stat  # Summary view

Diff verification checklist:

[ ] Only expected files appear in git status
[ ] git diff shows only intended changes
[ ] No commented-out code added
[ ] No debug/logging statements added
[ ] No whitespace-only changes
[ ] No unrelated "improvements"

Double-Check Verification Protocol

For critical changes, use this enhanced verification:

DOUBLE-CHECK PROTOCOL:

1. FIRST CHECK (Immediate)
   - Review git diff output
   - Verify expected changes present
   - Confirm no unexpected changes

2. SECOND CHECK (Contextual)
   - Re-read the modified section in context
   - Verify logic is correct
   - Check for typos or errors

3. THIRD CHECK (Functional)
   - Run syntax check
   - Run relevant tests
   - Verify behavior matches expectation

Validation Checklists

Code Change Validation

Step Command Expected Result
1. Syntax check See language-specific No errors
2. Related tests <test-command> <test-file> All pass
3. Git diff review git diff Only expected changes
4. Re-read edited code Read tool Correct content

Documentation Change Validation

Step Command Expected Result
1. Markdown valid Render check No errors
2. Links work Check references All resolve
3. Line count wc -l <file> Under 500 lines
4. Git diff review git diff Only expected changes

Language-Specific Validation

Python

# Syntax check
python -m py_compile <file.py>

# Type check (if using mypy)
mypy <file.py>

# Run tests
pytest <test_file.py> -v

# Lint check
flake8 <file.py>

JavaScript / TypeScript

# Syntax check (Node.js)
node --check <file.js>

# TypeScript compile check
tsc --noEmit <file.ts>

# Run tests
npm test -- --grep "<test-name>"
# or
jest <test_file.js>

# Lint check
eslint <file.js>

Go

# Syntax/compile check
go build ./...

# Run tests
go test ./... -v

# Lint check
golint ./...

Rust

# Compile check
cargo check

# Run tests
cargo test

# Lint check
cargo clippy

Generic (Any Language)

# Verify file is valid (basic)
cat <file> > /dev/null && echo "File readable"

# Check for common issues
grep -n "TODO\|FIXME\|XXX" <file>  # Find incomplete markers
grep -n "console.log\|print(" <file>  # Find debug statements

Validation Decision Matrix

Condition Action
Syntax check passes Proceed to tests
Syntax check fails HALT, rollback, report
Tests pass Proceed to commit
Tests fail HALT, rollback, report
Diff shows expected changes Proceed
Diff shows unexpected changes HALT, investigate
Uncertain about anything HALT, ask user

Error Handling

When Validation Fails

1. DO NOT proceed with commit
2. Execute rollback: git checkout HEAD -- <file>
3. Report failure with:
   - Which check failed
   - Error message/output
   - Line numbers if applicable
4. Wait for user guidance
5. DO NOT retry without explicit instruction

Common Validation Errors

Error Cause Resolution
Syntax error Invalid code Rollback, fix code
Test failure Logic error Rollback, investigate
Diff too large Scope creep Rollback, limit scope
Wrong file modified Path error Rollback, verify path

Integration with To-Do Workflow

Validation should occur at these points:

TODO ITEM START
    ↓
[Make changes]
    ↓
✓ POST-EDIT VALIDATION ← Run validation here
    ↓
[If pass] → COMMIT
    ↓
[If fail] → ROLLBACK → Report → Stop

See COMMIT_WORKFLOW.md for commit procedures.


Quick Reference

+------------------------------------------------------------------+
|              VALIDATION QUICK REFERENCE                           |
+------------------------------------------------------------------+
| PRE-EDIT:                                                         |
|   [ ] File exists                                                 |
|   [ ] Content at expected location                                |
|   [ ] Rollback command ready                                      |
+------------------------------------------------------------------+
| POST-EDIT:                                                        |
|   [ ] Edit succeeded                                              |
|   [ ] Syntax check passes                                         |
|   [ ] Tests pass                                                  |
|   [ ] Git diff shows only expected changes                        |
+------------------------------------------------------------------+
| IF VALIDATION FAILS:                                              |
|   1. Rollback immediately                                         |
|   2. Report error to user                                         |
|   3. DO NOT proceed                                               |
+------------------------------------------------------------------+

Last Updated: 2026-01-14 Authored by: TheArchitectit Document Owner: Project Maintainers Line Count: ~280