@the-open-engine-company/zeroshot 10.17.0 → 10.19.0

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
@@ -1,6 +1,11 @@
1
1
  # `@the-open-engine-company/zeroshot`
2
2
 
3
- Installer for the canonical `zeroshot` executable and agent skills. The package selects the release
3
+ Zeroshot enforces your team's QA process on coding agents. You define the process as a graph:
4
+ which agents implement, which reviewers and tests a change must pass, where failures go for repair,
5
+ and where a run stops. Every task runs through it, and no agent can skip a step. It works with
6
+ Codex, Claude Code, GitHub Copilot and Pi.
7
+
8
+ This package is the installer for the canonical `zeroshot` executable and agent skills. The package selects the release
4
9
  archive for the current Node platform and architecture, verifies it against that release's
5
10
  `SHA256SUMS`, and installs the executable.
6
11
 
@@ -9,7 +14,8 @@ runtime configuration, targets, and CLI reference.
9
14
 
10
15
  The product site is [zeroshot.sh](https://zeroshot.sh/?utm_source=npm&utm_medium=readme&utm_campaign=zeroshot).
11
16
 
12
- The `zeroshot` and `zeroshot-memory-init` managed skills share one source each across hosts.
17
+ The `zeroshot`, `zeroshot-memory-init`, and `zeroshot-graph-design` managed skills share one source
18
+ each across hosts.
13
19
  They install for Codex, GitHub Copilot, and Pi at `$HOME/.agents/skills/<name>/SKILL.md`, and for
14
20
  Claude Code at `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/<name>/SKILL.md`. Reinstalling updates an unchanged
15
21
  managed copy. A conflicting or edited skill is preserved; installation fails with the exact path so
package/lib/skills.js CHANGED
@@ -5,7 +5,7 @@ const fs = require('node:fs');
5
5
  const os = require('node:os');
6
6
  const path = require('node:path');
7
7
 
8
- const SKILL_NAMES = Object.freeze(['zeroshot', 'zeroshot-memory-init']);
8
+ const SKILL_NAMES = Object.freeze(['zeroshot', 'zeroshot-memory-init', 'zeroshot-graph-design']);
9
9
  const MANAGED_MARKER = 'managed by @the-open-engine-company/zeroshot';
10
10
  const MANAGED_PATTERN =
11
11
  /^<!-- managed by @the-open-engine-company\/zeroshot; sha256=([a-f0-9]{64}) -->\n/;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@the-open-engine-company/zeroshot",
3
- "version": "10.17.0",
4
- "description": "Runs coding agents as a graph: one agent implements, independent agents review, failures go to repair, and nothing ships until the checks pass. Works with Codex, Claude Code, GitHub Copilot and Pi.",
3
+ "version": "10.19.0",
4
+ "description": "Enforces your team's QA process on coding agents. Define the workflow as a graph of implementers, reviewers, tests and repair loops; every task runs through it and no agent can skip a step. Works with Codex, Claude Code, GitHub Copilot and Pi.",
5
5
  "keywords": [
6
6
  "claude-code",
7
7
  "codex",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: zeroshot
3
- description: Use Zeroshot to prepare, run, observe, or troubleshoot explicit multi-agent software work locally or on Zeroshot Cloud. 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.
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
4
  ---
5
5
 
6
6
  # Zeroshot
@@ -26,7 +26,7 @@ Suggest separate tasks only for independently useful outcomes or real prerequisi
26
26
 
27
27
  Never start a Zeroshot run merely because the skill is available. The user must ask to use Zeroshot.
28
28
  A worker already executing inside a Zeroshot run should perform its assigned work directly, not start
29
- another run. A failed Cloud run does not authorize silently implementing the task locally.
29
+ another run. A failed Platform run does not authorize silently implementing the task locally.
30
30
 
31
31
  ## Choose the target
32
32
 
@@ -34,14 +34,16 @@ another run. A failed Cloud run does not authorize silently implementing the tas
34
34
  Git worktrees use their root. File arguments stay relative to the invoking folder. Runs without
35
35
  Git delivery need no repository. Keep workspace and active Zeroshot state disjoint; use an external
36
36
  `ZEROSHOT_STATE_DIR` when necessary.
37
- - Zeroshot Cloud is built in. Sign in once with `zeroshot target login cloud`, then use
38
- `--target cloud` explicitly on Cloud commands. Cloud setup (organizations, GitHub App,
39
- connections) is documented at https://cloud.zeroshot.sh/docs.
40
- - Do not add or set up the built-in Cloud target. Named targets store endpoints and login identity,
37
+ - Zeroshot Platform is built in. Sign in once with `zeroshot target login platform`, then use
38
+ `--target platform` explicitly on Platform commands. Platform setup (organizations, GitHub App,
39
+ connections) is documented at https://app.zeroshot.sh/docs.
40
+ - Do not add or set up the built-in Platform target. Named targets store endpoints and login identity,
41
41
  not repository configuration.
42
42
 
43
43
  ## Reuse profiles and connections
44
44
 
45
+ For a guided interview to design or revise a graph, use the `zeroshot-graph-design` skill.
46
+
45
47
  Prefer a saved profile over inventing a graph or runtime. Inspect its input, runtime, and delivery
46
48
  behavior before constructing a run. Local profiles need no login; a local default profile applies
47
49
  when a run names no profile, graph, or runtime:
@@ -49,11 +51,11 @@ when a run names no profile, graph, or runtime:
49
51
  ```console
50
52
  zeroshot profile list
51
53
  zeroshot profile show NAME
52
- zeroshot profile list --target cloud --scope user
53
- zeroshot profile list --target cloud --scope org
54
- zeroshot profile show NAME --target cloud --scope org
55
- zeroshot connection list --target cloud --scope user
56
- zeroshot connection list --target cloud --scope org
54
+ zeroshot profile list --target platform --scope user
55
+ zeroshot profile list --target platform --scope org
56
+ zeroshot profile show NAME --target platform --scope org
57
+ zeroshot connection list --target platform --scope user
58
+ zeroshot connection list --target platform --scope org
57
59
  ```
58
60
 
59
61
  Inspect saved profiles to see their delivery behavior. New `software-change` templates default to
@@ -62,7 +64,7 @@ or `--ship` when merge delivery is intended. Custom graphs and saved profiles ow
62
64
 
63
65
  ## Run locally without a profile
64
66
 
65
- When no saved profile fits and the user has not asked for Cloud, run the built-in
67
+ When no saved profile fits and the user has not asked for Platform, run the built-in
66
68
  `software-change` graph locally. Its default publishes a PR. For local-only work, use
67
69
  `--delivery none` as shown below; that mode needs only the harness's native login.
68
70
 
@@ -116,7 +118,7 @@ zeroshot run --title "Review PR 123" --template pr-review \
116
118
 
117
119
  Use `issue-review` for an issue URL; its basic issue workflow is separate. PR intake captures linked
118
120
  issue text before execution. Local reviews require clean tracked files and, for a PR, a checkout already at its head. Comment
119
- publication uses the declared `github.GH_TOKEN` connection. Use `--target cloud` for hosted source
121
+ publication uses the declared `github.GH_TOKEN` connection. Use `--target platform` for hosted source
120
122
  preparation and credential resolution. With a saved review profile, use `--profile` instead of the
121
123
  template/runtime/delivery flags. Validate first with `--validate-only`; retry uncertain submission
122
124
  using the same key and configuration. A successful review may report defects; success confirms
@@ -150,7 +152,7 @@ one from scratch:
150
152
  ## Prepare the execution environment
151
153
 
152
154
  Environments belong to a run, independently of its profile. A `local:NAME` profile can run on a
153
- Docker target with its own environment. For Docker or Cloud, pass
155
+ Docker target with its own environment. For Docker or Platform, pass
154
156
  `--environment environment.json` with a flat definition such as:
155
157
 
156
158
  ```json
@@ -161,8 +163,8 @@ Docker target with its own environment. For Docker or Cloud, pass
161
163
  }
162
164
  ```
163
165
 
164
- Cloud resolves an omitted environment from the repository's User default, then Org default, then
165
- Base. `--no-environment` bypasses defaults. Choose saved environments through Cloud's UI or API;
166
+ Platform resolves an omitted environment from the repository's User default, then Org default, then
167
+ Base. `--no-environment` bypasses defaults. Choose saved environments through Platform's UI or API;
166
168
  the CLI accepts a concrete JSON file. Local runs use the invoking machine and reject setup/startup
167
169
  and hook connections.
168
170
 
@@ -213,23 +215,23 @@ submission key for safe retries:
213
215
 
214
216
  ```console
215
217
  zeroshot run --title "TASK" --profile org:NAME --input input.json \
216
- --target cloud --submission-key KEY --validate-only
218
+ --target platform --submission-key KEY --validate-only
217
219
 
218
220
  zeroshot run --title "TASK" --profile org:NAME --input input.json \
219
- --target cloud --submission-key KEY
221
+ --target platform --submission-key KEY
220
222
  ```
221
223
 
222
- `--validate-only` materializes and validates without starting a run. A named Cloud profile must
223
- still be fetched from the target first, so this command requires Cloud access. It does not prove
224
+ `--validate-only` materializes and validates without starting a run. A named Platform profile must
225
+ still be fetched from the target first, so this command requires Platform access. It does not prove
224
226
  connection availability.
225
227
 
226
228
  For named targets, `--cwd` selects the client Git checkout. Zeroshot prefers its attached upstream,
227
- then a unique eligible HTTPS/SSH remote. Docker and Cloud still require an exact committed Git
229
+ then a unique eligible HTTPS/SSH remote. Docker and Platform still require an exact committed Git
228
230
  source. Detached worktrees require repository and branch overrides. `--repository` accepts GitHub
229
231
  `owner/name` or a credential-free HTTPS/SSH clone URL. Override source only when needed:
230
232
 
231
233
  ```console
232
- --target cloud --repository OWNER/REPOSITORY --branch BRANCH --revision SHA
234
+ --target platform --repository OWNER/REPOSITORY --branch BRANCH --revision SHA
233
235
  ```
234
236
 
235
237
  Git push uses shared transport and needs no GitHub API. PR and merge require a registered forge;
@@ -246,13 +248,13 @@ profile, and delivery intent reported for the run.
246
248
  Keep the run ID and target:
247
249
 
248
250
  ```console
249
- zeroshot status RUN_ID --target cloud
250
- zeroshot watch RUN_ID --target cloud
251
- zeroshot logs RUN_ID --target cloud
251
+ zeroshot status RUN_ID --target platform
252
+ zeroshot watch RUN_ID --target platform
253
+ zeroshot logs RUN_ID --target platform
252
254
  ```
253
255
 
254
256
  A foreground run streams events. Ctrl-C detaches observation without stopping the run. Use
255
- `zeroshot force-stop RUN_ID --target cloud` only when the user explicitly intends to stop it.
257
+ `zeroshot force-stop RUN_ID --target platform` only when the user explicitly intends to stop it.
256
258
 
257
259
  For command errors, check `zeroshot --version` and the relevant `--help`; do not revive removed
258
260
  commands such as `target setup`. If login cannot retain credentials, fix the credential store before
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: zeroshot-graph-design
3
+ description: Design or revise a Zeroshot graph through a guided interview grounded in the invoking repository. Review an ASCII diagram and exact node instructions, select runtimes, then confirm the profile name and local or platform storage scope before saving.
4
+ ---
5
+
6
+ # Zeroshot graph design
7
+
8
+ Help the user design a lean graph they understand and can reuse. Keep the conversation short and opinionated: inspect what you can, propose sensible defaults, and ask about choices that materially change the design. Graph design does not authorize starting a run.
9
+
10
+ ## Confirm the starting point
11
+
12
+ Begin by asking:
13
+
14
+ > I'll assume you want a reusable code-change graph for the repository this skill was called from: `<invoking directory>`. Is that right, or do you have a different purpose or repository in mind?
15
+
16
+ Use the actual invoking directory. Wait for the answer before inspecting the repository or proposing a graph. If the user already confirmed this in the conversation, continue without repeating the question. Honor any specific task or different purpose they provide; otherwise keep the task as a per-run input.
17
+
18
+ Do not ask for harnesses, models, or effort yet.
19
+
20
+ ## Inspect and propose
21
+
22
+ Read applicable repository guidance, manifests, scripts, CI workflows, test configuration, and enough representative code to identify the stack and normal development workflow. Use read-only inspection; designing a graph does not require running the test suite or changing application code.
23
+
24
+ Infer what the user would almost always check after a code change. Ground the proposal in concrete commands and file paths, and label uncertain assumptions. Distinguish routine checks from checks that depend on the affected code:
25
+
26
+ - Use the repository's own build, formatting, lint, type, and test commands where applicable. Scope expensive suites according to its established workflow.
27
+ - For a UI, consider browser interaction, visual inspection, accessibility, and existing end-to-end tests. Identify the main flows worth checking; do not add a browser node merely because a dependency mentions a UI framework.
28
+ - For services, CLIs, libraries, or infrastructure, choose the corresponding integration, smoke, compatibility, or deployment validation supported by the repository.
29
+ - Translate common manual verification into concrete agent actions when tools permit. If a required check needs unavailable services, credentials, or human judgment, surface that dependency and ask how to handle it. Missing evidence cannot count as a pass.
30
+
31
+ For code-change graphs, ask: "How should runs deliver changes: leave them local, push a branch, open a PR, or merge?" Reuse any earlier choice and include delivery in the proposal.
32
+
33
+ Propose a complete first draft using the evidence. Ask focused follow-ups only where the answer would change the graph; avoid making the user describe facts you can inspect.
34
+
35
+ ## Keep the graph lean
36
+
37
+ Start with an implement/repair worker followed by independent review, looping on actionable feedback until the required reviewers accept. Combine responsibilities when one reviewer can cover them well; add nodes only for distinct work or verification that earns a separate pass.
38
+
39
+ Parallelize independent work and reviews. Keep overlapping edits and checks that compete for mutable resources sequential unless they have suitable isolation. Avoid routing trees, coordinator layers, and separate planning or reporting agents without a concrete need.
40
+
41
+ The worker must receive every relevant rejection. Repairs trigger fresh review of the resulting workspace; success requires all required reviewers to accept that version. Keep environment failures distinct from code defects.
42
+
43
+ Write concise node prompts with the task, responsibility, applicable checks, and expected result. Reviewers inspect and verify without repairing the change; remind them that other nodes may execute concurrently. Keep Git commands out of reviewer prompts; use files and observable outputs. Pass task and feedback through graph inputs rather than repeating them in long prompts. Resolve material ambiguities during the interview because runtime agents are non-interactive.
44
+
45
+ Leave optional deadlines, budgets, and retry restrictions unset unless requested. Do not copy small loop caps from examples. When the graph format requires finite bounds, derive permissive valid values from the current structural ceilings and the proposed graph's execution counts. Explain those required bounds briefly; preserve mandatory protocol limits and never claim the runtime is unbounded.
46
+
47
+ ## Show the proposal
48
+
49
+ Briefly explain the repository evidence behind the verification choices. Then draw the graph in an inline ASCII code block, using only node titles or purposes, forks/joins, and high-level conditions. Omit schemas, field bindings, runtime details, and plumbing from the diagram.
50
+
51
+ For example, when two independent reviews are useful:
52
+
53
+ ```text
54
+ [Implement / repair]
55
+ |
56
+ +----> [Review code] -----+
57
+ | |
58
+ +----> [Verify behavior] -+
59
+ |
60
+ all accept? -- yes --> [Done]
61
+ |
62
+ no
63
+ +----> [Implement / repair]
64
+ ```
65
+
66
+ Immediately below the diagram, show the complete authored instructions for every agent node, each in a labeled fenced text block. Quote them verbatim, including any shared authored instruction text. Do not summarize, elide, or hide instructions behind references. Explain variable inputs outside the quoted text. Structural nodes need no invented prompts.
67
+
68
+ Invite feedback on the graph and wording. After revisions, show the updated diagram and all current node instructions together so the user can review a complete version. Keep simplifying as you iterate. Wait for the user's acceptance; silence is not acceptance.
69
+
70
+ ## Choose runtimes after acceptance
71
+
72
+ Only after the user is happy with both graph and instructions, ask:
73
+
74
+ > Which harness, model, provider, and effort would you like? You can use one configuration for all agent nodes or specify them per node. Effort can also stay at the harness default.
75
+
76
+ Reuse choices already supplied. Confirm the provider when needed to form a valid harness/provider lane. Keep model identifiers exactly as authored; do not infer providers from model names or invent a model catalog. Resolve incomplete choices before producing a runnable runtime plan.
77
+
78
+ Accept ordinary model names and resolve their technical IDs from existing configuration or official provider documentation. If the provider is unclear, ask only for the provider; do not ask the user for a model ID.
79
+
80
+ Prefer a continuing worker session and fresh independent reviewer sessions when supported, unless the user chooses otherwise. If runtime constraints require changing the graph or instructions, show the revision and get agreement on it before finalizing.
81
+
82
+ ## Prepare the profile
83
+
84
+ Use installed Zeroshot help and version-matched documentation as the contract. The official [review-loop guide](https://the-open-engine.github.io/zeroshot/current/guides/review-loop/) and [runtime-plan reference](https://the-open-engine.github.io/zeroshot/current/reference/runtime-plan/) describe the separate graph and runtime documents; check compatibility with the installed version.
85
+
86
+ Produce `graph.json` and `runtime.json` in the user's chosen location, or a dedicated local artifact directory if none was specified. Preserve the reviewed node instructions verbatim. Bind every executable node and connect reviewer verdicts and diagnostics to the loop's acceptance condition and repair feedback. Give bound exhaustion and execution failures explicit unsuccessful outcomes.
87
+
88
+ Use supported validation that does not start a run, subject to repository guidance. Report what was actually validated; JSON parsing alone does not prove graph admission. If Zeroshot or full validation is unavailable, still provide the design and files and state the remaining validation clearly.
89
+
90
+ ## Final step: save, configure, and explain how to run
91
+
92
+ Suggest a name and offer local, platform user, or platform organization storage. Use `cloud` unless another target is specified.
93
+
94
+ Before asking for login or an organization, check existing access with `zeroshot profile list --target TARGET --scope SCOPE`. Reuse the session and selected organization; ask only if unresolved. Follow host credential-store guidance if login is needed.
95
+
96
+ Check name conflicts, then confirm the name, destination, and any replacement once. An explicit save instruction counts as confirmation. Save with `zeroshot profile set NAME --graph graph.json --runtime-config runtime.json`, adding `--target TARGET --scope SCOPE` for platform storage. Read back and verify the saved profile; retain the draft and report any failure.
97
+
98
+ Ask whether the saved profile should become the default, naming the affected scope. If yes, use `zeroshot profile default NAME` with the matching target/scope flags. Reuse an earlier default decision.
99
+
100
+ Inspect the effective runtime's required environment/connection fields and existing configuration. If values are missing, ask how the user wants to provide them:
101
+
102
+ - Printed CLI setup commands: use `zeroshot connection set KEY --field FIELD` with repeated hidden prompts and the correct target/scope. Include every connection field because `set` replaces the connection.
103
+ - Platform UI: link to `https://app.zeroshot.sh/orgs/ORG_ID/connections?scope=SCOPE` using verified values, or link to [Platform](https://app.zeroshot.sh) and direct the user to Connections.
104
+ - At run startup: print a command that prompts without echo and supplies the required variables only to that run.
105
+
106
+ Never request secret values in chat or embed them in printed commands. Skip this question when no values are missing.
107
+
108
+ Finish with a copyable `zeroshot run` command containing the saved profile selector, title, input file, and target where applicable, plus minimal input JSON matching the graph. Include startup prompts if chosen. Do not start the run unless explicitly requested.
@@ -84,7 +84,7 @@ For an invalid response, correct only the named task using its existing contract
84
84
  failure persists, stop and report the error and session directory rather than retry indefinitely.
85
85
  Report exclusions and incomplete work alongside the command's publication/defer counts.
86
86
 
87
- This workflow reads local native Rust run history, not Cloud or Docker target history. Never read
87
+ This workflow reads local native Rust run history, not Platform or Docker target history. Never read
88
88
  controller bootstrap files, provider homes or credentials to recover evidence. Do not fetch code or
89
89
  switch branches to interpret “newest”; use the recorded checkouts. Current maintenance citations must
90
90
  refer to tracked or nonignored source, which the CLI fingerprints before publication.