Skip to main content

add-tool

Scaffold a new Forge tool — implementation, registration, permission/risk metadata, sandbox routing, and a unit test. Use when adding anything to src/tools/.

Ir a la instalación

Datos de origen

Repositorio
hoangsonww/Forge-Agentic-Coding-CLI
Última actividad en el origen
20 de abril de 2026 a las 21:15
Idioma detectado de SKILL.md
inglés
Estrellas
23
Forks
9

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
add-tool
description
Scaffold a new Forge tool — implementation, registration, permission/risk metadata, sandbox routing, and a unit test. Use when adding anything to src/tools/.
# add-tool Four places change. Do all four or the tool is half-registered. 1. **`src/tools/<name>.ts`** — the tool module. - `zod` schemas for input and output. - Declare `sideEffect` (`none|read|write|network|exec`) and `risk` (`low|medium|high|critical`). Be honest — these drive permission prompts and auto-approval. - All filesystem access via `src/sandbox/fs.ts` helpers. - All shell commands via `src/sandbox/shell.ts` + `classifyCommandRisk`. - Request permission via `requestPermission` (`src/permissions/manager.ts`) **before** the side effect. - Return `{ ok, data }` / `{ ok: false, error }`. Throw only for programmer errors, using `ForgeRuntimeError`. 2. **Registration** — wire into the registry following the pattern in an existing tool like `src/tools/read-file.ts`. 3. **`test/unit/<name>.test.ts`** — at minimum: - happy path, - zod rejection on invalid input, - permission denied → structured error (not throw), - path-escape refused by sandbox, - (if shell) critical command hard-blocked. Use `vi.mock` for the permission manager and sandbox boundaries. 4. **Docs** — if user-visible, update the tools table in `docs/ARCHITECTURE.md` and the README "At a glance" count. Finish with the `verify` skill.
Ver en GitHub