Skip to main content

add-tool

Scaffold a new Forge tool end-to-end — implementation, registration, permission/risk metadata, sandbox routing, and a unit test.

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 end-to-end — implementation, registration, permission/risk metadata, sandbox routing, and a unit test.
A new tool touches four places. Do all four or the tool is half-registered. ## 1. `src/tools/<name>.ts` - `zod` schemas for input and output. - Declare **both** `sideEffect` (`none|read|write|network|exec`) and `risk` (`low|medium|high|critical`) on the schema. Be honest — these drive the permission classifier. - All filesystem access goes through `src/sandbox/fs.ts` helpers. - All shell commands go through `src/sandbox/shell.ts` + `classifyCommandRisk`. - Request permission via `requestPermission` (`src/permissions/manager.ts`) **before** the side effect, not after. - Return `{ ok: true, data }` / `{ ok: false, error }`. Throw only for programmer errors, and then use `ForgeRuntimeError`. ## 2. Registration Wire it into the registry, following the pattern of an existing tool like `src/tools/read-file.ts`. ## 3. `test/unit/<name>.test.ts` Minimum coverage: - happy path with valid input, - zod rejection on invalid input, - permission denied → structured error (not throw), - sandbox refuses path-escape, - (if shell) `critical` command hard-blocked. Use `vi.mock` for the permission manager and sandbox boundaries. No real filesystem writes outside `os.tmpdir()`. ## 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