Add skill-manager skill (migrated from skill-creator) with deploy action
- Skill content moved from ~/.agents/skills/skill-creator, renamed to skill-manager - New deploy CLI action: installs any skill via absolute-path symlinks (or copies) into $HOME/.agents/skills, $HOME/.claude/skills and $HOME/.cline/skills - Taskfile + shell module wrappers (task deploy / cli:deploy) - SKILL.md: deploy docs, origin-repository/origin-path metadata Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
---
|
||||
name: skill-name
|
||||
description: >
|
||||
[What the skill does — be specific about capabilities].
|
||||
Use this skill when [specific trigger conditions — user intent, task type, domain],
|
||||
even if the user doesn't explicitly mention [domain keywords].
|
||||
license: Proprietary
|
||||
metadata:
|
||||
author: workspace-swiss-knife
|
||||
version: "1.0"
|
||||
# compatibility: Designed for Cline, Claude Code, GitHub Copilot, OpenAI Codex, and other compatible agents (uncomment if needed)
|
||||
# allowed-tools: Bash Read Write (uncomment if needed)
|
||||
---
|
||||
|
||||
# [Skill Title]
|
||||
|
||||
[One-sentence summary of what this skill does and for whom.]
|
||||
|
||||
## Overview
|
||||
|
||||
[2–3 sentences of context. What problem does this skill solve? What domain does it operate in?]
|
||||
|
||||
## Prerequisites
|
||||
|
||||
[List any tools, packages, env vars, or conditions required. Remove section if none.]
|
||||
|
||||
- Requires: `tool-name`
|
||||
- Environment: `ENV_VAR=value`
|
||||
|
||||
## Available scripts
|
||||
|
||||
[List scripts if any. Remove section if no scripts/ directory.
|
||||
Convention: Taskfile.yml is always required when scripts/ exists.
|
||||
Shell scripts → scripts/.scripts/<domain>/api/ (Taskfile → api → lib modules)
|
||||
Other languages → scripts/src/]
|
||||
|
||||
Run via Taskfile (preferred):
|
||||
```bash
|
||||
cd scripts && task <action> -- --flag=value
|
||||
```
|
||||
|
||||
- **`scripts/Taskfile.yml`** — Entry point; maps tasks to `.scripts/<domain>/` modules
|
||||
- **`scripts/.scripts/<domain>/api/<action>--<sub>.sh`** — [what it does]
|
||||
- **`scripts/src/process.py`** — [what it does]
|
||||
|
||||
## Workflow
|
||||
|
||||
[Step-by-step instructions. Be prescriptive for fragile steps; flexible for steps with valid alternatives.]
|
||||
|
||||
1. [Step one]
|
||||
2. [Step two]
|
||||
3. [Step three]
|
||||
|
||||
## Gotchas
|
||||
|
||||
[Non-obvious facts the agent will get wrong without being told. This is the highest-value section.
|
||||
Delete this section if you have no gotchas yet — add them as you discover them.]
|
||||
|
||||
- [Specific fact that defies reasonable assumptions]
|
||||
- [Another non-obvious environment-specific detail]
|
||||
|
||||
## References
|
||||
|
||||
[Tell the agent when to load each reference file. Use conditional loading, not generic "see references/".
|
||||
Delete this section if no references/ directory.]
|
||||
|
||||
- Read `references/api-errors.md` if the API returns a non-200 status code.
|
||||
- Read `references/schema.md` before writing any database queries.
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"_comment": "Eval suite for skill output quality and trigger testing. See references/description-optimization.md for the full optimization loop.",
|
||||
"skill_name": "my-skill",
|
||||
"trigger_queries": {
|
||||
"_comment": "~20 queries split 60/40 into train and validation sets. Each has should_trigger: true/false.",
|
||||
"train": [
|
||||
{ "query": "I have a CSV of monthly sales data in ~/data/q4_results.csv — can you find the top 3 months by revenue?", "should_trigger": true },
|
||||
{ "query": "my boss wants a chart from this data file", "should_trigger": true },
|
||||
{ "query": "can you analyze this spreadsheet and tell me which rows have missing values?", "should_trigger": true },
|
||||
{ "query": "whats the quickest way to convert this json file to yaml", "should_trigger": false },
|
||||
{ "query": "write a fibonacci function in python", "should_trigger": false },
|
||||
{ "query": "can you write a python script that reads a csv and uploads each row to postgres", "should_trigger": false }
|
||||
],
|
||||
"validation": [
|
||||
{ "query": "hey can you clean up this csv and remove duplicates?", "should_trigger": true },
|
||||
{ "query": "I need to update the formulas in my Excel budget spreadsheet", "should_trigger": false }
|
||||
]
|
||||
},
|
||||
"output_evals": {
|
||||
"_comment": "Test cases for evaluating skill output quality. Store input files in evals/files/.",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "I have a CSV of monthly sales data in data/sales_2025.csv. Can you find the top 3 months by revenue and make a bar chart?",
|
||||
"expected_output": "A bar chart image showing the top 3 months by revenue, with labeled axes and values.",
|
||||
"files": ["evals/files/sales_2025.csv"],
|
||||
"assertions": [
|
||||
"The output includes a bar chart image file",
|
||||
"The chart shows exactly 3 months",
|
||||
"Both axes are labeled",
|
||||
"The chart title or caption mentions revenue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "there's a csv in my downloads called customers.csv, some rows have missing emails — can you clean it up and tell me how many were missing?",
|
||||
"expected_output": "A cleaned CSV with missing emails handled, plus a count of how many were missing.",
|
||||
"files": ["evals/files/customers.csv"],
|
||||
"assertions": [
|
||||
"Output includes a cleaned CSV file",
|
||||
"Output states the count of rows with missing emails"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user