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
|
|
@ -27,7 +27,7 @@ Networking: tun=yes ip_forward=yes
|
|||
|
||||
```bash
|
||||
$ uvx --from pyro-mcp pyro env list
|
||||
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.
|
||||
|
|
@ -71,7 +71,17 @@ streams, so they may appear in either order in terminals or capture tools. Use
|
|||
|
||||
## 5. Start the MCP server
|
||||
|
||||
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`:
|
||||
|
||||
|
|
@ -96,9 +106,11 @@ $ uvx --from pyro-mcp pyro mcp serve --repo-url https://github.com/example/proje
|
|||
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:
|
||||
|
|
@ -110,19 +122,19 @@ $ uvx --from pyro-mcp pyro host repair codex
|
|||
$ uvx --from pyro-mcp pyro host repair opencode
|
||||
```
|
||||
|
||||
Claude Code:
|
||||
Claude Code cold-start or review-eval:
|
||||
|
||||
```bash
|
||||
$ uvx --from pyro-mcp pyro host connect claude-code
|
||||
$ claude mcp add pyro -- uvx --from pyro-mcp pyro mcp serve
|
||||
$ uvx --from pyro-mcp pyro host connect claude-code --mode cold-start
|
||||
$ claude mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --mode cold-start
|
||||
$ claude mcp list
|
||||
```
|
||||
|
||||
Codex:
|
||||
Codex repro-fix or inspect:
|
||||
|
||||
```bash
|
||||
$ uvx --from pyro-mcp pyro host connect codex
|
||||
$ codex mcp add pyro -- uvx --from pyro-mcp pyro mcp serve
|
||||
$ uvx --from pyro-mcp pyro host connect codex --mode repro-fix
|
||||
$ codex mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --mode repro-fix
|
||||
$ codex mcp list
|
||||
```
|
||||
|
||||
|
|
@ -141,7 +153,7 @@ Other host-specific references:
|
|||
Once the host is connected, move to one of the five recipe docs in
|
||||
[use-cases/README.md](use-cases/README.md).
|
||||
|
||||
The shortest chat-first story is:
|
||||
The shortest chat-first mode and story is:
|
||||
|
||||
- [use-cases/repro-fix-loop.md](use-cases/repro-fix-loop.md)
|
||||
|
||||
|
|
@ -162,8 +174,9 @@ $ uvx --from pyro-mcp pyro workspace export "$WORKSPACE_ID" note.txt --output ./
|
|||
$ uvx --from pyro-mcp pyro workspace delete "$WORKSPACE_ID"
|
||||
```
|
||||
|
||||
Move to `--profile workspace-full` only when the chat really needs shells,
|
||||
services, snapshots, secrets, network policy, or disk tools.
|
||||
Move to the generic no-mode path when the named mode is too narrow. Move to
|
||||
`--profile workspace-full` only when the chat really needs shells, services,
|
||||
snapshots, secrets, network policy, or disk tools.
|
||||
|
||||
## 8. Trust the smoke pack
|
||||
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,29 @@ path is still being shaped.
|
|||
Use this page after you have already validated the host and guest execution
|
||||
through [install.md](install.md) or [first-run.md](first-run.md).
|
||||
|
||||
## Recommended Default
|
||||
## Recommended Modes
|
||||
|
||||
Use a named mode when one workflow already matches the job:
|
||||
|
||||
```bash
|
||||
pyro host connect codex --mode repro-fix
|
||||
pyro host connect codex --mode inspect
|
||||
pyro host connect claude-code --mode cold-start
|
||||
pyro host connect claude-code --mode review-eval
|
||||
```
|
||||
|
||||
The mode-backed raw server forms are:
|
||||
|
||||
```bash
|
||||
pyro mcp serve --mode repro-fix
|
||||
pyro mcp serve --mode inspect
|
||||
pyro mcp serve --mode cold-start
|
||||
pyro mcp serve --mode review-eval
|
||||
```
|
||||
|
||||
Use the generic no-mode path only when the named mode feels too narrow.
|
||||
|
||||
## Generic Default
|
||||
|
||||
Bare `pyro mcp serve` starts `workspace-core`. From a repo root, it also
|
||||
auto-detects the current Git checkout so the first `workspace_create` can omit
|
||||
|
|
@ -43,22 +65,25 @@ snapshots, secrets, network policy, or disk tools.
|
|||
Use the helper flow before the raw host CLI commands:
|
||||
|
||||
```bash
|
||||
pyro host connect claude-code
|
||||
pyro host connect codex
|
||||
pyro host print-config opencode
|
||||
pyro host connect codex --mode repro-fix
|
||||
pyro host connect codex --mode inspect
|
||||
pyro host connect claude-code --mode cold-start
|
||||
pyro host connect claude-code --mode review-eval
|
||||
pyro host print-config opencode --mode repro-fix
|
||||
pyro host doctor
|
||||
pyro host repair opencode
|
||||
```
|
||||
|
||||
These helpers wrap the same `pyro mcp serve` entrypoint, preserve the current
|
||||
`workspace-core` default, and make it obvious how to repair drift later.
|
||||
These helpers wrap the same `pyro mcp serve` entrypoint, make named modes the
|
||||
first user-facing story, and still leave the generic no-mode path available
|
||||
when a mode is too narrow.
|
||||
|
||||
## Claude Code
|
||||
|
||||
Preferred:
|
||||
|
||||
```bash
|
||||
pyro host connect claude-code
|
||||
pyro host connect claude-code --mode cold-start
|
||||
```
|
||||
|
||||
Repair:
|
||||
|
|
@ -70,14 +95,14 @@ pyro host repair claude-code
|
|||
Package without install:
|
||||
|
||||
```bash
|
||||
claude mcp add pyro -- uvx --from pyro-mcp pyro mcp serve
|
||||
claude mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --mode cold-start
|
||||
claude mcp list
|
||||
```
|
||||
|
||||
If Claude Code launches the server from an unexpected cwd, use:
|
||||
|
||||
```bash
|
||||
claude mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --project-path /abs/path/to/repo
|
||||
claude mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --mode cold-start --project-path /abs/path/to/repo
|
||||
```
|
||||
|
||||
Already installed:
|
||||
|
|
@ -96,7 +121,7 @@ Reference:
|
|||
Preferred:
|
||||
|
||||
```bash
|
||||
pyro host connect codex
|
||||
pyro host connect codex --mode repro-fix
|
||||
```
|
||||
|
||||
Repair:
|
||||
|
|
@ -108,14 +133,14 @@ pyro host repair codex
|
|||
Package without install:
|
||||
|
||||
```bash
|
||||
codex mcp add pyro -- uvx --from pyro-mcp pyro mcp serve
|
||||
codex mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --mode repro-fix
|
||||
codex mcp list
|
||||
```
|
||||
|
||||
If Codex launches the server from an unexpected cwd, use:
|
||||
|
||||
```bash
|
||||
codex mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --project-path /abs/path/to/repo
|
||||
codex mcp add pyro -- uvx --from pyro-mcp pyro mcp serve --mode repro-fix --project-path /abs/path/to/repo
|
||||
```
|
||||
|
||||
Already installed:
|
||||
|
|
@ -150,7 +175,7 @@ Minimal `opencode.json` snippet:
|
|||
"pyro": {
|
||||
"type": "local",
|
||||
"enabled": true,
|
||||
"command": ["uvx", "--from", "pyro-mcp", "pyro", "mcp", "serve"]
|
||||
"command": ["uvx", "--from", "pyro-mcp", "pyro", "mcp", "serve", "--mode", "repro-fix"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -165,8 +190,9 @@ array.
|
|||
|
||||
## Generic MCP Fallback
|
||||
|
||||
Use this only when the host expects a plain `mcpServers` JSON config and does
|
||||
not already have a dedicated example in the repo:
|
||||
Use this only when the host expects a plain `mcpServers` JSON config, when the
|
||||
named modes are too narrow, and when it does not already have a dedicated
|
||||
example in the repo:
|
||||
|
||||
- [mcp_client_config.md](../examples/mcp_client_config.md)
|
||||
|
||||
|
|
|
|||
|
|
@ -75,10 +75,15 @@ pyro mcp serve
|
|||
|
||||
What to expect:
|
||||
|
||||
- bare `pyro mcp serve` starts `workspace-core`
|
||||
- named modes are now the first chat-host story:
|
||||
- `pyro mcp serve --mode repro-fix`
|
||||
- `pyro mcp serve --mode inspect`
|
||||
- `pyro mcp serve --mode cold-start`
|
||||
- `pyro mcp serve --mode review-eval`
|
||||
- bare `pyro mcp serve` remains the generic no-mode path and starts
|
||||
`workspace-core`
|
||||
- from a repo root, bare `pyro mcp serve` also auto-detects the current Git
|
||||
checkout so `workspace_create` can omit `seed_path`
|
||||
- `workspace-core` is the default product path for chat hosts
|
||||
- `pyro mcp serve --profile workspace-full` explicitly opts into the larger
|
||||
tool surface
|
||||
- `pyro mcp serve --profile vm-run` exposes the smallest one-shot-only surface
|
||||
|
|
@ -105,7 +110,21 @@ The chat-host bootstrap helper surface is:
|
|||
These helpers wrap the same `pyro mcp serve` entrypoint and are the preferred
|
||||
setup and repair path for supported hosts.
|
||||
|
||||
## Chat-Facing Workspace Contract
|
||||
## Named Modes
|
||||
|
||||
The supported named modes are:
|
||||
|
||||
| Mode | Intended workflow | Key tools |
|
||||
| --- | --- | --- |
|
||||
| `repro-fix` | reproduce, patch, rerun, diff, export, reset | file ops, patch, diff, export, reset, summary |
|
||||
| `inspect` | inspect suspicious or unfamiliar code with the smallest persistent surface | file list/read, exec, export, summary |
|
||||
| `cold-start` | validate a fresh repo and keep services alive long enough to prove readiness | exec, export, reset, summary, service tools |
|
||||
| `review-eval` | interactive review, checkpointing, shell-driven evaluation, and export | shell tools, snapshot tools, diff/export, summary |
|
||||
|
||||
Use the generic no-mode path when one of those named modes feels too narrow for
|
||||
the job.
|
||||
|
||||
## Generic Workspace Contract
|
||||
|
||||
`workspace-core` is the normal chat path. It exposes:
|
||||
|
||||
|
|
@ -151,13 +170,13 @@ Move to `workspace-full` only when the chat truly needs:
|
|||
|
||||
The documented product workflows are:
|
||||
|
||||
| Workflow | Recommended profile | Doc |
|
||||
| Workflow | Recommended mode | Doc |
|
||||
| --- | --- | --- |
|
||||
| Cold-start repo validation | `workspace-full` | [use-cases/cold-start-repo-validation.md](use-cases/cold-start-repo-validation.md) |
|
||||
| Repro plus fix loop | `workspace-core` | [use-cases/repro-fix-loop.md](use-cases/repro-fix-loop.md) |
|
||||
| Parallel isolated workspaces | `workspace-core` | [use-cases/parallel-workspaces.md](use-cases/parallel-workspaces.md) |
|
||||
| Unsafe or untrusted code inspection | `workspace-core` | [use-cases/untrusted-inspection.md](use-cases/untrusted-inspection.md) |
|
||||
| Review and evaluation workflows | `workspace-full` | [use-cases/review-eval-workflows.md](use-cases/review-eval-workflows.md) |
|
||||
| Cold-start repo validation | `cold-start` | [use-cases/cold-start-repo-validation.md](use-cases/cold-start-repo-validation.md) |
|
||||
| Repro plus fix loop | `repro-fix` | [use-cases/repro-fix-loop.md](use-cases/repro-fix-loop.md) |
|
||||
| Parallel isolated workspaces | `repro-fix` | [use-cases/parallel-workspaces.md](use-cases/parallel-workspaces.md) |
|
||||
| Unsafe or untrusted code inspection | `inspect` | [use-cases/untrusted-inspection.md](use-cases/untrusted-inspection.md) |
|
||||
| Review and evaluation workflows | `review-eval` | [use-cases/review-eval-workflows.md](use-cases/review-eval-workflows.md) |
|
||||
|
||||
Treat this smoke pack as the trustworthy guest-backed verification path for the
|
||||
advertised product:
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ goal:
|
|||
make the core agent-workspace use cases feel trivial from a chat-driven LLM
|
||||
interface.
|
||||
|
||||
Current baseline is `4.3.0`:
|
||||
Current baseline is `4.4.0`:
|
||||
|
||||
- `pyro mcp serve` is now the default product entrypoint
|
||||
- `workspace-core` is now the default MCP profile
|
||||
|
|
@ -82,7 +82,7 @@ capability gaps:
|
|||
12. [`4.1.0` Project-Aware Chat Startup](llm-chat-ergonomics/4.1.0-project-aware-chat-startup.md) - Done
|
||||
13. [`4.2.0` Host Bootstrap And Repair](llm-chat-ergonomics/4.2.0-host-bootstrap-and-repair.md) - Done
|
||||
14. [`4.3.0` Reviewable Agent Output](llm-chat-ergonomics/4.3.0-reviewable-agent-output.md) - Done
|
||||
15. [`4.4.0` Opinionated Use-Case Modes](llm-chat-ergonomics/4.4.0-opinionated-use-case-modes.md) - Planned
|
||||
15. [`4.4.0` Opinionated Use-Case Modes](llm-chat-ergonomics/4.4.0-opinionated-use-case-modes.md) - Done
|
||||
16. [`4.5.0` Faster Daily Loops](llm-chat-ergonomics/4.5.0-faster-daily-loops.md) - Planned
|
||||
|
||||
Completed so far:
|
||||
|
|
@ -123,10 +123,12 @@ Completed so far:
|
|||
- `4.3.0` adds a concise workspace review surface so users can inspect what the
|
||||
agent changed and ran since the last reset without reconstructing the
|
||||
session from several lower-level views by hand.
|
||||
- `4.4.0` adds named use-case modes so chat hosts can start from `repro-fix`,
|
||||
`inspect`, `cold-start`, or `review-eval` instead of choosing from the full
|
||||
generic workspace surface first.
|
||||
|
||||
Planned next:
|
||||
|
||||
- [`4.4.0` Opinionated Use-Case Modes](llm-chat-ergonomics/4.4.0-opinionated-use-case-modes.md)
|
||||
- [`4.5.0` Faster Daily Loops](llm-chat-ergonomics/4.5.0-faster-daily-loops.md)
|
||||
|
||||
## Expected Outcome
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# `4.4.0` Opinionated Use-Case Modes
|
||||
|
||||
Status: Planned
|
||||
Status: Done
|
||||
|
||||
## Goal
|
||||
|
||||
|
|
|
|||
|
|
@ -12,13 +12,13 @@ make smoke-use-cases
|
|||
|
||||
Recipe matrix:
|
||||
|
||||
| Use case | Recommended profile | Smoke target | Recipe |
|
||||
| Use case | Recommended mode | Smoke target | Recipe |
|
||||
| --- | --- | --- | --- |
|
||||
| Cold-start repo validation | `workspace-full` | `make smoke-cold-start-validation` | [cold-start-repo-validation.md](cold-start-repo-validation.md) |
|
||||
| Repro plus fix loop | `workspace-core` | `make smoke-repro-fix-loop` | [repro-fix-loop.md](repro-fix-loop.md) |
|
||||
| Parallel isolated workspaces | `workspace-core` | `make smoke-parallel-workspaces` | [parallel-workspaces.md](parallel-workspaces.md) |
|
||||
| Unsafe or untrusted code inspection | `workspace-core` | `make smoke-untrusted-inspection` | [untrusted-inspection.md](untrusted-inspection.md) |
|
||||
| Review and evaluation workflows | `workspace-full` | `make smoke-review-eval` | [review-eval-workflows.md](review-eval-workflows.md) |
|
||||
| Cold-start repo validation | `cold-start` | `make smoke-cold-start-validation` | [cold-start-repo-validation.md](cold-start-repo-validation.md) |
|
||||
| Repro plus fix loop | `repro-fix` | `make smoke-repro-fix-loop` | [repro-fix-loop.md](repro-fix-loop.md) |
|
||||
| Parallel isolated workspaces | `repro-fix` | `make smoke-parallel-workspaces` | [parallel-workspaces.md](parallel-workspaces.md) |
|
||||
| Unsafe or untrusted code inspection | `inspect` | `make smoke-untrusted-inspection` | [untrusted-inspection.md](untrusted-inspection.md) |
|
||||
| Review and evaluation workflows | `review-eval` | `make smoke-review-eval` | [review-eval-workflows.md](review-eval-workflows.md) |
|
||||
|
||||
All five recipes use the same real Firecracker-backed smoke runner:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
# Cold-Start Repo Validation
|
||||
|
||||
Recommended profile: `workspace-full`
|
||||
Recommended mode: `cold-start`
|
||||
|
||||
Recommended startup:
|
||||
|
||||
```bash
|
||||
pyro host connect claude-code --mode cold-start
|
||||
```
|
||||
|
||||
Smoke target:
|
||||
|
||||
|
|
@ -21,6 +27,10 @@ Chat-host recipe:
|
|||
5. Export the validation report back to the host.
|
||||
6. Delete the workspace when the evaluation is done.
|
||||
|
||||
If the named mode feels too narrow, fall back to the generic no-mode path and
|
||||
then opt into `--profile workspace-full` only when you truly need the larger
|
||||
advanced surface.
|
||||
|
||||
This recipe is intentionally guest-local and deterministic. It proves startup,
|
||||
service readiness, validation, and host-out report capture without depending on
|
||||
external networks or private registries.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
# Parallel Isolated Workspaces
|
||||
|
||||
Recommended profile: `workspace-core`
|
||||
Recommended mode: `repro-fix`
|
||||
|
||||
Recommended startup:
|
||||
|
||||
```bash
|
||||
pyro host connect codex --mode repro-fix
|
||||
```
|
||||
|
||||
Smoke target:
|
||||
|
||||
|
|
@ -22,4 +28,5 @@ Chat-host recipe:
|
|||
|
||||
The important proof here is operational, not syntactic: names, labels, list
|
||||
ordering, and file contents stay isolated even when multiple workspaces are
|
||||
active at the same time.
|
||||
active at the same time. Parallel work still means “open another workspace in
|
||||
the same mode,” not “pick a special parallel-work mode.”
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
# Repro Plus Fix Loop
|
||||
|
||||
Recommended profile: `workspace-core`
|
||||
Recommended mode: `repro-fix`
|
||||
|
||||
Recommended startup:
|
||||
|
||||
```bash
|
||||
pyro host connect codex --mode repro-fix
|
||||
```
|
||||
|
||||
Smoke target:
|
||||
|
||||
|
|
@ -25,5 +31,8 @@ Chat-host recipe:
|
|||
7. Diff and export the changed result.
|
||||
8. Reset to baseline and delete the workspace.
|
||||
|
||||
This is the main `workspace-core` story: model-native file ops, repeatable exec,
|
||||
If the mode feels too narrow for the job, fall back to the generic bare
|
||||
`pyro mcp serve` path.
|
||||
|
||||
This is the main `repro-fix` story: model-native file ops, repeatable exec,
|
||||
structured diff, explicit export, and reset-over-repair.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
# Review And Evaluation Workflows
|
||||
|
||||
Recommended profile: `workspace-full`
|
||||
Recommended mode: `review-eval`
|
||||
|
||||
Recommended startup:
|
||||
|
||||
```bash
|
||||
pyro host connect claude-code --mode review-eval
|
||||
```
|
||||
|
||||
Smoke target:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
# Unsafe Or Untrusted Code Inspection
|
||||
|
||||
Recommended profile: `workspace-core`
|
||||
Recommended mode: `inspect`
|
||||
|
||||
Recommended startup:
|
||||
|
||||
```bash
|
||||
pyro host connect codex --mode inspect
|
||||
```
|
||||
|
||||
Smoke target:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue