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.

跳到安装

来源信息

仓库
hoangsonww/Forge-Agentic-Coding-CLI
最近来源活动
2026年4月20日 21:15
检测到的 SKILL.md 语言
英语
星标
22
分支
9

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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.
在 GitHub 查看