mustard-claude 3.0.10 → 3.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -4
- package/dist/commands/init.js +93 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.js +93 -0
- package/dist/commands/update.js.map +1 -1
- package/package.json +1 -1
- package/templates/.claude/skills/templates-command-authoring/SKILL.md +5 -7
- package/templates/CLAUDE.md +9 -0
- package/templates/commands/mustard/approve/SKILL.md +0 -2
- package/templates/commands/mustard/complete/SKILL.md +7 -2
- package/templates/commands/mustard/git/SKILL.md +0 -2
- package/templates/commands/mustard/knowledge/SKILL.md +0 -2
- package/templates/commands/mustard/maint/SKILL.md +0 -2
- package/templates/commands/mustard/resume/SKILL.md +0 -2
- package/templates/commands/mustard/review/SKILL.md +0 -2
- package/templates/commands/mustard/scan/SKILL.md +0 -2
- package/templates/commands/mustard/scan-format/SKILL.md +0 -2
- package/templates/commands/mustard/skill/SKILL.md +0 -2
- package/templates/commands/mustard/status/SKILL.md +0 -2
- package/templates/commands/mustard/task/SKILL.md +0 -2
- package/templates/hooks/rtk-rewrite.js +159 -0
- package/templates/scripts/statusline.js +48 -0
- package/templates/settings.json +10 -0
package/README.md
CHANGED
|
@@ -27,9 +27,10 @@
|
|
|
27
27
|
Mustard sets up a `.claude/` folder that turns Claude Code into a structured development pipeline:
|
|
28
28
|
|
|
29
29
|
- **14 pipeline skills** — feature, bugfix, scan, resume, approve, complete, git, maint, task, knowledge, skill, status, scan-format, agent-prompt template
|
|
30
|
-
- **
|
|
30
|
+
- **9 enforcement hooks** — bash safety, file guard, registry validation, guard verification, auto-format, pre-compact, session cleanup, subagent tracking, RTK rewrite
|
|
31
31
|
- **6 bundled skills** — design-craft, react-best-practices, senior-architect, skill-creator, commit-workflow, pipeline-execution
|
|
32
32
|
- **3 sync scripts** — subproject detection, entity registry sync, statusline
|
|
33
|
+
- **Token economy** — auto-installs [RTK](https://github.com/rtk-ai/rtk) to reduce token consumption by 60-90% on CLI outputs
|
|
33
34
|
- **Monorepo + single repo** — works with any project structure
|
|
34
35
|
|
|
35
36
|
## Quick Start
|
|
@@ -53,6 +54,7 @@ That's it. After `/scan`, use `/feature`, `/bugfix`, `/task` to work through str
|
|
|
53
54
|
|
|
54
55
|
- **Node.js** >= 18.0.0
|
|
55
56
|
- **Claude Code** CLI or IDE extension
|
|
57
|
+
- **RTK** (auto-installed) — [Rust Token Killer](https://github.com/rtk-ai/rtk) for token economy
|
|
56
58
|
|
|
57
59
|
### Option 1: Global Install (recommended)
|
|
58
60
|
|
|
@@ -85,9 +87,10 @@ mustard --version
|
|
|
85
87
|
## How It Works
|
|
86
88
|
|
|
87
89
|
1. `mustard init` copies the `.claude/` structure into your project
|
|
88
|
-
2.
|
|
89
|
-
3.
|
|
90
|
-
4.
|
|
90
|
+
2. RTK is auto-installed for token economy (60-90% savings on CLI outputs)
|
|
91
|
+
3. Inside Claude Code, run `/scan` to analyze your codebase
|
|
92
|
+
4. `/scan` generates guards, recipes, patterns, agents, and skills specific to your project
|
|
93
|
+
5. Use `/feature`, `/bugfix`, `/task` to work through structured pipelines
|
|
91
94
|
|
|
92
95
|
The CLI is a **one-time setup tool**. All intelligence lives in the skills and hooks inside `.claude/`.
|
|
93
96
|
|
|
@@ -112,6 +115,7 @@ The CLI is a **one-time setup tool**. All intelligence lives in the skills and h
|
|
|
112
115
|
- If `.claude/` doesn't exist → copies all templates
|
|
113
116
|
- If `.claude/` exists → asks: backup & overwrite, merge (skip existing), or cancel
|
|
114
117
|
- Merge mode preserves all existing files and only adds new ones
|
|
118
|
+
- Auto-installs RTK if not present (silent, never blocks on failure)
|
|
115
119
|
|
|
116
120
|
### `mustard update`
|
|
117
121
|
|
|
@@ -164,6 +168,7 @@ The CLI is a **one-time setup tool**. All intelligence lives in the skills and h
|
|
|
164
168
|
│ ├── status/SKILL.md # /status — project status
|
|
165
169
|
│ └── templates/agent-prompt/SKILL.md # Agent prompt template
|
|
166
170
|
├── hooks/ # Enforcement hooks
|
|
171
|
+
│ ├── rtk-rewrite.js # Rewrites Bash commands through RTK
|
|
167
172
|
│ ├── bash-safety.js # Blocks dangerous commands
|
|
168
173
|
│ ├── file-guard.js # Blocks sensitive file access
|
|
169
174
|
│ ├── enforce-registry.js # Blocks pipeline if no registry
|
|
@@ -276,6 +281,26 @@ After `/scan`, the pipeline commands (`/feature`, `/bugfix`) have full context t
|
|
|
276
281
|
**Light scope** (≤5 files, known pattern): ANALYZE → EXECUTE → CLOSE in one session.
|
|
277
282
|
**Full scope** (3+ layers, new entity): ANALYZE → PLAN → `/approve` → new session → `/resume` → CLOSE.
|
|
278
283
|
|
|
284
|
+
## Token Economy
|
|
285
|
+
|
|
286
|
+
Mustard integrates [RTK (Rust Token Killer)](https://github.com/rtk-ai/rtk) as core infrastructure to reduce token consumption:
|
|
287
|
+
|
|
288
|
+
- **Auto-install** — `mustard init` and `mustard update` install RTK silently if not present
|
|
289
|
+
- **Transparent hook** — a `PreToolUse` hook rewrites every Bash command through `rtk`, compressing output before it reaches Claude's context
|
|
290
|
+
- **Fail-open** — if RTK is not available, the hook passes through with zero impact
|
|
291
|
+
- **Statusline** — real-time token savings displayed in the Claude Code status bar
|
|
292
|
+
- **Pipeline report** — `/complete` shows total tokens saved at the end of each pipeline
|
|
293
|
+
|
|
294
|
+
| Command Type | Token Savings |
|
|
295
|
+
|-------------|--------------|
|
|
296
|
+
| `git status/diff/log` | 75-80% |
|
|
297
|
+
| `npm test` / `cargo test` | 90-99% |
|
|
298
|
+
| `git add/commit/push` | 92% |
|
|
299
|
+
| Build output | 80-90% |
|
|
300
|
+
| `ls` / `tree` / `grep` | 80% |
|
|
301
|
+
|
|
302
|
+
RTK only applies to Bash tool calls. Claude Code's built-in tools (Read, Grep, Glob) are already optimized and bypass the hook.
|
|
303
|
+
|
|
279
304
|
## Supported Projects
|
|
280
305
|
|
|
281
306
|
Mustard is **framework-agnostic**. The CLI just copies templates. `/scan` handles detection:
|
package/dist/commands/init.js
CHANGED
|
@@ -53,6 +53,7 @@ export async function initCommand(options) {
|
|
|
53
53
|
const count = await copyDir(templatesDir, claudePath, false);
|
|
54
54
|
spinner.succeed(`Copied ${count} new files (existing files preserved)`);
|
|
55
55
|
await ensureGlobalPermissions();
|
|
56
|
+
await ensureRtk();
|
|
56
57
|
printNextSteps();
|
|
57
58
|
return;
|
|
58
59
|
}
|
|
@@ -89,6 +90,7 @@ export async function initCommand(options) {
|
|
|
89
90
|
const count = await copyDir(templatesDir, claudePath, false);
|
|
90
91
|
spinner.succeed(`Copied ${count} new files (existing files preserved)`);
|
|
91
92
|
await ensureGlobalPermissions();
|
|
93
|
+
await ensureRtk();
|
|
92
94
|
printNextSteps();
|
|
93
95
|
return;
|
|
94
96
|
}
|
|
@@ -107,6 +109,7 @@ export async function initCommand(options) {
|
|
|
107
109
|
spinner.succeed(`Copied ${count} files to .claude/`);
|
|
108
110
|
// Ensure global permissions for Claude Code (Read, Write, Edit)
|
|
109
111
|
await ensureGlobalPermissions();
|
|
112
|
+
await ensureRtk();
|
|
110
113
|
// Generate mustard.json (git flow config)
|
|
111
114
|
await generateMustardJson(projectPath, options);
|
|
112
115
|
printNextSteps();
|
|
@@ -237,6 +240,96 @@ async function generateMustardJson(projectPath, options) {
|
|
|
237
240
|
await writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
238
241
|
spinner.succeed('Created mustard.json');
|
|
239
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Ensure RTK (Rust Token Killer) is installed for token economy.
|
|
245
|
+
* Transparent: installs silently, never blocks on failure.
|
|
246
|
+
*/
|
|
247
|
+
async function ensureRtk() {
|
|
248
|
+
const isWin = process.platform === 'win32';
|
|
249
|
+
const whichCmd = isWin ? 'where' : 'which';
|
|
250
|
+
// Check if rtk is already in PATH
|
|
251
|
+
try {
|
|
252
|
+
execSync(`${whichCmd} rtk`, { stdio: 'pipe', encoding: 'utf-8' });
|
|
253
|
+
// Verify it's the correct RTK (not Rust Type Kit)
|
|
254
|
+
const version = execSync('rtk --version', { stdio: 'pipe', encoding: 'utf-8' }).trim();
|
|
255
|
+
console.log(chalk.green(` ✓ RTK ${version} (token economy active)`));
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
// Not installed — proceed to install
|
|
260
|
+
}
|
|
261
|
+
const spinner = ora('Installing RTK (token economy)...').start();
|
|
262
|
+
try {
|
|
263
|
+
if (isWin) {
|
|
264
|
+
await installRtkWindows();
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
execSync('curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh', {
|
|
268
|
+
stdio: 'pipe',
|
|
269
|
+
timeout: 120000, // 2 min
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
// Verify installation
|
|
273
|
+
try {
|
|
274
|
+
const version = execSync('rtk --version', { stdio: 'pipe', encoding: 'utf-8' }).trim();
|
|
275
|
+
spinner.succeed(`RTK ${version} installed (token economy active)`);
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
spinner.succeed('RTK installed (token economy active)');
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
spinner.warn('RTK not installed — token economy will activate when RTK is available');
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
async function installRtkWindows() {
|
|
286
|
+
const binDir = join(homedir(), '.local', 'bin');
|
|
287
|
+
// Strategy 1: Download prebuilt binary from GitHub releases
|
|
288
|
+
try {
|
|
289
|
+
const releaseJson = execSync('powershell -NoProfile -Command "Invoke-RestMethod -Uri https://api.github.com/repos/rtk-ai/rtk/releases/latest | ConvertTo-Json -Depth 5"', { stdio: 'pipe', encoding: 'utf-8', timeout: 30000 });
|
|
290
|
+
const release = JSON.parse(releaseJson);
|
|
291
|
+
const asset = release.assets?.find((a) => a.name.includes('windows') && a.name.endsWith('.zip'));
|
|
292
|
+
if (asset?.browser_download_url) {
|
|
293
|
+
const zipPath = join(homedir(), '.local', 'rtk-install.zip');
|
|
294
|
+
await mkdir(binDir, { recursive: true });
|
|
295
|
+
execSync(`powershell -NoProfile -Command "Invoke-WebRequest -Uri '${asset.browser_download_url}' -OutFile '${zipPath}'"`, { stdio: 'pipe', timeout: 120000 });
|
|
296
|
+
execSync(`powershell -NoProfile -Command "Expand-Archive -Path '${zipPath}' -DestinationPath '${binDir}' -Force"`, { stdio: 'pipe', timeout: 30000 });
|
|
297
|
+
// Clean up zip
|
|
298
|
+
try {
|
|
299
|
+
execSync(`del "${zipPath}"`, { stdio: 'pipe' });
|
|
300
|
+
}
|
|
301
|
+
catch { /* ignore */ }
|
|
302
|
+
// Add to PATH for current session and persist via user env
|
|
303
|
+
addToPathWindows(binDir);
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch { /* fall through to cargo */ }
|
|
308
|
+
// Strategy 2: cargo install
|
|
309
|
+
try {
|
|
310
|
+
execSync('where cargo', { stdio: 'pipe' });
|
|
311
|
+
execSync('cargo install --git https://github.com/rtk-ai/rtk', {
|
|
312
|
+
stdio: 'pipe',
|
|
313
|
+
timeout: 300000,
|
|
314
|
+
});
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
catch { /* fall through */ }
|
|
318
|
+
throw new Error('All Windows install strategies failed');
|
|
319
|
+
}
|
|
320
|
+
function addToPathWindows(binDir) {
|
|
321
|
+
try {
|
|
322
|
+
// Check if already in PATH
|
|
323
|
+
const currentPath = process.env.PATH || '';
|
|
324
|
+
if (currentPath.toLowerCase().includes(binDir.toLowerCase()))
|
|
325
|
+
return;
|
|
326
|
+
// Add to current process PATH
|
|
327
|
+
process.env.PATH = `${binDir};${currentPath}`;
|
|
328
|
+
// Persist to user PATH via registry
|
|
329
|
+
execSync(`powershell -NoProfile -Command "[Environment]::SetEnvironmentVariable('PATH', [Environment]::GetEnvironmentVariable('PATH', 'User') + ';${binDir}', 'User')"`, { stdio: 'pipe', timeout: 10000 });
|
|
330
|
+
}
|
|
331
|
+
catch { /* non-critical — rtk works if binDir is in PATH next session */ }
|
|
332
|
+
}
|
|
240
333
|
/**
|
|
241
334
|
* Ensure ~/.claude/settings.json has Read, Write, Edit in allow list.
|
|
242
335
|
* Non-destructive: only adds missing permissions, preserves everything else.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/update.js
CHANGED
|
@@ -2,6 +2,8 @@ import { existsSync, readdirSync } from 'fs';
|
|
|
2
2
|
import { rm, cp, mkdir, copyFile } from 'fs/promises';
|
|
3
3
|
import { join, resolve, dirname } from 'path';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
|
+
import { execSync } from 'child_process';
|
|
6
|
+
import { homedir } from 'os';
|
|
5
7
|
import chalk from 'chalk';
|
|
6
8
|
import ora from 'ora';
|
|
7
9
|
import inquirer from 'inquirer';
|
|
@@ -85,6 +87,97 @@ export async function updateCommand(options) {
|
|
|
85
87
|
await copyFile(join(templatesDir, 'settings.json'), join(claudePath, 'settings.json'));
|
|
86
88
|
total++;
|
|
87
89
|
copySpinner.succeed(`Updated ${total} files`);
|
|
90
|
+
await ensureRtk();
|
|
88
91
|
console.log(chalk.green.bold('\n✅ Update complete!\n'));
|
|
89
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Ensure RTK (Rust Token Killer) is installed for token economy.
|
|
95
|
+
* Transparent: installs silently, never blocks on failure.
|
|
96
|
+
*/
|
|
97
|
+
async function ensureRtk() {
|
|
98
|
+
const isWin = process.platform === 'win32';
|
|
99
|
+
const whichCmd = isWin ? 'where' : 'which';
|
|
100
|
+
// Check if rtk is already in PATH
|
|
101
|
+
try {
|
|
102
|
+
execSync(`${whichCmd} rtk`, { stdio: 'pipe', encoding: 'utf-8' });
|
|
103
|
+
// Verify it's the correct RTK (not Rust Type Kit)
|
|
104
|
+
const version = execSync('rtk --version', { stdio: 'pipe', encoding: 'utf-8' }).trim();
|
|
105
|
+
console.log(chalk.green(` ✓ RTK ${version} (token economy active)`));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// Not installed — proceed to install
|
|
110
|
+
}
|
|
111
|
+
const spinner = ora('Installing RTK (token economy)...').start();
|
|
112
|
+
try {
|
|
113
|
+
if (isWin) {
|
|
114
|
+
await installRtkWindows();
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
execSync('curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh', {
|
|
118
|
+
stdio: 'pipe',
|
|
119
|
+
timeout: 120000, // 2 min
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
// Verify installation
|
|
123
|
+
try {
|
|
124
|
+
const version = execSync('rtk --version', { stdio: 'pipe', encoding: 'utf-8' }).trim();
|
|
125
|
+
spinner.succeed(`RTK ${version} installed (token economy active)`);
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
spinner.succeed('RTK installed (token economy active)');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
spinner.warn('RTK not installed — token economy will activate when RTK is available');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async function installRtkWindows() {
|
|
136
|
+
const binDir = join(homedir(), '.local', 'bin');
|
|
137
|
+
// Strategy 1: Download prebuilt binary from GitHub releases
|
|
138
|
+
try {
|
|
139
|
+
const releaseJson = execSync('powershell -NoProfile -Command "Invoke-RestMethod -Uri https://api.github.com/repos/rtk-ai/rtk/releases/latest | ConvertTo-Json -Depth 5"', { stdio: 'pipe', encoding: 'utf-8', timeout: 30000 });
|
|
140
|
+
const release = JSON.parse(releaseJson);
|
|
141
|
+
const asset = release.assets?.find((a) => a.name.includes('windows') && a.name.endsWith('.zip'));
|
|
142
|
+
if (asset?.browser_download_url) {
|
|
143
|
+
const zipPath = join(homedir(), '.local', 'rtk-install.zip');
|
|
144
|
+
await mkdir(binDir, { recursive: true });
|
|
145
|
+
execSync(`powershell -NoProfile -Command "Invoke-WebRequest -Uri '${asset.browser_download_url}' -OutFile '${zipPath}'"`, { stdio: 'pipe', timeout: 120000 });
|
|
146
|
+
execSync(`powershell -NoProfile -Command "Expand-Archive -Path '${zipPath}' -DestinationPath '${binDir}' -Force"`, { stdio: 'pipe', timeout: 30000 });
|
|
147
|
+
// Clean up zip
|
|
148
|
+
try {
|
|
149
|
+
execSync(`del "${zipPath}"`, { stdio: 'pipe' });
|
|
150
|
+
}
|
|
151
|
+
catch { /* ignore */ }
|
|
152
|
+
// Add to PATH for current session and persist via user env
|
|
153
|
+
addToPathWindows(binDir);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch { /* fall through to cargo */ }
|
|
158
|
+
// Strategy 2: cargo install
|
|
159
|
+
try {
|
|
160
|
+
execSync('where cargo', { stdio: 'pipe' });
|
|
161
|
+
execSync('cargo install --git https://github.com/rtk-ai/rtk', {
|
|
162
|
+
stdio: 'pipe',
|
|
163
|
+
timeout: 300000,
|
|
164
|
+
});
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
catch { /* fall through */ }
|
|
168
|
+
throw new Error('All Windows install strategies failed');
|
|
169
|
+
}
|
|
170
|
+
function addToPathWindows(binDir) {
|
|
171
|
+
try {
|
|
172
|
+
// Check if already in PATH
|
|
173
|
+
const currentPath = process.env.PATH || '';
|
|
174
|
+
if (currentPath.toLowerCase().includes(binDir.toLowerCase()))
|
|
175
|
+
return;
|
|
176
|
+
// Add to current process PATH
|
|
177
|
+
process.env.PATH = `${binDir};${currentPath}`;
|
|
178
|
+
// Persist to user PATH via registry
|
|
179
|
+
execSync(`powershell -NoProfile -Command "[Environment]::SetEnvironmentVariable('PATH', [Environment]::GetEnvironmentVariable('PATH', 'User') + ';${binDir}', 'User')"`, { stdio: 'pipe', timeout: 10000 });
|
|
180
|
+
}
|
|
181
|
+
catch { /* non-critical — rtk works if binDir is in PATH next session */ }
|
|
182
|
+
}
|
|
90
183
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: templates-command-authoring
|
|
3
3
|
description: "Pattern for writing slash command SKILL.md files with trigger, procedure,
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
and rules. Use when creating a new mustard command, adding a pipeline command,
|
|
5
|
+
writing a /command, or the user says 'new command', 'add slash command',
|
|
6
6
|
'create /feature-like command', 'write command template'."
|
|
7
7
|
---
|
|
8
8
|
<!-- mustard:generated at:2026-03-25T00:00:00.000Z role:general -->
|
|
@@ -16,7 +16,7 @@ Slash commands are SKILL.md files in `commands/mustard/{command-name}/SKILL.md`
|
|
|
16
16
|
### File Convention
|
|
17
17
|
- Location: `commands/mustard/{command-name}/SKILL.md`
|
|
18
18
|
- No YAML frontmatter (commands are not auto-loaded by description)
|
|
19
|
-
- End with `ULTRATHINK` keyword
|
|
19
|
+
- End with `ULTRATHINK` keyword **only for `/feature` and `/bugfix` commands** — do NOT add it to other commands
|
|
20
20
|
|
|
21
21
|
### Structure
|
|
22
22
|
|
|
@@ -42,10 +42,10 @@ Step-by-step process. Use:
|
|
|
42
42
|
- Explicit constraints (NEVER, ALWAYS, MUST)
|
|
43
43
|
- Budget limits (max reads, max API calls)
|
|
44
44
|
- Delegation requirements
|
|
45
|
-
|
|
46
|
-
ULTRATHINK
|
|
47
45
|
```
|
|
48
46
|
|
|
47
|
+
> Note: Add `ULTRATHINK` at the end only for `/feature` and `/bugfix` commands. All other commands end after the last rule/section.
|
|
48
|
+
|
|
49
49
|
### Key Rules
|
|
50
50
|
- Commands NEVER implement code directly — they orchestrate via Task tool
|
|
51
51
|
- Pipeline commands create spec files and pipeline state JSON
|
|
@@ -79,8 +79,6 @@ ULTRATHINK
|
|
|
79
79
|
- NEVER implement code directly
|
|
80
80
|
- ALWAYS delegate via Task tool
|
|
81
81
|
- Budget: max 5 API calls
|
|
82
|
-
|
|
83
|
-
ULTRATHINK
|
|
84
82
|
```
|
|
85
83
|
Ref: `commands/mustard/feature/SKILL.md`, `commands/mustard/status/SKILL.md`
|
|
86
84
|
|
package/templates/CLAUDE.md
CHANGED
|
@@ -73,5 +73,14 @@ node scripts/sync-registry.js --force
|
|
|
73
73
|
- `templates-command-authoring` — Slash command SKILL.md structure
|
|
74
74
|
- `templates-skill-authoring` — Foundation/subproject skill creation
|
|
75
75
|
|
|
76
|
+
## Token Economy
|
|
77
|
+
|
|
78
|
+
RTK (Rust Token Killer) is integrated as core infrastructure. A PreToolUse hook automatically rewrites Bash commands through `rtk`, reducing token consumption by 60-90% on CLI outputs.
|
|
79
|
+
|
|
80
|
+
- **Hook**: `hooks/rtk-rewrite.js` — transparent, fail-open
|
|
81
|
+
- **Analytics**: `rtk gain` — view token savings
|
|
82
|
+
- **Statusline**: Shows real-time savings when RTK is active
|
|
83
|
+
- If RTK is not installed, the hook silently passes through (zero impact)
|
|
84
|
+
|
|
76
85
|
## Full Reference
|
|
77
86
|
Rules, pipeline, naming: `pipeline-config.md`
|
|
@@ -33,6 +33,10 @@ If ANY gate fails: do NOT mark complete → report what failed + suggest fix. If
|
|
|
33
33
|
6. **Pipeline State — cleanup:**
|
|
34
34
|
- Extract `spec-name` from the spec directory (e.g. `2026-02-26-linked-services-card`)
|
|
35
35
|
- **Delete** `.claude/.pipeline-states/{spec-name}.json` (removes from statusline)
|
|
36
|
+
6b. **Token Economy — RTK report (if available):**
|
|
37
|
+
- Run `rtk gain --all --format json` via Bash
|
|
38
|
+
- If RTK available: extract `saved_tokens` and `savings_pct`
|
|
39
|
+
- Include in output block below
|
|
36
40
|
7. **Output — visual feedback:**
|
|
37
41
|
|
|
38
42
|
```
|
|
@@ -40,9 +44,12 @@ If ANY gate fails: do NOT mark complete → report what failed + suggest fix. If
|
|
|
40
44
|
PIPELINE COMPLETE — {spec-name}
|
|
41
45
|
Agents: {n} ok | Files: {created} created, {modified} modified
|
|
42
46
|
[v] Registry updated | [v] Spec moved to completed/
|
|
47
|
+
Token Economy: {saved}k saved ({pct}% reduction) — RTK
|
|
43
48
|
================================================================
|
|
44
49
|
```
|
|
45
50
|
|
|
51
|
+
If RTK is not installed or the gain command fails, omit the Token Economy line.
|
|
52
|
+
|
|
46
53
|
## Cancellation Flow
|
|
47
54
|
|
|
48
55
|
If the user wants to cancel (not complete):
|
|
@@ -62,5 +69,3 @@ On completion, the output must include:
|
|
|
62
69
|
- After successful implementation and review
|
|
63
70
|
- To cancel an ongoing pipeline
|
|
64
71
|
- To force close if something went wrong
|
|
65
|
-
|
|
66
|
-
ULTRATHINK
|
|
@@ -126,5 +126,3 @@ When an agent fails:
|
|
|
126
126
|
- ALWAYS read `pipeline-config.md` for agent/wave/model config — NEVER hardcode project-specific values
|
|
127
127
|
- ALWAYS use agent-prompt template — NEVER build prompts from scratch
|
|
128
128
|
- ALWAYS execute wave transitions between waves
|
|
129
|
-
|
|
130
|
-
ULTRATHINK
|
|
@@ -257,5 +257,3 @@ For each generated skill, ALSO create in `{subproject}/.claude/skills/{skill-nam
|
|
|
257
257
|
|
|
258
258
|
Skills are generated ONLY in `{subproject}/.claude/skills/{skill-name}/` (NOT in root `.claude/skills/`).
|
|
259
259
|
This keeps subproject-specific knowledge self-contained and avoids duplication.
|
|
260
|
-
|
|
261
|
-
ULTRATHINK
|
|
@@ -147,5 +147,3 @@ Update the skill-creator from the anthropics/skills repo.
|
|
|
147
147
|
- ALWAYS validate SKILL.md after install with quick_validate.py
|
|
148
148
|
- ALWAYS use skill-creator for `/skill create` — don't write skills from scratch
|
|
149
149
|
- `/skill optimize` and `/skill eval` require Python 3 and `claude` CLI
|
|
150
|
-
|
|
151
|
-
ULTRATHINK
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* RTK REWRITE: PreToolUse hook that rewrites Bash commands through RTK
|
|
4
|
+
*
|
|
5
|
+
* If RTK (Rust Token Killer) is available in PATH, transparently prepends
|
|
6
|
+
* `rtk ` to every Bash command, reducing token consumption by 60-90% on
|
|
7
|
+
* CLI outputs.
|
|
8
|
+
*
|
|
9
|
+
* RTK availability is cached in a temp file (60s TTL) to avoid spawning
|
|
10
|
+
* which/where on every command invocation.
|
|
11
|
+
*
|
|
12
|
+
* Fail-open: exits 0 on any error so Claude is never blocked by this hook.
|
|
13
|
+
*
|
|
14
|
+
* @version 1.0.0
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const { execFileSync } = require('child_process');
|
|
18
|
+
const fs = require('fs');
|
|
19
|
+
const path = require('path');
|
|
20
|
+
const os = require('os');
|
|
21
|
+
|
|
22
|
+
const CACHE_FILE = path.join(os.tmpdir(), 'rtk-available.json');
|
|
23
|
+
const CACHE_TTL_MS = 60_000;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Commands RTK knows how to optimize. For anything else, pass through
|
|
27
|
+
* unchanged to avoid unnecessary overhead.
|
|
28
|
+
* Source: https://github.com/rtk-ai/rtk (supported commands)
|
|
29
|
+
*/
|
|
30
|
+
const RTK_COMMANDS = new Set([
|
|
31
|
+
// Git
|
|
32
|
+
'git',
|
|
33
|
+
// Package managers
|
|
34
|
+
'npm', 'pnpm', 'yarn', 'bun', 'cargo', 'pip', 'pip3', 'bundle', 'gem',
|
|
35
|
+
'composer', 'go', 'poetry', 'nuget',
|
|
36
|
+
// Test runners
|
|
37
|
+
'pytest', 'vitest', 'jest', 'mocha', 'rspec', 'rake',
|
|
38
|
+
'playwright', 'cypress', 'nunit3-console', 'xunit.console',
|
|
39
|
+
// Build / lint
|
|
40
|
+
'eslint', 'biome', 'tsc', 'rustc', 'clippy', 'make', 'cmake', 'gradle',
|
|
41
|
+
'mvn', 'dotnet', 'msbuild', 'nuget',
|
|
42
|
+
// Bundlers / dev servers
|
|
43
|
+
'next', 'vite', 'webpack', 'turbo', 'nx', 'lerna', 'esbuild', 'rollup',
|
|
44
|
+
'parcel', 'rspack',
|
|
45
|
+
// CSS / preprocessors
|
|
46
|
+
'tailwindcss', 'sass', 'postcss', 'less',
|
|
47
|
+
// File / search
|
|
48
|
+
'ls', 'tree', 'find', 'grep', 'rg', 'cat', 'head', 'tail', 'wc',
|
|
49
|
+
'diff', 'sort', 'uniq',
|
|
50
|
+
// Network
|
|
51
|
+
'curl', 'wget',
|
|
52
|
+
// Containers
|
|
53
|
+
'docker', 'kubectl', 'podman', 'docker-compose',
|
|
54
|
+
// DB
|
|
55
|
+
'psql', 'mysql', 'sqlite3', 'mongosh',
|
|
56
|
+
// ORM / migration tools
|
|
57
|
+
'prisma', 'drizzle-kit', 'typeorm', 'sequelize',
|
|
58
|
+
// Misc
|
|
59
|
+
'env', 'printenv', 'gh',
|
|
60
|
+
]);
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Returns true if `rtk` is available in PATH, using a cached result when
|
|
64
|
+
* the cache is still within TTL.
|
|
65
|
+
*/
|
|
66
|
+
function isRtkAvailable() {
|
|
67
|
+
try {
|
|
68
|
+
if (fs.existsSync(CACHE_FILE)) {
|
|
69
|
+
const raw = fs.readFileSync(CACHE_FILE, 'utf8');
|
|
70
|
+
const cached = JSON.parse(raw);
|
|
71
|
+
if (Date.now() - cached.ts < CACHE_TTL_MS) {
|
|
72
|
+
return cached.available;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
} catch (_) {
|
|
76
|
+
// Cache read failed — fall through to fresh check
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
let available = false;
|
|
80
|
+
try {
|
|
81
|
+
if (process.platform === 'win32') {
|
|
82
|
+
execFileSync('where', ['rtk'], { stdio: 'ignore' });
|
|
83
|
+
} else {
|
|
84
|
+
execFileSync('which', ['rtk'], { stdio: 'ignore' });
|
|
85
|
+
}
|
|
86
|
+
available = true;
|
|
87
|
+
} catch (_) {
|
|
88
|
+
available = false;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
try {
|
|
92
|
+
fs.writeFileSync(CACHE_FILE, JSON.stringify({ available, ts: Date.now() }), 'utf8');
|
|
93
|
+
} catch (_) {
|
|
94
|
+
// Cache write failed — non-fatal
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return available;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Extracts the base command name from a shell command string.
|
|
102
|
+
* Handles: env vars (FOO=bar cmd), paths (/usr/bin/cmd), sudo, npx/bunx wrappers.
|
|
103
|
+
*/
|
|
104
|
+
function extractBaseCommand(cmd) {
|
|
105
|
+
const trimmed = cmd.trim();
|
|
106
|
+
if (!trimmed) return null;
|
|
107
|
+
|
|
108
|
+
// Split on first pipe/semicolon/&& to get the first command
|
|
109
|
+
const firstCmd = trimmed.split(/[|;&]/)[0].trim();
|
|
110
|
+
|
|
111
|
+
// Tokenize respecting quotes
|
|
112
|
+
const tokens = firstCmd.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g) || [];
|
|
113
|
+
|
|
114
|
+
for (const token of tokens) {
|
|
115
|
+
// Skip env variable assignments (FOO=bar)
|
|
116
|
+
if (/^[A-Za-z_]\w*=/.test(token)) continue;
|
|
117
|
+
// Skip sudo/env prefixes
|
|
118
|
+
if (token === 'sudo' || token === 'env') continue;
|
|
119
|
+
// Skip npx/bunx — let the actual command through
|
|
120
|
+
if (token === 'npx' || token === 'bunx') continue;
|
|
121
|
+
// Extract basename from paths (/usr/bin/git → git)
|
|
122
|
+
const base = path.basename(token);
|
|
123
|
+
return base;
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
let input = '';
|
|
129
|
+
process.stdin.setEncoding('utf8');
|
|
130
|
+
process.stdin.on('data', chunk => (input += chunk));
|
|
131
|
+
process.stdin.on('end', () => {
|
|
132
|
+
try {
|
|
133
|
+
const data = JSON.parse(input);
|
|
134
|
+
const cmd = data.tool_input?.command || '';
|
|
135
|
+
|
|
136
|
+
// Already prefixed or RTK not available — pass through
|
|
137
|
+
if (cmd.startsWith('rtk ') || !isRtkAvailable()) {
|
|
138
|
+
process.exit(0);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Extract the base command (first word, ignoring env vars and paths)
|
|
142
|
+
const baseCmd = extractBaseCommand(cmd);
|
|
143
|
+
if (!baseCmd || !RTK_COMMANDS.has(baseCmd)) {
|
|
144
|
+
process.exit(0);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
console.log(JSON.stringify({
|
|
148
|
+
hookSpecificOutput: {
|
|
149
|
+
hookEventName: 'PreToolUse',
|
|
150
|
+
permissionDecision: 'allow',
|
|
151
|
+
updatedInput: { command: 'rtk ' + cmd }
|
|
152
|
+
}
|
|
153
|
+
}));
|
|
154
|
+
process.exit(0);
|
|
155
|
+
} catch (err) {
|
|
156
|
+
process.stderr.write(`[rtk-rewrite] Error: ${err.message}\n`);
|
|
157
|
+
process.exit(0);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
@@ -16,6 +16,8 @@ const os = require('os');
|
|
|
16
16
|
|
|
17
17
|
const GIT_CACHE_FILE = path.join(os.tmpdir(), 'claude-statusline-git.json');
|
|
18
18
|
const GIT_CACHE_TTL = 5000;
|
|
19
|
+
const RTK_CACHE_FILE = path.join(os.tmpdir(), 'claude-statusline-rtk.json');
|
|
20
|
+
const RTK_CACHE_TTL = 30000;
|
|
19
21
|
const PIPELINE_STALE_MS = 4 * 60 * 60 * 1000;
|
|
20
22
|
const MAX_AGENTS_SHOWN = 3;
|
|
21
23
|
|
|
@@ -78,6 +80,10 @@ process.stdin.on('end', () => {
|
|
|
78
80
|
const dur = buildDurationSegment(data);
|
|
79
81
|
if (dur) line1.push(dur);
|
|
80
82
|
|
|
83
|
+
// RTK token economy
|
|
84
|
+
const rtk = buildRtkSegment();
|
|
85
|
+
if (rtk) line1.push(rtk);
|
|
86
|
+
|
|
81
87
|
// Lines +/-
|
|
82
88
|
const la = data.cost?.total_lines_added ?? 0;
|
|
83
89
|
const lr = data.cost?.total_lines_removed ?? 0;
|
|
@@ -213,6 +219,48 @@ function buildDurationSegment(data) {
|
|
|
213
219
|
return str;
|
|
214
220
|
}
|
|
215
221
|
|
|
222
|
+
function buildRtkSegment() {
|
|
223
|
+
try {
|
|
224
|
+
// Check cache first
|
|
225
|
+
if (fs.existsSync(RTK_CACHE_FILE)) {
|
|
226
|
+
try {
|
|
227
|
+
const stat = fs.statSync(RTK_CACHE_FILE);
|
|
228
|
+
if (Date.now() - stat.mtimeMs < RTK_CACHE_TTL) {
|
|
229
|
+
const cached = JSON.parse(fs.readFileSync(RTK_CACHE_FILE, 'utf8'));
|
|
230
|
+
if (cached === null) return null;
|
|
231
|
+
return cached;
|
|
232
|
+
}
|
|
233
|
+
} catch {}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// Cache miss — run rtk
|
|
237
|
+
const raw = execSync('rtk gain --all --format json', {
|
|
238
|
+
encoding: 'utf8',
|
|
239
|
+
timeout: 3000,
|
|
240
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
241
|
+
});
|
|
242
|
+
const parsed = JSON.parse(raw);
|
|
243
|
+
const savedTokens = parsed.saved_tokens ?? parsed.savedTokens ?? 0;
|
|
244
|
+
const savingsPct = parsed.savings_pct ?? parsed.savingsPct ?? parsed.savings_percent ?? 0;
|
|
245
|
+
|
|
246
|
+
if (!savedTokens && !savingsPct) {
|
|
247
|
+
try { fs.writeFileSync(RTK_CACHE_FILE, JSON.stringify(null)); } catch {}
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
const savedK = Math.round(savedTokens / 1000);
|
|
252
|
+
const pct = Math.round(savingsPct);
|
|
253
|
+
const color = pct > 50 ? C.green : pct > 20 ? C.yellow : C.gray;
|
|
254
|
+
const result = `${color}\u26A1 ${pct}%${C.reset} ${C.gray}${savedK}k saved${C.reset}`;
|
|
255
|
+
|
|
256
|
+
try { fs.writeFileSync(RTK_CACHE_FILE, JSON.stringify(result)); } catch {}
|
|
257
|
+
return result;
|
|
258
|
+
} catch {
|
|
259
|
+
try { fs.writeFileSync(RTK_CACHE_FILE, JSON.stringify(null)); } catch {}
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
216
264
|
function buildPipelineSegment(dir, hasActiveAgents) {
|
|
217
265
|
try {
|
|
218
266
|
const statesDir = path.join(dir, '.claude', '.pipeline-states');
|
package/templates/settings.json
CHANGED
|
@@ -46,6 +46,16 @@
|
|
|
46
46
|
|
|
47
47
|
"hooks": {
|
|
48
48
|
"PreToolUse": [
|
|
49
|
+
{
|
|
50
|
+
"matcher": "Bash",
|
|
51
|
+
"hooks": [
|
|
52
|
+
{
|
|
53
|
+
"type": "command",
|
|
54
|
+
"command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/rtk-rewrite.js",
|
|
55
|
+
"timeout": 5
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
},
|
|
49
59
|
{
|
|
50
60
|
"matcher": "Bash",
|
|
51
61
|
"hooks": [
|