Implement sprints 166-168 production code generation gates and loop
This commit is contained in:
93
sprint166_plan.md
Normal file
93
sprint166_plan.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# Sprint 166 Plan: `whetstone_generate_code` for Production Class/Module Output
|
||||
|
||||
## Context
|
||||
|
||||
Current A/B rerun (2026-02-26) confirms:
|
||||
- `whetstone_generate_code` still returns a single-function `printf` stub for
|
||||
class-level specs.
|
||||
- `whetstone_run_pipeline` now emits class structure, but still uses placeholder
|
||||
typing and incomplete bodies for production targets.
|
||||
|
||||
This sprint upgrades `whetstone_generate_code` from function-stub behavior to a
|
||||
deterministic class/module generator suitable for real implementation tasks.
|
||||
|
||||
---
|
||||
|
||||
## Goals
|
||||
|
||||
1. Replace `printf` fallback path for class/module specs
|
||||
2. Emit complete class/data-model structure with concrete typed fields/methods
|
||||
3. Support PriorityQueue-class pattern end-to-end in generated C++
|
||||
4. Return explicit generation quality metadata (not just code text)
|
||||
|
||||
---
|
||||
|
||||
## Steps
|
||||
|
||||
### Step 1874: Spec classifier for function/class/module intent (10 tests)
|
||||
|
||||
Add robust intent parsing for `whetstone_generate_code`:
|
||||
- identify data model vs service class vs utility function
|
||||
- detect multi-method class requests
|
||||
- route to class/module builder instead of function stub path
|
||||
|
||||
Tests (10): function-only routing, class routing, module routing, mixed intent,
|
||||
false-positive rejection, deterministic classification, empty-spec handling,
|
||||
high-entropy prompt handling, fallback reason correctness, API compatibility.
|
||||
|
||||
### Step 1875: C++ class/data-model emitter with concrete typing (12 tests)
|
||||
|
||||
Implement structured C++ emitter for:
|
||||
- fields (`std::string`, `int`, `bool`, `double`, vectors/maps where detected)
|
||||
- constructors and method signatures with concrete types
|
||||
- includes + pragma once + namespace handling
|
||||
|
||||
Tests (12): typed field emission, constructor emission, method signature typing,
|
||||
include minimization, namespace stability, header parseability, no `auto` in
|
||||
public API for inferred primitives, deterministic member ordering, no raw stub
|
||||
fallback, unknown-type diagnostic, compatibility with existing `schema_to_cpp`,
|
||||
regression on function-only generation.
|
||||
|
||||
### Step 1876: PriorityQueue pattern builder (10 tests)
|
||||
|
||||
Add first-class support for queue patterns:
|
||||
- internal heap storage type
|
||||
- enqueue/dequeue/peek/size/empty bodies
|
||||
- ordering by priority
|
||||
|
||||
Tests (10): method presence, max-heap behavior shape, empty-queue guard paths,
|
||||
return type correctness, const-correctness for observers, compile success of
|
||||
generated snippet, deterministic output, no placeholder body markers, no `printf`
|
||||
fallback, class+data model co-generation.
|
||||
|
||||
### Step 1877: Generation quality metadata contract (8 tests)
|
||||
|
||||
Extend output payload with machine-checkable fields:
|
||||
- `quality.compilable_estimate`
|
||||
- `quality.placeholder_count`
|
||||
- `quality.todo_count`
|
||||
- `quality.fallback_used`
|
||||
- `quality.warnings[]`
|
||||
|
||||
Tests (8): fields always present, counts accurate, fallback flag accuracy,
|
||||
warnings non-empty when uncertain inference used, backward compatibility with
|
||||
legacy callers, JSON schema update, deterministic values, docs update.
|
||||
|
||||
### Step 1878: Sprint 166 Integration Summary (8 tests)
|
||||
|
||||
Add `editor/src/Sprint166IntegrationSummary.h`.
|
||||
Record: steps_completed=5 (1874-1878), generate_code_stub_removed_for_classes=true,
|
||||
priority_queue_pattern_supported=true, quality_contract_exposed=true, success=true.
|
||||
|
||||
Tests (8): constructable summary struct, steps_completed==5, class stub fallback
|
||||
removed, PriorityQueue generation path works, metadata present, regression checks
|
||||
pass, no API break in tool schema, success==true.
|
||||
|
||||
---
|
||||
|
||||
## Architecture Gate
|
||||
|
||||
- No external dependencies added
|
||||
- Keep existing tool name/signature (`whetstone_generate_code`) backward-compatible
|
||||
- Class/module specs must never silently degrade to generic `printf` function stubs
|
||||
|
||||
Reference in New Issue
Block a user