devlyn-cli 1.12.0 → 1.12.1
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 +38 -3
- package/bin/devlyn.js +24 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -79,6 +79,7 @@ Build → Build Gate → Browser Test → Evaluate → Fix Loop → Simplify →
|
|
|
79
79
|
|
|
80
80
|
Skip phases you don't need: `--skip-browser`, `--skip-review`, `--skip-clean`, `--skip-docs`, `--skip-build-gate`, `--max-rounds 6`
|
|
81
81
|
Customize the build gate: `--build-gate strict` (warnings = errors), `--build-gate no-docker` (skip Docker builds for speed)
|
|
82
|
+
Use dual-model routing: `--engine auto` (Codex builds, Claude evaluates — see below)
|
|
82
83
|
|
|
83
84
|
### Step 3 — Verify with `/devlyn:preflight`
|
|
84
85
|
|
|
@@ -108,11 +109,42 @@ Install the Codex MCP server during setup, then:
|
|
|
108
109
|
/devlyn:auto-resolve "fix the auth bug" --engine auto
|
|
109
110
|
```
|
|
110
111
|
|
|
111
|
-
**`--engine auto`** routes each pipeline phase and team role to the optimal model (Claude Opus 4.6 or GPT-5.4)
|
|
112
|
+
**`--engine auto`** routes each pipeline phase and team role to the optimal model (Claude Opus 4.6 or GPT-5.4) — validated through A/B testing, not just benchmarks.
|
|
112
113
|
|
|
113
|
-
> `--engine auto` (recommended) · `--engine codex` (force Codex for
|
|
114
|
+
> `--engine auto` (recommended) · `--engine codex` (force Codex for build) · `--engine claude` (default, Claude only)
|
|
114
115
|
|
|
115
|
-
|
|
116
|
+
Works across the full pipeline:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
/devlyn:auto-resolve "implement feature" --engine auto
|
|
120
|
+
/devlyn:ideate "plan new project" --engine auto
|
|
121
|
+
/devlyn:preflight --engine auto
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
<details>
|
|
125
|
+
<summary><strong>How routing works</strong> — A/B tested on 6 roles, 11 integration tests</summary>
|
|
126
|
+
|
|
127
|
+
**Pipeline phases** — builder and critic are always different models (GAN dynamic):
|
|
128
|
+
|
|
129
|
+
| Phase | Model | Why |
|
|
130
|
+
|---|---|---|
|
|
131
|
+
| Build (implementation) | **Codex GPT-5.4** | SWE-bench Pro +11.7pp for hard coding tasks |
|
|
132
|
+
| Evaluate | **Claude** | Long-context (MRCR +28pp) for full-diff grading |
|
|
133
|
+
| Fix Loop | **Codex GPT-5.4** | Same advantage as Build |
|
|
134
|
+
| Challenge | **Claude** | Fresh skeptical review needs different model family |
|
|
135
|
+
| Browser Validate | **Claude** | Chrome MCP session-bound |
|
|
136
|
+
|
|
137
|
+
**Team roles** — each of 21 roles routes to the best model:
|
|
138
|
+
|
|
139
|
+
| Engine | Roles | Examples |
|
|
140
|
+
|---|---|---|
|
|
141
|
+
| Claude (11) | Analysis, design, architecture | root-cause-analyst, architecture-reviewer, ux-designer, product-analyst |
|
|
142
|
+
| Codex (4) | Code generation, performance | implementation-planner, test-engineer, performance-engineer |
|
|
143
|
+
| Dual (6) | Both models find unique issues | security-auditor, quality-reviewer, api-designer |
|
|
144
|
+
|
|
145
|
+
**Key finding**: Benchmark predictions were only 33% accurate. 4 of 6 A/B-tested roles needed routing changes after real testing — proving that benchmarks alone are insufficient for optimal routing.
|
|
146
|
+
|
|
147
|
+
</details>
|
|
116
148
|
|
|
117
149
|
<details>
|
|
118
150
|
<summary>Legacy: <code>--with-codex</code> (superseded by <code>--engine</code>)</summary>
|
|
@@ -123,6 +155,8 @@ Also works with `/devlyn:ideate --engine auto` and `/devlyn:preflight --engine a
|
|
|
123
155
|
|
|
124
156
|
> `--with-codex evaluate` (default) · `--with-codex review` · `--with-codex both`
|
|
125
157
|
|
|
158
|
+
`--engine auto` subsumes `--with-codex both` with broader coverage — Codex is used for build, fix, and 4 team roles, not just evaluate/review.
|
|
159
|
+
|
|
126
160
|
</details>
|
|
127
161
|
|
|
128
162
|
---
|
|
@@ -194,6 +228,7 @@ Selected during install. Run `npx devlyn-cli` again to add more.
|
|
|
194
228
|
|
|
195
229
|
| Skill | Description |
|
|
196
230
|
|---|---|
|
|
231
|
+
| `asset-creator` | AI pixel art game asset pipeline — generate, chroma-key, catalog |
|
|
197
232
|
| `cloudflare-nextjs-setup` | Cloudflare Workers + Next.js with OpenNext |
|
|
198
233
|
| `generate-skill` | Create Claude Code skills following Anthropic best practices |
|
|
199
234
|
| `prompt-engineering` | Claude 4 prompt optimization |
|
package/bin/devlyn.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const fs = require('fs');
|
|
4
4
|
const path = require('path');
|
|
5
|
+
const os = require('os');
|
|
5
6
|
const readline = require('readline');
|
|
6
7
|
const { execSync } = require('child_process');
|
|
7
8
|
|
|
@@ -581,6 +582,29 @@ async function init(skipPrompts = false) {
|
|
|
581
582
|
log(' → settings.json (agent teams + pipeline permissions)', 'dim');
|
|
582
583
|
}
|
|
583
584
|
|
|
585
|
+
// Configure global Claude Code settings (~/.claude/settings.json)
|
|
586
|
+
const globalClaudeDir = path.join(os.homedir(), '.claude');
|
|
587
|
+
const globalSettingsPath = path.join(globalClaudeDir, 'settings.json');
|
|
588
|
+
let globalSettings = {};
|
|
589
|
+
if (fs.existsSync(globalSettingsPath)) {
|
|
590
|
+
try {
|
|
591
|
+
globalSettings = JSON.parse(fs.readFileSync(globalSettingsPath, 'utf8'));
|
|
592
|
+
} catch {
|
|
593
|
+
globalSettings = {};
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
if (!globalSettings.env) globalSettings.env = {};
|
|
597
|
+
let globalSettingsChanged = false;
|
|
598
|
+
if (!globalSettings.env.CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING) {
|
|
599
|
+
globalSettings.env.CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING = '1';
|
|
600
|
+
globalSettingsChanged = true;
|
|
601
|
+
}
|
|
602
|
+
if (globalSettingsChanged) {
|
|
603
|
+
if (!fs.existsSync(globalClaudeDir)) fs.mkdirSync(globalClaudeDir, { recursive: true });
|
|
604
|
+
fs.writeFileSync(globalSettingsPath, JSON.stringify(globalSettings, null, 2) + '\n');
|
|
605
|
+
log(' → ~/.claude/settings.json (disabled adaptive thinking)', 'dim');
|
|
606
|
+
}
|
|
607
|
+
|
|
584
608
|
// Install agents for other detected CLIs
|
|
585
609
|
const detected = detectOtherCLIs();
|
|
586
610
|
if (detected.length > 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devlyn-cli",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.1",
|
|
4
4
|
"description": "AI development toolkit for Claude Code — ideate, auto-resolve, and ship with context engineering and agent orchestration",
|
|
5
5
|
"homepage": "https://github.com/fysoul17/devlyn-cli#readme",
|
|
6
6
|
"bin": {
|