Use Zeroshot to prepare, run, observe
Use Zeroshot to prepare, run, observe, or troubleshoot explicit multi-agent software work locally or on Zeroshot Platform. Apply when the user names Zeroshot, including 'zeroshot this' or 'zeroshot it' (this orchestrator, not one-shot…
--- name: zeroshot description: Use Zeroshot to prepare, run, observe, or troubleshoot explicit multi-agent software work locally or on Zeroshot Platform. Apply when the user names Zeroshot, including 'zeroshot this' or 'zeroshot it' (this orchestrator, not one-shot prompting), or asks about its CLI; do not route ordinary local work into Zeroshot without that intent. --- # Zeroshot Zeroshot executes an explicit graph of software agents. Workers make changes; independent verifiers judge the evidence, and the graph decides when to repair or deliver. A successful run means the graph reached its declared outcome; it does not always mean a pull request was created or merged. Use the installed CLI help as the exact contract when commands differ from this overview. ## Shape the task Before submitting, inspect the request, repository guidance, existing issue, and enough code to know: - the desired behavior and observable success;
Overview
Zeroshot executes an explicit graph of software agents. Workers make changes; independent verifiers judge the evidence, and the graph decides when to repair or deliver. A successful run means the graph reached its declared outcome; it does not always mean a pull request was created or merged.
Manual install (npx, ZIP)
npx skills add the-open-engine/zeroshot --skill zeroshot -g -a claude-codenpx degit the-open-engine/zeroshot/npm/zeroshot/skills/zeroshot#main ~/.claude/skills/zeroshotConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md15.0 KB
Read SKILL.md here
Show the full text286 lines
Zeroshot
Zeroshot executes an explicit graph of software agents. Workers make changes; independent verifiers judge the evidence, and the graph decides when to repair or deliver. A successful run means the graph reached its declared outcome; it does not always mean a pull request was created or merged.
Use the installed CLI help as the exact contract when commands differ from this overview.
Shape the task
Before submitting, inspect the request, repository guidance, existing issue, and enough code to know:
- the desired behavior and observable success;
- material constraints and behavior that must remain unchanged;
- whether a separate worker could implement it and a verifier could judge it.
Fill gaps from available evidence. Choose routine technical details without interrogating the user. If an unresolved product choice would materially change the outcome, propose the narrowest supported interpretation and ask one focused question. Do not submit while that decision remains unanswered. Suggest separate tasks only for independently useful outcomes or real prerequisites.
When the work is vague or large enough to need agreed acceptance criteria, suggest planning it first
with the separate zeroshot-plan skill and let the user choose; do not start planning unasked. When
a plan file exists (.zeroshot/plans/<id>.md), use its Goal, Context, Acceptance criteria,
Constraints, Decided approach and Decisions as the task. Criteria marked Check (manual): need a
person or another environment: tell the run to list them rather than verify them. If the plan lists
depends_on, confirm with the user that those plans are built and merged before starting it, and
include any constraints they share that the plan does not repeat.
Never start a Zeroshot run merely because the skill is available. The user must ask to use Zeroshot. A worker already executing inside a Zeroshot run should perform its assigned work directly, not start another run. A failed Platform run does not authorize silently implementing the task locally.
Choose the target
- Local execution omits
--target.--cwd DIRselects a folder (default: invoking folder); Git worktrees use their root. File arguments stay relative to the invoking folder. Runs without Git delivery need no repository. Keep workspace and active Zeroshot state disjoint; use an externalZEROSHOT_STATE_DIRwhen necessary. - Zeroshot Platform is built in. Sign in once with
zeroshot target login platform, then use--target platformexplicitly on Platform commands. Platform setup (organizations, GitHub App, connections) is documented at https://app.zeroshot.sh/docs. - Do not add or set up the built-in Platform target. Named targets store endpoints and login identity, not repository configuration.
Reuse profiles and connections
For a guided interview to design or revise a graph, use the zeroshot-graph-design skill.
Prefer a saved profile over inventing a graph or runtime. Inspect its input, runtime, and delivery behavior before constructing a run. Local profiles need no login; a local default profile applies when a run names no profile, graph, or runtime:
zeroshot profile list
zeroshot profile show NAME
zeroshot profile list --target platform --scope user
zeroshot profile list --target platform --scope org
zeroshot profile show NAME --target platform --scope org
zeroshot connection list --target platform --scope user
zeroshot connection list --target platform --scope org
Inspect saved profiles to see their delivery behavior. New software-change templates default to
pull-request delivery. Use --delivery none for local-only changes, --push for branch publication,
or --ship when merge delivery is intended. Custom graphs and saved profiles own their delivery.
Run locally without a profile
When no saved profile fits and the user has not asked for Platform, run the built-in
software-change graph locally. Its default publishes a PR. For local-only work, use
--delivery none as shown below; that mode needs only the harness's native login.
The worker edits the selected folder in place. Stop if it has uncommitted changes, and start from a fresh branch when the folder is a Git repository.
Write the shaped task to an input file outside the workspace, for example
{"task": "Add JSON output to the status command and cover it with focused tests."}.Write a uniform runtime file for the harness you are running in, with your own model identifier unless the user names another. Local Claude Code and Codex lanes reuse their native login:
{ "harness": "claude", "provider": "anthropic", "model": "MODEL_ID", "effort": "high" }{ "harness": "codex", "provider": "openai", "model": "MODEL_ID", "effort": "high" }Validate, then submit the same command without
--validate-only. This example keeps the work local; omit--delivery nonefor PR delivery, or use--shipwhen the user asks to merge:zeroshot run --title "TASK" --template software-change --delivery none \ --input INPUT.json --uniform-runtime-config RUNTIME.json --validate-onlyFollow the run with
zeroshot status RUN_IDandzeroshot logs RUN_ID. The user can watch it inzeroshot uiathttp://127.0.0.1:4173/ui/.Report what each reviewer rejected and what each repair changed, not only the final state. If the run exposed a gap the built-in reviewers do not cover, name one reviewer worth adding.
Offer to save the setup as the default, so later requests need no files:
zeroshot profile set NAME --template software-change --delivery none \ --uniform-runtime-config RUNTIME.json --default
Review an issue or pull request
The pr-review and issue-review templates post reports as comments by default.
PR review classifies whether reproduction is necessary, runs required full-stack checks (including
a browser for UI changes), then checks the diff and linked issue coverage. Its final report is concise. PR review uses comment delivery; issue review also supports --delivery none for a report without publication. Supply an issue or PR URL through --task-from, which resolves
title/body and pins source before execution:
zeroshot run --title "Review PR 123" --template pr-review \
--task-from https://github.com/OWNER/REPOSITORY/pull/123 \
--uniform-runtime-config RUNTIME.json --cwd /path/to/pr-checkout \
--submission-key review-pr-123
Use issue-review for an issue URL; its basic issue workflow is separate. PR intake captures linked
issue text before execution. Local reviews require clean tracked files and, for a PR, a checkout already at its head. Comment
publication uses the declared github.GH_TOKEN connection. Use --target platform for hosted source
preparation and credential resolution. With a saved review profile, use --profile instead of the
template/runtime/delivery flags. Validate first with --validate-only; retry uncertain submission
using the same key and configuration. A successful review may report defects; success confirms
publication. Ordinary --input FILE passes the graph's JSON input unchanged and excludes
--task-from. Worker nodes have no mandatory task field.
Adapt the graph
When the user wants to change what gets checked, start from the built-in graph rather than writing one from scratch:
Export it with
zeroshot template show software-change > graph.json.Make the change the user asked for: add a reviewer with one job (security, an end-to-end test that boots the app, design), or change the loop's
maxIterations. Different models or harnesses per node need a full--runtime-configplan instead of the uniform file. The review loop guide shows the node shapes and a cross-vendor plan.Validate by replacing
--template software-changewith--graph graph.jsonin the run command above, then run it.Save it so later requests use it, with
--runtime-config PLAN.jsonin place of the uniform file when nodes use different models or harnesses:zeroshot profile set NAME --graph graph.json \ --uniform-runtime-config RUNTIME.json --defaultWhen runs keep failing the same way, or a problem gets past the reviewers, suggest the reviewer that would catch it and ask before changing the graph.
Prepare the execution environment
Environments belong to a run, independently of its profile. A local:NAME profile can run on a
Docker target with its own environment. For Docker or Platform, pass
--environment environment.json with a flat definition such as:
{
"setup": "apt-get update && apt-get install -y jq",
"startup": "npm ci",
"variables": { "CI": "true" }
}
Platform resolves an omitted environment from the repository's User default, then Org default, then
Base. --no-environment bypasses defaults. Choose saved environments through Platform's UI or API;
the CLI accepts a concrete JSON file. Local runs use the invoking machine and reject setup/startup
and hook connections.
Setup runs as root before checkout or restoration, so it cannot read repository files. Startup runs as the workspace user in the checkout; workers and reviewers share its dependencies and services. Both hooks rerun on resume, so startup must tolerate existing workspace files. Checkpoints restore files and graph progress, not running services or agent conversations.
Put shared executables in $ZEROSHOT_TOOLS/bin and project dependencies in the workspace.
Snapshots include ignored directories such as target/ and node_modules/. Without cloning or
reflinks, allow space for another full workspace copy during staging, plus checkpoint storage.
Before large or parallel runs on tight disks, warn users and suggest cleaning build artifacts or
keeping generated directories outside the workspace where practical.
Shell exports do not persist between hooks or agents; use variables for nonsecret values and
connections for required secret field names. Hook connections and node connections are separate.
On a direct Docker target, root setup changes the container shared by its runs.
Preparation failures stop before agent execution without spending repair attempts. Inspect the failed phase and logs; fix the environment instead of requesting unrelated code repairs. Resume reuses the accepted definition, so an edited environment requires a new run. For a pinned Node installation and service/Docker conventions, see the environment guide.
Expose a profile over ACP
Start zeroshot acp only when the user explicitly asks to expose a Zeroshot graph as an ACP agent.
The experimental endpoint is local-only and owns stdio until its client disconnects:
zeroshot acp --profile local:NAME
Check the profile first. It must accept exactly one required string named task; every success node
must return exactly one required string named response. The runtime must use a registered local harness for
every node, and every executable node must have an agent binding with sessionScope: node_instance.
Maps, delivery, runtime connections, MCP servers, and session reload are unsupported.
Each ACP prompt is a separate durable local run. The outer ACP session keeps the workspace and
node provider sessions alive across prompts. Inspect the returned run ID with zeroshot status or
zeroshot logs; zeroshot ui includes the run in local history.
Validate and submit
Put profile input in a JSON file matching the profile's declared schema. Use a stable, non-secret submission key for safe retries:
zeroshot run --title "TASK" --profile org:NAME --input input.json \
--target platform --submission-key KEY --validate-only
zeroshot run --title "TASK" --profile org:NAME --input input.json \
--target platform --submission-key KEY
--validate-only materializes and validates without starting a run. A named Platform profile must
still be fetched from the target first, so this command requires Platform access. It does not prove
connection availability.
For named targets, --cwd selects the client Git checkout. Zeroshot prefers its attached upstream,
then a unique eligible HTTPS/SSH remote. Docker and Platform still require an exact committed Git
source. Detached worktrees require repository and branch overrides. --repository accepts GitHub
owner/name or a credential-free HTTPS/SSH clone URL. Override source only when needed:
--target platform --repository OWNER/REPOSITORY --branch BRANCH --revision SHA
Git push uses shared transport and needs no GitHub API. PR and merge require a registered forge;
GitHub is maintained today. --source-connection KEY authorizes source-only HTTPS
(GIT_USERNAME, GIT_PASSWORD) or pinned SSH (GIT_SSH_PRIVATE_KEY, GIT_SSH_KNOWN_HOSTS)
credentials. Generic forms require the target's openengine.git-transport/v1 capability.
Named targets receive the remote revision, not uncommitted files. Check dirty or unpushed work and never push or omit it without authorization. Confirm the exact repository, branch, revision, target, profile, and delivery intent reported for the run.
Observe and troubleshoot
Keep the run ID and target:
zeroshot status RUN_ID --target platform
zeroshot watch RUN_ID --target platform
zeroshot logs RUN_ID --target platform
A foreground run streams events. Ctrl-C detaches observation without stopping the run. Use
zeroshot force-stop RUN_ID --target platform only when the user explicitly intends to stop it.
For command errors, check zeroshot --version and the relevant --help; do not revive removed
commands such as target setup. If login cannot retain credentials, fix the credential store before
requesting another device code; zeroshot target login --help lists the supported
ZEROSHOT_CREDENTIAL_STORE modes.
For connection_unavailable, list connections for the same target and both relevant scopes. A
static connection set replaces the whole named connection, so supply every required field through
repeated --field prompts or JSON stdin. Never put secret values in arguments, task files, runtime
configuration, issues, or logs.
After an uncertain submission response, reconcile by submission key before retrying. Do not create a second logical run. Report submitted, running, verified, delivered, failed, and stopped states accurately; submission alone is not completion.
Initialize Active Memory
For initialization or backfill from local run history, use the separate zeroshot-memory-init
skill. It orchestrates isolated discovery followed by graph and repository maintenance through the
resumable zeroshot memory init command.
| 1 | |
| 2 | name zeroshot |
| 3 | description Use Zeroshot to prepare, run, observe, or troubleshoot explicit multi-agent software work locally or on Zeroshot Platform. Apply when the user names Zeroshot, including 'zeroshot this' or 'zeroshot it' (this orchestrator, not one-shot prompting), or asks about its CLI; do not route ordinary local work into Zeroshot without that intent. |
| 4 | |
| 5 | |
| 6 | # Zeroshot |
| 7 | |
| 8 | Zeroshot executes an explicit graph of software agents. Workers make changes; independent verifiers |
| 9 | judge the evidence, and the graph decides when to repair or deliver. A successful run means the |
| 10 | graph reached its declared outcome; it does not always mean a pull request was created or merged. |
| 11 | |
| 12 | Use the installed CLI help as the exact contract when commands differ from this overview. |
| 13 | |
| 14 | ## Shape the task |
| 15 | |
| 16 | Before submitting, inspect the request, repository guidance, existing issue, and enough code to know: |
| 17 | |
| 18 | the desired behavior and observable success; |
| 19 | material constraints and behavior that must remain unchanged; |
| 20 | whether a separate worker could implement it and a verifier could judge it. |
| 21 | |
| 22 | Fill gaps from available evidence. Choose routine technical details without interrogating the user. |
| 23 | If an unresolved product choice would materially change the outcome, propose the narrowest supported |
| 24 | interpretation and ask one focused question. Do not submit while that decision remains unanswered. |
| 25 | Suggest separate tasks only for independently useful outcomes or real prerequisites. |
| 26 | |
| 27 | When the work is vague or large enough to need agreed acceptance criteria, suggest planning it first |
| 28 | with the separate `zeroshot-plan` skill and let the user choose; do not start planning unasked. When |
| 29 | a plan file exists (`.zeroshot/plans/<id>.md`), use its Goal, Context, Acceptance criteria, |
| 30 | Constraints, Decided approach and Decisions as the task. Criteria marked `Check (manual):` need a |
| 31 | person or another environment: tell the run to list them rather than verify them. If the plan lists |
| 32 | `depends_on`, confirm with the user that those plans are built and merged before starting it, and |
| 33 | include any constraints they share that the plan does not repeat. |
| 34 | |
| 35 | Never start a Zeroshot run merely because the skill is available. The user must ask to use Zeroshot. |
| 36 | A worker already executing inside a Zeroshot run should perform its assigned work directly, not start |
| 37 | another run. A failed Platform run does not authorize silently implementing the task locally. |
| 38 | |
| 39 | ## Choose the target |
| 40 | |
| 41 | Local execution omits `--target`. `--cwd DIR` selects a folder (default: invoking folder); |
| 42 | Git worktrees use their root. File arguments stay relative to the invoking folder. Runs without |
| 43 | Git delivery need no repository. Keep workspace and active Zeroshot state disjoint; use an external |
| 44 | `ZEROSHOT_STATE_DIR` when necessary. |
| 45 | Zeroshot Platform is built in. Sign in once with `zeroshot target login platform`, then use |
| 46 | `--target platform` explicitly on Platform commands. Platform setup (organizations, GitHub App, |
| 47 | connections) is documented at https://app.zeroshot.sh/docs. |
| 48 | Do not add or set up the built-in Platform target. Named targets store endpoints and login identity, |
| 49 | not repository configuration. |
| 50 | |
| 51 | ## Reuse profiles and connections |
| 52 | |
| 53 | For a guided interview to design or revise a graph, use the `zeroshot-graph-design` skill. |
| 54 | |
| 55 | Prefer a saved profile over inventing a graph or runtime. Inspect its input, runtime, and delivery |
| 56 | behavior before constructing a run. Local profiles need no login; a local default profile applies |
| 57 | when a run names no profile, graph, or runtime: |
| 58 | |
| 59 | |
| 60 | zeroshot profile list |
| 61 | zeroshot profile show NAME |
| 62 | zeroshot profile list --target platform --scope user |
| 63 | zeroshot profile list --target platform --scope org |
| 64 | zeroshot profile show NAME --target platform --scope org |
| 65 | zeroshot connection list --target platform --scope user |
| 66 | zeroshot connection list --target platform --scope org |
| 67 | |
| 68 | |
| 69 | Inspect saved profiles to see their delivery behavior. New `software-change` templates default to |
| 70 | pull-request delivery. Use `--delivery none` for local-only changes, `--push` for branch publication, |
| 71 | or `--ship` when merge delivery is intended. Custom graphs and saved profiles own their delivery. |
| 72 | |
| 73 | ## Run locally without a profile |
| 74 | |
| 75 | When no saved profile fits and the user has not asked for Platform, run the built-in |
| 76 | `software-change` graph locally. Its default publishes a PR. For local-only work, use |
| 77 | `--delivery none` as shown below; that mode needs only the harness's native login. |
| 78 | |
| 79 | The worker edits the selected folder in place. Stop if it has uncommitted changes, and start |
| 80 | from a fresh branch when the folder is a Git repository. |
| 81 | Write the shaped task to an input file outside the workspace, for example |
| 82 | `{"task": "Add JSON output to the status command and cover it with focused tests."}`. |
| 83 | Write a uniform runtime file for the harness you are running in, with your own model identifier |
| 84 | unless the user names another. Local Claude Code and Codex lanes reuse their native login: |
| 85 | |
| 86 | |
| 87 | { "harness": "claude", "provider": "anthropic", "model": "MODEL_ID", "effort": "high" } |
| 88 | |
| 89 | |
| 90 | |
| 91 | { "harness": "codex", "provider": "openai", "model": "MODEL_ID", "effort": "high" } |
| 92 | |
| 93 | |
| 94 | Validate, then submit the same command without `--validate-only`. This example keeps the work |
| 95 | local; omit `--delivery none` for PR delivery, or use `--ship` when the user asks to merge: |
| 96 | |
| 97 | |
| 98 | zeroshot run --title "TASK" --template software-change --delivery none \ |
| 99 | --input INPUT.json --uniform-runtime-config RUNTIME.json --validate-only |
| 100 | |
| 101 | |
| 102 | Follow the run with `zeroshot status RUN_ID` and `zeroshot logs RUN_ID`. The user can watch it |
| 103 | in `zeroshot ui` at `http://127.0.0.1:4173/ui/`. |
| 104 | Report what each reviewer rejected and what each repair changed, not only the final state. If |
| 105 | the run exposed a gap the built-in reviewers do not cover, name one reviewer worth adding. |
| 106 | Offer to save the setup as the default, so later requests need no files: |
| 107 | |
| 108 | |
| 109 | zeroshot profile set NAME --template software-change --delivery none \ |
| 110 | --uniform-runtime-config RUNTIME.json --default |
| 111 | |
| 112 | |
| 113 | ## Review an issue or pull request |
| 114 | |
| 115 | The `pr-review` and `issue-review` templates post reports as comments by default. |
| 116 | PR review classifies whether reproduction is necessary, runs required full-stack checks (including |
| 117 | a browser for UI changes), then checks the diff and linked issue coverage. Its final report is concise. PR review uses comment delivery; issue review also supports `--delivery none` for a report without publication. Supply an issue or PR URL through `--task-from`, which resolves |
| 118 | title/body and pins source before execution: |
| 119 | |
| 120 | |
| 121 | zeroshot run --title "Review PR 123" --template pr-review \ |
| 122 | --task-from https://github.com/OWNER/REPOSITORY/pull/123 \ |
| 123 | --uniform-runtime-config RUNTIME.json --cwd /path/to/pr-checkout \ |
| 124 | --submission-key review-pr-123 |
| 125 | |
| 126 | |
| 127 | Use `issue-review` for an issue URL; its basic issue workflow is separate. PR intake captures linked |
| 128 | issue text before execution. Local reviews require clean tracked files and, for a PR, a checkout already at its head. Comment |
| 129 | publication uses the declared `github.GH_TOKEN` connection. Use `--target platform` for hosted source |
| 130 | preparation and credential resolution. With a saved review profile, use `--profile` instead of the |
| 131 | template/runtime/delivery flags. Validate first with `--validate-only`; retry uncertain submission |
| 132 | using the same key and configuration. A successful review may report defects; success confirms |
| 133 | publication. Ordinary `--input FILE` passes the graph's JSON input unchanged and excludes |
| 134 | `--task-from`. Worker nodes have no mandatory `task` field. |
| 135 | |
| 136 | ## Adapt the graph |
| 137 | |
| 138 | When the user wants to change what gets checked, start from the built-in graph rather than writing |
| 139 | one from scratch: |
| 140 | |
| 141 | Export it with `zeroshot template show software-change > graph.json`. |
| 142 | Make the change the user asked for: add a reviewer with one job (security, an end-to-end test |
| 143 | that boots the app, design), or change the loop's `maxIterations`. Different models or harnesses |
| 144 | per node need a full `--runtime-config` plan instead of the uniform file. The |
| 145 | [review loop guide] |
| 146 | shows the node shapes and a cross-vendor plan. |
| 147 | Validate by replacing `--template software-change` with `--graph graph.json` in the run command |
| 148 | above, then run it. |
| 149 | Save it so later requests use it, with `--runtime-config PLAN.json` in place of the uniform file |
| 150 | when nodes use different models or harnesses: |
| 151 | |
| 152 | |
| 153 | zeroshot profile set NAME --graph graph.json \ |
| 154 | --uniform-runtime-config RUNTIME.json --default |
| 155 | |
| 156 | |
| 157 | When runs keep failing the same way, or a problem gets past the reviewers, suggest the reviewer |
| 158 | that would catch it and ask before changing the graph. |
| 159 | |
| 160 | ## Prepare the execution environment |
| 161 | |
| 162 | Environments belong to a run, independently of its profile. A `local:NAME` profile can run on a |
| 163 | Docker target with its own environment. For Docker or Platform, pass |
| 164 | `--environment environment.json` with a flat definition such as: |
| 165 | |
| 166 | |
| 167 | { |
| 168 | "setup": "apt-get update && apt-get install -y jq", |
| 169 | "startup": "npm ci", |
| 170 | "variables": { "CI": "true" } |
| 171 | } |
| 172 | |
| 173 | |
| 174 | Platform resolves an omitted environment from the repository's User default, then Org default, then |
| 175 | Base. `--no-environment` bypasses defaults. Choose saved environments through Platform's UI or API; |
| 176 | the CLI accepts a concrete JSON file. Local runs use the invoking machine and reject setup/startup |
| 177 | and hook connections. |
| 178 | |
| 179 | Setup runs as root before checkout or restoration, so it cannot read repository files. Startup |
| 180 | runs as the workspace user in the checkout; workers and reviewers share its dependencies and |
| 181 | services. Both hooks rerun on resume, so startup must tolerate existing workspace files. |
| 182 | Checkpoints restore files and graph progress, not running services or agent conversations. |
| 183 | |
| 184 | Put shared executables in `$ZEROSHOT_TOOLS/bin` and project dependencies in the workspace. |
| 185 | |
| 186 | Snapshots include ignored directories such as `target/` and `node_modules/`. Without cloning or |
| 187 | reflinks, allow space for another full workspace copy during staging, plus checkpoint storage. |
| 188 | Before large or parallel runs on tight disks, warn users and suggest cleaning build artifacts or |
| 189 | keeping generated directories outside the workspace where practical. |
| 190 | |
| 191 | Shell exports do not persist between hooks or agents; use `variables` for nonsecret values and |
| 192 | `connections` for required secret field names. Hook connections and node connections are separate. |
| 193 | On a direct Docker target, root setup changes the container shared by its runs. |
| 194 | |
| 195 | Preparation failures stop before agent execution without spending repair attempts. Inspect the |
| 196 | failed phase and logs; fix the environment instead of requesting unrelated code repairs. Resume |
| 197 | reuses the accepted definition, so an edited environment requires a new run. For a pinned Node |
| 198 | installation and service/Docker conventions, see the |
| 199 | [environment guide]. |
| 200 | |
| 201 | ## Expose a profile over ACP |
| 202 | |
| 203 | Start `zeroshot acp` only when the user explicitly asks to expose a Zeroshot graph as an ACP agent. |
| 204 | The experimental endpoint is local-only and owns stdio until its client disconnects: |
| 205 | |
| 206 | |
| 207 | zeroshot acp --profile local:NAME |
| 208 | |
| 209 | |
| 210 | Check the profile first. It must accept exactly one required string named `task`; every success node |
| 211 | must return exactly one required string named `response`. The runtime must use a registered local harness for |
| 212 | every node, and every executable node must have an agent binding with `sessionScope: node_instance`. |
| 213 | Maps, delivery, runtime connections, MCP servers, and session reload are unsupported. |
| 214 | |
| 215 | Each ACP prompt is a separate durable local run. The outer ACP session keeps the workspace and |
| 216 | node provider sessions alive across prompts. Inspect the returned run ID with `zeroshot status` or |
| 217 | `zeroshot logs`; `zeroshot ui` includes the run in local history. |
| 218 | |
| 219 | ## Validate and submit |
| 220 | |
| 221 | Put profile input in a JSON file matching the profile's declared schema. Use a stable, non-secret |
| 222 | submission key for safe retries: |
| 223 | |
| 224 | |
| 225 | zeroshot run --title "TASK" --profile org:NAME --input input.json \ |
| 226 | --target platform --submission-key KEY --validate-only |
| 227 | |
| 228 | zeroshot run --title "TASK" --profile org:NAME --input input.json \ |
| 229 | --target platform --submission-key KEY |
| 230 | |
| 231 | |
| 232 | `--validate-only` materializes and validates without starting a run. A named Platform profile must |
| 233 | still be fetched from the target first, so this command requires Platform access. It does not prove |
| 234 | connection availability. |
| 235 | |
| 236 | For named targets, `--cwd` selects the client Git checkout. Zeroshot prefers its attached upstream, |
| 237 | then a unique eligible HTTPS/SSH remote. Docker and Platform still require an exact committed Git |
| 238 | source. Detached worktrees require repository and branch overrides. `--repository` accepts GitHub |
| 239 | `owner/name` or a credential-free HTTPS/SSH clone URL. Override source only when needed: |
| 240 | |
| 241 | |
| 242 | --target platform --repository OWNER/REPOSITORY --branch BRANCH --revision SHA |
| 243 | |
| 244 | |
| 245 | Git push uses shared transport and needs no GitHub API. PR and merge require a registered forge; |
| 246 | GitHub is maintained today. `--source-connection KEY` authorizes source-only HTTPS |
| 247 | (`GIT_USERNAME`, `GIT_PASSWORD`) or pinned SSH (`GIT_SSH_PRIVATE_KEY`, `GIT_SSH_KNOWN_HOSTS`) |
| 248 | credentials. Generic forms require the target's `openengine.git-transport/v1` capability. |
| 249 | |
| 250 | Named targets receive the remote revision, not uncommitted files. Check dirty or unpushed work and |
| 251 | never push or omit it without authorization. Confirm the exact repository, branch, revision, target, |
| 252 | profile, and delivery intent reported for the run. |
| 253 | |
| 254 | ## Observe and troubleshoot |
| 255 | |
| 256 | Keep the run ID and target: |
| 257 | |
| 258 | |
| 259 | zeroshot status RUN_ID --target platform |
| 260 | zeroshot watch RUN_ID --target platform |
| 261 | zeroshot logs RUN_ID --target platform |
| 262 | |
| 263 | |
| 264 | A foreground run streams events. Ctrl-C detaches observation without stopping the run. Use |
| 265 | `zeroshot force-stop RUN_ID --target platform` only when the user explicitly intends to stop it. |
| 266 | |
| 267 | For command errors, check `zeroshot --version` and the relevant `--help`; do not revive removed |
| 268 | commands such as `target setup`. If login cannot retain credentials, fix the credential store before |
| 269 | requesting another device code; `zeroshot target login --help` lists the supported |
| 270 | `ZEROSHOT_CREDENTIAL_STORE` modes. |
| 271 | |
| 272 | For `connection_unavailable`, list connections for the same target and both relevant scopes. A |
| 273 | static `connection set` replaces the whole named connection, so supply every required field through |
| 274 | repeated `--field` prompts or JSON stdin. Never put secret values in arguments, task files, runtime |
| 275 | configuration, issues, or logs. |
| 276 | |
| 277 | After an uncertain submission response, reconcile by submission key before retrying. Do not create a |
| 278 | second logical run. Report submitted, running, verified, delivered, failed, and stopped states |
| 279 | accurately; submission alone is not completion. |
| 280 | |
| 281 | ## Initialize Active Memory |
| 282 | |
| 283 | For initialization or backfill from local run history, use the separate `zeroshot-memory-init` |
| 284 | skill. It orchestrates isolated discovery followed by graph and repository maintenance through the |
| 285 | resumable `zeroshot memory init` command. |
| 286 |
Details
- License
- MIT
- Stars on the repo
- ★ 2,071
- Checked
- Source
- the-open-engine/zeroshot ↗
- Creator
- the-open-engine · 1 listing
Similar skills
See all →
SkillReverse engineer native, managed, Electron/JavaScriptREA