skills/command-registry-integration/SKILL.md
# command-registry-integration Integrate a new chat command into OpenClaw’s formal command registry and command handling chain so it appears in `/commands`, supports native slash registration where applicable, and avoids brittle text-intercept hacks. ## Use this when - You need a real built-in chat command such as `/foo` - The command must appear in `/commands` - The command should ride the formal command detection / registry / handler path - You want the smallest-source-change path for addin
npx skillsauth add aaaaqwq/agi-super-team skills/command-registry-integrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Integrate a new chat command into OpenClaw’s formal command registry and command handling chain so it appears in /commands, supports native slash registration where applicable, and avoids brittle text-intercept hacks.
/foo/commands/skill name) already solves the problemsrc/auto-reply/commands-registry.data.ts
/commands visibility and native command metadatasrc/auto-reply/commands-registry.ts
src/auto-reply/reply/commands-core.ts
src/auto-reply/reply/commands-*.ts
src/auto-reply/status.ts
/commands and /help rendering tests depend on registry descriptionssrc/auto-reply/commands-registry.test.tssrc/auto-reply/reply/commands.test.tssrc/auto-reply/status.test.tsIn commands-registry.data.ts, add a defineChatCommand({...}) entry with:
keynativeNamedescriptiontextAlias or textAliasescategoryargs / argsParsing / acceptsArgs only if neededThis is what makes the command:
/commandsCreate src/auto-reply/reply/commands-<name>.ts.
Typical shape:
/namerejectUnauthorizedCommand(...) if needed{ shouldContinue: false, reply: { text } }Prefer bridging to existing logic over reimplementation.
Examples:
execFileIn commands-core.ts:
HANDLERSKeep ordering intentional:
At minimum cover:
/commands rendering contains the command)/foo ... reaches your handler and parses args as expected)Good minimal test pattern:
node:child_process if bridging to CLI/PythonhandleCommands(buildCommandTestParams(...))commands-registry.data.ts contains the new command entry/commands output includes the commandcommands-core.tsResult: command may work only in ad-hoc paths, but won’t appear in /commands or native registration.
Result: command is detected and listed but falls through to agent flow.
If you want native slash command support, do not leave it text-only by accident.
If a Python/CLI script already exists, bridge to it first. Reimplementation increases drift.
/commands assertions often depend on exact description strings from the registry.
Do not bolt text interception onto unrelated stages. Use the command registry + handler chain.
For existing external logic (best for MVP):
execFile bridge to existing scriptFor pure in-repo logic:
From the repo root, usually:
pnpm vitest run src/auto-reply/commands-registry.test.ts src/auto-reply/reply/commands.test.ts src/auto-reply/status.test.ts
Or project standard test runner if customized in package.json.
When done, report:
/commands now shows /yourcommand/yourcommand --json routes to existing implementationnativeNamedevelopment
Technology-agnostic prompt generator that creates customizable AI prompts for scanning codebases and identifying high-quality code exemplars. Supports multiple programming languages (.NET, Java, JavaScript, TypeScript, React, Angular, Python) with configurable analysis depth, categorization methods, and documentation formats to establish coding standards and maintain consistency across development teams.
tools
Expert-level browser automation, debugging, and performance analysis using Chrome DevTools MCP. Use for interacting with web pages, capturing screenshots, analyzing network traffic, and profiling performance.
data-ai
Prompt for creating detailed feature implementation plans, following Epoch monorepo structure.
tools
Interactive prompt refinement workflow: interrogates scope, deliverables, constraints; copies final markdown to clipboard; never writes code. Requires the Joyride extension.