By thinhkhuat
A skill-governance layer over Claude Code's default mechanism: semantic retrieval (which skill) + use-enforcement (whether Claude uses one) + a compounding invocation ledger.
Diagnose and repair a broken or degraded skill-concierge install. Use this skill when the skill-search MCP won't connect, search_skills returns nothing or stale results, skills have gone dark, the MCP seems to run old code after a plugin update, or anything about skill-concierge misbehaves after setup or a plugin update. Runs scripts/doctor.py to check the deployment layer (engine venv, engine freshness, Qdrant, MCP wiring, settings overrides, ledger) and delegates retrieval health to the engine; with --fix it applies safe repairs (start Qdrant, reindex, re-apply overrides).
See the retrieval-flywheel status and trigger an incremental utterance-generation run. Use this skill when the user asks about the flywheel, "how many skills have utterances / triggers", "flywheel coverage", "which skills are missing utterances", "is the LLM endpoint configured/reachable", or wants to "generate triggers", "run the flywheel", "refresh utterances", or "index the new skills' utterances". The flywheel is the utterance layer (ADR-0026) that teaches the retriever how users actually ask for a skill (EN+VN), lifting recall. Runs scripts/flywheel.py — status mode (default, read-only) prints endpoint config + reachability and per-skill utterance coverage (N/M covered, and the missing skills by name); --generate runs the incremental generator (only new/changed skills hit the LLM) then reindexes so the new points go live, printing before/after coverage. Generation fails loud if the LLM endpoint is unreachable.
Manage skill-concierge's always-ON allowlist — the skills kept fully described in every turn instead of name-only. Use this skill when the user wants to view, add, or remove always-on skills, asks "which skills are always on", "add X to always-on", "remove X from the keep-on list", "manage the always-on skills", or wants to curate what stays injected vs retrieved on demand. Runs scripts/keep-on.py (list / add / remove), which edits the always-on allowlist under the canonical durable home (~/.claude/skill-concierge/keep-on.json) and re-applies the settings.json overrides.
Bootstrap or repair the skill-concierge engine from scratch. Use this skill when installing skill-concierge on a new machine, right after a plugin update, or when skill-concierge:doctor reports the engine venv is missing. Runs setup.sh to build the stable engine venv, start the Qdrant container, build the multilingual index, and apply the curated skill-budget overrides, then verifies the result with doctor.
Find the right skills for a task before acting. Use at the start of any multi-step or unfamiliar request to retrieve relevant skills by meaning, not name. Triggers when the user asks to build, set up, design, deploy, fix, or automate something and the right skill isn't obvious.
Admin access level
Server config contains admin-level keywords
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Executables (bin/) — files in this plugin's bin/directory are added to the Bash tool's PATH while the plugin is enabled.
A skill-governance layer over Claude Code's default skill mechanism. Where the default dumps every skill description into context every turn and hopes the model picks one, skill-concierge replaces hope with retrieve-precisely + enforce-use + measure.
Metaphor: skill-search is the library; skill-concierge is the concierge who knows which book fits, makes sure you actually open one, and remembers what you reached for.
Claude Code's default skill discovery injects every installed skill's description into the context window on every turn, then trusts the model to notice the right one. As a catalogue grows past a few dozen skills, that approach burns context and quietly degrades: the model skims, misses the fitting skill, or "wings it" instead of invoking one at all.
skill-concierge addresses three distinct failure modes the default conflates:
| Organ | Question it answers | Mechanism |
|---|---|---|
| Retrieve | Which skill fits this task? | semantic search over the skill catalogue (Qdrant + multilingual embeddings), including a MAX-pool trigger layer mined from both each skill's description and its body's labeled decision sections (## When to Use, Triggers:, Use when:) — ADR-0012, ADR-0016 |
| Enforce | Whether the model uses a skill at all (vs winging it) | a per-turn hook that hands over the right candidates under a use-mandate; on its two previously-silent verdicts (score-floor miss, conversational turn) it now injects a SKILL-CHECK: authorization instead of nothing — ADR-0015 |
| Ledger | What actually got used | a compounding, append-only skill-invocation log → data-backed always-on curation |
SKILL.md skills ONLY. Built-in / user-only
slash-commands (loop, schedule, verify, run, code-review, update-config,
keybindings-help) are excluded by design — they aren't SKILL.md files, cost no
model context, and the model can't fire them. → ADR-0001.vendor/skill-search/eval/ is calibrated
to the upstream author's environment; its recall@k measures a skill universe this
deployment excludes. A near-zero score means wrong universe, not weak retriever. →
caveats §1.ck:worktree, not worktree). → caveats §5.docs/caveats.md. Decisions + rationale:
docs/adr/.| Requirement | Version / notes |
|---|---|
| Claude Code | host for the plugin, hooks, and MCP server |
| Python | 3.10–3.12 (set SKILL_PYTHON to pin a specific interpreter) |
| Docker / OrbStack | runs the Qdrant vector store (server tier) |
The embedding model (
paraphrase-multilingual-mpnet-base-v2, 768-dim) downloads on first index build viafastembed— no API key, fully local. For a service-free embedded tier, see theponytail:note at the top ofsetup.sh.
skill-concierge is developed local-first in a workbench and published as a Claude Code plugin at https://github.com/thinhkhuat/skill-concierge.
npx claudepluginhub thinhkhuat/skill-concierge --plugin skill-conciergeUniversal EFFORT standing-order for Claude Code. Injects a full effort doctrine at SessionStart and re-asserts it every turn so the agent works each task to done-and-proven — refusing unnatural, slop, mean-reverting premature exits. In-generation governance, caveman-pattern, no post-turn detection.
Memory compression system for Claude Code - persist context across sessions
Unified capability management center for Skills, Agents, and Commands.
Ultra-compressed communication mode. Cuts 65% of output tokens (measured) while keeping full technical accuracy by speaking like a caveman.
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.