@hecer/yoke 1.15.0 → 1.16.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/.claude-plugin/plugin.json +3 -3
- package/.codex-plugin/plugin.json +2 -2
- package/CHANGELOG.md +41 -0
- package/README.md +26 -21
- package/canon/AGENTS.md +7 -0
- package/canon/manifest.yaml +2 -2
- package/canon/skills/executing-plans/SKILL.md +1 -1
- package/canon/skills/requesting-code-review/SKILL.md +2 -2
- package/canon/skills/requesting-code-review/code-reviewer.md +12 -0
- package/canon/skills/subagent-driven-development/SKILL.md +7 -3
- package/canon/skills/subagent-driven-development/code-quality-reviewer-prompt.md +7 -0
- package/canon/skills/subagent-driven-development/implementer-prompt.md +7 -0
- package/canon/skills/subagent-driven-development/spec-reviewer-prompt.md +7 -0
- package/canon/skills/systematic-debugging/SKILL.md +7 -11
- package/canon/skills/systematic-debugging/condition-based-waiting.md +7 -0
- package/canon/skills/systematic-debugging/defense-in-depth.md +7 -0
- package/canon/skills/systematic-debugging/root-cause-tracing.md +9 -0
- package/canon/skills/tdd/SKILL.md +1 -1
- package/canon/skills/tdd/testing-anti-patterns.md +9 -0
- package/canon/skills/yoke-retrofit/SKILL.md +1 -1
- package/dist/agents/contracts.js +1 -1
- package/dist/agents/host.js +4 -0
- package/dist/agents/pi-telemetry.js +53 -0
- package/dist/agents/process-streams.js +13 -0
- package/dist/agents/providers.js +29 -5
- package/dist/agents/supervision.js +3 -1
- package/dist/agents/telemetry.js +38 -28
- package/dist/change/inbox.js +1 -1
- package/dist/estimation/schedule.js +40 -26
- package/dist/prd/command.js +2 -2
- package/dist/retrofit/detect.js +2 -0
- package/dist/retrofit/plan.js +2 -0
- package/dist/retrofit/planners/hermes.js +32 -0
- package/dist/retrofit/planners/pi.js +1 -1
- package/dist/retrofit/skill-actions.js +2 -1
- package/dist/review/command.js +1 -1
- package/dist/review/verdict.js +1 -1
- package/dist/routing/capability.js +1 -1
- package/dist/routing/router.js +1 -1
- package/dist/setup/command.js +3 -0
- package/docs/AGENT-HARDENING-2026-09-16.md +32 -0
- package/docs/HARNESSES.md +35 -14
- package/gemini-extension.json +2 -2
- package/package.json +3 -2
package/docs/HARNESSES.md
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
# OpenCode, Kilo and
|
|
1
|
+
# OpenCode, Kilo, Pi and Hermes
|
|
2
2
|
|
|
3
|
-
Yoke
|
|
3
|
+
Yoke adds first-class adapters for OpenCode, Kilo, Pi coding agent, and Hermes Agent. The adapters share Yoke's invocation, routing, review, quality, telemetry and retrofit contracts, while preserving the controls each harness actually provides.
|
|
4
4
|
|
|
5
5
|
This is a CLI integration, not an authentication bundle. Install the selected harness, log in or configure its API provider, and verify it independently before starting a Yoke loop.
|
|
6
6
|
|
|
7
|
+
For current Pi installations, the official package is `@earendil-works/pi-coding-agent` (the executable remains `pi`). Pi support has existed since Yoke 1.13.0; no additional adapter is required.
|
|
8
|
+
|
|
9
|
+
Pi project trust is separate from Yoke's permission profile. Current Pi ignores project-local settings and skills in headless mode unless the project is trusted. Review the project resources, open Pi interactively, use `/trust`, then restart before running Yoke. Yoke does not silently grant project trust or enable arbitrary project extensions. For isolated worktrees, review the applicable trust scope as well. See [Pi project trust](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/README.md#project-trust).
|
|
10
|
+
|
|
7
11
|
## Setup and retrofit
|
|
8
12
|
|
|
9
|
-
Select one of the
|
|
13
|
+
Select one of the harnesses explicitly:
|
|
10
14
|
|
|
11
15
|
```sh
|
|
12
16
|
yoke setup . --yes --agent=opencode --runner=opencode
|
|
13
17
|
yoke setup . --yes --agent=kilo --runner=kilo
|
|
14
18
|
yoke setup . --yes --agent=pi --runner=pi
|
|
19
|
+
yoke setup . --yes --agent=hermes --runner=hermes
|
|
15
20
|
```
|
|
16
21
|
|
|
17
22
|
To add one to an existing project without changing the other generated artifacts:
|
|
@@ -20,9 +25,10 @@ To add one to an existing project without changing the other generated artifacts
|
|
|
20
25
|
yoke retrofit . --agent=opencode
|
|
21
26
|
yoke retrofit . --agent=kilo
|
|
22
27
|
yoke retrofit . --agent=pi
|
|
28
|
+
yoke retrofit . --agent=hermes
|
|
23
29
|
```
|
|
24
30
|
|
|
25
|
-
`--agent=all`
|
|
31
|
+
`--agent=all` includes all eight supported harnesses. Retrofit is merge-aware for the native config files and backs up Yoke-managed overwrites under `.yoke/backup/`.
|
|
26
32
|
|
|
27
33
|
## Native artifacts
|
|
28
34
|
|
|
@@ -31,8 +37,9 @@ yoke retrofit . --agent=pi
|
|
|
31
37
|
| OpenCode | `AGENTS.md`, `.opencode/skills/`, `opencode.json`, `.opencode/agents/yoke-reviewer.md` | `run --format json`, provider/model selection, variants, plan agent, local MCP servers |
|
|
32
38
|
| Kilo | `AGENTS.md`, `.kilo/skills/`, `kilo.jsonc`, `.kilo/agents/yoke-reviewer.md` | OpenCode-compatible `run --format json`, provider/model selection, variants, plan agent, local MCP servers |
|
|
33
39
|
| Pi | `AGENTS.md`, `.pi/skills/`, `.pi/settings.json` | JSONL mode, provider/model selection, thinking level, explicit tool allowlists |
|
|
40
|
+
| Hermes | `AGENTS.md`, `.hermes/skills/`, `.hermes/agents/yoke-reviewer.md` | `chat --format stream-json`, `--query-file -`, provider/model selection, reasoning effort, toolsets |
|
|
34
41
|
|
|
35
|
-
All
|
|
42
|
+
All consume the shared `AGENTS.md` and `.yoke/context/*.md` context. OpenCode and Kilo also receive the configured local MCP servers from the Yoke code-graph choice. Pi and Hermes integrations use portable skills and Yoke's loop boundaries.
|
|
36
43
|
|
|
37
44
|
## Provider, model and variant selection
|
|
38
45
|
|
|
@@ -58,24 +65,38 @@ runner:
|
|
|
58
65
|
|
|
59
66
|
This becomes `--provider openai --model gpt-5.6 --thinking high`. Pi calls `variant` and `reasoningEffort` the same underlying thinking-level selection; configuring both with different values is rejected.
|
|
60
67
|
|
|
68
|
+
OpenCode and Kilo likewise map these two fields to a single `--variant`: matching values are emitted once and conflicting values are rejected before spawning a process.
|
|
69
|
+
|
|
70
|
+
For Hermes the equivalent is:
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
runner:
|
|
74
|
+
agent: hermes
|
|
75
|
+
provider: openrouter
|
|
76
|
+
model: anthropic/claude-sonnet-4
|
|
77
|
+
reasoningEffort: high
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
This becomes `--provider openrouter --model anthropic/claude-sonnet-4 --reasoning-effort high`. Hermes accepts `--reasoning-effort`; configuring conflicting `variant` and `reasoningEffort` values is rejected.
|
|
81
|
+
|
|
61
82
|
The same fields are available on routing workers and quality critic/repair roles. Routing evidence is keyed by harness, provider, model, reasoning effort and variant, so a model profile does not inherit another profile's success history.
|
|
62
83
|
|
|
63
84
|
## Permission profiles and honest limits
|
|
64
85
|
|
|
65
|
-
| Yoke profile | OpenCode / Kilo | Pi |
|
|
66
|
-
|
|
67
|
-
| `safe` | Headless `--auto` run; Yoke still verifies the resulting tree and gates the commit | `read,bash,edit,write` tool allowlist so the implementer can test and modify the project |
|
|
68
|
-
| `read-only` | `--agent plan` plus JSON output | `read,grep,find,ls` only |
|
|
69
|
-
| `unsafe` | Explicit `--dangerously-skip-permissions` | Harness default tool set; no Yoke-added allowlist |
|
|
86
|
+
| Yoke profile | OpenCode / Kilo | Pi | Hermes |
|
|
87
|
+
|---|---|---|---|
|
|
88
|
+
| `safe` | Headless `--auto` run; Yoke still verifies the resulting tree and gates the commit | `read,bash,edit,write` tool allowlist so the implementer can test and modify the project | `--toolsets file,terminal` restricts tools to local filesystem and shell execution |
|
|
89
|
+
| `read-only` | `--agent plan` plus JSON output | `read,grep,find,ls` only | `--toolsets file` allows inspection without terminal or write execution |
|
|
90
|
+
| `unsafe` | Explicit `--dangerously-skip-permissions` | Harness default tool set; no Yoke-added allowlist | `--yolo` skips dangerous command approvals |
|
|
70
91
|
|
|
71
|
-
OpenCode, Kilo and
|
|
92
|
+
OpenCode, Kilo, Pi and Hermes do not provide the same OS-level sandbox boundary as Codex or Gemini. The Yoke `safe` label therefore describes the selected harness controls and Yoke's mechanical gates, not a universal filesystem sandbox. Use `read-only` for review and do not use `unsafe` unless the project owner accepts the boundary.
|
|
72
93
|
|
|
73
|
-
The Yoke loop disables native delegation where the harness exposes it, so Yoke's worker budget remains the authority. OpenCode and Kilo native agents are installed as a read-only reviewer artifact; Yoke's review runner still validates the structured verdict itself. Pi has no native sub-agent or plan mode by design.
|
|
94
|
+
The Yoke loop disables native delegation where the harness exposes it, so Yoke's worker budget remains the authority. OpenCode and Kilo native agents are installed as a read-only reviewer artifact; Hermes uses a read-only agent configuration with `toolsets: [file]`; Yoke's review runner still validates the structured verdict itself. Pi has no native sub-agent or plan mode by design.
|
|
74
95
|
|
|
75
96
|
## Telemetry and validation limits
|
|
76
97
|
|
|
77
|
-
Yoke parses OpenCode/Kilo JSON text events and `step_finish` token/cost events,
|
|
98
|
+
Yoke parses OpenCode/Kilo JSON text events and `step_finish` token/cost events, Pi `message_end` plus `message_update.usage` events, and Hermes `result` (tokens, cost, model) and `text` streaming events. Missing provider events produce partial or unknown measurements; they are never reported as zero-cost success. Provider-reported model and usage remain provider claims.
|
|
78
99
|
|
|
79
100
|
The release test suite covers argument construction, provider/variant propagation, routing and quality configuration, retrofit plans, host detection, JSON result parsing, and representative telemetry fixtures. It does not authenticate against every provider or claim equal model quality. Run a small project-specific smoke task after installing a harness and configuring credentials.
|
|
80
101
|
|
|
81
|
-
Official CLI references: [OpenCode CLI](https://dev.opencode.ai/docs/cli), [OpenCode configuration](https://opencode.ai/docs/config), [OpenCode skills](https://opencode.ai/docs/skills), [Kilo CLI reference](https://github.com/Kilo-Org/kilocode/blob/main/packages/kilo-docs/pages/code-with-ai/platforms/cli-reference.md),
|
|
102
|
+
Official CLI references: [OpenCode CLI](https://dev.opencode.ai/docs/cli), [OpenCode configuration](https://opencode.ai/docs/config), [OpenCode skills](https://opencode.ai/docs/skills), [Kilo CLI reference](https://github.com/Kilo-Org/kilocode/blob/main/packages/kilo-docs/pages/code-with-ai/platforms/cli-reference.md), [Pi coding agent](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md), and [Hermes Agent](https://github.com/NousResearch/hermes-agent).
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yoke",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Cross-agent coding harness for
|
|
3
|
+
"version": "1.16.0",
|
|
4
|
+
"description": "Cross-agent coding harness for eight supported CLIs: curated skill canon, mechanical safety gates, autonomous loop with proof artifacts. CLI: npm i -g @hecer/yoke",
|
|
5
5
|
"contextFileName": "GEMINI-EXTENSION.md"
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hecer/yoke",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "One harness,
|
|
3
|
+
"version": "1.16.0",
|
|
4
|
+
"description": "One harness, eight agents, zero trust in \"done\" — cross-agent coding harness for Claude Code, Codex CLI, Gemini CLI, Qwen Code, OpenCode, Kilo, Pi and Hermes: one skill canon, mechanical safety gates, an autonomous loop with screenshot/video proofs.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"yoke": "dist/cli.js"
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"opencode",
|
|
50
50
|
"kilo",
|
|
51
51
|
"pi-coding-agent",
|
|
52
|
+
"hermes-agent",
|
|
52
53
|
"agents",
|
|
53
54
|
"agentic-coding",
|
|
54
55
|
"harness",
|