# CI wired manifest for defaults/scripts/tests/ (issue #4455)
#
# Each line names a `test-*.sh` suite that run-ci-suites.sh executes in CI.
# These are classified hermetic + portable to ubuntu-latest (no live forge,
# network, tokens, or macOS-only syscalls; any macOS idiom has a GNU fallback).
#
# See ci-excluded.txt for the excluded suites and their reasons.
# check-ci-suite-manifest.sh enforces that every test-*.sh is in exactly one
# of these two files. Blank lines and lines beginning with `#` are ignored.
#
# Since #4769 this manifest also covers the Claude-path guard suites under
# tests/hooks/ (repo root, NOT defaults/scripts/tests/ — Repo Skills' guard
# tests live there, one directory per guard family they test). Entries for
# suites outside this directory are qualified with their path relative to the
# repo root (e.g. `tests/hooks/test-guard-destructive-core.sh`); run-ci-suites.sh
# and check-ci-suite-manifest.sh both resolve a `/`-containing entry against
# the repo root instead of this directory. They were confirmed hermetic (no
# live forge/network calls — the `gh`/`curl` strings in them are guard-input
# fixtures, never executed) before being wired in here.
#
# Since #4451 the manifest also covers defaults/hooks/tests/ — the remaining
# unwired guard-hook suites (background-subagents, loom-workspace,
# worktree-paths, methodology-inject, skill-router). Each copies its hook
# under test into an isolated `mktemp -d` git tree and drives it purely via
# stdin JSON + env vars (no live forge/network calls, no BSD-only sed/stat/
# date flags), so they were confirmed hermetic and ubuntu-portable the same
# way as the tests/hooks/ suites above before being wired in here.

