一键导入
skill-creator
Create, update, and import Batshit skills or prompt commands from an outside coding agent using a Portable Skill Token.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create, update, and import Batshit skills or prompt commands from an outside coding agent using a Portable Skill Token.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Build, configure, and publish persistent mini-app artifacts in Batshit.
Create, update, test, and review Batshit CLI tools through a light Fabric-driven workflow.
Create, update, and refine Batshit skills and prompts that work well with any AI model.
Install, verify, and register Batshit TTS/STT speech engines through the server-owned Engine Manager.
Build, validate, update, and publish Batshit artifacts from an outside coding agent using a Portable Skill Token.
Create, update, validate, and review Batshit CLI Tools from an outside coding agent using a Portable Skill Token.
| name | skill-creator |
| description | Create, update, and import Batshit skills or prompt commands from an outside coding agent using a Portable Skill Token. |
| metadata | {"version":"0.1.0","batshitPortableSkill":true,"family":"skills"} |
You are running outside Batshit. Your job is to help the user design, write, validate, save, or import Batshit skills and prompt commands.
This portable skill uses Batshit's Fabric controls over HTTP. Do not write Redis directly. Do not edit Batshit app source. Do not use BATSHIT_TOKEN, user passwords, copied browser cookies, or n8n callback tokens.
Before doing real work, establish:
http://127.0.0.1:5620Skills scopeIf the user has not provided the token, ask them to create one in Batshit Settings -> Skills & Prompts -> Portable Skills and grant Skills. A multi-scope token may be stored once in ~/.batshit/portable-skills/portable-skills.env; a skill-specific file such as skill-creator.env is only needed when the user wants a narrower override token.
Use environment variables for shell calls so the token is not repeated in every command:
PORTABLE_SKILL_ENV_DIR="${BATSHIT_PORTABLE_SKILL_ENV_DIR:-$HOME/.batshit/portable-skills}"
PORTABLE_SKILL_ENV_FILE="${BATSHIT_PORTABLE_SKILL_ENV_FILE:-$PORTABLE_SKILL_ENV_DIR/portable-skills.env}"
if [ -z "${BATSHIT_PORTABLE_TOKEN:-${BATSHIT_PORTABLE_SKILL_TOKEN:-}}" ]; then
if [ -f "$PORTABLE_SKILL_ENV_FILE" ]; then
set -a
. "$PORTABLE_SKILL_ENV_FILE"
set +a
elif [ -f "$PORTABLE_SKILL_ENV_DIR/skill-creator.env" ]; then
set -a
. "$PORTABLE_SKILL_ENV_DIR/skill-creator.env"
set +a
fi
fi
export BATSHIT_BASE_URL="${BATSHIT_BASE_URL:-http://127.0.0.1:5620}"
export BATSHIT_PORTABLE_TOKEN="${BATSHIT_PORTABLE_TOKEN:-${BATSHIT_PORTABLE_SKILL_TOKEN:-}}"
If BATSHIT_PORTABLE_TOKEN is missing or still equals the placeholder value, stop and ask the user for the token or env-file path before making API calls.
Run this before any save or import.
curl -sS "$BATSHIT_BASE_URL/api/health"
Require ok: true. If Batshit is not reachable, stop and tell the user to start Batshit or provide the correct base URL.
The Skills family intentionally has no harmless list/get control in v1. Prove the token with scoped control discovery instead of making a fake save:
curl -sS "$BATSHIT_BASE_URL/api/controls/find" \
-H "Content-Type: application/json" \
-H "x-batshit-portable-token: $BATSHIT_PORTABLE_TOKEN" \
--data '{"query":"sys.skill.save","includeSchema":true,"limit":5}'
Require a successful response containing sys.skill.save. If the response is unauthorized or empty because of scope, stop and tell the user to rotate or create a token with Skills.
Any in-app instruction to call a Fabric control maps to this portable HTTP shape:
curl -sS "$BATSHIT_BASE_URL/api/controls/use" \
-H "Content-Type: application/json" \
-H "x-batshit-portable-token: $BATSHIT_PORTABLE_TOKEN" \
--data '{
"controlId": "sys.skill.save",
"input": {}
}'
Use /api/controls/find with includeSchema: true before saving if the compact hints are not enough.
Portable Skill Tokens are the standing approval for the granted family. Confirm-level imports still go through /api/controls/use after scope passes.
Follow this order:
references/writing-for-llms.md unless the skill is very small and obvious.sys.skill.save or sys.skill.import.sys.skill.save, or import with sys.skill.import when the user wants to bring in an existing bundle.Use this plain-language distinction:
Ask one short question when the type is unclear: "Do you want reusable text inserted into your messages, or instructions your agent reads to learn a workflow?"
sys.skill.savesys.skill.importreferences/writing-for-llms.mdEnd with:
Do not call the work done until Batshit confirms the save or import succeeded.