Files
whetstone_DSL/sprint167_plan.md

91 lines
3.4 KiB
Markdown

# Sprint 167 Plan: Production Gates for Generated Code (Compile/Test/No-Placeholder)
## Context
Generation quality is currently inferred from text shape. To be production-ready,
generated artifacts must pass hard gates:
- compile successfully
- satisfy required tests/checks
- contain no placeholder markers in shipped output
This sprint introduces enforceable production gates and integrates them into MCP
tool outputs and planning flow.
---
## Goals
1. Add compile/test validation for generated artifacts
2. Block completion when placeholders/TODOs remain
3. Expose gate results in MCP responses
4. Enable deterministic fail-fast behavior for non-production output
---
## Steps
### Step 1879: Placeholder/TODO detector and policy (10 tests)
Create detector for non-production markers in generated code:
- `TODO`, `FIXME`, `placeholder`, `auto /* TODO`, synthetic stubs
- language-specific placeholder patterns
Tests (10): marker detection across C++/Rust/Go/Java/Python, false-positive guard,
comment-only configurable handling, deterministic counts, severity mapping,
policy override handling, report serialization, integration with quality metadata,
non-empty marker context capture, no-regression on clean code.
### Step 1880: Compile gate runner for generated snippets/projects (12 tests)
Add compile gate utility:
- compile generated unit (header/source or minimal target scaffold)
- capture structured diagnostics
- return pass/fail + error categories
Tests (12): compile pass path, syntax failure path, type failure path, missing
include path, deterministic command construction, timeout handling, temp workspace
cleanup, diagnostics normalization, per-language command routing, empty-input guard,
partial compile mode, machine-readable report schema.
### Step 1881: Test gate runner and minimal harness injection (10 tests)
Add test gate path:
- generate or attach minimal behavioral tests for known patterns (PriorityQueue etc.)
- run and collect results
Tests (10): harness generation, test pass path, behavioral fail path, timeout path,
deterministic harness names, output parsing, flaky-test guard mode, no-harness
scenario reporting, per-language skip policy, report schema validity.
### Step 1882: MCP output contract update for production gates (8 tests)
Update relevant tools (`whetstone_generate_code`, `whetstone_run_pipeline`) to
include gate block:
- `gates.compile.passed`
- `gates.tests.passed`
- `gates.placeholder.passed`
- `gates.overall_ready`
Tests (8): all fields present, pass/fail correctness, backward compatibility for
existing consumers, schema sync with `tools/claude/tools.json`, cross-tool
consistency, deterministic overall aggregation, failure reasons included, docs updated.
### Step 1883: Sprint 167 Integration Summary (8 tests)
Add `editor/src/Sprint167IntegrationSummary.h`.
Record: steps_completed=5 (1879-1883), compile_gate_active=true,
test_gate_active=true, placeholder_gate_active=true, success=true.
Tests (8): constructable summary struct, steps_completed==5, three gates active,
overall_ready false when any gate fails, overall_ready true on green sample,
schema consistency verified, regression suite pass, success==true.
---
## Architecture Gate
- Gate checks must be deterministic and machine-readable
- Failures must include actionable diagnostics and not silently downgrade quality
- “Ready” status is forbidden when placeholders or failed compile/tests remain