devlyn-cli 2.3.2 → 2.4.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/AGENTS.md +72 -1
- package/CLAUDE.md +2 -2
- package/README.md +7 -9
- package/bin/devlyn.js +4 -3
- package/config/skills/_shared/runtime-principles.md +1 -1
- package/config/skills/devlyn:design-ui/SKILL.md +510 -224
- package/config/skills/root-cause-analysis/SKILL.md +2 -3
- package/config/skills/ui-implementation-standards/SKILL.md +2 -2
- package/package.json +1 -1
- package/optional-skills/devlyn:design-system/SKILL.md +0 -503
- package/optional-skills/devlyn:team-design-ui/SKILL.md +0 -687
package/AGENTS.md
CHANGED
|
@@ -28,7 +28,7 @@ ideate (optional) -> resolve -> ship
|
|
|
28
28
|
|
|
29
29
|
- `/devlyn:ideate` (optional) — unstructured idea → `docs/specs/<id>/spec.md` + `spec.expected.json`. Modes: default Q&A, `--quick` (autonomous-pipeline-safe), `--from-spec <path>`, `--project` (multi-feature).
|
|
30
30
|
- `/devlyn:resolve` — hands-free pipeline for any coding task. Free-form goal, `--spec <path>`, or `--verify-only <ref> --spec <path>`. Phases run inline: PLAN → IMPLEMENT → BUILD_GATE → CLEANUP → VERIFY (fresh-subagent, findings-only).
|
|
31
|
-
- `/devlyn:design-ui` — required creative UI exploration surface.
|
|
31
|
+
- `/devlyn:design-ui` — required creative UI exploration surface. Spawns a 5-specialist design team (Creative Director, Product Designer, Visual Designer, Interaction Designer, Accessibility Designer) to generate N (default 5) portfolio-worthy HTML/CSS samples. The optional `/devlyn:reap` companion lives in `optional-skills/` and installs only when the user opts in.
|
|
32
32
|
|
|
33
33
|
Each skill's `SKILL.md` is the source of truth for flags and workflow. Do not duplicate.
|
|
34
34
|
|
|
@@ -102,3 +102,74 @@ Exclude vague claims. They produce vague fixes.
|
|
|
102
102
|
- Be concise and specific.
|
|
103
103
|
- State blockers plainly.
|
|
104
104
|
- Separate completed work, verification, and remaining risks.
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
# Devlyn Agent Instructions
|
|
110
|
+
|
|
111
|
+
# Evaluator Agent
|
|
112
|
+
|
|
113
|
+
You are a code quality evaluator. Your job is to audit work produced by another session, PR, or changeset and provide evidence-based findings with exact file:line references.
|
|
114
|
+
|
|
115
|
+
## Before You Start
|
|
116
|
+
|
|
117
|
+
1. **Check for done criteria**: Read `.devlyn/done-criteria.md` if it exists. When present, this is your primary grading rubric — every criterion must be verified with evidence. When absent, fall back to the checklists below.
|
|
118
|
+
|
|
119
|
+
## Calibration
|
|
120
|
+
|
|
121
|
+
You will be too lenient by default. You will identify real issues, then talk yourself into deciding they aren't a big deal. Fight this tendency.
|
|
122
|
+
|
|
123
|
+
**Rule**: When in doubt, score DOWN. A false negative ships broken code. A false positive costs minutes of review. The cost is asymmetric.
|
|
124
|
+
|
|
125
|
+
- A catch block that logs but doesn't surface error to user = HIGH (not MEDIUM). Logging is not error handling.
|
|
126
|
+
- A `let` that could be `const` = LOW note only. Linters catch this.
|
|
127
|
+
- "The error handling is generally quite good" = WRONG. Count the instances. Name the files.
|
|
128
|
+
|
|
129
|
+
## Evaluation Process
|
|
130
|
+
|
|
131
|
+
1. **Discover scope**: Read the changeset (git diff, PR diff, or specified files)
|
|
132
|
+
2. **Assess correctness**: Find bugs, logic errors, silent failures, missing error handling
|
|
133
|
+
3. **Check architecture**: Verify patterns match existing codebase, no type duplication, proper wiring
|
|
134
|
+
4. **Verify spec compliance**: If a spec exists (HANDOFF.md, RFC, issue, done-criteria.md), compare requirements vs implementation
|
|
135
|
+
5. **Check error handling**: Every async operation needs loading, error, and empty states in UI. No silent catches.
|
|
136
|
+
6. **Review API contracts**: New endpoints must follow existing conventions for naming, validation, error envelopes
|
|
137
|
+
7. **Assess test coverage**: New modules need tests. Run the test suite and report results.
|
|
138
|
+
8. **Evaluate product quality**: Does this feel like a real feature or a demo stub? Are workflows complete end-to-end? Is the UI coherent?
|
|
139
|
+
|
|
140
|
+
## Rules
|
|
141
|
+
|
|
142
|
+
- Every finding must have a file:line reference. No guesswork.
|
|
143
|
+
- Classify by severity: CRITICAL (must fix), HIGH (should fix), MEDIUM (fix or justify), LOW (note)
|
|
144
|
+
- Call out what's done well, not just problems
|
|
145
|
+
- Look for cross-cutting patterns (e.g., same mistake repeated in multiple files)
|
|
146
|
+
|
|
147
|
+
## Output
|
|
148
|
+
|
|
149
|
+
Write findings to `.devlyn/EVAL-FINDINGS.md` for downstream consumption:
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
# Evaluation Findings
|
|
153
|
+
|
|
154
|
+
## Verdict: [PASS / PASS WITH ISSUES / NEEDS WORK / BLOCKED]
|
|
155
|
+
|
|
156
|
+
## Done Criteria Results (if done-criteria.md existed)
|
|
157
|
+
- [x] [criterion] — VERIFIED: [evidence]
|
|
158
|
+
- [ ] [criterion] — FAILED: [what's wrong, file:line]
|
|
159
|
+
|
|
160
|
+
## Findings Requiring Action
|
|
161
|
+
### CRITICAL
|
|
162
|
+
- `file:line` — [description] — Fix: [suggested approach]
|
|
163
|
+
|
|
164
|
+
### HIGH
|
|
165
|
+
- `file:line` — [description] — Fix: [suggested approach]
|
|
166
|
+
|
|
167
|
+
## Cross-Cutting Patterns
|
|
168
|
+
- [pattern description]
|
|
169
|
+
|
|
170
|
+
## What's Good
|
|
171
|
+
- [positive observations]
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Do NOT delete `.devlyn/done-criteria.md` or `.devlyn/EVAL-FINDINGS.md` — the orchestrator or user is responsible for cleanup.
|
|
175
|
+
|
package/CLAUDE.md
CHANGED
|
@@ -94,7 +94,7 @@ This rule exists because LLMs (including you) are trained to be helpful, compreh
|
|
|
94
94
|
|
|
95
95
|
**The single drift test before any deviation from the stated goal:** *"Did the user ask for this, OR does the user's stated goal strictly require it?"* If the answer to both is no, do not do it. Surface it as a note (commit message, end-of-turn summary, finding) and continue on the original path.
|
|
96
96
|
|
|
97
|
-
**Creative-mode is the narrow exception, not the default.** Creative-mode applies only when (a) the user explicitly invoked an ideation/exploration surface (`/devlyn:ideate`,
|
|
97
|
+
**Creative-mode is the narrow exception, not the default.** Creative-mode applies only when (a) the user explicitly invoked an ideation/exploration surface (`/devlyn:ideate`, `/devlyn:design-ui`, "let's brainstorm", "explore options for"), OR (b) the goal is genuinely under-specified and a clarifying question is impossible (extremely rare — usually you should ask). For everything else — bug fixes, feature work, refactors, doc updates, pipeline runs, code review, debugging — execution-mode is the default and drift is a defect, not a feature.
|
|
98
98
|
|
|
99
99
|
**Anti-rationalization clause** — explicitly guarding against LLM hedging:
|
|
100
100
|
|
|
@@ -152,7 +152,7 @@ When `/devlyn:resolve` or `/devlyn:ideate` route a phase to Codex (`--engine cod
|
|
|
152
152
|
|
|
153
153
|
## Skill Boundary Policy
|
|
154
154
|
|
|
155
|
-
Post iter-0034 Phase 4 cutover (2026-05-04) the runtime pipeline surface is two skills — `/devlyn:resolve` and `/devlyn:ideate` — plus the required creative UI exploration surface `/devlyn:design-ui`. `/devlyn:resolve` runs PLAN → IMPLEMENT → BUILD_GATE → CLEANUP → VERIFY inline; verification, cleanup, and security review (delegated to the native `security-review` Claude Code skill from BUILD_GATE) all live inside the pipeline. There are no standalone `/devlyn:review`, `/devlyn:evaluate`, `/devlyn:team-resolve`, etc. surfaces to delegate to — those skills were folded into resolve's phases or removed in iter-0034.
|
|
155
|
+
Post iter-0034 Phase 4 cutover (2026-05-04) the runtime pipeline surface is two skills — `/devlyn:resolve` and `/devlyn:ideate` — plus the required creative UI exploration surface `/devlyn:design-ui`. `/devlyn:resolve` runs PLAN → IMPLEMENT → BUILD_GATE → CLEANUP → VERIFY inline; verification, cleanup, and security review (delegated to the native `security-review` Claude Code skill from BUILD_GATE) all live inside the pipeline. There are no standalone `/devlyn:review`, `/devlyn:evaluate`, `/devlyn:team-resolve`, etc. surfaces to delegate to — those skills were folded into resolve's phases or removed in iter-0034. `/devlyn:design-ui` is the unified creative UI exploration surface — it spawns a 5-specialist design team (Creative Director, Product Designer, Visual Designer, Interaction Designer, Accessibility Designer) by default for any N. The legacy `/devlyn:team-design-ui` was merged into it on 2026-05-14 and its directory deleted; `/devlyn:design-system` was removed outright the same day. The `/devlyn:reap` optional skill lives in `optional-skills/` and is user-invoked only; resolve never delegates to it.
|
|
156
156
|
|
|
157
157
|
Browser validation routes through `_shared/browser-runner.sh` (Chrome MCP → Playwright → curl tier) directly from BUILD_GATE — there is no separate `/devlyn:browser-validate` skill at HEAD.
|
|
158
158
|
|
package/README.md
CHANGED
|
@@ -177,16 +177,16 @@ fixture count, and the replay command without running arms or judges. Dry-runs
|
|
|
177
177
|
and lint prove wiring only; real score claims must cite the run id and fixture
|
|
178
178
|
ids.
|
|
179
179
|
|
|
180
|
-
|
|
180
|
+
### Migration from earlier versions
|
|
181
181
|
|
|
182
|
-
|
|
182
|
+
Earlier versions of devlyn-cli shipped 16+ slash commands. The iter-0034 Phase 4 cutover (2026-05-04) and the 2026-05-14 follow-up consolidated them down to the three current commands. Upgrades automatically purge the legacy skill directories from `~/.claude/skills/`.
|
|
183
183
|
|
|
184
|
-
|
|
|
184
|
+
| Old command | Now use |
|
|
185
185
|
|---|---|
|
|
186
|
-
| `/devlyn:
|
|
187
|
-
| `/devlyn:
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
| `/devlyn:auto-resolve`, `/devlyn:preflight`, `/devlyn:evaluate`, `/devlyn:review`, `/devlyn:team-resolve`, `/devlyn:team-review`, `/devlyn:clean`, `/devlyn:update-docs`, `/devlyn:browser-validate`, `/devlyn:implement-ui` | `/devlyn:resolve` (folds them into PLAN → IMPLEMENT → BUILD_GATE → CLEANUP → VERIFY) |
|
|
187
|
+
| `/devlyn:product-spec`, `/devlyn:feature-spec`, `/devlyn:recommend-features`, `/devlyn:discover-product` | `/devlyn:ideate` |
|
|
188
|
+
| `/devlyn:team-design-ui` | `/devlyn:design-ui` (now always spawns the 5-specialist team — Creative Director, Product Designer, Visual Designer, Interaction Designer, Accessibility Designer) |
|
|
189
|
+
| `/devlyn:design-system` | Removed 2026-05-14 — no replacement |
|
|
190
190
|
|
|
191
191
|
---
|
|
192
192
|
|
|
@@ -222,8 +222,6 @@ Selected during install. Run `npx devlyn-cli` again to add more.
|
|
|
222
222
|
| `devlyn:pencil-pull` | Pull Pencil designs into code |
|
|
223
223
|
| `devlyn:pencil-push` | Push codebase UI to Pencil canvas |
|
|
224
224
|
| `devlyn:reap` | Safely reap orphaned MCP / codex / Superset child processes |
|
|
225
|
-
| `devlyn:design-system` | Extract design tokens from a chosen UI style for exact reproduction |
|
|
226
|
-
| `devlyn:team-design-ui` | 5 distinct UI style explorations from a full design team |
|
|
227
225
|
|
|
228
226
|
</details>
|
|
229
227
|
|
package/bin/devlyn.js
CHANGED
|
@@ -118,8 +118,11 @@ const DEPRECATED_DIRS = [
|
|
|
118
118
|
// upgrade so users only have them if they opt in via the interactive
|
|
119
119
|
// installer (matches the pencil-pull / pencil-push pattern).
|
|
120
120
|
'skills/devlyn:reap',
|
|
121
|
-
|
|
121
|
+
// Deleted entirely on 2026-05-14 (devlyn:team-design-ui merged into
|
|
122
|
+
// devlyn:design-ui; devlyn:design-system removed outright). Entries kept
|
|
123
|
+
// so users who previously opted in get their stale copies purged on upgrade.
|
|
122
124
|
'skills/devlyn:team-design-ui',
|
|
125
|
+
'skills/devlyn:design-system',
|
|
123
126
|
];
|
|
124
127
|
|
|
125
128
|
function getTargetDir() {
|
|
@@ -182,8 +185,6 @@ const OPTIONAL_ADDONS = [
|
|
|
182
185
|
{ name: 'devlyn:pencil-pull', desc: 'Pull Pencil designs into code with exact visual fidelity', type: 'local' },
|
|
183
186
|
{ name: 'devlyn:pencil-push', desc: 'Push codebase UI to Pencil canvas for design sync', type: 'local' },
|
|
184
187
|
{ name: 'devlyn:reap', desc: 'Safely reap orphaned MCP / codex / Superset child processes left behind by long Claude sessions', type: 'local' },
|
|
185
|
-
{ name: 'devlyn:design-system', desc: 'Extract design tokens from a chosen UI style for exact reproduction (creative power-user)', type: 'local' },
|
|
186
|
-
{ name: 'devlyn:team-design-ui', desc: '5 distinct UI style explorations from a full design team (creative power-user)', type: 'local' },
|
|
187
188
|
// External skill packs (installed via npx skills add)
|
|
188
189
|
{ name: 'vercel-labs/agent-skills', desc: 'React, Next.js, React Native best practices', type: 'external' },
|
|
189
190
|
{ name: 'supabase/agent-skills', desc: 'Supabase integration patterns', type: 'external' },
|
|
@@ -58,7 +58,7 @@ This rule exists because LLMs (including you) are trained to be helpful, compreh
|
|
|
58
58
|
|
|
59
59
|
**The single drift test before any deviation from the stated goal:** *"Did the user ask for this, OR does the user's stated goal strictly require it?"* If the answer to both is no, do not do it. Surface it as a note (commit message, end-of-turn summary, finding) and continue on the original path.
|
|
60
60
|
|
|
61
|
-
**Creative-mode is the narrow exception, not the default.** Creative-mode applies only when (a) the user explicitly invoked an ideation/exploration surface (`/devlyn:ideate`,
|
|
61
|
+
**Creative-mode is the narrow exception, not the default.** Creative-mode applies only when (a) the user explicitly invoked an ideation/exploration surface (`/devlyn:ideate`, `/devlyn:design-ui`, "let's brainstorm", "explore options for"), OR (b) the goal is genuinely under-specified and a clarifying question is impossible (extremely rare — usually you should ask). For everything else — bug fixes, feature work, refactors, doc updates, pipeline runs, code review, debugging — execution-mode is the default and drift is a defect, not a feature.
|
|
62
62
|
|
|
63
63
|
**Anti-rationalization clause** — explicitly guarding against LLM hedging:
|
|
64
64
|
|