johns-harness 2026.9.22 → 2026.9.23
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/CHANGELOG.md +4 -0
- package/README.md +6 -5
- package/docs/PATCHES.md +15 -1
- package/package.json +1 -1
- package/skills/orchestrator/SKILL.md +38 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.9.23
|
|
4
|
+
|
|
5
|
+
- Family 70: ship the `orchestrator` skill as a bundled, always-eligible skill so every harness install loads the delegation and briefing protocol implicitly (pass the user's words through when they are clear, expand when they are vague, keep briefings brief). Workspace overrides, `enabled: false` and `allowBundled` still apply. `RULES.md` points at the bundled copy.
|
|
6
|
+
|
|
3
7
|
## 2026.9.22
|
|
4
8
|
|
|
5
9
|
- Family 69: enforce the latest DeepSeek Flash/Pro, Muse and Gemini Lite alias targets across all 14 shipped copies; document `/model deepseek` and retain Family 68 on the separate `extended` release line.
|
package/README.md
CHANGED
|
@@ -85,8 +85,8 @@ node johnness.mjs --help
|
|
|
85
85
|
### Verify
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
npm test #
|
|
89
|
-
bash scripts/verify-patches.sh #
|
|
88
|
+
npm test # 887 tests against the installed dependency tree
|
|
89
|
+
bash scripts/verify-patches.sh # 437 checks across every patch family
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
## Launch a swarm with one command
|
|
@@ -132,7 +132,7 @@ Coding agents today run as isolated processes. Two agents on the same repository
|
|
|
132
132
|
- **Memory built for production.** Tiered recall that traces from consolidated reflections down to the verbatim record, surviving compaction and shared across the swarm. Installed and enabled by default.
|
|
133
133
|
- **Production authority per commit.** Promotion is granted to an exact SHA, never to a branch name, so one worker's authorization never covers another worker's commits.
|
|
134
134
|
- **An append-only action log.** Agents record every consequential action to `ACTION_LOG.md` and read it before acting.
|
|
135
|
-
- **A fixed runtime surface.** The core does not grow on a schedule. New mechanisms enter only to solve a demonstrated production failure, one narrow, tested, reversible patch at a time:
|
|
135
|
+
- **A fixed runtime surface.** The core does not grow on a schedule. New mechanisms enter only to solve a demonstrated production failure, one narrow, tested, reversible patch at a time: 68 patch families, each with a regression test and a rollback path.
|
|
136
136
|
- **Reliability with a definition.** Bounded retries, explicit failure states, exact-once continuation, context-pressure recovery, durable delivery, and supervised gateway recovery.
|
|
137
137
|
- **Coding first, phone optional.** Direct the work at a high level from a chat channel while agents plan, implement, test, coordinate, and stage releases unattended.
|
|
138
138
|
- **Local voice.** Optional native Whisper transcription of inbound audio, entirely on your machine. Off by default. [Setup](docs/NATIVE-WHISPER-MUSE.md).
|
|
@@ -199,7 +199,7 @@ The log is a [`RULES.md`](RULES.md) workspace convention enforced through the ac
|
|
|
199
199
|
|
|
200
200
|
## Patch families
|
|
201
201
|
|
|
202
|
-
The runtime carries
|
|
202
|
+
The runtime carries 68 patch families plus the 65.1 safe-update amendment. Each is a production fix applied at the source with a regression test, a durable patch marker, and a rollback path. A verifier runs 437 checks against the package tree and installed dependencies, and 887 tests run against the installed dependency tree.
|
|
203
203
|
|
|
204
204
|
Every family follows the same six steps: reproduce the failure, trace the exact runtime path, make the smallest source-level change that restores the invariant, add a regression test and a patch marker, run the verifier, and retain rollback artifacts. The full index: [`docs/PATCHES.md`](docs/PATCHES.md).
|
|
205
205
|
|
|
@@ -212,11 +212,12 @@ Every family follows the same six steps: reproduce the failure, trace the exact
|
|
|
212
212
|
| `--profile <name>` | Isolates state under `~/.johnness-<name>` so several installs coexist on one machine |
|
|
213
213
|
| `--dev` | Dev profile under `~/.johnness-dev` with its own gateway port and shifted derived ports |
|
|
214
214
|
| Rules | [`RULES.md`](RULES.md) ships 19 operating-policy sections injected on every call. Fill in the placeholders; keep long procedures in skills. |
|
|
215
|
+
| Orchestrator skill | Bundled and loaded implicitly on every install. Decide whether to pass the user's words through or expand them, then keep the briefing brief. Override with a workspace `skills/orchestrator/SKILL.md`. |
|
|
215
216
|
|
|
216
217
|
## Documentation
|
|
217
218
|
|
|
218
219
|
- [`docs/index.md`](docs/index.md): runtime docs, from gateway and channels to plugins, nodes, and CLI reference.
|
|
219
|
-
- [`docs/PATCHES.md`](docs/PATCHES.md): the
|
|
220
|
+
- [`docs/PATCHES.md`](docs/PATCHES.md): the 68 patch families, one record each.
|
|
220
221
|
- [`docs/NATIVE-WHISPER-MUSE.md`](docs/NATIVE-WHISPER-MUSE.md): local Whisper transcription setup.
|
|
221
222
|
- [`RULES.md`](RULES.md): the default operating rules, including Rule Zero on production authorization.
|
|
222
223
|
|
package/docs/PATCHES.md
CHANGED
|
@@ -17,7 +17,7 @@ they predate ~2026-06-06).
|
|
|
17
17
|
|
|
18
18
|
## Index
|
|
19
19
|
|
|
20
|
-
Family 01 is retired. Families 02 through 41
|
|
20
|
+
Family 01 is retired. Families 02 through 41, 43 through 67, 69 and 70, including the 65.1 amendment, are live on `main`; Family 68 ships on the `extended` release line. Family 42 is omitted; native Codex OAuth ownership is Family 58.
|
|
21
21
|
|
|
22
22
|
1. **01, announce queue TTL, retired:** Removed the five-minute age filter that could discard delayed sub-agent completion announcements. [Details](#01--announce-ttl-retired-2026-07-30)
|
|
23
23
|
2. **02, failover rotation:** Returns model selection to the highest-priority profile after its cooldown ends. [Details](#02--failover-rotation-undocumented)
|
|
@@ -89,6 +89,12 @@ Family 01 is retired. Families 02 through 41 and 43 through 65, including the 65
|
|
|
89
89
|
|
|
90
90
|
66. **66, slim tree:** Optional local embedding, PDF and Windows FFI engines; pinned slim parent bundles remove unused SDK/type dependencies; map and artwork diet with a measured Linux size gate. [Details](#66-slim-tree)
|
|
91
91
|
|
|
92
|
+
67. **67, native DeepSeek and current provider catalog:** DeepSeek V4.1 Flash/V4 Pro through the supported Chat Completions adapter, Gemini Flash-Lite, current prices and Claude xhigh mappings. [Details](#family-67-native-deepseek-and-current-provider-catalog)
|
|
93
|
+
|
|
94
|
+
69. **69, DeepSeek alias contract:** The release gate pins `deepseek`, `deepseek-pro`, `muse` and `gemini-lite` to their newest catalog targets across all 14 alias copies. [Details](#family-69-deepseek-alias-contract)
|
|
95
|
+
|
|
96
|
+
70. **70, bundled orchestrator skill:** The delegation and briefing protocol ships as an always-eligible bundled skill; every install loads it implicitly and a workspace copy still overrides it. [Details](#family-70-bundled-orchestrator-skill)
|
|
97
|
+
|
|
92
98
|
---
|
|
93
99
|
|
|
94
100
|
## 01 - announce-ttl (RETIRED 2026-07-30)
|
|
@@ -2572,3 +2578,11 @@ All 14 alias copies must match these exact targets, agree with each other, and r
|
|
|
2572
2578
|
Verifier checks 69.1 and 69.2 enforce the contract and exactly one DeepSeek Flash alias per copy.
|
|
2573
2579
|
Future catalog releases must move the matching contract targets; user-configured aliases still win.
|
|
2574
2580
|
Family 68 remains on the `extended` release line and is not included in this `latest` artifact.
|
|
2581
|
+
|
|
2582
|
+
## Family 70: bundled orchestrator skill
|
|
2583
|
+
|
|
2584
|
+
Release: `johns-harness@2026.9.23` (`latest`). Ships `skills/orchestrator/SKILL.md` as a bundled skill so every install loads it implicitly, with no workspace copy and no install step.
|
|
2585
|
+
The skill is the delegation protocol: orchestrate rather than work; pass the user's words straight through when they clearly know what they want, expand with your own thinking when they are vague or short, and keep briefings brief so the agent has maximum freedom. Share relevant memory. Weaker model, more instruction; your own model, less.
|
|
2586
|
+
It is marked `always: true` so no bin, env or config gate hides it. The ordinary precedence still applies: a workspace `skills/orchestrator` or managed copy overrides it, `skills.entries.orchestrator.enabled: false` turns it off, and an `allowBundled` allowlist that omits it is respected.
|
|
2587
|
+
`RULES.md` section 5 and its skill table point at the bundled skill. No runtime code changes. Verifier checks 70.1 through 70.5 cover presence, the always flag, the briefing rule, the generic wording and the RULES pointer; `tests/orchestrator-skill.test.mjs` proves every skills chunk loads it from an empty workspace, into the prompt snapshot, and that the override and disable paths still work.
|
|
2588
|
+
Family 68 remains on the `extended` release line and is not included in this `latest` artifact.
|
package/package.json
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orchestrator
|
|
3
|
+
description: Spawn and manage sub-agents and scheduled jobs. Load this skill BEFORE spawning any sub-agent or creating any scheduled job. Covers when to delegate, when to pass the user's words verbatim versus expand them, and how to keep briefings brief.
|
|
4
|
+
metadata: { "johnness": { "emoji": "🎼", "always": true } }
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Orchestrator: Sub-Agent and Scheduled Job Protocol
|
|
8
|
+
|
|
9
|
+
## Core Philosophy: Orchestrator, Not Worker
|
|
10
|
+
|
|
11
|
+
**When the user asks for something, DELEGATE to a sub-agent.**
|
|
12
|
+
|
|
13
|
+
You are the conductor, not the musician. Your job is to:
|
|
14
|
+
1. **Understand** what the user wants
|
|
15
|
+
2. **Spawn** a sub-agent with clear instructions
|
|
16
|
+
3. **Set a reminder** to follow up
|
|
17
|
+
4. **Report back** when complete
|
|
18
|
+
|
|
19
|
+
### Why
|
|
20
|
+
- Sub-agents can work in parallel while you stay responsive
|
|
21
|
+
- Complex tasks get dedicated focus
|
|
22
|
+
- You do not get blocked on long-running work
|
|
23
|
+
- The user always has someone to talk to
|
|
24
|
+
|
|
25
|
+
### Exceptions (do yourself)
|
|
26
|
+
- Quick lookups (under 30 seconds)
|
|
27
|
+
- Simple questions and conversation
|
|
28
|
+
- Memory updates
|
|
29
|
+
- Dashboard updates
|
|
30
|
+
- Urgent fixes that need immediate attention
|
|
31
|
+
|
|
32
|
+
## Briefing Sub-Agents
|
|
33
|
+
|
|
34
|
+
Decide when to pass the user's instructions straight through to the agent versus when to think through the task yourself and then pass clear instructions. If it sounds like the user knows what they want and is asking for it, just pass along their words. When they are being vague or short, expand with your own thoughts. Either way, keep your sub-agent instructions brief so the agent has maximum freedom to achieve the goal. Too much instruction becomes a hindrance.
|
|
35
|
+
|
|
36
|
+
If you have something from memory that is relevant, share it with the sub-agent. If using a smaller or weaker model, give more instructions. If using your own model, give less.
|
|
37
|
+
|
|
38
|
+
Always have brevity and simplicity.
|