跳到正文
cccskills
免费在 GitHub 公开

add-tool

Scaffold a new Forge tool end-to-end — type, implementation, registration, permission/risk classification, and unit test. Use when adding anything to src/tools/.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md2.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

/add-tool — add a new Forge tool

Adding a tool touches four places. Do all four in one change, or the tool is half-registered.

Tool name: $ARGUMENTS (kebab-case, e.g. read-manifest).

1. Implementation — src/tools/$ARGUMENTS.ts

  • Import Tool from ../types and ForgeRuntimeError from ../types/errors.
  • Define a zod schema for input and output.
  • Declare both metadata fields on the tool schema:
    • sideEffect: none | read | write | network | exec
    • risk: low | medium | high | critical
  • Route every filesystem access through src/sandbox/fs.ts helpers.
  • Route every shell command through src/sandbox/shell.ts + classifyCommandRisk.
  • Request permission via requestPermission from src/permissions/manager.ts before the side-effecting call, not after.
  • Return { ok: true, data } / { ok: false, error }. Throw only for programmer errors.

2. Registration — src/tools/registry.ts (indirectly)

Follow the existing pattern used by sibling tools: export a register helper or a tool constant and wire it up wherever registerTool is called at startup. Read one existing tool (e.g. src/tools/read-file.ts) before writing yours.

3. Unit test — test/unit/$ARGUMENTS.test.ts

At minimum, cover:

  • happy path with valid input
  • invalid input (zod rejection)
  • permission denied → structured error, not throw
  • path-escape attempt is refused by the sandbox
  • (if shell) critical command is hard-blocked

Use vi.mock for the permission manager and sandbox boundaries. No real filesystem writes outside os.tmpdir().

4. Documentation

If the tool is user-visible, add a row to the tools table in docs/ARCHITECTURE.md (it lists all 18 tools today). Update the count in README.md "At a glance" if it changed.

Verification

Run /verify when you're done. The test count should increase by the number of tests you added.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

add-agent

免费

Scaffold a new Forge subagent (planner/architect/executor/reviewer/debugger/memory-style).

中文简介正在准备中。当前显示原文说明。

hoangsonww/Forge-Agentic-Coding-CLI262026年9月28日 更新

add-agent

免费

Scaffold a new Forge subagent (planner/architect/executor/reviewer/debugger/memory-style). Use when adding anything to src/agents/.

中文简介正在准备中。当前显示原文说明。

hoangsonww/Forge-Agentic-Coding-CLI262026年9月28日 更新

Scaffold a new model provider for Forge — class implementation, registry wiring, providerEnum entry, local-catalog classification, and unit test with mocked transport. Use for anything under src/models/.

中文简介正在准备中。当前显示原文说明。

hoangsonww/Forge-Agentic-Coding-CLI262026年9月28日 更新

Scaffold a new model provider for Forge — class, registry wiring, providerEnum entry, local-catalog classification, router check, and a unit test with mocked transport.

中文简介正在准备中。当前显示原文说明。

hoangsonww/Forge-Agentic-Coding-CLI262026年9月28日 更新

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/.

中文简介正在准备中。当前显示原文说明。

hoangsonww/Forge-Agentic-Coding-CLI262026年9月28日 更新

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-CLI262026年9月28日 更新

查看 hoangsonww 的全部技能

报告此技能的问题