From 76d47ebb951a6cdacaeac771dfe78b8edfc97888 Mon Sep 17 00:00:00 2001 From: Rob Sherman Date: Thu, 30 Jul 2026 14:40:13 -0700 Subject: [PATCH] Updated mintlify pages - Updated changelog.mdx - Updated introduction.mdx Mintlify-Source: dashboard-editor --- changelog.mdx | 10 ++++++++-- introduction.mdx | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/changelog.mdx b/changelog.mdx index cb9b123..5d863ce 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -8,6 +8,13 @@ All notable changes to the `pm` plugin, mirroring [CHANGELOG.md](https://github. --- + + ### Added + + - **`rules-target` — a read-only query printing the absolute path of the file the resolved platform's rules block belongs in**, walking that platform's first-match-wins chain. It deliberately does _not_ record a platform: a query must not mutate state the way `write-rules` does. + It exists so tooling around pm never has to mirror `PLATFORM_RULES_CHAIN`. `evals/observe.py` hardcoded `CLAUDE.md`, which 0.24.0 quietly turned into a _second_ platform seam — once the engine began writing a per-platform target, the observer reported `rules_block_present: false` for any platform whose block lands elsewhere. That is a confident wrong answer, and it would have surfaced on the first Hermes or Codex run as a parity failure that is not real. Copying the chain into Python was rejected: a second copy of platform knowledge only _moves_ the drift instead of removing it. + + ### Added @@ -16,8 +23,7 @@ All notable changes to the `pm` plugin, mirroring [CHANGELOG.md](https://github. ### Changed - - **The test suite is now `scripts/test/*.test.mjs` (11 files) instead of one `scripts/conductor.test.mjs`, so it runs in parallel.** Contributor-facing: the command is `node --test scripts/test/*.test.mjs`. Measured rather than guessed — one engine spawn costs ~73ms and the suite makes 676 of them, so ~49s was pure `node` startup, serialized in a single file on a 16-core machine; `node --test` parallelizes across _files_ only. The split is verbatim, verified by test-name-set equality (255 → 255). Note `node --test scripts/test` (a directory) does **not** work — Node treats the argument as a module to execute and dies with `MODULE_NOT_FOUND` while reporting "1 test". - **How much faster depends entirely on free cores, so treat any single headline number with salt.** Measured on this project: an otherwise-idle 16-core workstation went ~118s → ~46s (2.6×), but the _same_ machine under load (~12) went ~146s → ~122s — only 1.2×, because parallel execution is exactly what suffers when cores are already contended. On CI, whole-workflow time went from ~52–58s to ~38–48s (~1.3×). On a busy laptop or a few-core runner, expect the low end. + - **The test suite is now `scripts/test/*.test.mjs` (11 files) instead of one `scripts/conductor.test.mjs`, so it runs in parallel.** Contributor-facing: the command is `node --test scripts/test/*.test.mjs`. Measured rather than guessed — one engine spawn costs ~73ms and the suite makes 676 of them, so ~49s was pure `node` startup, serialized in a single file on a 16-core machine; `node --test` parallelizes across _files_ only. The split is verbatim, verified by test-name-set equality (255 → 255). Note `node --test scripts/test` (a directory) does **not** work — Node treats the argument as a module to execute and dies with `MODULE_NOT_FOUND` while reporting "1 test". **How much faster depends entirely on free cores, so treat any single headline number with salt.** Measured on this project: an otherwise-idle 16-core workstation went ~118s → ~46s (2.6×), but the _same_ machine under load (~12) went ~146s → ~122s — only 1.2×, because parallel execution is exactly what suffers when cores are already contended. On CI, whole-workflow time went from ~52–58s to ~38–48s (~1.3×). On a busy laptop or a few-core runner, expect the low end. - **`.githooks/pre-commit` now aborts if the suite runs fewer tests than are declared.** The glob makes a partial-suite pass possible in a way the single file never did: if a file stops matching, everything still goes green, just on a subset. The hook cross-checks the runner's count against `grep -Hc '^test('` across the files — self-maintaining, with no constant to bump as tests are added. ### Fixed diff --git a/introduction.mdx b/introduction.mdx index 7df8256..49eefdf 100644 --- a/introduction.mdx +++ b/introduction.mdx @@ -55,8 +55,8 @@ These aren't benchmarks — they're real figures pulled mechanically from PM's o | Metric | Value | | --- | --- | -| Releases shipped end-to-end (spec → build → test → changelog → release) | **38** | -| Tests in the engine | **282** | +| Releases shipped end-to-end (spec → build → test → changelog → release) | **39** | +| Tests in the engine | **287** | | Lines of engine code (`scripts/conductor.mjs` \+ `scripts/lib/*.mjs`) | **~2,900** | | External dependencies | **0** |