11 KiB
11 KiB
Constructive Editing Runtime Plan (Low-Res)
Objective
Move from MCP contract-level/runtime packet behavior to real constructive editing and code generation execution for representative languages:
cpprustpythontypescriptjavascriptgojavaelisp
Current Baseline
- Sprint 146-155 MCP handlers are now runtimeized and stateful.
- Representative language runtime exists and is wired to tool handlers.
- Handler-level step tests (
1703-1795tool surface set) are passing. - Taskitem pipeline logging is active and appending LoRA capture records.
Low-Res Plan
- Runtime to Engine Binding
- Replace synthetic stage outcomes with calls into existing adapter/sync/ regeneration/merge modules.
- Keep current response envelope stable while adding real engine evidence.
- File Mutation and Replay Integrity
- Add real file-level mutation application paths for constructive step/loop.
- Persist before/after snapshots and replay metadata per operation.
- Toolchain Execution Integration
- Wire provider routing to real build/test command execution paths.
- Normalize diagnostics from execution output into canonical payloads.
- Multi-Language Qualification
- Run representative-language deterministic replay and diff checks.
- Gate language tier transitions using real replay/rollback evidence.
- GA Hardening
- Add end-to-end constructive smoke scenarios per language family.
- Finalize rollout controls and promote only evidence-backed tiers.
- First-Class Planning Readiness
- Add pre-execution spec readiness scoring and gap detection.
- Synthesize missing constraints/acceptance/environment scaffolds before taskitem generation.
- Gate taskitem execution on minimum planning-readiness thresholds.
Implementation Map
Phase A: Bind Constructive Step to Real Adapter Operations
Primary files:
editor/src/mcp/RegisterSprint152Tools.heditor/src/graduation/RepresentativeLanguageRuntime.heditor/src/CppConstructiveEditAdapter.heditor/src/RustGoConstructiveEditAdapter.heditor/src/PythonTypeScriptConstructiveEditAdapter.heditor/src/AdapterOperationUtil.h
Deliverables:
whetstone_run_constructive_stepuses language-specific adapter execution.whetstone_get_constructive_statusreturns real adapter diagnostics.whetstone_run_constructive_looprecords per-stage real outcomes.
Validation:
- Existing step tests:
1763,1764,1765. - New integration test family: constructive step with real adapter outputs.
Phase B: Real Sync/Regenerate/Merge Path
Primary files:
editor/src/mcp/RegisterSprint142Tools.heditor/src/mcp/RegisterSprint143Tools.heditor/src/mcp/RegisterSprint144Tools.heditor/src/TextASTSync.heditor/src/graduation/CppTextDeltaParserBridgeModel.heditor/src/graduation/ConflictRegionDetectorModel.heditor/src/graduation/MergePolicyEngineModel.h
Deliverables:
- Sync tools call real text->AST machinery for supported languages.
- Regeneration tools call real AST->text generator path.
- Merge tools emit real conflict regions and policy outcomes.
Validation:
- Existing step tests:
1663-1665,1673-1675,1683-1685. - New cross-language sync/regenerate/merge integration tests.
Phase C: Real Toolchain Provider and Diagnostic Integration
Primary files:
editor/src/mcp/RegisterSprint151Tools.heditor/src/BuildSystem.heditor/src/Diagnostics.heditor/src/StructuredDiagnostics.heditor/src/LspOps.heditor/src/graduation/DiagnosticNormalizationCanonicalModel.h
Deliverables:
whetstone_list_toolchain_providersreflects runtime-detected providers.whetstone_probe_toolchain_providerexecutes probe checks.whetstone_normalize_diagnosticsingests raw provider/LSP output.
Validation:
- Existing step tests:
1753,1754,1755. - New tests with representative toolchain output fixtures.
Phase D: Replay/Transaction/GA Evidence from Real Runs
Primary files:
editor/src/mcp/RegisterSprint153Tools.heditor/src/mcp/RegisterSprint154Tools.heditor/src/mcp/RegisterSprint155Tools.heditor/src/graduation/ConstructiveTransactionSchema.heditor/src/graduation/ConstructiveReleaseCertificationPacketModel.heditor/src/graduation/MCPReplayDiagnosticsArtifact.h
Deliverables:
- Replay suite compares real run traces.
- Transaction resume/rollback replays actual state transitions.
- GA gate evaluates real determinism and recovery evidence.
Validation:
- Existing step tests:
1773-1775,1783-1785,1793-1795. - New end-to-end replay and rollback scenario tests.
Taskitem Execution Policy for This Plan
- For each implementation phase, generate taskitems using:
tools/mcp/run_sprint_taskitem_pipeline.sh <phase_plan_or_sprint_plan.md>
- Export each run:
tools/mcp/export_taskitem_run_for_lora.sh <run_output_dir>
- Keep
training_data/lora/taskitem_pipeline_runs.jsonlappend-only.
Immediate Next Slice
Start Phase A:
- Bind
whetstone_run_constructive_stepto concrete language adapters. - Keep fallback path for unsupported operations.
- Add targeted integration tests for
cpp,rust,python,typescript.
Parallel planning tranche (active):
sprint228_plan.mdtosprint231_plan.md- baseline artifacts:
logs/taskitem_runs/TEST_ONLY_spec_planning_baseline_20260226/fullstack_spec_readiness.jsonlogs/taskitem_runs/TEST_ONLY_spec_planning_baseline_20260226/deterministic_spec_readiness.json
Planning runtime controls (active):
sprint232_plan.mdtosprint254_plan.md- semantic bridge + intake augmentation + requirement injection + expansion gating are wired into:
tools/mcp/run_sprint_taskitem_pipeline.sh
- current policy default is native-first semantic fallback:
WSTONE_SEMANTIC_TASK_EXPANSION_MODE=fallback_only
- fallback diagnostics + remediation metadata are emitted by:
tools/mcp/analyze_semantic_fallback_gaps.py
- fallback budget gating is available via:
tools/mcp/check_semantic_fallback_budget.pytools/mcp/run_semantic_fallback_budget_gate.sh
- native decomposition quality gate is available in pipeline summary/hard-fail path:
native_decomposition_gate
- native reason enrichment can inject semantic tags into native task reasons:
WSTONE_NATIVE_REASON_ENRICHMENTnative_reason_enrichment
- native decomposition retry path can run second-pass task generation:
WSTONE_NATIVE_DECOMP_RETRYWSTONE_NATIVE_DECOMP_TARGET_MIN_TASKSnative_decomposition_retry
- impact-specific native decomposition coverage can be enforced:
WSTONE_NATIVE_IMPACT_COVERAGE_GATEWSTONE_NATIVE_IMPACT_COVERAGE_ENFORCEWSTONE_NATIVE_IMPACT_COVERAGE_PROFILESnative_impact_coverage
- remediation loop can synthesize profile-specific extra constraints and rerun:
WSTONE_EXTRA_NORMALIZED_REQUIREMENTS_FILEtools/mcp/synthesize_native_impact_remediation_requirements.pytools/mcp/run_native_impact_remediation_loop.sh
- remediation loop can also synthesize and inject profile-specific task bundles:
WSTONE_EXTRA_TASKS_FILEtools/mcp/synthesize_native_impact_remediation_tasks.py
- first-pass pipeline can synthesize profile autofill task bundles without external loop:
WSTONE_NATIVE_PROFILE_AUTOFILLWSTONE_NATIVE_PROFILE_AUTOFILL_MAX_TASKStools/mcp/synthesize_native_profile_autofill_tasks.py
- intrinsic first-pass boost can inject profile-derived decomposition constraints:
WSTONE_NATIVE_INTRINSIC_BOOSTtools/mcp/synthesize_native_intrinsic_boost_requirements.py
- intrinsic multishot generator path can run profile-targeted decomposition passes:
WSTONE_NATIVE_MULTISHOT_DECOMPWSTONE_NATIVE_MULTISHOT_MAX_PROFILESWSTONE_NATIVE_MULTISHOT_APPLY_MODEnative_multishot
- single-shot profile shaping path can close profile coverage without multishot:
WSTONE_NATIVE_SINGLESHOT_PROFILE_SHAPEtools/mcp/synthesize_single_shot_profile_shape_tasks.pynative_single_shot_profile_shape
- raw-only candidate search (no overlays) can benchmark intrinsic generator variants:
WSTONE_NATIVE_RAW_CANDIDATE_SEARCHWSTONE_NATIVE_RAW_CANDIDATE_MAX_VARIANTSWSTONE_NATIVE_RAW_CANDIDATE_REQUIRE_UPLIFTtools/mcp/score_native_tasks_profile_coverage.py
- closure ladder can select the minimal passing strategy automatically:
tools/mcp/run_native_profile_closure_ladder.sh
- closure ladder can route around historically ineffective raw-only mode:
tools/mcp/analyze_raw_candidate_uplift_history.pyWSTONE_CLOSURE_LADDER_SKIP_RAW_WHEN_NO_UPLIFT
- closure ladder outcomes can be aggregated in batch:
tools/mcp/run_native_profile_closure_ladder_batch.shtools/mcp/analyze_closure_ladder_outcomes.py
- raw gap backlog can be synthesized from ladder raw-only attempts:
tools/mcp/synthesize_raw_gap_backlog.py
- raw top-gap hardening can patch weak native outputs before overlay stages:
tools/mcp/harden_native_tasks_top_gaps.pyWSTONE_NATIVE_RAW_HARDEN_TOP_GAPSnative_raw_hardening
- raw candidate selection can be weighted by historical gap priorities:
WSTONE_NATIVE_RAW_TOP_GAP_WEIGHTED_SELECTWSTONE_NATIVE_RAW_TOP_GAP_BACKLOG_FILE- scorer
--top-gapstelemetry (top_gap_score)
- raw candidate search can enforce top-gap uplift as hard policy:
WSTONE_NATIVE_RAW_TOP_GAP_REQUIRE_UPLIFT- failure code
18when no weighted uplift is achieved
- raw candidate generation can ingest backlog-driven top-gap normalized requirements:
tools/mcp/synthesize_raw_top_gap_requirements.pyWSTONE_NATIVE_RAW_TOP_GAP_REQUIREMENTSWSTONE_NATIVE_RAW_TOP_GAP_MAX_SIGNALSnative_raw_top_gap_requirements
- raw candidate search can run adaptive retry with expanded top-gap requirements:
WSTONE_NATIVE_RAW_TOP_GAP_ADAPTIVE_RETRYWSTONE_NATIVE_RAW_TOP_GAP_RETRY_SIGNALSnative_raw_adaptive_retry
- raw candidate search can expand intrinsic exploration with signal-targeted variants:
tools/mcp/synthesize_raw_signal_targeted_variants.pyWSTONE_NATIVE_RAW_SIGNAL_TARGETED_VARIANTSWSTONE_NATIVE_RAW_SIGNAL_TARGETED_MAX_VARIANTSnative_raw_signal_targeted_variants
- raw candidate generation can inject intrinsic prompt-pack constraints from gap signals:
tools/mcp/synthesize_raw_intrinsic_prompt_pack.pyWSTONE_NATIVE_RAW_INTRINSIC_PROMPT_PACKWSTONE_NATIVE_RAW_INTRINSIC_PROMPT_MAX_SIGNALSnative_raw_intrinsic_prompt_pack
- raw candidate generation can inject explicit output-shape template controls:
tools/mcp/synthesize_raw_template_control_pack.pyWSTONE_NATIVE_RAW_TEMPLATE_CONTROL_PACKWSTONE_NATIVE_RAW_TEMPLATE_CONTROL_MAX_SIGNALSnative_raw_template_control_pack
- raw candidate scoring can evaluate deterministic structural projections pre-score:
tools/mcp/project_raw_candidate_structure.pyWSTONE_NATIVE_RAW_STRUCTURAL_PROJECTORnative_raw_structural_projector