* fix(#4619): execute-phase computes decimal/N-segment phase numbers without breaking shell arithmetic $((10#${PHASE_NUMBER})) is a hard bash/zsh syntax error when PHASE_NUMBER is decimal (01.1, from an inserted phase) or N-segment (23.1.2) — neither is valid shell-arithmetic syntax at all, and the failed expansion aborts the rest of the snippet in a non-interactive shell. safe_resume_gate runs unconditionally before trusting STATE.md or dispatching any executor, so execute-phase failed at its own gate before the first executor on any decimal phase, regardless of workflow.tdd_mode. Regression from #4194. Fixes all 4 sites: safe_resume_gate and the TDD gate in workflows/execute-phase.md, the completion-signal spot-check fallback in workflows/execute-phase/steps/completion-reconciliation.md, and the executor gate validation example in references/tdd.md. Each now zero-strips only the leading integer segment into a *_INT variable (via %%.* / # parameter expansion — always valid shell syntax regardless of what follows) and keeps the remainder as an escaped-dot string for the anchored commit- scope regex, exactly as issue #4619 verified in both bash and zsh. A plain integer phase (12, 01) computes byte-identically to before. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(#4619): pin the decimal/N-segment fix and characterize the pre-fix bug Behavioral coverage via real bash execution: the old $((10#01.1)) form throws (characterizes the bug, matching the issue's own reproduction); the new form resolves 01.1 -> 1\.1 and 23.1.2 -> 23\.1\.2, unchanged for plain integers (12 -> 12, 01 -> 1); the resulting anchored ERE matches feat(01.1-03):/test(1.1-3): and correctly rejects feat(01-03):, feat(01.2-03):, feat(011-03):, feat(12-03): for a decimal phase — mirroring issue #4619's own verified table exactly. Updates safe-resume-gate-anchoring.test.cjs's 4 existing source-text assertions (one per site) to the new fixed text. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(#4634): refine the shell-arith drift detector to distinguish safe from unsafe arithmetic With #4619's fix in place, the guard's original "ban $((10#... outright, match any occurrence" was too blunt: it flagged a comment merely mentioning the pattern in prose, the now-safe $((10#$PHASE_INT)) arithmetic on an already-%%.*-stripped integer, and the always-safe plan-id arithmetic (plan ids are plain integers, never decimal). Refines the detector to skip full-line comments and to only flag a captured variable/placeholder name that contains "phase" and does NOT end in _INT/_int — the naming convention the #4619 fix establishes at all four sites for "already reduced to a safe integer." A plan-id variable was never phase-number arithmetic in the first place and is excluded on the same basis. This closes epic #4634's D6 ("lint-phase-id-drift... passes with no new exemptions") and D7 ("a decimal and N-segment phase id survive an end-to-end execute-phase selection without error") for real — the guard now reports zero violations across all five .cts/.md rules. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore: regenerate conformance-tier manifests for the new test file Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(#4619): cover the plain-padded-integer near-miss matrix too Review found the anchored-ERE near-miss coverage only exercised the decimal case (PHASE_NUMBER=01.1); issue #4619's own worked table also verifies the plain padded-integer case (01 -> PHASE_N=1) against its own near-miss set (matches 01-03, rejects 01.1-03/011-03/12-03). Adds the missing assertion. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(#4619): add Fixed changeset Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(#4619): correct JS backslash-escaping in safe-resume-gate anchoring test The test's string-literal assertions for the PHASE_FRAC//./\\.} pattern wrote only 2 backslash characters in JS source, which single-quoted-string parsing collapses to 1 real backslash at runtime -- but the workflow/reference files actually contain 2 raw backslash bytes at that position (needed so bash's ${var//pattern/replacement} produces the correct single-backslash output). Write 4 backslash characters in the JS source at all 4 occurrences so the runtime string matches the files' real bytes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(#4619): refresh the committed compact-content benchmark baseline The new PHASE_INT/PHASE_FRAC arithmetic lines added to gsd-core/workflows/execute-phase.md shifted its committed compaction-ratio baseline. Regenerate via `node scripts/benchmark-compact-content.cjs --write`. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(#4619): note the safe_resume_gate arithmetic growth in the test header The emitted-attribution gate flags execute-phase.md growing 91253 -> 91846 bytes (593 bytes). The growth is the fix: the safe_resume_gate and TDD RED block now derive PHASE_INT/PHASE_FRAC before computing PHASE_N, so a decimal/N-segment phase number (e.g. 01.1, 2.3.1) zero-strips its leading integer segment via base-10 arithmetic instead of forcing the whole value through $((10#...)) and hitting a hard shell syntax error on the first dot. A blank line previously separated the Emitted-Drift-Ack-Growth trailer from the Co-Authored-By trailer below it, which splits git's trailer-block detection: only the last contiguous non-blank run of Key: Value lines at the end of a commit message is recognized as trailers, so the growth ack was silently read as ordinary body text and the differential-attribution gate failed with the growth unacknowledged. Joining the two trailers into one contiguous block fixes it. Emitted-Drift-Ack-Growth: execute-phase.md — adds PHASE_INT/PHASE_FRAC derivation to the safe_resume_gate and TDD RED commit-scope grep so a decimal/N-segment phase number zero-strips its leading integer segment via base-10 arithmetic instead of failing on a non-numeric value (#4619) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(#4208): replace chmod-based restore-failure injection with a root-proof git shim `tests/commit-files-deletion.test.cjs`'s two restore-failure tests simulated an unwritable index via a `post-index-change` hook running `chmod a-w` on the git dir. That relies on the OS enforcing the *owner's own* permission bits against itself, which uid 0 (a routine identity inside this repo's Docker-based gsd-test benches) does not: every DAC check short-circuits true for root, so the write the chmod meant to block silently succeeds, the restore comes back clean, and the disclosure/rollback behavior under test never actually gets exercised. This is CLAUDE.md's own named anti-pattern for I/O-failure injection ("Cross-platform test IO-failure injection" — chmod tricks fail under root Docker/CI). It is confirmed as the actual root cause here, not a production defect: `src/commands.cts`'s `restoreRemovedEntries`/rollback-disclosure logic (added by #4253, merged just before this run) was hand-traced and manually reproduced end to end on an unprivileged workstation against a freshly built `gsd-core/bin/lib/commands.cjs`, and it already produces exactly the `staging_failed` + "could not be restored" / "could NOT be restored during rollback" results both tests assert. The other `post-index-change`-based tests in this file (a `sleep` to force a timeout; a real `update-index` to flip a restored entry's mode) are unaffected because neither depends on a permission check — consistent with only the two chmod-based tests failing on the real remote run. Replaces the chmod fixture with a fake `git` placed ahead of the real one on PATH that fails only `update-index --add --cacheinfo` — the one call the restore makes — unconditionally, regardless of privilege level. Every other git invocation execs straight through to the real binary, so the rest of each scenario (`rm --cached`, the restore's own `ls-files` verification, etc.) is exercised exactly as before. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(#4619): backfill changeset pr number to 4644 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(#4619): feed the bash fixture script via stdin, not argv, to fix Windows CI Passing the script as a `-c "<script>"` argv element made it subject to Windows' CreateProcess command-line argument encoding, which silently dropped the escaped-dot backslashes before bash ever saw them (observed on PR #4644's windows-latest CI shard: `1\.1` came back as `1.1`). Feeding the same script via stdin instead removes argv entirely from the transport, so there is nothing for Windows to re-encode. POSIX behavior is unchanged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: sim <sim@local> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
555 lines
23 KiB
JavaScript
555 lines
23 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/active-workstream-store.test.cjs",
|
|
"tests/active-workstream-store.unit.test.cjs",
|
|
"tests/adr-15-progress-converge.test.cjs",
|
|
"tests/adr-22-plan-drift-guard.test.cjs",
|
|
"tests/adr-612-bracket-coherence.test.cjs",
|
|
"tests/adr-612-bracket-phase-counting.test.cjs",
|
|
"tests/adr-612-bracket-read-tolerance.test.cjs",
|
|
"tests/adr-index-gate.test.cjs",
|
|
"tests/adr857-core-without-capabilities.test.cjs",
|
|
"tests/advance-plan-ambiguous-phase.test.cjs",
|
|
"tests/agent-frontmatter.test.cjs",
|
|
"tests/agent-hint-routing-1689.test.cjs",
|
|
"tests/agent-install-check.test.cjs",
|
|
"tests/agent-install-validation.test.cjs",
|
|
"tests/agent-skills.test.cjs",
|
|
"tests/ai-evals.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/audit-open-remainder-count.test.cjs",
|
|
"tests/audit-uat-acknowledged.test.cjs",
|
|
"tests/audit-uat-summary-segmentation.test.cjs",
|
|
"tests/audit-workstream-layouts.test.cjs",
|
|
"tests/augment-upgrades.test.cjs",
|
|
"tests/autonomous-converge.test.cjs",
|
|
"tests/autonomous-interactive.test.cjs",
|
|
"tests/benchmark-compact-content.test.cjs",
|
|
"tests/branch-no-track-guard.test.cjs",
|
|
"tests/broken-windows-description.test.cjs",
|
|
"tests/broken-windows.test.cjs",
|
|
"tests/bugs-1656-1657.test.cjs",
|
|
"tests/canary-version-leak-lint.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-precedence-parity.test.cjs",
|
|
"tests/capability-probe-fallback.test.cjs",
|
|
"tests/capability-registry.test.cjs",
|
|
"tests/capability-source.test.cjs",
|
|
"tests/capability-state.test.cjs",
|
|
"tests/capability-trust.test.cjs",
|
|
"tests/capability-writer.test.cjs",
|
|
"tests/changeset-cli.test.cjs",
|
|
"tests/changeset-github-release-notes.test.cjs",
|
|
"tests/changeset-lint.test.cjs",
|
|
"tests/changeset-new.test.cjs",
|
|
"tests/check-contract-drift.test.cjs",
|
|
"tests/check-env.test.cjs",
|
|
"tests/check-gap-analysis-plan-post-e2e.test.cjs",
|
|
"tests/check-glossary-refs.test.cjs",
|
|
"tests/check-tdd-review-checkpoint-e2e.test.cjs",
|
|
"tests/check-ui-plan-gate.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-next-health.test.cjs",
|
|
"tests/ci-pr-mergeability.test.cjs",
|
|
"tests/ci-rebase-check.test.cjs",
|
|
"tests/ci-test-scope.test.cjs",
|
|
"tests/cjs-command-router-adapter.test.cjs",
|
|
"tests/claude-md-path.test.cjs",
|
|
"tests/claude-md.test.cjs",
|
|
"tests/claude-orchestration-command-router.test.cjs",
|
|
"tests/claude-orchestration.test.cjs",
|
|
"tests/claude-skills-migration.test.cjs",
|
|
"tests/cli-exit.test.cjs",
|
|
"tests/cline-install.test.cjs",
|
|
"tests/clock-seam.test.cjs",
|
|
"tests/clock.test.cjs",
|
|
"tests/close-phase-todos-padded-resolves.test.cjs",
|
|
"tests/code-review-command.test.cjs",
|
|
"tests/code-review-depth.test.cjs",
|
|
"tests/code-review-fix-pipeline-regression.test.cjs",
|
|
"tests/code-review-pipeline-regression.test.cjs",
|
|
"tests/code-review-tier3-files-override-scoping.test.cjs",
|
|
"tests/code-review.test.cjs",
|
|
"tests/codebuddy-install.test.cjs",
|
|
"tests/codebuddy-upgrades.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-declarative-reference.test.cjs",
|
|
"tests/codex-inherit-smoke.test.cjs",
|
|
"tests/command-contract.test.cjs",
|
|
"tests/command-routing-hub.test.cjs",
|
|
"tests/commands.test.cjs",
|
|
"tests/commit-docs-bypass.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/compact-content-partition-guard.test.cjs",
|
|
"tests/completion-predicate-drift-guard.test.cjs",
|
|
"tests/completion-ratio-scope-withholding.test.cjs",
|
|
"tests/completion-ratio-single-owner.test.cjs",
|
|
"tests/concurrency-safety.test.cjs",
|
|
"tests/config-defaults-runtime-exclusion.test.cjs",
|
|
"tests/config-field-docs.test.cjs",
|
|
"tests/config-get-default.test.cjs",
|
|
"tests/config-loader.test.cjs",
|
|
"tests/config-schema.property.test.cjs",
|
|
"tests/config.test.cjs",
|
|
"tests/configuration-migrate-config.test.cjs",
|
|
"tests/context-drift.test.cjs",
|
|
"tests/context-predicates-query.test.cjs",
|
|
"tests/copilot-install.test.cjs",
|
|
"tests/copilot-upgrades.test.cjs",
|
|
"tests/core-utils.test.cjs",
|
|
"tests/coverage-metadata-parser.test.cjs",
|
|
"tests/coverage-uat-routing.test.cjs",
|
|
"tests/cursor-hook-workspace-roots.test.cjs",
|
|
"tests/cursor-hooks.test.cjs",
|
|
"tests/cursor-reviewer.test.cjs",
|
|
"tests/cursor-subagent-isolation.test.cjs",
|
|
"tests/debug-session-manager-commit.test.cjs",
|
|
"tests/decisions.test.cjs",
|
|
"tests/declarative-reference-antigravity.test.cjs",
|
|
"tests/declarative-reference-augment.test.cjs",
|
|
"tests/declarative-reference-codebuddy.test.cjs",
|
|
"tests/declarative-reference-copilot.test.cjs",
|
|
"tests/declarative-reference-windsurf.test.cjs",
|
|
"tests/declarative-reference-zcode.test.cjs",
|
|
"tests/default-flip-documentation-lint.test.cjs",
|
|
"tests/dispatcher.test.cjs",
|
|
"tests/docs-hooks-table-parity.test.cjs",
|
|
"tests/docs-parity-live-registry.test.cjs",
|
|
"tests/docs-update.test.cjs",
|
|
"tests/drift-detection.test.cjs",
|
|
"tests/edge-probe-spec-phase-contract.test.cjs",
|
|
"tests/edge-probe.test.cjs",
|
|
"tests/edit-phase-milestone-scope-guard.test.cjs",
|
|
"tests/edit-phase.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-caps-gate.test.cjs",
|
|
"tests/emitted-provenance.test.cjs",
|
|
"tests/emitted-sizes.test.cjs",
|
|
"tests/ensure-runtime-build.test.cjs",
|
|
"tests/enumeration-single-owner.test.cjs",
|
|
"tests/eslint-glob-coverage.test.cjs",
|
|
"tests/eslint-rules.test.cjs",
|
|
"tests/estimate-calibrate.test.cjs",
|
|
"tests/estimate-loop-convergence.test.cjs",
|
|
"tests/execute-mvp-tdd-gate.test.cjs",
|
|
"tests/execute-phase-decimal-arithmetic.test.cjs",
|
|
"tests/execute-phase-wave.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/exit-code-registry.test.cjs",
|
|
"tests/explore-command.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-2296-provider-escalation.test.cjs",
|
|
"tests/feat-2483-review-claude-mds-guard.test.cjs",
|
|
"tests/feat-2646-deferred-items-audit-scanner.test.cjs",
|
|
"tests/feat-3881-yaml-parser-consequences.test.cjs",
|
|
"tests/features-index-gate.test.cjs",
|
|
"tests/fixture-builder.test.cjs",
|
|
"tests/frontmatter-cli.test.cjs",
|
|
"tests/frontmatter.test.cjs",
|
|
"tests/gap-checker.property.test.cjs",
|
|
"tests/gate-predicate-evaluator-missing.test.cjs",
|
|
"tests/gemini-runtime-removed.test.cjs",
|
|
"tests/gen-context-index.test.cjs",
|
|
"tests/gen-health-docs.test.cjs",
|
|
"tests/gen-registry.test.cjs",
|
|
"tests/gen-section-manifest.test.cjs",
|
|
"tests/gen-state-md-docs.test.cjs",
|
|
"tests/git-base-branch.test.cjs",
|
|
"tests/git-fixture.test.cjs",
|
|
"tests/golden-install-tree.test.cjs",
|
|
"tests/graphify-command-cutover.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-quick-batch-merge-integration.test.cjs",
|
|
"tests/gsd-quick-batch-workflow.test.cjs",
|
|
"tests/gsd-secret-read-guard.test.cjs",
|
|
"tests/gsd-settings-advanced.test.cjs",
|
|
"tests/gsd-statusline.test.cjs",
|
|
"tests/gsd-tools-path-refs.test.cjs",
|
|
"tests/gsd-validate-commit-crash-policy.test.cjs",
|
|
"tests/gsd-write-guard.property.test.cjs",
|
|
"tests/gsd-write-guard.test.cjs",
|
|
"tests/gsd2-import.test.cjs",
|
|
"tests/hardcoded-paths.test.cjs",
|
|
"tests/health-diagnostic-rules/agent-install.test.cjs",
|
|
"tests/health-diagnostic-rules/config-validation.test.cjs",
|
|
"tests/health-diagnostic-rules/consistency.test.cjs",
|
|
"tests/health-diagnostic-rules/phase-structure.test.cjs",
|
|
"tests/health-diagnostic-rules/root-existence.test.cjs",
|
|
"tests/health-diagnostic-rules/state-consistency.test.cjs",
|
|
"tests/health-diagnostic-rules/worktree-health.test.cjs",
|
|
"tests/health-diagnostic.test.cjs",
|
|
"tests/health-validation.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/host-runtime-detection.test.cjs",
|
|
"tests/ingest-docs.test.cjs",
|
|
"tests/init-debug.test.cjs",
|
|
"tests/init-manager.test.cjs",
|
|
"tests/init.test.cjs",
|
|
"tests/injection-blocking-config.test.cjs",
|
|
"tests/inline-plan-threshold.test.cjs",
|
|
"tests/install-fs-adapter-seam.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-scope.test.cjs",
|
|
"tests/install-write-confinement.test.cjs",
|
|
"tests/install.test.cjs",
|
|
"tests/installed-surface-resolver.test.cjs",
|
|
"tests/installer-migration-antigravity-retire-confighome-artifacts.test.cjs",
|
|
"tests/installer-migration-authoring.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-migration-report.test.cjs",
|
|
"tests/installer-migrations-manifest-schema.test.cjs",
|
|
"tests/installer-migrations.test.cjs",
|
|
"tests/intel-command-cutover.test.cjs",
|
|
"tests/intel.test.cjs",
|
|
"tests/inventory-manifest-sync.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-normalize-payload.property.test.cjs",
|
|
"tests/kimi-upgrades.test.cjs",
|
|
"tests/kimi-variant-disambiguation.test.cjs",
|
|
"tests/learnings.test.cjs",
|
|
"tests/legacy-cleanup-config-dir.test.cjs",
|
|
"tests/lint-allow-test-rule-refs.test.cjs",
|
|
"tests/lint-compiled-artifact-sync.test.cjs",
|
|
"tests/lint-docs-command-form.test.cjs",
|
|
"tests/lint-frontmatter-scalar-broad-grep.test.cjs",
|
|
"tests/lint-hooks-runtime-build-seam.test.cjs",
|
|
"tests/lint-legacy-dir-name.test.cjs",
|
|
"tests/lint-planning-artifact-writer-drift.test.cjs",
|
|
"tests/lint-pr-check-project-dir.test.cjs",
|
|
"tests/lint-regression-test-names.test.cjs",
|
|
"tests/lint-seam-enforcement.test.cjs",
|
|
"tests/lint-skill-deps.test.cjs",
|
|
"tests/lint-test-file-count.test.cjs",
|
|
"tests/lint-workflow-shellcheck-fetch.test.cjs",
|
|
"tests/list-seeds.test.cjs",
|
|
"tests/live-config-guard.test.cjs",
|
|
"tests/live-dom-uat.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/loop-render-hooks.test.cjs",
|
|
"tests/managed-hooks.test.cjs",
|
|
"tests/manifest-version-sync.test.cjs",
|
|
"tests/markdown-table.test.cjs",
|
|
"tests/mcp-catalog.property.test.cjs",
|
|
"tests/mcp-catalog.test.cjs",
|
|
"tests/milestone-archive.test.cjs",
|
|
"tests/milestone-lock.test.cjs",
|
|
"tests/milestone-prefixed-convention.test.cjs",
|
|
"tests/milestone-window-drift-guard.test.cjs",
|
|
"tests/milestone-window-single-owner.test.cjs",
|
|
"tests/milestone.test.cjs",
|
|
"tests/model-omit-when-inherit-guard.test.cjs",
|
|
"tests/model-profiles.test.cjs",
|
|
"tests/model-resolver.test.cjs",
|
|
"tests/mutation-matrix-ratchet.test.cjs",
|
|
"tests/mutation-score-ratchet.test.cjs",
|
|
"tests/mutation-workflow-base-ref.test.cjs",
|
|
"tests/mvp-phase-integration.test.cjs",
|
|
"tests/new-milestone-clear-phases.test.cjs",
|
|
"tests/next-decimal-roadmap-scan.test.cjs",
|
|
"tests/next-up-clear-order.test.cjs",
|
|
"tests/no-bare-gsd-tools-command-position.test.cjs",
|
|
"tests/no-bare-npm-exec.rule.test.cjs",
|
|
"tests/no-dead-sdk-refs.test.cjs",
|
|
"tests/no-exact-case-env-access.rule.test.cjs",
|
|
"tests/no-hardcoded-home-gsd-tools.test.cjs",
|
|
"tests/no-hardcoded-tmp.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-rendered-text-length-assert.rule.test.cjs",
|
|
"tests/no-swallowed-precondition.rule.test.cjs",
|
|
"tests/no-unbounded-dirname-walk.rule.test.cjs",
|
|
"tests/no-unbounded-spawn-allowlist.test.cjs",
|
|
"tests/no-unbounded-spawn.test.cjs",
|
|
"tests/no-unguarded-nonportable-exec.rule.test.cjs",
|
|
"tests/normalize-path-in-content.rule.test.cjs",
|
|
"tests/normalize-test-command.test.cjs",
|
|
"tests/npm-audit-baseline.test.cjs",
|
|
"tests/npm-integrity-gate.test.cjs",
|
|
"tests/onboard-command.test.cjs",
|
|
"tests/opencode-command-dir-plural.test.cjs",
|
|
"tests/opencode-permissions.test.cjs",
|
|
"tests/opencode-plugin-adapter.test.cjs",
|
|
"tests/orphan-worktree-detection.test.cjs",
|
|
"tests/orphaned-hooks.test.cjs",
|
|
"tests/overlay-repo-helpers.test.cjs",
|
|
"tests/package-name-single-source.test.cjs",
|
|
"tests/packaging-shipped-scripts-require-only-shipped.test.cjs",
|
|
"tests/parallel-dependent-plans.test.cjs",
|
|
"tests/path-replacement.test.cjs",
|
|
"tests/pattern-mapper.test.cjs",
|
|
"tests/pattern.test.cjs",
|
|
"tests/pause-work-context-detection.test.cjs",
|
|
"tests/perf-317-context-monitor-fs.test.cjs",
|
|
"tests/phase-command-router.test.cjs",
|
|
"tests/phase-completion-single-owner.test.cjs",
|
|
"tests/phase-estimation.test.cjs",
|
|
"tests/phase-id-drift-guard.test.cjs",
|
|
"tests/phase-locator.test.cjs",
|
|
"tests/phase-resolution-parity.test.cjs",
|
|
"tests/phase-tdd-applicable.test.cjs",
|
|
"tests/phase.test.cjs",
|
|
"tests/phase6-capstone-conformance.test.cjs",
|
|
"tests/phases-command-router.test.cjs",
|
|
"tests/pi-config-dir-env-override.test.cjs",
|
|
"tests/pi-extension-reachability.test.cjs",
|
|
"tests/pick-flag.test.cjs",
|
|
"tests/plan-bounce.test.cjs",
|
|
"tests/plan-count-single-owner.test.cjs",
|
|
"tests/plan-phase-drift-guard.test.cjs",
|
|
"tests/plan-phase-mvp-flag.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-bypass-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/playwright-ui-verify.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/portability-vocab-drift.test.cjs",
|
|
"tests/post-planning-gaps-2493.test.cjs",
|
|
"tests/pr-branch-planning-filter.test.cjs",
|
|
"tests/precommit-alias-drift-hook.test.cjs",
|
|
"tests/precondition-element.test.cjs",
|
|
"tests/prepush-enterprise-email-hook.test.cjs",
|
|
"tests/probe-core.test.cjs",
|
|
"tests/process-seam.test.cjs",
|
|
"tests/profile-output.test.cjs",
|
|
"tests/profile-pipeline.test.cjs",
|
|
"tests/prohibition-enforcement.test.cjs",
|
|
"tests/prohibition-probe.verify-tier.test.cjs",
|
|
"tests/project-instruction-file-parity.test.cjs",
|
|
"tests/project-root.test.cjs",
|
|
"tests/prompt-budget-cli.test.cjs",
|
|
"tests/prune-orphaned-worktrees.test.cjs",
|
|
"tests/quick-batch-command-router.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/qwen-upgrades.test.cjs",
|
|
"tests/read-guard.test.cjs",
|
|
"tests/read-injection-scanner.property.test.cjs",
|
|
"tests/reapply-patches.test.cjs",
|
|
"tests/reapply-verify-hunks.test.cjs",
|
|
"tests/refactor-trigger-cli.test.cjs",
|
|
"tests/registry-reviewer-parity.test.cjs",
|
|
"tests/release-hotfix-empty-cherry-pick.test.cjs",
|
|
"tests/removed-but-needed-lint.test.cjs",
|
|
"tests/repo-invariants.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-issue-link-policy.test.cjs",
|
|
"tests/require-userprofile-with-home.rule.test.cjs",
|
|
"tests/research-cli.test.cjs",
|
|
"tests/research-store.test.cjs",
|
|
"tests/resolve-execution-dynamic-routing.test.cjs",
|
|
"tests/resolver-hoist-guard.test.cjs",
|
|
"tests/response-language-coverage.test.cjs",
|
|
"tests/retired-artifact-cleanup.test.cjs",
|
|
"tests/reversibility-tagging.test.cjs",
|
|
"tests/review-build-prompt-optional-sections.test.cjs",
|
|
"tests/review-default-reviewers-config.test.cjs",
|
|
"tests/review-default-reviewers-workflow.test.cjs",
|
|
"tests/review-lane-descriptor.test.cjs",
|
|
"tests/review-lane-invocation.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/review-reviewer-instances-config.test.cjs",
|
|
"tests/reviewer-config-federation.test.cjs",
|
|
"tests/reviewer-docs-parity.test.cjs",
|
|
"tests/reviewer-lane-declarations.test.cjs",
|
|
"tests/reviewer-manifest-body.test.cjs",
|
|
"tests/reviewer-step-dispatch.test.cjs",
|
|
"tests/reviewer-trust-disclosure.test.cjs",
|
|
"tests/revision-remediation-binding.test.cjs",
|
|
"tests/roadmap-mode-field.test.cjs",
|
|
"tests/roadmap-parser.test.cjs",
|
|
"tests/roadmap-phase-fallback.test.cjs",
|
|
"tests/roadmap-upgrade.test.cjs",
|
|
"tests/roadmap.test.cjs",
|
|
"tests/roadmapper-granularity.test.cjs",
|
|
"tests/run-tests-harness.test.cjs",
|
|
"tests/run-tests-temp-root.test.cjs",
|
|
"tests/run-with-timeout.test.cjs",
|
|
"tests/runtime-artifact-install-plan.test.cjs",
|
|
"tests/runtime-artifact-layout-descriptor-drive.test.cjs",
|
|
"tests/runtime-artifact-layout-install-profiles.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-homes.property.test.cjs",
|
|
"tests/runtime-identity.test.cjs",
|
|
"tests/runtime-launcher-parity.test.cjs",
|
|
"tests/runtime-name-policy.test.cjs",
|
|
"tests/safe-resume-gate-anchoring.test.cjs",
|
|
"tests/schema-drift.test.cjs",
|
|
"tests/sdk-removal-query-family-dispatch.test.cjs",
|
|
"tests/section-manifest-init-facts.test.cjs",
|
|
"tests/section-manifest.test.cjs",
|
|
"tests/security.test.cjs",
|
|
"tests/settings-integrations.test.cjs",
|
|
"tests/settings-jsonc.test.cjs",
|
|
"tests/sh-hook-paths.test.cjs",
|
|
"tests/shadow-report.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/shipped-reference-cites.test.cjs",
|
|
"tests/skill-frontmatter-contract.test.cjs",
|
|
"tests/skill-manifest.test.cjs",
|
|
"tests/slash-command-namespace.test.cjs",
|
|
"tests/slug-derivation-drift-guard.test.cjs",
|
|
"tests/smart-entry.unit.test.cjs",
|
|
"tests/spec-section.test.cjs",
|
|
"tests/stale-bake-guard.test.cjs",
|
|
"tests/state-command-cutover.test.cjs",
|
|
"tests/state-contract.test.cjs",
|
|
"tests/state-document.test.cjs",
|
|
"tests/state-field-drift.test.cjs",
|
|
"tests/state-io.test.cjs",
|
|
"tests/state-prune.test.cjs",
|
|
"tests/state-rebuild-cli.test.cjs",
|
|
"tests/state-todos-render.test.cjs",
|
|
"tests/state-transition.test.cjs",
|
|
"tests/state-write-path-drift-guard.test.cjs",
|
|
"tests/state.test.cjs",
|
|
"tests/stats-mvp-display.test.cjs",
|
|
"tests/stats-phase-id-shape.test.cjs",
|
|
"tests/subagent-timeout.test.cjs",
|
|
"tests/summary-status-blocked-3345.test.cjs",
|
|
"tests/surface-md-paths.regression.test.cjs",
|
|
"tests/sync-skills-cross-runtime-refuse.test.cjs",
|
|
"tests/table-schema-drift-lint.test.cjs",
|
|
"tests/tdd-backend-wiring.test.cjs",
|
|
"tests/tdd-mode.test.cjs",
|
|
"tests/tdd-red-evidence.test.cjs",
|
|
"tests/tdd-single-statement.test.cjs",
|
|
"tests/teams-status.test.cjs",
|
|
"tests/template.test.cjs",
|
|
"tests/thinking-partner.test.cjs",
|
|
"tests/todos-done-rename-guard.test.cjs",
|
|
"tests/todos-workstream-scope.test.cjs",
|
|
"tests/tracer-bullet.test.cjs",
|
|
"tests/trae-imperative-reference.test.cjs",
|
|
"tests/tsconfig-noemit.test.cjs",
|
|
"tests/uat-predicate.test.cjs",
|
|
"tests/uat.test.cjs",
|
|
"tests/ui-spec-inventory-provenance.test.cjs",
|
|
"tests/ultraplan-phase.test.cjs",
|
|
"tests/unreachable-guard-drift.test.cjs",
|
|
"tests/unreachable-shell-guard.test.cjs",
|
|
"tests/unusable-input.test.cjs",
|
|
"tests/update-context.test.cjs",
|
|
"tests/update-custom-backup.test.cjs",
|
|
"tests/update-workflow.test.cjs",
|
|
"tests/user-artifact-staging.test.cjs",
|
|
"tests/validate-context.test.cjs",
|
|
"tests/validate-registry.test.cjs",
|
|
"tests/verification-status.test.cjs",
|
|
"tests/verify-archive-dirs-live-path.test.cjs",
|
|
"tests/verify-command-grounding.test.cjs",
|
|
"tests/verify-health.test.cjs",
|
|
"tests/verify.test.cjs",
|
|
"tests/vscode-browser-no-node-api.test.cjs",
|
|
"tests/vscode-extension-reachability.test.cjs",
|
|
"tests/windows-robustness.test.cjs",
|
|
"tests/windsurf-conversion.test.cjs",
|
|
"tests/windsurf-hooks-bridge.test.cjs",
|
|
"tests/windsurf-install.test.cjs",
|
|
"tests/workflow-compat.test.cjs",
|
|
"tests/workflow-fragments.test.cjs",
|
|
"tests/workflow-guard.test.cjs",
|
|
"tests/workflow-maintainer-skip.test.cjs",
|
|
"tests/workflow-shell-pinning.test.cjs",
|
|
"tests/workspace.test.cjs",
|
|
"tests/workstream-inventory.test.cjs",
|
|
"tests/workstream-scoped-paths.test.cjs",
|
|
"tests/workstream.test.cjs",
|
|
"tests/worktree-base-ref.test.cjs",
|
|
"tests/worktree-baseref-install.test.cjs",
|
|
"tests/worktree-cleanup.test.cjs",
|
|
"tests/worktree-safety-reap.test.cjs",
|
|
"tests/worktree-safety.test.cjs",
|
|
"tests/worktree.test.cjs",
|
|
],
|
|
};
|