test-agent-destroy.sh
test-app-permission-fallback.sh
test-approval-history-per-issue-events.sh
test-archive-transcripts.sh
test-blame-issue.sh
test-branch-landed.sh
test-body-repo-affinity.sh
test-bounded-run.sh
test-build-gate-runner.sh
test-build-gate-timeout.sh
test-build-rs-watchset.sh
test-build-slot.sh
test-cargo-test-daemon-guard.sh
test-champion-capped-hold-routing.sh
test-champion-ci-checks-no-checks-signal.sh
test-champion-ci-workflow-blast.sh
test-champion-critical-file-check.sh
test-champion-evaluating-reclaim-trust.sh
test-champion-epic-child-discovery.sh
test-champion-epic-escalation-evaluations.sh
test-champion-epic-escalation-respects-human-hold.sh
test-champion-epic-phase-marker-normalization.sh
test-champion-epic-verdict-marker-scope.sh
test-champion-followon-out-of-scope.sh
test-champion-held-pr-health-pass.sh
test-champion-issue-promo-escalation-respects-human-hold.sh
test-champion-markerless-park.sh
test-champion-merge-queue-step-no-fallthrough.sh
test-champion-out-of-band-ac-gate-switch.sh
test-champion-pr-merge-hold-release.sh
test-champion-pr-merge-negation-guard.sh
test-champion-post-claim-recheck.sh
test-champion-premise-false-close.sh
test-champion-promotion-throughput.sh
test-champion-ratification-hold.sh
test-champion-resync-waiver.sh
test-champion-standing-authorization.sh
test-champion-targeted-modes.sh
test-champion-terminal-verdicts.sh
test-champion-tracker-marker-skip.sh
test-check-cas-recheck-consistency.sh
test-check-ci-status.sh
test-ci-suite-manifest-installed-layout.sh
test-check-config-no-host-paths.sh
test-check-conflict-markers.sh
test-check-evaluating-staleness.sh
test-check-git-identity.sh
test-check-guards-installed.sh
test-check-merge-config.sh
test-check-host-sleep.sh
test-check-defaults-version-bump.sh
test-check-ingest-key-file.sh
test-check-main-freshness.sh
test-check-promotion-landed.sh
test-check-quarantine-stashes.sh
test-check-runtime-capabilities.sh
test-check-shell-syntax.sh
test-check-verified-corrections-preserved.sh
test-claim-staleness.sh
test-classify-ac-verification.sh
test-classify-error.sh
test-clean-stale-binary.sh
test-clean-stale-building-labels.sh
test-config-resolver.sh
test-config-tiers-cli-migration.sh
test-cpu-budget.sh
test-create-issue-refuse-labels.sh
test-create-pr-priority-labels.sh
test-create-pr-rate-limit-fallback.sh
test-create-pr-review-gate.sh
test-create-pr-superseded-issue.sh
test-create-pr-version-check.sh
test-critical-file-hold-tick.sh
test-curator-rightsizing.sh
test-default-branch.sh
test-dependency-parse.sh
test-detect-unlabeled-epics.sh
test-disk-headroom.sh
test-docs-guide-lock.sh
test-docs-only-fast-path.sh
test-docs-worktree.sh
test-epic-label-preserved-on-escalation.sh
test-extract-capability-markers.sh
test-filing-lock.sh
test-fleet-check.sh
test-forge-helpers.sh
test-forge-helpers-rate-limit-fallback.sh
test-forge-transient-classification.sh
test-gh-cached.sh
test-github-app-token.sh
test-gitignore-guard.sh
test-guard-codex-bridge.sh
test-guard-hook-schema.sh
test-guide-docs-pr-exclude-refresh.sh
test-guide-docs-pr-race.sh
test-guide-docs-telemetry.sh
test-guide-operator-attention-fold.sh
test-guide-blocked-unblock-limit.sh
test-guide-operator-hold-exclude.sh
test-guide-plan-body-stable-sort.sh
test-guide-pool-pressure-defer.sh
test-guide-superseding-block-merge-state.sh
test-guide-work-log-rotation.sh
test-guide-unblock-merged-blocker.sh
test-guide-work-log-debounce.sh
test-guide-work-log-issue-out-of-order.sh
test-guide-work-log-issue-pagination.sh
test-guide-work-log-out-of-order-merge.sh
test-guide-work-log-pr-pagination.sh
test-guide-work-log-self-loop.sh
test-guide-work-plan-approved-review-label-fidelity.sh
test-guide-work-plan-debounce.sh
test-guide-work-plan-operator-hold-exclude.sh
test-guide-work-plan-ready-open-pr-exclude.sh
test-hard-exclusion-labels.sh
test-host-sleep-config.sh
test-install-active-session.sh
test-install-agents-md-reapply.sh
test-install-full-reinstall-no-target-mutation.sh
test-install-lock.sh
test-install-pr-markers.sh
test-install-source-guard.sh
test-install-stash-scope.sh
test-install-sync-labels.sh
test-jq-reserved-word-args.sh
test-judge-fallback-cap.sh
test-judge-payload-drop-guard.sh
test-judge-spec-reconcile.sh
test-judge-tdd-merge-base.sh
test-land-resync-commit.sh
test-live-state-sandbox.sh
test-locate-daemon-bin.sh
test-loom-daemon-quiesce.sh
test-loom-daemon-stop.sh
test-loom-status.sh
test-mcp-config.sh
test-mcp-pnpm-selfrepair.sh
test-memory-budget.sh
test-merge-admission-telemetry.sh
test-merge-pr-app-permission-fallback.sh
test-merge-pr-auto-merge-disabled-fallback.sh
test-merge-pr-auto-queued-stacked-children.sh
test-merge-pr-expected-head.sh
test-merge-pr-pr-state.sh
test-merge-pr-check-runs-404-fallback.sh
test-merge-pr-daemon-version-floor.sh
test-merge-pr-rate-limit-fallback.sh
test-merge-pr-stacked-child-branch-delete.sh
test-merge-pr-tree-checks.sh
test-merge-pr-required-checks.sh
test-nextest-daemon-guard.sh
test-operator-hold-routing.sh
test-post-verdict.sh
test-pr-worktree-isolation.sh
test-probe-tokens-fallback.sh
test-provision-hooks.sh
test-provision-skills.sh
test-random-file.sh
test-rebase-stacked-children.sh
test-record-noop-release.sh
test-recover-orphaned-shepherds-diagnostics.sh
test-repo-mismatch-fallback.sh
test-require-daemon-bin.sh
test-require-daemon-bin-provenance.sh
test-resync-installed-agent-skills-guard.sh
test-resync-installed-agents-hooks.sh
test-resync-installed-gh-config-guard.sh
test-resync-installed-guard-check.sh
test-resync-installed-host-optout.sh
test-resync-installed-labels-block.sh
test-resync-installed-local-fix-guard.sh
test-resync-installed-retired-dry-run.sh
test-resync-installed-retired-migrate.sh
test-resync-installed-dogfood-symlink.sh
test-resync-installed-stamp.sh
test-resync-installed-output-staging.sh
test-resync-installed.sh
test-resync-installed-payload-fallback.sh
test-review-feedback-reconciliation.sh
test-run-ci-suites-daemon-guard.sh
test-run-ci-suites-failure-excerpt.sh
test-run-ci-suites-retry.sh
test-run-ci-suites-serial-lane.sh
test-run-ci-suites-shard.sh
test-run-ci-suites-timings.sh
test-run-job.sh
test-safe-stash-pop.sh
test-safehoused-service.sh
test-script-helper-version-floor.sh
test-session-mode.sh
test-spawn-codex-sandbox-noop.sh
test-spawn-codex-session-down.sh
test-stale-claim-standdown-suppression.sh
test-stop-hook-subcommand-skew.sh
test-sweep-auto-stack.sh
test-sweep-lease-convergence.sh
test-sweep-experiment.sh
test-sweep-lease-fence.sh
test-sweep-lease-fence-race.sh
test-sweep-lease-publish.sh
test-sweep-lease-renew.sh
test-sweep-lease-renew-lifecycle.sh
test-sweep-pr-mode.sh
test-sweep-run-registry.sh
test-sweep-wave-judge-done-staleness.sh
test-sync-labels-check.sh
test-sync-labels-migrate-retired.sh
test-token-cache-affinity.sh
test-claude-wrapper-proxy-rotation.sh
test-sync-labels-repo-flag.sh
test-sync-labels-write-failures.sh
test-verdict-staleness-guard.sh
test-verify-install-scope.sh
test-version-bump-workflow-identity.sh
test-version-check-gate-callsites.sh
test-version-check-gate.sh
test-warn-operator-gated.sh
test-warn-out-of-set-deps.sh
test-write-scope.sh
test-worktree-forge-pr-check.sh
test-worktree-hookspath.sh
test-worktree-refused-claim-no-lease.sh
test-worktree-root-override.sh
test-worktree-sentinel.sh

