Files
msd-core/scripts/lib/platform-conformance-tier.generated.cjs
sim 9c20b7b40a fix(#4652): use the validated path, collapse the duplication, correct two false claims
Seven findings from the two-axis review, all fixed in place.

THE ONE THAT MATTERS: cmdTodoComplete validated sourcePath and targetPath and
then ran every fs call against the RAW strings — existsSync, statSync,
readFileSync, platformWriteSync, unlinkSync, and the dry-run path payload —
never sourceCheck.resolved / targetCheck.resolved. That is the exact
"validate one path, use another" shape ADR-4650 names as the defect this epic
exists to prevent, and it is the same bug this phase had just fixed in
check-command-router. Committed inside the fix for it. All I/O now uses the
resolved paths; user-facing messages still echo the raw filename, never a
resolved absolute path.

A VACUOUS TEST, and the false doc claim it was propping up. The test
"[RED #4327] an absolute path outside the project is rejected" would have
passed with ZERO containment logic: path.join(pendingDir, '/abs/outside/x')
yields <pendingDir>/abs/outside/x — Node does not let a later absolute segment
escape — so the name is FOLDED under the root, passes containment, and simply
404s. The test only ever observed "Todo not found". It now asserts what is
actually true and actually valuable: an absolute name is neutralized, and the
real outside file is not read, not moved, and still present afterward.
docs/CLI-TOOLS.md claimed such a path "is rejected as a usage error", which
was false; it now describes the fold-under-root behavior. Traversal and
embedded separators ARE rejected, and those claims stand.

DUPLICATION THIS EPIC EXISTS TO REMOVE. resolvePath already did
isAbsolute-or-join + validatePath + reject; cmdGapAnalysisPlanPost and
cmdCheckPredicate each re-inlined the identical triplet in the same file. Both
now call resolvePath. Cost, stated rather than hidden: its generic message
replaces the two sites' distinct "phase-dir escapes…" wording. The message
still names the offending input, and one predicate with one message is the
point.

SYMLINK COVERAGE was required by #4652's "Done when" and was missing. Added
for both the todos root and --phase-dir, skipping cleanly on EPERM so the
Windows lanes do not fail where unprivileged symlink creation is disallowed.

Both fast-check properties were UNSEEDED. Seeded now.

The changeset named "check decision-coverage-plan" as a boundary; that is a
caller of the shared resolvePath, which the body never mentioned. Corrected.

DISCLOSED, not hidden: ctx.phaseDir is now always the resolved ABSOLUTE path,
so ${PHASE_DIR} interpolation and the "not found in <targetDir>" message show
an absolute value where a relative --phase-dir previously produced a relative
one. That is an observable output change. A test pins it and
docs/reference/gate-predicates.md states it.

Also regenerated scripts/lib/platform-conformance-tier.generated.cjs and its
macos twin — the new tests changed check-predicate.test.cjs's tier
classification. Caught by npm run lint:ci locally rather than by a bench run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 09:43:50 -04:00

276 lines
11 KiB
JavaScript

// GENERATED FILE — do not hand-edit. Run `node scripts/gen-platform-conformance-tier.cjs --write` to regenerate.
'use strict';
module.exports = {
CONFORMANCE_TIER_FILES: [
"tests/adr-index-gate.test.cjs",
"tests/adr857-core-without-capabilities.test.cjs",
"tests/agent-install-check.test.cjs",
"tests/agent-install-validation.test.cjs",
"tests/agent-skills.test.cjs",
"tests/antigravity-upgrades.test.cjs",
"tests/api-coverage-gate-e2e.test.cjs",
"tests/api-coverage.test.cjs",
"tests/assumption-delta-checkpoint-e2e.test.cjs",
"tests/assumption-delta.test.cjs",
"tests/audit-command-cutover.test.cjs",
"tests/augment-upgrades.test.cjs",
"tests/broken-windows.test.cjs",
"tests/capability-cli.test.cjs",
"tests/capability-command-dispatch.test.cjs",
"tests/capability-consent.test.cjs",
"tests/capability-ledger.test.cjs",
"tests/capability-lifecycle.test.cjs",
"tests/capability-loader.test.cjs",
"tests/capability-lock-mkdir-failure-3987.test.cjs",
"tests/capability-probe-fallback.test.cjs",
"tests/capability-source.test.cjs",
"tests/capability-state.test.cjs",
"tests/changeset-new.test.cjs",
"tests/check-env.test.cjs",
"tests/check-gap-analysis-plan-post-e2e.test.cjs",
"tests/check-glossary-refs.test.cjs",
"tests/check-predicate.test.cjs",
"tests/check-tdd-review-checkpoint-e2e.test.cjs",
"tests/check-ui-safety-gate.test.cjs",
"tests/check-update-config-dir.test.cjs",
"tests/chunked-planning-parallel.test.cjs",
"tests/ci-docs-guard-registry.test.cjs",
"tests/ci-rebase-check.test.cjs",
"tests/ci-test-scope.test.cjs",
"tests/cjs-command-router-adapter.test.cjs",
"tests/claude-md.test.cjs",
"tests/cline-install.test.cjs",
"tests/close-phase-todos-padded-resolves.test.cjs",
"tests/code-review-pipeline-regression.test.cjs",
"tests/code-review-tier3-files-override-scoping.test.cjs",
"tests/code-review.test.cjs",
"tests/codex-config-agents.test.cjs",
"tests/codex-config-hooks.test.cjs",
"tests/codex-config-install.test.cjs",
"tests/codex-config.test.cjs",
"tests/codex-inherit-smoke.test.cjs",
"tests/command-routing-hub.test.cjs",
"tests/commands.test.cjs",
"tests/commit-files-deletion.test.cjs",
"tests/commit-files-pathspec.test.cjs",
"tests/commonjs-marker.test.cjs",
"tests/compact-content-4139.test.cjs",
"tests/completion-ratio-scope-withholding.test.cjs",
"tests/config-defaults-runtime-exclusion.test.cjs",
"tests/config-get-default.test.cjs",
"tests/config-loader.test.cjs",
"tests/config-schema.property.test.cjs",
"tests/config.test.cjs",
"tests/copilot-install.test.cjs",
"tests/copilot-upgrades.test.cjs",
"tests/core-utils.test.cjs",
"tests/cursor-hook-workspace-roots.test.cjs",
"tests/cursor-hooks.test.cjs",
"tests/cursor-subagent-isolation.test.cjs",
"tests/dispatcher.test.cjs",
"tests/drift-detection.test.cjs",
"tests/effort-surface-axis.test.cjs",
"tests/effort-sync-installed-runtime.test.cjs",
"tests/emitted-ack-trailer.test.cjs",
"tests/emitted-attribution.test.cjs",
"tests/emitted-provenance.test.cjs",
"tests/ensure-runtime-build.test.cjs",
"tests/eslint-rules.test.cjs",
"tests/execute-phase-decimal-arithmetic.test.cjs",
"tests/execute-phase-worktree-guard.test.cjs",
"tests/execute-plan-update-codebase-map-diff-base.test.cjs",
"tests/execute-wave-post-gate-pipeline-e2e.test.cjs",
"tests/executed-plan.test.cjs",
"tests/executor-mvp-tdd-section.test.cjs",
"tests/external-descriptor-confinement.test.cjs",
"tests/failing-direction.test.cjs",
"tests/fallow-runner.test.cjs",
"tests/faulty-deps.test.cjs",
"tests/feat-2483-review-claude-mds-guard.test.cjs",
"tests/features-index-gate.test.cjs",
"tests/frontmatter.test.cjs",
"tests/gap-checker.property.test.cjs",
"tests/gemini-runtime-removed.test.cjs",
"tests/gen-context-index.test.cjs",
"tests/gen-health-docs.test.cjs",
"tests/gen-section-manifest.test.cjs",
"tests/git-base-branch.test.cjs",
"tests/golden-install-tree.test.cjs",
"tests/graphify-graph-path.test.cjs",
"tests/graphify-visualization.test.cjs",
"tests/graphify.test.cjs",
"tests/gsd-agent-isolation-guard.test.cjs",
"tests/gsd-check-update-worker-atomic-cache.test.cjs",
"tests/gsd-check-update-worker-platform-gate.test.cjs",
"tests/gsd-mcp-server-bin.test.cjs",
"tests/gsd-statusline.test.cjs",
"tests/gsd-validate-commit-crash-policy.test.cjs",
"tests/gsd-write-guard.test.cjs",
"tests/health-diagnostic-rules/config-validation.test.cjs",
"tests/health-diagnostic-rules/worktree-health.test.cjs",
"tests/health-diagnostic.test.cjs",
"tests/helpers-cleanup.test.cjs",
"tests/helpers-process-isolation.test.cjs",
"tests/hermes-skills-migration.test.cjs",
"tests/hooks-commonjs-marker.test.cjs",
"tests/hooks-crash-policy.test.cjs",
"tests/hooks-opt-in.test.cjs",
"tests/host-integration.test.cjs",
"tests/init-manager.test.cjs",
"tests/init.test.cjs",
"tests/install-minimal-hooks.test.cjs",
"tests/install-nested-layout.test.cjs",
"tests/install-path-detection.test.cjs",
"tests/install-regressions.test.cjs",
"tests/install-runtime-artifacts.test.cjs",
"tests/install-write-confinement.test.cjs",
"tests/install.test.cjs",
"tests/installer-migration-antigravity-retire-confighome-artifacts.test.cjs",
"tests/installer-migration-config-root-marker.test.cjs",
"tests/installer-migration-pi-retire-hooks-dir.test.cjs",
"tests/installer-migration-prune-stale-pristine.test.cjs",
"tests/installer-migration-rename-gsd-core.test.cjs",
"tests/installer-migrations.test.cjs",
"tests/intel.test.cjs",
"tests/inventory-nested-families.test.cjs",
"tests/io.test.cjs",
"tests/isolation-sentinel.test.cjs",
"tests/kilo-upgrades.test.cjs",
"tests/kimi-agent-converter.test.cjs",
"tests/kimi-upgrades.test.cjs",
"tests/kimi-variant-disambiguation.test.cjs",
"tests/lint-workflow-shellcheck-fetch.test.cjs",
"tests/live-config-guard.test.cjs",
"tests/lockfile-cve-audit.test.cjs",
"tests/locking-bugs-1909-1916-1925-1927.test.cjs",
"tests/loop-hooks-empty-points-e2e.test.cjs",
"tests/loop-hooks-ship-pre-e2e.test.cjs",
"tests/loop-hooks-verify-post-e2e.test.cjs",
"tests/mcp-catalog.property.test.cjs",
"tests/mcp-catalog.test.cjs",
"tests/milestone-archive.test.cjs",
"tests/milestone-window-single-owner.test.cjs",
"tests/model-resolver.test.cjs",
"tests/mutation-workflow-base-ref.test.cjs",
"tests/new-milestone-clear-phases.test.cjs",
"tests/no-bare-npm-exec.rule.test.cjs",
"tests/no-exact-case-env-access.rule.test.cjs",
"tests/no-path-literal-in-assert.rule.test.cjs",
"tests/no-pending-3212-markers.test.cjs",
"tests/no-phantom-issue-refs.test.cjs",
"tests/no-posix-mode-bit-assert.rule.test.cjs",
"tests/no-private-binary-resolution.rule.test.cjs",
"tests/no-unbounded-dirname-walk.rule.test.cjs",
"tests/no-unbounded-spawn.test.cjs",
"tests/no-unguarded-nonportable-exec.rule.test.cjs",
"tests/npm-audit-baseline.test.cjs",
"tests/npm-integrity-gate.test.cjs",
"tests/nsegment-phase-grammar.test.cjs",
"tests/onboard-command.test.cjs",
"tests/opencode-command-dir-plural.test.cjs",
"tests/opencode-plugin-adapter.test.cjs",
"tests/overlay-repo-helpers.test.cjs",
"tests/packaging-shipped-scripts-require-only-shipped.test.cjs",
"tests/path-replacement.test.cjs",
"tests/pause-work-context-detection.test.cjs",
"tests/pause-work-improvements.test.cjs",
"tests/perf-317-context-monitor-fs.test.cjs",
"tests/phase-completion-single-owner.test.cjs",
"tests/phase-estimation.test.cjs",
"tests/phase-locator.test.cjs",
"tests/phase.test.cjs",
"tests/phase6-capstone-conformance.test.cjs",
"tests/pi-config-dir-env-override.test.cjs",
"tests/plan-count-single-owner.test.cjs",
"tests/plan-phase-stall-detection.test.cjs",
"tests/plan-pre-hook-e2e.test.cjs",
"tests/plan-review-convergence.test.cjs",
"tests/planning-inspect.test.cjs",
"tests/planning-inspect.unit.test.cjs",
"tests/planning-lock-mkdir-failure-1884.test.cjs",
"tests/planning-prompt-drift.test.cjs",
"tests/planning-snapshot.test.cjs",
"tests/planning-workspace.test.cjs",
"tests/platform-conformance-tier.test.cjs",
"tests/platform-guard.unit.test.cjs",
"tests/plugin-manifest.test.cjs",
"tests/policy-160-route0-resume.test.cjs",
"tests/policy-shell-pinning.test.cjs",
"tests/portability-rule-disable-ban.test.cjs",
"tests/pr-branch-planning-filter.test.cjs",
"tests/precommit-alias-drift-hook.test.cjs",
"tests/prepush-enterprise-email-hook.test.cjs",
"tests/process-seam.test.cjs",
"tests/profile-output.test.cjs",
"tests/profile-pipeline.test.cjs",
"tests/prohibition-enforcement.test.cjs",
"tests/project-root.test.cjs",
"tests/quick-batch.test.cjs",
"tests/quick-branching.test.cjs",
"tests/quick-research.test.cjs",
"tests/quick-review-scope-tip-bound.test.cjs",
"tests/read-guard.test.cjs",
"tests/reapply-verify-hunks.test.cjs",
"tests/repo-layout.test.cjs",
"tests/representative-corpus.test.cjs",
"tests/require-fs-op-fallback.rule.test.cjs",
"tests/require-full-tmpdir-triad.rule.test.cjs",
"tests/require-userprofile-with-home.rule.test.cjs",
"tests/response-language-coverage.test.cjs",
"tests/retired-artifact-cleanup.test.cjs",
"tests/review-build-prompt-optional-sections.test.cjs",
"tests/review-default-reviewers-config.test.cjs",
"tests/review-lane-runner.test.cjs",
"tests/review-lane-windows-spawn-resolution.test.cjs",
"tests/review-model-config.test.cjs",
"tests/review-parallel-lanes.test.cjs",
"tests/review-plan-coverage-manifest.test.cjs",
"tests/reviewer-manifest-body.test.cjs",
"tests/reviewer-step-dispatch.test.cjs",
"tests/revision-remediation-binding.test.cjs",
"tests/roadmap-parser.test.cjs",
"tests/roadmap.test.cjs",
"tests/run-tests-harness.test.cjs",
"tests/run-tests-temp-root.test.cjs",
"tests/run-with-timeout.test.cjs",
"tests/runtime-artifact-layout-surface.test.cjs",
"tests/runtime-artifact-layout.test.cjs",
"tests/runtime-converters.test.cjs",
"tests/runtime-homes-descriptor-drive.test.cjs",
"tests/runtime-identity.test.cjs",
"tests/runtime-launcher-parity.test.cjs",
"tests/security.test.cjs",
"tests/settings-jsonc.test.cjs",
"tests/sh-hook-paths.test.cjs",
"tests/shared-hooks-dir-resolution.test.cjs",
"tests/shell-command-projection-dispatch.test.cjs",
"tests/shell-command-projection-path-sep.test.cjs",
"tests/ship-notes-wedged-pr.test.cjs",
"tests/skill-manifest.test.cjs",
"tests/slug-derivation-drift-guard.test.cjs",
"tests/state-todos-render.test.cjs",
"tests/state.test.cjs",
"tests/teams-status.test.cjs",
"tests/todos-workstream-scope.test.cjs",
"tests/unreachable-guard-drift.test.cjs",
"tests/unreachable-shell-guard.test.cjs",
"tests/unusable-input.test.cjs",
"tests/update-custom-backup.test.cjs",
"tests/user-artifact-staging.test.cjs",
"tests/verification-status.test.cjs",
"tests/verify-archive-dirs-live-path.test.cjs",
"tests/verify-command-grounding.test.cjs",
"tests/verify.test.cjs",
"tests/windsurf-hooks-bridge.test.cjs",
"tests/workflow-guard.test.cjs",
"tests/workflow-shell-pinning.test.cjs",
"tests/workstream-inventory.test.cjs",
"tests/workstream-scoped-paths.test.cjs",
"tests/workstream.test.cjs",
"tests/worktree-cleanup.test.cjs",
"tests/worktree-safety.test.cjs",
"tests/worktree.test.cjs",
],
};