Skip to content

Pipeline Plan 232

Seth Ford edited this page Mar 9, 2026 · 2 revisions

Design and implementation plan complete. Here's a summary:

Plan Summary

Goal: Fail fast in intake stage when test infrastructure is broken, before wasting time/cost in the build loop.

Files to Create

  • scripts/lib/pipeline-test-validation.sh — 6 validation checks in a new library module
  • scripts/sw-lib-pipeline-test-validation-test.sh — ~18 tests (unit + integration + edge cases)

Files to Modify

  • scripts/sw-pipeline.sh — default variable + source new module
  • scripts/lib/pipeline-cli.sh--skip-test-validation flag + help text
  • scripts/lib/pipeline-stages-intake.sh — call validate_test_infrastructure() after test detection
  • package.json — register test suite

13 Implementation Tasks

Checks: test command exists → test files exist → executable permissions → harness patterns (PASS/FAIL, set -euo pipefail) → shellcheck (optional) → mock directory patterns. Each check writes to a structured JSON report at .claude/pipeline-artifacts/test-validation.json.

Key Design Decisions

  • New lib module (not inline in intake) for clean separation and testability
  • Shellcheck optional — skip with warning if not installed
  • Harness pattern checks only for .sh files — non-bash projects skip those checks
  • --skip-test-validation escape hatch for edge cases

Design doc: docs/plans/2026-03-09-test-infrastructure-preflight-design.md Implementation plan: docs/plans/2026-03-09-test-infrastructure-preflight-plan.md

Clone this wiki locally