3.8 KiB
Sprint 169 Plan: Production-Grade whetstone_run_pipeline Output
Context
After Sprint 166-168:
whetstone_generate_codecan produce production-shaped class/module code for the benchmark task.whetstone_run_pipelinestill emits placeholder-style signatures for some cross-language class outputs (e.g.auto self).
This sprint upgrades run_pipeline output quality so cross-language generation
can reach production gates, not just structural completeness.
Goals
- Eliminate placeholder method signatures in
run_pipelineoutput - Emit concrete data-model fields for parsed classes (e.g., WorkItem fields)
- Add language-aware return/parameter typing policy for pipeline generation
- Make PriorityQueue Python→C++ path pass production gates
Steps
Step 1889: Typed method signature normalization in pipeline projections (10 tests)
Normalize class method signatures post-projection:
- remove synthetic receiver placeholders (
auto self) - infer method parameter and return types from AST context and naming heuristics
- preserve language-specific idioms
Tests (10): Python->C++ receiver removal, return typing for queue operations, parameter typing for enqueue/dequeue/peek family, no regression for non-class functions, deterministic signature order, no placeholder tokens in signatures, language coverage (cpp/rust/go), empty-method safety, parser round-trip, legacy compatibility on previously passing cases.
Step 1890: Data-model field materialization from source AST (10 tests)
Ensure parsed class/data models carry concrete field definitions through cross-language lowering:
- dataclass fields and typed attributes become concrete target fields
- no empty data structs for known typed source classes
Tests (10): WorkItem field mapping, primitive type mapping correctness, nullable/ optional handling policy, ordering stability, no dropped fields in nested classes, no accidental duplicate fields, parser span preservation, unknown-type diagnostics, JSON snapshot stability, no regression on non-dataclass code.
Step 1891: Language-specific method body scaffolding for core patterns (12 tests)
Add deterministic body templates for common containers/patterns:
- queue push/pop/peek/size/empty
- simple guard clauses and return fallbacks
Tests (12): queue method bodies non-empty, compile-clean output for C++ sample, Rust/Go structural validity, no TODO markers, no placeholder comments, predictable imports/includes, safe empty-queue behavior scaffold, deterministic output across runs, regression on existing function bodies, no accidental semantic inversions, syntax check pass, benchmark sample pass.
Step 1892: run_pipeline quality payload hardening (8 tests)
Align run_pipeline quality payload with production criteria:
- gate failures clearly tied to generated code deficiencies
- structured reasons for non-ready outputs
Tests (8): quality/gates always present, failure reasons populated, placeholder count accuracy, compile/test gate integration signals, backward-compatible payload fields, deterministic warning ordering, no false-green on placeholder signatures, schema sync update.
Step 1893: Sprint 169 Integration Summary (8 tests)
Add editor/src/Sprint169IntegrationSummary.h.
Record: steps_completed=5 (1889-1893), pipeline_signatures_typed=true,
data_models_materialized=true, priorityqueue_pipeline_ready=true, success=true.
Tests (8): constructable summary struct, steps_completed==5, signature typing active, field materialization active, benchmark pipeline ready, gate payload valid, regression suite pass, success==true.
Architecture Gate
run_pipelinemust not emit receiver placeholders in production target languages- Class/data-model outputs must include concrete fields when source types exist
- Gate status must be truthful and machine-checkable