@azure-id/orc 1.6.0 → 1.7.1

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 (84) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/README-id.md +206 -125
  3. package/README.md +202 -74
  4. package/bin/cli.js +1595 -2
  5. package/bin/mockrun-catalog.js +272 -267
  6. package/bin/verify-contracts.js +4553 -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/agents/orc-executor-haiku-4-5.md +9 -1
  28. package/templates/agents/orc-executor-opus-4-7-high.md +9 -1
  29. package/templates/agents/orc-executor-opus-4-7-med.md +9 -1
  30. package/templates/agents/orc-executor-opus-4-8-high.md +9 -1
  31. package/templates/agents/orc-executor-opus-5-high.md +9 -1
  32. package/templates/agents/orc-executor-opus-5-low.md +9 -1
  33. package/templates/agents/orc-executor-opus-5-med.md +9 -1
  34. package/templates/agents/orc-executor-sonnet-4-6-high.md +9 -1
  35. package/templates/agents/orc-executor-sonnet-4-6-med.md +9 -1
  36. package/templates/agents/orc-executor-sonnet-5-high.md +9 -1
  37. package/templates/commands/orc-rules.md +66 -0
  38. package/templates/commands/orc-wiki.md +23 -1
  39. package/templates/skills/_shared/README.md +61 -54
  40. package/templates/skills/_shared/extra-dispatch.md +1 -1
  41. package/templates/skills/_shared/phases/README.md +1 -0
  42. package/templates/skills/_shared/phases/execution.md +3 -1
  43. package/templates/skills/_shared/phases/preflight.md +20 -0
  44. package/templates/skills/_shared/phases/rules.md +159 -0
  45. package/templates/skills/_shared/return-validation.md +28 -0
  46. package/templates/skills/_shared/rules/CREDITS.md +141 -0
  47. package/templates/skills/_shared/rules/INDEX.md +107 -0
  48. package/templates/skills/_shared/rules/code.md +229 -0
  49. package/templates/skills/_shared/rules/delivery.md +114 -0
  50. package/templates/skills/_shared/rules/ui.md +139 -0
  51. package/templates/skills/_shared/rules/writing.md +223 -0
  52. package/templates/skills/context-combiner/SKILL.md +9 -1
  53. package/templates/skills/orc/SKILL.md +8 -1
  54. package/templates/skills/orc/references/preflight-report.md +6 -0
  55. package/templates/skills/orc/subskills/orc-execution/SKILL.md +2 -1
  56. package/templates/skills/orc/subskills/orc-execution/core.md +9 -1
  57. package/templates/skills/orc-aftermath/SKILL.md +7 -0
  58. package/templates/skills/orc-analyze/SKILL.md +7 -0
  59. package/templates/skills/orc-analyze-mini/SKILL.md +9 -1
  60. package/templates/skills/orc-boundary/SKILL.md +7 -0
  61. package/templates/skills/orc-brainstorm/SKILL.md +7 -0
  62. package/templates/skills/orc-budget/SKILL.md +7 -0
  63. package/templates/skills/orc-challenge/SKILL.md +7 -0
  64. package/templates/skills/orc-claude/SKILL.md +7 -0
  65. package/templates/skills/orc-diy/SKILL.md +7 -0
  66. package/templates/skills/orc-explain/SKILL.md +7 -0
  67. package/templates/skills/orc-export/SKILL.md +7 -0
  68. package/templates/skills/orc-fast/SKILL.md +9 -2
  69. package/templates/skills/orc-grill/SKILL.md +7 -0
  70. package/templates/skills/orc-handoff/SKILL.md +9 -1
  71. package/templates/skills/orc-learn/SKILL.md +7 -0
  72. package/templates/skills/orc-mini/SKILL.md +10 -3
  73. package/templates/skills/orc-pact/SKILL.md +7 -0
  74. package/templates/skills/orc-poly/SKILL.md +7 -0
  75. package/templates/skills/orc-pr-driver/SKILL.md +9 -1
  76. package/templates/skills/orc-pr-setup/SKILL.md +9 -1
  77. package/templates/skills/orc-quick/SKILL.md +9 -1
  78. package/templates/skills/orc-retro/SKILL.md +7 -0
  79. package/templates/skills/orc-route/SKILL.md +7 -0
  80. package/templates/skills/orc-test/SKILL.md +7 -0
  81. package/templates/skills/orc-verify/SKILL.md +7 -0
  82. package/templates/skills/orc-wiki/SKILL.md +15 -0
  83. package/templates/skills/orc-wiki/references/partial-refresh.md +68 -0
  84. 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.1-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.1** · updated 2026-09-14 · [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,152 @@ 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.1 - the rules card now reaches the agent _(2026-09-14)_
634
+
635
+ In v1.7.0, subagents and the preflight showed the house rules only. Your project
636
+ rules and the ORC rules did not reach the agent.
637
+
638
+ **The cause.** `orc rules slice` built the card correctly, but each place that
639
+ builds an executor slice named only the `house_rules` card. `/orc` Phase 3 also
640
+ did not load `rules.md`, and the `/orc` preflight had no `rules:` row.
641
+
642
+ **The fix.**
643
+
644
+ - **A new slice field, `rules_card`** - the `text` of
645
+ `orc rules slice --lane <lane> --json`, put in verbatim directly under
646
+ `house_rules` in `/orc`, `/orc-mini`, `/orc-fast`, `/orc-quick` and the
647
+ Extra foreign dispatch.
648
+ - **The executors read it** and return `rules_applied[]`, `rules_conflicts[]`
649
+ and `rules_overridden[]`.
650
+ - **The `/orc` preflight prints `rules:`** - the CLI `line`, verbatim.
651
+ - **Guards** - `rules_card` is a registered contract token, and a test checks
652
+ every dispatch site.
653
+
654
+ **How to check it.** Run `orc rules slice --lane orc --json`. When
655
+ `.claude/orc/rules.md` has rules, `line` shows `yours N lines` and `text`
656
+ starts with `YOUR PROJECT'S RULES`. Run `orc update` in your project to get the
657
+ fixed skills.
658
+
659
+ <details>
660
+ <summary><strong>Earlier releases</strong> — 115 of them, titles only. Full text in <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
661
+
662
+ - **v1.7.0** — the rules that keep the slop out · _2026-09-13_
663
+ - **v1.6.0** — the rule that can finally say no · _2026-09-07_
664
+ - **v1.5.0** — the lane that runs the test · _2026-09-07_
665
+ - **v1.4.2** — the panel that stops reloading, and the fields you could not read back · _2026-09-05_
666
+ - **v1.4.1** — the board you can actually use · _2026-09-05_
667
+ - **v1.4.0** — the agent panel, and the number that was missing · _2026-09-04_
668
+ - **v1.3.0** — build your own status line · _2026-09-04_
669
+ - **v1.2.1** — the status line says what ORC is doing · _2026-09-04_
670
+ - **v1.2.0** — a retry that cloned the agent, and a window you can watch empty · _2026-09-04_
671
+ - **v1.1.0** — the wait, and a window ORC can finally see · _2026-08-31_
672
+ - **v1.0.0** — config, phases and calls stop being prose · _2026-08-30_
673
+ - **v0.56.1** — a worker that is alive and doing nothing · _2026-08-28_
674
+ - **v0.56.0** — a rename moved the command, and nobody could reach the fix · _2026-08-27_
675
+ - **v0.55.2** — a gate that is never probed is a gate that is always off · _2026-08-27_
676
+ - **v0.55.1** — ORC is on npm · _2026-08-27_
677
+ - **v0.55.0** — a score is what a band needs, and four lanes do not have one · _2026-08-26_
678
+ - **v0.54.0** — a failed dispatch is a POSITION, not a blank page · _2026-08-25_
679
+ - **v0.53.4** — the reload that dropped its own token · _2026-08-24_
680
+ - **v0.53.3** — the key it never sent · _2026-08-24_
681
+ - **v0.53.2** — the cost that was paid and never written down · _2026-08-24_
682
+ - **v0.53.1** — "up to date" now names what it checked · _2026-08-23_
683
+ - **v0.53.0** — the schema the provider rejected, and a routing table you can read · _2026-08-23_
684
+ - **v0.52.0** — the connection that could not be used, and the routing nobody could see · _2026-08-23_
685
+ - **v0.51.0** — the tools you already have, and a connection that proves itself · _2026-08-22_
686
+ - **v0.50.0** — work that runs somewhere else · _2026-08-22_
687
+ - **v0.49.5** — house rules are text, and the hand-back writes itself · _2026-08-21_
688
+ - **v0.49.4** — the panel was being handed half an answer · _2026-08-20_
689
+ - **v0.49.3** — coverage on a large repo · _2026-08-19_
690
+ - **v0.49.2** — house rules, a run map before you pay, and three defects · _2026-08-18_
691
+ - **v0.49.1** — the challenge council, and a `--json` that stops throwing things away · _2026-08-18_
692
+ - **v0.49.0** — the document is a folder, and the file is a build artifact · _2026-08-17_
693
+ - **v0.48.1** — one file per thing, and a document that can be finished · _2026-08-16_
694
+ - **v0.48.0** — a document long enough to end a session, written anyway · _2026-08-13_
695
+ - **v0.47.0** — the lane that refuses to produce · _2026-08-12_
696
+ - **v0.46.1** — see a lane run before you pay for one · _2026-08-12_
697
+ - **v0.46.0** — a lane that remembers, a lane that declines, and a lane that measures · _2026-08-10_
698
+ - **v0.45.0** — `/orc-brainstorm`: for when you do not have the idea yet · _2026-08-10_
699
+ - **v0.44.1** — apply when you say so, and a spotlight that survives a banner · _2026-08-09_
700
+ - **v0.44.0** — the panel stops making you type what it already knows · _2026-08-09_
701
+ - **v0.43.7** — the flow you can see, and a boundary you can read · _2026-08-09_
702
+ - **v0.43.6** — `orc ui` in two languages, and panels that point at the right page · _2026-08-08_
703
+ - **v0.43.5** — the update check works, and the UI teaches itself · _2026-08-08_
704
+ - **v0.43.4** — a warning that finally clears, an Experiment panel, crosslink from the UI · _2026-08-08_
705
+ - **v0.43.3** — `orc ui`: it tells you about updates, and 36 keys stop being a wall · _2026-08-08_
706
+ - **v0.43.2** — `orc ui`: boxes stop colliding, because the container owns the gap · _2026-08-08_
707
+ - **v0.43.1** — the panel's stylesheet and script actually reach the browser · _2026-08-08_
708
+ - **v0.43.0** — `orc ui`: a control panel for everything that is not ai · _2026-08-08_
709
+ - **v0.42.0** — Say what you mean, see what it costs, find your way back · _2026-08-08_
710
+ - **v0.41.0** — A wiki that can tell you it is fresh, and TDD only where it can fail · _2026-08-06_
711
+ - **v0.40.0** — Gotchas: repair memory that outlives the run · _2026-08-06_
712
+ - **v0.39.0** — The read ladder, and foreign input that is evidence rather than instruction · _2026-08-06_
713
+ - **v0.38.1** — `orc doctor --json` + handoff carry-over that says what is re-derived · _2026-08-06_
714
+ - **v0.38.0** — `/orc-quick`: the quick lane, and the gate no config can collapse · _2026-08-05_
715
+ - **v0.37.0** — Stacked pull requests: a measured ship gate + two standalone lanes · _2026-08-03_
716
+ - **v0.36.0** — `opus5_only`: one model for every role, not just executors · _2026-08-02_
717
+ - **v0.35.0** — `opus5_executor_only`: one model, effort as the cost dial · _2026-08-02_
718
+ - **v0.34.8** — `orc pattern status` rejects a language key the payload has never heard of · _2026-08-01_
719
+ - **v0.34.7** — DIY: a usable status contract, and compile docs that match the compiler · _2026-08-01_
720
+ - **v0.34.6** — Analyze: the evidence gate now covers the rows a good analysis produces · _2026-08-01_
721
+ - **v0.34.5** — Wiki: stop losing tags silently, let a delta clear its own delta · _2026-08-01_
722
+ - **v0.34.4** — Planner: scorable facets, and TDD rules scoped to reality · _2026-08-01_
723
+ - **v0.34.3** — Slice boundary: the worktree, not the editor · _2026-08-01_
724
+ - **v0.34.2** — Trace subsystem: the pointer clobber, and a writer contract that holds · _2026-08-01_
725
+ - **v0.34.1** — Install integrity: run state survives `orc update` · _2026-08-01_
726
+ - **v0.34.0** — Opus 5: top scoring band, every core role, medium-effort session tier · _2026-07-25_
727
+ - **v0.33.0** — Knowledge deepening + verification revamp · _2026-07-25_
728
+ - **v0.32.0** — Trace revamp: narration is dispatched, not remembered · _2026-07-24_
729
+ - **v0.31.0** — Execution-integrity revamp: plan handoff, attributable traces, facet scoring · _2026-07-23_
730
+ - **v0.30.0** — Scoring revamp, Fable 5 role override, tier-aware guards, `orc onboarding` · _2026-07-23_
731
+ - **v0.29.0** — Drift-prevention hardening: install manifest + prune, `orc doctor`, a real test suite · _2026-07-22_
732
+ - **v0.28.1** — Defect fixes: package encoding, trace event routing, count/doc drift · _2026-07-22_
733
+ - **v0.28.0** — Run integrity: rich full-lane traces, deterministic wave stop, visible knowledge gates · _2026-07-21_
734
+ - **v0.27.0** — `/orc-poly`: plan one change across two-or-more repos without drift · _2026-07-20_
735
+ - **v0.26.0** — Test-gen output pinned to a visible `test-generator/<change-slug>/` deliverable · _2026-07-19_
736
+ - **v0.25.1** — Eval report: the full 17-lane suite graded against the v0.25.0 payload · _2026-07-18_
737
+ - **v0.25.0** — Deterministic artifact detection: a generated wiki/pattern is never missed · _2026-07-18_
738
+ - **v0.24.0** — Crosslink fused into wiki generation: always-on, per-scan-task, never wiped · _2026-07-18_
739
+ - **v0.23.0** — Trace fix: SPAWN restored on the `Agent` tool, stale runs rotate to fresh files · _2026-07-18_
740
+ - **v0.22.0** — `/orc-learn`: per-feature onboarding docs — learning.md + knowledge.md, wiki-deep, git-ignored · _2026-07-17_
741
+ - **v0.21.0** — Statusline shows live subscription usage: 5h ↔ weekly, official numbers · _2026-07-16_
742
+ - **v0.20.0** — One source of truth: generated executor agents + shared cross-lane contracts · _2026-07-16_
743
+ - **v0.19.0** — Thin spines: skill compaction, budget lint, and a trace that logs every phase · _2026-07-16_
744
+ - **v0.18.0** — `orc wiki sync`: the wiki registers itself — a paused scan is no longer an invisible wiki · _2026-07-15_
745
+ - **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_
746
+ - **v0.17.2** — Behavior-trace logging is permanent + the trace folder is now created deterministically · _2026-07-14_
747
+ - **v0.17.1** — Complete cross-repo crosslink setup guide in the orc-wiki README · _2026-07-14_
748
+ - **v0.17.0** — `orc crosslink`: cross-repo wiki references — advisory boundary contracts · _2026-07-14_
749
+ - **v0.16.1** — Interactive `orc diy` composer + numbered picks in `orc config` · _2026-07-14_
750
+ - **v0.16.0** — `/orc-diy`: build your own lane — CLI-composed flow, compiled, hard-gated · _2026-07-14_
751
+ - **v0.15.0** — Wiki v2: evidence-anchored docs · per-file staleness registry · integrity gate · _2026-07-14_
752
+ - **v0.14.0** — Postgres data-access playbook: cross-cutting query grounding · _2026-07-13_
753
+ - **v0.13.0** — `/orc-claude`: local CLAUDE.md builder — fenced sections, fingerprint refresh, zero questions · _2026-07-12_
754
+ - **v0.12.0** — Lossless context-combiner: conservation gate · overlap taxonomy · evidence freshness · _2026-07-12_
755
+ - **v0.11.0** — `/orc-fast`: knowledge-gated speed lane + wiki freshness infrastructure · _2026-07-12_
756
+ - **v0.10.1** — README: a fuller "Why ORC exists" · _2026-07-12_
757
+ - **v0.10.0** — `/orc-ultra`: max-effort advisor + three judgment gates for ultra-complex work · _2026-07-12_
758
+ - **v0.9.0** — Trust-but-verify the analyst→planner chain: quote-anchored evidence · coverage gate · anchored judgment · _2026-07-12_
759
+ - **v0.8.1** — /orc-retro delivers upstream: PR/issue to the ORC repo, channel-gated · _2026-07-12_
760
+ - **v0.8.0** — Close the loop: grounded intake · scoring anchors · OUTCOME marker · /orc-retro trace miner · eval harness · _2026-07-12_
761
+ - **v0.7.0** — Evidence everywhere: grounded plans · verbatim proof · anchored findings · contract lint · trace fixes · _2026-07-12_
762
+ - **v0.6.0** — P0–P3 ladder · house rules · deep playbooks + wired gates · 3 new languages · FE rule packs · security pass · _2026-07-11_
763
+ - **v0.5.1** — Statusline false-degrade fix · _2026-07-11_
764
+ - v0.5.0 — Code-pattern findings: executors match your house style, invariants always enforced
765
+ - v0.4.5 — Rewrite weak worker descriptions (the real score lever)
766
+ - v0.4.4 — Act on external review: raise sub-70 workers, fix cross-spine paths
767
+ - v0.4.3 — `orc-analyze`: trim description under the 1024-char skill-spec limit
768
+ - v0.4.2 — External-review pass: worked examples + sharper mini-analyst activation
769
+ - v0.4.1 — `orc-mini`: faster, safer fast-lane — smoke gate, opt-in tests, trimmed ceremony
770
+ - v0.4.0 — Opt-in Phase 6.5 Test Authoring (writes test cases, never runs them)
771
+ - v0.3.0 — Opt-in behavior-trace logging + claimed-vs-actual model verification
772
+ - v0.2.4 — `orc-analyze`: gather anchored adjacent-scope context (non-actionable)
773
+ - v0.2.3 — Context Combiner: merge 2+ related analyses into one combined spec
774
+ - v0.2.2 — Config: enforce per-key override-first resolution
775
+ - v0.2.1 — Move config editing into the `orc config` CLI (zero-token); drop `/orc-config`
776
+ - v0.2.0 — Doc-optional evidence-backed analyst + deep mode
777
+
778
+ </details>
651
779
 
652
780
  ## Requirements
653
781