Scaffold a new sf pool subcommand following project patterns.
Use this skill when creating a new pool:* subcommand (e.g. pool:list, pool:fetch, pool:prepare, pool:clean).
sf dev generate command --name pool:<name> --force
This creates:
src/commands/pool/<name>.ts (command)messages/pool.<name>.md (user-facing strings)test/commands/pool/<name>.test.ts (unit test stub)test/commands/pool/<name>.nut.ts (NUT stub)package.json → oclif.topics includes poolpnpm run compile and ./bin/dev.js pool <name> --helpAfter scaffolding, update the generated files:
target-dev-hub, pool-name), typed result, business logicTestContext, stubSfCommandUx) and meaningful assertionsSfError from @salesforce/core for error handlingthis.log() / this.debug())src/lib/)If the command requires non-trivial business logic (org creation, pool state queries, config validation), extract it to src/lib/:
@salesforce/core/Logger, not this.log().github/instructions/lib.instructions.md for full conventionsUse config/pool-example.json as a reference pool configuration for tests and validation.
SfCommandSfError from @salesforce/core--json output returns the typed result objectthis.log() / this.debug())src/lib/