بنقرة واحدة
forge
Manage your tool library — create, edit, list, and remove tools.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Manage your tool library — create, edit, list, and remove tools.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | forge |
| description | Manage your tool library — create, edit, list, and remove tools. |
| always | true |
You have the forge_tool tool for managing your tool library.
When talking to the user, say "build a tool" or "create a tool" — never say "forge".
Actions: create, list, remove
You MUST follow these steps in order. Do NOT skip or combine steps.
Clarify — Ask the user what they need. Pin down core use case, inputs/outputs, constraints. Keep it conversational. If their request is already specific, one or two confirming questions is enough.
Spec — MANDATORY before calling forge_tool. Call Write to create tool-library/<name>/TASK.md with:
Build — Only after the user confirms the spec. Tell them you're starting AND call forge_tool in the same turn. Use action="create", name, description, and the TASK.md content as context.
Report — When you receive the build result (via system notification), tell the user the tool is ready and show a working example.
Rules:
forge_tool(action=create) without writing TASK.md first.forge_tool call. Never say "I'll build it" without calling the tool.The build runs in the background. After calling forge_tool, you can keep chatting with the user. You'll be notified when the build finishes.
All tools that need persistence MUST use the shared database:
{workspace}/data/store.db (SQLite)todo_items, todo_tags)aiosqlite for async accessThis ensures tools can cross-reference data and the user has one place to back up.
list — Show all tools in your library.remove — Delete a tool by name. Use when a tool is broken or no longer needed.Every tool in tool-library/<name>/ should have:
manifest.json — name, description, version, parameters (JSON Schema)tool.py — async def execute(args: dict) -> dictSKILL.md — tells you when and how to use this tool (loaded into your context automatically)TASK.md — original spec (reference only)SKILL.md format:
---
name: <tool-name>
description: <one-line description>
always: false
---
# <Tool Name>
<When to use — what user intents or scenarios trigger this tool>
<Usage: run_user_tool(name="<tool-name>", arguments='{"action": "..."}')>
<Constraints or tips>
If a tool is missing SKILL.md, create one based on its manifest.json and tool.py.
When a tool needs a fix or enhancement, edit it directly — don't rebuild from scratch.
Edit on tool-library/<name>/tool.pyEdit on tool-library/<name>/manifest.jsonEdit on tool-library/<name>/SKILL.mdRead the tool.py to understand what's there before changing itWhen to edit vs rebuild:
forge_tool(action="create")