diff --git a/README.md b/README.md
index 9d7eb1c..acfef85 100644
--- a/README.md
+++ b/README.md
@@ -6,10 +6,10 @@ A [Claude Code](https://claude.ai/code) plugin marketplace for **linter-driven d
| | Plugin | Version | For |
|---|--------|---------|-----|
-| 🐹 | [`go-linter-driven-development`](go-linter-driven-development/README.md) | 2.15.1 | Go |
-| 🐍 | [`python-linter-driven-development`](python-linter-driven-development/README.md) | 0.4.1 | Python |
-| 🧩 | [`linter-driven-development`](linter-driven-development/README.md) | 0.5.0 | Any language without a binding — detects the language at run time |
-| ⚛️ | [`ts-react-linter-driven-development`](ts-react-linter-driven-development/README.md) | 2.0.1 | TypeScript + React |
+| 🐹 | [`go-linter-driven-development`](go-linter-driven-development/README.md) | 2.16.0 | Go |
+| 🐍 | [`python-linter-driven-development`](python-linter-driven-development/README.md) | 0.5.0 | Python |
+| 🧩 | [`linter-driven-development`](linter-driven-development/README.md) | 0.6.0 | Any language without a binding — detects the language at run time |
+| ⚛️ | [`ts-react-linter-driven-development`](ts-react-linter-driven-development/README.md) | 2.1.0 | TypeScript + React |
Plus the coding rules as a single document, for a project that does not use the plugin:
diff --git a/go-linter-driven-development/.claude-plugin/plugin.json b/go-linter-driven-development/.claude-plugin/plugin.json
index d94f17f..40d3f63 100644
--- a/go-linter-driven-development/.claude-plugin/plugin.json
+++ b/go-linter-driven-development/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "go-linter-driven-development",
- "version": "2.15.1",
+ "version": "2.16.0",
"description": "Rules-as-data linter-driven development workflow for Go: 12 single-source rule files, thin directional skills (design, TDD implementation, refactoring, testing, review, documentation), a hunter/skeptic/critic review architecture with parallel single-rule reviewers, an over-abstraction skeptic, and a comment critic enforcing the Comment Value Toolbox, plus an OKF-conformant repo brain with a shippable CI conformance gate",
"author": {
"name": "Dan Mordechay"
diff --git a/go-linter-driven-development/CHANGELOG.md b/go-linter-driven-development/CHANGELOG.md
index 532da3a..6739421 100644
--- a/go-linter-driven-development/CHANGELOG.md
+++ b/go-linter-driven-development/CHANGELOG.md
@@ -5,6 +5,26 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased]
+## [2.16.0] - 2026-10-18
+
+### Changed
+
+- **A whole-repository review leaves the mutant question to scoped reviews.** On
+ `--all`, the hunter does not judge the question "does a mutant survive a leaf's
+ tests?". Its receipt reads `per-leaf, not judged`, and its `not reached:` line names
+ the three leaf directories with the most hits, each as the scoped review that
+ judges it (`/go-ldd-review
`). A scoped review judges the question in full. The lead for
+ the mutant question also skips `cmd/`, `main.go` and `handlers/`.
+- **The god file has a mechanical lead.** The question "is one feature's code spread
+ across layer directories?" lists the longest files in scope with `wc -l` and checks
+ each against revive's `file-length-limit` (450 lines). A file over the limit, or with
+ a `//nolint` that silences the limit, is a violation when it stands in for the
+ whole slice.
+- **The review command says how to cover a large repository.** On a repository
+ larger than a few dozen source files, `--all` reports `PARTIAL coverage`. The
+ command names the form that covers everything: one review per directory
+ (`/go-ldd-review `).
+
### Fixed
- **A claim that something is missing needs a listing.** A rule hunter that reports
@@ -14,6 +34,10 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
hunter once reported a test file as missing when it existed outside the scope.
When the hunter's budget leaves no call for the listing, the claim appears in the
hunter's `not reached:` line as `unverified`; the report never drops it.
+- **A cluster title carries its rule ids.** The review reference shows every cluster
+ title as `🔗 CLUSTER: — `, the same form as the skill. Agents
+ followed the reference, so the rule ids were on the lines below the title, and the
+ report graders missed correct clusters.
## [2.15.1] - 2026-10-15
diff --git a/lang/generic/passthrough/.claude-plugin/plugin.json b/lang/generic/passthrough/.claude-plugin/plugin.json
index 83a03dd..ed35253 100644
--- a/lang/generic/passthrough/.claude-plugin/plugin.json
+++ b/lang/generic/passthrough/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "linter-driven-development",
- "version": "0.5.0",
+ "version": "0.6.0",
"description": "Rules-as-data linter-driven development workflow for any language: the same 12 rules, thin directional skills (design, TDD implementation, refactoring, testing, review, documentation) and hunter/skeptic/critic review as the Go plugin, with the language detected from the repository at run time and its own linter run instead of a bundled one; plus an OKF-conformant repo brain with a shippable CI conformance gate",
"author": {
"name": "Dan Mordechay"
diff --git a/lang/generic/passthrough/CHANGELOG.md b/lang/generic/passthrough/CHANGELOG.md
index 6b238b8..626a349 100644
--- a/lang/generic/passthrough/CHANGELOG.md
+++ b/lang/generic/passthrough/CHANGELOG.md
@@ -5,6 +5,25 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased]
+## [0.6.0] - 2026-10-18
+
+### Changed
+
+- **A whole-repository review leaves the mutant question to scoped reviews.** On
+ `--all`, the hunter does not judge the question "does a mutant survive a leaf's
+ tests?". Its receipt reads `per-leaf, not judged`, and its `not reached:` line names
+ the three leaf directories with the most hits, each as the scoped review that
+ judges it (`/ldd-review `). A scoped review judges the question in full.
+- **The god file has a mechanical lead.** The question "is one feature's code spread
+ across layer directories?" lists the longest files in scope with `wc -l` and checks
+ each against the repository's own file-length limit, when its linter sets one. A file over the limit, or with
+ a suppression directive that silences the limit, is a violation when it stands in for the
+ whole slice.
+- **The review command says how to cover a large repository.** On a repository
+ larger than a few dozen source files, `--all` reports `PARTIAL coverage`. The
+ command names the form that covers everything: one review per directory
+ (`/ldd-review `).
+
### Fixed
- **A claim that something is missing needs a listing.** A rule hunter that reports
@@ -14,6 +33,10 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
hunter once reported a test file as missing when it existed outside the scope.
When the hunter's budget leaves no call for the listing, the claim appears in the
hunter's `not reached:` line as `unverified`; the report never drops it.
+- **A cluster title carries its rule ids.** The review reference shows every cluster
+ title as `🔗 CLUSTER: — `, the same form as the skill. Agents
+ followed the reference, so the rule ids were on the lines below the title, and the
+ report graders missed correct clusters.
## [0.5.0] - 2026-10-15
diff --git a/lang/go/passthrough/.claude-plugin/plugin.json b/lang/go/passthrough/.claude-plugin/plugin.json
index d94f17f..40d3f63 100644
--- a/lang/go/passthrough/.claude-plugin/plugin.json
+++ b/lang/go/passthrough/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "go-linter-driven-development",
- "version": "2.15.1",
+ "version": "2.16.0",
"description": "Rules-as-data linter-driven development workflow for Go: 12 single-source rule files, thin directional skills (design, TDD implementation, refactoring, testing, review, documentation), a hunter/skeptic/critic review architecture with parallel single-rule reviewers, an over-abstraction skeptic, and a comment critic enforcing the Comment Value Toolbox, plus an OKF-conformant repo brain with a shippable CI conformance gate",
"author": {
"name": "Dan Mordechay"
diff --git a/lang/go/passthrough/CHANGELOG.md b/lang/go/passthrough/CHANGELOG.md
index 532da3a..6739421 100644
--- a/lang/go/passthrough/CHANGELOG.md
+++ b/lang/go/passthrough/CHANGELOG.md
@@ -5,6 +5,26 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased]
+## [2.16.0] - 2026-10-18
+
+### Changed
+
+- **A whole-repository review leaves the mutant question to scoped reviews.** On
+ `--all`, the hunter does not judge the question "does a mutant survive a leaf's
+ tests?". Its receipt reads `per-leaf, not judged`, and its `not reached:` line names
+ the three leaf directories with the most hits, each as the scoped review that
+ judges it (`/go-ldd-review `). A scoped review judges the question in full. The lead for
+ the mutant question also skips `cmd/`, `main.go` and `handlers/`.
+- **The god file has a mechanical lead.** The question "is one feature's code spread
+ across layer directories?" lists the longest files in scope with `wc -l` and checks
+ each against revive's `file-length-limit` (450 lines). A file over the limit, or with
+ a `//nolint` that silences the limit, is a violation when it stands in for the
+ whole slice.
+- **The review command says how to cover a large repository.** On a repository
+ larger than a few dozen source files, `--all` reports `PARTIAL coverage`. The
+ command names the form that covers everything: one review per directory
+ (`/go-ldd-review `).
+
### Fixed
- **A claim that something is missing needs a listing.** A rule hunter that reports
@@ -14,6 +34,10 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
hunter once reported a test file as missing when it existed outside the scope.
When the hunter's budget leaves no call for the listing, the claim appears in the
hunter's `not reached:` line as `unverified`; the report never drops it.
+- **A cluster title carries its rule ids.** The review reference shows every cluster
+ title as `🔗 CLUSTER: — `, the same form as the skill. Agents
+ followed the reference, so the rule ids were on the lines below the title, and the
+ report graders missed correct clusters.
## [2.15.1] - 2026-10-15
diff --git a/lang/python/passthrough/.claude-plugin/plugin.json b/lang/python/passthrough/.claude-plugin/plugin.json
index 3d0c112..266bf85 100644
--- a/lang/python/passthrough/.claude-plugin/plugin.json
+++ b/lang/python/passthrough/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "python-linter-driven-development",
- "version": "0.4.1",
+ "version": "0.5.0",
"description": "Rules-as-data linter-driven development workflow for Python: the same 12 rules, thin directional skills (design, TDD implementation, refactoring, testing, review, documentation) and hunter/skeptic/critic review as the Go plugin, rendered with Python knowledge — ruff, ty and mypy routing, pytest, dataclasses and Protocols, threads and asyncio, docstrings; plus an OKF-conformant repo brain with a shippable CI conformance gate",
"author": {
"name": "Dan Mordechay"
diff --git a/lang/python/passthrough/CHANGELOG.md b/lang/python/passthrough/CHANGELOG.md
index 7082a34..d637c49 100644
--- a/lang/python/passthrough/CHANGELOG.md
+++ b/lang/python/passthrough/CHANGELOG.md
@@ -5,6 +5,25 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased]
+## [0.5.0] - 2026-10-18
+
+### Changed
+
+- **A whole-repository review leaves the mutant question to scoped reviews.** On
+ `--all`, the hunter does not judge the question "does a mutant survive a leaf's
+ tests?". Its receipt reads `per-leaf, not judged`, and its `not reached:` line names
+ the three leaf directories with the most hits, each as the scoped review that
+ judges it (`/py-ldd-review `). A scoped review judges the question in full. The lead for
+ the mutant question also skips `handlers/`, `__main__.py`, `main.py` and `cli.py`.
+- **The god file has a mechanical lead.** The question "is one feature's code spread
+ across layer directories?" lists the longest files in scope with `wc -l` and checks
+ each against 450 lines (ruff has no file-length rule). A file over the limit is a violation when it stands in for the
+ whole slice.
+- **The review command says how to cover a large repository.** On a repository
+ larger than a few dozen source files, `--all` reports `PARTIAL coverage`. The
+ command names the form that covers everything: one review per directory
+ (`/py-ldd-review `).
+
### Fixed
- **A claim that something is missing needs a listing.** A rule hunter that reports
@@ -14,6 +33,15 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
hunter once reported a test file as missing when it existed outside the scope.
When the hunter's budget leaves no call for the listing, the claim appears in the
hunter's `not reached:` line as `unverified`; the report never drops it.
+- **A cluster title carries its rule ids.** The review reference shows every cluster
+ title as `🔗 CLUSTER: — `, the same form as the skill. Agents
+ followed the reference, so the rule ids were on the lines below the title, and the
+ report graders missed correct clusters.
+- **The mutant hand check reads the error assertions.** The hand check opens the
+ leaf's test file, also when the file is outside the review's scope, and reads each
+ error assertion. An assertion that matches only a word all the leaf's errors share
+ (`match="tenant"`) lets a removed check or a changed message survive, and it is a
+ violation. The check runs once for each leaf file in scope, not only where a hit row points.
## [0.4.1] - 2026-10-15
diff --git a/lang/ts-react/passthrough/.claude-plugin/plugin.json b/lang/ts-react/passthrough/.claude-plugin/plugin.json
index 1e9b84f..cb2c190 100644
--- a/lang/ts-react/passthrough/.claude-plugin/plugin.json
+++ b/lang/ts-react/passthrough/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "ts-react-linter-driven-development",
- "version": "2.0.1",
+ "version": "2.1.0",
"description": "Rules-as-data linter-driven development workflow for TypeScript + React: the same 12 rules, thin directional skills (design, TDD implementation, refactoring, testing, review, documentation) and hunter/skeptic/critic review as the Go plugin, rendered with TypeScript and React knowledge — ESLint and SonarJS routing, Vitest with React Testing Library and MSW, discriminated unions and `readonly` types, effects and query ownership, JSDoc; plus an OKF-conformant repo brain with a shippable CI conformance gate",
"author": {
"name": "Dan Mordechay"
diff --git a/lang/ts-react/passthrough/CHANGELOG.md b/lang/ts-react/passthrough/CHANGELOG.md
index 9261f59..95cb39b 100644
--- a/lang/ts-react/passthrough/CHANGELOG.md
+++ b/lang/ts-react/passthrough/CHANGELOG.md
@@ -5,6 +5,26 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased]
+## [2.1.0] - 2026-10-18
+
+### Changed
+
+- **A whole-repository review leaves the mutant question to scoped reviews.** On
+ `--all`, the hunter does not judge the question "does a mutant survive a leaf's
+ tests?". Its receipt reads `per-leaf, not judged`, and its `not reached:` line names
+ the three leaf directories with the most hits, each as the scoped review that
+ judges it (`/tsr-ldd-review `). A scoped review judges the question in full. The lead for
+ the mutant question also skips `.tsx` files, `components/`, `hooks/` and `context/`.
+- **The god file has a mechanical lead.** The question "is one feature's code spread
+ across layer directories?" lists the longest files in scope with `wc -l` and checks
+ each against `sonarjs/max-lines` (600). A file over the limit, or with
+ a `max-lines` directive that silences the rule, is a violation when it stands in for the
+ whole slice.
+- **The review command says how to cover a large repository.** On a repository
+ larger than a few dozen source files, `--all` reports `PARTIAL coverage`. The
+ command names the form that covers everything: one review per directory
+ (`/tsr-ldd-review `).
+
### Fixed
- **A claim that something is missing needs a listing.** A rule hunter that reports
@@ -14,6 +34,15 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
hunter once reported a test file as missing when it existed outside the scope.
When the hunter's budget leaves no call for the listing, the claim appears in the
hunter's `not reached:` line as `unverified`; the report never drops it.
+- **A cluster title carries its rule ids.** The review reference shows every cluster
+ title as `🔗 CLUSTER: — `, the same form as the skill. Agents
+ followed the reference, so the rule ids were on the lines below the title, and the
+ report graders missed correct clusters.
+- **The mutant hand check reads the error assertions.** The hand check opens the
+ leaf's test file, also when the file is outside the review's scope, and reads each
+ error assertion. An assertion that matches only a word all the leaf's errors share
+ (`toThrow('tenant')`) lets a removed check or a changed message survive, and it is a
+ violation.
## [2.0.1] - 2026-10-15
diff --git a/linter-driven-development/.claude-plugin/plugin.json b/linter-driven-development/.claude-plugin/plugin.json
index 83a03dd..ed35253 100644
--- a/linter-driven-development/.claude-plugin/plugin.json
+++ b/linter-driven-development/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "linter-driven-development",
- "version": "0.5.0",
+ "version": "0.6.0",
"description": "Rules-as-data linter-driven development workflow for any language: the same 12 rules, thin directional skills (design, TDD implementation, refactoring, testing, review, documentation) and hunter/skeptic/critic review as the Go plugin, with the language detected from the repository at run time and its own linter run instead of a bundled one; plus an OKF-conformant repo brain with a shippable CI conformance gate",
"author": {
"name": "Dan Mordechay"
diff --git a/linter-driven-development/CHANGELOG.md b/linter-driven-development/CHANGELOG.md
index 6b238b8..626a349 100644
--- a/linter-driven-development/CHANGELOG.md
+++ b/linter-driven-development/CHANGELOG.md
@@ -5,6 +5,25 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased]
+## [0.6.0] - 2026-10-18
+
+### Changed
+
+- **A whole-repository review leaves the mutant question to scoped reviews.** On
+ `--all`, the hunter does not judge the question "does a mutant survive a leaf's
+ tests?". Its receipt reads `per-leaf, not judged`, and its `not reached:` line names
+ the three leaf directories with the most hits, each as the scoped review that
+ judges it (`/ldd-review `). A scoped review judges the question in full.
+- **The god file has a mechanical lead.** The question "is one feature's code spread
+ across layer directories?" lists the longest files in scope with `wc -l` and checks
+ each against the repository's own file-length limit, when its linter sets one. A file over the limit, or with
+ a suppression directive that silences the limit, is a violation when it stands in for the
+ whole slice.
+- **The review command says how to cover a large repository.** On a repository
+ larger than a few dozen source files, `--all` reports `PARTIAL coverage`. The
+ command names the form that covers everything: one review per directory
+ (`/ldd-review `).
+
### Fixed
- **A claim that something is missing needs a listing.** A rule hunter that reports
@@ -14,6 +33,10 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
hunter once reported a test file as missing when it existed outside the scope.
When the hunter's budget leaves no call for the listing, the claim appears in the
hunter's `not reached:` line as `unverified`; the report never drops it.
+- **A cluster title carries its rule ids.** The review reference shows every cluster
+ title as `🔗 CLUSTER: — `, the same form as the skill. Agents
+ followed the reference, so the rule ids were on the lines below the title, and the
+ report graders missed correct clusters.
## [0.5.0] - 2026-10-15
diff --git a/python-linter-driven-development/.claude-plugin/plugin.json b/python-linter-driven-development/.claude-plugin/plugin.json
index 3d0c112..266bf85 100644
--- a/python-linter-driven-development/.claude-plugin/plugin.json
+++ b/python-linter-driven-development/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "python-linter-driven-development",
- "version": "0.4.1",
+ "version": "0.5.0",
"description": "Rules-as-data linter-driven development workflow for Python: the same 12 rules, thin directional skills (design, TDD implementation, refactoring, testing, review, documentation) and hunter/skeptic/critic review as the Go plugin, rendered with Python knowledge — ruff, ty and mypy routing, pytest, dataclasses and Protocols, threads and asyncio, docstrings; plus an OKF-conformant repo brain with a shippable CI conformance gate",
"author": {
"name": "Dan Mordechay"
diff --git a/python-linter-driven-development/CHANGELOG.md b/python-linter-driven-development/CHANGELOG.md
index 7082a34..d637c49 100644
--- a/python-linter-driven-development/CHANGELOG.md
+++ b/python-linter-driven-development/CHANGELOG.md
@@ -5,6 +5,25 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased]
+## [0.5.0] - 2026-10-18
+
+### Changed
+
+- **A whole-repository review leaves the mutant question to scoped reviews.** On
+ `--all`, the hunter does not judge the question "does a mutant survive a leaf's
+ tests?". Its receipt reads `per-leaf, not judged`, and its `not reached:` line names
+ the three leaf directories with the most hits, each as the scoped review that
+ judges it (`/py-ldd-review `). A scoped review judges the question in full. The lead for
+ the mutant question also skips `handlers/`, `__main__.py`, `main.py` and `cli.py`.
+- **The god file has a mechanical lead.** The question "is one feature's code spread
+ across layer directories?" lists the longest files in scope with `wc -l` and checks
+ each against 450 lines (ruff has no file-length rule). A file over the limit is a violation when it stands in for the
+ whole slice.
+- **The review command says how to cover a large repository.** On a repository
+ larger than a few dozen source files, `--all` reports `PARTIAL coverage`. The
+ command names the form that covers everything: one review per directory
+ (`/py-ldd-review `).
+
### Fixed
- **A claim that something is missing needs a listing.** A rule hunter that reports
@@ -14,6 +33,15 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
hunter once reported a test file as missing when it existed outside the scope.
When the hunter's budget leaves no call for the listing, the claim appears in the
hunter's `not reached:` line as `unverified`; the report never drops it.
+- **A cluster title carries its rule ids.** The review reference shows every cluster
+ title as `🔗 CLUSTER: — `, the same form as the skill. Agents
+ followed the reference, so the rule ids were on the lines below the title, and the
+ report graders missed correct clusters.
+- **The mutant hand check reads the error assertions.** The hand check opens the
+ leaf's test file, also when the file is outside the review's scope, and reads each
+ error assertion. An assertion that matches only a word all the leaf's errors share
+ (`match="tenant"`) lets a removed check or a changed message survive, and it is a
+ violation. The check runs once for each leaf file in scope, not only where a hit row points.
## [0.4.1] - 2026-10-15
diff --git a/ts-react-linter-driven-development/.claude-plugin/plugin.json b/ts-react-linter-driven-development/.claude-plugin/plugin.json
index 1e9b84f..cb2c190 100644
--- a/ts-react-linter-driven-development/.claude-plugin/plugin.json
+++ b/ts-react-linter-driven-development/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "ts-react-linter-driven-development",
- "version": "2.0.1",
+ "version": "2.1.0",
"description": "Rules-as-data linter-driven development workflow for TypeScript + React: the same 12 rules, thin directional skills (design, TDD implementation, refactoring, testing, review, documentation) and hunter/skeptic/critic review as the Go plugin, rendered with TypeScript and React knowledge — ESLint and SonarJS routing, Vitest with React Testing Library and MSW, discriminated unions and `readonly` types, effects and query ownership, JSDoc; plus an OKF-conformant repo brain with a shippable CI conformance gate",
"author": {
"name": "Dan Mordechay"
diff --git a/ts-react-linter-driven-development/CHANGELOG.md b/ts-react-linter-driven-development/CHANGELOG.md
index 9261f59..95cb39b 100644
--- a/ts-react-linter-driven-development/CHANGELOG.md
+++ b/ts-react-linter-driven-development/CHANGELOG.md
@@ -5,6 +5,26 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased]
+## [2.1.0] - 2026-10-18
+
+### Changed
+
+- **A whole-repository review leaves the mutant question to scoped reviews.** On
+ `--all`, the hunter does not judge the question "does a mutant survive a leaf's
+ tests?". Its receipt reads `per-leaf, not judged`, and its `not reached:` line names
+ the three leaf directories with the most hits, each as the scoped review that
+ judges it (`/tsr-ldd-review `). A scoped review judges the question in full. The lead for
+ the mutant question also skips `.tsx` files, `components/`, `hooks/` and `context/`.
+- **The god file has a mechanical lead.** The question "is one feature's code spread
+ across layer directories?" lists the longest files in scope with `wc -l` and checks
+ each against `sonarjs/max-lines` (600). A file over the limit, or with
+ a `max-lines` directive that silences the rule, is a violation when it stands in for the
+ whole slice.
+- **The review command says how to cover a large repository.** On a repository
+ larger than a few dozen source files, `--all` reports `PARTIAL coverage`. The
+ command names the form that covers everything: one review per directory
+ (`/tsr-ldd-review `).
+
### Fixed
- **A claim that something is missing needs a listing.** A rule hunter that reports
@@ -14,6 +34,15 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
hunter once reported a test file as missing when it existed outside the scope.
When the hunter's budget leaves no call for the listing, the claim appears in the
hunter's `not reached:` line as `unverified`; the report never drops it.
+- **A cluster title carries its rule ids.** The review reference shows every cluster
+ title as `🔗 CLUSTER: — `, the same form as the skill. Agents
+ followed the reference, so the rule ids were on the lines below the title, and the
+ report graders missed correct clusters.
+- **The mutant hand check reads the error assertions.** The hand check opens the
+ leaf's test file, also when the file is outside the review's scope, and reads each
+ error assertion. An assertion that matches only a word all the leaf's errors share
+ (`toThrow('tenant')`) lets a removed check or a changed message survive, and it is a
+ violation.
## [2.0.1] - 2026-10-15