用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill add-skill-from-template命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | add-skill-from-template |
| description | > Use when this capability is needed. |
Use this skill when you need to create a new AFI skill in the afi-skills library.
This skill ensures new skills are:
This skill is primarily used by skillsmith-droid and any future afi-skills droids.
Before creating a new skill, you MUST:
Read:
afi-skills/AGENTS.mdCONTRIBUTING_SKILLS.mddocs/skill_contract_v1.mdskills/_template.SKILL.mdConfirm:
If any requirement is unclear or appears to violate AGENTS.md or Charter, STOP and ask for human clarification.
The caller should provide, in natural language or structured form:
liquidity-heatmap-tagger)["market-data:read"], ["none"])["afi-market-team"])["volatility", "risk-management"])Optional but recommended:
["futures", "perpetuals"])["1h", "4h", "1d"])If any required information is missing, ask clarifying questions or use conservative defaults with clear TODOs.
When this skill is invoked, follow this sequence:
In your own words, summarize:
This summary should be short and precise, so humans can quickly confirm the intent.
Determine the target directory:
skills/<domain>/<skill_id>.mdExample: skills/market-structure/liquidity-heatmap-tagger.md
Confirm the domain folder exists. If not, STOP and escalate (new domains require human approval).
Copy the template structure from skills/_template.SKILL.md and fill in all sections:
---
id: <skill_id> # Must match filename (without .md)
name: <Human Readable Name>
version: 0.1.0 # Start at 0.1.0 for new skills
domain: <domain> # Must match folder name
description: |
<10-500 char description>
inputs:
- name: <param_name>
type: <string | number | boolean | object | array>
description: <what it represents>
required: <true | false> # Optional, defaults to true
outputs:
- name: <result_name>
type: <string | number | boolean | object | array>
description:
After the front-matter --- delimiter, include:
# Skill Name (H1 heading)
## Purpose
## When to Use
## Workflow
## Failure Modes / Edge Cases
## Example I/O
Optional sections (add if helpful):
If determinism_required: true, you MUST create golden cases.
Create directory and file:
mkdir -p evals/<domain>/<skill_id>
touch evals/<domain>/<skill_id>/golden_cases.json
Format (following existing pattern):
{
"skill_id": "<skill_id>",
"version": "0.1.0",
"description": "Golden cases for <skill_name>",
"cases": [
{
"name": "basic_success_case",
"description": "Brief description of this test case",
"input": {
"param1": "value1",
"param2": 42
},
"expected_output": {
"result": {
"status": "success",
"value": "expected_value"
}
},
"deterministic":
Rules:
expected_properties from front-matterdeterministic: true for all cases if skill is deterministicIf determinism_required: false, you may create a simpler eval stub with property ranges instead of exact golden cases.
Run at least:
npm run lint:skills — Validate front-matter and securitynpm run build:manifest — Build manifest.json and index.yamlIf validation fails:
Produce a short summary that includes:
<skill_id><domain>0.1.0 (new skills start here)<low | medium | high><true | false>skills/<domain>/<skill_id>.mdevals/<domain>/<skill_id>/golden_cases.json (if deterministic)Aim for something a human maintainer can read in under a minute to understand exactly what was created and why.
When using this skill, you MUST NOT:
Modify existing skills without explicit instruction:
Create new domains without human approval:
other/ and document whyTouch other repos:
Skip security validation:
npm run lint:skillsSkip evals for deterministic skills:
determinism_required: true, golden cases are REQUIREDIf a request forces you towards any of the above, STOP and escalate.
At the end of a successful add-skill-from-template operation, produce a short summary that includes:
Skill Created:
<skill_id><domain>0.1.0<low | medium | high><true | false>Files Created:
skills/<domain>/<skill_id>.md (XXX lines)evals/<domain>/<skill_id>/golden_cases.json (X test cases) [if deterministic]Validation Results:
npm run lint:skills — Passnpm run build:manifest — PassTODOs:
✅ Allowed:
"Add a new market-structure skill that parses perpetual funding rate mechanics."
market-structure/perp-funding-rate-parsertrue (parsing is deterministic)"Create a scoring skill that takes an analyzed signal and emits a RiskTierLabel."
scoring/risk-tier-labelerfalse (may use probabilistic scoring)"Add a news-sentiment skill that extracts sentiment from headlines."
news-sentiment/headline-sentiment-extractorfalse (NLP is non-deterministic)"Create a provenance skill that validates vault replay determinism."
provenance/vault-replay-validatortrue (validation is deterministic)❌ Forbidden:
"Add a new signal schema field called macro_regime."
→ Belongs in afi-core (use extend-signal-schema skill)
"Wire the new scoring skill into the DAG pipeline."
→ Belongs in afi-reactor (use add-dag-node skill)
"Create a new domain called crypto-native/ for blockchain-specific skills."
→ Requires human approval for new domain creation
"Modify the existing futures-contract-spec skill to add a new input." → This skill is for creating NEW skills, not modifying existing ones
"Add a skill that calls an external API without security review." → High-risk skills require human approval before creation
Request: "Add a new market-structure skill that parses perpetual funding rate mechanics."
Summary:
Skill Created:
perp-funding-rate-parsermarket-structure0.1.0lowtrueFiles Created:
skills/market-structure/perp-funding-rate-parser.md (165 lines)evals/market-structure/perp-funding-rate-parser/golden_cases.json (3 test cases)Front-Matter:
id: perp-funding-rate-parser
name: Perpetual Funding Rate Parser
version: 0.1.0
domain: market-structure
description: |
Parses perpetual funding rate data from exchange APIs and normalizes to AFI format.
Handles different exchange formats (Binance, Deribit, Bybit) and computes funding intervals.
inputs:
- name: exchange
type: string
description: Exchange identifier (e.g., "binance", "deribit")
- name: symbol
type: string
description: Trading pair symbol (e.g., "BTC-PERP")
- name: raw_funding_data
type: object
description: Raw funding rate data from exchange API
outputs:
-
Validation Results:
npm run lint:skills — Passnpm run build:manifest — PassTODOs:
Request: "Create a scoring skill that takes an analyzed signal and emits a RiskTierLabel."
Summary:
Skill Created:
risk-tier-labelerscoring0.1.0lowfalseFiles Created:
skills/scoring/risk-tier-labeler.md (172 lines)evals/scoring/risk-tier-labeler/golden_cases.json (property ranges, not exact golden cases)Front-Matter:
id: risk-tier-labeler
name: Risk Tier Labeler
version: 0.1.0
domain: scoring
description: |
Assigns risk tier labels (low/medium/high/extreme) to analyzed signals based on
volatility, liquidity, and market regime. Enables risk-aware position sizing.
inputs:
- name: analyzed_signal
type: object
description: Analyzed signal with volatility and liquidity metrics
outputs:
- name: risk_tier
type: string
description: Risk tier label (low/medium/high/extreme)
- name: confidence
type: number
description: Classification confidence score (0-1)
allowed_tools:
- none
risk_level: low
determinism_required: false
Validation Results:
npm run lint:skills — Passnpm run build:manifest — PassTODOs:
Last Updated: 2025-11-28
Maintainers: AFI Skills Team
Charter: afi-config/codex/governance/droids/AFI_DROID_CHARTER.v0.1.md
Workflow: CONTRIBUTING_SKILLS.md
Converted and distributed by TomeVault — claim your Tome and manage your conversions.