SuperAPI AI Directory

validation

Coding & development

View repository

Updated 10-15 17:29

About this skill

/validation — Full Validation Phase Orchestrator

YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.

Loop position: moves 6 (slice acceptance) + bead acceptance roll-up of the operating loop. Consumes wave outputs; produces a slice-validation roll-up: every Given/When/Then from the intent issue must map to a passing test. Activity logs do not close beads.

Strict Delegation Contract (default)

Validation delegates to /vibe, /post-mortem, /retro, and /forge (plus lifecycle skills /test, /deps, /review, /perf) via Skill(skill="<name>", ...) calls — separate tool invocations. Strict delegation is the default.

Anti-pattern to reject: spawning judges via Agent() in place of /vibe, inlining post-mortem analysis, skipping /forge. See ../shared/references/strict-delegation-contract.md for the full contract and supported compression escapes (--quick, --no-retro, --no-forge, --no-lifecycle, --no-behavioral, --allow-critical-deps).

See docs/learnings/orchestrator-compression-anti-pattern.md for the live compression signature. See references/isolation-contract.md for the four-lever model and the compression patterns scripts/check-skill-isolation.sh flags in phase-skill SKILL.md bodies. See references/best-practices.md for the lifecycle principle + anti-pattern citation table.

Validation owns the validate_acceptance port in the Intent-to-Loop Hexagon. The roll-up must preserve bounded context, context packet, guard adapters, done state, and fresh proof for each accepted scenario. Apply the Completion-Claim Kernel before accepting DONE/closed/green claims.

Execution

Run the DAG in references/dag.md — STEP 1 (vibe) → 1.5 (four-surface closure) → 1.6 (test pyramid) → 1.6b (validation-lane budget guard) → 1.7 (lifecycle: test/deps/review/perf) → 1.8 (behavioral) → 2 (post-mortem) → 3 (retro) → 4 (forge) → 5 (phase summary), no stopping between steps. That file owns the executable workflow, gate detail, blocking conditions, phase summary format, phase budgets, and the expensive-command policy.

Flags

Flag Default Description
--complexity=<level> auto Force complexity level (fast / standard / full). Matches /rpi and /discovery syntax.
--interactive off Human gates in validation report review (before writing summary). Does NOT override /vibe council autonomy.
--no-lifecycle off Skip ALL lifecycle checks in STEP 1.7 (test, deps, review, perf)
--lifecycle=<tier> matches complexity Controls which lifecycle skills fire: minimal (test only), standard (+deps, +review), full (+perf)
--no-retro off Skip retro step only
--no-forge off Skip forge step only
--no-budget off Disable phase time budgets
--strict-surfaces off Make all 4 surface failures blocking (FAIL instead of WARN). Passed automatically by /rpi --quality.
--allow-critical-deps off Allow shipping with CVSS >= 9.0 vulnerabilities (acknowledged risk acceptance)

See references/flags.md for flag interactions, precedence, and combined-flag examples.

Blind Sub-Agent Judge (author ≠ validator, same-session OK)

The acceptance verdict this phase certifies MUST be produced by a context that did not author the code (ag-9jle.5, the no-self-grading invariant from ag-lmdx.4). Validation MAY run inside the authoring session, but the judge MUST be a blind sub-agent: a fresh, context-isolated agent given only the diff/artifact + the acceptance scenarios (the bead's ## Scenarios block or the .feature file) — never the authoring conversation, plan, or reasoning.

  • STEP 1 delegates to /vibe, whose council judges are context-isolated sub-agents and whose Step 4.5 spawns the blind judge and records judge_id (sub-agent context) distinct from author_id (authoring context). This is the acceptance judge — do NOT replace it with an inline self-review by the authoring orchestrator.
  • Refuse to certify acceptance (output <promise>DONE</promise>) when no context-isolated judge produced the verdict — i.e. when judge_id == author_id. Re-run the verdict through a blind sub-agent judge instead. The only escape is /vibe --allow-self (inline fallback when no sub-agent runtime is available), which stamps the verdict as self-graded; ao turn verify then reports it as waived, not independently validated.

Expensive Command Policy

Routine validation is targeted by default. Broad proof commands such as go test -race, go test -shuffle, go test -count=N with N > 1, eval runners, retrieval bench, headless runtime smoke, and release gates require explicit operator/release/acceptance-criteria context. If one is run, record the reason and timeout in the phase summary.

When validating release-bound work, see references/release-readiness-gates.md for the additional gates that must pass before shipping.

Quick Start

/validation ag-5k2                        # validate epic with full close-out
/validation                               # validate recent work (no epic)
/validation --complexity=full ag-5k2      # force full council ceremony
/validation --no-retro ag-5k2             # skip retro only
/validation --no-forge ag-5k2             # skip forge only

Output Specification

Format: markdown summary to stdout + on-disk artifacts. Files written: .agents/rpi/phase-3-summary-YYYY-MM-DD-validation.md (phase summary), .agents/post-mortems/YYYY-MM-DD-<topic>.md, .agents/learnings/<slug>.md, .agents/findings/registry.jsonl (appended), .agents/ratchet/state.json. Exit signal: completion marker — see below.

Completion Markers

<promise>DONE</promise>    # Validation passed, learnings captured
<promise>FAIL</promise>    # Vibe failed, re-implementation needed (findings attached)

Troubleshooting

See references/troubleshooting.md.

Reference Documents