worclaude 2.3.0 → 2.4.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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,47 @@
|
|
|
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
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [2.4.1] — 2026-04-18
|
|
8
|
+
|
|
9
|
+
Internal CI tooling — no change to the scaffolded output or npm package surface.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Daily `upstream-check` GitHub Actions workflow (09:30 UTC cron) that fetches the anthropic-watch feeds, diffs against committed state, and opens a GitHub issue when a Worclaude-relevant change appears. Completes the emit half of the anthropic-watch integration ([#69](https://github.com/sefaertunc/Worclaude/pull/69)).
|
|
14
|
+
- `scripts/upstream-precheck.mjs` — zero-dep Node 20 parallel feed fetch with 10s timeout, Set-based delta detection, 90-day firstSeen prune, and a 3-strike feed-unreachable watchdog with auto-recovery.
|
|
15
|
+
- `scripts/upstream-parse.mjs` — reads `claude-code-action` execution JSONL, applies a strict `SKIP_ISSUE` / `# Title:` / `# Body` contract with a plaintext fallback.
|
|
16
|
+
- `scripts/_gha-outputs.mjs` — shared zero-dep GitHub Actions helpers.
|
|
17
|
+
- `.github/upstream-state.json` — schema v2 state file (seeded from live `all.json`); every mutation gated on `github.ref == 'refs/heads/main'` so feature-branch dispatches stay read-only.
|
|
18
|
+
- `tests/fixtures/upstream/` — four parser fixtures (skip, issue, malformed, plaintext-fallback).
|
|
19
|
+
- `docs/reference/upstream-automation.md` — operations runbook and required branch-protection settings for the workflow.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- `docs/reference/slash-commands.md` — cross-link to the new upstream-automation reference page.
|
|
24
|
+
- `docs/.vitepress/config.mjs` — sidebar entry for upstream-automation; `phases/**` added to `srcExclude`.
|
|
25
|
+
|
|
26
|
+
### Removed
|
|
27
|
+
|
|
28
|
+
- `docs/research/PHASE-1-DIAGNOSIS-REPORT.md` — retired investigation scratchpad (preserved in git history).
|
|
29
|
+
|
|
30
|
+
## [2.4.0] — 2026-04-16
|
|
31
|
+
|
|
32
|
+
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.
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
|
|
36
|
+
- `/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.
|
|
37
|
+
- `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`.
|
|
38
|
+
- Agent routing entry for `upstream-watcher` (manual trigger, Stage 1: Context, `/upstream-check` as the paired command).
|
|
39
|
+
- 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.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- `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.
|
|
44
|
+
- Stale literal counts dropped from `src/data/agent-registry.js` doc-comment and Universal section header so they stop drifting.
|
|
45
|
+
|
|
5
46
|
## [2.3.0] — 2026-04-15
|
|
6
47
|
|
|
7
48
|
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
|
|
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 |
|
|
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 (
|
|
45
|
+
### Agents (26 total)
|
|
46
46
|
|
|
47
|
-
- **
|
|
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 (
|
|
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,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agent routing metadata for
|
|
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
|
|
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
|
|
package/src/data/agents.js
CHANGED
|
@@ -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"
|