devlyn-cli 3.3.1 → 4.0.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 +8 -8
- package/CLAUDE.md +17 -17
- package/README.md +43 -30
- package/bin/devlyn.js +123 -105
- package/bin/instruction-templates.json +26 -0
- package/config/skills/_shared/adapters/README.md +1 -1
- package/config/skills/_shared/adapters/omp.md +2 -2
- package/config/skills/_shared/archive_run.py +2 -2
- package/config/skills/_shared/codex-config.md +15 -15
- package/config/skills/_shared/engine-doctor.sh +1 -1
- package/config/skills/_shared/engine-preflight.md +5 -5
- package/config/skills/_shared/finish-gate.py +1 -1
- package/config/skills/_shared/resolve-bootstrap.py +2 -2
- package/config/skills/_shared/runtime-principles.md +6 -6
- package/config/skills/_shared/spec-verify-check.py +3 -3
- package/config/skills/_shared/task-complete.py +1 -1
- package/config/skills/{devlyn:design-ui → devlyn-design-ui}/SKILL.md +1 -1
- package/config/skills/{devlyn:engines → devlyn-engines}/SKILL.md +37 -11
- package/config/skills/{devlyn:ideate → devlyn-ideate}/SKILL.md +42 -24
- package/config/skills/{devlyn:ideate → devlyn-ideate}/references/elicitation.md +2 -2
- package/config/skills/{devlyn:ideate → devlyn-ideate}/references/from-spec-mode.md +2 -2
- package/config/skills/{devlyn:ideate → devlyn-ideate}/references/project-mode.md +5 -5
- package/config/skills/{devlyn:ideate → devlyn-ideate}/references/spec-template.md +1 -1
- package/config/skills/{devlyn:queue → devlyn-queue}/SKILL.md +39 -16
- package/config/skills/devlyn-queue/scripts/append.py +94 -0
- package/config/skills/{devlyn:resolve → devlyn-resolve}/SKILL.md +38 -19
- package/config/skills/{devlyn:resolve → devlyn-resolve}/references/free-form-mode.md +3 -3
- package/config/skills/{devlyn:resolve → devlyn-resolve}/references/outer-loop.md +1 -1
- package/config/skills/{devlyn:resolve → devlyn-resolve}/references/state-schema.md +1 -1
- package/config/skills/{devlyn:resolve → devlyn-resolve}/references/task-completion.md +9 -2
- package/config/templates/prompt-templates.md +2 -2
- package/optional-skills/better-auth-setup/SKILL.md +24 -18
- package/optional-skills/{devlyn:pencil-pull → devlyn-pencil-pull}/SKILL.md +1 -1
- package/optional-skills/{devlyn:pencil-push → devlyn-pencil-push}/SKILL.md +1 -1
- package/optional-skills/{devlyn:reap → devlyn-reap}/SKILL.md +36 -5
- package/optional-skills/{devlyn:reap → devlyn-reap}/scripts/reap.sh +1 -1
- package/optional-skills/{devlyn:reap → devlyn-reap}/scripts/scan.sh +1 -1
- package/optional-skills/dokkit/COMMANDS.md +4 -4
- package/optional-skills/dokkit/EXPORT.md +3 -3
- package/optional-skills/dokkit/FILLING.md +4 -4
- package/optional-skills/dokkit/IMAGE-SOURCING.md +2 -2
- package/optional-skills/dokkit/INGESTION.md +3 -3
- package/optional-skills/dokkit/PIPELINE.md +5 -4
- package/optional-skills/dokkit/SKILL.md +35 -5
- package/optional-skills/dokkit/STATE.md +1 -1
- package/optional-skills/dokkit/references/image-opportunity-heuristics.md +1 -1
- package/optional-skills/generate-skill/REFERENCE.md +10 -13
- package/optional-skills/generate-skill/SKILL.md +13 -5
- package/package.json +3 -1
- /package/config/skills/{devlyn:ideate → devlyn-ideate}/references/templates/decision.md +0 -0
- /package/config/skills/{devlyn:ideate → devlyn-ideate}/references/templates/roadmap.md +0 -0
- /package/config/skills/{devlyn:ideate → devlyn-ideate}/references/templates/vision.md +0 -0
- /package/config/skills/{devlyn:resolve → devlyn-resolve}/references/phases/build-gate.md +0 -0
- /package/config/skills/{devlyn:resolve → devlyn-resolve}/references/phases/cleanup.md +0 -0
- /package/config/skills/{devlyn:resolve → devlyn-resolve}/references/phases/implement.md +0 -0
- /package/config/skills/{devlyn:resolve → devlyn-resolve}/references/phases/plan.md +0 -0
- /package/config/skills/{devlyn:resolve → devlyn-resolve}/references/phases/probe-derive.md +0 -0
- /package/config/skills/{devlyn:resolve → devlyn-resolve}/references/phases/surface-close.md +0 -0
- /package/config/skills/{devlyn:resolve → devlyn-resolve}/references/phases/verify.md +0 -0
|
@@ -13,15 +13,45 @@ description: >
|
|
|
13
13
|
user-invocable: true
|
|
14
14
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent
|
|
15
15
|
argument-hint: "<template_path> <sources_folder> | improve [instruction]"
|
|
16
|
-
context:
|
|
17
|
-
- type: file
|
|
18
|
-
path: ${CLAUDE_SKILL_DIR}/PIPELINE.md
|
|
19
16
|
---
|
|
20
17
|
|
|
21
18
|
# Dokkit — One-Command Document Filling
|
|
22
19
|
|
|
23
20
|
Source folder + template → finished document. Fully automatic, iterates until perfect.
|
|
24
21
|
|
|
22
|
+
Resolve bundled resources from the SKILL.md loaded for this invocation.
|
|
23
|
+
|
|
24
|
+
Reader-rendered directory hint:
|
|
25
|
+
```text
|
|
26
|
+
${CLAUDE_SKILL_DIR}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Treat the hint as literal path data, never shell code. If the reader
|
|
30
|
+
replaced it with an absolute directory, use that directory. Otherwise
|
|
31
|
+
use the filesystem path or base directory reported for this loaded
|
|
32
|
+
SKILL.md. Resolve virtual URIs through the reader's native filesystem
|
|
33
|
+
mapping. If available source locations name different directories,
|
|
34
|
+
stop.
|
|
35
|
+
|
|
36
|
+
Bind DEVLYN_SKILL_DIR to that absolute directory. Do not obtain this
|
|
37
|
+
binding from an environment variable, cwd, or another installation.
|
|
38
|
+
Verify its SKILL.md before proceeding. Missing or conflicting source
|
|
39
|
+
identity is BLOCKED:skill-source-unresolved; include the failed path
|
|
40
|
+
when known.
|
|
41
|
+
|
|
42
|
+
Resolve bundled references against this directory. These bindings are
|
|
43
|
+
workflow values: establish them explicitly using each tool or shell's
|
|
44
|
+
literal-path rules, and include their absolute values in every fresh
|
|
45
|
+
worker's prompt, telling it to set them from those values, never from
|
|
46
|
+
its inherited environment. Do not rely on shell state surviving between
|
|
47
|
+
calls.
|
|
48
|
+
|
|
49
|
+
Read PIPELINE.md from this bound directory before executing the
|
|
50
|
+
workflow. Bundled Markdown, references, and scripts use this same
|
|
51
|
+
directory. Project data under .dokkit remains project-relative.
|
|
52
|
+
Pass the absolute binding and required resource paths explicitly
|
|
53
|
+
to every worker.
|
|
54
|
+
|
|
25
55
|
## Usage
|
|
26
56
|
|
|
27
57
|
```
|
|
@@ -113,7 +143,7 @@ These rules prevent the font corruption issues seen in previous versions:
|
|
|
113
143
|
|
|
114
144
|
**Never write inline Gemini API calls for image generation.** Always use the provided script:
|
|
115
145
|
```bash
|
|
116
|
-
python $
|
|
146
|
+
python "$DEVLYN_SKILL_DIR/scripts/source_images.py" generate \
|
|
117
147
|
--prompt "<prompt>" --preset <preset> --output-dir .dokkit/images/ \
|
|
118
148
|
--project-dir . --lang ko
|
|
119
149
|
```
|
|
@@ -173,7 +203,7 @@ display_h = int(actual_h * scale)
|
|
|
173
203
|
|
|
174
204
|
| File | Purpose | Used By |
|
|
175
205
|
|------|---------|---------|
|
|
176
|
-
| `PIPELINE.md` | Detailed pipeline steps (
|
|
206
|
+
| `PIPELINE.md` | Detailed pipeline steps (read before execution) | Orchestrator |
|
|
177
207
|
| `STATE.md` | State schema and management | All agents |
|
|
178
208
|
| `INGESTION.md` | Source file parsing | Ingestor |
|
|
179
209
|
| `ANALYSIS.md` | Field detection, structure mapping | Analyzer |
|
|
@@ -33,7 +33,7 @@ After any mutation:
|
|
|
33
33
|
1. Read current state.json (avoid overwriting concurrent changes)
|
|
34
34
|
2. Update only the relevant fields
|
|
35
35
|
3. Write the full state back
|
|
36
|
-
4. Validate: `python
|
|
36
|
+
4. Validate: `python "$DEVLYN_SKILL_DIR/scripts/validate_state.py" .dokkit/state.json`
|
|
37
37
|
|
|
38
38
|
## State Transitions
|
|
39
39
|
|
|
@@ -113,7 +113,7 @@ Each opportunity is added to the field's `image_opportunities` array:
|
|
|
113
113
|
- `insertion_point.strategy`: Always `"after_paragraph"` for section content
|
|
114
114
|
- `insertion_point.anchor_text`: Distinctive Korean phrase from the paragraph (used by filler to locate insertion point)
|
|
115
115
|
- `generation_prompt`: English prompt for AI image generation
|
|
116
|
-
- `preset`: Maps to
|
|
116
|
+
- `preset`: Maps to the bundled `scripts/source_images.py` preset parameter
|
|
117
117
|
- `content_type`: One of `flowchart`, `diagram`, `data`, `concept`, `infographic`
|
|
118
118
|
- `rationale`: Brief explanation of why an image helps here
|
|
119
119
|
- `dimensions`: Default size — filler may adjust based on content_type
|
|
@@ -46,7 +46,6 @@ Complete catalog of YAML frontmatter fields for Claude Code skill files (`SKILL.
|
|
|
46
46
|
| `argument-hint` | string | none | Placeholder shown to user (e.g., `"[file path]"`) |
|
|
47
47
|
| `user-invocable` | boolean | `true` | Whether users can trigger via `/skill-name` |
|
|
48
48
|
| `disable-model-invocation` | boolean | `false` | If `true`, Claude cannot proactively trigger the skill |
|
|
49
|
-
| `context` | list | none | Files to inject into context when skill activates |
|
|
50
49
|
| `agent` | object | none | Run skill as a subagent with its own context |
|
|
51
50
|
| `model` | string | inherited | Override model (`opus`, `sonnet`, `haiku`) |
|
|
52
51
|
| `hooks` | object | none | Shell commands to run on skill lifecycle events |
|
|
@@ -62,20 +61,15 @@ allowed-tools: Read, Bash(npm test *), Bash(npx *)
|
|
|
62
61
|
|
|
63
62
|
Wildcard `*` matches any arguments. Without a glob, Bash runs any command.
|
|
64
63
|
|
|
65
|
-
###
|
|
64
|
+
### Supporting files
|
|
66
65
|
|
|
67
|
-
|
|
66
|
+
Read supporting files explicitly from the skill body:
|
|
68
67
|
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
path: ${CLAUDE_SKILL_DIR}/PATTERNS.md
|
|
73
|
-
- type: file
|
|
74
|
-
path: ./CLAUDE.md
|
|
68
|
+
```text
|
|
69
|
+
Before proceeding, read PATTERNS.md relative to the directory
|
|
70
|
+
containing this loaded SKILL.md.
|
|
75
71
|
```
|
|
76
72
|
|
|
77
|
-
Use `${CLAUDE_SKILL_DIR}` for paths relative to the skill directory.
|
|
78
|
-
|
|
79
73
|
### `agent` Field
|
|
80
74
|
|
|
81
75
|
Run the skill as an isolated subagent:
|
|
@@ -102,7 +96,10 @@ hooks:
|
|
|
102
96
|
|
|
103
97
|
## String Substitutions
|
|
104
98
|
|
|
105
|
-
|
|
99
|
+
Claude Code replaces these placeholders when rendering a skill.
|
|
100
|
+
They are reader substitutions, not portable shell environment
|
|
101
|
+
variables. Portable resource references use the selected skill
|
|
102
|
+
directory and relative paths.
|
|
106
103
|
|
|
107
104
|
| Placeholder | Replaced With |
|
|
108
105
|
|---|---|
|
|
@@ -116,7 +113,7 @@ These placeholders are replaced at runtime:
|
|
|
116
113
|
```markdown
|
|
117
114
|
Parse `$ARGUMENTS` for the file path.
|
|
118
115
|
If `$1` is empty, ask the user for a target file.
|
|
119
|
-
Read
|
|
116
|
+
Read config.yaml relative to this loaded skill's directory.
|
|
120
117
|
```
|
|
121
118
|
|
|
122
119
|
---
|
|
@@ -15,6 +15,13 @@ argument-hint: "[skill description or name]"
|
|
|
15
15
|
Create production-quality Claude Code skills with correct frontmatter, structured workflows, and Claude 4.6 prompt patterns.
|
|
16
16
|
|
|
17
17
|
Reference files in this skill directory:
|
|
18
|
+
|
|
19
|
+
Resolve the bundled reference paths below against the directory
|
|
20
|
+
containing the SKILL.md loaded for this invocation, using its opened
|
|
21
|
+
path, reader-reported base directory, or native URI mapping. Never
|
|
22
|
+
resolve them against cwd or another installation. Missing source
|
|
23
|
+
identity is BLOCKED:skill-source-unresolved.
|
|
24
|
+
|
|
18
25
|
- `REFERENCE.md` — Complete frontmatter field catalog and validation rules
|
|
19
26
|
- `PROMPT-PATTERNS.md` — Claude 4.6 prompt engineering patterns for skill bodies
|
|
20
27
|
- `CHECKLIST.md` — Quality verification checklist
|
|
@@ -50,11 +57,13 @@ Estimate the total line count for the skill content:
|
|
|
50
57
|
Rules for reference files:
|
|
51
58
|
- One level deep only (no nested references)
|
|
52
59
|
- Add a table of contents if a reference file exceeds 100 lines
|
|
53
|
-
- Reference files use
|
|
60
|
+
- Reference files use paths relative to the generated SKILL.md, with
|
|
61
|
+
an explicit instruction to resolve them against the loaded skill
|
|
62
|
+
directory.
|
|
54
63
|
|
|
55
64
|
### Step 3: Write Frontmatter
|
|
56
65
|
|
|
57
|
-
Read
|
|
66
|
+
Read `REFERENCE.md` for the complete field catalog.
|
|
58
67
|
|
|
59
68
|
Apply these rules:
|
|
60
69
|
- `name`: lowercase, hyphens only, max 64 chars, no "anthropic" or "claude"
|
|
@@ -64,7 +73,7 @@ Apply these rules:
|
|
|
64
73
|
|
|
65
74
|
### Step 4: Write Skill Body
|
|
66
75
|
|
|
67
|
-
Read
|
|
76
|
+
Read `PROMPT-PATTERNS.md` for Claude 4.6 patterns.
|
|
68
77
|
|
|
69
78
|
Structure the body in this order:
|
|
70
79
|
1. **Title and purpose** — One-line summary of what the skill does and why
|
|
@@ -111,7 +120,7 @@ For multi-file skills, create reference files:
|
|
|
111
120
|
|
|
112
121
|
### Step 7: Validate
|
|
113
122
|
|
|
114
|
-
Read
|
|
123
|
+
Read `CHECKLIST.md` and verify the generated skill against every item.
|
|
115
124
|
|
|
116
125
|
Fix any issues before presenting the final output.
|
|
117
126
|
|
|
@@ -124,7 +133,6 @@ After generating the skill, present:
|
|
|
124
133
|
3. **Test invocation** — Example command to test the skill
|
|
125
134
|
|
|
126
135
|
Offer to:
|
|
127
|
-
- Run `/devlyn:review` on the generated skill for quality assurance
|
|
128
136
|
- Run `pyx-scan` if the skill will be published
|
|
129
137
|
|
|
130
138
|
---
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devlyn-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"description": "Loop & harness engineering for AI coding agents (Claude Code, Codex, and any AGENTS.md-driven agent) — take intent to shipped, engineer-quality software hands-free with phase-gated pipelines and agent orchestration",
|
|
5
5
|
"homepage": "https://github.com/fysoul17/devlyn-cli#readme",
|
|
6
6
|
"bin": {
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
"!config/skills/preflight-workspace/**",
|
|
14
14
|
"!config/skills/devlyn:ideate-workspace",
|
|
15
15
|
"!config/skills/devlyn:ideate-workspace/**",
|
|
16
|
+
"!config/skills/devlyn-ideate-workspace",
|
|
17
|
+
"!config/skills/devlyn-ideate-workspace/**",
|
|
16
18
|
"!config/skills/devlyn:auto-resolve-workspace",
|
|
17
19
|
"!config/skills/devlyn:auto-resolve-workspace/**",
|
|
18
20
|
"!config/skills/roadmap-archival-workspace",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|