Add opinionated MCP modes for workspace workflows
Introduce explicit repro-fix, inspect, cold-start, and review-eval modes across the MCP server, CLI, and host helpers, with canonical mode-to-tool mappings, narrowed schemas, and mode-specific tool descriptions on top of the existing workspace runtime. Reposition the docs, host onramps, and use-case recipes so named modes are the primary user-facing startup story while the generic no-mode workspace-core path remains the escape hatch, and update the shared smoke runner to validate repro-fix and cold-start through mode-backed servers. Validation: UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache uv run pytest --no-cov tests/test_api.py tests/test_server.py tests/test_host_helpers.py tests/test_public_contract.py tests/test_cli.py tests/test_workspace_use_case_smokes.py; UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make check; UV_OFFLINE=1 UV_CACHE_DIR=.uv-cache make dist-check; real guest-backed make smoke-repro-fix-loop smoke-cold-start-validation outside the sandbox.
This commit is contained in:
parent
dc86d84e96
commit
d0cf6d8f21
33 changed files with 1034 additions and 274 deletions
|
|
@ -62,8 +62,8 @@ pyro run debian:12 -- git --version
|
|||
If you are running from a repo checkout instead, replace `pyro` with
|
||||
`uv run pyro`.
|
||||
|
||||
After that one-shot proof works, the intended next step is `pyro host connect`
|
||||
or `pyro host print-config`.
|
||||
After that one-shot proof works, the intended next step is a named chat mode
|
||||
through `pyro host connect` or `pyro host print-config`.
|
||||
|
||||
## 1. Check the host
|
||||
|
||||
|
|
@ -93,7 +93,7 @@ uvx --from pyro-mcp pyro env list
|
|||
Expected output:
|
||||
|
||||
```bash
|
||||
Catalog version: 4.3.0
|
||||
Catalog version: 4.4.0
|
||||
debian:12 [installed|not installed] Debian 12 environment with Git preinstalled for common agent workflows.
|
||||
debian:12-base [installed|not installed] Minimal Debian 12 environment for shell and core Unix tooling.
|
||||
debian:12-build [installed|not installed] Debian 12 environment with Git and common build tools preinstalled.
|
||||
|
|
@ -144,9 +144,11 @@ deterministic structured result.
|
|||
Use the helper flow first:
|
||||
|
||||
```bash
|
||||
uvx --from pyro-mcp pyro host connect claude-code
|
||||
uvx --from pyro-mcp pyro host connect codex
|
||||
uvx --from pyro-mcp pyro host print-config opencode
|
||||
uvx --from pyro-mcp pyro host connect codex --mode repro-fix
|
||||
uvx --from pyro-mcp pyro host connect codex --mode inspect
|
||||
uvx --from pyro-mcp pyro host connect claude-code --mode cold-start
|
||||
uvx --from pyro-mcp pyro host connect claude-code --mode review-eval
|
||||
uvx --from pyro-mcp pyro host print-config opencode --mode repro-fix
|
||||
```
|
||||
|
||||
If setup drifts later, inspect and repair it with:
|
||||
|
|
@ -158,7 +160,17 @@ uvx --from pyro-mcp pyro host repair codex
|
|||
uvx --from pyro-mcp pyro host repair opencode
|
||||
```
|
||||
|
||||
Bare `pyro mcp serve` now starts `workspace-core`. From a repo root, it also
|
||||
Use a named mode when one workflow already matches the job:
|
||||
|
||||
```bash
|
||||
uvx --from pyro-mcp pyro mcp serve --mode repro-fix
|
||||
uvx --from pyro-mcp pyro mcp serve --mode inspect
|
||||
uvx --from pyro-mcp pyro mcp serve --mode cold-start
|
||||
uvx --from pyro-mcp pyro mcp serve --mode review-eval
|
||||
```
|
||||
|
||||
Use the generic no-mode path when the mode feels too narrow. Bare
|
||||
`pyro mcp serve` still starts `workspace-core`. From a repo root, it also
|
||||
auto-detects the current Git checkout so the first `workspace_create` can omit
|
||||
`seed_path`.
|
||||
|
||||
|
|
@ -185,18 +197,18 @@ Copy-paste host-specific starts:
|
|||
- OpenCode config: [opencode_mcp_config.json](../examples/opencode_mcp_config.json)
|
||||
- Generic MCP fallback: [mcp_client_config.md](../examples/mcp_client_config.md)
|
||||
|
||||
Claude Code:
|
||||
Claude Code cold-start or review-eval:
|
||||
|
||||
```bash
|
||||
pyro host connect claude-code
|
||||
claude mcp add pyro -- uvx --from pyro-mcp pyro mcp serve
|
||||
pyro host connect claude-code --mode cold-start
|
||||
claude mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --mode cold-start
|
||||
```
|
||||
|
||||
Codex:
|
||||
Codex repro-fix or inspect:
|
||||
|
||||
```bash
|
||||
pyro host connect codex
|
||||
codex mcp add pyro -- uvx --from pyro-mcp pyro mcp serve
|
||||
pyro host connect codex --mode repro-fix
|
||||
codex mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --mode repro-fix
|
||||
```
|
||||
|
||||
OpenCode uses the `mcp` / `type: "local"` config shape shown in
|
||||
|
|
@ -205,7 +217,8 @@ OpenCode uses the `mcp` / `type: "local"` config shape shown in
|
|||
If `pyro-mcp` is already installed, replace `uvx --from pyro-mcp pyro` with
|
||||
`pyro` in the same command or config shape.
|
||||
|
||||
Use `--profile workspace-full` only when the chat truly needs shells, services,
|
||||
Use the generic no-mode path when the named mode is too narrow. Move to
|
||||
`--profile workspace-full` only when the chat truly needs shells, services,
|
||||
snapshots, secrets, network policy, or disk tools.
|
||||
|
||||
## 6. Go from zero to hero
|
||||
|
|
@ -215,9 +228,9 @@ The intended user journey is:
|
|||
1. validate the host with `pyro doctor`
|
||||
2. pull `debian:12`
|
||||
3. prove guest execution with `pyro run debian:12 -- git --version`
|
||||
4. connect Claude Code, Codex, or OpenCode with `pyro host connect ...` or
|
||||
`pyro host print-config opencode`, then use raw `pyro mcp serve` only when
|
||||
you need `--project-path` / `--repo-url`
|
||||
4. connect Claude Code, Codex, or OpenCode with one named mode such as
|
||||
`pyro host connect codex --mode repro-fix`, then use raw
|
||||
`pyro mcp serve --mode ...` or the generic no-mode path when needed
|
||||
5. start with one use-case recipe from [use-cases/README.md](use-cases/README.md)
|
||||
6. trust but verify with `make smoke-use-cases`
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue