Files
whetstone_DSL/sprint166_plan.md

3.6 KiB

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