1.4 KiB
1.4 KiB
| name | description | user-invocable | model-invocable | side-effects | permission-profile | triggers | |||
|---|---|---|---|---|---|---|---|---|---|
| forge-command-surface | Use when changing SF slash commands, browser command parity, or headless command dispatch. | true | true | code-edits | normal |
|
forge-command-surface
When to Use
This skill applies when:
- Adding or modifying SF slash commands (
/mode,/tasks,/skills, etc.) - Changing command handlers in
src/resources/extensions/sf/commands/handlers/ - Updating command catalog descriptions
- Ensuring web/TUI/headless command parity
- Modifying command dispatch routing
Instructions
- Check existing handlers — Look in
commands/handlers/core.jsandcommands/handlers/ops.jsfor the pattern - Update catalog — Add to
commands/catalog.jsTOP_LEVEL_SUBCOMMANDS - Update help text — Add to
showHelp()incommands/handlers/core.js - Wire dispatch — Add routing in
handleCoreCommand()orhandleOpsCommand() - Test — Verify with
node --checkand manual test
Verification
- Command appears in
/help - Command appears in
/help all - Handler file passes
node --check - No
/sfprefix in user-facing strings
Examples
// Adding a new command
if (trimmed === "mycommand" || trimmed.startsWith("mycommand ")) {
await handleMyCommand(trimmed.replace(/^mycommand\s*/, "").trim(), ctx);
return true;
}