docs(m1): add a step-by-step walkthrough for running the Cowork probe
Addendum to plan Step 1, which stays open: the four bullets are still `ubesvart` and the step's Verify still exits 1. Nothing measured changed. The previous instruction was one sentence -- "upload via Customize -> Plugins, run probe-versjon, check whether probe-tools appears" -- which assumed the reader already knew where each of those lives and what counts as an answer. The walkthrough now lives in the file the answers get written into, rather than in a chat message that scrolls away. Every UI path and caveat is sourced from research/03, not invented: the install-from-file and drag-into-chat routes, connectors appearing under the plugin's connectors page rather than as skills, the stale-cache issue (#69020) that makes the 0.0.1 version check load-bearing, and the upload-does-not- survive-relaunch report (#65426). Two distinctions are called out because getting them wrong would produce a confident wrong answer: - `- python3:` measures the SANDBOX interpreter, not the host's. Cowork runs shell commands in the VM or in the cloud. It is still the right thing to measure, but it says nothing about the virtualenv Step 2 built. - `- Host-MCP:` does run on the host, since local MCP servers were moved out of the sandbox in May 2026. A `ja` there is what decision 7 rests on, so it requires both that the connector is listed and that probe_ping answers -- "present but mute" is recorded as nei with a note, because absent and mute point at different causes. Section A is ordered first on purpose: cloud sessions are documented not to run local MCP servers, so `sky` plus a `ja` on Host-MCP would contradict the documentation and is a more interesting result than either answer alone. The verify command in section F was executed as written from the rendered document, not just pasted in: exit 1, as it must be while the probe is open. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
1d631b7c94
commit
96af9526c1
1 changed files with 109 additions and 2 deletions
|
|
@ -89,8 +89,115 @@ Never `zip -r` over the repository root. A recursive archive of the repo would
|
||||||
ship `.git`, `STATE.md`, `.claude/` and the virtualenv into an uploaded plugin.
|
ship `.git`, `STATE.md`, `.claude/` and the virtualenv into an uploaded plugin.
|
||||||
The include list above names the four files and can carry nothing else.
|
The include list above names the four files and can carry nothing else.
|
||||||
|
|
||||||
Then upload `/tmp/jobbsok-probe.plugin` through Customize -> Plugins, run the
|
## Running the probe, step by step
|
||||||
`probe-versjon` skill, and check whether `probe-tools` appears as a connector.
|
|
||||||
|
Everything below happens in Claude Cowork on this Mac, not in Claude Code.
|
||||||
|
Where a UI path is named it comes from Anthropic's own documentation
|
||||||
|
(`research/03-cowork-plugin-compatibility.md`, dimensions 1 and 6); where the
|
||||||
|
wording in the app turns out to differ, trust the app and note what you saw --
|
||||||
|
a changed menu label is itself a finding worth recording.
|
||||||
|
|
||||||
|
### A. Read the session mode -> answers `- Sesjonsmodus:`
|
||||||
|
|
||||||
|
Open Cowork and find its session-location setting (Cowork -> Settings). You are
|
||||||
|
looking for whether sessions run **on this machine** or **in the cloud**.
|
||||||
|
|
||||||
|
- On this machine: shell commands execute in a dedicated local Linux VM
|
||||||
|
(Apple Virtualization.framework), which needs working hardware
|
||||||
|
virtualization; Claude runs a readiness check for exactly that.
|
||||||
|
- In the cloud: code runs on Anthropic's servers. This has been the default
|
||||||
|
since 2026-07-07, so do not assume local just because the Mac is capable.
|
||||||
|
|
||||||
|
Write `lokal VM` or `sky`.
|
||||||
|
|
||||||
|
**Do this one first**, because it very likely decides question B below:
|
||||||
|
Anthropic's documentation states that local MCP servers do not run in cloud
|
||||||
|
sessions. If you answer `sky` here and `ja` to `- Host-MCP:`, that combination
|
||||||
|
contradicts the documentation and is a much more interesting result than either
|
||||||
|
answer alone -- say so in the Measured column.
|
||||||
|
|
||||||
|
### B. Install the probe plugin (needed for C, D and E)
|
||||||
|
|
||||||
|
Two documented routes; either is fine.
|
||||||
|
|
||||||
|
1. Customize -> Plugins, choose the install-from-file / upload option, and pick
|
||||||
|
`/tmp/jobbsok-probe.plugin`.
|
||||||
|
2. Or drag the `.plugin` file into the Cowork chat. Anthropic's own plugin
|
||||||
|
packaging skill says a `.plugin` file appears in the chat as a rich preview
|
||||||
|
with a button to accept it.
|
||||||
|
|
||||||
|
Known wrinkle, not your mistake if it happens: uploaded plugins have been
|
||||||
|
reported not to survive an app relaunch (claude-code#65426, June 2026). If the
|
||||||
|
plugin disappears later, re-upload it rather than concluding anything about
|
||||||
|
the probe.
|
||||||
|
|
||||||
|
### C. Confirm you are testing the build you just uploaded
|
||||||
|
|
||||||
|
In the Cowork chat, type `/` (or `+`) to list available skills, and run
|
||||||
|
`probe-versjon`.
|
||||||
|
|
||||||
|
The first thing it reports is the manifest version. It must be **`0.0.1`**.
|
||||||
|
|
||||||
|
If it reports anything else, Cowork served a cached build rather than the one
|
||||||
|
you uploaded (claude-code#69020, open) -- and then every answer below is about
|
||||||
|
some *other* build. Uninstall, re-upload, and re-run before continuing. This
|
||||||
|
check exists because a stale cache produces confident, wrong measurements.
|
||||||
|
|
||||||
|
### D. Read the skill's output -> answers `- python3:` and `- CLAUDE_PLUGIN_ROOT:`
|
||||||
|
|
||||||
|
Both come from that same `probe-versjon` run.
|
||||||
|
|
||||||
|
**`- python3:`** -- did the skill succeed in running
|
||||||
|
`python3 -c 'import sys; print(sys.version)'`, and what did it print?
|
||||||
|
Write `ja` followed by the version, or `nei` followed by the error text.
|
||||||
|
|
||||||
|
One thing to be precise about, because it changes what the answer means: in
|
||||||
|
Cowork, shell commands run inside the sandbox (the local VM, or the cloud
|
||||||
|
environment), **not on your Mac**. So this measures the sandbox's `python3`,
|
||||||
|
not the host's. That is the right thing to measure here -- it tells us whether
|
||||||
|
a skill-invoked script can run in Cowork at all -- but it is not evidence about
|
||||||
|
the interpreter that `scripts/bootstrap.sh` just built a virtualenv for.
|
||||||
|
|
||||||
|
**`- CLAUDE_PLUGIN_ROOT:`** -- did the skill print a resolved absolute path, or
|
||||||
|
the literal unexpanded string `${CLAUDE_PLUGIN_ROOT}`? Write `ja` or `nei`.
|
||||||
|
An absolute path is the pass; anything literal or empty is `nei`.
|
||||||
|
|
||||||
|
### E. Look for the connector -> answers `- Host-MCP:`
|
||||||
|
|
||||||
|
This is the load-bearing one: it is the entire Cowork half of operator
|
||||||
|
decision 7, and the reason this probe is the first step of the build.
|
||||||
|
|
||||||
|
A server declared in `.mcp.json` does **not** show up as a skill. In Cowork it
|
||||||
|
appears as a **Connector**. Two checks, and both must hold:
|
||||||
|
|
||||||
|
1. **Is it listed?** Customize -> Plugins, open `jobbsok-probe`, and look at
|
||||||
|
its connectors page. Is `probe-tools` there?
|
||||||
|
2. **Does it answer?** In the chat, ask Claude to call the `probe_ping` tool.
|
||||||
|
It should return JSON containing `python_version` and `python_executable`.
|
||||||
|
|
||||||
|
Write `ja` only if both hold. If `probe-tools` is listed but never answers,
|
||||||
|
write `nei` and note that it appeared but did not respond -- a connector that
|
||||||
|
does not respond is not a working host-side server, and the difference between
|
||||||
|
"absent" and "present but mute" points at different causes.
|
||||||
|
|
||||||
|
Unlike D, this one *does* run on your Mac: Anthropic moved local MCP servers
|
||||||
|
out of the sandbox in May 2026 and runs them as ordinary host software. So a
|
||||||
|
`ja` here means the host Python, the host filesystem and `~/jobbsok-workspace`
|
||||||
|
are all reachable from Cowork -- which is what decision 7 is built on.
|
||||||
|
|
||||||
|
### F. Record and verify
|
||||||
|
|
||||||
|
Edit the four bullets under "Results" above, replacing `ubesvart`, and fill in
|
||||||
|
the Measured column with today's date. Then, from the repository root:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
test "$(grep -cE '^- (Sesjonsmodus|Host-MCP|python3|CLAUDE_PLUGIN_ROOT): +(lokal VM|sky|ja|nei)\b' docs/cowork-probe.md)" = 4
|
||||||
|
```
|
||||||
|
|
||||||
|
Exit 0 means the probe is complete and plan Step 1 can be closed. Exit 1 means
|
||||||
|
at least one bullet is still unanswered or was written in a form the grep does
|
||||||
|
not recognise -- check that the answer follows the label directly, with a
|
||||||
|
space, and starts with one of the four allowed words.
|
||||||
|
|
||||||
## Degradation branch
|
## Degradation branch
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue