@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 +8 -2
- package/lib/skills.js +1 -1
- package/package.json +2 -2
- package/skills/zeroshot/SKILL.md +28 -26
- package/skills/zeroshot-graph-design/SKILL.md +108 -0
- package/skills/zeroshot-memory-init/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# `@the-open-engine-company/zeroshot`
|
|
2
2
|
|
|
3
|
-
|
|
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-
|
|
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.
|
|
4
|
-
"description": "
|
|
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",
|
package/skills/zeroshot/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
38
|
-
`--target
|
|
39
|
-
connections) is documented at https://
|
|
40
|
-
- Do not add or set up the built-in
|
|
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
|
|
53
|
-
zeroshot profile list --target
|
|
54
|
-
zeroshot profile show NAME --target
|
|
55
|
-
zeroshot connection list --target
|
|
56
|
-
zeroshot connection list --target
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
165
|
-
Base. `--no-environment` bypasses defaults. Choose saved environments through
|
|
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
|
|
218
|
+
--target platform --submission-key KEY --validate-only
|
|
217
219
|
|
|
218
220
|
zeroshot run --title "TASK" --profile org:NAME --input input.json \
|
|
219
|
-
--target
|
|
221
|
+
--target platform --submission-key KEY
|
|
220
222
|
```
|
|
221
223
|
|
|
222
|
-
`--validate-only` materializes and validates without starting a run. A named
|
|
223
|
-
still be fetched from the target first, so this command requires
|
|
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
|
|
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
|
|
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
|
|
250
|
-
zeroshot watch RUN_ID --target
|
|
251
|
-
zeroshot logs RUN_ID --target
|
|
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
|
|
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
|
|
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.
|