worclaude 2.3.0 → 2.4.0

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/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to worclaude are documented in this file. Format loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versions follow [semver](https://semver.org/). Older releases (pre-2.3.0) are documented in [docs/spec/PROGRESS.md](./docs/spec/PROGRESS.md) and the [GitHub releases page](https://github.com/sefaertunc/Worclaude/releases).
4
4
 
5
+ ## [2.4.0] — 2026-04-16
6
+
7
+ Worclaude 2.4.0 adds **upstream awareness**: every scaffolded project now ships a `/upstream-check` command and an `upstream-watcher` universal agent that consume the [anthropic-watch](https://github.com/sefaertunc/anthropic-watch) feeds at runtime (16 Anthropic sources — Claude Code releases, SDK changelogs, docs, engineering blog, status page, and more) and report what's new, what's critical, and what affects the current project. No new npm dependencies — fetching happens via `curl` inside Claude Code.
8
+
9
+ ### Added
10
+
11
+ - `/upstream-check` command (scaffolded template) — on-demand, stateless status check. Fetches `run-report.json` and `all.json`, reports source health (`Y/16 healthy`) and the 10 most recent items grouped by category, and flags items from `claude-code-releases`, `claude-code-changelog`, `npm-claude-code`, `agent-sdk-ts-changelog`, or `agent-sdk-py-changelog` as `[CRITICAL]`. Graceful fetch-failure handling.
12
+ - `upstream-watcher` universal agent — deep upstream impact analysis (Sonnet, `isolation: none`, read-only: `disallowedTools: [Edit, Write, NotebookEdit]`). Cross-references new upstream items against the project's scaffolded `.claude/` surface area (agents, commands, hooks, skills, settings) and produces a three-part report: direct impact, informational, recommended actions. Feeds fetched in parallel to bound worst-case latency by a single `--max-time`.
13
+ - Agent routing entry for `upstream-watcher` (manual trigger, Stage 1: Context, `/upstream-check` as the paired command).
14
+ - Worclaude-internal `.claude/commands/upstream-check.md` (dogfood) — same fetch/flag behavior as the scaffolded template, plus a Worclaude-specific cross-reference layer that checks each `[CRITICAL]` item against `src/data/agents.js`, `src/data/agent-registry.js`, `src/core/scaffolder.js`, `src/core/merger.js`, `templates/hooks/*.cjs`, `docs/spec/BACKLOG-v2.1.md`, `templates/skills/universal/*.md`, and `CLAUDE.md` Critical Rules. Each cross-reference classified as Action needed / No impact detected / Needs investigation.
15
+
16
+ ### Changed
17
+
18
+ - `UNIVERSAL_AGENTS` 5 → 6, `COMMAND_FILES` 17 → 18, `AGENT_REGISTRY` 25 → 26. Manifest audit tests and `init` / `merger` / `agent-routing` generator tests updated to iterate over `UNIVERSAL_AGENTS` instead of hardcoded lists — adding future universals no longer requires updating those tests.
19
+ - Stale literal counts dropped from `src/data/agent-registry.js` doc-comment and Universal section header so they stop drifting.
20
+
5
21
  ## [2.3.0] — 2026-04-15
6
22
 
7
23
  Worclaude 2.3.0 expands the workflow from a setup scaffold into a full **learning system**: Claude captures corrections automatically, replays them across sessions, and now generates cross-tool rule files so switching from Claude Code to Cursor or Codex does not mean re-writing your conventions. Eight lifecycle hooks (up from three) plus a dedicated `coding-principles` reference card tighten the feedback loop between you and Claude.
package/README.md CHANGED
@@ -25,13 +25,13 @@
25
25
 
26
26
  # Worclaude — The Workflow Layer for Claude Code
27
27
 
28
- Worclaude scaffolds a complete Claude Code workflow into any project in seconds. One `init` command installs 25 agents, 17 slash commands, 16 skills, 8 lifecycle hooks, a two-store memory system, and a CLAUDE.md template tuned for your tech stack. It implements the patterns in [howborisusesclaudecode.com](https://www.howborisusesclaudecode.com/) as a reusable, upgradable scaffold, so you stop rebuilding the same configuration for every new project.
28
+ Worclaude scaffolds a complete Claude Code workflow into any project in seconds. One `init` command installs 26 agents, 18 slash commands, 16 skills, 8 lifecycle hooks, a two-store memory system, and a CLAUDE.md template tuned for your tech stack. It implements the patterns in [howborisusesclaudecode.com](https://www.howborisusesclaudecode.com/) as a reusable, upgradable scaffold, so you stop rebuilding the same configuration for every new project.
29
29
 
30
30
  <div align="center">
31
31
 
32
32
  | CLI Commands | Agents | Slash Commands | Skills | Hooks | Tech Stacks |
33
33
  | :----------: | :-----------------------: | :------------: | :-------------------: | :--------------: | :-----------: |
34
- | 8 | 5 universal + 20 optional | 17 | 16 | 8 events | 16 |
34
+ | 8 | 6 universal + 20 optional | 18 | 16 | 8 events | 16 |
35
35
  | subcommands | across 6 categories | session tools | universal + templates | lifecycle events | auto-detected |
36
36
 
37
37
  </div>
@@ -42,16 +42,16 @@ Worclaude scaffolds a complete Claude Code workflow into any project in seconds.
42
42
 
43
43
  `worclaude init` installs a production-ready Claude Code workflow:
44
44
 
45
- ### Agents (25 total)
45
+ ### Agents (26 total)
46
46
 
47
- - **5 universal:** plan-reviewer (Opus), code-simplifier (Sonnet, worktree), test-writer (Sonnet, worktree), build-validator (Haiku), verify-app (Sonnet, worktree)
47
+ - **6 universal:** plan-reviewer (Opus), code-simplifier (Sonnet, worktree), test-writer (Sonnet, worktree), build-validator (Haiku), verify-app (Sonnet, worktree), upstream-watcher (Sonnet)
48
48
  - **20 optional** across 6 categories — Backend, Frontend, DevOps, Quality, Documentation, Data/AI. Worclaude recommends agents based on your project type.
49
49
 
50
- ### Slash Commands (17)
50
+ ### Slash Commands (18)
51
51
 
52
- Session lifecycle, review, verification, memory, and git automation:
52
+ Session lifecycle, review, verification, memory, upstream awareness, and git automation:
53
53
 
54
- `/start` `/end` `/commit-push-pr` `/review-plan` `/techdebt` `/verify` `/compact-safe` `/status` `/update-claude-md` `/learn` `/setup` `/sync` `/conflict-resolver` `/review-changes` `/build-fix` `/refactor-clean` `/test-coverage`
54
+ `/start` `/end` `/commit-push-pr` `/review-plan` `/techdebt` `/verify` `/compact-safe` `/status` `/update-claude-md` `/learn` `/setup` `/sync` `/conflict-resolver` `/review-changes` `/build-fix` `/refactor-clean` `/test-coverage` `/upstream-check`
55
55
 
56
56
  ### Skills (16)
57
57
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "worclaude",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "The Workflow Layer for Claude Code — scaffold agents, commands, skills, hooks, and memory into any project",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Agent routing metadata for all 25 agents.
2
+ * Agent routing metadata for every agent in the registry.
3
3
  * Used by the agent-routing generator to produce the routing skill file.
4
4
  * Separate from agents.js because this data is only consumed by the generator,
5
5
  * not by CLI prompts or display logic.
6
6
  */
7
7
  export const AGENT_REGISTRY = {
8
- // --- Universal agents (5) ---
8
+ // --- Universal agents ---
9
9
 
10
10
  'plan-reviewer': {
11
11
  category: 'universal',
@@ -73,6 +73,21 @@ export const AGENT_REGISTRY = {
73
73
  expectBack: 'Detailed verification report. Blocking issues listed.',
74
74
  situationLabel: 'Finished a task, ready for PR',
75
75
  },
76
+ 'upstream-watcher': {
77
+ category: 'universal',
78
+ model: 'Sonnet',
79
+ isolation: 'none',
80
+ pipelineStage: 'Stage 1: Context',
81
+ triggerType: 'manual',
82
+ triggerCommand: '/upstream-check',
83
+ whenToUse:
84
+ 'At the start of a session to check for upstream Claude Code changes. After Claude Code updates. When behavior seems different from last session.',
85
+ whatItDoes:
86
+ "Fetches anthropic-watch feeds, cross-references upstream changes against the project's scaffolded agents/commands/hooks/skills, and produces an impact report.",
87
+ expectBack:
88
+ 'Impact report: which upstream changes affect this project, which are informational, and recommended actions.',
89
+ situationLabel: 'Want to check for upstream Claude Code changes',
90
+ },
76
91
 
77
92
  // --- Frontend agents (2) ---
78
93
 
@@ -4,6 +4,7 @@ export const UNIVERSAL_AGENTS = [
4
4
  'test-writer',
5
5
  'build-validator',
6
6
  'verify-app',
7
+ 'upstream-watcher',
7
8
  ];
8
9
 
9
10
  export const AGENT_CATALOG = {
@@ -195,6 +196,7 @@ export const COMMAND_FILES = [
195
196
  'refactor-clean',
196
197
  'test-coverage',
197
198
  'learn',
199
+ 'upstream-check',
198
200
  ];
199
201
 
200
202
  export const UNIVERSAL_SKILLS = [
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: upstream-watcher
3
+ description: "Cross-references new Anthropic upstream changes against the current project's scaffolded infrastructure and produces an impact report"
4
+ model: sonnet
5
+ isolation: none
6
+ memory: project
7
+ disallowedTools:
8
+ - Edit
9
+ - Write
10
+ - NotebookEdit
11
+ maxTurns: 30
12
+ criticalSystemReminder: "CRITICAL: You CANNOT edit files. Report findings only. Suggest actions but do not implement them."
13
+ ---
14
+
15
+ You are an upstream-awareness specialist. You fetch the anthropic-watch feeds,
16
+ read the current project's Claude Code infrastructure, and produce a focused
17
+ impact report describing which upstream changes matter for THIS project.
18
+
19
+ You are read-only. Report findings and recommend actions — do not implement them.
20
+
21
+ ## 1. Fetch Upstream Feeds
22
+
23
+ Feed base: `https://sefaertunc.github.io/anthropic-watch/feeds/`
24
+
25
+ Fetch both feeds in parallel to keep the worst-case wait bounded by a single
26
+ `--max-time`:
27
+
28
+ ```bash
29
+ curl -s --max-time 10 https://sefaertunc.github.io/anthropic-watch/feeds/run-report.json &
30
+ curl -s --max-time 10 https://sefaertunc.github.io/anthropic-watch/feeds/all.json &
31
+ wait
32
+ ```
33
+
34
+ If either fetch fails (non-zero exit, empty body, or non-JSON), report
35
+ "Could not reach anthropic-watch feeds" and stop — no impact analysis is
36
+ possible without the feed data.
37
+
38
+ `run-report.json` gives per-source health and `newItemCount`. `all.json` gives
39
+ the full list of items across all 16 sources, sorted newest-first. Each item
40
+ carries `source`, `sourceCategory`, `title`, `date`, `url`, `snippet`.
41
+
42
+ ## 2. Read Project Infrastructure
43
+
44
+ Enumerate the scaffolded surface area so you know what upstream changes could
45
+ affect:
46
+
47
+ - `.claude/agents/*.md` — every agent and its frontmatter (model, isolation, tools)
48
+ - `.claude/commands/*.md` — every slash command
49
+ - `.claude/skills/*/SKILL.md` — every skill
50
+ - `.claude/hooks/*` — every hook script, especially `pre-compact-save.cjs`
51
+ - `.claude/settings.json` and `.claude/settings.local.json` — permissions, env, hooks wiring
52
+ - `CLAUDE.md` and `AGENTS.md` — project conventions
53
+ - `package.json` (or equivalent) — whether the project imports `@anthropic-ai/sdk`
54
+ or `anthropic` directly
55
+
56
+ Use `ls`, `cat`, and `grep` via the Read/Bash tools. You do not need to read
57
+ every file in full — frontmatter and imports are usually enough.
58
+
59
+ ## 3. Impact Classification
60
+
61
+ For each new upstream item, classify it into one of these buckets:
62
+
63
+ | Source family | What to check in this project |
64
+ |---|---|
65
+ | Claude Code releases / changelog / npm-claude-code | Agent frontmatter syntax, hook event names, command syntax, tool names used by agents |
66
+ | Agent SDK TS/Py changelog | Spawned-agent capabilities, tool schemas, isolation semantics, hook input/output shapes |
67
+ | Anthropic API SDK / docs | Relevant **only** if the project imports the SDK directly — skip otherwise |
68
+ | Engineering blog | New patterns or best practices worth adopting; never blocking |
69
+ | Status page | Informational only; no action required |
70
+ | Other sources | Classify by content — prefer informational unless it names something the project uses |
71
+
72
+ ## 4. Report Format
73
+
74
+ Produce three sections:
75
+
76
+ ### Direct impact
77
+
78
+ Items that affect this project's scaffolded infrastructure. For each item:
79
+
80
+ - **[Source] Title** — `url`
81
+ - Affected: which agent / command / hook / skill / setting, and why
82
+ - Why it matters: 1-2 sentences
83
+
84
+ ### Informational
85
+
86
+ Items worth knowing about but requiring no action. One bullet per item: title,
87
+ source, one-line reason it is informational.
88
+
89
+ ### Recommended actions
90
+
91
+ Concrete, actionable follow-ups tied to direct-impact items. Examples:
92
+
93
+ - "Review `pre-compact-save.cjs` — PreCompact hook input shape changed in Claude Code vX.Y"
94
+ - "Update `verify-app` agent frontmatter — new `isolation: ephemeral` option available"
95
+ - "Check `@anthropic-ai/sdk` pinned version — Y.Z deprecates {feature} used in src/foo.js"
96
+
97
+ Each action must name the specific file and the specific upstream change that
98
+ prompts it.
99
+
100
+ ## 5. Empty Case
101
+
102
+ If the feeds report no new items, or if no new items affect this project, say
103
+ so in one line. Do not pad the report.
104
+
105
+ > No new upstream items since {timestamp}.
106
+
107
+ or
108
+
109
+ > {N} new upstream items. None affect this project's scaffolded infrastructure.
110
+
111
+ ## Rules
112
+
113
+ - You are read-only. Never edit files. Never run destructive commands.
114
+ - Be specific: name the affected file, frontmatter field, or import — not "some agents".
115
+ - Skip items that are clearly informational (blog think-pieces, status incidents)
116
+ after a one-line mention.
117
+ - If confidence is low that an upstream change affects this project, list it as
118
+ informational rather than direct-impact. Do not cry wolf.
119
+ - Keep the report scannable. Direct-impact and actions are the parts the user
120
+ will act on — lead with them.
@@ -0,0 +1,85 @@
1
+ ---
2
+ description: "On-demand check of Anthropic upstream feeds (Claude Code releases, SDK changelogs, blog, status)"
3
+ ---
4
+
5
+ Fetch the anthropic-watch feeds and report a concise summary of upstream changes.
6
+ This is a stateless, on-demand status check — no caching, no persistence.
7
+
8
+ Feed base URL: `https://sefaertunc.github.io/anthropic-watch/feeds/`
9
+
10
+ ## 1. Fetch Run Report
11
+
12
+ ```bash
13
+ curl -s --max-time 10 https://sefaertunc.github.io/anthropic-watch/feeds/run-report.json
14
+ ```
15
+
16
+ If the fetch fails (non-zero exit, empty body, or non-JSON output), report:
17
+
18
+ ```
19
+ Could not reach anthropic-watch feeds.
20
+ ```
21
+
22
+ and stop.
23
+
24
+ Otherwise, parse the JSON and extract:
25
+
26
+ - `timestamp` — when the scraper last ran
27
+ - `sources[]` — list of all 16 sources with `{key, name, category, status, newItemCount, error}`
28
+
29
+ Count how many sources have `status: "ok"` vs errored sources. List each errored source
30
+ with its error message.
31
+
32
+ ## 2. Fetch All Items
33
+
34
+ ```bash
35
+ curl -s --max-time 10 https://sefaertunc.github.io/anthropic-watch/feeds/all.json
36
+ ```
37
+
38
+ Apply the same failure handling.
39
+
40
+ Otherwise, parse and take the **10 most recent items** (they are already sorted
41
+ newest-first). Group them by `sourceCategory` (`core` vs `extended`).
42
+
43
+ For each item show:
44
+
45
+ - Title
46
+ - Source name (`sourceName`)
47
+ - Date (relative like "2 days ago" when you can compute it, otherwise ISO date)
48
+ - URL
49
+
50
+ ## 3. Highlight Claude Code-Critical Items
51
+
52
+ Any item whose `source` is one of:
53
+
54
+ - `claude-code-releases`
55
+ - `claude-code-changelog`
56
+ - `npm-claude-code`
57
+ - `agent-sdk-ts-changelog`
58
+ - `agent-sdk-py-changelog`
59
+
60
+ directly affects scaffolded worclaude infrastructure. Flag these with a `[CRITICAL]`
61
+ prefix in the listing so the user notices them first.
62
+
63
+ ## 4. Closing Summary
64
+
65
+ End with a single line:
66
+
67
+ ```
68
+ X new items since {timestamp}. Y/16 sources healthy.
69
+ ```
70
+
71
+ Where X is the total item count across all sources (sum of `newItemCount` from the
72
+ run report) and Y is the healthy-source count.
73
+
74
+ ## Rules
75
+
76
+ - Use only `curl` and shell builtins. Do not invoke `node` or `npm`.
77
+ - Do not cache, persist, or diff against prior runs — this command is stateless.
78
+ - Keep the output concise. This is a status check, not a research report.
79
+ - If both feeds fail, stop after the first failure message.
80
+
81
+ ## Trigger Phrases
82
+ - "check upstream"
83
+ - "what changed in claude code"
84
+ - "any anthropic updates"
85
+ - "upstream status"