Context
From @AlexanderFengler review on PR #278 (ssms/rl/config.py:543):
We probably need to make it an action item to do one round of cleanup on config handshakes. Doubt that we have simplified this as much as we can in terms of duplication risk.
But also have to take a look, from memory not 100% sure about how all the handshakes actually work currently.
Handshake surfaces
| Surface |
ssms |
HSSM |
| Decision-process structural config |
_ssm_config / ModelConfigBuilder |
Config.from_defaults(decision_process) |
| Computed vs fixed SSM params |
_resolve_handshake(), computed_param_mapping |
via assembled.computed_params |
Simulator theta |
required_params |
N/A |
| HSSM sampling contract |
list_params, bounds, params_default |
copied from assembled snapshot |
| Response/choice mapping |
choices, response_to_choice |
_ssms_response_to_choice |
| Context columns |
context_fields |
extra_fields in from_rlssm_dict |
| Participant trial layout |
participant_contract |
_make_ssms_computed_functions inputs |
| Structural export |
to_hssm_config_dict() |
from_rlssm_dict() |
| Executable replay |
AssembledModel.assemble_participant_fn() |
@annotate_function wrappers |
Full handoff checklist: _local/hssm-rlssm-api/ssms-bridge-handoff.md.
Questions
- Can
to_hssm_config_dict() and from_ssms_model() converge to one canonical bridge entry?
- Can
participant_contract be the single source of truth for trial layout?
- Can assembled metadata drop duplication already on
ModelConfig?
- Rename HSSM
extra_fields ↔ ssms context_fields?
- Minor vs major API changes acceptable on either side?
Deferred from PR #278; separate PR(s).
Context
From @AlexanderFengler review on PR #278 (
ssms/rl/config.py:543):Handshake surfaces
_ssm_config/ModelConfigBuilderConfig.from_defaults(decision_process)_resolve_handshake(),computed_param_mappingassembled.computed_paramsthetarequired_paramslist_params,bounds,params_defaultchoices,response_to_choice_ssms_response_to_choicecontext_fieldsextra_fieldsinfrom_rlssm_dictparticipant_contract_make_ssms_computed_functionsinputsto_hssm_config_dict()from_rlssm_dict()AssembledModel.assemble_participant_fn()@annotate_functionwrappersFull handoff checklist:
_local/hssm-rlssm-api/ssms-bridge-handoff.md.Questions
to_hssm_config_dict()andfrom_ssms_model()converge to one canonical bridge entry?participant_contractbe the single source of truth for trial layout?ModelConfig?extra_fields↔ ssmscontext_fields?Deferred from PR #278; separate PR(s).