devlyn-cli 4.2.19 → 4.2.21
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 +5 -5
- package/bin/cleanup-history.json +97 -0
- package/bin/devlyn.js +285 -267
- package/bin/instructions.js +44 -24
- package/bin/skill-history.json +1 -70
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ That's it. The installer asks:
|
|
|
35
35
|
|
|
36
36
|
In a project, AGENTS.md readers load the skills from `.agents/skills/`; Claude Code loads only `.claude/skills/` and reads AGENTS.md when the project has no CLAUDE.md; a CLAUDE.md the installer creates imports an existing AGENTS.md (`@AGENTS.md`). Global installs skills only: `~/.agents/skills/` (omp, Pi, Grok) and `~/.codex/skills/` (Codex), plus `~/.claude/skills/` for Claude Code. Every target gets the `devlyn-ideate` skill and the `devlyn-engines` utility. In Codex / omp / Pi, invoke them as skills (`$devlyn-ideate`); in Claude Code and Grok they're slash commands (`/devlyn-ideate`). Rerunning refreshes skills and the managed instruction block while preserving project rules outside it. See [Migration from earlier versions](#migration-from-earlier-versions) for legacy migration and merge recovery.
|
|
37
37
|
|
|
38
|
-
Without prompts, `npx devlyn-cli -y` installs AGENTS.md + `.agents/skills/` plus every target this project already has; add `--claude` for Claude Code. With `--global` it installs for every project on this machine, plus `~/.claude/skills/` with `--claude` or when it already has a devlyn install.
|
|
38
|
+
Without prompts, `npx devlyn-cli -y` installs AGENTS.md + `.agents/skills/` plus every target this project already has; add `--claude` for Claude Code. With `--global` it installs for every project on this machine, plus `~/.claude/skills/` with `--claude` or when it already has a devlyn install. The installer leaves Git to you: it prints no commit guidance after a project install or update. When Git ignores some, but not all, files of an installed skill folder, it prints one line with their count and an example ignore rule.
|
|
39
39
|
|
|
40
40
|
`npx devlyn-cli update` — Update every devlyn install already here (this project and your global skill folders) to this version; installs nothing new.
|
|
41
41
|
|
|
@@ -62,7 +62,7 @@ Give ideate an intent or a document. It writes a loop package — a meta-prompt
|
|
|
62
62
|
| `/devlyn-ideate status` | Pending, active, accepted and failed counts; the next runnable task; delivery and recovery blockers. |
|
|
63
63
|
| `/devlyn-ideate drain` | Runs the queue serially and hands-free. |
|
|
64
64
|
|
|
65
|
-
A bare intent is planned and, when your request authorizes the work, added and drained without another confirmation; no arguments shows status. Questions come only when the answer changes behavior, scope, data semantics, acceptance or delivery, each with a recommended answer; `--autonomous` plans without questions, recording ordinary low-consequence, reversible defaults within the request, including user-visible details; material ambiguity in intended outcomes, persistent data or state semantics, or public surface beyond the request stops planning with a concrete question. Each task runs in its own worktree with the executor pinned by `/devlyn-engines` (default: the CLI you opened; Pi and Grok need a pin) under your installed CLAUDE.md/AGENTS.md instructions. Tasks start from committed state, the branch you added the loop on or the remote base for `auto`/`pr`, so
|
|
65
|
+
A bare intent is planned and, when your request authorizes the work, added and drained without another confirmation; no arguments shows status. Questions come only when the answer changes behavior, scope, data semantics, acceptance or delivery, each with a recommended answer; `--autonomous` plans without questions, recording ordinary low-consequence, reversible defaults within the request, including user-visible details; material ambiguity in intended outcomes, persistent data or state semantics, or public surface beyond the request stops planning with a concrete question. Each task runs in its own worktree with the executor pinned by `/devlyn-engines` (default: the CLI you opened; Pi and Grok need a pin) under your installed CLAUDE.md/AGENTS.md instructions. Tasks start from committed state, the branch you added the loop on or the remote base for `auto`/`pr`, so a task's worktree holds only what is committed there. A task would run without installed CLAUDE.md/AGENTS.md that exist only in this checkout, so add stops while they differ from HEAD, and drain waits while they differ from the task's start commit. It is marked `[x]` only when its declared checks pass on its committed source and its required reviews cover it: the checks run through the drain's runner (a wholly clean run the executor lists for that source is reused; the drain runs any other check itself), and review coverage is attested by records the executor submits; a failed task becomes `[F]` with its reason and blocks only its dependents. An interrupted drain resumes without repeating accepted work. `--local-only` (or `--no-push`) keeps delivery local: each accepted task stays on its `devlyn/<loop-id>/<task-id>` branch in a retained worktree, nothing is merged or pushed, and the drain report's `Bring into` command is `git merge --ff <latest accepted task branch>`.
|
|
66
66
|
|
|
67
67
|
### Delivery
|
|
68
68
|
|
|
@@ -113,14 +113,14 @@ Upgrading to 4.1.0: `npx devlyn-cli -y` in a 4.x project keeps its Claude Code i
|
|
|
113
113
|
current and adds `AGENTS.md` + `.agents/skills/`. Earlier releases put the Codex, omp, Pi
|
|
114
114
|
and Grok skills in `~/.codex/skills`, `~/.agents/skills` and `~/.grok/skills`; a project
|
|
115
115
|
install no longer refreshes them and names each one it finds. Refresh them with `--global`
|
|
116
|
-
or delete them;
|
|
116
|
+
or delete them; global installs and `update` clean Devlyn’s retired `~/.grok/skills` entries automatically.
|
|
117
117
|
`npx devlyn-cli agents` was removed.
|
|
118
118
|
|
|
119
119
|
<!-- legacy-surface-map:begin — retired command names below are documented as OLD, not current; lint Checks 5e and 10c skip this block -->
|
|
120
120
|
Upgrading to 4.2.0: `/devlyn-resolve` and the pipeline helpers only it used are retired;
|
|
121
121
|
no measured replacement ships in their place. Run the installer again where devlyn is
|
|
122
122
|
installed. It removes the `devlyn-resolve` folders (and pre-4.0.0 `devlyn:resolve` ones)
|
|
123
|
-
|
|
123
|
+
by their exact retired names, including edited copies and links (link targets stay intact). It
|
|
124
124
|
removes the Stop hook it added to `.claude/settings.json` while keeping your own hooks,
|
|
125
125
|
and names the other settings it once added for the pipeline
|
|
126
126
|
(`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` and its `.devlyn` and git permissions) without
|
|
@@ -148,7 +148,7 @@ devlyn skill by its old name or path (for example Codex `[[skills.config]]` or o
|
|
|
148
148
|
`disabledExtensions`) needs the new name. A project that committed the old `devlyn:*`
|
|
149
149
|
folders checks out on Windows once that re-sync is committed.
|
|
150
150
|
|
|
151
|
-
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, 4.0.0 renamed every devlyn skill to the Agent Skills naming standard (`devlyn-<name>`: lowercase, digits and hyphens, the same as its folder), and after 4.1.0 resolve and design-ui were retired and the queue moved into ideate.
|
|
151
|
+
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, 4.0.0 renamed every devlyn skill to the Agent Skills naming standard (`devlyn-<name>`: lowercase, digits and hyphens, the same as its folder), and after 4.1.0 resolve and design-ui were retired and the queue moved into ideate. Install/update deletes exact retired Devlyn names in its scope; generic files and old instruction text are removed only with evidence matching shipped copies. Other skills, edited generic files, and your instruction text are preserved; instruction changes keep a recovery backup.
|
|
152
152
|
|
|
153
153
|
| Old command | Now use |
|
|
154
154
|
|---|---|
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"source": "scripts/update-cleanup-history.js: LF-normalized Git blobs from first-parent config/agents-config/optional-skills history and all tags; excludes optional-addon hashes and third-party web-design-guidelines",
|
|
3
|
+
"files": {
|
|
4
|
+
".claude/agents/evaluator.md": [
|
|
5
|
+
"146a229b0218938bca2de6b426cda642ae9826dc2dfa8c3687c6fd5de9160cf6",
|
|
6
|
+
"537c4af183aac692ff2abecfd42b4fe0854549b2ecf14fca3bc6a86ae58837fa",
|
|
7
|
+
"b8a48da212e070bab9d4818630cee2cd0de9846ad4e3a34b3a45f0a9a1a913b6",
|
|
8
|
+
"d5615e73af2401ea7418e02fc76d850506e59a64fff00f084ad272e474e138ba"
|
|
9
|
+
],
|
|
10
|
+
".claude/commit-conventions.md": [
|
|
11
|
+
"7e75c25d3067dba650781c57f1d94b52090badc2cb034b00759e9c6ed74a5a94"
|
|
12
|
+
],
|
|
13
|
+
".claude/templates/prompt-templates.md": [
|
|
14
|
+
"19029bcff7c4e9b579011d93a4f6eecfbe6a260f3cee12072252a6a7402d79e7",
|
|
15
|
+
"3fb7804dbd6e026def99829dda5daccc56a68e93997d8e6f540ee98bb288329e",
|
|
16
|
+
"7318764baa5dc7cd406bc8552848653ad6368982b43faecc6618f697a9ae059f",
|
|
17
|
+
"e583be4175366101bfa0df512b1106f65b18f215b4717eadebbc8129c3d96be5"
|
|
18
|
+
],
|
|
19
|
+
".claude/templates/template-feature.spec.md": [
|
|
20
|
+
"16eb59b48f062aa0894b3fe8ba1c8f9e970652fda0bdd0d9e3248acb8e40d3bc"
|
|
21
|
+
],
|
|
22
|
+
".claude/templates/template-product-spec.md": [
|
|
23
|
+
"42b5b2c32fd72b1324432da0cf652cf11854e3ac40e020b812ef64d894116d92"
|
|
24
|
+
],
|
|
25
|
+
".cursor/rules/evaluator.md": [
|
|
26
|
+
"146a229b0218938bca2de6b426cda642ae9826dc2dfa8c3687c6fd5de9160cf6",
|
|
27
|
+
"537c4af183aac692ff2abecfd42b4fe0854549b2ecf14fca3bc6a86ae58837fa",
|
|
28
|
+
"b8a48da212e070bab9d4818630cee2cd0de9846ad4e3a34b3a45f0a9a1a913b6",
|
|
29
|
+
"d5615e73af2401ea7418e02fc76d850506e59a64fff00f084ad272e474e138ba"
|
|
30
|
+
],
|
|
31
|
+
".github/copilot/agents/evaluator.md": [
|
|
32
|
+
"146a229b0218938bca2de6b426cda642ae9826dc2dfa8c3687c6fd5de9160cf6",
|
|
33
|
+
"537c4af183aac692ff2abecfd42b4fe0854549b2ecf14fca3bc6a86ae58837fa",
|
|
34
|
+
"b8a48da212e070bab9d4818630cee2cd0de9846ad4e3a34b3a45f0a9a1a913b6",
|
|
35
|
+
"d5615e73af2401ea7418e02fc76d850506e59a64fff00f084ad272e474e138ba"
|
|
36
|
+
],
|
|
37
|
+
".windsurf/rules/evaluator.md": [
|
|
38
|
+
"146a229b0218938bca2de6b426cda642ae9826dc2dfa8c3687c6fd5de9160cf6",
|
|
39
|
+
"537c4af183aac692ff2abecfd42b4fe0854549b2ecf14fca3bc6a86ae58837fa",
|
|
40
|
+
"b8a48da212e070bab9d4818630cee2cd0de9846ad4e3a34b3a45f0a9a1a913b6",
|
|
41
|
+
"d5615e73af2401ea7418e02fc76d850506e59a64fff00f084ad272e474e138ba"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"skills": {
|
|
45
|
+
"code-health-standards": [
|
|
46
|
+
"962a82b5ebeafac515f81f5c68494c67dbf31c3e3e453f23c4452d4725e21355",
|
|
47
|
+
"df2838904c938aa0306ed333cc460cfc5c2cf0ffa20bb5ade57067c6e0acf9be"
|
|
48
|
+
],
|
|
49
|
+
"code-review-standards": [
|
|
50
|
+
"3bc8587a9143487328be2470dec8df17a19cb14f94e6ec916ed58de660d0e1c4",
|
|
51
|
+
"56abe5736f505c53ca9ce14087a9891cc8661be783abaec7b5b924e3f339cc2a",
|
|
52
|
+
"586dde5014f9ac2f9a13d43fa1c8c257a3ae998a3fc1b867b23b3b2e44f77eca",
|
|
53
|
+
"9c906f2b2a88c2d0aaeec9714405945da5177de6ec433f1acf520c6c4385b875"
|
|
54
|
+
],
|
|
55
|
+
"feature-gap-analysis": [
|
|
56
|
+
"d2328d990305280cf0d08443130cdba63eb5ed8040f5e5b6719c58050c4d3ada"
|
|
57
|
+
],
|
|
58
|
+
"investigate": [
|
|
59
|
+
"5025c346d1e246d49681650e7b630477d1ef67f4357e5fd7f3e5f02e5a860288"
|
|
60
|
+
],
|
|
61
|
+
"root-cause-analysis": [
|
|
62
|
+
"0eac104bfcde8bdf14d4c284be6f3f4cb243219a679bf569433c2465df84c6c3",
|
|
63
|
+
"1793dcb0f72621c78cc20c905fe5dd7a0af3115e904bf737a6a983a7b9d2c2b6",
|
|
64
|
+
"aab22d1bddc66c6a798f08cdf7be9b45fbe80ccfc928b068ef5d9e2ad951bdda",
|
|
65
|
+
"e200ddd04196435af3162a9e13595f8eb5ac68b06465026e0155e453b1bd1c93",
|
|
66
|
+
"e66d15a9585c07e819acfd89c1f6d030517130f6d8f8924bda3120307949fb2e"
|
|
67
|
+
],
|
|
68
|
+
"ui-implementation-standards": [
|
|
69
|
+
"13c709c0e2b01ae94997c271043a685200e969192d2056534bd787c5682874e8",
|
|
70
|
+
"1ff64816454171b3f879e9e5cf3c15e3d9c5f2ffc81b73262155f6bc93a1b054",
|
|
71
|
+
"505ca42b1efd53925d51c570b21df4e05cbc6bc640dd1f7f4e03f15d2d4437c5",
|
|
72
|
+
"e2473e35474e78f2b581e225cb33a1e711bb79519a02e9780fc9606e582b878f"
|
|
73
|
+
],
|
|
74
|
+
"workflow-routing": [
|
|
75
|
+
"7fec2bb20d808a873a975d64a6223e404bc5b328c800760bb77257ae6b2f467a",
|
|
76
|
+
"8bfdaeff2ce48d5a79b5653de3bbe0d56a61a7fd750ed3ad11149fec5a502ecf"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"evaluators": [
|
|
80
|
+
{
|
|
81
|
+
"length": 3081,
|
|
82
|
+
"sha256": "01a566bbecfb7eaef16b53c2000dc58050a3348072019868fbe23cbd6503095d"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"length": 1559,
|
|
86
|
+
"sha256": "04403ca3008e87adbd0f75f3136a20d6d5262eb7576f8d31cec2d03686dc9898"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"length": 2980,
|
|
90
|
+
"sha256": "481557b50619e1d47c209b1e1c916919361031f57cf2ee8f27644c2a101cfdb6"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"length": 2980,
|
|
94
|
+
"sha256": "6c7066a91aa18a62b1257956f0adf4f08603034d8a6eb2fae052a1ea8d0d9a4b"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|