Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when running VALIDATE V2-V3 fan-out. Two-layer investigation (4 dimension agents + per-section feasibility agents) synthesized into PASS/CONDITIONAL/BLOCKED net gate. Strategy-agnostic.
.claude/skills/withkynam-vc-validate-findings/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 214% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 4% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 223% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 273% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 149% | 0% |
> Output style: Follow process/development-protocols/communication-standards.md — answer-first, plain language, no unexplained jargon, TL;DR on long responses.
Defines the role specs, prompts, and output schemas for the two-layer VALIDATE fan-out (a parallel check across 4 dimensions + per-section feasibility probes). Produces a net gate verdict (PASS / CONDITIONAL / BLOCKED) and all the inputs needed to write the validate-contract — the written checklist that gates EXECUTE.
references/example-validate-output.md — full V4 menu + validate-contract template; calibrate output format against this filevc-validate-agent after V1 pre-check passesThis skill is STRATEGY-AGNOSTIC. It defines the role specs, prompts, and output schemas for each dimension/section agent. It does NOT determine how those agents are executed (Workflow vs parallel Agent tool vs vc-team).
The execution method is determined by vc-agent-strategy-compare, which must be invoked BEFORE vc-validate-findings is called. vc-validate-findings outputs agent role definitions; the caller executes them using the recommended strategy.
Choose before spawning any agents. Pass the selected mode to all Layer 1 and Layer 2 agents in their prompt context.
Runs the Layer 1 + Layer 2 fan-out using context available in the current conversation. Validation agents derive context from the plan file and what was passed in the prompt.
Appropriate when:
Trigger when any one of the following is true:
How Deep Mode works — run this context-loading step BEFORE spawning any Layer 1 or Layer 2 agents:
process/context/all-context.md routing table → identify which context groups are relevant to the blast radiusall-*.md files (e.g. container/all-container.md, infra/all-infra.md, tests/all-tests.md, skills/all-skills.md) — only the groups that applyprocess/features/{feature}/active/{slug}_{date}/{slug}_REPORT_{date}.md) or legacy process/features/{feature}/reports/ (read-only legacy path)Quality difference in practice:
Always run all four, regardless of complexity score. These run in parallel.
| Dimension | Focus | Context to attach | |---|---|---| | Infra/setup fit | Does this work with container/worker/proxy architecture? Are target file paths, port numbers, and runtime surfaces correct? | process/context/all-context.md routing → container and infra groups (follow routing table for local paths) | | Test coverage | Is the verification strategy realistic given the test infra? Which tiers apply (fully-automated / hybrid / agent-probe)? | process/context/tests/all-tests.md | | Breaking changes | Identify API contracts, schemas, auth flows, or public contract changes. Are downstream consumers listed and safe? | Plan's Public Contracts and Blast Radius sections | | Security surface | Quick STRIDE/OWASP scan. Does the plan touch auth, billing, data, secrets, or trust boundaries? | vc-security skill context |
Note: the security surface dimension INVOKES the vc-security skill — do not absorb vc-security's logic here.
Dimension: [name]
Status: PASS | CONCERN | FAIL
Findings:
- [finding 1]
- [finding 2]
Confidence: HIGH | MEDIUM | LOW
Notes: [optional context]One agent per plan section or phase. These run in parallel with each other (and may overlap with Layer 1 in time, but Layer 2 results are presented after Layer 1 results are collected).
Each Layer 2 agent must answer four questions — not just "are edit targets findable?":
Section: [section name or phase number]
Status: PASS | CONCERN | FAIL
Mechanical feasibility: [verdict + evidence]
Gaps found: [list or "none"]
Conflicts found: [list or "none"]
Highest-risk edit + mitigation: [description]Warning: A Layer 2 agent that only confirms edit targets are findable without assessing gaps and conflicts is incomplete and must be re-run with the full four-question prompt.
When answering the 4 questions above, if a plan section depends on an untested runtime/system behavior (network/protocol/runtime/third-party response shape) that cannot be verified by reading source files, the Layer 2 agent MUST:
VC-FEASIBILITY-PROBE-NEEDED: [hypothesis] — cost-class: [class] and halt.Mechanical checks (NO probe): edit targets findable by Grep, file exists, schema field present, export names matchable, port in the container table, config key present in env.ts.
Examples of mechanical checks (NO probe): "does src/env.ts export a <SERVICE>_JWT_SECRET field?" → read the file; "does the container table list port 3000 for the gateway service?" → read the table.
Probe candidates (emit + halt): any behavior that requires a running system, live network call, or in-container exec to verify.
Examples of probe candidates: "does the gateway forward the X-Custom-Routing header to the upstream provider at runtime?", "does the container proxy honor the allow-list config field when injecting platform keys?", "does the OpenRouter API return pricing as a string or a number?".
Note: For each CONCERN found, INVOKE vc-scenario. For high-risk flagged concerns, INVOKE vc-predict.
The vc-validate-agent (or orchestrator) synthesizes all Layer 1 and Layer 2 outputs:
Note: Invoke vc-sequential-thinking at this synthesis step for contradiction ranking.
Present this exact table format after synthesis:
| Layer 1 dimensions | Status | |---|---| | Infra fit | PASS / CONCERN / FAIL | | Test coverage | PASS / CONCERN / FAIL | | Breaking changes | PASS / CONCERN / FAIL | | Security surface | PASS / CONCERN / FAIL |
| Layer 2 sections | Status | |---|---| | Section A — name] | PASS / CONCERN / FAIL | | Section B — name] | PASS / CONCERN / FAIL | | Section N — name] | PASS / CONCERN / FAIL |
Totals: N] FAILs / N] CONCERNs / N] PASSes
→ Net Gate: PASS / CONDITIONAL / BLOCKED]
Decision rules:
Use this table format for each dimension's findings (Section I of the V4 menu):
| Finding | Severity | Proposed fix | |---|---|---| | Finding description] | CONCERN / FAIL | Proposed fix — apply to plan, execute-agent instruction, or backlog artifact] | | Finding description] | ✅ PASS | — |
Show PASS findings as ✅ PASS with — in the proposed fix column.
Show the summary below to the user before they approve EXECUTE (before gate V5). These changes are applied to the plan file when the user accepts.
| # | What changes | Where in plan | Why | |---|---|---|---| | P1 | e.g. Add route registration step to Section A checklist] | Section A — Implementation Checklist] | Gap found: route not reachable without this step] | | P2 | e.g. Correct blast radius: add downstream consumers] | Blast Radius section] | Breaking-changes agent found unlisted consumers] | | PN | ...] | ...] | ...] |
Concerns that cannot be fixed in plan text — written to the validate-contract for execute-agent to follow:
| # | Instruction | Trigger condition | |---|---|---| | E1 | e.g. Confirm exact file path before writing Section A. If path differs: update edit target, do NOT skip. Document corrected path in phase report.] | Section A entry | | E2 | e.g. Container change requires image rebuild. Use docker:build + container recreate via API lifecycle. Never docker cp.] | Section D entry | | EN | ...] | ...] |
| Artifact | Location | What it tracks | |---|---|---| | e.g. test-envelope-regression_NOTE_03-06-26.md] | process/features/development-process/backlog/] | Envelope regression test against downstream consumers] | | ...] | ...] | ...] |
After the validate-contract is written to the plan file (V6), the skill stores the /goal block.
Single plan: derive the /goal block from plan content (SESSION GOAL, charter, autonomy rules, hard stops, next phase, contract summary, execute start command). Write it to the plan file under a new ## Autonomous Goal Block section.
Multi-phase program: the /goal already exists in the umbrella ## Stable Program Goal. Do NOT rewrite it — only verify it is current and points to the umbrella path.
The /goal block must include:
Multi-phase program rule: If operating within a phase program (umbrella plan exists), emit the /goal block update automatically without asking — do not prompt the user.
Single-plan rule: Store the /goal block during V6. Whether it is printed for copy-paste is decided by the validate-agent's single V5 gate option (Accept vs Accept + print /goal). This skill does not open an extra prompt or separate user round-trip.
/goal must be fully copy-pastable (plain text block, no special formatting, under 4000 chars).
V5 during /goal autonomous execution: agent self-decides (CONDITIONAL → proceed, BLOCKED → backlog + proceed to next non-blocked phase). Skip any print ask — user is not present.
Other measured skills in the registry, with their headline benchmark lift.