@azure-id/orc 1.6.0 → 1.7.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README-id.md +206 -125
  3. package/README.md +274 -74
  4. package/bin/cli.js +1595 -2
  5. package/bin/mockrun-catalog.js +272 -267
  6. package/bin/verify-contracts.js +4527 -4509
  7. package/bin/verify-package.js +6 -0
  8. package/bin/webui/api.js +26 -0
  9. package/bin/webui/app.html +10 -0
  10. package/bin/webui/css/panels/knowledge.css +30 -0
  11. package/bin/webui/css/panels/rules.css +145 -0
  12. package/bin/webui/fixtures/index.js +27 -0
  13. package/bin/webui/fixtures/rules.js +1002 -0
  14. package/bin/webui/fixtures/wiki-one.js +198 -0
  15. package/bin/webui/i18n/en/knowledge.json +127 -117
  16. package/bin/webui/i18n/en/nav.json +1 -0
  17. package/bin/webui/i18n/en/rules.json +55 -0
  18. package/bin/webui/i18n/id/knowledge.json +127 -117
  19. package/bin/webui/i18n/id/nav.json +1 -0
  20. package/bin/webui/i18n/id/rules.json +55 -0
  21. package/bin/webui/js/01-i18n.js +1 -0
  22. package/bin/webui/js/panels/knowledge.js +117 -1
  23. package/bin/webui/js/panels/rules.js +351 -0
  24. package/mock-run/INDEX.md +107 -106
  25. package/mock-run/orc-rules.md +254 -0
  26. package/package.json +1 -1
  27. package/templates/commands/orc-rules.md +66 -0
  28. package/templates/commands/orc-wiki.md +23 -1
  29. package/templates/skills/_shared/README.md +61 -54
  30. package/templates/skills/_shared/phases/README.md +1 -0
  31. package/templates/skills/_shared/phases/preflight.md +20 -0
  32. package/templates/skills/_shared/phases/rules.md +154 -0
  33. package/templates/skills/_shared/return-validation.md +28 -0
  34. package/templates/skills/_shared/rules/CREDITS.md +141 -0
  35. package/templates/skills/_shared/rules/INDEX.md +107 -0
  36. package/templates/skills/_shared/rules/code.md +229 -0
  37. package/templates/skills/_shared/rules/delivery.md +114 -0
  38. package/templates/skills/_shared/rules/ui.md +139 -0
  39. package/templates/skills/_shared/rules/writing.md +223 -0
  40. package/templates/skills/context-combiner/SKILL.md +9 -1
  41. package/templates/skills/orc/SKILL.md +7 -0
  42. package/templates/skills/orc-aftermath/SKILL.md +7 -0
  43. package/templates/skills/orc-analyze/SKILL.md +7 -0
  44. package/templates/skills/orc-analyze-mini/SKILL.md +9 -1
  45. package/templates/skills/orc-boundary/SKILL.md +7 -0
  46. package/templates/skills/orc-brainstorm/SKILL.md +7 -0
  47. package/templates/skills/orc-budget/SKILL.md +7 -0
  48. package/templates/skills/orc-challenge/SKILL.md +7 -0
  49. package/templates/skills/orc-claude/SKILL.md +7 -0
  50. package/templates/skills/orc-diy/SKILL.md +7 -0
  51. package/templates/skills/orc-explain/SKILL.md +7 -0
  52. package/templates/skills/orc-export/SKILL.md +7 -0
  53. package/templates/skills/orc-fast/SKILL.md +7 -0
  54. package/templates/skills/orc-grill/SKILL.md +7 -0
  55. package/templates/skills/orc-handoff/SKILL.md +9 -1
  56. package/templates/skills/orc-learn/SKILL.md +7 -0
  57. package/templates/skills/orc-mini/SKILL.md +7 -0
  58. package/templates/skills/orc-pact/SKILL.md +7 -0
  59. package/templates/skills/orc-poly/SKILL.md +7 -0
  60. package/templates/skills/orc-pr-driver/SKILL.md +9 -1
  61. package/templates/skills/orc-pr-setup/SKILL.md +9 -1
  62. package/templates/skills/orc-quick/SKILL.md +7 -0
  63. package/templates/skills/orc-retro/SKILL.md +7 -0
  64. package/templates/skills/orc-route/SKILL.md +7 -0
  65. package/templates/skills/orc-test/SKILL.md +7 -0
  66. package/templates/skills/orc-verify/SKILL.md +7 -0
  67. package/templates/skills/orc-wiki/SKILL.md +15 -0
  68. package/templates/skills/orc-wiki/references/partial-refresh.md +68 -0
  69. package/templates/skills/orc-wiki/references/phases/phase-0.md +15 -1