# tests/hooks/ (repo root) — Claude-path guard suites, wired since #4769.
tests/hooks/test-guard-destructive-dispatcher.sh
tests/hooks/test-guard-install-matrix.sh
tests/hooks/test-guard-destructive-cargo-and-perf.sh
tests/hooks/test-guard-destructive-category-opt-ins.sh
tests/hooks/test-guard-destructive-core.sh
tests/hooks/test-guard-destructive-cp-mv-continuation.sh
tests/hooks/test-guard-destructive-decision-log.sh
tests/hooks/test-guard-destructive-force-scope.sh
tests/hooks/test-guard-destructive-heredoc-subst.sh
tests/hooks/test-guard-destructive-masking.sh
tests/hooks/test-guard-destructive-matching-precision.sh
tests/hooks/test-guard-destructive-mkdir-confinement.sh
tests/hooks/test-guard-destructive-mktemp-canon.sh
tests/hooks/test-guard-destructive-readonly-fastpath.sh
tests/hooks/test-guard-destructive-rm-scope.sh
tests/hooks/test-guard-destructive-sed-operands.sh
tests/hooks/test-guard-destructive-session-scratch.sh
tests/hooks/test-guard-destructive-stash-scope.sh
tests/hooks/test-guard-destructive-write-confinement.sh
tests/hooks/test-guard-loom-workflow.sh
# Not a Claude-path guard, but the same repo-root tests/hooks/ location and
# hermetic-fixture pattern (throwaway `git worktree add` trees, fake binaries,
# no network/forge calls) — covers .loom/hooks/post-worktree.sh's redirected-
# CARGO_TARGET_DIR resolution, wired since #6013.
tests/hooks/test-post-worktree-target-dir.sh
# Same hermetic pattern (stubbed PATH, fake cargo/pnpm/loom-daemon, no network)
# — covers .githooks/pre-commit failing closed on a missing/failing formatter,
# wired since #10123.
tests/hooks/test-pre-commit-missing-formatter.sh

