@nolrm/contextkit 0.12.15 → 0.12.17
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 +9 -1
- package/bin/contextkit.js +1 -1
- package/lib/commands/install.js +2 -0
- package/lib/commands/update.js +2 -0
- package/lib/utils/banner.js +47 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -213,6 +213,14 @@ Pass multiple tasks to `/squad` and it automatically runs in batch mode:
|
|
|
213
213
|
# Phase 2: dev→test→review pipeline runs in parallel per task
|
|
214
214
|
```
|
|
215
215
|
|
|
216
|
+
**Model routing (Claude Code only):** Set `model_routing: true` in `.contextkit/squad/config.md` to have `/squad-auto` automatically use Claude Haiku for Dev and Test phases. Architect and Review always run on your primary model. Saves ~35% tokens with no quality loss — the standards files and Review gate maintain quality.
|
|
217
|
+
|
|
218
|
+
```markdown
|
|
219
|
+
# .contextkit/squad/config.md
|
|
220
|
+
checkpoint: po
|
|
221
|
+
model_routing: true # dev + test → Haiku, architect + review → primary model
|
|
222
|
+
```
|
|
223
|
+
|
|
216
224
|
### Feedback Loop
|
|
217
225
|
|
|
218
226
|
Any downstream role can raise questions for an upstream role. When this happens, the pipeline pauses and directs you to the right command:
|
|
@@ -295,7 +303,7 @@ Hooks are optional and can be skipped with `ck install --no-hooks`.
|
|
|
295
303
|
```bash
|
|
296
304
|
# Installation & Setup
|
|
297
305
|
ck install # set up .contextkit + pick AI tool interactively
|
|
298
|
-
ck install claude # set up .contextkit + Claude
|
|
306
|
+
ck install claude # set up .contextkit + Claude, or add Claude to an existing install
|
|
299
307
|
ck claude # add Claude Code integration (CLAUDE.md + rules)
|
|
300
308
|
ck cursor # add Cursor integration (scoped .mdc rules)
|
|
301
309
|
ck copilot # add GitHub Copilot integration
|
package/bin/contextkit.js
CHANGED
|
@@ -27,7 +27,7 @@ program
|
|
|
27
27
|
.option('--non-interactive', 'Skip interactive prompts')
|
|
28
28
|
.action(async (platform, options) => {
|
|
29
29
|
try {
|
|
30
|
-
await install({ ...options, ...(platform ? { platform
|
|
30
|
+
await install({ ...options, ...(platform ? { platform } : { fullInstall: true }) });
|
|
31
31
|
} catch (error) {
|
|
32
32
|
console.error(chalk.red('Installation failed:'), error.message);
|
|
33
33
|
process.exit(1);
|
package/lib/commands/install.js
CHANGED
|
@@ -9,6 +9,7 @@ const DownloadManager = require('../utils/download');
|
|
|
9
9
|
const ProjectDetector = require('../utils/project-detector');
|
|
10
10
|
const GitHooksManager = require('../utils/git-hooks');
|
|
11
11
|
const StatusManager = require('../utils/status-manager');
|
|
12
|
+
const { printBanner } = require('../utils/banner');
|
|
12
13
|
|
|
13
14
|
class InstallCommand {
|
|
14
15
|
constructor() {
|
|
@@ -69,6 +70,7 @@ class InstallCommand {
|
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
// Full installation
|
|
73
|
+
printBanner();
|
|
72
74
|
console.log(chalk.magenta('🎵 Installing ContextKit...'));
|
|
73
75
|
console.log('');
|
|
74
76
|
|
package/lib/commands/update.js
CHANGED
|
@@ -6,6 +6,7 @@ const path = require('path');
|
|
|
6
6
|
const DownloadManager = require('../utils/download');
|
|
7
7
|
const ProjectDetector = require('../utils/project-detector');
|
|
8
8
|
const GitHooksManager = require('../utils/git-hooks');
|
|
9
|
+
const { printBanner } = require('../utils/banner');
|
|
9
10
|
|
|
10
11
|
class UpdateCommand {
|
|
11
12
|
constructor() {
|
|
@@ -16,6 +17,7 @@ class UpdateCommand {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
async update(options = {}) {
|
|
20
|
+
printBanner();
|
|
19
21
|
console.log(chalk.magenta('🔄 Updating ContextKit...'));
|
|
20
22
|
|
|
21
23
|
// Check if ContextKit is installed
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const chalk = require('chalk');
|
|
2
|
+
|
|
3
|
+
// ── ASCII art ──────────────────────────────────────────────────────────────
|
|
4
|
+
|
|
5
|
+
const LINES = [
|
|
6
|
+
' ______ __ __ __ __ _ __ ',
|
|
7
|
+
' / ____/ ____ ____ / /_ ___ _ __ / /_ / //_/ (_) / /_ ',
|
|
8
|
+
' / / / __ \\ / __ \\ / __/ / _ \\ | |/_/ / __/ / ,< / / / __/ ',
|
|
9
|
+
'/ /___ / /_/ / / / / / / /_ / __/ _> < / /_ / /| | / / / /_ ',
|
|
10
|
+
'\\____/ \\____/ /_/ /_/ \\__/ \\___/ /_/|_| \\__/ /_/ |_| /_/ \\__/ ',
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
// ── Color helpers ──────────────────────────────────────────────────────────
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Convert HSL (h: 0–360, s: 0–100, l: 0–100) to [r, g, b] (0–255).
|
|
17
|
+
* Standard algorithm — no dependencies.
|
|
18
|
+
*/
|
|
19
|
+
function hslToRgb(h, s, l) {
|
|
20
|
+
s /= 100;
|
|
21
|
+
l /= 100;
|
|
22
|
+
const k = n => (n + h / 30) % 12;
|
|
23
|
+
const a = s * Math.min(l, 1 - l);
|
|
24
|
+
const f = n => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));
|
|
25
|
+
return [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// ── Banner ─────────────────────────────────────────────────────────────────
|
|
29
|
+
|
|
30
|
+
function printBanner() {
|
|
31
|
+
const maxLen = Math.max(...LINES.map(l => l.length));
|
|
32
|
+
|
|
33
|
+
console.log('');
|
|
34
|
+
LINES.forEach(line => {
|
|
35
|
+
const colored = line.split('').map((char, i) => {
|
|
36
|
+
if (char === ' ') return ' ';
|
|
37
|
+
// Cycle hues 20–290°: warm red → yellow → green → cyan → blue
|
|
38
|
+
const hue = (i / maxLen) * 270 + 20;
|
|
39
|
+
const [r, g, b] = hslToRgb(hue, 100, 65);
|
|
40
|
+
return chalk.rgb(r, g, b)(char);
|
|
41
|
+
}).join('');
|
|
42
|
+
console.log(colored);
|
|
43
|
+
});
|
|
44
|
+
console.log('');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = { printBanner, hslToRgb };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nolrm/contextkit",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.17",
|
|
4
4
|
"description": "ContextKit - Context Engineering for AI Development. Provide rich context to AI through structured MD files with standards, code guides, and documentation. Works with Cursor, Claude, Aider, VS Code Copilot, and more.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"bin": {
|