Validating
If preflight readiness is missing, stale, or blocked (check .pulse/tooling-status.json), stop and invoke pulse:using-pulse.
Purpose
Do not start execution unless current work is feasibility-ready in real repo conditions. This skill verifies that:
- mode and shape still fit current reality
- assumptions are proven with concrete evidence
- current-work artifacts are executable
- beads are schema-valid and implementation-ready when needed
- execution stays blocked until explicit user approval
Non-Negotiable Gates
- Gate A — Approved shape is required in
work-shape.md,phase-plan.md, orepic-map.md. - Gate B — Reality + feasibility must pass before structural polish.
- Gate C — If beads exist, bead schema must pass before structural checker.
- Gate D (Gate 3) — Explicit user approval is mandatory before execution.
If any gate fails, stop and route back; never “proceed anyway.”
Required Inputs
history/<feature>/CONTEXT.mdhistory/<feature>/discovery.mdhistory/<feature>/approach.md- approved shape artifact:
work-shape.md,phase-plan.md, orepic-map.md - mode-required current-work artifacts:
- direct/spike/small: current work in
work-shape.md - epic-map:
current-story-pack.md - phase-plan:
phase-<n>-contract.mdandphase-<n>-story-map.md
- direct/spike/small: current work in
.beads/*.mdfor current work only when beads already exist
If any required non-bead artifact is missing, return to pulse:planning.
Runtime Flow (Hot Path)
0) Orient to mode, shape, and current work (mandatory every run)
Read both:
- approved shape artifact (source of truth)
.pulse/STATE.md(mirror)
Confirm and present:
- mode
- shape artifact and approval status
- current work and practical goal
- mirror status (in sync / out of sync / missing)
If shape approval is not APPROVED, stop.
If shape artifact and mirror disagree, stop and return to planning for sync.
Use orientation template from references/runtime-appendix.md.
1) Reality gate (fail fast)
Run mode-fit and repo-fit checks before structural validation:
- mode still matches task reality
- approved shape matches real constraints
- assumptions are explicit and testable
- no smaller safe path is being overruled without reason
- proof surface exists (files/APIs/commands/runtime checks)
If reality gate fails, route back to planning.
2) Feasibility matrix + spikes/probes
Build feasibility matrix for blocking assumptions:
- always for
high_risk_feature - for
standard_featurewhenever meaningful assumptions remain
Require spikes for unproven assumptions that can invalidate current work:
- one spike bead = one yes/no
spike_question - isolated execution with 30-minute timebox
- findings at
.spikes/<feature>/<spike-id>/FINDINGS.md - definitive
YESorNO
If timebox expires without decision:
- present findings
- offer +15m extension only with explicit approval, replan, or mitigation
- never continue silently
Decision handling:
- YES: require planning-owned artifacts/beads to reflect constraints before execution approval (route to planning when those artifacts must change)
- NO: stop, update planning artifacts, return to planning, then re-run validating
Bead-absence branch (feasibility-first path):
- If feasibility is
READYorREADY WITH CONSTRAINTSand beads are required for current work but do not yet exist, stop and route topulse:planningto create only validated current-work beads. - After bead creation, resume
pulse:validatingat Schema Gate, then continue structural checks and bead review before Gate 3 approval.
3) Schema gate (before structural checker)
Run schema gate only when current-work beads exist.
Before any structural checker:
- verify every bead has canonical required fields
- verify
testing_mode: tdd-requiredbeads include red/greentdd_steps - verify
verifyandverification_evidenceare concrete - verify file scope is not obviously overbroad
- verify HIGH-risk beads include meaningful
learning_refswhen prior recall clearly applies
If schema fails, repair bead schema defects when local/clear; route to planning when the fix requires reshaping planning-owned artifacts.
Use schema checklist in references/runtime-appendix.md.
4) Structural verification (max 3 iterations)
Run plan-checker only after feasibility + schema pass. PASS only if all dimensions pass:
- mode/shape coherence
- current-work coverage and ordering
- decision coverage
- dependency correctness
- file scope isolation
- context budget
- verification completeness
- integration/exit-state/risk coherence
Rules:
- PASS only if all dimensions pass.
- On fail, fix exact artifacts and re-run.
- Maximum 3 iterations. If still failing after 3, escalate and stop.
5) Bead polishing and readiness
When beads are required, polish bead graph:
bv --robot-suggestfor dependency completenessbv --robot-insightsfor cycles/bottlenecks/orphansbv --robot-priorityfor foundational ordering- deduplicate overlapping same-goal same-scope beads
- run fresh-eyes bead review and resolve all CRITICAL flags
- confirm current-work ↔ bead mapping coherence both directions
Then run readiness check:
- entry state is concrete
- exit state is observably provable
- integration path is credible
- verification is concrete
- architecture boundaries are preserved
- scopes remain surgical
Any “no/not sure” routes back to planning artifacts or bead set; do not approve.
6) Final approval gate (Gate 3 hard stop)
Present validation summary and request explicit approval. Use structured question tools when available; otherwise plain text.
Execution is forbidden until approval is explicit.
On approval:
- update
.pulse/STATE.mdand.pulse/state.jsonto validated status - default approved path: record
gate: GATE 3,gate_status: approved,next_action: manual_invoke, and setnext_skill_recommendedfromrecommended_mode, then stop - optional fast path: only continue in the same session when the user explicitly chooses an equivalent of
Approve and continue now; in that case setnext_action: continue_nowbefore continuing - mode mapping for
next_skill_recommended:recommended_mode=swarm→pulse:swarmingrecommended_mode=single-worker→pulse:executing
On rejection:
- capture concern category and route back precisely (shape/current-work/approach/beads)
Use final approval template/options in references/runtime-appendix.md.
Execution Mode Compatibility
Validating must support both downstream modes:
- Swarm mode: all validations complete, recommend
pulse:swarmingas next skill and default tonext_action: manual_invoke - Single-worker mode: all validations complete, recommend
pulse:executingas next skill and default tonext_action: manual_invoke
Only switch to next_action: continue_now when the user explicitly asks to keep going in the same context. The validation standard is identical in both modes.
Lightweight Mode
Allowed only for confirmed LOW-risk direct/small single-slice work:
- abbreviated reality + feasibility check
- skip spikes
- run
bv --robot-suggestwhen beads exist - still require Gate 3 explicit approval
If uncertain, run full mode.
Context Budget
If context exceeds 65%, write a validating-owned handoff using the shared envelope and register it in .pulse/handoffs/manifest.json.
Red Flags
- any execution before Gate 3 approval
- skipping orientation on resume
- validating while shape approval is not
APPROVED - validating when shape artifact and
.pulse/STATE.mddisagree - running structural checker before reality/feasibility/schema pass
- attempting a 4th structural iteration
- missing or non-decisive HIGH-risk spike outcomes
- continuing after a
NOspike - unresolved CRITICAL bead-review flags at approval time