validatelisted
Install: claude install-skill SamyakJhaveri/loam
# Post-Session Validation Loop
**Trigger:** When user types `/validate`, `/validate quick`, or `/validate fix`
Runs a two-wave validation loop after implementation, before commit. Wave layers follow `.claude/rules/layer-triage.md` (60/30/10): deterministic first, rule-based second. Both waves are LLM-free. Deep adversarial review (the probabilistic Layer 3) is not part of the gate — invoke `/session-critique` manually when you want it.
## Arguments
- (none) or `full` → both waves (recommended)
- `quick` → Wave 1 only (~30s deterministic; writes `waves_passed=1` — INSUFFICIENT for commit)
- `fix` → re-run failed waves only (after implementing fixes)
## Prerequisites
1. All implementation work for the session is complete (files saved)
2. Files are NOT yet committed (`git diff HEAD` shows your changes)
## Workflow
### Step 0: Snapshot (before any wave)
```bash
echo "=== PRE-VALIDATION SNAPSHOT ==="
echo "Changed files: $(git diff --name-only HEAD | wc -l)"
git diff --name-only HEAD
```
If no files changed → write sentinel with `waves_passed=2` and exit (nothing to validate).
---
### WAVE 1 — Deterministic (~10–30s)
Pure tooling. **Zero LLM calls.**
```bash
# Lint
uv run ruff check . 2>&1 | tail -20
# Type check
command -v mypy >/dev/null && mypy . 2>&1 | tail -20
# Whitespace and conflict markers
git diff --check 2>&1 | tail -10
# New TODO/FIXME/XXX added in diff (informational unless policy)
git diff HEAD | grep -nE '^\+.*\b(TODO|FIXME|XXX)\b' || true
# Shell