-
Notifications
You must be signed in to change notification settings - Fork 2
feat: BaseScenario — abstract interface for all domain benchmark scenarios #22
Copy link
Copy link
Open
Labels
area: simulatorConversation simulator and scenariosConversation simulator and scenariosdifficulty: beginnerGreat for first-time contributorsGreat for first-time contributorsfeatureNew functionalityNew functionalitygood first issuePerfect starting point for new contributorsPerfect starting point for new contributorsnewcomer-friendlyWell-scoped with detailed guidanceWell-scoped with detailed guidancepriority: p3-mediumNice to have this cycleNice to have this cyclestatus: open-for-contributionNot assigned - free to claimNot assigned - free to claim
Metadata
Metadata
Assignees
Labels
area: simulatorConversation simulator and scenariosConversation simulator and scenariosdifficulty: beginnerGreat for first-time contributorsGreat for first-time contributorsfeatureNew functionalityNew functionalitygood first issuePerfect starting point for new contributorsPerfect starting point for new contributorsnewcomer-friendlyWell-scoped with detailed guidanceWell-scoped with detailed guidancepriority: p3-mediumNice to have this cycleNice to have this cyclestatus: open-for-contributionNot assigned - free to claimNot assigned - free to claim
Background
MemoryLens currently has two benchmark scenarios:
default(generic tech Q&A) andedtech(student-tutor). Both are implemented as module-level constants. As new domain scenarios are added, we need a shared abstract interface so every scenario is structurally consistent, IDE-friendly (type-checked), and easy for contributors to discover and extend.Key file to read first:
simulator/scenarios/edtech.py— the pattern this class will formaliseWhat to build
simulator/scenarios/base.py— new filesimulator/scenarios/__init__.pyBaseScenarioso contributors can dofrom simulator.scenarios import BaseScenarioAcceptance criteria
simulator/scenarios/base.pyexists withBaseScenarioABCBaseScenariohasfacts,persona_pool,filler_turnsas abstract propertiesfrom simulator.scenarios.base import BaseScenariofrom simulator.scenarios import BaseScenarioedtech.pyis not modified (backward compat)Technical hints
abc.ABCand@property @abstractmethod— same pattern asmemory/base.pyFactis imported fromsimulator.facts; avoid circular imports by not importing scenario subclasses hereGetting started
This is a ~30-line file and a perfect standalone first contribution to the project.