CoalTipple is the model/effort router of the TheColliery series. We welcome issues, bug reports, and pull requests.
- Open an issue first describing the problem, routing gap, or proposed feature (especially for changes to
SKILL.md). - Make your code changes and ensure the verification gates remain green.
- For routing or
SKILL.mdchanges, dogfood it live on Claude Code and document the routing behavior in your PR description.
CoalTipple is zero-dependency (built using Node.js built-ins only, Node 22+). No npm install is required.
Keep the verification gates green before and after making edits:
# after editing a skill, hook, or manifest, rebuild the dist FIRST — verify checks dist-sync:
node scripts/build-plugin.mjs # re-sync the conductor from keywords.mjs (the SSoT)
node scripts/build-dist.mjs # compile plugin/ from source
node scripts/verify.mjs # validates config schemas, plugins, and SSoT sync
node scripts/test.mjs # runs the zero-dependency test runner (node --test)keywords.mjsis the Single Source of Truth: Edit keywords there, runnode scripts/build-plugin.mjsto re-sync the conductor, thennode scripts/build-dist.mjsto compile the distribution. Do not hand-edit hooks directly.- Synchronize
plugin/: Rebuild the plugin distribution after modifying the core skill, hooks, or manifest. - Add Unit Tests: Every shared helper should have a corresponding
*.test.mjstest file. - Keep Hooks Phoenix-Pure: Hooks must have zero dependencies, fail-silent execution (wrap in try/catch, never exit non-zero), and run 100% locally; hooks ship a hermetic spawn test (hooks-safety.md §7).
- Language & Tone: Shipped source files and documentations must stay in English.
CoalTipple is Claude Code only. Routing actuates only where an agent can pick a spawned worker's model and effort — Claude Code's Agent/Task model parameter. Antigravity is confirmed unable to actuate it (a spawned subagent inherits the parent model — no model parameter, no effort knob), so it is not supported. Cursor, Codex, Gemini CLI, Cline, and Windsurf are unverified and under monthly review.
| Platform | Support Status |
|---|---|
| Claude Code | Validated across the 2.1.x line - Hardened across every model tier (Haiku, Sonnet, Opus); routing degrades safe on any CC version. |
Note: skills/coaltipple/SKILL.md is the highest-risk file. Prompts cannot be validated via unit tests; changes must be verified through actual live agent dogfooding.
| Path | Purpose |
|---|---|
skills/coaltipple/SKILL.md |
The core routing contract (the load-bearing prompt). |
scripts/lib/ |
Core logic modules: grade, classify (Lock ranking), keywords (SSoT), config-schema. |
scripts/ |
Tool scripts: install.mjs, configure.mjs, verify.mjs, test.mjs. |
hooks/coaltipple-conductor.js |
Phoenix-pure conductor hook (SessionStart + UserPromptSubmit). Auto-synced by build scripts. |
plugin/ |
Generated Claude Code plugin distribution. |
platform-configs/.coaltipple.json |
Commented factory default configuration. |
Bump version in .claude-plugin/plugin.json ➡️ Add a changelog entry in CHANGELOG.md ➡️ Ensure verify.mjs and test.mjs pass ➡️ Commit ➡️ Create a signed git tag (vX.Y.Z) ➡️ Push --follow-tags ➡️ Create a GitHub Release (stable tags only).
Contributions are licensed under the Apache License 2.0. Please assume good faith and be respectful. Report security issues according to SECURITY.md.