dev-smoke · git:20261023.167a682 · 2026-10-23 · sha256 c131f67d7b3bc53d
dev-smoke git:20261023.167a682A
Immutable. This exact content never changes and is served at /api/v1/blob/c131f67d7b3bc53d.
--- name: dev-smoke description: AI DevKit · Map the user-facing flows a code change can affect, then build and run a disposable end-to-end smoke script against the real app in a sandbox. Use before calling a feature or fix done, when unit tests pass but the flow is untested, after cross-cutting changes, or when users ask for a smoke test, e2e check, impact check, or "does the whole flow still work". --- # Smoke Exercise the flows a change touches the way a user would, then throw the script away. Use `verify` to report the result and `dev-testing` for permanent tests. ## Rules - Drive the real entry point: built binary, running server, CLI, UI, or job. Imported functions and mocks are not smoke checks. - Run in a sandbox: temp dir, isolated `HOME` and config, empty git hooks, throwaway data. Never touch real user state. - Never hit production, shared environments, real credentials, or paid APIs. Ask before any outward-facing side effect: messages, emails, webhooks, deploys, pushes. - Keep secrets out of the script and its output. Read them from env vars only when the user provides them. - Write the script outside the repo (scratchpad or temp dir). Never commit it unless the user asks to promote it. - Timebox setup. If the app cannot run locally, say so and list what was not checked instead of faking a pass. ## Workflow 1. Read the change: `git diff` against the base branch, plus untracked files. 2. Map impact outward: changed symbols -> callers -> entry points (commands, routes, screens, jobs, hooks, config loading, migrations) -> user flows. 3. Add adjacent flows that share the changed code, config, or data, not only the requested feature. Note flows deliberately skipped and why. 4. List scenarios as setup / action / expected result, ordered by risk. Show the list and wait for the user to add or cut flows before writing the script. 5. Find how the project builds and starts; build once before the script runs. 6. Write the script in the project's shell or scripting language, following `references/smoke-template.sh`: - sandbox setup with cleanup on exit - one `run_check` per scenario that logs the command, exit code, and key output - assertions on output, files, HTTP status, or exit code, not just "it ran" - summary of PASS/FAIL per check and a non-zero exit on any failure 7. Run it. Read the full output. 8. If a check fails, rerun that check on the base commit in a separate worktree to tell a regression from a pre-existing failure. 9. Report through `verify`: scenarios, command, exit code, pass/fail per check, pre-existing failures, and flows not covered. 10. Delete the script and sandbox, or offer to promote valuable checks into a permanent test or the project's release smoke suite. ## Stop Pause when the impacted flows are unclear, a scenario needs production access or real credentials, setup needs destructive or shared-resource actions, or the run keeps failing for environment reasons unrelated to the change.