worclaude 2.1.0 → 2.2.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 +9 -3
- package/package.json +1 -1
- package/src/commands/init.js +0 -28
- package/src/data/agents.js +0 -1
- package/templates/agents/universal/verify-app.md +3 -0
- package/templates/skills/universal/claude-md-maintenance.md +22 -0
- package/templates/skills/universal/context-management.md +23 -0
- package/templates/skills/universal/coordinator-mode.md +19 -0
- package/templates/core/memory-md.md +0 -61
package/README.md
CHANGED
|
@@ -48,9 +48,9 @@ Worclaude scaffolds a complete Claude Code workflow into any project in seconds.
|
|
|
48
48
|
|
|
49
49
|
---
|
|
50
50
|
|
|
51
|
-
## What's New in v2.
|
|
51
|
+
## What's New in v2.x
|
|
52
52
|
|
|
53
|
-
v2.
|
|
53
|
+
The v2.x series introduced Claude Code runtime integration and continues to refine the workflow.
|
|
54
54
|
|
|
55
55
|
**Claude Code Runtime Integration**
|
|
56
56
|
|
|
@@ -74,7 +74,7 @@ v2.0.0 is a major integration release. Skills and agents now register with Claud
|
|
|
74
74
|
**New Content**
|
|
75
75
|
|
|
76
76
|
- Coordinator-mode skill for multi-agent orchestration patterns
|
|
77
|
-
-
|
|
77
|
+
- Agents with `memory: project` leverage Claude Code's native memory system
|
|
78
78
|
- Enhanced verify-app agent with structured verdicts and adversarial probe requirements
|
|
79
79
|
- Per-tech-stack permission presets (16 languages)
|
|
80
80
|
|
|
@@ -83,6 +83,12 @@ v2.0.0 is a major integration release. Skills and agents now register with Claud
|
|
|
83
83
|
- `worclaude upgrade` auto-migrates v1.x projects: flat skills → directory format, agents get required frontmatter
|
|
84
84
|
- `worclaude doctor` detects old formats and missing fields
|
|
85
85
|
|
|
86
|
+
**v2.2.0 — Leaner Defaults, Richer Skills**
|
|
87
|
+
|
|
88
|
+
- Removed project-root MEMORY.md scaffolding — Claude Code's native memory system handles this automatically
|
|
89
|
+
- Expanded context-management, claude-md-maintenance, and coordinator-mode skills with deeper guidance
|
|
90
|
+
- Enhanced verify-app agent with mobile, database migration, and data/ML pipeline verification patterns
|
|
91
|
+
|
|
86
92
|
See the [Claude Code Integration guide](https://sefaertunc.github.io/Worclaude/guide/claude-code-integration) for technical details.
|
|
87
93
|
|
|
88
94
|
---
|
package/package.json
CHANGED
package/src/commands/init.js
CHANGED
|
@@ -211,27 +211,11 @@ async function runAgents(selections) {
|
|
|
211
211
|
return { ...selections, selectedAgents };
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
async function runMemoryMd(selections) {
|
|
215
|
-
const { includeMemoryMd } = await inquirer.prompt([
|
|
216
|
-
{
|
|
217
|
-
type: 'list',
|
|
218
|
-
name: 'includeMemoryMd',
|
|
219
|
-
message: 'Scaffold a MEMORY.md template? (for Claude Code memory system)',
|
|
220
|
-
choices: [
|
|
221
|
-
{ name: 'No', value: false },
|
|
222
|
-
{ name: 'Yes', value: true },
|
|
223
|
-
],
|
|
224
|
-
},
|
|
225
|
-
]);
|
|
226
|
-
return { ...selections, includeMemoryMd };
|
|
227
|
-
}
|
|
228
|
-
|
|
229
214
|
const STEP_RUNNERS = {
|
|
230
215
|
projectInfo: runProjectInfo,
|
|
231
216
|
projectType: runProjectType,
|
|
232
217
|
techStack: runTechStack,
|
|
233
218
|
agents: runAgents,
|
|
234
|
-
memoryMd: runMemoryMd,
|
|
235
219
|
};
|
|
236
220
|
|
|
237
221
|
// --- Confirmation ---
|
|
@@ -295,7 +279,6 @@ async function runInteractivePrompts(projectRoot) {
|
|
|
295
279
|
languages: [],
|
|
296
280
|
useDocker: false,
|
|
297
281
|
selectedAgents: [],
|
|
298
|
-
includeMemoryMd: false,
|
|
299
282
|
};
|
|
300
283
|
|
|
301
284
|
let confirmed = false;
|
|
@@ -307,7 +290,6 @@ async function runInteractivePrompts(projectRoot) {
|
|
|
307
290
|
selections = await runProjectType(selections);
|
|
308
291
|
selections = await runTechStack(selections);
|
|
309
292
|
selections = await runAgents(selections);
|
|
310
|
-
selections = await runMemoryMd(selections);
|
|
311
293
|
firstRun = false;
|
|
312
294
|
}
|
|
313
295
|
|
|
@@ -323,7 +305,6 @@ async function runInteractivePrompts(projectRoot) {
|
|
|
323
305
|
languages: [],
|
|
324
306
|
useDocker: false,
|
|
325
307
|
selectedAgents: [],
|
|
326
|
-
includeMemoryMd: false,
|
|
327
308
|
};
|
|
328
309
|
display.newline();
|
|
329
310
|
display.info('Starting over...');
|
|
@@ -332,7 +313,6 @@ async function runInteractivePrompts(projectRoot) {
|
|
|
332
313
|
selections = await runProjectType(selections);
|
|
333
314
|
selections = await runTechStack(selections);
|
|
334
315
|
selections = await runAgents(selections);
|
|
335
|
-
selections = await runMemoryMd(selections);
|
|
336
316
|
} else if (confirmation === 'adjust') {
|
|
337
317
|
const { step } = await inquirer.prompt([
|
|
338
318
|
{
|
|
@@ -520,11 +500,6 @@ async function scaffoldFresh(projectRoot, selections, variables, settingsStr, ve
|
|
|
520
500
|
await writeFile(path.join(projectRoot, '.claude', 'sessions', '.gitkeep'), '');
|
|
521
501
|
spinner.text = 'Created .claude/sessions/';
|
|
522
502
|
|
|
523
|
-
if (selections.includeMemoryMd) {
|
|
524
|
-
await scaffoldFile('core/memory-md.md', 'MEMORY.md', {}, projectRoot);
|
|
525
|
-
spinner.text = 'Created MEMORY.md';
|
|
526
|
-
}
|
|
527
|
-
|
|
528
503
|
await computeAndWriteWorkflowMeta(projectRoot, selections, version);
|
|
529
504
|
spinner.text = 'Created .claude/workflow-meta.json';
|
|
530
505
|
|
|
@@ -551,9 +526,6 @@ function displayFreshSuccess(selections, skipped) {
|
|
|
551
526
|
display.success('.claude/sessions/');
|
|
552
527
|
display.success('.mcp.json');
|
|
553
528
|
display.success('.gitignore');
|
|
554
|
-
if (selections.includeMemoryMd) {
|
|
555
|
-
display.success('MEMORY.md');
|
|
556
|
-
}
|
|
557
529
|
if (skipped.progressMd) {
|
|
558
530
|
display.dim(' docs/spec/PROGRESS.md — already exists, skipped');
|
|
559
531
|
}
|
package/src/data/agents.js
CHANGED
|
@@ -315,7 +315,6 @@ export const CONFIRMATION_STEPS = [
|
|
|
315
315
|
{ name: 'Project type', value: 'projectType' },
|
|
316
316
|
{ name: 'Tech stack', value: 'techStack' },
|
|
317
317
|
{ name: 'Agent selection', value: 'agents' },
|
|
318
|
-
{ name: 'MEMORY.md (optional)', value: 'memoryMd' },
|
|
319
318
|
];
|
|
320
319
|
|
|
321
320
|
export const NOTIFICATION_COMMANDS = {
|
|
@@ -112,6 +112,9 @@ You will feel the urge to skip checks. These are the excuses — recognize them:
|
|
|
112
112
|
- **Config/Infrastructure**: validate syntax → dry-run where possible → check env vars
|
|
113
113
|
- **Bug fixes**: reproduce original bug → verify fix → run regression tests
|
|
114
114
|
- **Refactoring**: existing test suite must pass unchanged → diff public API surface
|
|
115
|
+
- **Mobile (iOS/Android)**: clean build → install on simulator/emulator → dump accessibility/UI tree, tap by coords, re-dump to verify → check crash logs (logcat / device console)
|
|
116
|
+
- **Database migrations**: run migration up → verify schema matches intent → run migration down (reversibility) → test against existing data, not just empty DB
|
|
117
|
+
- **Data/ML pipeline**: run with sample input → verify output shape/schema/types → test empty input and NaN/null handling → check row counts in vs out for silent data loss
|
|
115
118
|
|
|
116
119
|
## Before Issuing PASS
|
|
117
120
|
|
|
@@ -100,6 +100,28 @@ The /update-claude-md command helps at session end:
|
|
|
100
100
|
Always review proposed changes before applying. Not every mistake needs a rule.
|
|
101
101
|
Only add rules for recurring problems.
|
|
102
102
|
|
|
103
|
+
## The @include Directive
|
|
104
|
+
|
|
105
|
+
When CLAUDE.md grows beyond the 50-line target, use `@include` to split content
|
|
106
|
+
into separate files while keeping it loadable:
|
|
107
|
+
|
|
108
|
+
```markdown
|
|
109
|
+
# CLAUDE.md
|
|
110
|
+
## Key Files
|
|
111
|
+
@./docs/conventions.md
|
|
112
|
+
@./docs/api-standards.md
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
- `@./relative` — relative to the file containing the directive
|
|
116
|
+
- `@~/path` — relative to home directory
|
|
117
|
+
- `@/absolute` — absolute path
|
|
118
|
+
- Works in CLAUDE.md, .claude/CLAUDE.md, .claude/rules/*.md, and CLAUDE.local.md
|
|
119
|
+
- Does NOT work inside code blocks (only in leaf text nodes)
|
|
120
|
+
- Non-existent files are silently ignored; circular references are prevented
|
|
121
|
+
|
|
122
|
+
This is the recommended alternative to cramming everything into CLAUDE.md.
|
|
123
|
+
Each included file still consumes context budget, so use judiciously.
|
|
124
|
+
|
|
103
125
|
## Gotchas
|
|
104
126
|
|
|
105
127
|
- CLAUDE.md is read as system context, not as a document. Write it as instructions,
|
|
@@ -118,6 +118,29 @@ WORCLAUDE_HOOK_PROFILE=strict claude
|
|
|
118
118
|
The default is `standard` if the variable is not set. You don't need to do
|
|
119
119
|
anything for normal development — the default just works.
|
|
120
120
|
|
|
121
|
+
## Token Budgets (Reference)
|
|
122
|
+
|
|
123
|
+
Approximate values from Claude Code v2.1.88 source (March 2026). These may change between releases.
|
|
124
|
+
|
|
125
|
+
| Resource | Budget |
|
|
126
|
+
|---|---|
|
|
127
|
+
| Context window (default) | 200,000 tokens |
|
|
128
|
+
| Context window (Opus 4.6 / Sonnet 4.6 with 1M) | 1,000,000 tokens |
|
|
129
|
+
| Max output tokens (Sonnet 4.6) | 32,000 default, 128,000 upper limit |
|
|
130
|
+
| Max output tokens (Opus 4.6) | 64,000 default, 128,000 upper limit |
|
|
131
|
+
| Tool presence overhead | ~500 tokens (added when any tools are enabled) |
|
|
132
|
+
| Post-compact file restore | 5 files max, 50,000 token budget, 5,000 per file |
|
|
133
|
+
| Post-compact skills restore | 25,000 token budget, 5,000 per skill |
|
|
134
|
+
| Compact summary output | 20,000 tokens max |
|
|
135
|
+
| CLAUDE.md total budget | ~40,000 characters across all loaded instruction files |
|
|
136
|
+
| MEMORY.md (native, ~/.claude/) | 200 lines / 25,000 bytes |
|
|
137
|
+
|
|
138
|
+
Practical takeaways:
|
|
139
|
+
- After compaction, only 5 files are restored at 5k tokens each. Structure your work
|
|
140
|
+
so the most important files are recently read.
|
|
141
|
+
- Skills over 5k tokens get truncated after compaction. Keep skills focused.
|
|
142
|
+
- The 70% rule still applies — these numbers help you estimate when you'll hit it.
|
|
143
|
+
|
|
121
144
|
## Gotchas
|
|
122
145
|
|
|
123
146
|
- Compacting doesn't free as much context as you think. If you've read 20 large files,
|
|
@@ -21,6 +21,25 @@ Don't use coordinator patterns when:
|
|
|
21
21
|
- Steps are strictly sequential with no parallelism
|
|
22
22
|
- The overhead of coordination exceeds the work itself
|
|
23
23
|
|
|
24
|
+
## Phase-Based Workflow
|
|
25
|
+
|
|
26
|
+
Most coordinated tasks follow four phases:
|
|
27
|
+
|
|
28
|
+
| Phase | Who | Purpose |
|
|
29
|
+
|-------|-----|---------|
|
|
30
|
+
| Research | Workers (parallel) | Investigate codebase, find files, understand problem |
|
|
31
|
+
| Synthesis | **You** (coordinator) | Read findings, understand the problem, craft implementation specs |
|
|
32
|
+
| Implementation | Workers | Make targeted changes per spec, commit |
|
|
33
|
+
| Verification | Workers | Test changes work, try to break them |
|
|
34
|
+
|
|
35
|
+
The synthesis phase is the coordinator's most important job. When workers report
|
|
36
|
+
research findings, **you must understand them before directing follow-up work**.
|
|
37
|
+
Read the findings. Identify the approach. Then write a prompt that proves you
|
|
38
|
+
understood by including specific file paths, line numbers, and exactly what to change.
|
|
39
|
+
|
|
40
|
+
Never write "based on your findings" or "based on the research." These phrases
|
|
41
|
+
delegate understanding to the worker instead of doing it yourself.
|
|
42
|
+
|
|
24
43
|
## Worker Prompt Best Practices
|
|
25
44
|
|
|
26
45
|
Workers cannot see your conversation. Every prompt must be self-contained:
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# MEMORY.md
|
|
2
|
-
|
|
3
|
-
> This file is an index of pointers, not storage. Each entry should be under ~200 characters.
|
|
4
|
-
> Limit: 200 lines / 25KB. Move detail into topic files in `.claude/memory/`.
|
|
5
|
-
> Claude Code reads this at session start — keep it lean.
|
|
6
|
-
|
|
7
|
-
## User
|
|
8
|
-
|
|
9
|
-
<!-- Role, preferences, expertise — helps Claude tailor responses -->
|
|
10
|
-
<!-- Example: - [Backend lead](user_role.md) — 8 years Python, new to this frontend -->
|
|
11
|
-
|
|
12
|
-
## Feedback
|
|
13
|
-
|
|
14
|
-
<!-- What to do and what to avoid — both corrections AND confirmed approaches -->
|
|
15
|
-
<!-- Format: rule, then **Why:** and **How to apply:** -->
|
|
16
|
-
<!-- Example: - [No mocks in integration tests](feedback_testing.md) — burned by mock/prod divergence -->
|
|
17
|
-
|
|
18
|
-
## Project
|
|
19
|
-
|
|
20
|
-
<!-- Ongoing work, goals, deadlines — convert relative dates to absolute -->
|
|
21
|
-
<!-- Format: fact/decision, then **Why:** and **How to apply:** -->
|
|
22
|
-
<!-- Example: - [Merge freeze 2026-03-05](project_release.md) — mobile team cutting release branch -->
|
|
23
|
-
|
|
24
|
-
## Reference
|
|
25
|
-
|
|
26
|
-
<!-- Pointers to external systems — Linear boards, Slack channels, dashboards -->
|
|
27
|
-
<!-- Example: - [Pipeline bugs](reference_linear.md) — tracked in Linear project "INGEST" -->
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Memory File Format
|
|
32
|
-
|
|
33
|
-
Each memory file in `.claude/memory/` uses this frontmatter:
|
|
34
|
-
|
|
35
|
-
```markdown
|
|
36
|
-
---
|
|
37
|
-
name: descriptive-name
|
|
38
|
-
description: one-line summary used to decide relevance in future sessions
|
|
39
|
-
type: user | feedback | project | reference
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
Content here. For feedback/project types, structure as:
|
|
43
|
-
Rule or fact.
|
|
44
|
-
**Why:** the reason or context.
|
|
45
|
-
**How to apply:** when and where this guidance applies.
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Drift and Verification
|
|
49
|
-
|
|
50
|
-
- Memory records become stale over time. Before acting on a memory, verify it against the current state of the codebase.
|
|
51
|
-
- If a memory names a file path, check the file still exists. If it names a function or flag, grep for it.
|
|
52
|
-
- If a recalled memory conflicts with current information, trust what you observe now — update or remove the stale memory.
|
|
53
|
-
- "The memory says X exists" is not the same as "X exists now."
|
|
54
|
-
|
|
55
|
-
## What NOT to save here
|
|
56
|
-
|
|
57
|
-
- Code patterns, architecture, file paths — derivable from current project state
|
|
58
|
-
- Git history, recent changes — `git log` / `git blame` are authoritative
|
|
59
|
-
- Debugging solutions — the fix is in the code, the context is in the commit message
|
|
60
|
-
- Anything already in CLAUDE.md
|
|
61
|
-
- Ephemeral task details — current conversation context, in-progress work
|