Other

/surface-sweep

Use when about to call a change done; after a frontend change; on a multi-client or multi-provider change; when it works on my path but may not elsewhere; when adding a setting, command, keybinding, or provider adapter; or when changing a wire contract. NOT for single-file leaf fixes with no shared consumer, adapter, entry point, state transition, or user-facing surface.

$ golems-cli skills install surface-sweep
100% best pass rate
3 assertions
1 eval
fixtures

Updated 1 week ago

Purpose

Prevent a change from working on the one path tested while remaining absent or broken elsewhere. Before declaring a multi-surface change done, account for all seven classes below. For every class, name the concrete sites checked or write N/A — <why this class does not exist or cannot be affected in this repo>. Silence is never an answer, and "all covered" is not a site inventory.

The seven classes

Surface classWhat it meansQuestion that must be answeredExample defect caught
Entry pointsEvery route by which a user or automation reaches the feature: UI, command, keybinding, flag, tool, URL, or schedule.Which settings screens, palettes, shortcuts, CLI flags, API/MCP tools, URLs, and scheduled jobs were checked?A new mode works through its CLI flag, but the scheduled job still calls the old entry point.
ClientsEvery consumer of the changed service, library, state, or protocol.Which desktop, web, mobile, CLI, worker, extension, or external consumers were checked on their own path?The desktop client sends a new field, but the CLI silently drops it.
ProvidersEvery backend or adapter behind the shared capability.Which hosted, local, mock, legacy, and third-party adapters were checked, and which are truly out of scope?One model adapter maps a new option while the local-provider adapter ignores it.
ContractsEvery schema, type, message, file format, or wire boundary crossed by the change, including both producer and consumer.What contract changed or carried the value, and were both sides plus compatibility/default behavior checked?An MCP server accepts the new property, but the published tool schema rejects clients that send it.
Reverse statesThe off, undo, disconnect, remove, empty, cancel, and error transitions—not only the enabled happy path.What returns the feature to its prior/empty state, and what happens on failure or partial completion?Enabling a toggle works, but disabling it leaves the old value cached until restart.
Connection modesThe environments and lifecycle modes that can change routing or state: local/remote, online/offline, fresh/resumed, first-run/upgrade.Which supported modes were exercised, or what repo evidence makes a mode inapplicable?A fresh local session works, but a resumed remote session never receives the migrated setting.
DocsInstructions and discoverability surfaces whose claims may now be stale: README, help, examples, descriptions, and agent instructions.Which docs/help/tool descriptions were checked for lies, missing discovery, or an old default?CLI help still documents the removed flag even though runtime behavior changed.

Required sweep ledger

  1. Inspect the diff and inventory nearby entry-point registries, clients, adapters, contracts, negative transitions, runtime modes, and documentation.
  2. Report all seven class labels. Under each, use one of these forms:
    • Checked: <specific paths, symbols, commands, adapters, or states> — <result>
    • N/A — <repo-specific reason this class cannot be affected>
  3. Resolve every applicable site that is missing. If blocked, state the concrete blocker and stop: an explained but unchecked site still prevents done.

N/A is valid when it is reasoned. Examples: a library has no user entry point; a local-only CLI has no connection modes; a change preserves a wire contract. "Not relevant" without the repo fact that makes it irrelevant is invalid.