Claude Code skill: pick a project's verification toolchain before implementation by shortest agent-visible feedback loop (Default lookup / Escalate cross-vendor consensus); freezes it into tech-stack.md + AGENTS.md.
SaferSkills independently audited verification-toolchain-selector (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Picks how a project's steps get verified — the test/QA harness — and freezes that decision before the implementation loop starts. The goal is to eliminate the failure mode where agents reach for an inefficient verification tool (slow input→signal, no realtime error console visible to the agent, GUI-only) when a far tighter loop exists.
Canonical example. Expo / React Native app. Efficient: Maestro flows + the simulator on this machine (scriptable, realtime logs the agent can read, short feedback loop). Inefficient: running it through the Xcode GUI and debugging there (slow input, the agent can't see the error console in realtime). The selector must pick the former and forbid the latter.
Rank candidate harnesses by shortest agent-visible feedback loop:
A tool that fails (1) or (3) is disqualified regardless of other merits (this is why Xcode GUI debugging loses).
When this runs, ask the user: Default or Escalate. Do not auto-pick the mode.
| Mode | When | Cost |
|---|---|---|
| Default | Known stack with a well-established harness | Cheap, deterministic — a table lookup |
| Escalate | Novel/uncertain stack, conflicting options, or the user wants maximum rigor | Expensive — cross-vendor consensus (many tokens, on purpose) |
Map the stack to its established harness. Confirm with the user, then freeze. Starter table (extend as needed):
| Stack / type | Default verification harness |
|---|---|
| Expo / React Native (iOS/Android) | Maestro flows + simulator/emulator on this machine + EAS build for release; Jest for units. Not Xcode GUI. |
| Native iOS (Swift) | XCUITest headless via `xcodebuild test` (CLI, not the GUI) + simulator |
| Web app (React/Next/Vue/Svelte) | Playwright (headless) for E2E + component tests; Vitest/Jest units |
| Backend / REST / GraphQL API | contract/HTTP tests (httpie/supertest/pytest), run headless; schema checks |
| CLI tool | bats / pexpect / golden-file tests against the built binary |
| Library / SDK | the language's test runner headless (vitest/pytest/cargo test/go test) + public-API snapshot |
| Game | headless logic tests + scripted scene/action checks where the engine allows |
| MCP server / agent | protocol/tool-call harness exercising tools+resources headless |
If the stack isn't in the table or the user is unsure → recommend Escalate.
Based on stochastic-multi-agent-consensus, but cross-vendor (different model families = different blind spots) and role-structured (not 30 blind votes — that's weak signal per token for a convergent question). Defaults: 5 agents per vendor (15 total), web search mandatory.
Task tool (general-purpose, sonnet).omc ask codex "<prompt>" (CLI; skill nesting unsupported).-p/--print = non-interactive single prompt). Do not use omc ask gemini or a bare gemini — Gemini is always invoked through agy..omc/artifacts/ask/; `agy` prints to stdout — capture that directly. Claude reads both and aggregates.omc ask codex, 5×Gemini via agy -p.) Use framing variations (risk-averse, first-principles, CI-focused, DX-focused, contrarian) so same-vendor agents aren't identical.A ranked recommendation with the winning harness, its criteria scores, the dissent, and citations from the web-grounding step. Write the consensus report to .omc/artifacts/verification-toolchain/consensus.md.
These are strict — violating any one means the selection is invalid:
memory-bank/tech-stack.md under a## Verification Toolchain section, before the implementation loop starts. It does not change mid-loop.
memory-bank/tech-stack.md. Never substitute a slower or GUI-only tool (e.g. Xcode GUI debugging) for the defined harness. If the defined tool genuinely cannot run, stop and ask the user — do not improvise a slower path."*
feedback-loop length explicit. "It's familiar" is not a valid reason.
tech-stack.md.{
"verificationToolchain": {
"agentsPerVendor": 5, // Escalate: Claude/Codex/Gemini each
"webSearchRequired": true, // Escalate: grounding step is mandatory
"vendors": ["claude", "codex", "gemini"] // DeepSeek added later
}
}stochastic-multi-agent-consensus — the base voting mechanism this extends cross-vendor.ccg — Codex+Gemini+Claude synthesis; the lighter cousin used for spec review (Phase 0.5).vibe-coding — calls this at the required Phase 0.6 (Default vs Escalate; always runs before the loop) and consumes the frozen tech-stack.md toolchain at the step green gate.expo-react-native-verification-gate-generator, verification-core-claim-evidence — reuse for mobile/native specifics rather than rederiving.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.