workhorse-ai-mcp 0.8.2 → 0.8.3

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
@@ -12,6 +12,36 @@ The journal enforces a simple discipline: `DRAFT → DELEGATED → REPORTED →
12
12
  ACCEPTED | REWORK | FAILED`, where *reported* (the worker thinks it is done)
13
13
  is never the same as *accepted* (the orchestrator verified it).
14
14
 
15
+ ## Quick start
16
+
17
+ **Claude Code — two commands** (installs the MCP server *and* the skill):
18
+
19
+ ```bash
20
+ claude plugin marketplace add https://github.com/workhorse-ai/workhorse-ai-mcp
21
+ claude plugin install workhorse-ai@workhorse-ai
22
+ ```
23
+
24
+ **Any other agent** — install the skill, then add the MCP server to your
25
+ agent's MCP config:
26
+
27
+ ```bash
28
+ npx skills add workhorse-ai/workhorse-ai-mcp
29
+ ```
30
+
31
+ ```json
32
+ { "mcpServers": { "workhorse": { "command": "npx", "args": ["-y", "workhorse-ai-mcp"] } } }
33
+ ```
34
+
35
+ Optionally, pin the rule at the project level — copy this into your
36
+ `AGENTS.md` / `CLAUDE.md`:
37
+
38
+ ```markdown
39
+ Delegation goes through the `workhorse` MCP journal. Worker duties:
40
+ `search_precedents` before starting, `record_artifact` (progress notes)
41
+ along the way, `submit_report` at the end. Never commit and never accept
42
+ your own work — acceptance requires the orchestrator's own test run.
43
+ ```
44
+
15
45
  ## Install
16
46
 
17
47
  Add the server to your `.mcp.json`:
@@ -46,25 +76,6 @@ On first start the server creates the directory and the database itself.
46
76
 
47
77
  ## Connect to the cloud (optional)
48
78
 
49
- The journal works fully offline. To sync it with a Planado workspace, issue
50
- an MCP token on the workspace's MCP page and ask your agent to call the
51
- `connect` tool:
52
-
53
- ```json
54
- connect {
55
- "url": "https://<your-workspace>/api/mcp/journal-sync",
56
- "token": "<mcp token>"
57
- }
58
- ```
59
-
60
- `connect` verifies the connection first and only then writes `sync.json`
61
- next to the database — no manual configuration. The journal id defaults to
62
- a normalized `<username>-<hostname>`. After that, every journal write is
63
- auto-pushed; `sync` forces a push, and `inbox`/`take` pull task intents
64
- from the cloud.
65
-
66
- ## Connecting to a cloud
67
-
68
79
  `connect` needs only a token — the managed Workhorse AI cloud is the default:
69
80
 
70
81
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workhorse-ai-mcp",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Delegation journal for orchestrator/worker AI workflows: event sourcing over SQLite with an MCP interface. Zero dependencies.",
package/server.mjs CHANGED
@@ -862,7 +862,7 @@ function handle(msg) {
862
862
  respond(id, {
863
863
  protocolVersion: params?.protocolVersion ?? "2024-11-05",
864
864
  capabilities: { tools: {}, prompts: {} },
865
- serverInfo: { name: "workhorse-mcp", version: "0.8.2" },
865
+ serverInfo: { name: "workhorse-mcp", version: "0.8.3" },
866
866
  instructions: SERVER_INSTRUCTIONS,
867
867
  });
868
868
  } else if (method === "prompts/list") {
@@ -19,6 +19,31 @@ full-text search. The server validates status transitions, so you never need —
19
19
  must never try — to write to the database by hand. Do not create task files in the
20
20
  project repository: state lives in the journal only.
21
21
 
22
+ ## Requirements
23
+
24
+ This skill drives the **workhorse MCP server** — without it, none of the tools
25
+ referenced below exist. If your agent has no `workhorse` server connected, add
26
+ it first (or ask the user to):
27
+
28
+ ```json
29
+ { "mcpServers": { "workhorse": { "command": "npx", "args": ["-y", "workhorse-ai-mcp"] } } }
30
+ ```
31
+
32
+ The server needs Node.js >= 22.5, stores data in `~/.workhorse-ai/journal.db`,
33
+ and creates the database itself on first start. It also announces its protocol
34
+ in the MCP `initialize` instructions, so the status machine below is always
35
+ available to the agent even without this skill.
36
+
37
+ Tool inventory (names may be prefixed by your client, e.g. `mcp__workhorse__*`):
38
+
39
+ | Group | Tools |
40
+ |---|---|
41
+ | Registry | `resolve_project`, `register_project`, `list_projects` |
42
+ | Task lifecycle | `draft_task`, `delegate`, `submit_report`, `accept`, `request_rework`, `mark_failed` |
43
+ | Knowledge | `search_precedents`, `record_artifact`, `record_incident`, `list_artifacts` |
44
+ | Overview | `get_task`, `list_tasks`, `link_tasks` |
45
+ | Cloud (optional) | `connect`, `sync`, `inbox`, `take` |
46
+
22
47
  ## Roles
23
48
 
24
49
  | Stage | Who | Why |
@@ -33,6 +58,22 @@ project repository: state lives in the journal only.
33
58
  A one-to-three-line fix with a diagnosis already in hand is done inline:
34
59
  delegating costs more than the edit itself.
35
60
 
61
+ The roles are **acts, not separate programs**. Any of these configurations
62
+ works, as long as writing the code and accepting it stay separate acts:
63
+
64
+ | Configuration | Orchestrator | Worker |
65
+ |---|---|---|
66
+ | Two CLIs | one agent (e.g. Claude Code) | another agent (e.g. a coding CLI) |
67
+ | One CLI | the main session | a subagent it spawns |
68
+ | Solo | the same single agent | the same single agent |
69
+
70
+ In the **solo** configuration the invariant does not disappear — it becomes a
71
+ guard against self-deception. The rule: *the report and the acceptance are
72
+ separate acts with separate evidence*. Set `REPORTED` when the work seems done;
73
+ `ACCEPTED` only after a fresh, complete test run over the final state of the
74
+ code, a line-by-line diff review against the assignment, and a `verify_commit`.
75
+ "I just wrote this myself" is never evidence.
76
+
36
77
  ## Statuses and the key invariant
37
78
 
38
79
  ```
@@ -88,7 +129,7 @@ creates a new version, the old one stays in history.
88
129
 
89
130
  If the worker must judge something on its own, give it a stopping criterion
90
131
  ("found a consumer → do not delete, report back").
91
- 4. **`delegate`** (plus launching the worker). The worker's prompt carries: the
132
+ 4. **`delegate`** (plus starting the worker — another CLI, a subagent, or, in the solo configuration, simply switching hats). The worker's prompt carries: the
92
133
  `task_id`, the assignment text, and three journal duties — `search_precedents`
93
134
  before starting; progress along the way via `record_artifact` (kind `note`, bound
94
135
  to `task_id`, with a stable `title` such as `progress: <slug>`, which versions