claude-mcp-workflow 0.1.0 → 0.1.5
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/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +1 -2
- package/README.md +86 -13
- package/build/dashboard.d.ts.map +1 -1
- package/build/dashboard.js +7 -0
- package/build/dashboard.js.map +1 -1
- package/build/engine.d.ts +18 -1
- package/build/engine.d.ts.map +1 -1
- package/build/engine.js +318 -9
- package/build/engine.js.map +1 -1
- package/build/executor.d.ts +8 -0
- package/build/executor.d.ts.map +1 -0
- package/build/executor.js +133 -0
- package/build/executor.js.map +1 -0
- package/build/index.js +8 -1
- package/build/index.js.map +1 -1
- package/build/loader.d.ts.map +1 -1
- package/build/loader.js +37 -4
- package/build/loader.js.map +1 -1
- package/build/modifier.d.ts +1 -9
- package/build/modifier.d.ts.map +1 -1
- package/build/modifier.js +4 -0
- package/build/modifier.js.map +1 -1
- package/build/template.d.ts +2 -0
- package/build/template.d.ts.map +1 -0
- package/build/template.js +21 -0
- package/build/template.js.map +1 -0
- package/build/tools.d.ts.map +1 -1
- package/build/tools.js +39 -32
- package/build/tools.js.map +1 -1
- package/build/types.d.ts +467 -1
- package/build/types.d.ts.map +1 -1
- package/build/types.js +26 -11
- package/build/types.js.map +1 -1
- package/dashboard/index.html +139 -12
- package/hooks/workflow-start.sh +24 -0
- package/package.json +5 -3
- package/templates/bug-fix.yaml +44 -8
- package/templates/code-review.yaml +21 -9
- package/templates/coding.yaml +10 -6
- package/templates/debugging.yaml +11 -6
- package/templates/file-code.yaml +10 -5
- package/templates/file-review.yaml +16 -7
- package/templates/github-init.yaml +81 -0
- package/templates/investigate.yaml +8 -5
- package/templates/master.yaml +27 -4
- package/templates/new-feature.yaml +9 -5
- package/templates/planning.yaml +8 -4
- package/templates/refactoring.yaml +7 -3
- package/templates/review-push.yaml +63 -0
- package/templates/skills/coding-skill-selector/SKILL.md +5 -3
- package/templates/skills/lang-haxe/SKILL.md +159 -1
- package/templates/skills/preferences/SKILL.md +39 -2
- package/templates/skills/task-delegation/SKILL.md +7 -15
- package/templates/skills/workflow-authoring/SKILL.md +127 -0
- package/templates/testing.yaml +2 -2
- package/templates/web-research.yaml +1 -1
- package/dashboard/dagre.min.js +0 -801
package/.mcp.json
CHANGED
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<a href="package
|
|
6
|
+
<a href="https://www.npmjs.com/package/claude-mcp-workflow"><img src="https://img.shields.io/npm/v/claude-mcp-workflow" alt="npm"></a>
|
|
7
7
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a>
|
|
8
8
|
<a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-5.7-3178c6" alt="TypeScript"></a>
|
|
9
9
|
<a href="https://code.claude.com/docs/en/plugins"><img src="https://img.shields.io/badge/Claude_Code-Plugin-ff6600" alt="Claude Code Plugin"></a>
|
|
@@ -20,27 +20,33 @@ A Claude Code plugin that drives agents through YAML-defined state machines. The
|
|
|
20
20
|
- **Three-tier loading** — bundled templates < global (`~/.claude/workflows/`) < project (`.claude/workflows/`)
|
|
21
21
|
- **Snapshot isolation** — workflow definitions frozen at session start; hot-reloads don't affect running sessions
|
|
22
22
|
- **Runtime overlays** — modify workflows on the fly without touching YAML files
|
|
23
|
+
- **Action states** — `exec` runs shell commands, `fetch` makes HTTP requests, with auto-routing by exit code or HTTP status
|
|
23
24
|
- **Web dashboard** — real-time session monitoring with DAG graph visualization
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
25
|
+
- **18 bundled workflows** — complete agent lifecycle from routing to reflection
|
|
26
|
+
- **9 bundled skills** — reusable knowledge modules auto-provisioned on first run
|
|
26
27
|
- **SessionStart hook** — auto-provisions missing skills and injects workflow context
|
|
27
28
|
|
|
28
29
|
## Quick Start
|
|
29
30
|
|
|
30
|
-
### From
|
|
31
|
+
### From npm (recommended)
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
/plugin install workflow@claude-plugin-directory
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### From GitHub
|
|
33
|
+
Create a `marketplace.json` and add it as a source, or install directly:
|
|
37
34
|
|
|
38
35
|
```bash
|
|
39
|
-
# 1. Add
|
|
40
|
-
/plugin marketplace add
|
|
36
|
+
# 1. Add a marketplace with this plugin
|
|
37
|
+
/plugin marketplace add <marketplace-with-workflow>
|
|
41
38
|
|
|
42
|
-
# 2. Install
|
|
43
|
-
/plugin install workflow
|
|
39
|
+
# 2. Install
|
|
40
|
+
/plugin install workflow@<marketplace-name>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
See [Creating a marketplace](https://code.claude.com/docs/en/plugin-marketplaces) for how to set up an npm-based marketplace with this plugin:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"name": "workflow",
|
|
48
|
+
"source": { "source": "npm", "package": "claude-mcp-workflow" }
|
|
49
|
+
}
|
|
44
50
|
```
|
|
45
51
|
|
|
46
52
|
### Manual (for development)
|
|
@@ -103,6 +109,67 @@ states:
|
|
|
103
109
|
outcome: complete # or "fail"
|
|
104
110
|
```
|
|
105
111
|
|
|
112
|
+
## Action States
|
|
113
|
+
|
|
114
|
+
States can run shell commands or HTTP requests automatically — the agent doesn't participate, the engine handles execution and routes to the next state based on the result.
|
|
115
|
+
|
|
116
|
+
### `exec` — run a shell command
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
run_tests:
|
|
120
|
+
type: exec
|
|
121
|
+
command: "npm test"
|
|
122
|
+
cwd: "{{context.cwd}}"
|
|
123
|
+
timeout: 30000
|
|
124
|
+
on_success: analyze
|
|
125
|
+
on_error: fix
|
|
126
|
+
success_prompt: "Tests passed:\n{{stdout}}"
|
|
127
|
+
error_prompt: "Tests failed (exit {{exit_code}}):\n{{stderr}}"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### `fetch` — make an HTTP request
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
check_api:
|
|
134
|
+
type: fetch
|
|
135
|
+
url: "http://localhost:8888/ping"
|
|
136
|
+
method: GET
|
|
137
|
+
timeout: 5000
|
|
138
|
+
retry:
|
|
139
|
+
max: 60
|
|
140
|
+
interval: 500
|
|
141
|
+
on_success: ready
|
|
142
|
+
on_error: wait
|
|
143
|
+
success_prompt: "API ready: {{body}}"
|
|
144
|
+
error_prompt: "Not responding: {{error}}"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Routing
|
|
148
|
+
|
|
149
|
+
Action states route via `on_success`/`on_error`, or by specific codes using `cases`:
|
|
150
|
+
|
|
151
|
+
```yaml
|
|
152
|
+
run_tests:
|
|
153
|
+
type: exec
|
|
154
|
+
command: "npm test"
|
|
155
|
+
cases:
|
|
156
|
+
"0": all_passed
|
|
157
|
+
"1": tests_failed
|
|
158
|
+
"2": no_tests_found
|
|
159
|
+
default: unknown_error
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Template variables
|
|
163
|
+
|
|
164
|
+
All prompts support `{{mustache}}` templates. Context values are available everywhere via `{{context.key}}`. After action execution, result variables are also available:
|
|
165
|
+
|
|
166
|
+
| Source | Variables |
|
|
167
|
+
|--------|-----------|
|
|
168
|
+
| `exec` | `{{stdout}}`, `{{stderr}}`, `{{exit_code}}`, `{{pid}}` (background) |
|
|
169
|
+
| `fetch` | `{{status}}`, `{{body}}`, `{{error}}` |
|
|
170
|
+
|
|
171
|
+
Action states can be chained — `exec` → `exec` → `fetch` → `prompt` — up to 20 steps without agent involvement.
|
|
172
|
+
|
|
106
173
|
## Three-Tier Loading
|
|
107
174
|
|
|
108
175
|
Workflows load from three sources in ascending priority — later tiers override earlier ones:
|
|
@@ -135,6 +202,8 @@ A project workflow named `coding` overrides the bundled `coding` template. Same-
|
|
|
135
202
|
| `subagent` | Lightweight routing for sub-agents (no chat/plan/reflect) |
|
|
136
203
|
| `file-code` | Per-file coding — spawned by coding/bug-fix for each file |
|
|
137
204
|
| `file-review` | Per-file deep review — spawned by code-review for each file |
|
|
205
|
+
| `review-push` | Review uncommitted changes, then commit and push to GitHub |
|
|
206
|
+
| `github-init` | Initialize git repo and create private GitHub repository |
|
|
138
207
|
|
|
139
208
|