# defaults/hooks/tests/ — remaining unwired guard-hook suites, wired since #4451.
defaults/hooks/tests/test-guard-background-subagents.sh
defaults/hooks/tests/test-roll-pause.sh
defaults/hooks/tests/test-guard-installed-file-writes.sh
defaults/hooks/tests/test-guard-loom-workspace.sh
defaults/hooks/tests/test-guard-secret-scan.sh
defaults/hooks/tests/test-guard-worktree-paths.sh
defaults/hooks/tests/test-hook-wiring.sh
defaults/hooks/tests/test-methodology-inject.sh
defaults/hooks/tests/test-skill-router.sh

# tests/install/ — installer/uninstaller unit suites, wired since #5275 (were
# previously orphaned entirely — appeared in ci.yml only as a paths-filter
# trigger, never as an invoked job step). All confirmed hermetic (no live
# network/forge calls, fake/stub binaries only) and ubuntu-portable.
tests/install/test-daemon-build-otlp-probe.sh
tests/install/test-daemon-build-shortcut.sh
tests/install/test-dry-run-preview-manifest.sh
tests/install/test-forge-detect.sh
tests/install/test-gitattributes-in-install-worktree.sh
tests/install/test-git-repo-detection.sh
tests/install/test-hooks-preserve.sh
tests/install/test-initial-commit-credential-exclusion.sh
tests/install/test-lint-ignore-configs.sh
tests/install/test-manifest-freshness-after-hook-wiring.sh
tests/install/test-pnpm-runnable-check.sh
tests/install/test-provision-daemon.sh
tests/install/test-provision-tools.sh
tests/install/test-setup-branch-protection-bypass-actors.sh
tests/install/test-setup-branch-protection-required-checks.sh
tests/install/test-setup-repository-settings-merge-method.sh
tests/install/test-uninstall-clean-preserves-unmanaged-hooks.sh
tests/install/test-uninstall-labels-block.sh
tests/install/test-uninstall-preserve-siblings.sh
tests/install/test-uninstall-settings-permissions.sh
tests/install/test-uninstall-shim-cleanup.sh

# tests/hermit/ — the Hermit role's stateless-ceremony heuristic regression
# guard, wired since #5275 (was previously orphaned, no CI runner at all).
# Hermetic: python3 AST parsing over local fixtures only, no network.
tests/hermit/test-stateless-ceremony.sh

# scripts/ — repo-root tooling suites. Hermetic: builds a disposable git
# repo under mktemp -d with its own identity, no network, no gh.
scripts/test-changelog.sh

# #11790: spawn-claude.sh's container gh credentials and
# `gh-shim container-mount` sink mount. Hermetic: stub docker + stub daemon
# under mktemp -d; no network, forge or real daemon binary.
test-spawn-claude-container-gh.sh

# #11076: spawn-claude.sh's systemd scope carries OOMPolicy=continue. Hermetic:
# systemd-run/systemctl/claude stubs under mktemp -d, no daemon, forge or network.
test-spawn-claude-oom-policy.sh

# #11094: spawn-claude.sh's systemd scope gets MemoryMax from `loom-daemon
# ram-scope-limit`. Hermetic: daemon/systemd-run/systemctl/claude stubs under
# mktemp -d; no real daemon, forge or network.
test-spawn-claude-memory-max.sh
# #11863: prompt-lint that targeted Judge/Curator/Builder invocations repeat
# discovery gates before the first write. Hermetic: reads files only.
test-targeted-role-invocation.sh
# #10574: prompt-lint that Judge/Doctor CI-wait recipes agree (snapshot vs
# bounded wait, unknown required contexts). Hermetic: reads files only.
test-ci-wait-prompt-consistency.sh
# #12939: tools-first slice resolution on a clean install (loom-tools before
# loom-daemon, transitional fallback). Hermetic.
test-tools-first-clean-install.sh
# #12941: lib/loom-tools.sh is a compat alias for lib/repo-root.sh. Hermetic.
test-repo-root-alias.sh
# #11787: create-issue.sh refuses a direct loom:curated write (exits 2 before forge_detect). Hermetic.
test-create-issue-curated.sh