package/README.md CHANGED
@@ -7,14 +7,14 @@
7
7
  *Intake → analyze → plan → score → parallel subagents → review → verify → ship.*
8
8
 
9
9
  ![npm](https://img.shields.io/npm/v/%40azure-id%2Forc?style=for-the-badge&color=cb3837&logo=npm)
10
- ![Version](https://img.shields.io/badge/version-1.6.0-blue.svg?style=for-the-badge)
10
+ ![Version](https://img.shields.io/badge/version-1.7.0-blue.svg?style=for-the-badge)
11
11
  ![License](https://img.shields.io/badge/license-MIT-green.svg?style=for-the-badge)
12
12
  ![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg?style=for-the-badge)
13
13
  ![Claude Code](https://img.shields.io/badge/Claude_Code-Skills-purple.svg?style=for-the-badge)
14
14
  ![Dependencies](https://img.shields.io/badge/dependencies-zero-lightgrey.svg?style=for-the-badge)
15
15
  ![GitHub stars](https://img.shields.io/github/stars/azure-id/orc?style=for-the-badge&color=yellow)
16
16
 
17
- **Latest: v1.6.0** · updated 2026-09-07 · [full changelog](CHANGELOG.md)
17
+ **Latest: v1.7.0** · updated 2026-09-13 · [full changelog](CHANGELOG.md)
18
18
 
19
19
  **On npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** — `npm i -g @azure-id/orc`
20
20
 
@@ -303,6 +303,59 @@ ORC have terminal hook to see: Context Window %, 5 Hour usage %, Weekly usage %
303
303
 
304
304
  ---
305
305
 
306
+ ## Rules that keep the slop out
307
+
308
+ ORC writes a lot of prose and a lot of code. Both come out carrying the same
309
+ recognisable defaults: sentences that say nothing in a confident shape, and code
310
+ that is longer, more defensive and more abstract than the task asked for.
311
+ `orc rules` is the filter, and it has **two halves that never mix**.
312
+
313
+ | Half | Who writes it | Where | Changes when |
314
+ |---|---|---|---|
315
+ | **ORC rules** | ORC | `.claude/skills/_shared/rules/` | `orc update` |
316
+ | **Your rules** | you | `.claude/orc/rules.md` | you type |
317
+
318
+ **65 shipped rules, read-only**, in four packs: `OSW` writing (23) · `OSC` code
319
+ (22) · `OSD` delivery (10), which is what an agent reports about its OWN work ·
320
+ `OSU` UI (10), which rides per TASK rather than per lane. Three tiers - **HARD**
321
+ absolute, **PURPOSE** allowed with a written one-line reason, **LOCK** a
322
+ consistency check.
323
+
324
+ **Your rules are plain text**, three headings, as much under each as you want -
325
+ and **they beat an ORC rule outright**:
326
+
327
+ ```
328
+ house rules > your rules > ORC rules
329
+ ```
330
+
331
+ The house rules are about CODE and behaviour. They say nothing about the words
332
+ an agent writes, so they never overrule a writing rule. To switch an ORC rule
333
+ off, name its id in a rule of your own; the override is then counted, printed at
334
+ preflight, and stated inside every slice. **It is never silent.**
335
+
336
+ ```bash
337
+ orc rules # both halves, the ladder, the counts
338
+ orc rules add --priority P0 --text "..." # your own, in your own words
339
+ orc rules lint src/ README.md # free, zero tokens
340
+ orc rules credits # every source, author and licence
341
+ ```
342
+
343
+ `orc rules lint` checks **13 of the 65** - the ones a string match can prove -
344
+ and prints, every time, `not checked here: 52 rules. They need a reader, not a
345
+ matcher.` A clean lint is not a clean review, and it says so.
346
+
347
+ **The rules are other people's work, and the credit ships with them.** Adapted
348
+ from [`petergyang/no-ai-slop`](https://github.com/petergyang/no-ai-slop) (MIT),
349
+ [`miqdadbadjuber/anti-slop`](https://github.com/miqdadbadjuber/anti-slop) (MIT),
350
+ [`ehmo/slopkit`](https://github.com/ehmo/slopkit),
351
+ [`BioInfo/slopless`](https://github.com/BioInfo/slopless), Andrej Karpathy's
352
+ `CLAUDE.md`, Matty Cartwright's Anti-Slop Writing Rules, and three papers on LLM
353
+ code smells.
354
+
355
+ **Full detail: [`guides/rules.md`](guides/rules.md).**
356
+
357
+ ---
358
+
306
359
  ## Documents that go somewhere
307
360
 
308
361
  `/orc-doc` writes the long document — and Markdown is the deliverable because of
@@ -532,6 +585,7 @@ Some lanes ship a full how-to next to the skill, in plain language:
532
585
  | [ORC-WIKI](templates/skills/orc-wiki/README.md) | you want the knowledge base, and cross-repo crosslink setup |
533
586
  | [ORC-PR-SETUP](templates/skills/orc-pr-setup/README.md) | you want to split a big change into stacked PRs |
534
587
  | [ORC-PR-DRIVER](templates/skills/orc-pr-driver/README.md) | you have a stack plan and want to build, submit and merge it |
588
+ | [Rules](guides/rules.md) | you want the 65 anti-slop rules, the precedence ladder and the lint |
535
589
  | [Configuration](guides/configuration.md) · [Model selection](guides/model-selection.md) | you want every key, or the scoring bands |
536
590
  | [Other AI models](guides/extra-models.md) | you want part of the ladder to run somewhere other than Claude |
537
591
 
@@ -576,78 +630,224 @@ a current audit: [EVAL-REPORT.md](EVAL-REPORT.md).
576
630
  **Full history: [CHANGELOG.md](CHANGELOG.md)** — or `orc changelog`, which prints
577
631
  only what is newer than the version you have.
578
632
 
579
- ### v1.6.0 - the rule that can finally say no _(2026-09-07)_
580
-
581
- **Still on the unscoped `orc` package?** Do this once first - your `orc upgrade`
582
- is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
583
- the top of this file.
584
-
585
- - **Step 1 - release the command from the old package:** `npm uninstall -g orc`
586
- - **Step 2 - install the current package:** `npm i -g @azure-id/orc`
587
- - **Step 3 - re-apply it to your project:** `orc update`
588
-
589
- **Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
590
-
591
-
592
- ORC's read discipline has always said the same thing in three places: the main
593
- session reads to **find**, and dispatches an agent to **understand**. It was
594
- prose in `_shared/read-ladder.md`, in `/orc-doc` hard rule 0, and on line 21 of
595
- `/orc-quick` - and **nothing checked any of it**.
596
-
597
- `orc-read-gate.js` is a `PreToolUse` hook on `Read` that can refuse. It ships
598
- **off**, and `off` is byte-identical to not having it - asserted by a test, not
599
- by intention.
600
-
601
- **The threshold is ORC's own number, measured.** The pattern this came from uses
602
- 350 lines, derived from a 10-30 second delegation round trip. ORC's round trip
603
- is nothing like that: a dispatch measured **p50 76s, p90 188s** (n=125), and one
604
- real read-only dispatch cost **13,276 tokens** to read a four-line file. At the
605
- measured 55.2 chars/line across 316 sampled reads, break-even is **~1000 lines**.
606
- Copying 350 would delegate work whose overhead exceeds its saving.
607
-
608
- **`agent_id` is the only discriminator, and that was MEASURED, not assumed.**
609
- `PreToolUse` **does** fire inside a dispatched subagent - the assumption that
610
- hooks are session-level was wrong. `session_id` and `transcript_path` are
611
- **identical** in both contexts, so a gate written against either would block the
612
- full read an executor must perform before an `Edit`, and a reconstructed
613
- `old_string` corrupts files. The gate tests for the **presence** of `agent_id`,
614
- never for the absence of some other key, which asserts nothing.
615
-
616
- **Everything it stays silent on, and each one is deliberate:** any read by a
617
- subagent - outside an open ORC run - a targeted `offset`/`limit` read - a file
618
- under the threshold - build logs, test results and `.jsonl` that a gate parses
619
- whole, because a truncated red build reads **green** - and any error at all,
620
- because **a read gate that throws and blocks a read has broken the tool.**
621
-
622
- **A block always names the cheaper path.** A gate that only refuses is a gate
623
- people switch off. It names the targeted read, the agent dispatch, and the
624
- config key that turns it down.
625
-
626
- **Every `warn` and `block` writes one trace line** (`READ-GATE`), an allow
627
- writes none. That is affordable here for a structural reason: the gate only acts
628
- while a run is open, so a trace always exists. `orc doctor` gains
629
- `read-gate-unwired` and `read-gate-fallback`, both reported **only while the
630
- feature is armed** - a doctor that warns about the default is one people learn
631
- to ignore.
632
-
633
- **Two config keys**, both on the `SEED_EMPTY` allowlist with an empty `lanes[]`,
634
- because a hook has no lane and cannot resolve config: `read_gate`
635
- (`off`|`warn`|`block`, default `off`) and `read_gate_max_lines` (default 1000).
636
-
637
- **What this release deliberately does NOT do**, with the reasons recorded so
638
- nobody re-proposes them: no gate on `Bash` reads (`cat`/`head`/`tail`) - it is
639
- several times the false-positive surface, and the measurement says the `Read`
640
- tool is only about 7.5% of the actual read surface here - and no
641
- `context-reader` slot in `EXTRA_SLOTS`, because at a 1000-line threshold the
642
- addressable population is five reads across 239 sampled sessions, which is
643
- infrastructure for nothing.
644
-
645
- **An honest note on the measurement.** The audit behind this release found the
646
- existing prose is largely *working*: median full read is 85 lines, p90 is 288,
647
- and 46% of reads already use `offset`/`limit` without being told. Oversized
648
- reads are about **1% of price-weighted main-session ingest** at a generous upper
649
- bound. This hook is a guardrail on a road most runs already stay on - it is off
650
- by default for exactly that reason.
633
+ ### v1.7.0 - the rules that keep the slop out _(2026-09-13)_
634
+
635
+ ORC writes a lot of prose and a lot of code, and both came out carrying the same
636
+ recognisable defaults: sentences that say nothing in a confident shape, and code
637
+ that is longer, more defensive and more abstract than the task asked for. There
638
+ was one standing card against it - the seven-line house rules - and it is about
639
+ CODE. Nothing said anything about the words.
640
+
641
+ **`orc rules` is a second rule surface, and it has two halves that never mix.**
642
+
643
+ - **ORC rules** - 65 rules in four packs, shipped, tagged, **read-only**. They
644
+ change with `orc update` and with nothing else. `orc rules set --pack ...` is
645
+ refused BY NAME, with the command that replaces it.
646
+ - **Your rules** - `.claude/orc/rules.md`. Plain text, three headings, as much
647
+ under each as you want. **They beat an ORC rule outright.**
648
+
649
+ The packs: **`OSW` writing (23)**, **`OSC` code (22)**, **`OSD` delivery (10)** -
650
+ what an agent reports about its OWN work - and **`OSU` UI (10)**, which rides per
651
+ TASK rather than per lane, because a UI rule in a backend slice is tokens paid on
652
+ every spawn for a rule that cannot apply.
653
+
654
+ Three tiers, taken from `anti-slop`: **HARD** absolute, **PURPOSE** allowed with
655
+ a written one-line reason, **LOCK** a consistency check. The purpose gate is the
656
+ mechanism that matters - a ban list alone leaves a void, and a model fills a void
657
+ with its most generic output.
658
+
659
+ **Credit is a shipped artifact here, not a line in a commit message.** Every pack
660
+ opens with its sources; `orc rules credits` prints author, handle, repository,
661
+ licence, and what ORC took from each. Adapted from
662
+ [`petergyang/no-ai-slop`](https://github.com/petergyang/no-ai-slop) (MIT),
663
+ [`miqdadbadjuber/anti-slop`](https://github.com/miqdadbadjuber/anti-slop) (MIT),
664
+ [`ehmo/slopkit`](https://github.com/ehmo/slopkit),
665
+ [`BioInfo/slopless`](https://github.com/BioInfo/slopless), Andrej Karpathy's
666
+ `CLAUDE.md`, Matty Cartwright's Anti-Slop Writing Rules, and three papers on LLM
667
+ code smells.
668
+
669
+ **Precedence: house rules > your rules > ORC rules.** The house card is CODE and
670
+ BEHAVIOUR only - it says nothing about the words an agent writes, so it never
671
+ overrules a writing rule. A project rule beats an ORC rule OUTRIGHT: the rule is
672
+ removed from the slice and the removal is stated inside it.
673
+
674
+ **An override is counted the only honest way.** The CLI counts ORC rule ids you
675
+ NAMED, and says that is what it counted. A conflict you did not name is found by
676
+ the agent at dispatch and comes back as `rules_conflicts[]` - a gap, never a
677
+ silent choice. The CLI cannot parse intent, so it does not pretend to: the same
678
+ decision `orc doc rules` made about its structural boundary, for the same reason.
679
+
680
+ **`orc rules lint` is free, deterministic, and small on purpose.** It checks 13
681
+ of the 65 - banned lexicon and phrases, em dash DENSITY (a dose rule, measured
682
+ per file, because ORC's own docs use them), emoji headings, six comment shapes,
683
+ artifact filenames, `outline: none`, UI buzzwords - and it prints, in every mode
684
+ including `--json`: `not checked here: 52 rules. They need a reader, not a
685
+ matcher.` A clean exit that stands in for a review nobody did is the failure that
686
+ line prevents. It skips the rule packs themselves (a rule that bans a word has to
687
+ print that word to define it) and anything marked `orc-rules-ignore`, and counts
688
+ both rather than staying quiet.
689
+
690
+ **Findings are advisory. There is no gate.** A style preference that fails a
691
+ build gets switched off within a week, and then nothing is enforced at all.
692
+
693
+ The card rides in every slice of **28 lanes** - every one that writes words or
694
+ code. **`/orc-doc` is excluded by design**; it has `orc doc rules`. One assembler
695
+ (`orc rules slice`), because a card built in twenty-eight spines is
696
+ twenty-eight ideas of the precedence order, and because it is the only place the
697
+ per-spawn token weight can be measured. Measured: **~3 600 tokens** per
698
+ build-lane slice, ~2 200 for a prose lane.
699
+
700
+ **`orc ui` gains a Rules panel** - the ladder, your textarea, the 65 read-only
701
+ rows behind a filter, the credit table, and the lint.
702
+
703
+ ---
704
+
705
+ **`orc wiki`, one doc at a time.** Targeted refresh has existed since v0.33.0 and
706
+ is not rebuilt. What was missing is the other half: **adding one topic** to a
707
+ wiki that already exists. Until now a new coverage area only appeared as a
708
+ by-product of the coverage-gap sweep during a delta refresh, so "add the
709
+ remittance feature" had no path that did not re-plan every area in the repo.
710
+
711
+ - **`/orc-wiki update <doc-or-topic>`** - the targeted refresh, under the name
712
+ people actually type. A topic resolves to a doc first.
713
+ - **`/orc-wiki add "<topic>"`** - A0-A7: resolve, scope, confirm, reserve, scan,
714
+ write, sweep, check. Nothing spawns before the one confirmation turn.
715
+ - **`orc wiki resolve <topic>`** - free, no scan. A MATCH must beat the runner-up
716
+ by half again plus one; anything closer is **AMBIGUOUS and becomes a question**,
717
+ because two docs a point apart is exactly where guessing costs a scan of the
718
+ wrong area.
719
+ - **`orc wiki add <slug> --covers ...`** - reserves a stub carrying
720
+ `status: reserved` and a body that says nothing in it is evidence. A doc that
721
+ lies is worse than a doc that is missing.
722
+ - **`orc wiki refs [--check]`** - the DERIVED-REFERENCE sweep. After one doc
723
+ changes, six surfaces are behind it: the registration, reserved rows, the
724
+ orientation page, the architecture overview, the CLAUDE.md pointer's doc COUNT,
725
+ and any crosslink tag anchored to a file that is gone. It **repairs only the
726
+ registration**, because `orc wiki sync` is free and already the single writer.
727
+ Everything else is reported with its command - a sweep that silently
728
+ regenerated prose would be spending money nobody asked it to spend.
729
+
730
+ The Knowledge panel gains a **One doc at a time** card for both halves.
731
+
732
+ <details>
733
+ <summary><strong>Earlier releases</strong> — 114 of them, titles only. Full text in <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
734
+
735
+ - **v1.6.0** — the rule that can finally say no · _2026-09-07_
736
+ - **v1.5.0** — the lane that runs the test · _2026-09-07_
737
+ - **v1.4.2** — the panel that stops reloading, and the fields you could not read back · _2026-09-05_
738
+ - **v1.4.1** — the board you can actually use · _2026-09-05_
739
+ - **v1.4.0** — the agent panel, and the number that was missing · _2026-09-04_
740
+ - **v1.3.0** — build your own status line · _2026-09-04_
741
+ - **v1.2.1** — the status line says what ORC is doing · _2026-09-04_
742
+ - **v1.2.0** — a retry that cloned the agent, and a window you can watch empty · _2026-09-04_
743
+ - **v1.1.0** — the wait, and a window ORC can finally see · _2026-08-31_
744
+ - **v1.0.0** — config, phases and calls stop being prose · _2026-08-30_
745
+ - **v0.56.1** — a worker that is alive and doing nothing · _2026-08-28_
746
+ - **v0.56.0** — a rename moved the command, and nobody could reach the fix · _2026-08-27_
747
+ - **v0.55.2** — a gate that is never probed is a gate that is always off · _2026-08-27_
748
+ - **v0.55.1** — ORC is on npm · _2026-08-27_
749
+ - **v0.55.0** — a score is what a band needs, and four lanes do not have one · _2026-08-26_
750
+ - **v0.54.0** — a failed dispatch is a POSITION, not a blank page · _2026-08-25_
751
+ - **v0.53.4** — the reload that dropped its own token · _2026-08-24_
752
+ - **v0.53.3** — the key it never sent · _2026-08-24_
753
+ - **v0.53.2** — the cost that was paid and never written down · _2026-08-24_
754
+ - **v0.53.1** — "up to date" now names what it checked · _2026-08-23_
755
+ - **v0.53.0** — the schema the provider rejected, and a routing table you can read · _2026-08-23_
756
+ - **v0.52.0** — the connection that could not be used, and the routing nobody could see · _2026-08-23_
757
+ - **v0.51.0** — the tools you already have, and a connection that proves itself · _2026-08-22_
758
+ - **v0.50.0** — work that runs somewhere else · _2026-08-22_
759
+ - **v0.49.5** — house rules are text, and the hand-back writes itself · _2026-08-21_
760
+ - **v0.49.4** — the panel was being handed half an answer · _2026-08-20_
761
+ - **v0.49.3** — coverage on a large repo · _2026-08-19_
762
+ - **v0.49.2** — house rules, a run map before you pay, and three defects · _2026-08-18_
763
+ - **v0.49.1** — the challenge council, and a `--json` that stops throwing things away · _2026-08-18_
764
+ - **v0.49.0** — the document is a folder, and the file is a build artifact · _2026-08-17_
765
+ - **v0.48.1** — one file per thing, and a document that can be finished · _2026-08-16_
766
+ - **v0.48.0** — a document long enough to end a session, written anyway · _2026-08-13_
767
+ - **v0.47.0** — the lane that refuses to produce · _2026-08-12_
768
+ - **v0.46.1** — see a lane run before you pay for one · _2026-08-12_
769
+ - **v0.46.0** — a lane that remembers, a lane that declines, and a lane that measures · _2026-08-10_
770
+ - **v0.45.0** — `/orc-brainstorm`: for when you do not have the idea yet · _2026-08-10_
771
+ - **v0.44.1** — apply when you say so, and a spotlight that survives a banner · _2026-08-09_
772
+ - **v0.44.0** — the panel stops making you type what it already knows · _2026-08-09_
773
+ - **v0.43.7** — the flow you can see, and a boundary you can read · _2026-08-09_
774
+ - **v0.43.6** — `orc ui` in two languages, and panels that point at the right page · _2026-08-08_
775
+ - **v0.43.5** — the update check works, and the UI teaches itself · _2026-08-08_
776
+ - **v0.43.4** — a warning that finally clears, an Experiment panel, crosslink from the UI · _2026-08-08_
777
+ - **v0.43.3** — `orc ui`: it tells you about updates, and 36 keys stop being a wall · _2026-08-08_
778
+ - **v0.43.2** — `orc ui`: boxes stop colliding, because the container owns the gap · _2026-08-08_
779
+ - **v0.43.1** — the panel's stylesheet and script actually reach the browser · _2026-08-08_
780
+ - **v0.43.0** — `orc ui`: a control panel for everything that is not ai · _2026-08-08_
781
+ - **v0.42.0** — Say what you mean, see what it costs, find your way back · _2026-08-08_
782
+ - **v0.41.0** — A wiki that can tell you it is fresh, and TDD only where it can fail · _2026-08-06_
783
+ - **v0.40.0** — Gotchas: repair memory that outlives the run · _2026-08-06_
784
+ - **v0.39.0** — The read ladder, and foreign input that is evidence rather than instruction · _2026-08-06_
785
+ - **v0.38.1** — `orc doctor --json` + handoff carry-over that says what is re-derived · _2026-08-06_
786
+ - **v0.38.0** — `/orc-quick`: the quick lane, and the gate no config can collapse · _2026-08-05_
787
+ - **v0.37.0** — Stacked pull requests: a measured ship gate + two standalone lanes · _2026-08-03_
788
+ - **v0.36.0** — `opus5_only`: one model for every role, not just executors · _2026-08-02_
789
+ - **v0.35.0** — `opus5_executor_only`: one model, effort as the cost dial · _2026-08-02_
790
+ - **v0.34.8** — `orc pattern status` rejects a language key the payload has never heard of · _2026-08-01_
791
+ - **v0.34.7** — DIY: a usable status contract, and compile docs that match the compiler · _2026-08-01_
792
+ - **v0.34.6** — Analyze: the evidence gate now covers the rows a good analysis produces · _2026-08-01_
793
+ - **v0.34.5** — Wiki: stop losing tags silently, let a delta clear its own delta · _2026-08-01_
794
+ - **v0.34.4** — Planner: scorable facets, and TDD rules scoped to reality · _2026-08-01_
795
+ - **v0.34.3** — Slice boundary: the worktree, not the editor · _2026-08-01_
796
+ - **v0.34.2** — Trace subsystem: the pointer clobber, and a writer contract that holds · _2026-08-01_
797
+ - **v0.34.1** — Install integrity: run state survives `orc update` · _2026-08-01_
798
+ - **v0.34.0** — Opus 5: top scoring band, every core role, medium-effort session tier · _2026-07-25_
799
+ - **v0.33.0** — Knowledge deepening + verification revamp · _2026-07-25_
800
+ - **v0.32.0** — Trace revamp: narration is dispatched, not remembered · _2026-07-24_
801
+ - **v0.31.0** — Execution-integrity revamp: plan handoff, attributable traces, facet scoring · _2026-07-23_
802
+ - **v0.30.0** — Scoring revamp, Fable 5 role override, tier-aware guards, `orc onboarding` · _2026-07-23_
803
+ - **v0.29.0** — Drift-prevention hardening: install manifest + prune, `orc doctor`, a real test suite · _2026-07-22_
804
+ - **v0.28.1** — Defect fixes: package encoding, trace event routing, count/doc drift · _2026-07-22_
805
+ - **v0.28.0** — Run integrity: rich full-lane traces, deterministic wave stop, visible knowledge gates · _2026-07-21_
806
+ - **v0.27.0** — `/orc-poly`: plan one change across two-or-more repos without drift · _2026-07-20_
807
+ - **v0.26.0** — Test-gen output pinned to a visible `test-generator/<change-slug>/` deliverable · _2026-07-19_
808
+ - **v0.25.1** — Eval report: the full 17-lane suite graded against the v0.25.0 payload · _2026-07-18_
809
+ - **v0.25.0** — Deterministic artifact detection: a generated wiki/pattern is never missed · _2026-07-18_
810
+ - **v0.24.0** — Crosslink fused into wiki generation: always-on, per-scan-task, never wiped · _2026-07-18_
811
+ - **v0.23.0** — Trace fix: SPAWN restored on the `Agent` tool, stale runs rotate to fresh files · _2026-07-18_
812
+ - **v0.22.0** — `/orc-learn`: per-feature onboarding docs — learning.md + knowledge.md, wiki-deep, git-ignored · _2026-07-17_
813
+ - **v0.21.0** — Statusline shows live subscription usage: 5h ↔ weekly, official numbers · _2026-07-16_
814
+ - **v0.20.0** — One source of truth: generated executor agents + shared cross-lane contracts · _2026-07-16_
815
+ - **v0.19.0** — Thin spines: skill compaction, budget lint, and a trace that logs every phase · _2026-07-16_
816
+ - **v0.18.0** — `orc wiki sync`: the wiki registers itself — a paused scan is no longer an invisible wiki · _2026-07-15_
817
+ - **v0.17.3** — Trace the wiki consult: Phase 1 now logs whether the run grounded in the wiki (and if it was stale) · _2026-07-14_
818
+ - **v0.17.2** — Behavior-trace logging is permanent + the trace folder is now created deterministically · _2026-07-14_
819
+ - **v0.17.1** — Complete cross-repo crosslink setup guide in the orc-wiki README · _2026-07-14_
820
+ - **v0.17.0** — `orc crosslink`: cross-repo wiki references — advisory boundary contracts · _2026-07-14_
821
+ - **v0.16.1** — Interactive `orc diy` composer + numbered picks in `orc config` · _2026-07-14_
822
+ - **v0.16.0** — `/orc-diy`: build your own lane — CLI-composed flow, compiled, hard-gated · _2026-07-14_
823
+ - **v0.15.0** — Wiki v2: evidence-anchored docs · per-file staleness registry · integrity gate · _2026-07-14_
824
+ - **v0.14.0** — Postgres data-access playbook: cross-cutting query grounding · _2026-07-13_
825
+ - **v0.13.0** — `/orc-claude`: local CLAUDE.md builder — fenced sections, fingerprint refresh, zero questions · _2026-07-12_
826
+ - **v0.12.0** — Lossless context-combiner: conservation gate · overlap taxonomy · evidence freshness · _2026-07-12_
827
+ - **v0.11.0** — `/orc-fast`: knowledge-gated speed lane + wiki freshness infrastructure · _2026-07-12_
828
+ - **v0.10.1** — README: a fuller "Why ORC exists" · _2026-07-12_
829
+ - **v0.10.0** — `/orc-ultra`: max-effort advisor + three judgment gates for ultra-complex work · _2026-07-12_
830
+ - **v0.9.0** — Trust-but-verify the analyst→planner chain: quote-anchored evidence · coverage gate · anchored judgment · _2026-07-12_
831
+ - **v0.8.1** — /orc-retro delivers upstream: PR/issue to the ORC repo, channel-gated · _2026-07-12_
832
+ - **v0.8.0** — Close the loop: grounded intake · scoring anchors · OUTCOME marker · /orc-retro trace miner · eval harness · _2026-07-12_
833
+ - **v0.7.0** — Evidence everywhere: grounded plans · verbatim proof · anchored findings · contract lint · trace fixes · _2026-07-12_
834
+ - **v0.6.0** — P0–P3 ladder · house rules · deep playbooks + wired gates · 3 new languages · FE rule packs · security pass · _2026-07-11_
835
+ - **v0.5.1** — Statusline false-degrade fix · _2026-07-11_
836
+ - v0.5.0 — Code-pattern findings: executors match your house style, invariants always enforced
837
+ - v0.4.5 — Rewrite weak worker descriptions (the real score lever)
838
+ - v0.4.4 — Act on external review: raise sub-70 workers, fix cross-spine paths
839
+ - v0.4.3 — `orc-analyze`: trim description under the 1024-char skill-spec limit
840
+ - v0.4.2 — External-review pass: worked examples + sharper mini-analyst activation
841
+ - v0.4.1 — `orc-mini`: faster, safer fast-lane — smoke gate, opt-in tests, trimmed ceremony
842
+ - v0.4.0 — Opt-in Phase 6.5 Test Authoring (writes test cases, never runs them)
843
+ - v0.3.0 — Opt-in behavior-trace logging + claimed-vs-actual model verification
844
+ - v0.2.4 — `orc-analyze`: gather anchored adjacent-scope context (non-actionable)
845
+ - v0.2.3 — Context Combiner: merge 2+ related analyses into one combined spec
846
+ - v0.2.2 — Config: enforce per-key override-first resolution
847
+ - v0.2.1 — Move config editing into the `orc config` CLI (zero-token); drop `/orc-config`
848
+ - v0.2.0 — Doc-optional evidence-backed analyst + deep mode
849
+
850
+ </details>
651
851
 
652
852
  ## Requirements
653
853