chore: clear dead test and allowlist leftovers of dropped runtimes
Some checks failed
Tests / PR mergeability (push) Successful in 18s
Tests / Base branch health (push) Successful in 9s
Tests / Detect test scope (push) Successful in 16s
Tests / lint-tests (push) Failing after 1m43s
Tests / plugin-validate (push) Successful in 58s
Tests / test (ubuntu-latest, 24, shard 1/3) (push) Failing after 19s
Tests / test (ubuntu-latest, 24, shard 2/3) (push) Failing after 20s
Tests / test (ubuntu-latest, 24, shard 3/3) (push) Failing after 20s
Tests / test (ubuntu-latest, 24) (push) Failing after 18s
Tests / test (inert CI) (push) Has been skipped
Tests / QA loop walk (smell ratchet) (push) Failing after 19s
Tests / Coverage gate (merged shards) (push) Has been skipped
Tests / Publish emitted-baseline artifact (push) Has been skipped
Duplicate auto-close sweep / sweep (push) Successful in 19s
CI timeout budget report / report (push) Failing after 14s
Close Draft PRs (sweep) / Sweep open draft PRs (push) Successful in 9s
Dismiss Unauthorized PR Approvals / dismiss-unauthorized-approval (push) Successful in 9s
Tests / conformance test (macos-latest, 24) (push) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 1/3) (push) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 2/3) (push) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 3/3) (push) Has been cancelled
Tests / Required tests (push) Has been cancelled

This commit is contained in:
Jakub Zych
2026-10-06 20:30:09 +02:00
parent 792139b5ed
commit fe3ed06691
83 changed files with 308 additions and 1997 deletions

View File

@@ -193,7 +193,7 @@ Reviewer capabilities declare a cross-AI **reviewer lane** — one external CLI
model endpoint \`/msd-review\` hands a plan to (ADR-2782 D3). They are not install
targets: they emit no skills, agents, hooks or surface files, so their
extension-point and hook-kind cells are \`—\`. A host that is *also* a reviewer
(Claude, Codex, Cursor, OpenCode, Qwen, Antigravity) keeps one manifest and
(Claude, Codex, Cursor, OpenCode, Antigravity) keeps one manifest and
appears under **runtime** above, carrying its lane alongside its runtime body;
only lanes that MSD never installs into appear here.

View File

@@ -392,8 +392,8 @@ const RUNTIME_WORD_RE = new RegExp(
// Positive evidence that the line is on the MODEL axis. Required, not merely
// the absence of a runtime word: a reviewer demonstrated that "absence of a
// veto word" is not evidence, with `The installer now offers Gemini 3.`,
// `MSD installs cleanly on Gemini 3, Cline, and Codex.` and
// `Supported agents include Gemini 3, Cline, and Cursor.` all exiting 0 — the
// `MSD installs cleanly on Gemini 3, Cursor, and Codex.` and
// `Supported agents include Gemini 3, OpenCode, and Cursor.` all exiting 0 — the
// exact laundering class this guard exists to catch. Every real model-axis
// line in this repo names a model explicitly, so requiring it costs nothing
// and inverts the failure direction from "silently allow" to "flag".

View File

@@ -116,13 +116,6 @@
* SHARED `transliterateForSlug` primitive, so this is not an independent
* re-derivation of the transliteration step — only of the collapse/trim
* shape it deliberately keeps un-consolidated.
* - `src/runtime-artifact-conversion.cts` `normalizeKimiSkillName` — a Kimi
* runtime skill-name normalizer in a completely different domain (CLI
* skill invocation names, never a `.planning/` phase/plan/milestone
* slug); its negated class (`[^a-z0-9-]`) deliberately PRESERVES
* hyphens (a skill name may already contain them), the opposite of the
* slug seam's contract. Shaped like the re-derivation textually; not one
* by domain.
* - `scripts/generate-package-identity.cjs` `slugifyPackageName` —
* npm-scope-name-to-cache-filename prep. Runs PRE-BUILD (`npm run
* generate:identity`, step 1 of `npm run build`, before `build:lib`
@@ -209,7 +202,6 @@ const TOP_LEVEL_FUNCTION_RE = /^(?:export\s+)?function\s+([A-Za-z0-9_]+)\s*\(/;
const FUNCTION_SCOPED_EXEMPTIONS = new Map([
[path.join('src', 'core-utils.cts'), new Set(['generateSlugInternal'])],
[path.join('src', 'gsd2-import.cts'), new Set(['slugify'])],
[path.join('src', 'runtime-artifact-conversion.cts'), new Set(['normalizeKimiSkillName'])],
[path.join('scripts', 'generate-package-identity.cjs'), new Set(['slugifyPackageName'])],
]);

View File

@@ -150,8 +150,8 @@ const MSD_OWNED_NESTED = [
* them, for the same reason TEST_ENV_BASE derives its keys: a hand-list is only
* ever as complete as its author's recall, and this one was measurably not.
*
* Round 5's adversarial review found the hand-list missing Kilo's SINGULAR
* `command/`, `workflows/`, and Hermes' `skills/msd` -- the last being a whole
* Round 5's adversarial review found the hand-list missing a SINGULAR
* `command/` dir, `workflows/`, and a `skills/msd` dir -- the last being a whole
* directory whose name carries no `msd-` prefix, so no prefix rule reaches it.
* A capability that declares a new destSubpath now extends this set in the same
* commit that declares it.

View File

@@ -408,8 +408,8 @@ function runSmoke({
lifecycleCommands = ['init', 'discuss-phase', 'plan-phase', 'execute-phase'],
// claude and codex cover the two top-level config surfaces this scan knows
// how to read (settings.json, and hooks.json + config.toml). Most other
// runtimes reuse one of those two shapes; Cline does not (see
// RUNTIME_CONFIG_FILES), so they are out of scope here rather than covered.
// runtimes reuse one of those two shapes; any that do not are out of scope
// here rather than covered.
entrypointRuntimes = ['claude', 'codex'],
dryRun = false,
npmEnv = undefined,