6.5 KiB
Adoption Model
Purpose
This document explains where whetstone_RSA sits in the broader tool ecosystem and
how other systems should decide when to use it.
The key architectural claim is:
whetstone_RSA belongs directly above deterministic tooling.
It should be used when a problem is no longer fully deterministic, but the output contract is still bounded enough that open-ended generation is wasteful.
Placement In The Stack
The intended execution stack is:
deterministic
↓
RSA
↓
SLM
↓
LLM
↓
human
This is not just a cost ladder. It is a structural ladder.
-
deterministic- same valid input -> same output
- formulas, rules, template expansion, exact policies
-
RSA- output contract is bounded
- inputs may be structured, unstructured, or hybrid
- confidence, abstain, and escalation matter
-
SLM- output is open-ended but still locally constrained
-
LLM- output is open-ended and requires broader synthesis or reasoning
-
human- problem is not yet formalized enough to automate safely
Why RSA Sits Right Above Deterministic
RSA is the first non-deterministic layer that still preserves strong structure:
- bounded outputs
- schema validation
- abstain support
- deterministic downstream execution
- easy retraining
That makes it the natural default immediately after deterministic methods stop being enough.
In many systems, the wrong jump is being made:
deterministic -> LLM
The RSA layer exists to fill the large missing middle.
Two Ways A Project Uses RSA
There are two distinct adoption modes.
1. Runtime Consumer
A project calls whetstone_RSA during execution to make a bounded decision.
Examples:
- choose a workflow type
- classify a validation tier
- select a bounded CAD operation family
- route a request to a deterministic tool
2. Architectural Producer
A project decides that the software it is generating should itself include an RSA gate.
This is especially relevant for whetstone_DSL.
whetstone_DSL should not only call RSA for its own internal bounded decisions.
It should also be able to say:
- this decision surface in the generated software is bounded
- deterministic rules are insufficient
- LLM use would be wasteful
- therefore the generated system should contain an RSA gate here
That means RSA is both:
- a runtime library
- a target architectural pattern
Suitability Assessment
Projects should be able to assess whether a decision surface should become an RSA gate.
The suitability question is:
Should this decision live in deterministic code, an RSA gate, an SLM, an LLM, or a human workflow?
Conditions That Favor RSA
Recommend RSA when most of these are true:
- output vocabulary is finite or can be made finite
- downstream execution is deterministic or template-driven
- input space may be structured or unstructured, but is not rule-complete
- many inputs map into a small number of actions
- confidence matters
- abstain or retry is acceptable
- domain retraining is practical
Conditions That Disfavor RSA
Do not recommend RSA when:
- the decision is already deterministic
- the output is genuinely open-ended
- the label space is unstable and not yet separable from policy
- the task is synthesis, not selection or routing
- no meaningful abstain or escalation path exists
Suitability Output
The library should eventually support a structured suitability assessment.
Example conceptual result:
GateSuitability
recommended
target_layer
rationale
bounded_output_confidence
deterministic_baseline_available
label_stability_risk
suggested_gate_shape
Where target_layer is one of:
deterministicrsaslmllmhuman
And suggested_gate_shape might be:
binarymulticlassfactorizedhierarchical
Contractual Boundary
One of the strongest properties of RSA is that it should remain contractual.
The consuming system should not care exactly which learned mechanism fills the gate, as long as the contract is preserved:
- bounded schema
- confidence
- abstain behavior
- policy recommendation
- traceability
That means the architecture should remain open to future replacements:
- transformer specialist
- RL policy
- classical ML classifier
- retrieval-backed scorer
- hybrid deterministic + learned controller
The important thing is not the current model family. The important thing is the gate contract.
Why This Matters
If the contract is stable, the learning mechanism can improve without forcing downstream systems to change their architecture.
That gives RSA two important advantages:
- it is light enough to retrain quickly when a domain changes
- it is abstract enough to swap in a different decision engine later
This is a major reason to keep whetstone_RSA as a standalone library rather than
embedding it into one project's internal logic.
Ecosystem Role
In the current tool ecosystem:
-
whetstone_RSA- provides the bounded-decision contract, runtime, diagnosis, and suitability model
-
whetstone_DSL- consumes RSA for its own internal bounded decisions
- may also generate software that itself contains RSA gates
-
WHIMP,constcad, and similar systems- consume RSA where design or modeling decisions are bounded but not deterministic
-
hivemind- can identify high-ROI entropy surfaces where RSA gates are worth creating
This avoids circular abstraction problems because:
- RSA owns the generic bounded-decision mechanism
- each tool owns its domain-specific gates
- no domain project needs to be the conceptual home of RSA
Design Rule
When a system encounters a decision that is not rule-complete but is still bounded enough to avoid open-ended generation, the default answer should be:
Try RSA before escalating to SLM or LLM.
Ontology Note
The preferred contract vocabulary for this library is defined in
docs/decision_contract_ontology.md.
RSA should be understood through orthogonal fields such as:
input_structureinput_modalityoutput_topologyoutput_constraintpolicy_stability
not through vague single-label categories.
Backend family choice is a separate decision layer. See docs/backend_selection.md.
Implication For WhetstoneDSL
whetstone_DSL should eventually be able to do both:
- use RSA during generation
- recognize when generated software should include an RSA gate
That second capability is important.
It means Whetstone is not only a consumer of the library. It becomes a producer of RSA-native architectures in the software it builds.