|
|
140
209
|
|
|
@@ -152,6 +221,7 @@ Skills are reusable knowledge modules loaded by workflows via `Skill()`. Auto-pr
|
|
|
152
221
|
| `lang-python` | Python language gotchas |
|
|
153
222
|
| `math` | Math overflow boundary gotchas |
|
|
154
223
|
| `web-reading` | Fetch web content via subagents |
|
|
224
|
+
| `workflow-authoring` | Reference for creating workflows with exec/fetch action states |
|
|
155
225
|
|
|
156
226
|
## MCP Tools
|
|
157
227
|
|
|
@@ -240,6 +310,7 @@ Then in `~/.claude/settings.json`:
|
|
|
240
310
|
npm run build # tsc → compiles src/ to build/
|
|
241
311
|
npm run dev # tsc --watch
|
|
242
312
|
npm start # node build/index.js
|
|
313
|
+
npm test # vitest run
|
|
243
314
|
```
|
|
244
315
|
|
|
245
316
|
### Architecture
|
|
@@ -252,6 +323,8 @@ npm start # node build/index.js
|
|
|
252
323
|
| `src/storage.ts` | JSON persistence with atomic writes and lockfile mutex |
|
|
253
324
|
| `src/modifier.ts` | Runtime overlays + create (YAML writer) |
|
|
254
325
|
| `src/tools.ts` | MCP tool registrations + response formatting |
|
|
326
|
+
| `src/executor.ts` | Action state execution — shell commands (`exec`) and HTTP requests (`fetch`) |
|
|
327
|
+
| `src/template.ts` | Mustache-style `{{var}}` template rendering for action parameters |
|
|
255
328
|
| `src/dashboard.ts` | Express REST API + static file serving |
|
|
256
329
|
| `src/types.ts` | Zod schemas, TypeScript types, constants |
|
|
257
330
|
|
package/build/dashboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAwG1C,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGpF"}
|
package/build/dashboard.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import express from "express";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
3
4
|
import { fileURLToPath } from "node:url";
|
|
4
5
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
6
|
function buildApp(storage, loader) {
|
|
@@ -61,6 +62,12 @@ function buildApp(storage, loader) {
|
|
|
61
62
|
res.status(500).json({ error: err.message });
|
|
62
63
|
}
|
|
63
64
|
});
|
|
65
|
+
// Serve dagre from node_modules (works both in dev and when installed as a dependency)
|
|
66
|
+
const require = createRequire(import.meta.url);
|
|
67
|
+
const dagrePath = require.resolve("@dagrejs/dagre/dist/dagre.min.js");
|
|
68
|
+
app.get("/dagre.min.js", (_req, res) => {
|
|
69
|
+
res.sendFile(dagrePath);
|
|
70
|
+
});
|
|
64
71
|
// Serve dashboard HTML
|
|
65
72
|
const dashboardDir = path.resolve(__dirname, "..", "dashboard");
|
|
66
73
|
app.use(express.static(dashboardDir));
|
package/build/dashboard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"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"}
|
package/build/engine.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { StackFrame, HistoryEntry, StateDefinition } from "./types.js";
|
|
2
2
|
import type { Storage } from "./storage.js";
|
|
3
3
|
import type { Loader } from "./loader.js";
|
|
4
|
+
import type { Executor } from "./executor.js";
|
|
4
5
|
export interface TransitionResult {
|
|
5
6
|
readonly prompt: string;
|
|
6
7
|
readonly warnings: string[];
|
|
@@ -23,14 +24,23 @@ export interface StatusResult {
|
|
|
23
24
|
readonly context: Record<string, unknown>;
|
|
24
25
|
readonly taskOps: TaskOp[];
|
|
25
26
|
readonly visitCount: number;
|
|
27
|
+
readonly forcePrompt?: boolean;
|
|
26
28
|
}
|
|
27
29
|
export declare class Engine {
|
|
28
30
|
private readonly _storage;
|
|
29
31
|
private readonly _loader;
|
|
32
|
+
private readonly _executor;
|
|
30
33
|
private readonly _snapshots;
|
|
31
|
-
constructor(storage: Storage, loader: Loader);
|
|
34
|
+
constructor(storage: Storage, loader: Loader, executor: Executor);
|
|
32
35
|
/** Find the most recently updated active session for the current Claude Code PID. */
|
|
33
36
|
resolveSessionId(sessionId?: string): string;
|
|
37
|
+
private static _isPidAlive;
|
|
38
|
+
/**
|
|
39
|
+
* Check if the session belongs to the current Claude Code process.
|
|
40
|
+
* When force=true, skip the check but warn if the owner process is still alive.
|
|
41
|
+
* Returns a warning string if force was used, undefined otherwise.
|
|
42
|
+
*/
|
|
43
|
+
assertOwnership(sessionId: string, force?: boolean): string | undefined;
|
|
34
44
|
start(workflowName: string, actor?: string, parentSessionId?: string): Promise<StatusResult>;
|
|
35
45
|
transition(sessionId: string, transitionName: string, actor?: string): Promise<StatusResult>;
|
|
36
46
|
abort(sessionId: string): Promise<void>;
|
|
@@ -41,7 +51,14 @@ export declare class Engine {
|
|
|
41
51
|
* Returns the new status if pop succeeded, or null if still pending.
|
|
42
52
|
*/
|
|
43
53
|
retryPendingPop(sessionId: string): Promise<StatusResult | null>;
|
|
54
|
+
/** Abandon active sessions whose owner PID is no longer alive. */
|
|
55
|
+
reapOrphanedSessions(): Promise<string[]>;
|
|
44
56
|
setContext(sessionId: string, key: string, value: unknown, actor?: string): Promise<void>;
|
|
57
|
+
private _isActionState;
|
|
58
|
+
private _isSkillGate;
|
|
59
|
+
private _handleSkillGate;
|
|
60
|
+
private _buildTemplateVars;
|
|
61
|
+
private _executeActionState;
|
|
45
62
|
private _pushSubWorkflow;
|
|
46
63
|
private _popStack;
|
|
47
64
|
private _formatChildrenBlockError;
|
package/build/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,UAAU,EACV,YAAY,EAEZ,eAAe,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|