Add regression_gate step between executor completion and verification in execute-phase workflow. Runs prior phases' test suites to catch cross-phase regressions before they compound. - Discovers prior VERIFICATION.md files and extracts test file paths - Detects project test runner (jest/vitest/cargo/pytest) - Reports pass/fail with options to fix, continue, or abort - Skips silently for first phase or when no prior tests exist Changes: - execute-phase.md: New regression_gate step - CHANGELOG.md: Document regression gate feature - docs/FEATURES.md: Add REQ-EXEC-09 Fixes #945 Co-authored-by: TÂCHES <afromanguy@me.com>
This commit is contained in:
@@ -12,6 +12,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|||||||
- Pre-wave dependency check in `execute-phase`: verifies key-links from prior wave artifacts before spawning next wave
|
- Pre-wave dependency check in `execute-phase`: verifies key-links from prior wave artifacts before spawning next wave
|
||||||
- Cross-Plan Data Contracts (Dimension 9) in plan-checker: detects incompatible transformations between plans sharing data pipelines
|
- Cross-Plan Data Contracts (Dimension 9) in plan-checker: detects incompatible transformations between plans sharing data pipelines
|
||||||
- Export-level spot check in `verify-phase`: catches dead stores that exist in wired files but are never called
|
- Export-level spot check in `verify-phase`: catches dead stores that exist in wired files but are never called
|
||||||
|
- **Cross-phase regression gate** — New `regression_gate` step in `execute-phase` runs prior phases' test suites after execution completes but before verification, catching regressions before they compound (#945)
|
||||||
- **Requirements coverage gate in plan-phase** — New step 13 verifies all phase requirements are covered by at least one plan before planning completes. Cross-checks REQ-IDs from ROADMAP against plan frontmatter and CONTEXT.md features against plan objectives (#984)
|
- **Requirements coverage gate in plan-phase** — New step 13 verifies all phase requirements are covered by at least one plan before planning completes. Cross-checks REQ-IDs from ROADMAP against plan frontmatter and CONTEXT.md features against plan objectives (#984)
|
||||||
- **`/gsd:ship` command** — Native PR creation workflow that bridges local completion → merged PR. Auto-generates rich PR body from planning artifacts (SUMMARY.md, VERIFICATION.md, REQUIREMENTS.md), pushes branch, creates PR via `gh`, optionally requests review, and updates STATE.md with shipping status (#829)
|
- **`/gsd:ship` command** — Native PR creation workflow that bridges local completion → merged PR. Auto-generates rich PR body from planning artifacts (SUMMARY.md, VERIFICATION.md, REQUIREMENTS.md), pushes branch, creates PR via `gh`, optionally requests review, and updates STATE.md with shipping status (#829)
|
||||||
|
|
||||||
|
|||||||
@@ -221,6 +221,7 @@
|
|||||||
- REQ-EXEC-06: System MUST run post-execution verifier to check phase goals were met
|
- REQ-EXEC-06: System MUST run post-execution verifier to check phase goals were met
|
||||||
- REQ-EXEC-07: System MUST support git branching strategies (`none`, `phase`, `milestone`)
|
- REQ-EXEC-07: System MUST support git branching strategies (`none`, `phase`, `milestone`)
|
||||||
- REQ-EXEC-08: System MUST invoke node repair operator on task verification failure (when enabled)
|
- REQ-EXEC-08: System MUST invoke node repair operator on task verification failure (when enabled)
|
||||||
|
- REQ-EXEC-09: System MUST run prior phases' test suites before verification to catch cross-phase regressions
|
||||||
|
|
||||||
**Produces:**
|
**Produces:**
|
||||||
| Artifact | Description |
|
| Artifact | Description |
|
||||||
|
|||||||
@@ -415,6 +415,67 @@ node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs(phase-${PARENT
|
|||||||
```
|
```
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
|
<step name="regression_gate">
|
||||||
|
Run prior phases' test suites to catch cross-phase regressions BEFORE verification.
|
||||||
|
|
||||||
|
**Skip if:** This is the first phase (no prior phases), or no prior VERIFICATION.md files exist.
|
||||||
|
|
||||||
|
**Step 1: Discover prior phases' test files**
|
||||||
|
```bash
|
||||||
|
# Find all VERIFICATION.md files from prior phases in current milestone
|
||||||
|
PRIOR_VERIFICATIONS=$(find .planning/phases/ -name "*-VERIFICATION.md" ! -path "*${PHASE_NUMBER}*" 2>/dev/null)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Step 2: Extract test file lists from prior verifications**
|
||||||
|
|
||||||
|
For each VERIFICATION.md found, look for test file references:
|
||||||
|
- Lines containing `test`, `spec`, or `__tests__` paths
|
||||||
|
- The "Test Suite" or "Automated Checks" section
|
||||||
|
- File patterns from `key-files.created` in corresponding SUMMARY.md files that match `*.test.*` or `*.spec.*`
|
||||||
|
|
||||||
|
Collect all unique test file paths into `REGRESSION_FILES`.
|
||||||
|
|
||||||
|
**Step 3: Run regression tests (if any found)**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Detect test runner and run prior phase tests
|
||||||
|
if [ -f "package.json" ]; then
|
||||||
|
# Node.js — use project's test runner
|
||||||
|
npx jest ${REGRESSION_FILES} --passWithNoTests --no-coverage -q 2>&1 || npx vitest run ${REGRESSION_FILES} 2>&1
|
||||||
|
elif [ -f "Cargo.toml" ]; then
|
||||||
|
cargo test 2>&1
|
||||||
|
elif [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then
|
||||||
|
python -m pytest ${REGRESSION_FILES} -q --tb=short 2>&1
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
**Step 4: Report results**
|
||||||
|
|
||||||
|
If all tests pass:
|
||||||
|
```
|
||||||
|
✓ Regression gate: {N} prior-phase test files passed — no regressions detected
|
||||||
|
```
|
||||||
|
→ Proceed to verify_phase_goal
|
||||||
|
|
||||||
|
If any tests fail:
|
||||||
|
```
|
||||||
|
## ⚠ Cross-Phase Regression Detected
|
||||||
|
|
||||||
|
Phase {X} execution may have broken functionality from prior phases.
|
||||||
|
|
||||||
|
| Test File | Phase | Status | Detail |
|
||||||
|
|-----------|-------|--------|--------|
|
||||||
|
| {file} | {origin_phase} | FAILED | {first_failure_line} |
|
||||||
|
|
||||||
|
Options:
|
||||||
|
1. Fix regressions before verification (recommended)
|
||||||
|
2. Continue to verification anyway (regressions will compound)
|
||||||
|
3. Abort phase — roll back and re-plan
|
||||||
|
```
|
||||||
|
|
||||||
|
Use AskUserQuestion to present the options.
|
||||||
|
</step>
|
||||||
|
|
||||||
<step name="verify_phase_goal">
|
<step name="verify_phase_goal">
|
||||||
Verify phase achieved its GOAL, not just completed tasks.
|
Verify phase achieved its GOAL, not just completed tasks.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user