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 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.0.0
51
+ ## What's New in v2.x
52
52
 
53
- v2.0.0 is a major integration release. Skills and agents now register with Claude Code's runtime systems — they show up in `/skills` and `/agents`, not just as files on disk.
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
- - Optional MEMORY.md template for Claude Code's memory system
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "worclaude",
3
- "version": "2.1.0",
3
+ "version": "2.2.1",
4
4
  "description": "CLI tool that scaffolds a comprehensive Claude Code workflow into any project",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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
  }
@@ -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