Skip to main content

veto-cli-e2e-test

Run isolated E2E tests from ai_docs/tests runbooks against the veto release binary. Use this skill whenever the user asks to: run an E2E test, execute a test runbook, validate a feature end-to-end, create a new runbook, or test CLI behavior in the sandbox. If you need to run a multi-step CLI validation sequence (init → check → gate → verify), this is the skill. Prefer this over ad-hoc command sequences for any test that follows a runbook or needs reproducible results.

Quellinformationen

Repository
runkids/veto
Letzte Quellaktivität
7. März 2026 um 08:53
Erkannte Sprache von SKILL.md
Englisch
Sterne
7
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
veto-cli-e2e-test
description
Run isolated E2E tests from ai_docs/tests runbooks against the veto release binary. Use this skill whenever the user asks to: run an E2E test, execute a test runbook, validate a feature end-to-end, create a new runbook, or test CLI behavior in the sandbox. If you need to run a multi-step CLI validation sequence (init → check → gate → verify), this is the skill. Prefer this over ad-hoc command sequences for any test that follows a runbook or needs reproducible results.
argument-hint
[runbook-name | new]
targets
["claude"]
Run isolated E2E tests against the veto release binary. $ARGUMENTS specifies runbook name or "new". ## Flow ### Phase 0: Environment Check 1. Ensure release binary exists: ```bash cargo build --release ``` 2. Verify binary works: ```bash ./target/release/veto --version ``` ### Phase 1: Detect Scope 1. Read all `*_runbook.md` files under `ai_docs/tests/` 2. Identify recent changes: ```bash git diff --name-only HEAD~3 ``` 3. Match changes to relevant runbooks: - `src/rules/` → `e2e_core_runbook.md` (risk classification tests) - `src/auth/` → auth-related runbooks - `src/commands/allow.rs` → allowlist runbooks - `src/cli/` → CLI flag/subcommand runbooks ### Phase 2: Select Tests - **Option A**: Run existing runbook (match to recent changes) - **Option B**: Run `scripts/e2e.sh` (automated 13-test suite) - **Option C**: Generate new runbook for untested feature - If $ARGUMENTS specifies a runbook, skip to Phase 3 ### Phase 3: Execute #### Running automated e2e suite: ```bash make e2e ``` #### Running in Docker sandbox (isolated): ```bash make sandbox # Inside sandbox: ./scripts/e2e.sh ``` #### Running specific runbook manually: 1. Read the selected runbook `.md` file 2. Execute each step sequentially 3. After each step, verify conditions in the Expected block 4. Mark each step PASS / FAIL #### Generating new runbook: 1. Read `git diff HEAD~3` to find changed files in `src/` 2. Read changed files to understand new/modified functionality 3. Verify all CLI flags exist: ```bash # Check flag exists in cli/mod.rs grep -n "flag_name" src/cli/mod.rs ``` 4. Generate new runbook to `ai_docs/tests/<slug>_runbook.md` 5. Run the quality checklist before executing ### Phase 4: Report Output summary: ``` ── E2E Test Report ── Runbook: {runbook name} Duration: {time} Step 1: {description} PASS Step 2: {description} PASS Step 3: {description} FAIL ← {error detail} ... Result: {N}/{total} passed ``` If any FAIL → distinguish: - **Runbook bug**: wrong flag, stale assertion → fix runbook - **Real bug**: CLI misbehavior → analyze cause, provide fix ## Runbook Quality Checklist Before executing a newly generated runbook: - [ ] **All CLI subcommands exist** — verify in `src/cli/mod.rs` - [ ] **All flags exist** — grep `src/cli/mod.rs` for each `--flag` - [ ] **Exit codes match** — `check` returns non-zero for blocked commands - [ ] **Auth context** — `gate` requires auth; in headless env, behavior differs from macOS - [ ] **Config isolation** — use `VETO_CONFIG_DIR` or `--force` to avoid polluting real config - [ ] **Binary path** — use `./target/release/veto`, not system-installed version ## Runbook Template ```markdown # CLI E2E Runbook: <Title> <One-line summary of what this validates.> **Origin**: <version> — <why this runbook exists> ## Scope - <bullet list of behaviors being validated> ## Environment - Release binary: `./target/release/veto` - Optional: Docker sandbox (`make sandbox`) ## Steps ### 1. Setup: <description> \```bash <commands> \``` **Expected**: <what should happen> ### 2. <Action>: <description> ... ## Pass Criteria - All steps marked PASS - <additional criteria> ``` ## Rules - **Always build release first** — `cargo build --release` - **Use config isolation** — set `VETO_CONFIG_DIR` to temp dir for stateful tests - **Don't abort on failure** — record FAIL, continue to next step, summarize at end - **Verify every step** — never skip Expected checks - **veto = ./target/release/veto** — use the release binary, not debug
Auf GitHub ansehen