test(#1973): consolidate 48 workflow regression tests into workflow-aspect suites

Fold 48 issue-named workflow-markdown regression files into the canonical test
that owns each workflow aspect (execute-phase-*, plan-phase-*, quick-*, discuss-*,
worktree-cleanup, secure-phase, verify, update, settings, etc.), across 32 existing
suites. Verbatim block-scoped describe wrappers; 281 subtests conserved 1:1. No new
test files. Host-env pre-check: only gsd-settings-advanced spawns CLI and it sets no
GSD_WORKSTREAM/GSD_PROJECT value — no leak risk.

Regenerates regression-name allowlist (222->181), ratchets file-count allowlist
(verify 11->10), makes 30 relocated allow-test-rule exemptions issue-ref-compliant
(ADR-456; prunes 30 stale ids). lint:ci green.

Part of epic #1969. Closes #1973.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-07-03 02:14:17 -04:00
parent 7b515687ce
commit 2c32e8d890
83 changed files with 5488 additions and 5086 deletions

View File

@@ -15,27 +15,15 @@
"tests/autonomous-interactive.test.cjs :: source-text-is-the-product",
"tests/autonomous-to-flag.test.cjs :: source-text-is-the-product",
"tests/bug-131-release-tarball-smoke-explicit-home.test.cjs :: integration-test-input",
"tests/bug-17-askuserquestion-option-cap.test.cjs :: source-text-is-the-product",
"tests/bug-170-workflow-fallback-install-hint.test.cjs :: workflow markdown is shipped product text; this test validates fallback hint literals across all workflow files",
"tests/bug-1891-file-resolution.test.cjs :: structural-implementation-guard",
"tests/bug-211-launcher-home-fallback.test.cjs :: structural/behavioral regression for the ~/.claude fallback arm in",
"tests/bug-2136-sh-hook-version.test.cjs :: structural-regression-guard",
"tests/bug-214-phase-researcher-write-truncation-contract.test.cjs :: source-text-is-the-product",
"tests/bug-214-writer-agents-write-truncation-contract.test.cjs :: source-text-is-the-product",
"tests/bug-222-research-synthesizer-write-contract.test.cjs :: source-text-is-the-product",
"tests/bug-2346-agent-read-loop-guards.test.cjs :: source-text-is-the-product",
"tests/bug-2388-plan-phase-no-branch-rename.test.cjs :: source-text-is-the-product",
"tests/bug-2396-makefile-test-priority.test.cjs :: source-text-is-the-product",
"tests/bug-2399-commit-docs-plan-phase.test.cjs :: source-text-is-the-product",
"tests/bug-2410-stream-checkpoint-heartbeats.test.cjs :: source-text-is-the-product",
"tests/bug-2419-project-researcher-agent.test.cjs :: source-text-is-the-product",
"tests/bug-2421-planner-grep-gate-hygiene.test.cjs :: source-text-is-the-product",
"tests/bug-2470-update-md-claude-path.test.cjs :: source-text-is-the-product",
"tests/bug-2492-context-coverage-gate.test.cjs :: source-text-is-the-product",
"tests/bug-2502-insert-phase-state-update.test.cjs :: source-text-is-the-product",
"tests/bug-2516-inherit-model-execute-phase.test.cjs :: source-text-is-the-product",
"tests/bug-2543-gsd-slash-namespace.test.cjs :: structural-regression-guard",
"tests/bug-2549-2550-2552-discuss-phase-context.test.cjs :: source-text-is-the-product",
"tests/bug-2559-stale-search-year.test.cjs :: source-text-is-the-product",
"tests/bug-2686-review-fix-worktree.test.cjs :: source-text-is-the-product",
"tests/bug-2772-gitmodules-path-intersection.test.cjs :: source-text-is-the-product",
@@ -44,21 +32,14 @@
"tests/bug-2839-review-fix-transactional-cleanup.test.cjs :: source-text-is-the-product",
"tests/bug-2973-profile-user-skills-path.test.cjs :: source-text-is-the-product. profile-user.md IS the",
"tests/bug-2990-code-fixer-worktree-branch.test.cjs :: source-text-is-the-product",
"tests/bug-3096-ai-integration-phase-parallel-race.test.cjs :: reads product workflow markdown (ai-integration-phase.md) to verify structural ordering contract — not a source-grep test",
"tests/bug-3097-3099-executor-worktree-path-safety.test.cjs :: reads markdown product files (gsd-executor.md, worktree-path-safety.md) to verify structural protocol — not source-grep",
"tests/bug-3120-secure-phase-empty-register.test.cjs :: reads product workflow markdown (secure-phase.md) to verify structural guard contract — not a source-grep test",
"tests/bug-3129-validate-commit-git-bypass.test.cjs :: reads hook shell script to verify delegation pattern — structural contract test, not source-grep",
"tests/bug-3130-update-npx-robust-invocation.test.cjs :: reads product workflow markdown (update.md) to verify structural invocation contract — not a source-grep test",
"tests/bug-3236-capture-seed-one-shot.test.cjs :: source-text-is-the-product — workflow and command .md files",
"tests/bug-3290-intel-updater-layout-block.test.cjs :: source-text-is-the-product — agents/gsd-intel-updater.md IS",
"tests/bug-33-settings-model-profile-adaptive.test.cjs :: source-text-is-the-product",
"tests/bug-3381-verify-work-workstream.test.cjs :: source-text-is-the-product — verify-work.md is a runtime workflow contract.",
"tests/bug-3384-secondary-defects.test.cjs :: source-text-is-the-product",
"tests/bug-3430-planner-phase-contract.test.cjs :: source-text-is-the-product",
"tests/bug-3446-resume-continue-here-discovery.test.cjs :: source-text-is-the-product",
"tests/bug-3491-nested-git-worktree.test.cjs :: source-text-is-the-product",
"tests/bug-3516-reapply-patches-gsd-update-filter.test.cjs :: source-text-is-the-product",
"tests/bug-3521-quick-cleanup-cwd-pin.test.cjs :: source-text-is-the-product",
"tests/bug-3523-cjs-loadconfig-branching-strategy-warning.test.cjs :: validates runtime CLI stdout/stderr warning behavior, not source grep",
"tests/bug-3542-executor-git-stash-prohibition.test.cjs :: source-text-is-the-product",
"tests/bug-3605-stale-research-insert-phase-agent-refs.test.cjs :: source-text-is-the-product",
@@ -71,20 +52,14 @@
"tests/bug-3683-workflow-colon-namespace-leak.test.cjs :: source-text-is-the-product",
"tests/bug-3689-resume-glob-nomatch.test.cjs :: source-text-is-the-product",
"tests/bug-378-update-check-scoped-name.test.cjs :: structural assertion on hook delegation; the behavior being",
"tests/bug-3784-gsd-settings-model-profile-ui-omits-adaptive.test.cjs :: source-text-is-the-product",
"tests/bug-3805-fast-md-log-to-state-schema.test.cjs :: source-text-is-the-product",
"tests/bug-3810-no-gsd-sdk-runtime-refs.test.cjs :: source-text-is-the-product",
"tests/bug-444-resolver-local-claude-install.test.cjs :: structural/behavioral regression for the repo-local .claude/ install",
"tests/bug-571-doc-writer-fix-mode-edit-only.test.cjs :: source-text-is-the-product",
"tests/bug-619-codebase-drift-gate-shim.test.cjs :: source-text-is-the-product",
"tests/bug-621-plan-phase-gap-analysis-gsd-run.test.cjs :: source-text-is-the-product",
"tests/bug-622-graphify-optional-graph-html.test.cjs :: source-text-is-the-product",
"tests/bug-630-wave-cleanup-orchestrator-root.test.cjs :: source-text-is-the-product",
"tests/bug-637-workflow-no-hardcoded-home-tool.test.cjs :: source-text-is-the-product",
"tests/bug-685-windowshide-spawn.test.cjs :: source-text-is-the-product",
"tests/bug-687-agy-timeout.test.cjs :: source-text-is-the-product",
"tests/bug-891-non-claude-runtime-home-fallback.test.cjs :: structural/behavioral regression for non-Claude runtime-home",
"tests/bug-936-no-nested-spawner-wrap.test.cjs :: source-text-is-the-product",
"tests/bug-947-hermes-gsd-prefix.test.cjs :: source-text-is-the-product",
"tests/bug-patterns-reference.test.cjs :: source-text-is-the-product",
"tests/chain-flag-plan-phase.test.cjs :: source-text-is-the-product",
@@ -125,8 +100,6 @@
"tests/edge-probe-spec-phase-contract.test.cjs :: runtime-contract-is-the-product — spec-phase.md Step 5.5 is the deployed workflow runtime contract under assertion",
"tests/edit-phase.test.cjs :: source-text-is-the-product",
"tests/enh-2380-sync-skills.test.cjs :: source-text-is-the-product",
"tests/enh-2430-learnings-consumption.test.cjs :: source-text-is-the-product",
"tests/enh-2433-todo-phase-linking.test.cjs :: source-text-is-the-product",
"tests/enh-2500-codebase-mapper-arch-rich-format.test.cjs :: source-text-is-the-product",
"tests/enh-2789-description-budget.test.cjs :: source-text-is-the-product",
"tests/enh-2790-skill-consolidation.test.cjs :: source-text-is-the-product",
@@ -136,7 +109,6 @@
"tests/enh-770-claude-hook-events.test.cjs :: runtime-contract-is-the-product — the hookEventName is",
"tests/enh-770-claude-hook-events.test.cjs :: runtime-contract-is-the-product — the stamp template token",
"tests/enh-770-claude-hook-events.test.cjs :: runtime-contract-is-the-product — the stdin-read and",
"tests/enh-773-codex-exec-automation-flags.test.cjs :: source-text-is-the-product",
"tests/eslint-rules.test.cjs :: <source-grep reason> must still error",
"tests/eslint-rules.test.cjs :: pending migration",
"tests/eslint-rules.test.cjs :: source-text-is-the-product",
@@ -149,10 +121,8 @@
"tests/execute-phase-worktree-artifacts.test.cjs :: source-text-is-the-product",
"tests/explore-command.test.cjs :: source-text-is-the-product",
"tests/extract-learnings.test.cjs :: source-text-is-the-product",
"tests/feat-22-surfacing-docs.test.cjs :: docs-parity",
"tests/feat-2840-issue-driven-orchestration-guide.test.cjs :: structural-IR parser for a docs guide. The .includes()",
"tests/feat-3039-help-tiered.test.cjs :: source-text-is-the-product",
"tests/fix-3722-execute-phase-human-needed-checkpoint.test.cjs :: source-text-is-the-product",
"tests/forensics.test.cjs :: source-text-is-the-product",
"tests/frontmatter-cli.test.cjs :: source-text-is-the-product",
"tests/gates-taxonomy.test.cjs :: source-text-is-the-product",

View File

@@ -1,42 +1,22 @@
[
"bug-131-release-tarball-smoke-explicit-home.test.cjs",
"bug-1367-claude-local-flat-command-layout.test.cjs",
"bug-17-askuserquestion-option-cap.test.cjs",
"bug-170-workflow-fallback-install-hint.test.cjs",
"bug-1834-sh-hooks-installed.test.cjs",
"bug-1891-file-resolution.test.cjs",
"bug-1974-context-exhaustion-record.test.cjs",
"bug-2002-offer-next-context.test.cjs",
"bug-2004-pr-branch-milestone.test.cjs",
"bug-21-state-md-template-frontmatter.test.cjs",
"bug-211-launcher-home-fallback.test.cjs",
"bug-2136-sh-hook-version.test.cjs",
"bug-214-phase-researcher-write-truncation-contract.test.cjs",
"bug-214-writer-agents-write-truncation-contract.test.cjs",
"bug-222-research-synthesizer-write-contract.test.cjs",
"bug-2344-read-guard-claudecode-env.test.cjs",
"bug-2346-agent-read-loop-guards.test.cjs",
"bug-2351-intel-kilo-layout.test.cjs",
"bug-2384-post-merge-deletion-audit.test.cjs",
"bug-2388-plan-phase-no-branch-rename.test.cjs",
"bug-2396-makefile-test-priority.test.cjs",
"bug-2399-commit-docs-plan-phase.test.cjs",
"bug-2410-stream-checkpoint-heartbeats.test.cjs",
"bug-2419-project-researcher-agent.test.cjs",
"bug-2421-planner-grep-gate-hygiene.test.cjs",
"bug-2432-quick-plan-predispatch-commit.test.cjs",
"bug-2451-context-monitor-over-report.test.cjs",
"bug-2470-update-md-claude-path.test.cjs",
"bug-2492-context-coverage-gate.test.cjs",
"bug-2501-resurrection-detection.test.cjs",
"bug-2502-insert-phase-state-update.test.cjs",
"bug-2504-uat-foundation-phases.test.cjs",
"bug-2506-settings-profile-nonclaude-warning.test.cjs",
"bug-2516-inherit-model-execute-phase.test.cjs",
"bug-2520-read-guard-hook-subprocess-env.test.cjs",
"bug-2523-quick-deferred-items.test.cjs",
"bug-2543-gsd-slash-namespace.test.cjs",
"bug-2549-2550-2552-discuss-phase-context.test.cjs",
"bug-2559-stale-search-year.test.cjs",
"bug-260-worktree-path-guard.test.cjs",
"bug-261-worktree-force-add-guard.test.cjs",
@@ -44,13 +24,10 @@
"bug-2772-gitmodules-path-intersection.test.cjs",
"bug-2784-update-cache-clear-path.test.cjs",
"bug-2808-skill-hyphen-name.test.cjs",
"bug-2838-summary-rescue-gitignored-planning.test.cjs",
"bug-2839-review-fix-transactional-cleanup.test.cjs",
"bug-2866-codex-strip-no-trailing-newline.test.cjs",
"bug-2876-skill-frontmatter-quote.test.cjs",
"bug-2912-progress-context-authority.test.cjs",
"bug-2916-handle-branching-default-base.test.cjs",
"bug-2950-stale-command-refs.test.cjs",
"bug-2969-verify-reapply-patches.test.cjs",
"bug-2973-profile-user-skills-path.test.cjs",
"bug-2990-code-fixer-worktree-branch.test.cjs",
@@ -58,24 +35,14 @@
"bug-2994-verify-reapply-patches-installed-path.test.cjs",
"bug-2995-post-install-script-paths.test.cjs",
"bug-3019-help-passthrough.test.cjs",
"bug-3050-update-backup-eacces-nonfatal.test.cjs",
"bug-3054-stale-gsd-next-references.test.cjs",
"bug-3072-optional-sketch-findings-guard.test.cjs",
"bug-3083-resume-route-clear.test.cjs",
"bug-3087-planner-directive-language.test.cjs",
"bug-3096-ai-integration-phase-parallel-race.test.cjs",
"bug-3097-3099-executor-worktree-path-safety.test.cjs",
"bug-3120-secure-phase-empty-register.test.cjs",
"bug-3129-validate-commit-git-bypass.test.cjs",
"bug-3130-update-npx-robust-invocation.test.cjs",
"bug-3195-quick-resurrection-guard.test.cjs",
"bug-3236-capture-seed-one-shot.test.cjs",
"bug-3290-intel-updater-layout-block.test.cjs",
"bug-33-settings-model-profile-adaptive.test.cjs",
"bug-3320-planner-deep-work-rules.test.cjs",
"bug-3321-verifier-runs-probes.test.cjs",
"bug-3357-codex-legacy-hooks-json-migration.test.cjs",
"bug-3381-verify-work-workstream.test.cjs",
"bug-3384-secondary-defects.test.cjs",
"bug-3430-planner-phase-contract.test.cjs",
"bug-3442-codex-legacy-hooks-json-migration.test.cjs",
@@ -83,8 +50,6 @@
"bug-3446-resume-continue-here-discovery.test.cjs",
"bug-3491-nested-git-worktree.test.cjs",
"bug-3509-path-spaces.test.cjs",
"bug-3516-reapply-patches-gsd-update-filter.test.cjs",
"bug-3521-quick-cleanup-cwd-pin.test.cjs",
"bug-3523-cjs-loadconfig-branching-strategy-warning.test.cjs",
"bug-3541-installer-migration-prompt-user-resolution.test.cjs",
"bug-3542-executor-git-stash-prohibition.test.cjs",
@@ -102,22 +67,16 @@
"bug-3689-resume-glob-nomatch.test.cjs",
"bug-3735-profiles-core-includes-surface.test.cjs",
"bug-378-update-check-scoped-name.test.cjs",
"bug-3784-gsd-settings-model-profile-ui-omits-adaptive.test.cjs",
"bug-3805-fast-md-log-to-state-schema.test.cjs",
"bug-3810-no-gsd-sdk-runtime-refs.test.cjs",
"bug-444-resolver-local-claude-install.test.cjs",
"bug-571-doc-writer-fix-mode-edit-only.test.cjs",
"bug-619-codebase-drift-gate-shim.test.cjs",
"bug-621-plan-phase-gap-analysis-gsd-run.test.cjs",
"bug-622-graphify-optional-graph-html.test.cjs",
"bug-630-wave-cleanup-orchestrator-root.test.cjs",
"bug-637-workflow-no-hardcoded-home-tool.test.cjs",
"bug-641-files-from-suite-token.test.cjs",
"bug-685-windowshide-spawn.test.cjs",
"bug-687-agy-timeout.test.cjs",
"bug-891-non-claude-runtime-home-fallback.test.cjs",
"bug-925-context-monitor-hook-event-name.test.cjs",
"bug-936-no-nested-spawner-wrap.test.cjs",
"bug-941-managed-hooks-registry-manifest.test.cjs",
"bug-947-hermes-gsd-prefix.test.cjs",
"bug-969-test-infra-flake-hardening.test.cjs"

View File

@@ -88,7 +88,6 @@
"files": [
"bug-2969-verify-reapply-patches.test.cjs",
"bug-2994-verify-reapply-patches-installed-path.test.cjs",
"bug-3381-verify-work-workstream.test.cjs",
"bug-3657-verify-reapply-patches-pristine-drift.test.cjs",
"verify-health.test.cjs",
"verify-mvp-uat.test.cjs",