5.5 KiB
Sprint 002: RSA Semantic Bootstrap
Status
Planned
Intent
Define the first Whetstone-authored semantic model for whetstone_RSA and make it
the new source-of-truth target for future RSA contract evolution.
This sprint exists to stop the project from continuing as a C++-first library by inertia.
Problem
whetstone_RSA currently has a useful C++ scaffold, but the semantic center of
gravity is still wrong.
The project has already concluded that RSA should be Whetstone-AST-first and that the C++ layer should be a runtime projection. That conclusion is documented, but it is not yet operationalized.
Right now:
- the semantic contract is still primarily embodied in
include/whetstone_rsa/types.h - diagnosis/runtime interfaces are defined in C++ first
- backend-selection and structured-slot support are planned but not yet represented in a semantic-first source model
If that continues, the bootstrap scaffold will become the architecture by default.
Scope
This sprint is about semantic bootstrap only.
Primary outputs:
- a first concrete RSA semantic model
- a mapping from the existing C++ scaffold into that semantic model
- a projection boundary definition for future C++ runtime types
Supporting documents to update if needed:
docs/whetstone_ast_first_integration.mdROADMAP.md
This sprint does not require immediate deep changes to whetstone_DSL
runtime code.
Architectural Constraint
The semantic source of truth for RSA should live in Whetstone-authored forms.
The C++ code in whetstone_RSA should remain:
- runtime implementation
- projected contract types
- diagnosis/runtime execution machinery
- backend adapter surface
It should not remain the primary authoring home of RSA semantics.
Sprint Goals
1. Define the first semantic entity set
Establish the minimum initial semantic model for RSA:
DecisionContractDecisionSurfaceDecisionRequestModelDecisionResultModelSuitabilityAssessmentDiagnosisModelProbeDefinitionBackendSuitabilityGatePackage
2. Separate semantic contract from runtime behavior
Classify the current C++ scaffold into:
- semantic contract entities
- runtime-only execution types
- bootstrap/demo code
3. Define the first projection boundary
State clearly what will eventually be projected from semantic source into:
- C++ runtime contract structs
- runtime manifests
- schema artifacts
- benchmark configuration artifacts
4. Prepare version-0 support for both enum and structured-slot gates
The semantic model must support:
- bounded enum outputs
- bounded structured outputs with slots
from the beginning, even if early runtime examples are enum-dominant.
5. Leave RL/bandit as semantic placeholders only
Include rl_policy in backend-family semantics now so the contract stays open,
but keep first implementation effort focused on:
- classical ML families
- tiny transformer families
Concrete Deliverables
Deliverable A: Semantic model definition
Produce a concrete first semantic model with entity names, field groups, and relationship rules.
Deliverable B: C++ scaffold mapping
Map the current public C++ surface into the semantic model, especially:
types.hprobe.hprobe_registry.hdiagnosis_engine.hsuitability_assessor.h
Deliverable C: Missing-field inventory
Identify what the current scaffold is missing for:
- structured slot outputs
- backend suitability
- deployment packaging
- argument-oriented runtime invocation
Deliverable D: Projection strategy
Define how future C++ types should be treated:
- temporary projection snapshots
- not semantic source
- updated from semantic-first changes rather than evolved independently
Acceptance Criteria
- A first semantic model is explicitly documented in RSA docs
- The model supports both enum and structured-slot gates
- The current C++ scaffold is mapped into semantic vs runtime-only layers
- Backend suitability and gate packaging exist in the semantic model even if not fully implemented in code
- The roadmap and AST-first integration docs point to the same next step
- A later session could begin implementing semantic-first RSA without re-deriving the architecture
Not In Scope
- full implementation of semantic authoring inside
whetstone_DSL - replacing the current C++ runtime scaffold
- immediate automatic projection generation
- training any model
- wiring RSA into
whetstone_DSLtaskitem generation
Case Study Rule
Use existing RSA C++ types and WhetstoneDSL decision surfaces only as evidence and bootstrap input.
Do not let any one case study define RSA semantics by itself.
Recommended Execution Order
- Inventory the existing C++ public surface.
- Define the minimum semantic entity set.
- Map each current C++ field into a semantic or runtime-only bucket.
- Identify missing fields required by version-0 goals.
- Define the projection boundary into C++.
- Record the next implementation step for semantic authoring.
Exit Condition
This sprint is complete when the project no longer needs to answer:
"What is the first semantic model for RSA, and how does the current C++ scaffold map into it?"
That question should be settled well enough that implementation can start from the semantic model instead of revisiting architecture.
Next Step
Represent the first three RSA semantic entities as Whetstone-authored forms:
DecisionContractDecisionSurfaceProbeDefinition
Then map include/whetstone_rsa/types.h onto those entities as a temporary C++
projection target.