trans-genderian-orchestra 0.2.2 → 0.3.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
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Mirrored byte-for-byte in `plugin/README.md` (the npm readme) — edit one, copy to the other.
4
4
 
5
- [![npm version](https://img.shields.io/badge/npm-0.2.1-ba0ce9e)](https://www.npmjs.com/package/trans-genderian-orchestra)
5
+ [![npm version](https://img.shields.io/badge/npm-0.3.0-ba0ce9e)](https://www.npmjs.com/package/trans-genderian-orchestra)
6
6
  [![License: MIT](https://img.shields.io/badge/license-MIT-6a4c93)](LICENSE)
7
7
  [![OpenCode 1.18.13](https://img.shields.io/badge/OpenCode-1.18.13-6a4c93)](https://opencode.ai)
8
8
 
@@ -36,7 +36,7 @@ One npm package exposes both via dual-package exports since v0.1.5 (`exports "./
36
36
  If you prefer to wire it by hand, this also works in `opencode.jsonc`:
37
37
 
38
38
  ```json
39
- { "plugin": ["trans-genderian-orchestra@0.2.1"] }
39
+ { "plugin": ["trans-genderian-orchestra@0.3.0"] }
40
40
  ```
41
41
 
42
42
  Restart opencode after it installs. That’s the global layer done.
@@ -106,6 +106,17 @@ The Background Job Board is the view that follows you through all of this. Each
106
106
  - **Progress files** — per-issue `.tgo/<issueId>/progress.md` (Objective / Touch set / Decisions / Blockers / Status) written by Dylan, read by Bernstein/Horowitz; survives session end.
107
107
  - **Termination conditions** — composable completion detection stops post-completion waffle and hands the report back.
108
108
 
109
+ ## What 0.3.0 added
110
+
111
+ TGO 0.3.0 is the governance release — twelve additions that close the loop between “work handed out” and “work actually correct,” grouped by shape:
112
+
113
+ - **Trust the handoff.** **Version pinning** snapshots each delegation’s definition (prompt/preset/frontmatter hash) at dispatch and badges work whose instructions outlived a change; **worktree lanes** lock each delegated writer into an isolated git worktree and block symlink-escapes, `cd ../` tricks, and multi-file escapes.
114
+ - **Check the work.** **Exit gates** run deterministic checks (delta-spec, trajectory, blacklist) before a task closes — a critical finding blocks the close and suggests a compensation ticket; a **status taxonomy** (`complete`/`bail`/`failed`/`tripwire`) maps each outcome to a recovery action.
115
+ - **Wait correctly.** The **wait gate** lets a task suspend with a typed request, then validates the human’s prose reply against that shape before waking it.
116
+ - **See the system.** The **problems view** surfaces stuck/dead/awaiting sessions with a per-seat queue gauge; the **cost surface** shows each seat’s model budget vs. spend and recommends a cheaper preset when the queue backs up.
117
+ - **Plan and land.** **Typed manifests** reject scope overlaps at plan time and verify touch-sets at completion; **convoys** group work into waves and land them in defined order, gate-checked per task.
118
+ - **Contain the chaos.** **Recursion blocking** caps delegation depth and detects spawn cycles; **step replay** lets Horowitz re-watch a recorded step without re-running the pipeline.
119
+
109
120
  ## The roster
110
121
 
111
122
  | Seat | What they’re good at |
@@ -137,6 +148,11 @@ Put options in the second element of the plugin tuple: `["trans-genderian-orches
137
148
  | `selfUpdate` | `{ enabled }` — refreshes TGO's own plugin cache slot when a newer version is on npm; activates on next restart. | `true` |
138
149
  | `watchdog` | `{ enabled, wallClockMs, idleMs, checkMs, stuckLoopTools, stuckLoopMs }` — aborts a delegated session that’s hung or gone silent and asks Bernstein to re-dispatch. stuck-loop = <3 distinct tool signatures across the last 20 tools within 5m (read-only seats no longer false-trip). | `true`, 30m, 15m, 10s, stuckLoopTools 20, stuckLoopMs 5m |
139
150
 
151
+ | `runs` | `{ maxAgeMs, maxBytes, maxFiles, heartbeatThresholdMs }` — run-log retention bounds and the dead-heartbeat threshold for the problems view. | 7d, 50MB, 200, 5m |
152
+ | `metrics` | `{ enabled }` — the per-seat queue gauge and problems-view scan. | `true` |
153
+ | `recursion` | `{ enabled, maxDepth }` — delegation depth cap plus spawn-cycle detection. | `true`, 4 |
154
+ | `cost` | `{ enabled }` — the cost surface (per-seat model budget vs. spend) and quota-aware preset hints. | `true` |
155
+
140
156
  The JSON schema is at `plugin/schema/tgo.config.schema.json`.
141
157
 
142
158
  There’s also a human voice for the docs themselves. When you see `register: "natural"` in the humanized toggle (`tgo-h` / `humanized` in `docs/spec/concision-enforcement.md:§4`), that’s Dylan writing in long-form — contractions are fine, examples are welcome, empathy leads — versus the 720-token `tgo-current` house style (about 480 tokens at runtime plus ~240 folded into seat prompts) that’s built for scanning. The toggle only affects Dylan’s prose; the other seats present the same either way.