@@ -131,6 +131,55 @@ unclear:
131131blacksmith testbox list
132132```
133133
134+ ## Efficient Bug E2E Verification
135+
136+ Use the smallest Crabbox lane that proves the reported user path, not just the
137+ touched code. Aim for one after-fix E2E proof before commenting, closing, or
138+ opening a PR for a user-visible bug.
139+
140+ Pick the lane by symptom:
141+
142+ - Docker/setup/install bug: build a package tarball and run the matching
143+ ` scripts/e2e/*-docker.sh ` or package script. This proves npm packaging,
144+ install paths, runtime deps, config writes, and container behavior.
145+ - Provider/model/auth bug: use a live lane when a ` .profile ` /Testbox profile key
146+ is available; otherwise use the repo's mock provider lane and state clearly
147+ that live provider auth was not exercised.
148+ - Channel delivery bug: use the channel Docker/live lane when available; include
149+ setup, config, gateway start, send/receive or agent-turn proof, and redacted
150+ logs.
151+ - Gateway/session/tool bug: prefer an end-to-end CLI or Gateway RPC command that
152+ creates real state and inspects the resulting files/API output.
153+ - Pure parser/config bug: targeted tests may be enough, but still run a
154+ Crabbox command when OS, package, Docker, secrets, or service lifecycle could
155+ change behavior.
156+
157+ Efficient flow:
158+
159+ 1 . Reproduce or prove the pre-fix symptom when feasible. If the issue cannot be
160+ reproduced, capture the exact command and observed behavior instead.
161+ 2 . Patch locally and run narrow local tests for edit speed.
162+ 3 . Run one Crabbox E2E command that starts from the user-facing entrypoint:
163+ package install, Docker setup, onboarding, channel add, gateway start, or
164+ agent turn as appropriate.
165+ 4 . Record proof as: Testbox id, command, environment shape, redacted secret
166+ source, and copied success/failure output.
167+ 5 . If the issue says "cannot reproduce", ask for the missing config/log fields
168+ that would distinguish the tested path from the reporter's path.
169+
170+ Keep it efficient:
171+
172+ - Reuse existing E2E scripts and helper assertions before writing ad hoc shell.
173+ - Use one-shot Crabbox for a single proof; use a reusable Testbox only when
174+ several commands must share built images, installed packages, or live state.
175+ - Prefer ` OPENCLAW_CURRENT_PACKAGE_TGZ ` with Docker/package lanes when testing a
176+ candidate tarball; prefer the repo's package helper instead of direct source
177+ execution when the bug might be packaging/install related.
178+ - Keep secrets redacted. It is fine to report key presence, source, and length;
179+ never print secret values.
180+ - Include ` --timing-json ` on broad or flaky runs when command duration or sync
181+ behavior matters.
182+
134183## Reuse And Keepalive
135184
136185For most Blacksmith-backed Crabbox calls, one-shot is enough. Use reuse only
0 commit comments