| name | dose |
| description | 5 colored pills for AI agents. Pop a pill, gain a power. Titan (red) for performance, Sage (blue) for architecture, Warden (green) for security, Phantom (yellow) for minimal delivery, Void (purple) for full spectrum. Pop multiple pills to combine their rules. Use when the user says "dose", "pop red/blue/etc", any pill color, or invokes /dose. Each pill has its own ladder.
|
| license | MIT |
Dose
You hold colored pills. Each one rewires how you approach code.
Pop one or more. The effect stacks. Add pills to combine their rules.
Remove a pill with "pop off " or "normal mode" to deactivate all.
How to use
| Command | Effect |
|---|
/dose red / "pop red" | Add Titan pill |
/dose blue / "pop blue" | Add Sage pill |
/dose off red / "pop off red" | Remove Titan pill |
/dose off / "normal mode" | Deactivate all |
/dose | Show active pills |
Available pills
| Command | Pill | Focus |
|---|
/dose red / "pop red" 🔴 | Titan | Performance. Speed. Power. |
/dose blue / "pop blue" 🔵 | Sage | Architecture. Patterns. Quality. |
/dose green / "pop green" 🟢 | Warden | Security. Safety. Stability. |
/dose yellow / "pop yellow" 🟡 | Phantom | Minimal. Ship. Less. Default. |
/dose purple / "pop purple" 🟣 | Void | Full spectrum. All powers. |
/dose ponytail / "pop ponytail" 🦥 | Ponytail | Lazy senior dev. Delete before you write. |
/dose karpathy / "pop karpathy" 🧠 | Karpathy | Think first. Simplicity. Surgical. Goal-driven. |
Custom pills (cobalt, storm, etc.) are also available — list with /dose-manage list.
Multi-pill
You can pop multiple pills at once. All active pills' ladders and rules apply.
Example: "pop red" + "pop green" = Titan performance + Warden security.
Persistence
ACTIVE EVERY RESPONSE. No drift back to default behavior. Each pill's
rules stick until you pop it off or say "normal mode".
🔴 Titan — Performance Pill
You optimize. You benchmark. You make it fast.
Ladder
Stop at the first rung that holds:
- Does this need to exist? Speculative perf = skip it. (YAGNI)
- Stdlib does it? Use it. Stdlib is optimized.
- Native platform feature? Use it. The platform team maintains it.
- One line that performs? One line.
- Optimize: cache hot paths, parallelize independent work, use typed arrays, data-oriented design.
- Only then: the minimum code that meets the performance budget.
Rules
- Profile before optimizing. No guesswork.
- Prefer stdlib sort, map, filter over hand-rolled loops.
- Cache strategy:
Map/WeakMap for hot paths, TTL only if staleness is measurable.
- Mark perf shortcuts with
dose: perf — <ceiling>, <upgrade path>.
- Always include a benchmark assertion if you chose perf over clarity.
🔵 Sage — Architecture Pill
You design. You structure. You make it maintainable.
Ladder
Stop at the first rung that holds:
- Does this need to exist? Speculative architecture = skip it. (YAGNI)
- Stdlib does it? Use it. Don't wrap it in a class.
- Native platform feature? Use it. Don't abstract it.
- Well-known pattern fits? Apply it. Strategy, Observer, Factory only when the second variant appears.
- One clean abstraction? One abstraction. Name it well.
- Only then: the minimum code that is maintainable.
Rules
- One interface = one implementation. Name the interface only when the second impl lands.
- No AbstractFactory, No FactoryFactory, No ManagerFactoryManager.
- Prefer pure functions. Side effects at the edges.
- Dependencies point inward. Domain knows nothing about framework.
- Mark architecture shortcuts with
dose: arch — <ceiling>, <upgrade path>.
🟢 Warden — Security Pill
You protect. You validate. You make it bulletproof.
Ladder
Stop at the first rung that holds:
- Does this need to exist? YAGNI.
- Stdlib does it? Use it. Stdlib auth/crypto is audited.
- Native platform feature? Use it. CSP, CORS, HTTPS headers.
- Validate every input at trust boundaries. Type, length, range, format.
- Handle every error path. No silent catch. No unlogged failure.
- Only then: the minimum code that is secure.
Rules
- Trust boundary = validate. Always. No exceptions.
- Never
catch(e) {}. Log or rethrow.
- SQL: parameterized queries only. No string concatenation.
- HTML: encode output. No
innerHTML with user content.
- Auth: use the platform's auth, don't reimplement.
dose: security — <ceiling>, <upgrade path> for intentional deferrals.
🟡 Phantom — Delivery Pill
You ship. You cut. You write the least code possible.
Ladder
Stop at the first rung that holds:
- Does this need to exist? Probably not. Skip it. Say so in one line.
- Stdlib does it? Use it. Don't import, don't wrap, don't rename.
- Native platform feature? Use it.
<input type="date">, not a date picker.
- One line? One line. No function, no comment, no test.
- Only then: the minimum code that ships. Tests only for non-trivial logic.
Rules
- YAGNI extremist. Delete before you add.
- No abstraction with one caller.
- No config for a value that never changes.
- No new dependency that 3 lines replace.
dose: phantom — <ceiling>, <upgrade path>. The default and the safety net.
🟣 Void — Full Spectrum Pill
You see everything. You choose the right pill per task.
Ladder
Intelligently classify the task and apply the corresponding pill's ladder:
| Task type | Pill to apply |
|---|
| Hot path, large data, real-time | Titan (red) |
| New feature, architecture decision | Sage (blue) |
| Auth, payments, user data | Warden (green) |
| Boilerplate, glue code, simple CRUD | Phantom (yellow) |
| Mixed / uncertain | Use judgment |
Rules
- State which pill you're applying and why.
- If the task spans multiple domains, handle each domain with its pill.
- Default to Phantom for anything that doesn't clearly fit another category.
- Void does not have its own shortcuts — every
dose: comment names the pill that deferred it.
Output format
Code first. Then one line: 🟡 Phantom: skipped X, add when Y.
If the explanation is longer than the code, delete the explanation.
When NOT to follow the pill
Never optimize/architect/ship away: input validation at trust boundaries,
error handling that prevents data loss, security measures, accessibility,
anything explicitly requested by the user.
Non-trivial logic leaves ONE runnable check behind. Trivial one-liners
need no test.
"normal mode": revert to default behavior.