27e4b6b1dac6fb3679b73db91bfb433c91f9e776
claude-skills — a Claude Code plugin marketplace
One repository, one marketplace, several plugins. Register it once and install whichever pieces you want; each plugin is independent and carries its own manifest, docs, and tests.
Installation
/plugin marketplace add https://git.noodles.cam/claude-skills/marketplace.git
Working from a local clone? Point at the directory instead:
/plugin marketplace add /path/to/marketplace
Then install what you need:
/plugin install tea@claude-skills
/plugin install tdl@claude-skills
Use /plugin to enable, disable, or update them later.
What ships here
| Plugin | Commands | What it does |
|---|---|---|
tea |
/tea:auth /tea:issue /tea:sync /tea:use |
Gitea issues as local markdown, cleanly layered. Issues are units of work offline first and tracker rows second; a PreToolUse hook blocks any tea command that would run under a login Claude picked instead of the operator |
tdl |
/tdl:audit |
Three Dots Labs Go conventions as an enforceable rule set — audits a Go project against 63 CQRS/DDD/Clean-Architecture rules by severity, or scaffolds services, handlers, entities, repositories and Watermill adapters from templates that already follow them |
Layout
.claude-plugin/
marketplace.json the catalog — one entry per plugin, source is a
path into plugins/
plugins/
tea/
.claude-plugin/plugin.json
agents/ hooks/ skills/ tests/
README.md AGENTS.md
tdl/
.claude-plugin/plugin.json
skills/
A plugin's root is its directory under plugins/, so ${CLAUDE_PLUGIN_ROOT}
resolves inside it and every path a plugin uses stays relative to itself.
Adding a plugin means adding a directory here plus one entry in
marketplace.json — nothing else in the repo needs to know about it.
Development
tea has a test suite; run it from its own directory so the tests resolve
their root correctly:
cd plugins/tea && python3 -m unittest discover -s tests
Description
Languages
Python
96.3%
Shell
3.7%