# ๐ธ skill-bartender
### *Mix the right skill cocktail for every task โ and never pour an untasted bottle.*
[](LICENSE)
[](https://github.com/akqwpeter-prog/skill-bartender/actions/workflows/scan.yml)
[](https://github.com/topics/dsh-plugin)
[](docs/skillspector-report.json)
[](README.md#-why)
[](README.md#-quick-start)
[](docs/lang/README_ZH.md)
Your agent already sees a catalog of skill names and descriptions โ but it
**over-pours**: loads too many skills, loads the wrong ones, or misses the one
workflow skill that composes the task. **skill-bartender** is the meta-skill
that fixes the pour:
- ๐ช **Laziness ladder** โ zero skills when plain tools suffice; one skill
when one matches; workflow over hand-composed atomics; unsure โ don't load.
- ๐ท **Routing table** โ a user-editable taskโskill map (`references/policy.md`)
that overrides the defaults.
- ๐ **Safe cellar** โ a needed skill missing? Quarantine โ SkillSpector scan
โ explicit human approval โ install. Never auto-installs.
- ๐ง **Learn** โ loaded-but-unused skills get logged and skipped next time.
- ๐งช **Taste test** โ audit installed skills and rewrite weak descriptions
into "when-to-use" sentences.
[Why](#-why) ยท [What you get](#-what-you-get) ยท [Quick start](#-quick-start) ยท [See it in action](#-see-it-in-action) ยท [Usage](#-usage) ยท [Security model](#-security-model-read-this) ยท [FAQ](#-faq) ยท [Examples](#-examples) ยท [Layout](#-layout) ยท [License](#-license)
[**English**](README.md) ยท [**็ฎไฝไธญๆ**](docs/lang/README_ZH.md)
---
## ๐ค Why
Most agents treat the skill catalog as an all-you-can-eat buffet. `skill-bartender`
treats it as a bar with a taste test:
| | skill-bartender | Typical catalog behavior |
|---|---|---|
| Skills loaded per task | usually **one**; zero when plain tools suffice | whatever matches, however many |
| Workflow skills | โ
preferred โ never hand-assemble atomics | โ often missed or hand-composed |
| Unsure about a match | โ don't load (miss beats false pour) | โ ๏ธ loads "just in case" |
| Installing a missing skill | ๐ quarantine โ scan โ **human approval** | โ ๏ธ downloads straight into the skills dir |
| Auto-install | โ never, by design | โ ๏ธ often silent |
| Learns from unused loads | โ
logged, skipped next time | โ no memory |
**Why the "laziness ladder"?** A wrong skill body stays in conversation
history forever; a missed load only costs one tool round-trip. The best load
is the load never made (spirit: [ponytail](https://github.com/DietrichGebert/ponytail)).
## โจ What you get
| Capability | What it does | Where |
|---|---|---|
| ๐ช Laziness ladder | Stop at the first rung that holds: 0 no skill โ 1 one skill โ 2 workflow skill โ 3 unsure, don't load | all platforms |
| ๐ท Routing table | Taskโskill map in `references/policy.md`; URL-keyed families (doc/drive/wiki/sheets/base/slides) routed by path pattern | all platforms |
| ๐ Safe cellar | Missing skill: search โ **quarantine dir** โ SkillSpector scan โ scripts shown to human (default deny) โ explicit yes โ install; source + commit hash + verdict recorded | DSH, Claude Code, Codex |
| ๐ง Learn | Unused loads logged and skipped for the same task type next time; chronic no-shows get offered for removal | DSH |
| ๐งช Taste test | On request: list installed skills, rewrite weak descriptions into trigger-phrase form (under the 500-char catalog cap) | on request |
## โก Quick start
One file, three platforms:
```sh
# DeepSeek Harness
mkdir -p ~/.dsh/skills/skill-bartender
cp skills/skill-bartender/SKILL.md ~/.dsh/skills/skill-bartender/
cp -r skills/skill-bartender/references ~/.dsh/skills/skill-bartender/
# Claude Code
mkdir -p ~/.claude/skills/skill-bartender
cp skills/skill-bartender/SKILL.md ~/.claude/skills/skill-bartender/
# Codex
mkdir -p ~/.codex/skills/skill-bartender
cp skills/skill-bartender/SKILL.md ~/.codex/skills/skill-bartender/
```
Or install as a DeepSeek Harness bundle:
```sh
dsh plugin --profile web add github:akqwpeter-prog/skill-bartender
```
Then say "skill-bartender" once, or paste the routing table into your
AGENTS.md for always-on routing. Full examples: [docs/EXAMPLES.md](docs/EXAMPLES.md).
## ๐ธ See it in action
*The pour flow in one picture: stop at the first rung that holds, and never
install without a taste test.*