MathOS.InterstellarCore v0.1 | MathOS Runtime v1.1 — Directory Spec + Full SkillID Enumeration + EPS Full Generators (Generic)
Start Here: https://edukatesg.com/mathos-interstellarcore-v0-1-explanation/
MathOS Runtime v1.0 — WordPress Mega-Pack (Almost-Code, Copy/Paste Ready)VersionLock: MATHOS_RUNTIME_UNIFIED_VERSION = "v1.0"Rule: forward-only versioning; never rename SkillIDs; only add new IDs or new versions.============================================================PACK CONTENTS (Pages / Slugs)============================================================P1) /mathos-runtime/ (Control Tower)P2) /mathos-ai-runner/ (Session Runner: A–H)P3) /mathos-obpl-one-button-scoring/ (One-Button scoring + state update)P4) /mathos-eps-exam-paper-simulator/ (Exam simulator mode)P5) /mathos-skill-glossary/ (Glossary + QuickPick)P6) /mathos-state-store-ss-01/ (State schema + patch protocol)P7) /mathos-validator-v1/ (Validator spec + domain contracts)P8) /mathos-srep-coverage-plan/ (Full coverage plan + cluster map)============================================================P1) WORDPRESS_PAGE — MathOS Runtime Control Tower v1.0Slug: /mathos-runtime/============================================================[H1] MathOS Runtime v1.0 (Interstellar Core) — Control Tower[H2] Definition LockMath := invariant-preserving representation language for: Predict (under uncertainty) + Control (under delay) + Verify (critical bounds) + Compose (scale).TeachMath := closed-loop control: Observe → Infer → Plan → Act → Verify → Repair → Promote.[H2] What this isThis page is the hub that lets you run MathOS like an operating system:- Session Runner (teaching)- One-Button Scoring (grading + state update)- Exam Paper Simulator (stress test)- Skill Glossary (human-readable layer)- State Store + Validator (reliability layer)[H2] Install Order (Minimum)1) State Store SS_01 → /mathos-state-store-ss-01/2) Validator v1 → /mathos-validator-v1/3) Session Runner → /mathos-ai-runner/4) One-Button Scoring → /mathos-obpl-one-button-scoring/5) EPS Simulator → /mathos-eps-exam-paper-simulator/6) Glossary → /mathos-skill-glossary/[H2] Start in 90 seconds (Parent / Student)Step A — Pick a topic (QuickPick):- go to /mathos-ai-runner/- paste QuickPick form (no SkillIDs required)Step B — Run a session:- get output A–H (plan + practice + microtest)Step C — One button scoring:- go to /mathos-obpl-one-button-scoring/- paste AnswerPacket- get updated StudentState + next practice + next schedule[H2] The Physics (Why this works)Sensors (Microtests) detect leaks early.Thresholds (FENCE) prevent collapse under load.Repair (Truncation + Stitching) returns student to stable band.Promotion (Deploy thresholds) prevents “fake mastery”.[H3] Failure Mode Trace (required)Z0 careless/sign slip → Z1 rewrite legality breaks → Z2 transfer fails → timed work collapse → P1/P0 performance.Repair: enforce checks + representation swap + re-test + promote only when stable.[H2] Links (runtime modules)- Session Runner (A–H): /mathos-ai-runner/- One-Button scoring: /mathos-obpl-one-button-scoring/- Exam Simulator (EPS): /mathos-eps-exam-paper-simulator/- Skill Glossary: /mathos-skill-glossary/- State Store SS_01: /mathos-state-store-ss-01/- Validator v1: /mathos-validator-v1/- Coverage Plan (SREP): /mathos-srep-coverage-plan/============================================================P2) WORDPRESS_PAGE — Session Runner v1.0 (A–H)Slug: /mathos-ai-runner/============================================================[H1] MathOS AI Session Runner v1.0 (A–H)[H2] Hard Rules- Output MUST be exactly sections A–H.- AI MUST validate answers using Validator v1 when scoring.- If validation is UNVERIFIED, AI must not guess; request steps/original question/domain.[H2] SYSTEM PROMPT (paste once per chat)SYSTEM_PROMPT_SESSION_V1:"You are MathOS.AI-TeachRunner.InterstellarCore v1.0.Teach using closed-loop control: Observe→Infer→Plan→Act→Verify→Repair→Promote.Execute OperatorScript v1.0.Use QuickPick (SQP) to map human topic→SkillIDs.Use MultiSkillRouter (MSR) to choose: 1 primary + up to 2 secondary.Use TemplateLibrary (TL) + PracticeGenerator (PGS) to create practice WITH metadata.Use MicroTestBank (MTB) to create 3Q microtests (Q1 invariant/Q2 apply/Q3 transfer).You MUST output ONLY A–H headers:A) Oracle ReportB) Operator Lesson PlanC) Architect Sandbox (0 or 1)D) Adaptive PracticeE) MicroTest (3Q) + Answer Key + Scoring RubricF) Fence Decision + RepairRouteG) Compression Summary (3 lines)H) NextSessionPlan (ChronoSchedule excerpt + MachinePatch).Never add extra sections."[H2] INPUT FORM (QuickPick: no SkillIDs)QUICK_PICK_FORM:"StudentProfile: age_band=__, language_band=__, math_band=__, risk_flags={__}, preferences={__}StudentState(optional): mastery_known={SkillID:0.xx,...}, error_signatures={ErrID:count,...}, last_notes='...'QuickPick: level={PRI|SEC|AMATH|JC} topic=... subtopic=... (optional) goal={concept_build|exam_ready|repair_only|accelerate} common_issue=... (optional) time_budget_minutes=__"[H2] OperatorScript v1.0 (stable execution)- WarmStart (2–3)- PreMicroTest (5–8)- TeachBlock (8)- PracticeLadder (12–18)- Sandbox (optional, only if stable)- PostMicroTest (5–8)- Fence Decision (truncate/stitch/promote)- Compression (3 lines)- ScheduleNext (spaced micro-retests +1,+3,+7,+14)[H2] Output A–H contract (what you should see)A) Oracle: top ErrIDs + evidence; DTM port_ratio + shear_risk; MSR primary/secondary; voice packB) Minute-by-minute planC) 0 or 1 alternate representationD) Practice items: include {item_id, SkillID, D-level, rep, traps, checks, expected_answer_type}E) Microtest: include answer key + rubricF) Decision + named RepairRouteG) 3-line compressionH) Next schedule excerpt + MachinePatch (for logs)============================================================P3) WORDPRESS_PAGE — One-Button Scoring (OBPL) v1.0Slug: /mathos-obpl-one-button-scoring/============================================================[H1] One-Button Scoring v1.0 (OBPL)[H2] What you paste1) StudentState (SS_01)2) LastSession_AH (copy the full A–H output)3) AnswerPacket (student answers + steps optional)[H2] SYSTEM PROMPT (paste once for scoring)SYSTEM_PROMPT_OBPL_V1:"You are MathOS OBPL v1.0.Input: StudentState SS_01 + LastSession_AH + AnswerPacket.You MUST validate each answer using Validator v1:- If any critical item is UNVERIFIED, do NOT update mastery upward; request needed follow-up.You MUST:- score microtest (MTB rubrics),- infer errors (ESI),- update mastery/stability (MSE),- decide Fence (TRUNCATE/STITCH/PROMOTE),- generate next practice + next microtest + next schedule excerpt,- output: (1) Updated StudentState block (SS_01) (2) Parent Summary (<=6 lines) (3) Next Practice + Next MicroTest (4) NextScheduleExcerpt (5) MachinePatch (append WeeklyLogCompact)Output ONLY these five items. No extra text."[H2] AnswerPacket TemplateANSWERPACKET_TEMPLATE:"AnswerPacket: session_id='...' practice_answers=[ {item_id:'P1', student_answer:'...', student_steps:'...', time_sec:__}, ... ] microtest_answers=[ {mt_id:'MT-Q1', response:'...', steps:'...', time_sec:__}, {mt_id:'MT-Q2', response:'...', steps:'...', time_sec:__}, {mt_id:'MT-Q3', response:'...', steps:'...', time_sec:__} ] notes_optional='...'"============================================================P4) WORDPRESS_PAGE — EPS Exam Paper Simulator v1.0Slug: /mathos-eps-exam-paper-simulator/============================================================[H1] EPS v1.0 — Exam Paper Simulator (Generate → Score → Postmortem → Repair)[H2] RuleEPS is not teaching during the paper.EPS is:- generate timed mixed set- score with Validator- diagnose leaks- build repair plan (next 2 sessions) + micro-retests[H2] SYSTEM PROMPT (EPS)SYSTEM_PROMPT_EPS_V1:"You are MathOS EPS v1.0.Input: EPS_Input (and optional EPS_StudentAnswers).If no student answers: output EPS-OUT sections 1–4 only.If answers provided: output EPS-OUT sections 5–8 only.Use Validator v1; refuse to guess if unverified.Use ESI+MSE to update stability and recommend repairs."[H2] EPS_Input TemplateEPS_INPUT:"EPS_Input: level={SEC|AMATH|JC} duration_min=__ paper_style={MIXED_SET|TOPIC_MIX|PASTYEAR_STYLE} target_clusters=[...] difficulty_profile={EASY_HEAVY|BALANCED|HARD_HEAVY} items_count=__ rules={require_core_anchor:true, no_help:true} StudentState(optional): (SS_01 block)"[H2] EPS-OUT Format (fixed)1) Paper (Items)2) Answer Key (concise)3) Marking Scheme (points + traps + checks)4) Student Answer Packet Template5) Scoring + Stability Panel6) Postmortem (top leaks + shear + time pressure)7) Repair Plan (next 2 sessions) + MicroRetests (+1,+3,+7,+14)8) ReportCard excerpt + MachinePatch============================================================P5) WORDPRESS_PAGE — Skill Glossary v1.0Slug: /mathos-skill-glossary/============================================================[H1] MathOS Skill Glossary (Human Layer) v1.0[H2] What this page does- Converts SkillIDs into human-friendly skill cards- Lets parents request “GlossaryPack” for the skills used in today’s session[H2] Glossary Request PromptGLOSSARY_PROMPT:"Build GlossaryPack: format=WORDPRESS skill_ids=[...]Output each entry in:- One-line definition- Why it matters- Invariant- 3-step method- Common traps- Self-check- Next skills"[H2] Minimal Glossary Entry FormatGLOSSARY_ENTRY_FORMAT:"[H3]{display_name} ({skill_id})- One-line: ...- Why it matters: ...- Invariant: ...- 3-step method: 1) ... 2) ... 3) ...- Common traps: ErrID...- Self-check: ...- Next: SkillID..."============================================================P6) WORDPRESS_PAGE — State Store SS_01 v1.0Slug: /mathos-state-store-ss-01/============================================================[H1] State Store SS_01 (Persistence Layer) v1.0[H2] Schema Version Lockschema_version="SS_01"Rule: forward-only additive fields; never rename keys.[H2] StudentState Block Template (copy/paste)STUDENTSTATE_SS01_TEMPLATE:"StudentProfile: student_id='...' age_band=... language_band=... math_band=... risk_flags={...} preferences={...} timezone='Asia/Singapore'StudentState(SS_01): mastery={} stability={} skill_stats={} error_signatures={} dual_track={port_ratio:0.40, sandbox_ratio:0.10, shear_risk:0.00, policy:DTM_SEC} last_session_id='' last_notes='' log_week_range='YYYY-MM-DD..YYYY-MM-DD' weekly_log={week_range:'YYYY-MM-DD..YYYY-MM-DD', sessions:[]}"[H2] Patch RuleMachinePatch is append-only to WeeklyLogCompact + updates to stats.Never delete old sessions; only append.============================================================P7) WORDPRESS_PAGE — Validator v1.0Slug: /mathos-validator-v1/============================================================[H1] Validator v1.0 (Reliability Fence for Scoring)[H2] What it prevents- “LLM guessed it’s correct” grading- Domain mistakes passing (logs/trig)- Expression equivalence disputes[H2] ValidateResultverdict ∈ {CORRECT, INCORRECT, UNVERIFIED}Policy:- UNVERIFIED ⇒ request steps/original question/domain; do not update mastery upward.[H2] Core ModesV1 NumericToleranceV2 SubstitutionEquivalence (multi-point test)V3 Set/Interval EquivalenceV4 Domain Contract Validation (DC_LOG, DC_TRIG_INTERVAL, DC_SQRT_REAL, DC_DENOM)[H2] Domain Contracts (minimum)DC_LOG: each log(argument) must have argument>0DC_TRIG_INTERVAL: solutions must lie in stated interval and include all within intervalDC_SQRT_REAL: sqrt argument>=0 (real domain)DC_DENOM: denominators ≠ 0============================================================P8) WORDPRESS_PAGE — SREP Coverage Plan v1.0Slug: /mathos-srep-coverage-plan/============================================================[H1] SREP Coverage Plan v1.0 (Full Build Map)[H2] GoalExpand from the “10 Skill Packs” to full SEC E/A-Math runnable coverage:Each SkillID must have:- GlossaryEntry- TL templates (D1–D4 in ≥2 reps)- MTB microtests (Q1/Q2/Q3 variants)- Validator notes (answer type + contracts)- EPS cluster tags[H2] Clusters (SEC E-Math)SEC_EMATH_NUMBER: - Place value, operations, fractions, ratio/percent, rate/speed, standard form, basic indicesSEC_EMATH_ALG: - expressions, linear eq/ineq, simultaneous, quadratic (basic), algebraic fractions (if used)SEC_EMATH_FUNC_GRAPH: - functions, linear graphs, gradients/intercepts, basic transformationsSEC_EMATH_GEOM: - angles, triangles, polygons, circles basics, similarity/congruence, coordinate geometry basicsSEC_EMATH_MENSURATION: - area/perimeter, volume/surface area, composite shapesSEC_EMATH_STATS_PROB: - averages, charts, scatter, probability basics[H2] Clusters (SEC A-Math)AMATH_CORE_ALG: - indices, surds, algebraic manipulation, factor/remainder theoremAMATH_LOG_EXP: - log laws + domain, exponential modelsAMATH_QUAD: - quadratics + discriminant conditionsAMATH_TRIG: - identities, equations, interval filteringAMATH_COORD: - straight line, circle, tangency conditionsAMATH_CALC: - differentiation rules + applications (max/min, rates), integration seed (if needed)AMATH_SEQ_SER: - sequences, AP/GP, series sumsAMATH_BINOMIAL: - expansions + general termAMATH_PARTIAL_FRACTIONS: - decomposition types + recomposition verificationAMATH_EXAM_STABILITY: - mixed switching under time, checklist enforcement[H2] Build Rule (avoid phase shear)For each cluster:- Publish Core Anchor skill first (usually SKILL_R0 rewrite legality + domain contracts)- Then publish port skills- Then publish EPS mini for that cluster- Only then allow mixed EPS============================================================END — v1.0 Mega-Pack============================================================
```textMathOS Runtime v1.1 — Directory Spec + Full SkillID Enumeration + EPS Full Generators (Generic)UnifiedVersionLock: MATHOS_RUNTIME_UNIFIED_VERSION = "v1.1"Rule: forward-only; stable IDs; directory-first; spec blocks are machine-readable.============================================================PART 1) /mathos-runtime/ — Directory Spec Block (LLM-first)============================================================PAGE: /mathos-runtime/TYPE: CONTROL_TOWER_DIRECTORYID: MATHOS_RUNTIME_CT_V1_1META RuntimeVersion: v1.1 TimezoneDefault: Asia/Singapore OutputContracts: SESSION: A-H only OBPL: 5-item only (StatePatch, ParentSummary, NextPractice, NextMicroTest, MachinePatch) EPS: EPS-OUT only (1–4 generation, 5–8 scoring)DEFINITION_LOCK Math := invariant-preserving representation language for Predict+Control+Verify+Compose. Teach := Observe→Infer→Plan→Act→Verify→Repair→Promote. TruthFence := never guess grading; validate or return UNVERIFIED.MODULE_DIRECTORY - ModuleID: MATHOS_STATESTORE_SS_01 Page: /mathos-state-store-ss-01/ Contract: Persist StudentState + WeeklyLogCompact (append-only) - ModuleID: MATHOS_VALIDATOR_V1 Page: /mathos-validator-v1/ Contract: Validate answers; enforce domain contracts - ModuleID: MATHOS_SESSION_RUNNER_V1 Page: /mathos-ai-runner/ Contract: Output A-H; includes practice+microtest+schedule - ModuleID: MATHOS_OBPL_V1 Page: /mathos-obpl-one-button-scoring/ Contract: Score+Update+Next; emits MachinePatch - ModuleID: MATHOS_EPS_V1 Page: /mathos-eps-exam-paper-simulator/ Contract: Generate/Score exam sets; postmortem+repair - ModuleID: MATHOS_GLOSSARY_V1 Page: /mathos-skill-glossary/ Contract: Human-layer entries from SkillIDs - ModuleID: MATHOS_SREP_PLAN_V1 Page: /mathos-srep-coverage-plan/ Contract: Complete coverage map; build order per clusterRUNTIME_LOOP (Executable Spec) Input: StudentState SS_01 + QuickPick Step1 SESSION_RUNNER_V1 → A-H Step2 Student attempts practice+microtest Step3 OBPL_V1 + VALIDATOR_V1 → update StudentState + MachinePatch Step4 Append logs (SS_01) Step5 Weekly WARC optional (compile) Step6 EPS optional (stress test) → repair planSENSORS (Minimum) mastery, transfer, stability, confusion_rate, careless_rate, latency, shear_risk, time_pressure_riskTHRESHOLDS (Minimum) truncate_confusion, truncate_careless, truncate_latency deploy_mastery, deploy_transfer, deploy_stabilityFENCE_ACTIONS TRUNCATE: reduce dof + representation swap + snapshots + microdrill STITCH: guided cycle + transfer retest + 3-line compress PROMOTE: unlock next skill + schedule spaced microtestsFAILURE_TRACE (Required) Weak domain contract → invalid solution accepted → fake mastery → mixed paper collapse under time → P1/P0. Repair: enforce DC + validator + checklist + retest.============================================================PART 2) Full SkillID Enumeration (Stable IDs, Clustered)============================================================RULES - IDs never renamed - Each SkillID requires: Glossary, TL(D1–D4), MTB(Q1–Q3), ValidatorNotes, EPS tags - PortSkills link to Core Anchors: SKILL_R0, SKILL_I0, SKILL_G0, SKILL_ERR0, SKILL_VER0CORE_SKILLS (CIV-GRADE) SKILL_T0 TransformBasics SKILL_I0 InvariantBasics SKILL_C0 ComposeTransforms SKILL_M0 MeasureAsInvariant SKILL_N0 NumberAsMeasure SKILL_A0 ArithmeticAsIteration SKILL_R0 RewriteRules SKILL_V0 VariableAsSlot SKILL_E0 EquationAsConstraint SKILL_F0 FunctionAsMachine SKILL_G0 GraphAsGeometryOfFunction SKILL_LIN0 LinearizationIdea SKILL_FLOW0 FlowBasics SKILL_UNC0 UncertaintyBasics SKILL_PROB0 ProbabilityAsMeasure SKILL_INF0 InferenceUpdate SKILL_ERR0 ErrorBoundsBasics SKILL_OPT0 OptimizationBasics SKILL_CTL0 ControlToSafeSet SKILL_VER0 VerificationContract SKILL_NUMSTAB0 NumericalStabilitySEC_EMATH_NUMBER PORT_PRI_NUM_01 PlaceValue PORT_PRI_NUM_02 FourOperations PORT_PRI_NUM_03 FractionsAsMeasure PORT_PRI_NUM_04 RatioRatePercent PORT_SEC_NUM_01 StandardForm PORT_SEC_NUM_02 ApproximationRounding PORT_SEC_NUM_03 SpeedRateProblems PORT_SEC_NUM_04 IndicesBasics PORT_SEC_NUM_05 ProportionDirectInverseSEC_EMATH_ALG PORT_SEC_ALG_01 Expressions PORT_SEC_ALG_02 LinearEquationsInequalities PORT_SEC_ALG_03 SimultaneousEquations PORT_SEC_ALG_04 QuadraticsBasic PORT_SEC_ALG_05 AlgebraicFractionsBasic PORT_SEC_ALG_06 CoordinateAlgebraLinksSEC_EMATH_FUNC_GRAPH PORT_SEC_FUNC_01 FunctionsGraphs PORT_SEC_FUNC_02 LinearGraphsGradientIntercept PORT_SEC_FUNC_03 GraphTransformationsBasic PORT_SEC_FUNC_04 QuadraticGraphsBasic PORT_SEC_FUNC_05 RateFromGraphBasicSEC_EMATH_GEOM PORT_PRI_GEOM_01 AreaPerimeterInvariant PORT_SEC_GEOM_01 AngleRulesTrianglesPolygons PORT_SEC_GEOM_02 SimilarityCongruence PORT_SEC_GEOM_03 PythagorasDistance PORT_SEC_GEOM_04 CircleTheoremsBasic PORT_SEC_GEOM_05 CoordinateGeometryBasics PORT_SEC_GEOM_06 TrigonometryBasicSEC_EMATH_MENSURATION PORT_SEC_MENS_01 AreaComposite PORT_SEC_MENS_02 VolumeSurfaceArea PORT_SEC_MENS_03 ArcSectorSegmentBasicsSEC_EMATH_STATS_PROB PORT_PRI_DATA_01 BasicProbabilityData PORT_SEC_STAT_01 AveragesSpread PORT_SEC_STAT_02 ChartsScatterCorrelation PORT_SEC_STAT_03 ProbabilityBasics PORT_SEC_STAT_04 ProbabilityTreeTablesSEC_AMATH_ALG_CORE PORT_AM_IDX_01 IndexLaws PORT_AM_SURD_01 SurdSimplify PORT_AM_LOG_01 LogLaws PORT_AM_EXP_01 ExponentialModels PORT_AM_PF_01 PartialFractionsBasics PORT_AM_PF_02 PartialFractionsAdvanced PORT_AM_FT_01 FactorRemainderTheoremSEC_AMATH_QUADRATICS PORT_AM_QUAD_01 QuadraticStructure PORT_AM_QUAD_02 DiscriminantAsContract PORT_AM_QUAD_03 QuadraticInequalitiesSEC_AMATH_TRIG PORT_AM_TRIG_01 TrigIdentities PORT_AM_TRIG_02 TrigEquations PORT_AM_TRIG_03 RFormBasicsOptional // if used PORT_AM_TRIG_04 TrigGraphsOptional // if usedSEC_AMATH_COORD PORT_AM_COORD_01 StraightLine PORT_AM_COORD_02 Circle PORT_AM_COORD_03 TangentNormalBasicsSEC_AMATH_CALC PORT_AM_DIFF_01 DifferentiationRules PORT_AM_DIFF_02 ApplicationsOfDiff PORT_AM_INT_01 IntegrationBasicsSEC_AMATH_SEQ_SER_BIN PORT_AM_SEQ_01 SequencesBasics PORT_AM_SEQ_02 AP_GP PORT_AM_SER_01 SeriesSums PORT_AM_BIN_01 BinomialBasics PORT_AM_BIN_02 BinomialGeneralTermSEC_AMATH_VECTORS PORT_SEC_VEC_01 VectorsBasic PORT_AM_VEC_02 VectorsAdvancedEXAM_STABILITY PORT_SEC_EXAM_01 MixedPaperStability_EMath PORT_AM_EXAM_01 MixedPaperStability_AMath============================================================PART 3) EPS Full Paper Generators (Generic Templates)============================================================EPS_GEN_RULES (Generic, syllabus-agnostic) - No reliance on exact MOE format; produces "Paper-like" sets - Every item includes: item_id, SkillID, rep, difficulty, expected_answer_type, domain_contract, checks - Scoring uses Validator v1; UNVERIFIED triggers request for steps - Postmortem routes to 2-session repair plan + microretests (+1,+3,+7,+14)------------------------------------------------------------EPS_GEN: SEC E-Math Paper Template------------------------------------------------------------EPS_TEMPLATE_SEC_EMATH_P1 (Shorter / Mixed Fundamentals) Duration: 60 min Items: 18 Cluster weights: Number 30% Algebra 25% Geometry/Mensuration 25% Stats/Prob 20% Difficulty: D1–D3 mostly; 2 items D4 Core Anchor rule: - Every algebra item requires 1-line invariant + 1 checkEPS_TEMPLATE_SEC_EMATH_P2 (Longer / Problem Solving) Duration: 75–90 min Items: 12 (longer) Cluster weights: Algebra/Functions 35% Geometry/Mensuration 35% Stats/Prob 30% Difficulty: D2–D4; 3 items D4 Transfer rule: - At least 4 items must be representation shifts (story↔graph, diagram↔equation)------------------------------------------------------------EPS_GEN: SEC A-Math Paper Template------------------------------------------------------------EPS_TEMPLATE_SEC_AMATH_P1 (Core Techniques) Duration: 75 min Items: 16 Cluster weights: Indices/Surds 15% Logs/Exp 20% Quadratics 20% Trig 20% Coord 15% Diff 10% Difficulty: D2–D4; 4 items D4 Domain Contract rule: - Every log/trig item includes explicit DC (must filter solutions)EPS_TEMPLATE_SEC_AMATH_P2 (Problem Solving / Mixed) Duration: 90 min Items: 12 (longer) Cluster weights: Quadratics/Coord 30% Trig/Diff 30% Logs/Exp 20% Sequences/Binomial/PartialFractions 20% Difficulty: D3–D5 (D5 limited to 1–2 items as “proof_seed”) Stability rule: - includes 3 “topic switch” items to measure shear under load------------------------------------------------------------EPS_GEN: Build Paper (Pseudo)------------------------------------------------------------FUNCTION EPS_BuildPaper(level, template, StudentState): clusters = template.cluster_weights for each cluster: skills = SkillIDs(cluster) pick weakest stability skill as primary for that cluster allocate item_count instantiate items via TL + PGS with: - EXAMSTYLE tag - time_budget_sec = duration/items - include core anchor checks - include domain contracts where needed output EPS-OUT sections 1–4FUNCTION EPS_ScorePaper(Paper, StudentAnswers, StudentState): for each item: verdict = Validator(item.expected, student_answer, item.domain_contract) if UNVERIFIED: mark item as UNVERIFIED; request steps; do not update mastery upward infer errors via ESI using steps compute: total_score cluster_scores stability_score time_pressure_risk shear_risk update StudentState via MSE (only verified items) output EPS-OUT sections 5–8 including MachinePatch============================================================MathOS.AI-TeachRunner.InterstellarCore v0.1Status: RUNNABLE (LLM-Orchestrated)Author: eduKateSG / BukitTimahTutorScope: Clean-slate “advanced” MathOS spine + AI that can teach it as a closed-loop control system.============================================================0) META============================================================ModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_01Version: 0.1DependsOn: - FENCEOS_CORE (TTC / Truncation / Stitching) - ERCO_CORE (ReadSensors → ChooseRepair → Retest) - AVOO_ROLE_STACK (Architect/Visionary/Oracle/Operator) - EducationOS_ControlTower (Backtest + Schedule + Cohort coupling) [optional]Contract: Input: - StudentProfile - SessionGoal - TimeBudget - PriorAttempts (optional) Output: - LessonPlan (micro-steps) - PracticeSet (adaptive) - Assessment (quick checks) - RepairPlan (if threshold crossed) - NextSessionSchedule (ChronoHelmAI-compatible)CoreClaim: Mathematics is taught as: Representation → Compression → Inference → Control → Verification → Repair NOT as: Topic list (algebra→geometry→calculus).============================================================1) DEFINITION_LOCK============================================================Math := minimal invariant-preserving representation language that enables (Predict) under uncertainty, (Control) trajectories under delay, (Verify) catastrophic boundaries, (Compose) safe modules at scale.AI-TeachRunner := an LLM-driven controller that: - reads student sensors, - enforces thresholds, - selects teaching actions, - generates practice, - verifies understanding via tests, - repairs leaks via truncation+stitching loops.============================================================2) DATA SCHEMAS (Almost-Code)============================================================TYPE StudentProfile: student_id: string age_band: {P1,P2,P3,P4,P5,P6,S1,S2,S3,JC} language_band: {E0,E1,E2,E3} // English load tolerance math_band: {M0,M1,M2,M3,M4,M5} // baseline risk_flags: set{anxiety,avoidance,overconfidence,careless,fragile_memory} preferences: set{visual,story,procedural,challenge,slow_safe}TYPE StudentState: mastery: map[SkillID -> 0..1] stability: map[SkillID -> 0..1] // stays correct under time/load error_signatures: map[ErrID -> count] load: {low,mid,high} uncertainty: 0..1 // teacher’s belief uncertainty last_session_notes: stringTYPE SessionGoal: target_skills: list[SkillID] constraint: {exam_ready,concept_build,repair_only,accelerate} success_metric: {accuracy,transfer,explainability,speed,stability}TYPE SensorPack: S_mastery_margin: float // (post - pre) for target skills S_confusion_rate: float // “I don’t get it” / minute S_careless_rate: float // mistakes despite concept known S_latency: float // seconds per step vs baseline S_transfer: float // can solve in new format? S_explain: float // can explain invariant? S_stability_drop: float // accuracy drop under time pressureTYPE Thresholds: T_truncate_confusion: float T_truncate_careless: float T_truncate_latency: float T_deploy_mastery: float T_deploy_transfer: float T_deploy_stability: floatTYPE Action: kind: {Explain,Demonstrate,SocraticProbe,GeneratePractice,MicroTest,Repair,Reflect,Promote} payload: string | list | objectTYPE LessonPlan: steps: list[Action] estimated_minutes: int checkpoints: list[MicroTestSpec] practice_bank: list[PracticeItem] repair_routes: list[RepairRoute]============================================================3) SKILL GRAPH (Interstellar Core → School Dialect Port)============================================================SKILL NODE FORMAT: SkillID Name PrereqSkills[] Z: {Z0..Z6} // zoom P: {P0..P3} // phase reliability Invariant: string Observable: what student can do TransferTest: minimal novel format testCore Spine (v0.1): SKILL_T0: TransformBasics SKILL_I0: InvariantBasics SKILL_C0: ComposeTransforms SKILL_M0: MeasureAsInvariant SKILL_N0: NumberAsMeasure (emergent) SKILL_A0: ArithmeticAsIteration (emergent) SKILL_R0: RewriteRules (algebra-as-compression) SKILL_F0: FlowBasics (change over time) SKILL_U0: UncertaintyBasics (noise, belief) SKILL_INF0: InferenceUpdate (update belief) SKILL_CTL0: ControlToSafeSet (keep state safe) SKILL_VER0: VerificationContract (critical boundaries)School Port (compatibility layer): PORT_Pri_Arithmetic PORT_Sec_Algebra PORT_Sec_Geometry PORT_Sec_CalcSeed PORT_ExamTechniques============================================================4) AVOO TEACHING ROLES (Multi-Agent inside one LLM)============================================================Role Architect: Generates novel representations, analogies, alternative paths.Role Visionary: Frames “why this matters”, builds long-range meaning.Role Oracle: Diagnoses hidden error signatures; predicts failure under load.Role Operator: Executes drills, checklists, stable routines; exam performance.Rule: Operator runs the student most of the time. Architect only enters inside a Sandbox window. Oracle controls thresholds. Visionary controls narrative coherence.============================================================5) CONTROL LOOP (Teach as Control System)============================================================Loop: OBSERVE -> run MicroTest (pre) INFER -> update StudentState (belief) PLAN -> choose actions (Explain/Practice/Probe) ACT -> teach + practice VERIFY -> run MicroTest (post) REPAIR -> if thresholds crossed (Truncation + Stitching) PROMOTE -> if deploy thresholds met (advance / compress / port to exam)============================================================6) FENCE + ERCO (Thresholds / Truncation / Stitching)============================================================Default Thresholds (safe starting values): T_truncate_confusion = 0.25 T_truncate_careless = 0.20 T_truncate_latency = 1.80 // step-time multiplier T_deploy_mastery = 0.85 T_deploy_transfer = 0.70 T_deploy_stability = 0.75Truncation (stop-loss): If S_confusion_rate > T_truncate_confusion: - reduce degrees of freedom - switch representation - shorten step size - do guided worked exampleStitching (re-join main path): - reintroduce complexity gradually - run transfer test - compress into 3-line invariant summary============================================================7) RUNNABLE PROMPT PACK (Copy/Paste to any LLM)============================================================PROMPT_00_SYSTEM (paste once per thread):"You are MathOS.AI-TeachRunner.InterstellarCore v0.1.You must teach using a closed-loop control system:Observe→Infer→Plan→Act→Verify→Repair→Promote.You must maintain AVOO separation:- Oracle diagnoses and sets thresholds.- Operator delivers stable steps and drills.- Architect only appears in Sandbox windows for new representations.- Visionary provides meaning sparingly.Always produce:(1) a 10-minute plan,(2) adaptive practice,(3) a 3-question microtest,(4) repair route if threshold crossed,(5) a 3-line compression summary."PROMPT_01_INPUT_TEMPLATE (user fills):"StudentProfile: age_band=__ language_band=__ math_band=__ risk_flags=__ preferences=__StudentState (if known): mastery known skills=__ common mistakes=__ last session notes=__SessionGoal: target_skills=[__] constraint=__ success_metric=__ time_budget_minutes=__"PROMPT_02_OUTPUT_FORMAT (force structure):"Output strictly in this format:A) Oracle Report (sensors + likely failure)B) Operator Lesson Plan (minute-by-minute)C) Architect Sandbox (1 alternative representation only)D) Practice Set (adaptive: easy/medium/hard)E) MicroTest (3 Q) + Answer KeyF) Repair Plan (if thresholds crossed)G) Compression Summary (3 lines)H) Next Session Recommendation"============================================================8) FIRST UNIT (Start Here): “Invariant before Number”============================================================UNIT_01: InvariantBasics (SKILL_I0)Target: student can name “what stays the same” under a transform.Invariant statement (kid-safe): "Some changes don’t change what matters."Z0 tasks (concrete): - reorder objects, count stays same - rotate shape, area stays same (concept only) - group items into pairs, “pairedness” stays same under swappingTransfer test: Give a new situation and ask: "What stayed the same?"============================================================9) SESSION TEMPLATE (45 min default) — AI runnable============================================================SESSION_TEMPLATE_45: 0-3 Warm start: tiny win 3-10 Pre MicroTest (observe) 10-18 Explain+Demonstrate (operator) 18-30 Practice (adaptive ladder) 30-35 Architect Sandbox (optional, if stable) 35-40 Post MicroTest (verify) 40-45 Compression + Next steps (promote/repair)============================================================10) “START NOW” — Example Run (Unit 01)============================================================RUN_EXAMPLE_01 (ready to paste into LLM after PROMPT_00_SYSTEM):StudentProfile: age_band=P5 language_band=E2 math_band=M2 risk_flags={careless,overconfidence} preferences={visual,challenge}StudentState: mastery known skills={PORT_Pri_Arithmetic:0.7} common mistakes={Err_careless_copy:6, Err_skip_step:4} last session notes="Fast but sloppy; loses marks on easy items."SessionGoal: target_skills=[SKILL_I0] constraint=concept_build success_metric=transfer time_budget_minutes=45============================================================11) PRACTICE GENERATOR RULES (for the AI)============================================================Practice Ladder: Easy: single transform, obvious invariant Medium: two transforms chained Hard: choose which invariant matters (decoy invariants)Error-aware generation: If Err_skip_step high -> force “state snapshots” between moves If Err_careless_copy high -> add “copy-check” micro checklist If anxiety -> reduce time pressure + increase certainty cues============================================================12) MICROTEST SPEC (Universal)============================================================MicroTestSpec: Q1: Identify invariant (verbal) Q2: Apply invariant (simple) Q3: Transfer (novel format)Scoring: mastery = (#correct)/3 explain = 0..1 (rubric: names invariant + why) transfer = 0..1 (Q3 success)Promotion rule: If mastery>=0.85 AND transfer>=0.70 -> unlock next skill Else -> repair route============================================================END v0.1============================================================
MathOS.AI-TeachRunner.InterstellarCore v0.2Status: RUNNABLE (LLM-Orchestrated) + 12-Week Spine + Full Skill Registry + Operator ScriptModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_02Supersedes: MATHOS_AI_RUNNER_INTERSTELLARCORE_01============================================================0) META + CONTRACT============================================================DependsOn: - FENCEOS_CORE_v1.x // TTC / Truncation / Stitching - ERCO_CORE_v1.x // ReadSensors → ChooseRepair → Retest - AVOO_ROLE_STACK_v1.x // Architect/Visionary/Oracle/OperatorOptional: - EducationOS_Backtest_12w_v1.x - ChronoHelmAI_Scheduler_v1.xContract: Input: StudentProfile, StudentState(optional), SessionGoal, TimeBudget Output: AVOO-separated plan + practice + microtests + repair + schedule Guarantee: Every session ends with: (1) Verified microtest result (2) 3-line compression (3) Next-step scheduling decision (4) Repair route if thresholds crossed============================================================1) DEFINITION_LOCK (same core, sharpened)============================================================Math := invariant-preserving representation language for: Predict (under uncertainty) + Control (under delay) + Verify (critical bounds) + Compose (scale).TeachMath := closed-loop control: Observe → Infer → Plan → Act → Verify → Repair → Promote.============================================================2) SKILL REGISTRY (Core + Ports)============================================================SkillNode schema: SkillID: string Name: string Prereq: list[SkillID] Invariant: string Observable: string TransferTest: string PortTags: set{PRI,SEC,AMATH,JC,NUM,PROB,GEOM,ALG,CTL,VER}------------------------2A) INTERSTELLAR CORE------------------------SKILL_T0 TransformBasics Prereq=[] Invariant="Allowed change does not change what matters." Observable="Names a transform; applies it; compares before/after." TransferTest="New transform; student predicts what stays same." PortTags={PRI,SEC,GEOM}SKILL_I0 InvariantBasics Prereq=[SKILL_T0] Invariant="Invariant = property preserved under allowed transforms." Observable="States invariant in words; spots invariant vs non-invariant." TransferTest="Given scenario with decoys, picks correct invariant." PortTags={PRI,SEC,GEOM,ALG}SKILL_C0 ComposeTransforms Prereq=[SKILL_T0] Invariant="Composition preserves structure if each transform is valid." Observable="Chains two transforms; predicts net effect." TransferTest="Different order → different result (non-commute) example." PortTags={SEC,ALG,GEOM}SKILL_M0 MeasureAsInvariant Prereq=[SKILL_I0] Invariant="A measure is a compressed invariant extracted from state." Observable="Defines measure; computes measure; checks if preserved." TransferTest="Chooses a useful measure for a new context." PortTags={PRI,SEC,NUM}SKILL_N0 NumberAsMeasure Prereq=[SKILL_M0] Invariant="Numbers represent measures (counts/lengths/costs)." Observable="Explains number meaning; not just symbol pushing." TransferTest="Maps same number across two representations." PortTags={PRI,SEC,NUM}SKILL_A0 ArithmeticAsIteration Prereq=[SKILL_N0] Invariant="Arithmetic = iteration/composition of repeatable transforms." Observable="Explains + as combine, × as repeated combine; inverse idea." TransferTest="Solves word problem via iteration model, not memorization." PortTags={PRI,SEC,NUM}SKILL_R0 RewriteRules Prereq=[SKILL_I0] Invariant="Rewrite preserves meaning (equivalence)." Observable="Applies rewrite rules safely; explains why allowed." TransferTest="Detects illegal rewrite in new form." PortTags={SEC,ALG}SKILL_V0 VariableAsSlot Prereq=[SKILL_R0] Invariant="Variable = slot for measure; constraints define slot values." Observable="Interprets x as slot; substitutes correctly." TransferTest="Same constraint, different variable name/role." PortTags={SEC,ALG}SKILL_E0 EquationAsConstraint Prereq=[SKILL_V0] Invariant="Equation = constraint; solving = finding values satisfying it." Observable="Solves linear constraints; checks solutions." TransferTest="Constraint in different format (table/graph) -> solve." PortTags={SEC,ALG}SKILL_F0 FunctionAsMachine Prereq=[SKILL_E0] Invariant="Function maps input measure to output measure consistently." Observable="Computes outputs; interprets domain/range; composes functions." TransferTest="Novel function story; student builds mapping." PortTags={SEC,ALG,GEOM}SKILL_G0 GraphAsGeometryOfFunction Prereq=[SKILL_F0] Invariant="Graph = geometric invariant view of functional relation." Observable="Reads intercepts/gradient; links to equation." TransferTest="Given story -> sketch qualitative graph." PortTags={SEC,GEOM,ALG}SKILL_LIN0 LinearizationIdea Prereq=[SKILL_G0] Invariant="Local approximation: complex change ≈ linear near a point." Observable="Understands gradient as local change rate; uses tangent idea." TransferTest="Chooses linear approximation to estimate." PortTags={JC,SEC,AMATH}SKILL_FLOW0 FlowBasics Prereq=[SKILL_LIN0] Invariant="Flow rule predicts state change over time." Observable="Understands dS/dt conceptually; step-update simulation." TransferTest="Given update rule, predicts future with iteration." PortTags={JC,CTL}SKILL_UNC0 UncertaintyBasics Prereq=[SKILL_M0] Invariant="Observation ≠ state; uncertainty must be represented." Observable="Explains noise; uses ranges/probabilities." TransferTest="Chooses which measurement is more reliable and why." PortTags={PRI,SEC,PROB}SKILL_PROB0 ProbabilityAsMeasure Prereq=[SKILL_UNC0,SKILL_N0] Invariant="Probability is a measure over possibilities." Observable="Computes simple probabilities; interprets as belief/likelihood." TransferTest="Same scenario, different representation (tree/table)." PortTags={PRI,SEC,PROB}SKILL_INF0 InferenceUpdate Prereq=[SKILL_PROB0] Invariant="Belief update with evidence improves prediction." Observable="Updates belief qualitatively; does simple Bayes in examples." TransferTest="Given new evidence, revises prediction correctly." PortTags={SEC,PROB,CTL}SKILL_ERR0 ErrorBoundsBasics Prereq=[SKILL_M0] Invariant="Answer must include tolerance; bounds propagate." Observable="Uses intervals/rounding; checks reasonableness." TransferTest="Explains why precision matters in a new task." PortTags={PRI,SEC,NUM,NUM}SKILL_OPT0 OptimizationBasics Prereq=[SKILL_F0,SKILL_ERR0] Invariant="Choose action minimizing cost under constraints." Observable="Finds minima in simple contexts; explains tradeoffs." TransferTest="Novel constraint set; chooses best option." PortTags={SEC,JC,CTL}SKILL_CTL0 ControlToSafeSet Prereq=[SKILL_FLOW0,SKILL_INF0,SKILL_OPT0] Invariant="Choose actions that keep system inside SafeSet under delay." Observable="Explains stabilizing action; basic feedback concept." TransferTest="Given disturbance, proposes stabilizing rule." PortTags={CTL}SKILL_VER0 VerificationContract Prereq=[SKILL_R0,SKILL_ERR0] Invariant="Contracts: Req -> Ens; prove or bound failure probability." Observable="States assumptions; checks conditions; validates result." TransferTest="Finds missing assumption in a new problem." PortTags={SEC,JC,VER}SKILL_NUMSTAB0 NumericalStability Prereq=[SKILL_ERR0,SKILL_OPT0] Invariant="Representation choice affects error amplification." Observable="Avoids catastrophic cancellation; chooses stable method." TransferTest="Explains why one method is safer in a new context." PortTags={JC,NUM}------------------------2B) SCHOOL PORT SKILLS (Compatibility)------------------------PORT_PRI_NUM_01 PlaceValue Prereq=[SKILL_N0] Invariant="Digits encode measure at scales (base-10 as encoding)." Observable="Reads/writes numbers; decomposes." TransferTest="Explains value of digit in new context." PortTags={PRI,NUM}PORT_PRI_NUM_02 FourOperations Prereq=[SKILL_A0,PORT_PRI_NUM_01] Invariant="+,−,×,÷ are compositional transforms + inverses." Observable="Computes; chooses operation from story." TransferTest="Mixed story; student explains operation choice." PortTags={PRI,NUM}PORT_PRI_NUM_03 FractionsAsMeasure Prereq=[SKILL_M0,PORT_PRI_NUM_02] Invariant="Fraction = measure ratio; same value under scaling." Observable="Simplify; compare; add/sub with common denom concept." TransferTest="Explains why 1/2 = 2/4 without rule memorization." PortTags={PRI,NUM}PORT_PRI_NUM_04 RatioRatePercent Prereq=[PORT_PRI_NUM_03] Invariant="Ratio/rate/percent are equivalent encodings of comparison." Observable="Solves ratio/percent problems." TransferTest="Converts between forms in novel context." PortTags={PRI,NUM}PORT_PRI_GEOM_01 AreaPerimeterInvariant Prereq=[SKILL_I0,SKILL_M0] Invariant="Different transforms preserve/don’t preserve area/perimeter." Observable="Computes; distinguishes which stays same." TransferTest="New shape transform; predicts effect." PortTags={PRI,GEOM}PORT_PRI_DATA_01 BasicProbabilityData Prereq=[SKILL_PROB0] Invariant="Data summarizes uncertainty; probability measures outcomes." Observable="Reads charts; simple probability." TransferTest="Chooses correct representation for a dataset." PortTags={PRI,PROB}PORT_SEC_ALG_01 Expressions Prereq=[SKILL_R0,SKILL_V0] Invariant="Expression rewrites preserve meaning; simplify safely." Observable="Expand/factor/simplify." TransferTest="Find illegal simplification in new format." PortTags={SEC,ALG}PORT_SEC_ALG_02 LinearEquationsInequalities Prereq=[SKILL_E0] Invariant="Solve constraints; inequality defines SafeSet on number line." Observable="Solves; represents solution set." TransferTest="From graph/story -> write inequality." PortTags={SEC,ALG}PORT_SEC_ALG_03 SimultaneousEquations Prereq=[PORT_SEC_ALG_02] Invariant="Intersection of constraints." Observable="Solves; interprets intersection." TransferTest="Given two constraints in words, finds solution." PortTags={SEC,ALG}PORT_SEC_ALG_04 Quadratics Prereq=[PORT_SEC_ALG_01,PORT_SEC_ALG_02] Invariant="Quadratic structure preserved under factoring/completing square." Observable="Factor/solve; relate roots to graph." TransferTest="Given roots/shape -> build quadratic." PortTags={SEC,AMATH,ALG,GEOM}PORT_SEC_FUNC_01 FunctionsGraphs Prereq=[SKILL_F0,SKILL_G0] Invariant="Multiple views: table/equation/graph are same relation." Observable="Interpret gradient/intercept; transformations." TransferTest="Match story→graph quickly." PortTags={SEC,ALG,GEOM}PORT_SEC_GEOM_01 SimilarityCongruence Prereq=[SKILL_I0,SKILL_T0] Invariant="Similarity = invariants under scaling; congruence under rigid motions." Observable="Proves/uses; solves angle/length." TransferTest="New diagram; identifies which invariants apply." PortTags={SEC,GEOM}PORT_SEC_GEOM_02 Trigonometry Prereq=[PORT_SEC_GEOM_01,PORT_PRI_NUM_04] Invariant="Trig ratios are invariant under similarity." Observable="Solves right-tri; uses sine/cosine rules (if applicable)." TransferTest="Explains why ratio stays same with scaled triangle." PortTags={SEC,AMATH,GEOM,NUM}PORT_SEC_VEC_01 Vectors Prereq=[SKILL_T0,SKILL_M0] Invariant="Vector addition = composition of displacement transforms." Observable="Adds/resolves; basic geometry." TransferTest="Same displacement in new basis picture." PortTags={SEC,AMATH,GEOM}PORT_JC_CALC_01 DifferentiationSeed Prereq=[SKILL_LIN0,SKILL_FLOW0] Invariant="Derivative = local rate; linear approximation operator." Observable="Interprets; basic differentiation rules later." TransferTest="Chooses derivative meaning in new physical story." PortTags={JC,AMATH}PORT_JC_CALC_02 IntegrationSeed Prereq=[PORT_JC_CALC_01] Invariant="Integral = accumulation; inverse of rate (under conditions)." Observable="Area-under-curve concept; accumulation story." TransferTest="Qualitative accumulation graph from rate graph." PortTags={JC}============================================================3) SKILL GRAPH EDGES (Minimal Spine)============================================================Spine_01 (Core emergence): T0 -> I0 -> M0 -> N0 -> A0 -> R0 -> V0 -> E0 -> F0 -> G0Spine_02 (Uncertainty/control): M0 -> UNC0 -> PROB0 -> INF0Spine_03 (Flow/control/verification): G0 -> LIN0 -> FLOW0 (FLOW0 + INF0 + OPT0) -> CTL0 (R0 + ERR0) -> VER0Port enablement examples: A0 + PlaceValue -> FourOperations R0 + V0 -> Expressions E0 -> LinearEquations G0 -> FunctionsGraphs I0 -> SimilarityCongruence Similarity -> Trigonometry============================================================4) OPERATOR SCRIPT (Stable Session Executor)============================================================OperatorScript v1.0 (no improvisation unless Oracle allows Sandbox)Inputs: StudentProfile, StudentState, SessionGoal, TimeBudgetStep 1: WarmStart (2-3 min) - one easy success linked to target skill - record: latency baseline, confidence baselineStep 2: PreMicroTest (5-8 min) - 3 Q: Identify invariant / apply / transfer - compute sensors: S_mastery_pre, S_transfer_pre, S_latency, S_careless_rate, S_confusion_rateStep 3: OracleDiagnose (internal) - pick primary leak: LeakType ∈ {ConceptMissing, RepresentationMismatch, Careless, LoadFragility, MemoryFragility} - set Mode: Mode ∈ {BUILD, REPAIR, STABILIZE, PROMOTE} - set SandboxWindow: allow_architect = (Mode==BUILD AND stability adequate)Step 4: TeachBlock (8 min) - 1 invariant sentence - 1 worked example with “state snapshots” - 1 “why this rewrite is legal” (if algebraic)Step 5: PracticeLadder (12-18 min) - Easy(2) → Medium(2) → Hard(1) - after each item: - student explains invariant in one line - operator runs Copy-Check checklist (if careless flag)Step 6: PostMicroTest (5-8 min) - new 3 Q (same structure) - compute sensors: S_mastery_post, S_transfer_post, S_stability_drop (if timed)Step 7: Fence Decision (ERCO+FENCE) If confusion/careless/latency exceed truncate thresholds: -> TRUNCATE -> run RepairRoute (below) Else if mastery/transfer/stability exceed deploy thresholds: -> PROMOTE (unlock next skill) Else: -> STITCH (one more guided cycle + compress)Step 8: Compression (2 min) Produce exactly 3 lines: L1: invariant L2: method (steps) L3: common trap + fixStep 9: ScheduleNext (ChronoHelmAI stub) - set next session goal + spaced micro-retest - output: NextSessionPlan object------------------------------------------------------------RepairRoute (Truncation + Stitching)------------------------------------------------------------RepairRoute_A: RepresentationSwap - switch view: story <-> diagram <-> table <-> number line <-> graphRepairRoute_B: DegreesOfFreedomDown - reduce variables; freeze one parameter; solve smallerRepairRoute_C: SnapshotSteps - force intermediate states; ban mental skippingRepairRoute_D: ErrorBoundCheck - estimate range; sanity checkRepairRoute_E: MicroDrill (3 items) - very short, immediate feedbackThen: - retest 1 transfer question - compress again============================================================5) RUNNABLE PROMPT PACK v0.2 (Copy/Paste)============================================================PROMPT_SYSTEM_0 (paste once):"You are MathOS.AI-TeachRunner.InterstellarCore v0.2.You must execute OperatorScript v1.0.Separate roles:- Oracle: diagnosis + thresholds + mode.- Operator: minute-by-minute teaching + drills + microtests.- Architect: allowed only if Oracle opens SandboxWindow.- Visionary: one short 'why' only if student motivation low.Always output:A) Oracle ReportB) Operator Lesson PlanC) Architect Sandbox (0 or 1)D) Adaptive Practice (easy/med/hard)E) MicroTest (3Q) + answersF) Fence Decision + RepairRoute (if needed)G) Compression Summary (3 lines)H) NextSessionPlan (with spaced micro-retest)."PROMPT_INPUT_TEMPLATE_0:"StudentProfile: age_band=__, language_band=__, math_band=__, risk_flags=__, preferences=__StudentState(optional): mastery_known=__, error_signatures=__, last_notes=__SessionGoal: target_skills=[SkillID...], constraint=__, success_metric=__, time_budget_minutes=__"PROMPT_OUTPUT_CONSTRAINT_0:"Use exactly the section headers A-H. No extra sections. Keep each section concise but complete."============================================================6) 12-WEEK RUNNABLE SEQUENCE (Interstellar Core → Exam Port)============================================================WeekPlan schema: Week#: int CoreSkillFocus: list[SkillID] PortSkillFocus: list[SkillID] WeeklyInvariant: string WeeklyMicroTests: list[str] // 2-3 retests across week PromotionGate: conditionsWEEK_01 CoreSkillFocus=[SKILL_T0,SKILL_I0] PortSkillFocus=[PORT_PRI_GEOM_01] (optional by level) WeeklyInvariant="Transforms can change appearance without changing what matters." WeeklyMicroTests=["Identify invariant", "Spot decoy invariant"] PromotionGate="I0 mastery>=0.85 AND transfer>=0.70"WEEK_02 CoreSkillFocus=[SKILL_C0,SKILL_M0] PortSkillFocus=[PORT_PRI_NUM_01] (if primary) WeeklyInvariant="Measures compress invariants; composition can preserve or break." WeeklyMicroTests=["Compose transforms", "Choose measure"] PromotionGate="M0>=0.85"WEEK_03 CoreSkillFocus=[SKILL_N0,SKILL_A0] PortSkillFocus=[PORT_PRI_NUM_02] WeeklyInvariant="Arithmetic is iteration of invariant-preserving operations." WeeklyMicroTests=["Operation selection from story", "Inverse check"] PromotionGate="A0>=0.85 AND careless<=threshold"WEEK_04 CoreSkillFocus=[SKILL_ERR0] PortSkillFocus=[PORT_PRI_NUM_03,PORT_PRI_NUM_04] WeeklyInvariant="Answers live inside bounds; ratios are invariant under scaling." WeeklyMicroTests=["Bounds sanity", "Ratio/percent convert"] PromotionGate="ERR0>=0.80 AND transfer>=0.65"WEEK_05 CoreSkillFocus=[SKILL_R0,SKILL_V0] PortSkillFocus=[PORT_SEC_ALG_01] (sec+) WeeklyInvariant="Rewrite rules must preserve meaning; variables are slots." WeeklyMicroTests=["Legal vs illegal rewrite", "Substitution"] PromotionGate="R0>=0.85"WEEK_06 CoreSkillFocus=[SKILL_E0] PortSkillFocus=[PORT_SEC_ALG_02,PORT_SEC_ALG_03] WeeklyInvariant="Solving = satisfying constraints; intersections solve systems." WeeklyMicroTests=["Check solution", "Graph/word -> equation"] PromotionGate="E0>=0.85 AND stability>=0.75"WEEK_07 CoreSkillFocus=[SKILL_F0,SKILL_G0] PortSkillFocus=[PORT_SEC_FUNC_01] WeeklyInvariant="Same relation, different views (equation/table/graph)." WeeklyMicroTests=["Match views", "Qualitative sketch"] PromotionGate="G0 transfer>=0.70"WEEK_08 CoreSkillFocus=[SKILL_I0 강화 + GEOM invariants] PortSkillFocus=[PORT_SEC_GEOM_01,PORT_SEC_GEOM_02] WeeklyInvariant="Similarity preserves ratios; trig ratios are invariants." WeeklyMicroTests=["Explain why ratio invariant", "Choose rule"] PromotionGate="Trig transfer>=0.65 (sec), else keep as concept"WEEK_09 CoreSkillFocus=[SKILL_UNC0,SKILL_PROB0] PortSkillFocus=[PORT_PRI_DATA_01] WeeklyInvariant="Uncertainty is native; probability is a measure over possibilities." WeeklyMicroTests=["Tree/table convert", "Explain likelihood"] PromotionGate="PROB0>=0.80"WEEK_10 CoreSkillFocus=[SKILL_INF0] PortSkillFocus=[Exam-style inference word problems] WeeklyInvariant="Evidence updates belief; better belief improves decisions." WeeklyMicroTests=["Update with new evidence", "Detect base-rate trap"] PromotionGate="INF0 transfer>=0.65"WEEK_11 CoreSkillFocus=[SKILL_OPT0] PortSkillFocus=[Quadratic/graph minima (if level allows)] WeeklyInvariant="Optimization chooses best action under constraints and bounds." WeeklyMicroTests=["Pick best option", "Constraint changes -> new optimum"] PromotionGate="OPT0>=0.70"WEEK_12 CoreSkillFocus=[SKILL_VER0 (+ SKILL_NUMSTAB0 optional)] PortSkillFocus=[Exam-port consolidation set] WeeklyInvariant="Verification is contract checking: assumptions -> guarantees." WeeklyMicroTests=["Find missing assumption", "Reasonableness + bounds"] PromotionGate="VER0>=0.70 + stable exam-port performance trend"============================================================7) WEEKLY SESSION TEMPLATE (2 sessions/week example)============================================================Session A (Build/Repair): - target core skill - heavy invariant + representation + microtestsSession B (Port/Exam): - map core invariant to exam dialect - drill stability + speed + careless-control checklist - one transfer question always============================================================8) STANDARD CHECKLISTS (Operator)============================================================Careless-Control Checklist (10 sec): C1 Copy-check numbers/variables C2 Units/labels (if any) C3 Sign check (+/-) C4 Boundary check (reasonable range) C5 Re-substitute to verify constraintExplanation Rubric (0..1): E0 names invariant E1 states transform E2 explains why invariant holds E3 applies to new case (transfer)============================================================END v0.2============================================================
RUN-NOW QUICK START (paste into any LLM using PROMPT_SYSTEM_0)StudentProfile: age_band=S2, language_band=E2, math_band=M2, risk_flags={careless}, preferences={visual,challenge}StudentState(optional): mastery_known={PORT_SEC_ALG_02:0.6, PORT_SEC_FUNC_01:0.4}, error_signatures={Err_sign:5, Err_skip_step:7}, last_notes="Under time pressure, steps collapse."SessionGoal: target_skills=[SKILL_R0, SKILL_E0], constraint=exam_ready, success_metric=stability, time_budget_minutes=45
“`text id=”6k5c4d”
MathOS.AI-TeachRunner.InterstellarCore v0.3
Status: RUNNABLE + Practice Generator Spec + ChronoHelmAI Schedule Object + A-Math Port Pack + Tutor Voice Packs
ModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_03
Supersedes: MATHOS_AI_RUNNER_INTERSTELLARCORE_02
============================================================
0) META + CHANGELOG
Adds:
(A) PracticeItem Generator Spec (difficulty knobs + error-signature targeting)
(B) ChronoHelmAI Schedule Object (spaced micro-retests + session routing)
(C) A-Math Port Pack (SkillIDs for SEC Additional Mathematics)
(D) Tutor Voice Packs (Operator tone profiles) — controlled, non-random
Contract (unchanged):
Input: StudentProfile, StudentState(optional), SessionGoal, TimeBudget
Output: A-H sections + verified microtest + repair + next schedule object
Hard Rule:
OperatorScript v1.0 remains stable.
v0.3 adds generators + ports + scheduling without changing loop physics.
============================================================
1) PRACTICE GENERATOR SPEC (PGS v1.0)
1.1 PracticeItem schema
TYPE PracticeItem:
item_id: string
skill_id: SkillID
difficulty: {D1,D2,D3,D4,D5} // easy->hard
representation: {STORY,DIAGRAM,TABLE,GRAPH,NUMBERLINE,SYMBOLIC}
required_invariant: string
prompt: string
solution_outline: string // steps, not full essay
answer: string | number | expression
common_traps: list[ErrID]
checks: list[CheckID] // Operator checklist triggers
time_budget_sec: int
tags: set{TRANSFER,EXAMSTYLE,NOISE,BOUNDS,PROOFSEED}
1.2 Difficulty knobs (control levers)
TYPE DifficultyKnobs:
dof: int // degrees of freedom (#variables/#steps)
transform_chain: int // how many transforms composed
decoy_invariants: int // distractors present
noise_level: {0,1,2,3} // measurement/wording noise
abstraction: {concrete,semi,abstract}
time_pressure: {none,light,mid,high}
representation_shift: bool // requires switching view
proof_seed: bool // requires stating assumptions / contract
Mapping:
D1: dof=1, chain=1, decoy=0, noise=0, abstraction=concrete, time=none
D2: dof=1, chain=2, decoy=0..1, noise=0..1, abstraction=semi, time=light
D3: dof=2, chain=2, decoy=1..2, noise=1..2, abstraction=semi, time=mid
D4: dof=2..3, chain=3, decoy=2..3, noise=2..3, abstraction=abstract, time=high
D5: dof=3+, chain=3+, decoy=3+, noise=3, abstraction=abstract, time=high, proof_seed=true
1.3 Error Signature targeting (ErrID registry)
ErrID:
Err_sign
Err_copy
Err_skip_step
Err_inverse_confuse
Err_distribute_wrong
Err_factor_miss
Err_domain_ignore
Err_units_ignore
Err_graph_misread
Err_trig_identity_mix
Err_log_rules_mix
Err_index_rules_mix
Err_surd_simplify_wrong
Err_quadratic_formula_slip
Err_time_pressure_collapse
Err_notation_confuse
1.4 CheckID registry (Operator enforcement)
CheckID:
CHK_copycheck
CHK_signcheck
CHK_unitscheck
CHK_boundscheck
CHK_resubstitute
CHK_domaincheck
CHK_snapshot_steps
CHK_representation_switch
CHK_invariant_sentence
1.5 Generator policy (how AI produces practice)
FUNCTION GeneratePracticeSet(skill_id, student_state, goal, count_target):
// Choose 60% stability items + 40% transfer items unless goal==accelerate (then 50/50)
ratio_stability := (goal.success_metric in {speed,stability,accuracy}) ? 0.60 : 0.50
ratio_transfer := 1 – ratio_stability
// Determine baseline difficulty from mastery
m := student_state.mastery[skill_id] default 0.5
if m < 0.50 -> baseD = D1
if 0.50<=m<0.70 -> baseD = D2
if 0.70<=m<0.85 -> baseD = D3
if m>=0.85 -> baseD = D4
// Apply risk adjustments
if student_state.error_signatures[Err_time_pressure_collapse] high:
set time_pressure := none/light for first 70% items, then one timed item
if student_state.error_signatures[Err_skip_step] high:
enforce checks include CHK_snapshot_steps
if student_state.error_signatures[Err_careless_copy] high OR Err_copy high:
enforce checks include CHK_copycheck, CHK_signcheck
if Err_domain_ignore high:
enforce checks include CHK_domaincheck
// Representation schedule
rep_cycle := choose based on preferences:
visual -> [DIAGRAM,GRAPH,TABLE,SYMBOLIC]
procedural -> [SYMBOLIC,NUMBERLINE,TABLE]
story -> [STORY,DIAGRAM,SYMBOLIC]
ensure at least 1 representation_shift item if transfer required.
// Compose items
items := []
for i in 1..count_target:
is_transfer := (i in transfer slots)
D := baseD adjusted by (is_transfer? +1 : 0) capped D5
knobs := DifficultyKnobs(D) + targeted constraints above
rep := rep_cycle[i mod len(rep_cycle)]
item := InstantiateItem(skill_id, D, knobs, rep, is_transfer)
items.append(item)
return items
FUNCTION InstantiateItem(skill_id, D, knobs, rep, is_transfer):
// Builds prompt using invariant + representation template library
template := TemplateLibrary[skill_id][rep][D]
traps := TrapLibrary[skill_id] intersect TopErrs(student_state)
checks := ChecksFromTraps(traps) + {CHK_invariant_sentence} + (rep shift ? CHK_representation_switch : {})
time_budget := TimeBudgetFrom(D, student_state.load)
return PracticeItem(…)
1.6 Template Library (minimal required entries)
Rule:
For every SkillID, maintain at least:
– one D1 concrete template (STORY or DIAGRAM)
– one D2 symbolic template
– one D3 transfer template with representation_shift=true
– one D4 examstyle template (for port skills)
D5 reserved for advanced / proof_seed / high-load.
============================================================
2) ChronoHelmAI SCHEDULE OBJECT (CHS v1.0)
2.1 Schedule schema (almost-code JSON)
TYPE ChronoSchedule:
student_id: string
timezone: string = “Asia/Singapore”
horizon_days: int = 14
cadence:
sessions_per_week: int
session_minutes: int
micro_retests_per_week: int
micro_retest_minutes: int
next_events: list[ChronoEvent]
promotion_targets: list[SkillID]
risk_controls:
max_new_skills_per_week: int
sandbox_ratio: float // Architect window fraction
timed_work_ratio: float
spacing_policy:
retest_offsets_days: list[int] // e.g. [1,3,7,14]
promotion_requires: {mastery,transfer,stability}
notes: string
TYPE ChronoEvent:
event_id: string
kind: {SESSION, MICRO_RETEST, BACKTEST, RECOVERY}
datetime_local: “YYYY-MM-DD HH:MM”
duration_min: int
target_skills: list[SkillID]
mode: {BUILD,REPAIR,STABILIZE,PROMOTE,PORT_EXAM}
microtest_required: bool
deliverables: set{Practice,MicroTest,Compression,RepairDecision}
fence:
truncate_thresholds: Thresholds
deploy_thresholds: Thresholds
2.2 Spaced micro-retest generation
FUNCTION BuildSchedule(student, focus_skills, start_date):
offsets := [1,3,7,14]
create SESSION events at cadence
for each focus_skill in focus_skills:
schedule MICRO_RETEST events at start_date+offsets
include 1 BACKTEST event every 2 weeks (optional)
return ChronoSchedule
2.3 Default cadence presets
Preset_Pri:
sessions_per_week=2, session_minutes=45
micro_retests_per_week=3, micro_retest_minutes=8
Preset_Sec:
sessions_per_week=2..3, session_minutes=60
micro_retests_per_week=4, micro_retest_minutes=10
Preset_AMath_Exam:
sessions_per_week=3, session_minutes=75
micro_retests_per_week=5, micro_retest_minutes=12
============================================================
3) A-MATH PORT PACK (SEC Additional Mathematics) — SkillIDs
PortPackID: PORT_SEC_AMATH_v1.0
Rule:
Every A-Math skill must link to Core invariants:
– RewriteRules (R0), ErrorBounds (ERR0), GraphView (G0), InvariantBasics (I0)
3.1 Indices + Surds
PORT_AM_IDX_01 IndexLaws
Prereq=[PORT_SEC_ALG_01, SKILL_R0]
Invariant=”Index rules are rewrite rules preserving multiplication structure.”
Observable=”Simplify indices; combine powers; negative/zero indices.”
TransferTest=”Detect illegal index rewrite.”
Traps=[Err_index_rules_mix, Err_distribute_wrong]
PortTags={AMATH,ALG}
PORT_AM_SURD_01 SurdSimplify
Prereq=[PORT_AM_IDX_01, SKILL_R0]
Invariant=”Surd simplification preserves value; factor structure matters.”
Observable=”Simplify surds; rationalize denominators.”
TransferTest=”Choose correct simplification path in new form.”
Traps=[Err_surd_simplify_wrong, Err_factor_miss]
PortTags={AMATH,ALG,NUM}
3.2 Quadratics (deep)
PORT_AM_QUAD_01 QuadraticStructure
Prereq=[PORT_SEC_ALG_04, SKILL_G0]
Invariant=”Same quadratic across forms: factor/complete-square/formula/graph.”
Observable=”Convert forms; interpret vertex/roots.”
TransferTest=”Given vertex+point -> build quadratic.”
Traps=[Err_quadratic_formula_slip, Err_sign]
PortTags={AMATH,ALG,GEOM}
PORT_AM_QUAD_02 DiscriminantAsContract
Prereq=[PORT_AM_QUAD_01, SKILL_VER0]
Invariant=”Discriminant determines real-root existence (contract).”
Observable=”Uses discriminant for conditions.”
TransferTest=”Condition problem in story form.”
Traps=[Err_domain_ignore, Err_sign]
PortTags={AMATH,VER}
3.3 Coordinate Geometry
PORT_AM_COORD_01 StraightLine
Prereq=[PORT_SEC_FUNC_01, SKILL_G0]
Invariant=”Gradient/intercept are invariants of linear relation view.”
Observable=”Find equation; parallel/perpendicular; distance.”
TransferTest=”From diagram -> equation quickly.”
Traps=[Err_graph_misread, Err_sign]
PortTags={AMATH,GEOM,ALG}
PORT_AM_COORD_02 Circle
Prereq=[PORT_AM_COORD_01, PORT_AM_QUAD_01]
Invariant=”Circle equation encodes distance invariant from center.”
Observable=”Complete square; find center/radius; tangent conditions.”
TransferTest=”Given tangent info -> derive condition.”
Traps=[Err_factor_miss, Err_sign]
PortTags={AMATH,GEOM}
3.4 Trigonometry (A-Math)
PORT_AM_TRIG_01 TrigIdentities
Prereq=[PORT_SEC_GEOM_02, SKILL_R0]
Invariant=”Identity rewrites preserve truth for all valid domain.”
Observable=”Prove/use identities; simplify expressions.”
TransferTest=”Spot domain restriction.”
Traps=[Err_trig_identity_mix, Err_domain_ignore]
PortTags={AMATH,GEOM,ALG}
PORT_AM_TRIG_02 TrigEquations
Prereq=[PORT_AM_TRIG_01, SKILL_E0]
Invariant=”Solutions must satisfy constraint + domain + periodicity.”
Observable=”Solve trig equations; general solutions.”
TransferTest=”Different interval; compute correct set.”
Traps=[Err_domain_ignore, Err_notation_confuse]
PortTags={AMATH,ALG}
3.5 Logarithms + Exponentials
PORT_AM_LOG_01 LogLaws
Prereq=[PORT_AM_IDX_01, SKILL_R0]
Invariant=”Log laws are rewrite rules with domain contracts.”
Observable=”Simplify; solve log equations; change base.”
TransferTest=”Identify illegal log step due to domain.”
Traps=[Err_log_rules_mix, Err_domain_ignore]
PortTags={AMATH,ALG,VER}
PORT_AM_EXP_01 ExponentialModels
Prereq=[PORT_AM_LOG_01, SKILL_F0]
Invariant=”Exponential growth/decay is multiplicative iteration.”
Observable=”Model with exponentials; interpret parameters.”
TransferTest=”Story -> equation; parameter meaning.”
Traps=[Err_inverse_confuse, Err_units_ignore]
PortTags={AMATH,ALG}
3.6 Differentiation (A-Math/Precalculus seed)
PORT_AM_DIFF_01 DifferentiationRules
Prereq=[SKILL_LIN0, PORT_SEC_FUNC_01]
Invariant=”Derivative rules preserve local linearization meaning.”
Observable=”Differentiate polynomials/exp/log/trig (as syllabus allows).”
TransferTest=”Interpret derivative in story (rate).”
Traps=[Err_sign, Err_notation_confuse]
PortTags={AMATH,JC,CTL}
PORT_AM_DIFF_02 ApplicationsOfDiff
Prereq=[PORT_AM_DIFF_01, PORT_AM_QUAD_01, SKILL_OPT0]
Invariant=”Optimization uses derivative=0 as local stationarity contract.”
Observable=”Max/min; tangents; rates.”
TransferTest=”Novel optimization constraint.”
Traps=[Err_domain_ignore, Err_time_pressure_collapse]
PortTags={AMATH,OPT,VER}
3.7 Integration (seed, if covered)
PORT_AM_INT_01 IntegrationBasics
Prereq=[PORT_AM_DIFF_01, PORT_JC_CALC_02]
Invariant=”Integration accumulates; inverse of differentiation under conditions.”
Observable=”Basic integrals; area; simple kinematics.”
TransferTest=”From rate graph -> accumulation.”
Traps=[Err_sign, Err_boundscheck]
PortTags={AMATH,JC}
3.8 Vectors (A-Math continuation)
PORT_AM_VEC_02 VectorsAdvanced
Prereq=[PORT_SEC_VEC_01, PORT_AM_COORD_01]
Invariant=”Vector decomposition preserves displacement under basis change.”
Observable=”Lines/planes (if any), intersections, geometry.”
TransferTest=”Switch basis representation.”
Traps=[Err_notation_confuse, Err_sign]
PortTags={AMATH,GEOM}
3.9 A-Math Exam Port Consolidation
PORT_AM_EXAM_01 MixedPaperStability
Prereq=[all major AMATH ports above]
Invariant=”Stability under load: preserve invariants across topic switching.”
Observable=”Completes mixed set; maintains accuracy under time.”
TransferTest=”Unknown mix; consistent checklist usage.”
Traps=[Err_time_pressure_collapse, Err_skip_step, Err_copy]
PortTags={AMATH,EXAMSTYLE}
============================================================
4) Tutor Voice Packs (Operator Tone Profiles) — VPACK v1.0
Goal:
Keep delivery consistent while matching student load tolerance.
Voice affects motivation + clarity, not mathematical truth.
TYPE VoicePack:
voice_id: string
style_tags: set{warm,neutral,crisp,witty,firm,playful,calm,fast,slow}
allowed_when: predicate(StudentProfile, StudentState)
banned_when: predicate(…)
default_sentence_patterns: list[string]
micro_feedback_patterns: list[string]
repair_language: list[string]
VPACK_OP_01 CalmCrisp
style_tags={calm,crisp,neutral}
allowed_when=always
default_sentence_patterns=[
“Invariant: {INV}.”,
“Step 1 → Step 2 → Step 3.”,
“Check: {CHK}.”
]
micro_feedback_patterns=[“Good. Now transfer.”, “Pause. Copy-check.”, “Bounds check—reasonable?”]
repair_language=[“We truncate. Smaller version first.”, “Stitch back after 2 wins.”]
VPACK_OP_02 WarmPatient
style_tags={warm,slow,calm}
allowed_when=(risk_flags contains anxiety OR language_band in {E0,E1})
banned_when=(preferences contains challenge AND not anxious)
patterns=[“You’re close. Let’s shrink the problem.”, “Tell me what stayed the same.”]
repair_language=[“It’s okay to slow down. Stability first.”]
VPACK_OP_03 FirmExam
style_tags={firm,crisp,fast}
allowed_when=(SessionGoal.constraint in {exam_ready} AND age_band in {S2,S3,JC})
banned_when=(risk_flags contains anxiety)
patterns=[“Timer on. Snapshot steps.”, “One line invariant. Then solve.”]
repair_language=[“Truncate. Fix leak. Retest. Then continue.”]
VPACK_OP_04 WittyArchitectWindow (Operator-safe witty)
style_tags={witty,playful,crisp}
allowed_when=(Oracle allow_architect == true AND stability >= 0.75)
banned_when=(Err_time_pressure_collapse high)
patterns=[“Same math, different costume.”, “Don’t worship symbols—track invariants.”]
repair_language=[“Jokes off. Back to stable steps.”]
Voice selection rule:
FUNCTION SelectVoicePack(student, state, goal):
if goal.constraint==exam_ready AND not anxiety -> VPACK_OP_03
else if anxiety OR low language -> VPACK_OP_02
else -> VPACK_OP_01
if Oracle allows Sandbox and stability good -> add VPACK_OP_04 only inside Sandbox section
============================================================
5) UPDATED RUNNABLE OUTPUT FORMAT (A-H) — unchanged headers, richer content
A) Oracle Report
- current sensors + primary leak
- chosen thresholds + mode
- allow_architect yes/no
- selected voice pack
B) Operator Lesson Plan
- minute-by-minute using selected voice patterns
C) Architect Sandbox
- only if allowed; 1 alternate representation
D) Adaptive Practice
- generated via PGS v1.0
- include item metadata (SkillID, D-level, representation, traps, checks)
E) MicroTest (3Q) + answers
- Q1 invariant, Q2 apply, Q3 transfer/port
F) Fence Decision + RepairRoute
- truncate/stitch/promote + exact route selection
G) Compression Summary (3 lines)
- invariant / method / trap+fix
H) NextSessionPlan (ChronoSchedule excerpt)
- next 2 events + micro-retest offsets
============================================================
6) RUN-NOW QUICK START (A-Math example)
PROMPT_SYSTEM_0 (reuse from v0.2) + add:
“Use PGS v1.0 to generate practice items with metadata.
Output ChronoSchedule excerpt in section H.”
Example Input:
StudentProfile: age_band=S3, language_band=E2, math_band=M3, risk_flags={time_pressure_collapse,careless}, preferences={challenge,procedural}
StudentState(optional): mastery_known={PORT_AM_IDX_01:0.55, PORT_AM_LOG_01:0.40}, error_signatures={Err_log_rules_mix:6, Err_domain_ignore:4, Err_time_pressure_collapse:5, Err_copy:3}, last_notes=”Under timed conditions, domain mistakes spike.”
SessionGoal: target_skills=[PORT_AM_LOG_01], constraint=exam_ready, success_metric=stability, time_budget_minutes=75
Expected Behavior:
- Oracle selects VPACK_OP_03 FirmExam but reduces timed_work_ratio initially
- PracticeSet: D1-D3 with domain contracts + one D3 transfer
- Fence: truncate on domain errors; repair route includes CHK_domaincheck + CHK_boundscheck
- Schedule: micro-retests at +1,+3,+7 days for PORT_AM_LOG_01
============================================================
END v0.3
“`text id=”a9p2h7″
MathOS.AI-TeachRunner.InterstellarCore v0.4
Status: RUNNABLE + TemplateLibrary (Top 25 SEC/A-Math) + ErrorSignature Inference + Dual-Track Mode (Core-first + Exam-port)
ModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_04
Supersedes: MATHOS_AI_RUNNER_INTERSTELLARCORE_03
============================================================
0) META + CHANGELOG
Adds:
(A) TemplateLibrary v0.4 stubs (ready-to-generate prompts) for top 25 SEC + A-Math skills
(B) ErrorSignature Inference Engine (ESI v1.0) from student work
(C) Dual-Track Mode (DTM v1.0): Core Spine + Exam Port without phase shear
Hard Rule:
OperatorScript v1.0 unchanged.
v0.4 only adds generators + classifiers + routing policies.
============================================================
1) TEMPLATE LIBRARY (TL v0.4) — TOP 25 STUBS
TemplateKey schema:
TL[SkillID][Representation][Difficulty] -> TemplateSpec
TYPE TemplateSpec:
template_id: string
invariant_sentence: string
prompt_skeleton: string
expected_steps: list[string]
answer_form: {number, expression, set, statement}
trap_hooks: list[ErrID]
required_checks: list[CheckID]
generator_notes: string
Rule:
For each SkillID below, provide at least:
– D1 (concrete or guided)
– D2 (standard)
– D3 (transfer: representation_shift=true)
– D4 (examstyle / timed)
D5 optional (proof_seed) only when needed.
1A) SEC CORE (Top use)
(01) PORT_SEC_ALG_01 Expressions
TL stub:
TL[PORT_SEC_ALG_01][SYMBOLIC][D1]:
invariant=”Rewrite preserves meaning.”
skeleton=”Simplify: {expr}. State one rewrite rule used.”
steps=[“Apply single rewrite”, “Check by substituting x=2”]
traps=[Err_distribute_wrong, Err_sign]
checks=[CHK_invariant_sentence, CHK_resubstitute]
TL[PORT_SEC_ALG_01][SYMBOLIC][D3]:
skeleton=”Two students simplified {expr}. One is wrong. Identify illegal step + fix.”
traps=[Err_distribute_wrong, Err_notation_confuse]
checks=[CHK_invariant_sentence]
(02) PORT_SEC_ALG_02 LinearEquationsInequalities
D1 STORY: “Solve constraint in a story; verify by substitution.”
D3 GRAPH: “From number line shading -> write inequality + solve.”
traps=[Err_inverse_confuse, Err_sign]
checks=[CHK_resubstitute, CHK_boundscheck]
(03) PORT_SEC_ALG_03 SimultaneousEquations
D2 TABLE: “Solve intersection from table view.”
D3 STORY: “Two constraints in words -> system -> solution.”
traps=[Err_skip_step, Err_copy]
checks=[CHK_snapshot_steps, CHK_copycheck, CHK_resubstitute]
(04) PORT_SEC_ALG_04 Quadratics
D2 SYMBOLIC: “Factor / solve; then verify by substitution.”
D3 GRAPH: “Given graph features -> form equation.”
traps=[Err_factor_miss, Err_sign]
checks=[CHK_resubstitute, CHK_invariant_sentence]
(05) PORT_SEC_FUNC_01 FunctionsGraphs
D1 TABLE: “Fill outputs + describe rule.”
D3 STORY->GRAPH: “Story -> sketch qualitative graph.”
traps=[Err_graph_misread, Err_domain_ignore]
checks=[CHK_representation_switch, CHK_domaincheck]
(06) PORT_SEC_GEOM_01 SimilarityCongruence
D2 DIAGRAM: “Identify similar triangles + use ratio.”
D3 TRANSFER: “Same invariant, rotated diagram with extra lines.”
traps=[Err_graph_misread, Err_copy]
checks=[CHK_invariant_sentence, CHK_copycheck]
(07) PORT_SEC_GEOM_02 Trigonometry
D1 DIAGRAM: “Find missing side using trig ratio; explain invariant.”
D3 INTERVAL: “Same triangle scaled -> ratio unchanged -> solve.”
traps=[Err_trig_identity_mix, Err_units_ignore]
checks=[CHK_invariant_sentence, CHK_boundscheck]
(08) PORT_SEC_VEC_01 Vectors
D2 DIAGRAM: “Add vectors tip-to-tail; compute resultant.”
D3 BASIS SHIFT: “Same displacement in new picture; identify components.”
traps=[Err_notation_confuse, Err_sign]
checks=[CHK_snapshot_steps]
(09) PORT_PRI_NUM_03 FractionsAsMeasure (sec bridging)
D2 NUMBERLINE: “Locate fraction; compare; explain equivalence.”
D3 STORY: “Recipe scaling; preserve ratio.”
traps=[Err_inverse_confuse, Err_copy]
checks=[CHK_boundscheck, CHK_copycheck]
(10) PORT_PRI_NUM_04 RatioRatePercent (sec bridging)
D2 TABLE: “Convert ratio->percent; solve.”
D3 TRANSFER: “Rate vs ratio confusion trap.”
traps=[Err_units_ignore, Err_notation_confuse]
checks=[CHK_unitscheck, CHK_invariant_sentence]
1B) A-MATH (Top use)
(11) PORT_AM_IDX_01 IndexLaws
D1 SYMBOLIC: “Simplify with one law; name it.”
D3 ERROR-SPOT: “Find illegal index step.”
traps=[Err_index_rules_mix, Err_distribute_wrong]
checks=[CHK_invariant_sentence]
(12) PORT_AM_SURD_01 SurdSimplify
D2 SYMBOLIC: “Simplify surd; rationalize.”
D3 TRANSFER: “Two methods; pick safer/stabler one.”
traps=[Err_surd_simplify_wrong, Err_factor_miss]
checks=[CHK_snapshot_steps, CHK_boundscheck]
(13) PORT_AM_LOG_01 LogLaws
D1 CONTRACT: “State domain first, then simplify.”
D3 ERROR-SPOT: “Illegal log step due to domain.”
traps=[Err_log_rules_mix, Err_domain_ignore]
checks=[CHK_domaincheck, CHK_invariant_sentence]
(14) PORT_AM_EXP_01 ExponentialModels
D2 STORY: “Growth/decay model; interpret parameter.”
D3 TRANSFER: “Switch base / compare two models.”
traps=[Err_inverse_confuse, Err_units_ignore]
checks=[CHK_unitscheck, CHK_boundscheck]
(15) PORT_AM_QUAD_01 QuadraticStructure
D2 VIEW-SWAP: “Convert between forms; identify vertex.”
D4 EXAMSTYLE: “Mixed quadratic with condition.”
traps=[Err_sign, Err_quadratic_formula_slip]
checks=[CHK_resubstitute, CHK_invariant_sentence]
(16) PORT_AM_QUAD_02 DiscriminantAsContract
D2 CONDITION: “Find k such that roots real/equal/none.”
traps=[Err_domain_ignore, Err_sign]
checks=[CHK_boundscheck, CHK_invariant_sentence]
(17) PORT_AM_COORD_01 StraightLine
D2 DIAGRAM: “Find equation; parallel/perpendicular.”
D3 TRANSFER: “Given condition -> gradient relation.”
traps=[Err_graph_misread, Err_sign]
checks=[CHK_boundscheck, CHK_copycheck]
(18) PORT_AM_COORD_02 Circle
D2 SYMBOLIC: “Complete square; center/radius.”
D3 TANGENT: “Condition for tangency.”
traps=[Err_factor_miss, Err_sign]
checks=[CHK_snapshot_steps, CHK_boundscheck]
(19) PORT_AM_TRIG_01 TrigIdentities
D2 REWRITE: “Prove identity by rewriting.”
D3 DOMAIN: “Same identity but restricted interval; check.”
traps=[Err_trig_identity_mix, Err_domain_ignore]
checks=[CHK_domaincheck, CHK_invariant_sentence]
(20) PORT_AM_TRIG_02 TrigEquations
D2 SOLVE: “Solve in interval; include all solutions.”
D4 EXAMSTYLE: “General solution + interval filter.”
traps=[Err_domain_ignore, Err_notation_confuse]
checks=[CHK_domaincheck, CHK_snapshot_steps]
(21) PORT_AM_DIFF_01 DifferentiationRules
D1 MEANING: “What derivative means in story.”
D2 RULES: “Differentiate expression; simplify.”
traps=[Err_sign, Err_notation_confuse]
checks=[CHK_snapshot_steps, CHK_boundscheck]
(22) PORT_AM_DIFF_02 ApplicationsOfDiff
D2 OPT: “Max/min with constraints; interpret.”
D3 TRANSFER: “Rate problem in new wording.”
traps=[Err_domain_ignore, Err_time_pressure_collapse]
checks=[CHK_domaincheck, CHK_boundscheck]
(23) PORT_AM_INT_01 IntegrationBasics (if used)
D2 ACCUMULATE: “Area/accumulation concept.”
D3 RATE->TOTAL: “From rate graph to total.”
traps=[Err_sign, Err_boundscheck]
checks=[CHK_boundscheck, CHK_snapshot_steps]
(24) PORT_AM_VEC_02 VectorsAdvanced
D2 GEOM: “Line/ratio with vectors (as syllabus).”
D3 BASIS: “Same vector in new basis picture.”
traps=[Err_notation_confuse, Err_sign]
checks=[CHK_snapshot_steps]
(25) PORT_AM_EXAM_01 MixedPaperStability
D4 MIXED SET: “Switch topics; must keep checklist stable.”
traps=[Err_time_pressure_collapse, Err_skip_step, Err_copy]
checks=[CHK_copycheck, CHK_signcheck, CHK_domaincheck, CHK_boundscheck, CHK_resubstitute]
Note:
TL v0.4 provides stubs; generators fill {expr}, {story}, {diagram}, {numbers} based on student band.
============================================================
2) ERROR SIGNATURE INFERENCE ENGINE (ESI v1.0)
Goal:
Classify mistakes automatically from:
– student answer,
– student working steps (text),
– timing (optional),
– microtest outcomes.
TYPE WorkSample:
problem_text: string
student_steps: string
student_answer: string
correct_answer: string
time_sec: int optional
TYPE ErrorInference:
inferred_errs: map[ErrID -> weight 0..1]
evidence: map[ErrID -> short_reason]
confidence: 0..1
ESI Rules (minimal, deterministic-first; no hallucination):
R1 Err_sign:
if final magnitude correct but sign wrong OR sign flips without reason.
R2 Err_copy:
if a number/term in problem differs in steps (e.g., 7 becomes 1).
R3 Err_skip_step:
if jump occurs: step count < expected_steps_min OR missing key transformation. R4 Err_distribute_wrong: pattern: a(b+c) -> ab + c OR missing distribution term.
R5 Err_factor_miss:
pattern: common factor exists but not extracted; or incorrect factorization check fails.
R6 Err_domain_ignore:
logs/trig/roots: produces solution outside allowed domain/interval; no domain statement.
R7 Err_graph_misread:
uses wrong intercept/gradient from graph; mismatch with visible features described.
R8 Err_trig_identity_mix:
applies identity incorrectly; e.g., sin(a+b) handled as sin a + sin b.
R9 Err_log_rules_mix:
treats log(a+b) as log a + log b OR ignores base.
R10 Err_index_rules_mix:
adds exponents incorrectly; e.g., a^m * a^n -> a^(mn).
R11 Err_surd_simplify_wrong:
√(a+b) -> √a + √b OR incorrect rationalization.
R12 Err_quadratic_formula_slip:
wrong substitution into formula; missing ±; wrong denominator.
R13 Err_time_pressure_collapse:
accuracy drops sharply only when timed_work_ratio increases; steps shorten; copy/sign errors spike.
R14 Err_notation_confuse:
mixes symbols (x vs x^2), misreads interval notation, forgets function notation.
Update policy:
FUNCTION UpdateErrorSignatures(student_state, work_samples):
for each sample:
infer := ESI(sample)
for each ErrID:
student_state.error_signatures[ErrID] += round(5 * infer.weight)
decay low-frequency errors weekly (optional):
signature := max(0, signature – 1) if not seen in 7 days
Oracle integration:
Oracle must cite 1–2 evidence lines when naming top error signatures.
============================================================
3) DUAL-TRACK MODE (DTM v1.0) — Core-first + Exam-port without Phase Shear
Problem:
Exam acceleration can create “phase shear”:
student learns tricks (Operator) without invariant stability (Core),
causing collapse under novel formats / time pressure.
DTM Goal:
Maintain stable Core Spine while porting to exam dialect safely.
DTM State:
TYPE DualTrackState:
core_track: list[SkillID]
port_track: list[SkillID]
weekly_new_core: int
weekly_new_port: int
port_allowed: bool
port_ratio: float // fraction of time spent on port skills
shear_risk: float // 0..1
Shear Risk Sensors:
SR1: Port mastery rising while Core transfer stagnant
SR2: Correct-by-pattern without explanation rubric
SR3: Time pressure causes invariant sentence failure
SR4: Representation shift causes collapse
Shear Thresholds:
if shear_risk > 0.60 -> TRUNCATE port work (reduce port_ratio)
if shear_risk < 0.30 AND core_stability >= 0.75 -> allow more port work
Default DTM policies:
DTM_PRI:
weekly_new_core=2, weekly_new_port=1
port_ratio=0.30
DTM_SEC:
weekly_new_core=2, weekly_new_port=2
port_ratio=0.40
DTM_AMATH_EXAM:
weekly_new_core=1, weekly_new_port=3
port_ratio=0.55
hard rule: every port session begins with a Core invariant microtest (2 min)
Routing rule per session:
FUNCTION ChooseSessionMode(goal, dual_state, sensors):
if goal.constraint==exam_ready:
if shear_risk > 0.60 -> mode=REPAIR (Core-heavy) + limited port
else mode=PORT_EXAM with mandatory Core check
else:
mode=BUILD (Core)
“Core Anchor” requirement (always in exam mode):
- 1 invariant sentence before solving
- 1 domain/bounds check before final answer (if applicable)
- 1 resubstitution/verification (where possible)
============================================================
4) RUNNABLE PROMPT PACK v0.4 (Copy/Paste)
PROMPT_SYSTEM_0 (superset):
“You are MathOS.AI-TeachRunner.InterstellarCore v0.4.
Execute OperatorScript v1.0.
Use:
- PGS v1.0 for practice generation WITH metadata,
- ESI v1.0 to infer error signatures from provided work samples,
- DTM v1.0 to balance Core vs Exam-port safely.
Always output sections A-H only.
In A) Oracle Report, include:
(i) top 2 inferred ErrIDs + evidence,
(ii) DTM port_ratio + shear_risk,
(iii) selected VoicePack.”
PROMPT_INPUT_TEMPLATE_0:
“StudentProfile: age_band=, language_band=, math_band=, risk_flags=, preferences=_ StudentState(optional): mastery_known=, error_signatures=, last_notes=_
WorkSamples(optional, up to 2):
Sample1: problem_text=…, student_steps=…, student_answer=…, correct_answer=…, time_sec=…
SessionGoal: target_skills=[SkillID…], constraint=, success_metric=, time_budget_minutes=__”
============================================================
5) “START NOW” EXAMPLE (A-Math log domain shear case)
Example Input:
StudentProfile: age_band=S4, language_band=E2, math_band=M3, risk_flags={time_pressure_collapse}, preferences={challenge,procedural}
StudentState(optional): mastery_known={PORT_AM_LOG_01:0.55, SKILL_R0:0.60}, error_signatures={Err_domain_ignore:2, Err_log_rules_mix:3, Err_time_pressure_collapse:4}, last_notes=”Gets steps right untimed; fails timed.”
WorkSamples(optional, up to 2):
Sample1: problem_text=”Solve log(x-1)+log(x-3)=log(8)”, student_steps=”log((x-1)(x-3))=log8 -> (x-1)(x-3)=8 -> x^2-4x+3=8 -> x^2-4x-5=0 -> x=5 or x=-1″, student_answer=”x=5,-1″, correct_answer=”x=5″, time_sec=95
SessionGoal: target_skills=[PORT_AM_LOG_01], constraint=exam_ready, success_metric=stability, time_budget_minutes=75
Expected Oracle:
- infer Err_domain_ignore (evidence: accepted x=-1)
- DTM shear_risk moderate/high -> reduce port_ratio, enforce domain contract
- VoicePack FirmExam but timed_work_ratio lowered early
============================================================
END v0.4
“`text id=”v0q8a1″
MathOS.AI-TeachRunner.InterstellarCore v0.5
Status: RUNNABLE + MicroTest Bank Gen + Mastery/Stability Estimator + WordPress “Tutor Runner Page”
ModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_05
Supersedes: MATHOS_AI_RUNNER_INTERSTELLARCORE_04
============================================================
0) META + CHANGELOG
Adds:
(A) MicroTest Bank Generator (MTB v1.0): per SkillID (Q1 invariant / Q2 apply / Q3 transfer) + auto-scoring rubrics
(B) Mastery/Stability Estimator (MSE v1.0): deterministic + Bayesian-lite update rules (no web; explainable)
(C) WordPress-ready Tutor Runner Page Template (WPR v1.0): copy/paste runner that parents/students can use with any LLM
Hard Rules:
- OperatorScript v1.0 unchanged
- Output remains A-H headers only
- Teaching loop remains Observe→Infer→Plan→Act→Verify→Repair→Promote
============================================================
1) MICR0TEST BANK GENERATOR (MTB v1.0)
1.1 MicroTest item schema
TYPE MicroTestItem:
mt_id: string
skill_id: SkillID
q_type: {Q1_INVARIANT, Q2_APPLY, Q3_TRANSFER}
difficulty: {D1,D2,D3,D4} // microtests avoid D5
representation: {STORY,DIAGRAM,TABLE,GRAPH,NUMBERLINE,SYMBOLIC}
prompt: string
expected_answer: string | number | expression | set
expected_reason: string // one-line invariant reason
traps: list[ErrID]
required_checks: list[CheckID]
scoring_rubric: RubricID
time_budget_sec: int
TYPE MicroTestPack:
pack_id: string
skill_id: SkillID
items: list[MicroTestItem] // exactly 3: Q1,Q2,Q3
answer_key: string
scoring_sheet: ScoringSheet
TYPE ScoringSheet:
accuracy_score: 0..1
explain_score: 0..1
transfer_score: 0..1
stability_proxy: 0..1
inferred_errs: map[ErrID->weight]
notes: string
1.2 Rubrics (auto-scoring)
RubricID:
RUB_Q1_INVARIANT
RUB_Q2_APPLY
RUB_Q3_TRANSFER
RUB_Q1_INVARIANT:
accuracy_score:
1 if student names correct invariant OR selects correct invariant among options
0 otherwise
explain_score:
1 if student states “transform” + “what stays same” correctly in one line
0.5 if partially correct
0 otherwise
transfer_score:
n/a (0)
stability_proxy:
= explain_score (Q1 is stability anchor)
RUB_Q2_APPLY:
accuracy_score:
1 if final answer correct
0 otherwise
explain_score:
1 if student states invariant sentence before solving OR justifies key step
0.5 if minimal
0 if none
transfer_score:
n/a (0)
stability_proxy:
= 1 if checks used (resubstitute/bounds/domain) AND correct; else 0..0.5
RUB_Q3_TRANSFER:
accuracy_score:
1 if answer correct
0 otherwise
explain_score:
1 if student explicitly maps representation shift (e.g., graph->equation)
0.5 if partial
0 otherwise
transfer_score:
= accuracy_score * max(0.5, explain_score) // require some mapping
stability_proxy:
= transfer_score (transfer is stability under novelty)
1.3 MicroTest generation policy
FUNCTION GenerateMicroTestPack(skill_id, student_state, goal):
// choose difficulty band from mastery
m := student_state.mastery[skill_id] default 0.5
if m < 0.50 -> D = D1
if 0.50<=m<0.70 -> D = D2
if 0.70<=m<0.85 -> D = D3
if m>=0.85 -> D = D4 (exam-port timed)
// representation selection
rep_Q1 := choose stable rep (DIAGRAM or STORY)
rep_Q2 := choose main skill rep (SYMBOLIC or DIAGRAM)
rep_Q3 := choose representation_shift rep (GRAPH/TABLE/NUMBERLINE) != rep_Q2
// build items using TemplateLibrary (TL) stubs
Q1 := InstantiateMicroItem(skill_id, Q1_INVARIANT, D, rep_Q1)
Q2 := InstantiateMicroItem(skill_id, Q2_APPLY, D, rep_Q2)
Q3 := InstantiateMicroItem(skill_id, Q3_TRANSFER, D, rep_Q3 with rep_shift=true)
// attach traps + checks (from TL + ESI top errors)
inject top_errs := TopErrs(student_state)
add relevant required_checks (domain/bounds/copy/sign) based on traps
return MicroTestPack(Q1,Q2,Q3)
FUNCTION InstantiateMicroItem(skill_id, q_type, D, rep):
template := TL[skill_id][rep][D] if exists else TLFallback(skill_id,q_type)
prompt := Fill(template.prompt_skeleton, with fresh numbers/story)
expected_answer := GeneratorSolve(prompt) // LLM internal; must provide answer key
expected_reason := template.invariant_sentence
rubric := Map(q_type)
time_budget := TimeBudgetMicro(D, student_state)
return MicroTestItem(…)
1.4 Scoring + ESI integration
FUNCTION ScoreMicroTest(pack, student_responses, work_samples_optional):
score each item via rubric rules (text match + correctness)
infer_errs using ESI v1.0 when:
– answer wrong OR checks missing OR contradiction in steps
output ScoringSheet
============================================================
2) MASTERY/STABILITY ESTIMATOR (MSE v1.0)
2.1 StudentState extension
TYPE SkillStats:
mastery_beta: (a:float, b:float) // Bayesian-lite for correctness
transfer_beta: (a:float, b:float) // Bayesian-lite for transfer
stability_beta: (a:float, b:float) // under load/timed
last_seen_date: “YYYY-MM-DD”
streak: int // consecutive passes
notes: string
StudentState.mastery := map[SkillID -> 0..1] // derived from mastery_beta mean
StudentState.stability := map[SkillID -> 0..1] // derived from stability_beta mean
StudentState.skill_stats := map[SkillID -> SkillStats]
2.2 Initialization
FUNCTION InitSkillStats(skill_id):
// mildly uninformative prior
mastery_beta=(a=2,b=2)
transfer_beta=(a=2,b=2)
stability_beta=(a=2,b=2)
streak=0
2.3 Update rules (Bayesian-lite + deterministic modifiers)
Inputs:
- PreMicroTest ScoringSheet (pre)
- PostMicroTest ScoringSheet (post)
- PracticeResults summary:
timed_item_correct_rate (0..1)
checklist_compliance_rate (0..1)
representation_shift_success_rate (0..1)
FUNCTION UpdateSkillStats(skill_id, pre, post, practice):
stats := student_state.skill_stats[skill_id] else InitSkillStats(skill_id)
// Mastery update from post accuracy (Q2 primarily, plus Q1/Q3 signal)
y_mastery := WeightedCorrectness(post):
y = 0.2Q1_accuracy + 0.6Q2_accuracy + 0.2*Q3_accuracy
if y_mastery >= 0.85: stats.mastery_beta.a += 2
else if y_mastery >= 0.60: stats.mastery_beta.a += 1; stats.mastery_beta.b += 1
else: stats.mastery_beta.b += 2
// Transfer update (Q3)
y_transfer := post.transfer_score
if y_transfer >= 0.70: stats.transfer_beta.a += 2
else if y_transfer >= 0.50: stats.transfer_beta.a += 1; stats.transfer_beta.b += 1
else: stats.transfer_beta.b += 2
// Stability update (timed + checklist + error spike)
y_stability := CombineStability(post, practice):
base = post.stability_proxy
timed = practice.timed_item_correct_rate
checks = practice.checklist_compliance_rate
// stability rewards correctness under load + correct checking behavior
y = 0.45base + 0.35timed + 0.20*checks
if y_stability >= 0.75: stats.stability_beta.a += 2
else if y_stability >= 0.55: stats.stability_beta.a += 1; stats.stability_beta.b += 1
else: stats.stability_beta.b += 2
// Streak logic
if (post.accuracy_score>=0.85 AND post.transfer_score>=0.70): stats.streak += 1
else: stats.streak = 0
// Derived means
mastery_mean = stats.mastery_beta.a / (stats.mastery_beta.a + stats.mastery_beta.b)
transfer_mean = stats.transfer_beta.a / (stats.transfer_beta.a + stats.transfer_beta.b)
stability_mean= stats.stability_beta.a / (stats.stability_beta.a + stats.stability_beta.b)
student_state.mastery[skill_id] = mastery_mean
student_state.stability[skill_id] = stability_mean
// Record
stats.last_seen_date = Today(Asia/Singapore)
student_state.skill_stats[skill_id] = stats
2.4 Promotion gate (uses estimator)
FUNCTION PromotionGate(skill_id, thresholds):
m = student_state.mastery[skill_id]
s = student_state.stability[skill_id]
t = Mean(transfer_beta)
return (m>=thresholds.T_deploy_mastery AND t>=thresholds.T_deploy_transfer AND s>=thresholds.T_deploy_stability)
2.5 Decay rule (forgetting / drift)
FUNCTION WeeklyDecay(skill_id):
if days_since(stats.last_seen_date) > 14:
// gentle decay toward prior (prevents stale confidence)
stats.mastery_beta.b += 1
stats.transfer_beta.b += 1
stats.stability_beta.b += 1
============================================================
3) WORDPRESS “TUTOR RUNNER PAGE” TEMPLATE (WPR v1.0)
Goal:
One publishable page that lets parents/students:
– paste a system prompt into any LLM
– input student info
– paste up to 2 work samples
– get A-H outputs + schedule
WPR_SLUG: /mathos-ai-tutor-runner-interstellarcore-v0-5/
WPR_SECTIONS (WordPress-ready blocks):
- What this is
- How to run (3 steps)
- Copy/Paste System Prompt
- Input Form (copy/paste)
- Optional: Work Sample format
- What you will get (A-H)
- Safety rules (short)
WPR_CONTENT_BLOCK (copy/paste)
[H2] MathOS AI Tutor Runner (Interstellar Core v0.5)
[H3] Step 1 — Paste this into your AI (System/Instruction)
SYSTEM_PROMPT:
“You are MathOS.AI-TeachRunner.InterstellarCore v0.5.
You must run a closed-loop teaching controller:
Observe→Infer→Plan→Act→Verify→Repair→Promote.
Execute OperatorScript v1.0.
Use:
- TemplateLibrary TL v0.4 for prompt generation,
- Practice Generator PGS v1.0 (with metadata),
- Error Signature Inference ESI v1.0,
- Dual-Track Mode DTM v1.0,
- MicroTest Bank MTB v1.0 (Q1 invariant/Q2 apply/Q3 transfer),
- Mastery/Stability Estimator MSE v1.0 (update skill stats).
Output ONLY sections A-H with these exact headers:
A) Oracle Report
B) Operator Lesson Plan
C) Architect Sandbox (0 or 1)
D) Adaptive Practice
E) MicroTest (3Q) + Answer Key + Scoring Rubric
F) Fence Decision + RepairRoute
G) Compression Summary (3 lines)
H) NextSessionPlan (ChronoSchedule excerpt).
No extra sections.”
[H3] Step 2 — Paste this Input Form (fill in blanks)
INPUT_FORM:
“StudentProfile: age_band=, language_band=, math_band=, risk_flags={}, preferences={} StudentState(optional): mastery_known={SkillID:0.xx,…}, error_signatures={ErrID:count,…}, last_notes=’…’ WorkSamples(optional, up to 2): Sample1: problem_text=’…’, student_steps=’…’, student_answer=’…’, correct_answer=’…’, time_sec=
SessionGoal: target_skills=[SkillID,…], constraint=, success_metric=, time_budget_minutes=__”
[H3] Step 3 — Do the session
Rule:
- Follow the Operator Lesson Plan (B).
- Student attempts Practice (D).
- Student answers MicroTest (E).
- Paste the student responses back into the AI and ask it to score + update.
[H3] What you will get (A–H)
- Diagnosis (errors + leak)
- Lesson plan (minute-by-minute)
- Adaptive practice (with traps + checks)
- 3-question microtest + scoring
- Repair decision (truncate/stitch/promote)
- 3-line compression summary
- Next schedule (micro-retests + next session targets)
[H3] Safety rules (short)
- If confusion spikes: truncate; smaller problem; rebuild stability.
- If careless spikes: enforce checklist; slow down; verify.
- If transfer fails: representation swap; restitch; retest.
============================================================
4) UPDATED RUN LOOP (v0.5 integration points)
In OperatorScript v1.0:
Step 2 PreMicroTest:
– GenerateMicroTestPack(skill_id) using MTB v1.0
Step 6 PostMicroTest:
– ScoreMicroTest using MTB rubrics + ESI inference
Step 7 Fence Decision:
– PromotionGate uses MSE v1.0 derived mastery/transfer/stability
Step 9 ScheduleNext:
– ChronoSchedule uses spaced micro-retests for focus skills (+1,+3,+7,+14)
============================================================
5) RUN-NOW EXAMPLE (SEC Algebra)
Example Input (paste into runner):
StudentProfile: age_band=S2, language_band=E2, math_band=M2, risk_flags={careless,skip_step}, preferences={visual,challenge}
StudentState(optional): mastery_known={PORT_SEC_ALG_02:0.55, PORT_SEC_ALG_01:0.60}, error_signatures={Err_skip_step:6, Err_copy:4, Err_sign:3}, last_notes=”Jumps steps; loses sign; graph questions confuse.”
WorkSamples(optional, up to 2):
Sample1: problem_text=”Solve 3(2x-1)=5x+7″, student_steps=”6x-1=5x+7 -> x=8″, student_answer=”x=8″, correct_answer=”x=8/??”, time_sec=40
SessionGoal: target_skills=[PORT_SEC_ALG_02], constraint=exam_ready, success_metric=stability, time_budget_minutes=45
Expected Oracle outcomes:
- ESI infers Err_distribute_wrong or Err_skip_step (evidence: 3(2x-1)->6x-1)
- RepairRoute includes CHK_snapshot_steps + CHK_resubstitute
- MTB microtest includes Q3 representation shift (number line inequality or graph)
============================================================
END v0.5
“`text id=”q7c2mz”
MathOS.AI-TeachRunner.InterstellarCore v0.6
Status: RUNNABLE + Session Report Card + Multi-Skill Session Router + SkillID Quick Picker
ModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_06
Supersedes: MATHOS_AI_RUNNER_INTERSTELLARCORE_05
============================================================
0) META + CHANGELOG
Adds:
(A) Session Scoring + Report Card (SRC v1.0): parent-friendly + machine-readable
(B) Multi-Skill Sessions (MSR v1.0): 2–3 SkillIDs per session with conflict-free routing
(C) SkillID Quick Picker (SQP v1.0): user selects by human labels (Primary/Sec/A-Math topics); system maps to SkillIDs
Hard Rules:
- Output remains A-H only for “session run”
- OperatorScript v1.0 unchanged; v0.6 adds planning + reporting objects
============================================================
1) SESSION SCORING + REPORT CARD (SRC v1.0)
1.1 Report objects
TYPE SessionResult:
session_id: string
date_local: “YYYY-MM-DD”
duration_min: int
target_skills: list[SkillID]
mode: {BUILD,REPAIR,STABILIZE,PROMOTE,PORT_EXAM}
voice_pack: VoicePackID
microtest_pre: ScoringSheet
microtest_post: ScoringSheet
practice_summary: PracticeSummary
fence_decision: {TRUNCATE,STITCH,PROMOTE}
repair_route_used: list[string]
compression_summary_3lines: list[string]
updated_skill_stats: map[SkillID -> SkillStatsSnapshot]
notes: string
TYPE PracticeSummary:
total_items: int
correct_rate: 0..1
timed_items: int
timed_correct_rate: 0..1
checklist_compliance_rate: 0..1
representation_shift_success_rate: 0..1
top_errs: list[ErrID]
time_pressure_flag: bool
TYPE SkillStatsSnapshot:
mastery: 0..1
transfer: 0..1
stability: 0..1
streak: int
delta_mastery: float
delta_stability: float
TYPE ReportCard:
student_id: string
week_range: “YYYY-MM-DD..YYYY-MM-DD”
focus_skills: list[SkillID]
current_levels: map[SkillID -> {mastery,transfer,stability}]
trend: map[SkillID -> {up,flat,down}]
top_leaks: list[ErrID]
parent_summary: string // short, readable
next_actions: list[string] // 3 bullets
next_schedule: ChronoScheduleExcerpt
risk_panel:
shear_risk: 0..1
time_pressure_risk: 0..1
careless_risk: 0..1
confidence: 0..1 // teacher belief confidence
machine_summary: object // stable key-value for automation
TYPE ChronoScheduleExcerpt:
next_events: list[ChronoEvent] // next 3 events
retest_offsets_days: list[int]
port_ratio: float
sandbox_ratio: float
1.2 Session scoring (single-number + breakdown)
TYPE SessionScore:
learning_gain: 0..1
transfer_gain: 0..1
stability_gain: 0..1
reliability: 0..1 // checks used + low error spike
overall: 0..1
FUNCTION ComputeSessionScore(pre:ScoringSheet, post:ScoringSheet, practice:PracticeSummary):
learning_gain := clamp(post.accuracy_score – pre.accuracy_score, 0, 1)
transfer_gain := clamp(post.transfer_score – pre.transfer_score, 0, 1)
stability_gain := clamp(post.stability_proxy – pre.stability_proxy, 0, 1)
reliability := 0.6practice.checklist_compliance_rate + 0.4(1 – practice.time_pressure_flag)
overall := 0.35learning_gain + 0.30transfer_gain + 0.25stability_gain + 0.10reliability
return SessionScore(…)
1.3 Parent Summary generator (strictly non-fluffy)
FUNCTION BuildParentSummary(report_card):
// exactly 3 short paragraphs max
P1: “This week we focused on {skills}. {best_gain} improved. {main_leak} is the main mark-loss cause.”
P2: “Under time pressure: {stable/unstable}. Checklist usage: {rate}. Transfer: {ok/not yet}.”
P3: “Next: {Action1}; {Action2}; {Action3}. Next session on {date/time}.”
============================================================
2) MULTI-SKILL SESSION ROUTER (MSR v1.0)
Problem:
2–3 skills in one session can conflict (phase shear, overload, representation confusion).
MSR Goals:
- choose 1 PrimarySkill (core of session)
- choose up to 2 SecondarySkills (support/port)
- maintain load stability
- enforce “one representation spine” per session
2.1 SessionPlan (multi-skill)
TYPE MultiSkillPlan:
primary_skill: SkillID
secondary_skills: list[SkillID] // max 2
mode: {BUILD,REPAIR,STABILIZE,PROMOTE,PORT_EXAM}
time_split_min: map[SkillID -> int]
microtests:
pre: SkillID // only primary microtest pre
post: SkillID // only primary microtest post
micro_retest_secondary: list[SkillID] // 1Q each
representation_spine: {STORY,DIAGRAM,SYMBOLIC,GRAPH,TABLE,NUMBERLINE}
checklist_set: set[CheckID]
fence:
truncate_thresholds: Thresholds
deploy_thresholds: Thresholds
2.2 Conflict rules
Rule C1 (Invariant clash):
Do not pair two skills that require different “dominant invariant” modes under same representation spine.
Example:
– log domain contracts + trig periodicity contracts in same session => high confusion risk.
Rule C2 (Notation overload):
Avoid pairing skills with high notation confusion risk simultaneously when Err_notation_confuse high.
Rule C3 (Port shear):
If shear_risk > 0.60, secondary skills must be Core-only (not exam-port).
Rule C4 (Load budget):
Max new skills introduced per session:
– Primary: 1 new concept
– Secondary: must be review/retest only (no new) unless stability>=0.80
2.3 Router algorithm
FUNCTION BuildMultiSkillPlan(candidate_skills:list[SkillID], student_state, goal, time_budget_min):
// Step 0: rank skills by urgency
urgency(skill) = (1 – stability(skill)) + (exam proximity weight if goal.exam_ready) + (error signature relevance)
sorted = sort descending urgency
// Step 1: choose PrimarySkill
primary = first(sorted)
// Step 2: choose SecondarySkills (0..2) subject to conflict rules
secondary = []
for skill in sorted[1:]:
if len(secondary)==2: break
if Conflicts(primary, skill, student_state): continue
if goal.exam_ready AND shear_risk>0.60 AND IsPortSkill(skill): continue
secondary.append(skill)
// Step 3: choose mode (primary decides)
mode = ChooseSessionMode(goal, dual_state, sensors) // from DTM v1.0
// Step 4: assign representation spine
spine = PreferredSpine(primary, student_profile, student_state)
// keep spine same for whole session; secondary items must match spine or be 1 quick shift only.
// Step 5: time split
base_primary = round(0.70 * time_budget_min)
rem = time_budget_min – base_primary
split_secondary = distribute(rem, secondary) // equal; minimum 8 min each
time_split = {primary: base_primary, …}
// Step 6: microtests
pre = primary
post = primary
secondary_retests = secondary (1Q each, not full microtest)
// Step 7: checklist selection
checklist_set = CoreAnchorChecklist(primary, student_state) + TrapsToChecks(primary, top_errs)
return MultiSkillPlan(…)
2.4 Secondary 1-question retest format
TYPE OneQRetest:
skill_id: SkillID
prompt: string
expected_answer: string
check: CheckID
pass_fail: bool
Rule:
If retest fails -> secondary skill becomes next session primary (unless conflict).
============================================================
3) SKILLID QUICK PICKER (SQP v1.0)
Goal:
User doesn’t need SkillIDs; user picks by:
Level + Topic + Subtopic + Goal.
3.1 Picker schema
TYPE QuickPickInput:
level: {PRI,SEC,AMATH,JC}
topic: string // e.g. “Algebra”, “Logarithms”
subtopic: string optional // e.g. “Linear equations”, “Domain”
goal: {concept_build, exam_ready, repair_only, accelerate}
common_issue: string optional // e.g. “careless”, “sign”, “time pressure”
time_budget_minutes: int
TYPE QuickPickOutput:
recommended_skills: list[SkillID] // 1 primary + up to 2 secondary
rationale: list[string]
session_mode: {BUILD,REPAIR,PORT_EXAM,STABILIZE,PROMOTE}
port_ratio: float
3.2 Picker map (minimal coverage; extendable)
SQP_MAP:
PRI:
“Number” -> [PORT_PRI_NUM_01, PORT_PRI_NUM_02, PORT_PRI_NUM_03, PORT_PRI_NUM_04]
“Fractions” -> [PORT_PRI_NUM_03]
“Ratio/Percent” -> [PORT_PRI_NUM_04]
“Geometry” -> [PORT_PRI_GEOM_01]
“Data/Probability” -> [PORT_PRI_DATA_01, SKILL_PROB0]
SEC:
“Algebra” -> [PORT_SEC_ALG_01, PORT_SEC_ALG_02, PORT_SEC_ALG_03, PORT_SEC_ALG_04]
“Functions/Graphs” -> [PORT_SEC_FUNC_01, SKILL_G0]
“Geometry” -> [PORT_SEC_GEOM_01, PORT_SEC_GEOM_02]
“Vectors” -> [PORT_SEC_VEC_01]
AMATH:
“Indices” -> [PORT_AM_IDX_01]
“Surds” -> [PORT_AM_SURD_01]
“Logarithms” -> [PORT_AM_LOG_01]
“Exponentials” -> [PORT_AM_EXP_01]
“Quadratics” -> [PORT_AM_QUAD_01, PORT_AM_QUAD_02]
“Coord Geometry” -> [PORT_AM_COORD_01, PORT_AM_COORD_02]
“Trigonometry” -> [PORT_AM_TRIG_01, PORT_AM_TRIG_02]
“Differentiation” -> [PORT_AM_DIFF_01, PORT_AM_DIFF_02]
“Integration” -> [PORT_AM_INT_01]
“Mixed Exam” -> [PORT_AM_EXAM_01]
JC:
“Differentiation” -> [PORT_JC_CALC_01]
“Integration” -> [PORT_JC_CALC_02]
“Numerical Stability” -> [SKILL_NUMSTAB0]
“Control/Optimization” -> [SKILL_OPT0, SKILL_CTL0]
3.3 QuickPick resolution rules
FUNCTION QuickPickResolve(input:QuickPickInput, student_state):
skills = SQP_MAP[input.level][input.topic] (filter by subtopic if provided)
// choose primary by lowest stability among mapped skills
primary = argmin(stability(skill)) among skills
// choose secondary:
secondary = []
if input.goal==exam_ready:
// add the nearest prerequisite if weak
prereq = WeakestPrereq(primary)
if prereq exists: secondary.append(prereq)
// add exam stability pack if time pressure issue
if input.common_issue contains “time” OR Err_time_pressure_collapse high:
secondary.append(PORT_AM_EXAM_01 or PORT_SEC_ALG_02 depending level)
else:
// add core anchor skill for meaning transfer
secondary.append(CoreAnchorFor(primary)) // typically SKILL_R0 or SKILL_I0 or SKILL_G0
// cap secondary to 2 + apply MSR conflict rules
plan = BuildMultiSkillPlan([primary]+secondary, student_state, goal=input.goal, time_budget_min=input.time_budget_minutes)
return QuickPickOutput(recommended_skills=[plan.primary]+plan.secondary, …)
CoreAnchorFor(skill):
if skill in ALG family -> SKILL_R0
if skill in GEOM/TRIG -> SKILL_I0
if skill in FUNC/COORD -> SKILL_G0
if skill in LOG/IDX -> SKILL_R0 + SKILL_VER0 (domain contracts) [use secondary only one]
else -> SKILL_I0
============================================================
4) UPDATED “RUNNER PAGE” EXTENSION (WPR v1.1)
Add-on block for WordPress page:
[H3] Quick Picker (no SkillIDs needed)
Paste this instead of SkillIDs:
QUICK_PICK_FORM:
“QuickPick:
level=SEC
topic=Algebra
subtopic=Linear equations
goal=exam_ready
common_issue=time pressure + careless
time_budget_minutes=60″
Runner behavior:
- resolve QuickPick -> SkillIDs
- build MultiSkillPlan
- run session outputs A-H
============================================================
5) SESSION OUTPUT (A-H) — v0.6 REQUIRED ADDITIONS
A) Oracle Report must include:
- Top 2 ErrIDs + evidence
- DTM: port_ratio + shear_risk
- MSR: primary_skill + secondary_skills + representation_spine
- Selected VoicePack
- MicroTestPack IDs used (pre/post)
H) NextSessionPlan must include:
- ChronoScheduleExcerpt (next 3 events)
- ReportCard excerpt: top_leaks + next_actions
============================================================
6) RUN-NOW QUICK START (No SkillIDs)
Paste into any LLM with SYSTEM_PROMPT v0.5 (plus v0.6 add-ons implied):
QuickPick:
level=AMATH
topic=Logarithms
subtopic=Domain
goal=exam_ready
common_issue=careless + time pressure
time_budget_minutes=75
Optional WorkSample:
Sample1: problem_text=’Solve log(x-1)+log(x-3)=log(8)’,
student_steps=’… includes x=-1 …’,
student_answer=’x=5,-1′,
correct_answer=’x=5′,
time_sec=95
Expected:
- primary=PORT_AM_LOG_01
- secondary=SKILL_VER0 (contract/domain) or SKILL_R0 (rewrite legality)
- mode=PORT_EXAM with Core Anchor
- report card excerpt + spaced retests
============================================================
END v0.6
“`text id=”p0x3h2″
MathOS.AI-TeachRunner.InterstellarCore v0.7
Status: RUNNABLE + One-Button Parent Loop + Weekly Auto-Report + Skill Glossary Pack
ModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_07
Supersedes: MATHOS_AI_RUNNER_INTERSTELLARCORE_06
============================================================
0) META + CHANGELOG
Adds:
(A) One-Button Parent Loop (OBPL v1.0):
parent pastes student answers once → AI scores + updates state + generates next practice + schedules next events.
(B) Weekly Auto-Report Compiler (WARC v1.0):
AI compiles SessionResult logs into a ReportCard + trends + next actions.
(C) Skill Glossary Pack (SGP v1.0):
minimal human-readable glossary for any SkillID used (on-page ready).
Hard Rules:
- “Session Run” output remains A-H only.
- OBPL + WARC are extra prompts/contracts (not extra sections inside A-H).
- OperatorScript v1.0 remains stable.
============================================================
1) ONE-BUTTON PARENT LOOP (OBPL v1.0)
Goal:
Parent workflow:
1) Run a session (A-H)
2) Student answers practice + microtest
3) Parent pastes a single “Answer Packet”
4) AI returns:
– auto-scored results
– updated StudentState (mastery/stability/error signatures)
– next practice set
– next micro-retest schedule excerpt
– short parent summary
1.1 Answer Packet schema (single paste)
TYPE AnswerPacket:
session_id: string
target_skills: list[SkillID]
practice_answers:
– item_id: string
student_answer: string
student_steps: string optional
time_sec: int optional
microtest_answers:
– mt_id: string
response: string
steps: string optional
time_sec: int optional
notes_optional: string
1.2 OBPL Output schema (single response object)
TYPE OBPL_Output:
scored_microtest: ScoringSheet
scored_practice: PracticeSummary
inferred_errors: map[ErrID->weight]
updated_student_state_patch:
– mastery updates
– stability updates
– error_signatures updates
– dual_track updates (shear_risk)
fence_decision: {TRUNCATE,STITCH,PROMOTE}
repair_route_recommendation: list[string]
next_practice_set: list[PracticeItem] // generated via PGS v1.0
next_micro_retest_pack: MicroTestPack // MTB v1.0 for next event
next_schedule_excerpt: ChronoScheduleExcerpt
parent_summary_short: string // <= 6 lines
machine_patch: object // stable keys for automation
1.3 OBPL “One Button” policy
FUNCTION OBPL_Run(answer_packet, last_AH_output, student_state):
// Step 1: Score microtest
micro_score := ScoreMicroTest(pack_from_last_AH, answer_packet.microtest_answers)
// Step 2: Score practice
practice_summary := ScorePractice(answer_packet.practice_answers, expected_answers_from_last_AH, ESI v1.0)
// Step 3: Update error signatures
UpdateErrorSignatures(student_state, WorkSamplesFrom(answer_packet))
// Step 4: Update mastery/stability estimator (MSE v1.0)
UpdateSkillStats(primary_skill, pre_sheet_from_last_AH, micro_score, practice_summary)
if secondary skills exist:
update secondary with “1Q retest” pass/fail as weak signal:
if pass: +1 to mastery_beta.a
if fail: +1 to mastery_beta.b and mark as next-session candidate
// Step 5: Fence decision
fence := DecideFence(micro_score, practice_summary, thresholds)
if domain/careless/time collapse exceed truncate → TRUNCATE
else if PromotionGate(primary_skill) true → PROMOTE
else → STITCH
// Step 6: Generate next practice + next microtest pack
next_skill_focus := SelectNextSkillFocus(fence, dual_track_state, MSR outcomes)
next_practice := GeneratePracticeSet(next_skill_focus, student_state, goal, count_target)
next_micro := GenerateMicroTestPack(next_skill_focus, student_state, goal)
// Step 7: Build schedule excerpt
schedule_excerpt := BuildNext3Events(student_state, next_skill_focus, cadence_preset)
// Step 8: Produce parent summary + machine patch
return OBPL_Output(…)
1.4 Practice scoring (minimal deterministic)
TYPE PracticeItemResult:
item_id: string
correct: bool
inferred_errs: map[ErrID->weight]
checks_used: set[CheckID] optional
time_sec: int optional
FUNCTION ScorePractice(practice_answers, expected_key, ESI):
for each item:
if student_answer matches expected (allow algebraic equivalence if declared):
correct=true
else:
correct=false
infer_errs = ESI(WorkSample)
compute:
correct_rate
timed_correct_rate (if any timed)
checklist_compliance_rate (from declared checks OR from presence of verification steps)
representation_shift_success_rate (items tagged TRANSFER)
time_pressure_flag := (timed_correct_rate << untimed_correct_rate) OR Err_time_pressure_collapse inferred
return PracticeSummary
1.5 OBPL prompts (copy/paste)
PROMPT_OBPL_SYSTEM (paste once for “scoring step”):
“You are MathOS OBPL v1.0.
Input: AnswerPacket + last session A-H output + StudentState.
You must:
- score microtest via MTB rubrics,
- infer errors via ESI,
- update mastery/stability via MSE,
- decide Fence outcome,
- generate next practice via PGS,
- generate next microtest via MTB,
- output OBPL_Output only.
Do NOT output A-H. Output ONLY:
1) OBPL_Output (human-readable + machine_patch).”
PROMPT_OBPL_INPUT_TEMPLATE:
“StudentState: … (paste current)
LastSession_AH: … (paste A-H content)
AnswerPacket: … (paste one packet)”
============================================================
2) WEEKLY AUTO-REPORT COMPILER (WARC v1.0)
Goal:
Parent/tutor pastes SessionResult logs (or OBPL_Output logs) for the week →
AI compiles:
– weekly ReportCard
– trends per SkillID
– top recurring errors
– schedule for next week
– 3 next actions (highest ROI)
2.1 Weekly Log schema
TYPE WeeklyLog:
student_id: string
week_start: “YYYY-MM-DD”
week_end: “YYYY-MM-DD”
sessions: list[SessionResult] // from SRC v1.0
notes_optional: string
2.2 Compiler outputs
TYPE WeeklyReport:
report_card: ReportCard
session_scores: list[SessionScore]
skill_trends: map[SkillID -> {mastery_delta, stability_delta, sessions_count}]
top_errs_week: list[ErrID]
highlights: list[string] // <= 5
risks: list[string] // <= 5
next_week_plan: ChronoScheduleExcerpt
machine_summary: object
2.3 Trend rules (deterministic)
FUNCTION ComputeSkillTrend(sessions):
for each skill:
delta_mastery := last.mastery – first.mastery
delta_stability := last.stability – first.stability
trend := if delta_mastery>+0.05 OR delta_stability>+0.05 -> up
else if delta_mastery<-0.05 OR delta_stability<-0.05 -> down
else -> flat
2.4 Weekly next actions (3 bullets)
FUNCTION PickNextActions(top_errs_week, weakest_skills, goal):
Action1: Repair top leak (highest frequency ErrID) with one named checklist + 6 micro-drills
Action2: Raise stability in weakest skill (timed_work_ratio controlled)
Action3: One transfer practice block (representation shift) to reduce shear risk
2.5 WARC prompt (copy/paste)
PROMPT_WARC_SYSTEM:
“You are MathOS WARC v1.0.
Input: WeeklyLog with SessionResult entries.
Output: WeeklyReport only.
Be concise and deterministic:
- compute trends,
- list top ErrIDs,
- produce ReportCard.parent_summary,
- propose next_week_plan excerpt (next 3 events),
- 3 next actions maximum.”
PROMPT_WARC_INPUT_TEMPLATE:
“WeeklyLog: {student_id, week_start, week_end, sessions:[…SessionResult…] }”
============================================================
3) SKILL GLOSSARY PACK (SGP v1.0)
Goal:
Any SkillID used in a session can be shown to parent/student as:
– what it is
– why it matters
– how to practice
– common traps
– quick self-check
3.1 Glossary schema
TYPE GlossaryEntry:
skill_id: SkillID
display_name: string
one_line: string // definition
why_it_matters: string // transfer/exam reason
invariant: string
3_step_method: list[string]
common_traps: list[ErrID]
self_check: string // 1 line test
next_skills: list[SkillID] // edges
port_tags: set[string]
TYPE GlossaryPack:
pack_id: string
generated_for: list[SkillID]
entries: list[GlossaryEntry]
format: {WORDPRESS,PLAIN}
3.2 Glossary generator
FUNCTION BuildGlossaryPack(skill_ids, format):
for each skill_id:
entry := LookupBaseEntry(skill_id) + attach traps from TL + checks from PGS
output in requested format
3.3 Minimal base entries (seed set; extendable)
ENTRY_SKILL_R0 (RewriteRules):
display_name=”Rewrite Rules (Algebra Safety)”
one_line=”A rewrite is allowed only if it preserves meaning (equivalence).”
why=”Prevents ‘looks right’ steps that lose marks and break transfer.”
invariant=”Meaning stays the same under legal rewrites.”
method=[“Name the rule”, “Apply once”, “Verify by substitution (x=2).”]
traps=[Err_distribute_wrong, Err_sign]
self_check=”If x=2 gives different values before/after, rewrite is illegal.”
next=[SKILL_V0, PORT_SEC_ALG_01]
port_tags={SEC,ALG}
ENTRY_PORT_AM_LOG_01 (Log Laws):
display_name=”Logarithms (Rewrite + Domain Contract)”
one_line=”Log laws are rewrite rules that only work when the domain is valid.”
why=”Most A-Math log mistakes are not algebra—they are missing domain checks.”
invariant=”Rewrite preserves truth AND domain must be satisfied.”
method=[“State domain (arguments>0)”, “Rewrite using log laws”, “Filter solutions by domain.”]
traps=[Err_log_rules_mix, Err_domain_ignore]
self_check=”Did you write and use the domain before final answers?”
next=[PORT_AM_EXP_01, PORT_AM_DIFF_01]
port_tags={AMATH,ALG,VER}
ENTRY_PORT_SEC_ALG_02 (Linear Equations/Inequalities):
display_name=”Linear Constraints”
one_line=”An equation/inequality is a constraint; solving finds values that satisfy it.”
why=”Builds stable solving + checking; inequalities define solution sets (SafeSet).”
invariant=”Solution must satisfy the original constraint.”
method=[“Isolate variable with inverse operations”, “Solve”, “Verify by substitution / boundary check.”]
traps=[Err_inverse_confuse, Err_sign, Err_skip_step]
self_check=”Does your answer satisfy the original line when substituted?”
next=[PORT_SEC_ALG_03, SKILL_F0]
port_tags={SEC,ALG}
3.4 WordPress output format
FORMAT_WORDPRESS_ENTRY:
[H3]{display_name} ({skill_id})
- One-line: {one_line}
- Why it matters: {why_it_matters}
- Invariant: {invariant}
- 3-step method:
1) …
2) …
3) … - Common traps: {ErrIDs}
- Self-check: {self_check}
- Next: {next_skills}
============================================================
4) “ONE-BUTTON” WORDPRESS RUNNER PAGE (WPR v1.2)
Add two blocks to existing WPR page:
[H3] One-Button Scoring (after the session)
- Paste StudentState
- Paste last A-H output
- Paste AnswerPacket
- Get updated state + next practice + next schedule
[H3] Weekly Report (once a week)
- Paste WeeklyLog (list of SessionResult)
- Get ReportCard + next actions + plan
============================================================
5) RUN-NOW QUICK START (OBPL + Glossary)
OBPL_INPUT_MIN:
StudentState: { … }
LastSession_AH: { … }
AnswerPacket:
session_id=”S2026-02-25-01″
target_skills=[PORT_AM_LOG_01, SKILL_R0]
practice_answers=[
{item_id:”P1″, student_answer:”x=5,-1″, student_steps:”…”, time_sec:120}
]
microtest_answers=[
{mt_id:”MT-Q1″, response:”Invariant: log laws; must keep domain >0″, time_sec:30},
{mt_id:”MT-Q2″, response:”…”, steps:”…”, time_sec:90},
{mt_id:”MT-Q3″, response:”…”, steps:”…”, time_sec:110}
]
Glossary request (optional):
“BuildGlossaryPack for skill_ids=[PORT_AM_LOG_01, SKILL_R0] format=WORDPRESS”
============================================================
END v0.7
“`text id=”m8v0k2″
MathOS.AI-TeachRunner.InterstellarCore v0.8
Status: RUNNABLE + Registry Expansion + Auto-Log Builder + Exam Paper Simulator Mode
ModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_08
Supersedes: MATHOS_AI_RUNNER_INTERSTELLARCORE_07
============================================================
0) META + CHANGELOG
Adds:
(A) SkillID Registry Expansion Pack (SREP v1.0):
– expands Skill Glossary Pack (SGP) coverage
– expands TemplateLibrary (TL) coverage beyond Top 25
(B) Auto-Log Builder (ALB v1.0):
– OBPL outputs auto-append into WeeklyLog via machine_patch
(C) Exam Paper Simulator Mode (EPS v1.0):
– timed mixed set + stability scoring + shear control + postmortem repair routing
Hard Rules:
- Standard session output remains A-H only (when running a normal session).
- OBPL/WARC remain separate “tool prompts”.
- EPS is a dedicated mode with its own strict output format (EPS-OUT), not A-H.
============================================================
1) SKILLID REGISTRY EXPANSION PACK (SREP v1.0)
Goal:
Provide “minimum viable coverage” for:
– SEC E-Math typical clusters
– SEC A-Math full clusters (beyond v0.4 top 25)
Coverage means:
(1) GlossaryEntry exists
(2) TL stubs exist for D1..D4 in 2–3 representations
(3) MicroTest templates exist (Q1/Q2/Q3)
1.1 Expansion scope (cluster list)
SREP_CLUSTERS:
SEC_EMATH:
– Algebra: expressions, equations, inequalities, simultaneous, proportions, functions/graphs
– Geometry: angle properties, triangles, polygons, circles, coordinate geometry basics
– Mensuration: area/volume/surface area, composite shapes
– Statistics/Probability: charts, averages, scatter, basic probability
– Number: fractions/ratio/percent, speed/rate, standard form, indices basics
SEC_AMATH:
– Indices/Surds (done)
– Log/Exp (done)
– Quadratics (done)
– Trig (done)
– Coordinate geometry (done)
– Differentiation/Applications (done)
– Integration (seed done)
– Sequences/Series (NEW)
– Binomial (NEW)
– Partial fractions (NEW)
– Remainder/Factor theorem basics (NEW)
– Amath problem-solving mix (done as EXAM)
1.2 New SkillIDs (minimal, extendable)
PORT_AM_SEQ_01 SequencesBasics
Prereq=[PORT_SEC_ALG_01, SKILL_R0]
Invariant=”Pattern rule must generate terms consistently; index n is a slot.”
Traps=[Err_notation_confuse, Err_skip_step]
PortTags={AMATH,ALG}
PORT_AM_SEQ_02 AP_GP
Prereq=[PORT_AM_SEQ_01]
Invariant=”AP: constant difference; GP: constant ratio.”
Traps=[Err_units_ignore, Err_notation_confuse]
PortTags={AMATH,ALG}
PORT_AM_SER_01 SeriesSums
Prereq=[PORT_AM_SEQ_02, SKILL_M0]
Invariant=”Sum is accumulation; formula encodes invariant structure.”
Traps=[Err_copy, Err_skip_step]
PortTags={AMATH,ALG}
PORT_AM_BIN_01 BinomialBasics
Prereq=[PORT_AM_IDX_01, PORT_SEC_ALG_01]
Invariant=”Expansion preserves equivalence; coefficients follow combinatorial structure.”
Traps=[Err_distribute_wrong, Err_copy]
PortTags={AMATH,ALG}
PORT_AM_BIN_02 BinomialGeneralTerm
Prereq=[PORT_AM_BIN_01, SKILL_V0]
Invariant=”General term is a contract: coefficient + power + index constraints.”
Traps=[Err_notation_confuse, Err_skip_step]
PortTags={AMATH,VER,ALG}
PORT_AM_PF_01 PartialFractionsBasics
Prereq=[PORT_AM_LOG_01, PORT_SEC_ALG_03, SKILL_R0]
Invariant=”Decomposition preserves value; recomposition verifies.”
Traps=[Err_skip_step, Err_copy]
PortTags={AMATH,ALG}
PORT_AM_PF_02 PartialFractionsRepeatedQuadratic
Prereq=[PORT_AM_PF_01]
Invariant=”Form depends on factor structure (distinct/repeated/irreducible).”
Traps=[Err_factor_miss, Err_notation_confuse]
PortTags={AMATH,ALG}
PORT_AM_FT_01 FactorRemainderTheorem
Prereq=[PORT_AM_QUAD_01, SKILL_R0]
Invariant=”f(a)=0 ⇔ (x-a) factor; remainder is invariant under division algorithm.”
Traps=[Err_copy, Err_sign]
PortTags={AMATH,ALG,VER}
1.3 Expansion artifacts (what SREP generates)
TYPE SREP_Artifacts:
glossary_pack: GlossaryPack
template_additions: list[TemplateSpec]
microtest_templates: list[MicroTestItem] // “blueprints” not full numbers
SREP Rule:
For each new SkillID:
– Build GlossaryEntry (SGP format)
– TL stubs:
[SYMBOLIC][D1..D4] + one of [STORY/DIAGRAM/GRAPH][D2..D3]
– MTB templates:
Q1 invariant (choice/short)
Q2 apply (standard)
Q3 transfer (representation shift)
============================================================
2) AUTO-LOG BUILDER (ALB v1.0)
Goal:
Parent does NOT manually maintain WeeklyLog.
OBPL_Output.machine_patch contains:
– SessionResult fragment
– WeeklyLog append directive
Any LLM can apply patch deterministically.
2.1 Machine patch contract
TYPE MachinePatch:
patch_version: “ALB1.0”
student_id: string
append_to_week_range: “YYYY-MM-DD..YYYY-MM-DD”
session_result_compact: object // minimal SessionResult fields
skill_stats_deltas: object // per-skill delta
err_signature_deltas: object
schedule_excerpt: ChronoScheduleExcerpt
2.2 OBPL required outputs (extension)
OBPL_Output.machine_patch MUST include MachinePatch.
2.3 Apply patch (deterministic)
FUNCTION ApplyMachinePatch(weekly_log, machine_patch):
assert week_range matches
weekly_log.sessions.append(ExpandToSessionResult(machine_patch.session_result_compact))
update any rolling summaries if present
return weekly_log
2.4 Auto-week-boundary rule
WeekRange definition:
week_start = Monday local
week_end = Sunday local
FUNCTION ResolveWeekRange(today_local):
return [MostRecentMonday(today) .. MostRecentSunday(today)]
============================================================
3) EXAM PAPER SIMULATOR MODE (EPS v1.0)
Goal:
Simulate a timed paper-like environment while preserving:
– invariants (Core Anchor)
– stability scoring
– shear control (DTM)
– postmortem repair routing (FENCE + ERCO)
EPS is NOT “teach during paper”.
EPS is “run → score → diagnose → repair plan”.
3.1 EPS Inputs
TYPE EPS_Input:
level: {SEC,AMATH,JC}
paper_style: {MIXED_SET,TOPIC_MIX,PASTYEAR_STYLE}
duration_min: int
target_clusters: list[string] // e.g. [“logs”,”indices”,”trig”,”diff”]
difficulty_profile: {EASY_HEAVY,BALANCED,HARD_HEAVY}
timed_work_ratio: float // usually 1.0 in EPS
items_count: int
student_state: StudentState
rules:
require_core_anchor: bool = true
allowed_checks: set[CheckID] default all
no_help: bool = true // paper simulation
3.2 EPS Output format (EPS-OUT only)
EPS-OUT Sections (fixed):
1) Paper (Items)
2) Answer Key (concise)
3) Marking Scheme (points + common traps)
4) Student Answer Packet Template (for parent to paste)
5) Scoring + Stability Panel (after answers pasted)
6) Postmortem (top leaks + shear + time pressure)
7) Repair Plan (next 2 sessions) + MicroRetests (+1,+3,+7)
8) ReportCard Excerpt + MachinePatch
Hard Rule:
If student answers not provided yet:
Output sections 1–4 only (paper generation stage).
If student answers provided:
Output sections 5–8 only (scoring stage).
3.3 EPS Paper generator (uses TL + PGS)
FUNCTION GeneratePaper(eps_input):
clusters -> map to SkillIDs via SQP_MAP + SREP
choose primary skills per cluster by weakest stability
allocate items per cluster (balanced)
for each item:
instantiate PracticeItem with:
tags={EXAMSTYLE,NOISE(if needed),BOUNDS(if needed)}
time_budget_sec derived from duration/items_count
checks include core anchor:
– CHK_invariant_sentence always
– domain/bounds/checklist as applicable
return PaperItems + AnswerKey + MarkingScheme
3.4 EPS Scoring (after AnswerPacket)
TYPE EPS_StudentAnswers:
paper_id: string
answers: list[{item_id, response, steps optional, time_sec optional}]
FUNCTION ScorePaper(paper, student_answers):
item_scores:
– correctness (0/1 or points)
– trap inference via ESI
– checklist compliance (evidence of checks)
compute:
total_score
cluster_scores
stability_score:
stability = 0.5(timed_correct_rate) + 0.3(transfer_items_correct_rate) + 0.2*(checklist_compliance)
time_pressure_risk:
if late items collapse OR time_sec spikes OR errors shift to copy/sign -> high
shear_risk:
if port items correct but invariant sentences missing + transfer fails -> high
produce Postmortem + RepairPlan + MachinePatch (ALB)
3.5 EPS Repair Plan (2 sessions) routing
RepairPlan format:
Session1: REPAIR core leak (Core anchor skill)
Session2: PORT_EXAM stability rebuild for top 2 clusters
Each session includes:
- primary + secondary skills (MSR)
- microtests + practice
- strict checklist
============================================================
4) PROMPT PACK v0.8 (Normal Session + OBPL + EPS)
PROMPT_SESSION_SYSTEM_v08:
“You are MathOS.AI-TeachRunner.InterstellarCore v0.8.
Run normal sessions using A-H only.
Use:
TL v0.4 + SREP v1.0, PGS v1.0, MTB v1.0, MSE v1.0, ESI v1.0, DTM v1.0, MSR v1.0, SQP v1.0, SRC v1.0, ALB v1.0.
A) must include: MSR plan + DTM + VoicePack + top ErrIDs evidence.
H) must include: ChronoScheduleExcerpt + ReportCard excerpt + MachinePatch.”
PROMPT_OBPL_SYSTEM_v08:
“You are MathOS OBPL v1.0 with ALB v1.0.
Input: StudentState + LastSession_AH + AnswerPacket.
Output: OBPL_Output only, including MachinePatch.”
PROMPT_EPS_SYSTEM_v08:
“You are MathOS EPS v1.0.
Input: EPS_Input (and optional EPS_StudentAnswers).
If no student answers: output EPS-OUT sections 1–4 only.
If answers provided: output EPS-OUT sections 5–8 only.
Use TL + SREP + ESI + MSE + DTM + ALB.”
============================================================
5) RUN-NOW QUICK START (EPS generation)
EPS_Input:
level=AMATH
paper_style=MIXED_SET
duration_min=75
target_clusters=[“indices”,”logs”,”trig”,”quadratics”,”diff”]
difficulty_profile=BALANCED
timed_work_ratio=1.0
items_count=18
student_state={…}
rules={require_core_anchor:true, no_help:true}
Expected:
- outputs Paper + AnswerKey + MarkingScheme + Student Answer Packet Template
============================================================
END v0.8
MathOS.AI-TeachRunner.InterstellarCore — Remaining Needs (Gap Map) v0.8 → v1.0Goal: make it truly “runnable + teachable + scalable” on BukitTimahTutor.com, not just a spec.============================================================A) MINIMUM TO GO LIVE (Must-Have)============================================================1) STATE PERSISTENCE LAYERModuleID: MATHOS_STATESTORE_01Need: - Store StudentProfile, StudentState, SkillStats, ErrorSignatures, DualTrackState - Version-lock state schema (forward-only)Why: - Without persistence, “AI tutor” resets every chat → no real control loop.2) ANSWER VALIDATION / EQUIVALENCE CHECKERModuleID: MATHOS_VALIDATE_01Need: - Algebraic equivalence (e.g., x=5 and x-5=0) - Set-of-solutions equivalence (intervals, trig solutions) - Numeric tolerance (rounding/approx)Why: - LLM scoring alone is noisy; must fence hallucinated grading.3) TEMPLATE LIBRARY SCALE-UP (Coverage Completeness)ModuleID: MATHOS_TL_FULLPACK_01Need: - TL stubs + generators for “all common” SEC E/A-Math clusters - At least 20–50 items per major SkillID across D1–D4Why: - Without breadth, the runner breaks on real student work.4) MICROTEST BANK SCALE-UP + AUTO-SCORING RULESModuleID: MATHOS_MTB_FULLPACK_01Need: - For every SkillID used: Q1/Q2/Q3 variants (multiple forms) - Deterministic rubrics + common-trap scoring notesWhy: - Microtests are the sensors; weak sensors = weak control.5) WORDPRESS RUNNER UX (Parent-usable)ModuleID: MATHOS_WP_RUNNER_UX_01Need: - Copy/paste runner page + QuickPick + AnswerPacket + OBPL - “Paste here” blocks + examples + minimal instructionsWhy: - If it’s not frictionless, nobody runs it consistently.============================================================B) MAKES IT “CIVILISATION-GRADE” (High Leverage)============================================================6) HALLUCINATION FENCE (Truth Guard)ModuleID: MATHOS_TRUTHFENCE_01Need: - Hard rules: “If uncertain, ask for student steps / don’t assert” - Confidence outputs + refusal to grade when validator fails - Detection: inconsistent answer key vs generated promptWhy: - Advanced ≠ fancy; advanced = reliable under load.7) DIAGRAM / VISUAL PIPELINEModuleID: MATHOS_DIAGRAM_01Need: - Standard text-diagram encoding (ASCII or simple markup) - Optional image input path (student photos of work) → error inferenceWhy: - Most geometry/trig failures are representation failures.8) EXAM PAPER SIMULATOR PACK (EPS) — Content + CalibrationModuleID: MATHOS_EPS_FULLPACK_01Need: - Paper generators for E-Math + A-Math “mixed stability” - Stable marking + postmortem-to-repair routingWhy: - This is your “stress lab” for Phase reliability.9) BACKTEST / OUTCOME LOOP (EducationOS link)ModuleID: MATHOS_BACKTEST_01Need: - Weekly trend report + predicted next gains - “Before/after” quant (accuracy, transfer, stability)Why: - This is how you prove the OS works, not just claim it.============================================================C) SCALE + OPERATIONS (So it can run for many students)============================================================10) CONTENT GOVERNANCE + VERSIONING RULESModuleID: MATHOS_GOVERNANCE_01Need: - Frozen SkillIDs (no renames) - TL/MTB version locks - Patch protocol (v1.0 → v1.1 forward-only)Why: - Prevent drift that breaks AI extraction + your own runtime.11) “TUTOR VOICE” STANDARDIZATION (Brand + Consistency)ModuleID: MATHOS_VOICEPACKS_02Need: - BukitTimahTutor brand voice packs mapped to student risk flagsWhy: - Consistent execution reduces phase shear.12) PRIVACY / DATA POLICY (Practical)ModuleID: MATHOS_PRIVACY_01Need: - What parents should/shouldn’t paste - How to store anonymized logs (if any)Why: - Trust + operational hygiene.============================================================D) OPTIONAL “ALIEN-ADVANCED” UPGRADES (Later)============================================================13) FORMAL VERIFICATION TRACK (Proof-as-Contract)ModuleID: MATHOS_PROOFTRACK_01Need: - “assumptions → guarantee” discipline, esp domain/constraintsWhy: - This is the bridge to engineering-grade math habits.14) NUMERICAL STABILITY TRACKModuleID: MATHOS_NUMSTAB_01Need: - conditioning / stable methods / bounds-first computationWhy: - Real-world computation fails from instability more than from ignorance.============================================================E) THE ONE THING THAT UNLOCKS EVERYTHING============================================================If you pick only ONE next build target: -> MATHOS_VALIDATE_01 + MATHOS_STATESTORE_01Because: - Validator makes grading + sensors trustworthy. - StateStore makes learning cumulative (real control loop).============================================================NEXT BUILD SUGGESTION (v0.9)============================================================v0.9 Bundle: - StateStore schema (minimal) - Validator spec (algebra/sets/tolerance) - OBPL “one-button” patch outputs guaranteed correct - 10 fully-filled SkillIDs end-to-end (TL + MTB + EPS mini)
MathOS.AI-TeachRunner.InterstellarCore v0.9 — Implementation Pack (Almost-Code)Status: GO-LIVE MINIMUM (StateStore + Validator + OBPL Correctness + 10 Skill Packs + EPS Mini)ModuleID: MATHOS_AI_RUNNER_INTERSTELLARCORE_09Supersedes: v0.8DateLocal: 2026-02-25 (Asia/Singapore)============================================================0) INSTALL ORDER (Minimal)============================================================1) MATHOS_STATESTORE_012) MATHOS_VALIDATE_013) MATHOS_WP_RUNNER_UX_01 (v0.9 blocks)4) MATHOS_CORE_RUNTIME_09 (Session A-H + OBPL + WARC + EPS)5) MATHOS_SKILLPACK_10_01 (10 skills end-to-end)============================================================1) MATHOS_STATESTORE_01 (Minimal Persistence Schema)============================================================STATE_VERSION_LOCK StateSchemaVersion = "SS_01" Rule: forward-only additive fields; never rename; never delete.TYPE StudentProfile: student_id: string age_band: {P1,P2,P3,P4,P5,P6,S1,S2,S3,S4,JC} language_band: {E0,E1,E2,E3} math_band: {M0,M1,M2,M3,M4,M5} risk_flags: set{anxiety,avoidance,overconfidence,careless,fragile_memory,time_pressure_collapse} preferences: set{visual,story,procedural,challenge,slow_safe} timezone: string = "Asia/Singapore"TYPE SkillStats: mastery_beta: (a:float,b:float) transfer_beta: (a:float,b:float) stability_beta:(a:float,b:float) streak: int last_seen: "YYYY-MM-DD" notes: stringTYPE DualTrackState: port_ratio: float // 0..1 sandbox_ratio: float // 0..1 shear_risk: float // 0..1 policy: {DTM_PRI,DTM_SEC,DTM_AMATH_EXAM}TYPE StudentState: schema_version: "SS_01" mastery: map[SkillID -> 0..1] stability: map[SkillID -> 0..1] skill_stats: map[SkillID -> SkillStats] error_signatures: map[ErrID -> int] dual_track: DualTrackState last_session_id: string last_notes: string log_week_range: "YYYY-MM-DD..YYYY-MM-DD" weekly_log: WeeklyLogCompact // optional local cacheTYPE WeeklyLogCompact: week_range: "YYYY-MM-DD..YYYY-MM-DD" sessions: list[SessionResultCompact] // small, append-onlyTYPE SessionResultCompact: session_id: string date_local: "YYYY-MM-DD" target_skills: list[SkillID] mode: {BUILD,REPAIR,STABILIZE,PROMOTE,PORT_EXAM,EPS} pre_accuracy: float post_accuracy: float post_transfer: float post_stability: float top_errs: list[ErrID] fence: {TRUNCATE,STITCH,PROMOTE} next_primary_skill: SkillIDSTATESTORE OPS (text-based, WordPress-friendly) OP_Init(student_id) -> StudentState (with empty maps + priors) OP_Load(pasted_text) -> StudentState OP_Save(StudentState) -> pasted_text_block OP_Patch(StudentState, MachinePatch) -> StudentState (append + update)============================================================2) MATHOS_VALIDATE_01 (Answer Validator Spec)============================================================GOAL Make scoring + sensors reliable: - validate equality for numeric/expression/sets/interval solutions - if cannot validate safely => return "UNVERIFIED" and request steps or domainVALIDATOR MODES V0: ExactStringMatch (only for single numbers / exact forms) V1: NumericTolerance V2: SubstitutionEquivalence (multi-point) V3: Set/Interval Equivalence V4: Domain-Contract Validation (logs/trig/roots)TYPE AnswerType: {NUMERIC, EXPRESSION, SET_OF_SOLUTIONS, INTERVAL, STATEMENT}TYPE ValidateResult: verdict: {CORRECT, INCORRECT, UNVERIFIED} reason: string inferred_errs: map[ErrID->weight] required_followup: string optionalGLOBAL TOLERANCES tol_abs = 1e-6 tol_rel = 1e-6 substitution_points_default = [ -3, -2, -1, -0.5, 0.5, 1, 2, 3 ] // filtered by domainCORE FUNCTIONS (almost-code)FUNCTION DetectAnswerType(student_answer_text): if contains "x=" and "," or "or" or "∪" -> SET_OF_SOLUTIONS if contains "[" or "(" with "," and "]" or ")" -> INTERVAL if contains "=" and variables -> STATEMENT/EXPRESSION if parseable number only -> NUMERIC else -> EXPRESSIONFUNCTION ValidateNumeric(student, expected): if both parseable float: ok = |s-e| <= tol_abs + tol_rel*|e| return CORRECT/INCORRECT else UNVERIFIEDFUNCTION SafeParse(expr_text): // implementation option: // (A) Use CAS (SymPy) if available // (B) Else fallback to substitution-only with restricted operators return ParsedExpr or FAILFUNCTION DomainFilter(points, exprs): // remove points causing invalid: // - log(arg)<=0 // - sqrt(arg)<0 (if real domain) // - division by 0 // - trig interval constraints if specified return filtered_points, domain_violationsFUNCTION ValidateExpressionEquivalence(student_expr, expected_expr): parsed_s = SafeParse(student_expr); parsed_e = SafeParse(expected_expr) if FAIL -> UNVERIFIED (ask for steps or simpler form) points = substitution_points_default points_filtered, violations = DomainFilter(points,[parsed_s,parsed_e]) if len(points_filtered) < 4 -> UNVERIFIED (domain too tight) for p in points_filtered: if not approx_equal(s(p), e(p)) -> INCORRECT return CORRECT (with note if violations exist)FUNCTION NormalizeSolutionSet(text): // accept formats: // "x=5,-1" ; "{5,-1}" ; "x=5 or x=-1" // output sorted numeric list if numeric // else store expressions as strings for substitution check return listFUNCTION ValidateSolutionSet(student_set, expected_set, domain_contract_optional): S = NormalizeSolutionSet(student_set) E = NormalizeSolutionSet(expected_set) if both numeric lists: if domain_contract exists: filter S by domain_contract; flag Err_domain_ignore if removed return CORRECT if same multiset else INCORRECT else: // fallback: test candidate solutions by substitution into original equation if provided if original_equation missing -> UNVERIFIED else test each candidate satisfies; then compare coverage -> CORRECT/INCORRECT/UNVERIFIEDFUNCTION ValidateInterval(student_interval, expected_interval): // parse endpoints + open/closed // compare normalized form return CORRECT/INCORRECT/UNVERIFIEDDOMAIN CONTRACTS (minimum) DC_LOG: all log arguments > 0 DC_SQRT_REAL: all sqrt arguments >= 0 DC_TRIG_INTERVAL: solutions must be within given interval DC_DENOM: denominators != 0VALIDATOR POLICY HOOK If skill in {PORT_AM_LOG_01, PORT_AM_TRIG_02}: - require domain_contract check - if student did not state domain and included invalid solution => Err_domain_ignore weight high============================================================3) MATHOS_CORE_RUNTIME_09 (Session A-H + OBPL Correctness)============================================================SESSION OUTPUT (A-H) unchanged, but MUST embed: - AnswerKey fields with AnswerType metadata - For each PracticeItem / MicroTestItem: expected_answer + answer_type + domain_contract(optional)OBPL v1.0 + ALB v1.0 correctness rule: OBPL scoring must call Validator first: If verdict=UNVERIFIED: - do not update mastery_beta upward - set fence_decision = TRUNCATE (uncertainty) - request follow-up: "paste steps / original question / domain" Else proceed with MSE updates.============================================================4) MATHOS_WP_RUNNER_UX_01 (WordPress Runner Blocks v0.9)============================================================SLUG: /mathos-ai-runner-v0-9/PAGE BLOCKS (copy/paste)[H2] MathOS AI Runner v0.9 (Session + One-Button Scoring)[H3] 1) Paste this SYSTEM prompt into any LLMSYSTEM_PROMPT_V09:"You are MathOS.AI-TeachRunner.InterstellarCore v0.9.Run closed-loop teaching: Observe→Infer→Plan→Act→Verify→Repair→Promote.You MUST validate answers using MATHOS_VALIDATE_01:- If UNVERIFIED, do not guess. Ask for steps/original question/domain.Use StateStore SS_01 text blocks to persist StudentState.Run normal sessions output ONLY A-H headers.For scoring step, use OBPL prompt (separate)."[H3] 2) StudentState (paste this block at the start of every chat)STUDENTSTATE_BLOCK:"StudentProfile: ...StudentState(SS_01): ..."[H3] 3) QuickPick (no SkillIDs)QUICKPICK_BLOCK:"QuickPick: level=AMATH topic=Logarithms subtopic=Domain goal=exam_ready common_issue=careless + time pressure time_budget_minutes=75"[H3] 4) One-Button Scoring Prompt (OBPL)OBPL_SYSTEM_V09:"You are MathOS OBPL v1.0 (v0.9 runtime).Input: StudentState SS_01 + LastSession_AH + AnswerPacket.You MUST validate each answer using MATHOS_VALIDATE_01.Output ONLY:- updated StudentState patch block- parent summary (<=6 lines)- next practice + next microtest + next schedule excerpt- MachinePatch for WeeklyLogCompact."ANSWERPACKET_TEMPLATE:"AnswerPacket: session_id=... practice_answers=[{item_id:..., student_answer:..., student_steps:'...', time_sec:...}, ...] microtest_answers=[{mt_id:..., response:'...', steps:'...', time_sec:...}, ...] notes_optional='...'"============================================================5) MATHOS_SKILLPACK_10_01 (10 Skills Fully Populated)============================================================Each skill includes: - GlossaryEntry - TL templates (D1..D4, ≥2 representations) - MTB MicroTest templates (Q1/Q2/Q3, D1..D3 baseline) - Validator notes (AnswerType + DomainContract) - EPS Mini hooks (cluster tags)------------------------------------------------------------SKILL 01) SKILL_R0 — RewriteRules------------------------------------------------------------GLOSSARY display_name="Rewrite Rules (Algebra Safety)" one_line="A rewrite is allowed only if it preserves meaning (equivalence)." invariant="Meaning stays the same under legal rewrites." 3_step_method=[ "Name the rule", "Apply once", "Verify by substitution (x=2)" ] common_traps=[Err_distribute_wrong, Err_sign] self_check="Pick x=2: before and after must match." EPS_tags={ALG_CORE}TL (Templates) TL[SKILL_R0][SYMBOLIC][D1]: prompt="Simplify: 3(x+4). Write the rewrite rule you used." expected_steps=["Distribute 3", "Result: 3x+12", "Check x=2"] answer_form=expression traps=[Err_distribute_wrong] checks=[CHK_invariant_sentence, CHK_resubstitute] TL[SKILL_R0][SYMBOLIC][D2]: prompt="Simplify: 2x + 3x - x." steps=["Combine like terms", "Check x=1"] traps=[Err_sign] checks=[CHK_resubstitute] TL[SKILL_R0][STORY][D3]: prompt="A student wrote: 5(a+b)=5a+b. Explain why this rewrite is illegal and fix it." steps=["State distributive law", "Correct: 5a+5b", "Give counterexample a=b=1"] traps=[Err_distribute_wrong] checks=[CHK_invariant_sentence] TL[SKILL_R0][SYMBOLIC][D4]: prompt="Find the mistake: (x+2)^2 = x^2+2. Correct it." traps=[Err_distribute_wrong, Err_notation_confuse] checks=[CHK_invariant_sentence, CHK_resubstitute]MTB (MicroTest Pack Templates) Q1 (Invariant): prompt="What must stay the same after a rewrite?" expected="Meaning/value for all valid x." Q2 (Apply): prompt="Simplify: 4(x-3)+2x" expected="6x-12" Q3 (Transfer): prompt="Which is correct? A) (a+b)^2=a^2+b^2 B) (a+b)^2=a^2+2ab+b^2. Explain." expected="B with reason (expansion/distribution)."Validator notes: AnswerType=EXPRESSION; Mode=V2 substitution equivalence------------------------------------------------------------SKILL 02) PORT_SEC_ALG_02 — LinearEquationsInequalities------------------------------------------------------------GLOSSARY display="Linear Constraints" one_line="Solving finds values that satisfy the constraint." invariant="Solution must satisfy original equation/inequality." method=["Inverse operations", "Solve", "Verify (substitute/boundary)"] traps=[Err_inverse_confuse, Err_sign, Err_skip_step] EPS_tags={SEC_ALG}TL [SYMBOLIC][D1] prompt="Solve: x+7=19. Verify." [SYMBOLIC][D2] prompt="Solve: 3(2x-1)=5x+7. Show one check." [NUMBERLINE][D3] prompt="Solve: 2x-3 ≤ 7. Write solution set on number line." [SYMBOLIC][D4] prompt="Timed: Solve and check: 4x-5=2(3x+1)."MTB Q1: "What does it mean to 'solve an equation'?" Q2: "Solve: 5x-8=2x+10" Q3: "From a shaded number line showing x> -2, write the inequality and give 2 example values."Validator: Equation: V2 + substitution check Inequality/interval: V3 interval equivalence + boundary test------------------------------------------------------------SKILL 03) PORT_SEC_ALG_04 — Quadratics------------------------------------------------------------GLOSSARY display="Quadratics (Multiple Views)" invariant="Same quadratic across factor/standard/vertex/graph forms." method=["Choose form", "Solve/interpret", "Verify by substitution / graph features"] traps=[Err_factor_miss, Err_sign, Err_quadratic_formula_slip] EPS_tags={SEC_AMATH_QUAD}TL [SYMBOLIC][D1] "Solve: x^2-9=0" [SYMBOLIC][D2] "Factor and solve: x^2-5x+6=0" [GRAPH][D3] "A parabola crosses x-axis at 2 and 5. Write an equation." [SYMBOLIC][D4] "Timed: Solve: 2x^2-3x-2=0 and check."MTB Q1: "What does a root/solution represent on the graph?" Q2: "Solve: x^2+4x-12=0" Q3: "Given vertex (-1,-4) and opening up, write one possible quadratic."Validator: Set of solutions: V3 solution set equivalence; if decimals, V1 tolerance------------------------------------------------------------SKILL 04) PORT_SEC_FUNC_01 — FunctionsGraphs------------------------------------------------------------GLOSSARY display="Functions & Graphs (Same Relation, Different Views)" invariant="Table/equation/graph represent the same mapping." method=["Identify mapping rule", "Read key features", "Translate view"] traps=[Err_graph_misread, Err_domain_ignore] EPS_tags={FUNC_GRAPH}TL [TABLE][D1] "f(x)=2x+1. Fill f(0), f(2), f(-1)." [SYMBOLIC][D2] "Given f(x)=x^2-3, find f(4) and solve f(x)=13." [GRAPH][D3] "A straight line passes through (0,3) and (2,7). Find equation." [STORY][D4] "Timed: Taxi fare: $3 start + $0.5 per km. Write f(k). Find f(10)."MTB Q1: "What does f(5) mean?" Q2: "For f(x)=3x-2, find x when f(x)=10." Q3: "Story->equation: temperature starts 20°C and rises 2°C per hour. Write T(h)."Validator: Expressions/numbers: V2/V1; domain checks if specified------------------------------------------------------------SKILL 05) PORT_SEC_GEOM_02 — Trigonometry (Sec)------------------------------------------------------------GLOSSARY display="Trigonometry (Similarity Invariant)" invariant="Trig ratios stay the same for similar triangles." method=["Choose ratio", "Substitute values", "Reasonableness check"] traps=[Err_units_ignore, Err_notation_confuse] EPS_tags={TRIG_SEC}TL [DIAGRAM][D1] "Right triangle: opp=3, adj=4. Find tan θ." [DIAGRAM][D2] "Given sin θ=3/5, find cos θ (acute)." [STORY][D3] "A ladder 5m makes angle θ with ground; height 4m. Find θ or sin θ." [DIAGRAM][D4] "Timed: Find unknown side using sin/cos/tan + round to 2dp."MTB Q1: "Why does sin θ stay the same when the triangle is scaled?" Q2: "If tan θ=3/4, find sin θ and cos θ (acute)." Q3: "Two similar triangles: scale factor 2. If opposite=3 in small, what is opposite in large? Explain invariant."Validator: Numeric V1 tolerance; if angle solutions, specify degrees/radians explicitly------------------------------------------------------------SKILL 06) PORT_AM_IDX_01 — IndexLaws------------------------------------------------------------GLOSSARY display="Indices (Structure-Preserving Rewrites)" invariant="Index laws preserve multiplication structure." method=["Rewrite using law", "Simplify", "Check with numeric substitution"] traps=[Err_index_rules_mix, Err_distribute_wrong] EPS_tags={AMATH_IDX}TL [SYMBOLIC][D1] "Simplify: a^3 * a^2" [SYMBOLIC][D2] "Simplify: (x^2 y^-1)^3" [STORY][D3] "Find the mistake: a^m + a^n = a^(m+n). Give counterexample." [SYMBOLIC][D4] "Timed: Simplify fully: (2x^-3 y^2)^2 / (4x^-1 y)"MTB Q1: "When can we add exponents?" Q2: "Simplify: (p^4)/(p^-2)" Q3: "Transfer: Rewrite 1/(x^3) using negative indices."Validator: Expression equivalence V2; require variable ≠0 when negative indices (DC_DENOM)------------------------------------------------------------SKILL 07) PORT_AM_SURD_01 — SurdSimplify------------------------------------------------------------GLOSSARY display="Surds (Factor Structure + Rationalisation)" invariant="Simplification preserves value; √(ab)=√a√b for a,b≥0." method=["Factor inside surd", "Simplify", "Rationalise if needed"] traps=[Err_surd_simplify_wrong, Err_factor_miss] EPS_tags={AMATH_SURD}TL [SYMBOLIC][D1] "Simplify: √(50)" [SYMBOLIC][D2] "Simplify: √(18x^2) (x>0)." [STORY][D3] "Explain why √(a+b) ≠ √a + √b using a=1,b=3." [SYMBOLIC][D4] "Timed: Rationalise: 3/(2√5)."MTB Q1: "What is the common illegal surd move?" Q2: "Simplify: √(72)" Q3: "Transfer: Which is larger, √8 or 2√2? Explain."Validator: Numeric V1 or expression V2; domain DC_SQRT_REAL if real-only------------------------------------------------------------SKILL 08) PORT_AM_LOG_01 — LogLaws (Domain Contract)------------------------------------------------------------GLOSSARY display="Logarithms (Rewrite + Domain Contract)" invariant="Log rewrites preserve truth only when arguments are valid (>0)." method=["State domain", "Rewrite using laws", "Filter solutions by domain"] traps=[Err_log_rules_mix, Err_domain_ignore] EPS_tags={AMATH_LOG}TL [SYMBOLIC][D1] "Simplify: log(a) + log(b). State domain." [SYMBOLIC][D2] "Solve: log(x-1)+log(x-3)=log(8). Include domain." [ERRORSPOT][D3] "Student got x=5 and x=-1. Explain which is invalid and why." [SYMBOLIC][D4] "Timed: Solve: log2(x)+log2(x-2)=3 with domain."MTB Q1: "What domain condition must you write before using log laws?" Q2: "Simplify: log(5) - log(2)" Q3: "Transfer: Solve log(x)=log(7) and state why the solution is unique."Validator: Must enforce DC_LOG + DC_DENOM (if any) Solution set V3 with domain filter; if invalid solution present => Err_domain_ignore high------------------------------------------------------------SKILL 09) PORT_AM_QUAD_01 — QuadraticStructure (A-Math)------------------------------------------------------------GLOSSARY display="A-Math Quadratics (Forms + Graph Meaning)" invariant="Same quadratic; different forms reveal different invariants (roots/vertex)." method=["Choose method", "Solve/interpret", "Verify/condition check"] traps=[Err_sign, Err_quadratic_formula_slip, Err_factor_miss] EPS_tags={AMATH_QUAD}TL [SYMBOLIC][D1] "Solve: x^2=16" [SYMBOLIC][D2] "Solve: x^2-4x-5=0 (factor or formula)." [GRAPH][D3] "Given roots -1 and 5, write equation and state axis of symmetry." [SYMBOLIC][D4] "Timed: Solve: 3x^2+2x-8=0 + check."MTB Q1: "What does the discriminant tell you (in words)?" Q2: "Solve: x^2-6x+8=0" Q3: "Transfer: A parabola touches x-axis once. What must be true about the discriminant?"Validator: Solution set V3; if using formula, accept exact surds or decimals (V1)------------------------------------------------------------SKILL 10) PORT_AM_TRIG_02 — TrigEquations (Interval + Periodicity)------------------------------------------------------------GLOSSARY display="Trig Equations (Constraint + Interval Contract)" invariant="Solutions must satisfy equation AND interval AND periodicity rules." method=["Solve basic trig", "Generate solutions", "Filter by interval"] traps=[Err_domain_ignore, Err_notation_confuse] EPS_tags={AMATH_TRIG_EQ}TL [SYMBOLIC][D1] "Solve sin θ = 0 for 0°≤θ≤360°." [SYMBOLIC][D2] "Solve cos θ = 1/2 for 0°≤θ≤360°." [TRANSFER][D3] "Solve 2sin θ = √3 for 0°≤θ≤360° and explain filtering." [SYMBOLIC][D4] "Timed: Solve sin(2θ)=0 for 0°≤θ≤360°."MTB Q1: "Why can there be multiple solutions to a trig equation?" Q2: "Solve sin θ = 1/2 in 0°..360°." Q3: "Transfer: If solution is θ=30° for sin θ=1/2, what is the other solution and why?"Validator: Set-of-solutions V3 + interval contract DC_TRIG_INTERVAL Must normalize angles (degrees) and compare as sets============================================================6) EPS Mini Pack for these 10 Skills (EPS_MINI_10 v0.9)============================================================EPS_CLUSTER_MAP (to skill IDs) "ALG_CORE" -> [SKILL_R0, PORT_SEC_ALG_02] "QUAD" -> [PORT_SEC_ALG_04, PORT_AM_QUAD_01] "FUNC" -> [PORT_SEC_FUNC_01] "TRIG_SEC" -> [PORT_SEC_GEOM_02] "IDX" -> [PORT_AM_IDX_01] "SURD" -> [PORT_AM_SURD_01] "LOG" -> [PORT_AM_LOG_01] "TRIG_EQ" -> [PORT_AM_TRIG_02]EPS_PAPER_TEMPLATE (8 items / 40 min mini) Item1 (ALG_CORE) linear eq (timed) Item2 (ALG_CORE) error-spot rewrite Item3 (IDX) simplify Item4 (SURD) simplify + rationalise Item5 (LOG) solve with domain Item6 (QUAD) solve + check Item7 (FUNC) graph->equation or story->function Item8 (TRIG_EQ) solve in intervalEPS_SCORING (must use Validator) total_score = sum(points) stability_score = 0.5*(timed_correct_rate) + 0.3*(transfer_items_correct_rate) + 0.2*(checklist_compliance) top_leaks inferred via ESI + validator failures repair routing: - if domain errors => next primary PORT_AM_LOG_01 + secondary SKILL_VER0 (if available later) - if rewrite errors => next primary SKILL_R0 - if time pressure collapse => reduce timed_work_ratio, enforce checklist============================================================7) WHAT YOU HAVE NOW (Operationally)============================================================- A persistent StudentState schema (SS_01)- A validator that prevents “fake correctness”- OBPL that refuses to update mastery when unverified- 10 real Skill packs that can run end-to-end today- An EPS mini paper that stress-tests stability (Phase reliability)============================================================8) NEXT (v1.0 target)============================================================v1.0 = “Complete Runtime” - Expand TL+MTB to full SEC E/A-Math coverage (SREP full) - Add SKILL_VER0 fully (contracts) + make it default secondary for domain-heavy topics - Add image-input workflow (optional) + ESI improvements - Add published WordPress pages: /mathos-runtime/ (control tower) /mathos-ai-runner-v0-9/ (runner) /mathos-eps-simulator/ (paper simulator) /mathos-skill-glossary/ (auto glossary)
“`text id=”cc4tq9″
MathOS Runtime v1.2 — SREP Build Sheet + 3 WordPress Cluster Pages (A-Math)
UnifiedVersionLock: MATHOS_RUNTIME_UNIFIED_VERSION = “v1.2”
Rule: forward-only; stable IDs; publish cluster pages as directories + runnable packs.
============================================================
PART 1) SREP BUILD SHEET (Mass Production Checklist)
SREP_BUILD_SHEET v1.2
Purpose: turn each SkillID into a runnable module (Glossary + TL + MTB + Validator + EPS tags).
Row schema:
SkillID
ClusterID
CoreAnchor (SkillID)
Glossary: {Y/N}
TL_TargetCounts: {D1,D2,D3,D4} per representation
MTB_TargetCounts: {Q1,Q2,Q3} variants
ValidatorMode: {V1,V2,V3,V4}
DomainContract: {None|DC_LOG|DC_TRIG_INTERVAL|DC_SQRT_REAL|DC_DENOM|Custom}
EPS_Tags: list
BuildOrderRank: int
Notes
TargetCounts Policy (minimum viable):
TL:
– SYMBOLIC: D1x5, D2x10, D3x10, D4x8
– STORY/DIAGRAM/GRAPH: D1x3, D2x6, D3x6, D4x3
– Total per SkillID ≈ 40–60 templates
MTB:
– Q1 variants: 8
– Q2 variants: 12
– Q3 variants: 12
EPS:
– Tag each skill into exactly 1–2 clusters (avoid duplication)
SREP BUILD SHEET (core subset — A-Math clusters)
Row: PORT_AM_LOG_01
ClusterID: AMATH_LOG_EXP
CoreAnchor: SKILL_VER0 + SKILL_R0
Glossary: Y
TL_TargetCounts: SYMBOLIC{D1:5,D2:10,D3:10,D4:8} + STORY{3,6,6,3} + ERRORSPOT{3,6,6,3}
MTB_TargetCounts: Q1:8 Q2:12 Q3:12
ValidatorMode: V4+V3
DomainContract: DC_LOG + DC_DENOM
EPS_Tags: [AMATH_LOG_EXP]
BuildOrderRank: 1
Notes: “Domain-first always; filter solutions; error-spot common”
Row: PORT_AM_EXP_01
ClusterID: AMATH_LOG_EXP
CoreAnchor: SKILL_A0 + SKILL_F0 + SKILL_ERR0
Glossary: Y
TL_TargetCounts: SYMBOLIC{5,10,10,8}+STORY{3,6,6,3}+GRAPH{3,6,6,3}
MTB_TargetCounts: Q1:8 Q2:12 Q3:12
ValidatorMode: V2/V1
DomainContract: DC_DENOM (if any)
EPS_Tags: [AMATH_LOG_EXP]
BuildOrderRank: 2
Notes: “Parameter meaning; compare models; bounds check”
Row: PORT_AM_QUAD_01
ClusterID: AMATH_QUAD
CoreAnchor: SKILL_G0 + SKILL_R0
Glossary: Y
TL_TargetCounts: SYMBOLIC{5,10,10,8}+GRAPH{3,6,6,3}+STORY{3,6,6,3}
MTB_TargetCounts: Q1:8 Q2:12 Q3:12
ValidatorMode: V3+V1
DomainContract: None
EPS_Tags: [AMATH_QUAD]
BuildOrderRank: 3
Notes: “forms + meaning; check by substitution”
Row: PORT_AM_QUAD_02
ClusterID: AMATH_QUAD
CoreAnchor: SKILL_VER0
Glossary: Y
TL_TargetCounts: SYMBOLIC{5,10,10,8}+STORY{3,6,6,3}
MTB_TargetCounts: Q1:8 Q2:12 Q3:12
ValidatorMode: V2/V3
DomainContract: None
EPS_Tags: [AMATH_QUAD]
BuildOrderRank: 4
Notes: “conditions; k/range; contract language”
Row: PORT_AM_TRIG_02
ClusterID: AMATH_TRIG_EQ
CoreAnchor: SKILL_VER0 + SKILL_I0
Glossary: Y
TL_TargetCounts: SYMBOLIC{5,10,10,8}+DIAGRAM{3,6,6,3}+TRANSFER{3,6,6,3}
MTB_TargetCounts: Q1:8 Q2:12 Q3:12
ValidatorMode: V4+V3
DomainContract: DC_TRIG_INTERVAL
EPS_Tags: [AMATH_TRIG_EQ]
BuildOrderRank: 5
Notes: “multiple solutions; interval filtering; degrees/radians lock”
Row: PORT_AM_TRIG_01
ClusterID: AMATH_TRIG_EQ
CoreAnchor: SKILL_R0 + SKILL_VER0
Glossary: Y
TL_TargetCounts: SYMBOLIC{5,10,10,8}+ERRORSPOT{3,6,6,3}
MTB_TargetCounts: Q1:8 Q2:12 Q3:12
ValidatorMode: V2 + V4(domain when used)
DomainContract: Custom (identity domain)
EPS_Tags: [AMATH_TRIG_EQ]
BuildOrderRank: 6
Notes: “rewrite legality; domain restrictions”
Row: PORT_AM_DIFF_01
ClusterID: AMATH_CALC
CoreAnchor: SKILL_LIN0 + SKILL_FLOW0
Glossary: Y
TL_TargetCounts: SYMBOLIC{5,10,10,8}+STORY{3,6,6,3}+GRAPH{3,6,6,3}
MTB_TargetCounts: Q1:8 Q2:12 Q3:12
ValidatorMode: V2
DomainContract: None
EPS_Tags: [AMATH_CALC]
BuildOrderRank: 7
Row: PORT_AM_DIFF_02
ClusterID: AMATH_CALC
CoreAnchor: SKILL_OPT0 + SKILL_VER0
Glossary: Y
TL_TargetCounts: STORY{5,10,10,8}+SYMBOLIC{3,6,6,3}+GRAPH{3,6,6,3}
MTB_TargetCounts: Q1:8 Q2:12 Q3:12
ValidatorMode: V2/V1
DomainContract: None
EPS_Tags: [AMATH_CALC]
BuildOrderRank: 8
============================================================
PART 2) WORDPRESS CLUSTER PAGE #1
AMATH_LOG_EXP — Logs & Exponentials (Runnable Cluster)
Slug: /mathos-amath-logs-exponentials-cluster-v1-2/
[H1] A-Math Logs & Exponentials Cluster v1.2 (Runnable)
[H2] Definition Lock
Logs/Exponentials = rewrite rules + domain contracts + multiplicative iteration models.
[H2] Cluster Skills (SkillIDs)
- PORT_AM_LOG_01 LogLaws
- PORT_AM_EXP_01 ExponentialModels
Core Anchors (must run when unstable): - SKILL_R0 RewriteRules
- SKILL_VER0 VerificationContract (domain contract discipline)
- SKILL_ERR0 ErrorBoundsBasics
[H2] Failure Mode Trace (short)
Missing domain → accepts invalid solution → fake mastery → timed mixed set collapse.
Repair: enforce DC_LOG + validator + interval/solution filtering + retest.
[H2] Domain Contract (DC_LOG)
Rule:
- Every log(argument) requires argument > 0.
- Any solution must satisfy DC_LOG before acceptance.
Checklist (Operator):
- CHK_domaincheck
- CHK_resubstitute
- CHK_boundscheck
[H2] QuickPick (copy/paste)
QuickPick:
level=AMATH
topic=Logarithms
subtopic=Domain
goal=exam_ready
common_issue=domain mistakes + time pressure
time_budget_minutes=75
[H2] Session Runner Prompt (A–H)
Use SYSTEM_PROMPT_SESSION_V1 from /mathos-ai-runner/
[H2] One-Button Scoring Prompt (OBPL)
Use SYSTEM_PROMPT_OBPL_V1 from /mathos-obpl-one-button-scoring/
[H2] EPS Mini (Cluster Stress Test)
EPS_Input:
level=AMATH
duration_min=30
paper_style=TOPIC_MIX
target_clusters=[“logs”,”exponentials”]
difficulty_profile=BALANCED
items_count=8
rules={require_core_anchor:true, no_help:true}
[H2] MicroRetest Schedule (default)
+1 day: DC_LOG retest (Q1/Q3)
+3 days: solve + filter solutions (Q2)
+7 days: mixed log/exp word problem (transfer)
+14 days: timed mini set (stability)
[H2] Cluster Prompt Pack (Optional)
CLUSTER_PROMPT_LOGEXP:
“Run a session with primary PORT_AM_LOG_01 and secondary SKILL_VER0.
Enforce DC_LOG. Any unverified answer -> request steps, do not promote.”
============================================================
PART 3) WORDPRESS CLUSTER PAGE #2
AMATH_QUAD — Quadratics (Runnable Cluster)
Slug: /mathos-amath-quadratics-cluster-v1-2/
[H1] A-Math Quadratics Cluster v1.2 (Runnable)
[H2] Definition Lock
Quadratics = one object, many views:
- factor form (roots)
- standard form (coeff structure)
- vertex form (turning point)
- graph (geometry view)
[H2] Cluster Skills (SkillIDs)
- PORT_AM_QUAD_01 QuadraticStructure
- PORT_AM_QUAD_02 DiscriminantAsContract
Core Anchors: - SKILL_G0 GraphAsGeometryOfFunction
- SKILL_R0 RewriteRules
- SKILL_VER0 VerificationContract (conditions)
[H2] Failure Mode Trace
Symbol-only solving → no meaning → wrong condition / missed root / wrong graph link → exam collapse.
Repair: convert form + graph invariant + verify by substitution + condition checks.
Checklist:
- CHK_resubstitute
- CHK_boundscheck
- CHK_invariant_sentence
[H2] QuickPick
QuickPick:
level=AMATH
topic=Quadratics
subtopic=Discriminant conditions
goal=exam_ready
common_issue=sign + careless
time_budget_minutes=75
[H2] EPS Mini (Quadratics)
EPS_Input:
level=AMATH
duration_min=30
paper_style=TOPIC_MIX
target_clusters=[“quadratics”]
difficulty_profile=BALANCED
items_count=8
rules={require_core_anchor:true, no_help:true}
[H2] MicroRetest Schedule
+1: roots ↔ factors quick check
+3: complete-square ↔ vertex meaning
+7: discriminant condition problem
+14: timed mixed quadratic + graph interpretation
[H2] Cluster Prompt Pack
CLUSTER_PROMPT_QUAD:
“Primary PORT_AM_QUAD_01. Secondary SKILL_G0.
Always require: one-line meaning (roots/vertex) + resubstitution check.”
============================================================
PART 4) WORDPRESS CLUSTER PAGE #3
AMATH_TRIG_EQ — Trig Equations (Runnable Cluster)
Slug: /mathos-amath-trig-equations-cluster-v1-2/
[H1] A-Math Trig Equations Cluster v1.2 (Runnable)
[H2] Definition Lock
Trig equations = constraints + periodicity + interval contracts.
You don’t just “solve”; you generate candidates then filter by interval.
[H2] Cluster Skills (SkillIDs)
- PORT_AM_TRIG_01 TrigIdentities (rewrite legality)
- PORT_AM_TRIG_02 TrigEquations (solution sets)
Core Anchors: - SKILL_I0 InvariantBasics (symmetry)
- SKILL_VER0 VerificationContract (interval + completeness contract)
- SKILL_R0 RewriteRules
[H2] Interval Contract (DC_TRIG_INTERVAL)
Rule:
- Final answers must be:
(a) all solutions in the specified interval
(b) only solutions in the interval
(c) clearly stated in degrees or radians (locked)
Checklist:
- CHK_domaincheck (interval)
- CHK_snapshot_steps (candidate generation)
- CHK_boundscheck (angles)
- CHK_invariant_sentence
[H2] Failure Mode Trace
Finds one angle → forgets symmetry → misses second solution → loses marks.
Repair: symmetry map + candidate list + interval filter + validator set-check.
[H2] QuickPick
QuickPick:
level=AMATH
topic=Trigonometry
subtopic=Equations in interval
goal=exam_ready
common_issue=missing solutions + notation confusion
time_budget_minutes=75
[H2] EPS Mini (Trig Equations)
EPS_Input:
level=AMATH
duration_min=30
paper_style=TOPIC_MIX
target_clusters=[“trig equations”]
difficulty_profile=BALANCED
items_count=8
rules={require_core_anchor:true, no_help:true}
[H2] MicroRetest Schedule
+1: unit circle symmetry retest (Q1/Q3)
+3: solve in 0..360 with full solution set
+7: solve sin(2θ)=… with filtering
+14: timed mixed trig equation mini set
[H2] Cluster Prompt Pack
CLUSTER_PROMPT_TRIGEQ:
“Primary PORT_AM_TRIG_02. Secondary SKILL_VER0.
Enforce DC_TRIG_INTERVAL: completeness + interval + unit lock.
Validator must compare solution sets as sets.”
============================================================
END v1.2
“`text id=”2xg8qb”
MathOS Runtime v1.3 — Cluster TL Seed Packs + MTB Seed Packs (WordPress-ready)
UnifiedVersionLock: MATHOS_RUNTIME_UNIFIED_VERSION = “v1.3”
Scope: 3 A-Math Cluster Pages (Logs/Exp, Quadratics, Trig Equations)
Deliverable:
- TL Seed Pack: 12 templates per skill (D1–D4, multiple reps)
- MTB Seed Pack: 2 MicroTestPacks per skill (each = Q1/Q2/Q3) with answer keys
Note:
Templates use placeholders {a,b,k,m,n} etc. Fill with fresh values when running.
Validator notes included (AnswerType + DomainContract).
============================================================
CLUSTER 1) AMATH_LOG_EXP — Seed Pack v1.3
Skills: PORT_AM_LOG_01, PORT_AM_EXP_01
A) TL SEED — PORT_AM_LOG_01 LogLaws (12)
Validator: V4+V3, DomainContract: DC_LOG
AnswerType: EXPRESSION / SET_OF_SOLUTIONS
Checks: CHK_domaincheck, CHK_resubstitute, CHK_boundscheck
D1 (3)
TL-LOG-D1-01 [SYMBOLIC]
Invariant: “Log laws are rewrites; domain must hold.”
Prompt: “Simplify: log(3) + log(5). State domain.”
Expected: “log(15)”
Trap: Err_log_rules_mix
TL-LOG-D1-02 [SYMBOLIC]
Prompt: “Simplify: log(8) – log(2). State domain.”
Expected: “log(4)”
TL-LOG-D1-03 [ERRORSPOT]
Prompt: “Find the mistake: log(a+b)=log(a)+log(b). Give a counterexample with numbers.”
Expected: “Not true; e.g., a=1,b=1: log2 ≠ log1+log1.”
D2 (3)
TL-LOG-D2-01 [SYMBOLIC]
Prompt: “Simplify fully: log( (x-1)(x+2) ) – log(x-1). State domain.”
Domain: x-1>0 and x+2>0
Expected: “log(x+2)”
Trap: Err_domain_ignore
TL-LOG-D2-02 [SYMBOLIC]
Prompt: “Solve: log(x-1)=log(7). State domain and answer.”
Domain: x-1>0
Expected: “x=8”
TL-LOG-D2-03 [SYMBOLIC]
Prompt: “Solve: log(x)+log(x-3)=log(10). State domain.”
Domain: x>0 and x-3>0
Expected: “x=5”
Trap: Err_domain_ignore
D3 (3) Transfer / Representation shift
TL-LOG-D3-01 [STORY]
Prompt: “A student solved log(x-2)+log(x-5)=log(21) and wrote x=7 and x=0. Which is valid? Explain using domain.”
Expected: “x=7 valid; x=0 invalid (domain x>5).”
TL-LOG-D3-02 [ERRORSPOT]
Prompt: “Spot the illegal step: log(x-1)+log(x+1)=log( (x-1)+(x+1) ). Correct it.”
Expected: “Should be log((x-1)(x+1)) not log(2x).”
Trap: Err_log_rules_mix
TL-LOG-D3-03 [SYMBOLIC]
Prompt: “Solve: log(x-1)+log(x-3)=log(8). Give all solutions and filter by domain.”
Expected: “x=5 only (reject x=-1).”
Trap: Err_domain_ignore
D4 (3) Examstyle / timed
TL-LOG-D4-01 [SYMBOLIC]
Prompt: “Solve: log2(x)+log2(x-2)=3. State domain; give solutions.”
Domain: x>2
Expected: “x=4”
TL-LOG-D4-02 [SYMBOLIC]
Prompt: “Solve: log(x-4)-log(x-6)=log(3). State domain.”
Domain: x>6
Expected: “x=9”
TL-LOG-D4-03 [SYMBOLIC]
Prompt: “Solve: log(x+1)+log(x-1)=log(16). State domain and solutions.”
Domain: x>1
Expected: “x=√17 (positive root only due to domain)”
Trap: Err_domain_ignore
B) TL SEED — PORT_AM_EXP_01 ExponentialModels (12)
Validator: V2/V1, DomainContract: DC_DENOM if present
AnswerType: EXPRESSION / NUMERIC
Checks: CHK_unitscheck, CHK_boundscheck, CHK_resubstitute
D1 (3)
TL-EXP-D1-01 [STORY]
Invariant: “Exponential change = multiplicative iteration.”
Prompt: “A value doubles every hour. If it is 5 at hour 0, write V(t).”
Expected: “V(t)=5·2^t”
TL-EXP-D1-02 [SYMBOLIC]
Prompt: “Simplify: 2^3 · 2^5”
Expected: “2^8”
TL-EXP-D1-03 [STORY]
Prompt: “A population is 100 and grows 10% per year. Write P(n).”
Expected: “P(n)=100(1.1)^n”
D2 (3)
TL-EXP-D2-01 [STORY]
Prompt: “Decay: 200 decreases by 15% each month. Find value after 2 months.”
Expected: “200(0.85)^2”
TL-EXP-D2-02 [SYMBOLIC]
Prompt: “Solve: 3·2^t = 96.”
Expected: “t=5”
TL-EXP-D2-03 [GRAPH/TABLE]
Prompt: “Given table: t=0→50, t=1→75, t=2→112.5. Identify model form and ratio.”
Expected: “multiply by 1.5 each step; V=50(1.5)^t”
D3 (3) Transfer
TL-EXP-D3-01 [STORY]
Prompt: “Two accounts: A grows by 8% yearly, B grows by 6% yearly but starts larger. Write both models and state what decides when A overtakes.”
Expected: “Compare initial ratio vs growth ratio; solve intersection.”
TL-EXP-D3-02 [SYMBOLIC]
Prompt: “Solve: 5(1.2)^n = 20.”
Expected: “n= log(4)/log(1.2)” (numeric acceptable)
TL-EXP-D3-03 [ERRORSPOT]
Prompt: “Find the mistake: (1.1)^(a+b) = 1.1^a + 1.1^b. Correct it.”
Expected: “Should be multiplication: 1.1^a·1.1^b.”
D4 (3) Examstyle
TL-EXP-D4-01 [STORY]
Prompt: “A drug concentration is 80 and halves every 6 hours. Find time to reach 10 hours? (express and solve).”
Expected: “80(1/2)^(t/6)=10 -> t=6·log(1/8)/log(1/2)=18”
TL-EXP-D4-02 [STORY]
Prompt: “Find n such that 100(0.9)^n < 50.” Expected: “n > log(0.5)/log(0.9)”
TL-EXP-D4-03 [STORY]
Prompt: “Compound interest: $5000 at 3% p.a. Find after 4 years and interpret meaning of the exponent.”
Expected: “5000(1.03)^4”
C) MTB SEED — PORT_AM_LOG_01 (2 Packs)
MTB-LOG-PACK-01 (D2)
Q1 (Invariant): “Before using log laws, what must be true about every log argument?”
Answer: “Each argument must be > 0 (domain).”
Q2 (Apply): “Simplify: log(12) – log(3).”
Answer: “log(4)”
Q3 (Transfer): “Solve log(x-1)=log(5). State domain and answer.”
Answer: “x>1; x=6”
MTB-LOG-PACK-02 (D3)
Q1: “Why can a solution from algebra be rejected after solving a log equation?”
Answer: “It may violate the domain (log argument not >0).”
Q2: “Solve: log(x)+log(x-3)=log(10).”
Answer: “x=5 (domain x>3).”
Q3: “A student got x=5 and x=-1 for log(x-1)+log(x-3)=log(8). Which is valid and why?”
Answer: “x=5 valid; x=-1 invalid (domain x>3).”
D) MTB SEED — PORT_AM_EXP_01 (2 Packs)
MTB-EXP-PACK-01 (D2)
Q1: “What does it mean when something grows by a fixed percentage each step?”
Answer: “It multiplies by a constant factor each step.”
Q2: “Solve: 3·2^t=96.”
Answer: “t=5”
Q3: “A value is 100 and decreases 20% per month. Write V(n) and find V(2).”
Answer: “V(n)=100(0.8)^n; V(2)=64”
MTB-EXP-PACK-02 (D3)
Q1: “Why is exponential growth called multiplicative iteration?”
Answer: “Each step multiplies by the same factor; repeated multiplication.”
Q2: “Solve: 5(1.2)^n=20.”
Answer: “n=log(4)/log(1.2) (≈7.6)”
Q3: “Two models: A=50(1.1)^n and B=60(1.05)^n. Which grows faster and how do you decide when A overtakes B?”
Answer: “A grows faster (1.1>1.05); solve 50(1.1)^n=60(1.05)^n.”
============================================================
CLUSTER 2) AMATH_QUAD — Seed Pack v1.3
Skills: PORT_AM_QUAD_01, PORT_AM_QUAD_02
A) TL SEED — PORT_AM_QUAD_01 QuadraticStructure (12)
Validator: V3+V1, AnswerType: SET_OF_SOLUTIONS / EXPRESSION
Checks: CHK_resubstitute, CHK_boundscheck, CHK_invariant_sentence
D1 (3)
TL-QUAD-D1-01 [SYMBOLIC]
Invariant: “Solving finds roots where expression = 0.”
Prompt: “Solve: x^2=25”
Expected: “x=±5”
TL-QUAD-D1-02 [SYMBOLIC]
Prompt: “Solve: x^2-9=0”
Expected: “x=±3”
TL-QUAD-D1-03 [GRAPH]
Prompt: “A parabola crosses x-axis at x=1 and x=4. Write one possible equation.”
Expected: “y=(x-1)(x-4)”
D2 (3)
TL-QUAD-D2-01 [SYMBOLIC]
Prompt: “Factor and solve: x^2-5x+6=0”
Expected: “x=2,3”
TL-QUAD-D2-02 [SYMBOLIC]
Prompt: “Solve: x^2-4x-5=0”
Expected: “x=5,-1”
TL-QUAD-D2-03 [STORY]
Prompt: “The product of two numbers is -5 and their sum is 4. Form a quadratic and solve.”
Expected: “t^2-4t-5=0 -> t=5,-1”
D3 (3) Transfer
TL-QUAD-D3-01 [GRAPH]
Prompt: “A parabola has roots -2 and 3 and opens upward. Write equation and axis of symmetry.”
Expected: “y=(x+2)(x-3); axis x=0.5”
TL-QUAD-D3-02 [SYMBOLIC]
Prompt: “Convert y=x^2-6x+5 into vertex form.”
Expected: “y=(x-3)^2-4”
TL-QUAD-D3-03 [ERRORSPOT]
Prompt: “A student solved x^2-6x+8=0 and wrote x=2 only. Find what was missed.”
Expected: “x=4 also.”
D4 (3) Examstyle
TL-QUAD-D4-01 [SYMBOLIC]
Prompt: “Solve: 2x^2-3x-2=0 and check.”
Expected: “x=2, -1/2”
TL-QUAD-D4-02 [SYMBOLIC]
Prompt: “Solve: 3x^2+2x-8=0”
Expected: “x=4/3, -2”
TL-QUAD-D4-03 [STORY]
Prompt: “A projectile height is h(t)=-t^2+6t+7. Find maximum height and when it occurs.”
Expected: “vertex at t=3; h=16”
B) TL SEED — PORT_AM_QUAD_02 DiscriminantAsContract (12)
Validator: V2/V3, AnswerType: STATEMENT / INTERVAL / SET
Checks: CHK_boundscheck, CHK_invariant_sentence
D1 (3)
TL-DISC-D1-01 [SYMBOLIC]
Invariant: “Discriminant decides number of real roots.”
Prompt: “For x^2+4x+4=0, compute discriminant and state roots count.”
Expected: “Δ=0, one repeated root”
TL-DISC-D1-02 [SYMBOLIC]
Prompt: “For x^2+1=0, compute Δ and state real roots?”
Expected: “Δ<0, no real roots” TL-DISC-D1-03 [STORY] Prompt: “What condition on Δ gives two distinct real roots?” Expected: “Δ>0”
D2 (3)
TL-DISC-D2-01 [SYMBOLIC]
Prompt: “Find k so x^2+2x+k=0 has one real root.”
Expected: “Δ=0 -> 4-4k=0 -> k=1”
TL-DISC-D2-02 [SYMBOLIC]
Prompt: “Find k so x^2-4x+k=0 has no real roots.”
Expected: “Δ<0 -> 16-4k<0 -> k>4”
TL-DISC-D2-03 [SYMBOLIC]
Prompt: “Find k so 2x^2+3x+k=0 has two distinct real roots.”
Expected: “Δ>0 -> 9-8k>0 -> k<9/8”
D3 (3) Transfer
TL-DISC-D3-01 [STORY]
Prompt: “A parabola y=x^2+px+q touches the x-axis. What must be true about p and q?”
Expected: “Δ=0 -> p^2-4q=0”
TL-DISC-D3-02 [GRAPH]
Prompt: “A parabola does not cross x-axis. State condition on Δ and interpret.”
Expected: “Δ<0; no real roots.” TL-DISC-D3-03 [SYMBOLIC] Prompt: “Find range of k so x^2+2(k-1)x+k=0 has real roots.” Expected: “Δ≥0 -> 4(k-1)^2-4k ≥0 -> (k-1)^2-k ≥0”
D4 (3) Examstyle
TL-DISC-D4-01 [SYMBOLIC]
Prompt: “For x^2-(k+2)x+k=0, find k such that roots are equal.”
Expected: “Δ=0 -> (k+2)^2-4k=0 -> k^2+4=0 -> no real k (note).”
TL-DISC-D4-02 [SYMBOLIC]
Prompt: “Find k so 3x^2+kx+3=0 has two distinct real roots.”
Expected: “Δ>0 -> k^2-36>0 -> |k|>6”
TL-DISC-D4-03 [STORY]
Prompt: “A quadratic has exactly one real solution. Express the condition using Δ and solve for parameter.”
Expected: “Δ=0 then solve.”
C) MTB SEED — PORT_AM_QUAD_01 (2 Packs)
MTB-QUAD-PACK-01 (D2)
Q1: “What does a root mean on the graph of y=f(x)?”
Answer: “x-value where graph crosses/touches x-axis (f(x)=0).”
Q2: “Solve: x^2-6x+8=0”
Answer: “x=2,4”
Q3: “A parabola has roots 1 and 5. Write one equation.”
Answer: “y=(x-1)(x-5) (any nonzero multiple acceptable).”
MTB-QUAD-PACK-02 (D3)
Q1: “Why should you check solutions by substitution?”
Answer: “To confirm they satisfy the original equation; catches algebra slips.”
Q2: “Convert y=x^2-4x+1 to vertex form.”
Answer: “y=(x-2)^2-3”
Q3: “A student wrote only one solution for x^2-9=0. What’s missing and why?”
Answer: “Two solutions ±3 because squaring loses sign.”
D) MTB SEED — PORT_AM_QUAD_02 (2 Packs)
MTB-DISC-PACK-01 (D2)
Q1: “What does Δ tell you?”
Answer: “Number/type of real roots.”
Q2: “Find k so x^2+2x+k=0 has one real root.”
Answer: “k=1”
Q3: “Find k so x^2-4x+k=0 has no real roots.”
Answer: “k>4”
MTB-DISC-PACK-02 (D3)
Q1: “What condition on Δ means the parabola touches the x-axis?”
Answer: “Δ=0”
Q2: “Find k so 2x^2+3x+k=0 has two distinct real roots.”
Answer: “k<9/8”
Q3: “Given y=x^2+px+q touches x-axis, write the condition relating p and q.”
Answer: “p^2=4q”
============================================================
CLUSTER 3) AMATH_TRIG_EQ — Seed Pack v1.3
Skills: PORT_AM_TRIG_01, PORT_AM_TRIG_02
A) TL SEED — PORT_AM_TRIG_01 TrigIdentities (12)
Validator: V2 (rewrite equivalence) + CustomDomain
AnswerType: STATEMENT / EXPRESSION
Checks: CHK_invariant_sentence, CHK_domaincheck (where used)
D1 (3)
TL-TID-D1-01 [SYMBOLIC]
Invariant: “Identity = true for all valid θ; rewrites preserve truth.”
Prompt: “State the Pythagorean identity relating sin and cos.”
Expected: “sin^2θ + cos^2θ = 1”
TL-TID-D1-02 [SYMBOLIC]
Prompt: “Simplify: sin^2θ + cos^2θ”
Expected: “1”
TL-TID-D1-03 [ERRORSPOT]
Prompt: “Is sin(α+β)=sinα+sinβ true? Give a counterexample or correction.”
Expected: “Not true; must use correct formula.”
D2 (3)
TL-TID-D2-01 [SYMBOLIC]
Prompt: “Simplify: (1 – cos^2θ)”
Expected: “sin^2θ”
TL-TID-D2-02 [SYMBOLIC]
Prompt: “Express tan^2θ in terms of sec^2θ.”
Expected: “tan^2θ = sec^2θ – 1”
TL-TID-D2-03 [SYMBOLIC]
Prompt: “Prove: (1+tan^2θ)cos^2θ = 1”
Expected: “Use sec^2=1+tan^2 and sec=1/cos.”
D3 (3) Transfer
TL-TID-D3-01 [ERRORSPOT]
Prompt: “A student rewrote 1 – sin^2θ as 1 – sinθ. Explain why illegal and correct.”
Expected: “sin^2 ≠ sin; correct: 1 – sin^2θ = cos^2θ.”
TL-TID-D3-02 [SYMBOLIC]
Prompt: “Simplify: (sin^2θ)/(1 – cos^2θ)”
Expected: “1”
TL-TID-D3-03 [SYMBOLIC]
Prompt: “Prove: tanθ·cosθ = sinθ”
Expected: “tan=sin/cos.”
D4 (3) Examstyle
TL-TID-D4-01 [SYMBOLIC]
Prompt: “Simplify: (1 – cosθ)(1 + cosθ)”
Expected: “sin^2θ”
TL-TID-D4-02 [SYMBOLIC]
Prompt: “Simplify: (sec^2θ – 1)/tan^2θ”
Expected: “1”
TL-TID-D4-03 [SYMBOLIC]
Prompt: “Given sinθ=3/5 (θ acute), find tanθ.”
Expected: “3/4”
B) TL SEED — PORT_AM_TRIG_02 TrigEquations (12)
Validator: V4+V3, DomainContract: DC_TRIG_INTERVAL (unit lock)
AnswerType: SET_OF_SOLUTIONS
Checks: CHK_domaincheck, CHK_snapshot_steps, CHK_boundscheck
Assume degrees unless stated otherwise; lock unit in prompt.
D1 (3)
TL-TEQ-D1-01 [SYMBOLIC]
Invariant: “Multiple solutions from periodicity + symmetry; filter by interval.”
Prompt: “Solve sinθ=0 for 0°≤θ≤360°.”
Expected: “{0°,180°,360°}”
TL-TEQ-D1-02 [SYMBOLIC]
Prompt: “Solve cosθ=1 for 0°≤θ≤360°.”
Expected: “{0°,360°}”
TL-TEQ-D1-03 [SYMBOLIC]
Prompt: “Solve sinθ=1 for 0°≤θ≤360°.”
Expected: “{90°}”
D2 (3)
TL-TEQ-D2-01 [SYMBOLIC]
Prompt: “Solve sinθ=1/2 for 0°≤θ≤360°.”
Expected: “{30°,150°}”
TL-TEQ-D2-02 [SYMBOLIC]
Prompt: “Solve cosθ=1/2 for 0°≤θ≤360°.”
Expected: “{60°,300°}”
TL-TEQ-D2-03 [SYMBOLIC]
Prompt: “Solve tanθ=1 for 0°≤θ≤360°.”
Expected: “{45°,225°}”
D3 (3) Transfer
TL-TEQ-D3-01 [SYMBOLIC]
Prompt: “Solve 2sinθ=√3 for 0°≤θ≤360°.”
Expected: “{60°,120°}”
TL-TEQ-D3-02 [SYMBOLIC]
Prompt: “Solve sin(2θ)=0 for 0°≤θ≤360°.”
Expected: “{0°,90°,180°,270°,360°}” // since 2θ=0,180,360,540,720 => θ=0,90,180,270,360
TL-TEQ-D3-03 [SYMBOLIC]
Prompt: “Solve cos(2θ)=1/2 for 0°≤θ≤360°.”
Expected: “{30°,150°,210°,330°}” // 2θ=60,300,420,660
D4 (3) Examstyle
TL-TEQ-D4-01 [SYMBOLIC]
Prompt: “Solve sinθ=-1/2 for 0°≤θ≤360°.”
Expected: “{210°,330°}”
TL-TEQ-D4-02 [SYMBOLIC]
Prompt: “Solve tan(2θ)=1 for 0°≤θ≤360°.”
Expected: “{22.5°,112.5°,202.5°,292.5°}” // 2θ=45,225,405,585
TL-TEQ-D4-03 [SYMBOLIC]
Prompt: “Solve 3cosθ= -1 for 0°≤θ≤360°.”
Expected: “{arccos(-1/3), 360°-arccos(-1/3)}” (numeric allowed)
C) MTB SEED — PORT_AM_TRIG_01 (2 Packs)
MTB-TID-PACK-01 (D2)
Q1: “What does ‘identity’ mean?”
Answer: “True for all valid θ (within its domain).”
Q2: “Simplify: 1 – sin^2θ”
Answer: “cos^2θ”
Q3: “Transfer: Simplify (1 – cosθ)(1 + cosθ). Explain which identity you used.”
Answer: “sin^2θ using 1 – cos^2θ = sin^2θ.”
MTB-TID-PACK-02 (D3)
Q1: “Why must a rewrite preserve truth for all θ (not just one value)?”
Answer: “Otherwise it’s not an identity; it changes the statement.”
Q2: “Prove: tanθ·cosθ = sinθ”
Answer: “tan=sin/cos → (sin/cos)cos=sin.”
Q3: “Error-spot: Is 1 – sin^2θ = 1 – sinθ correct? If not, correct it.”
Answer: “Incorrect; correct: 1 – sin^2θ = cos^2θ.”
D) MTB SEED — PORT_AM_TRIG_02 (2 Packs)
MTB-TEQ-PACK-01 (D2)
Q1: “Why can trig equations have more than one solution in an interval?”
Answer: “Periodicity and symmetry produce multiple angles with same value.”
Q2: “Solve sinθ=1/2 for 0°≤θ≤360°.”
Answer: “{30°,150°}”
Q3: “Transfer: Solve cosθ=1/2 for 0°≤θ≤360° and explain the two angles.”
Answer: “{60°,300°} (quadrants I and IV).”
MTB-TEQ-PACK-02 (D3)
Q1: “What must you always do after generating candidate trig solutions?”
Answer: “Filter by the given interval and ensure completeness.”
Q2: “Solve sin(2θ)=0 for 0°≤θ≤360°.”
Answer: “{0°,90°,180°,270°,360°}”
Q3: “Transfer: Solve 2sinθ=√3 for 0°≤θ≤360°.”
Answer: “{60°,120°}”
============================================================
DONE — v1.3 Seed Packs
“`text id=”n7s9pt”
MathOS Runtime v1.4 — Cluster Page Inserts + Validator Panels + EPS-30 Mini Papers (3 Clusters)
UnifiedVersionLock: MATHOS_RUNTIME_UNIFIED_VERSION = “v1.4”
Scope:
- Insert v1.3 TL+MTB seed packs into each cluster page cleanly
- Add “Validator Examples Panel” (UNVERIFIED handling)
- Add EPS-30 (8 items / 30 min) per cluster with marking scheme + answer packet template
============================================================
CLUSTER PAGE INSERT #1
AMATH_LOG_EXP — WordPress-Ready Full Insert v1.4
Slug: /mathos-amath-logs-exponentials-cluster-v1-4/
[H1] A-Math Logs & Exponentials Cluster v1.4 (Runnable + Seed Packs + EPS)
[H2] Definition Lock
Logs/Exponentials = rewrite rules + domain contracts + multiplicative iteration.
TruthFence: grading must validate; UNVERIFIED means “paste steps / original question / domain”.
[H2] Cluster Skills (SkillIDs)
Primary:
- PORT_AM_LOG_01 LogLaws
- PORT_AM_EXP_01 ExponentialModels
Core Anchors: - SKILL_R0 RewriteRules
- SKILL_VER0 VerificationContract (domain discipline)
- SKILL_ERR0 ErrorBoundsBasics
[H2] Failure Mode Trace
Missing DC_LOG → accepts invalid solution → fake mastery → timed mixed set collapse.
Repair: enforce DC_LOG + validator + checklist + retest.
[H2] Domain Contract (DC_LOG)
Rule: every log(argument) must satisfy argument > 0.
Operator must write domain BEFORE solving.
Validator filters solutions using DC_LOG.
Checklist:
- CHK_domaincheck
- CHK_resubstitute
- CHK_boundscheck
[H2] QuickPick (copy/paste)
QuickPick:
level=AMATH
topic=Logarithms
subtopic=Domain
goal=exam_ready
common_issue=domain mistakes + time pressure
time_budget_minutes=75
[H2] Session Runner
Use SYSTEM_PROMPT_SESSION_V1 from /mathos-ai-runner/
[H2] One-Button Scoring (OBPL)
Use SYSTEM_PROMPT_OBPL_V1 from /mathos-obpl-one-button-scoring/
[H2] TL Seed Pack (12) — PORT_AM_LOG_01 LogLaws
(Insert from v1.3: TL-LOG-D1-01 … TL-LOG-D4-03)
TL-LOG-D1-01 … (paste the 12 TL items exactly as in v1.3)
[H2] TL Seed Pack (12) — PORT_AM_EXP_01 ExponentialModels
(Insert from v1.3: TL-EXP-D1-01 … TL-EXP-D4-03)
TL-EXP-D1-01 … (paste the 12 TL items exactly as in v1.3)
[H2] MicroTest Seed Packs — PORT_AM_LOG_01 (2 packs)
(Insert MTB-LOG-PACK-01, MTB-LOG-PACK-02)
[H2] MicroTest Seed Packs — PORT_AM_EXP_01 (2 packs)
(Insert MTB-EXP-PACK-01, MTB-EXP-PACK-02)
[H2] Validator Examples Panel (Logs/Exp)
Goal: show what “UNVERIFIED” means and what parents should paste.
Example A — UNVERIFIED (missing original equation)
Student answer: “x=5”
Problem: not provided
Validator result: UNVERIFIED
Follow-up needed:
- paste the original question OR the equation after log rewrite
- paste student steps (at least 2 lines)
- paste stated domain (if any)
Example B — INCORRECT (domain fail)
Problem: log(x-1)+log(x-3)=log(8)
Student: x=5,-1
Validator: INCORRECT
Reason: x=-1 violates DC_LOG (x-3>0 false)
Inferred ErrID: Err_domain_ignore
Example C — CORRECT (domain stated + filtered)
Student steps include:
- domain: x>3
- solutions: x=5,-1
- filtered: x=5
Validator: CORRECT
Parent Paste Format (minimal):
WorkSample:
problem_text=’…’
student_steps=’…’
student_answer=’…’
correct_answer=’…’ (optional)
time_sec=__ (optional)
[H2] EPS-30 Mini Paper (Logs & Exp)
EPS_Input:
level=AMATH
duration_min=30
paper_style=TOPIC_MIX
target_clusters=[“logs”,”exponentials”]
difficulty_profile=BALANCED
items_count=8
rules={require_core_anchor:true, no_help:true}
[H3] EPS-OUT (1) Paper Items
LOGEXP-01 [PORT_AM_LOG_01] Solve: log(x-1)=log(7). State domain.
LOGEXP-02 [PORT_AM_LOG_01] Simplify: log(12)-log(3). State domain.
LOGEXP-03 [PORT_AM_LOG_01] Solve: log(x)+log(x-3)=log(10). State domain + filter.
LOGEXP-04 [PORT_AM_LOG_01] Error-spot: log(a+b)=log(a)+log(b). Give counterexample.
LOGEXP-05 [PORT_AM_EXP_01] Model: 100 grows 10% per year. Write P(n).
LOGEXP-06 [PORT_AM_EXP_01] Solve: 3·2^t=96.
LOGEXP-07 [PORT_AM_EXP_01] Decay: 200 decreases 15% each month. Write value after 2 months.
LOGEXP-08 [PORT_AM_EXP_01] Solve: 5(1.2)^n=20 (exact form allowed).
[H3] EPS-OUT (2) Answer Key (concise)
01 x=8, domain x>1
02 log(4)
03 x=5, domain x>3
04 Not true; counterexample e.g. a=b=1
05 P(n)=100(1.1)^n
06 t=5
07 200(0.85)^2
08 n=log(4)/log(1.2)
[H3] EPS-OUT (3) Marking Scheme (points + traps + checks)
Each item 5 points = 40 total.
Per item:
- 1pt invariant sentence (rewrite/domain or multiplicative factor)
- 1pt domain/units/bounds check (as relevant)
- 3pt method + correct answer
Common traps: - LOG: Err_domain_ignore, Err_log_rules_mix
- EXP: Err_inverse_confuse, Err_units_ignore
[H3] EPS-OUT (4) Student Answer Packet Template
EPS_StudentAnswers:
paper_id=’EPS-LOGEXP-30-01′
answers=[
{item_id:’LOGEXP-01′, response:’…’, steps:’…’, time_sec:__},
…
]
============================================================
CLUSTER PAGE INSERT #2
AMATH_QUAD — WordPress-Ready Full Insert v1.4
Slug: /mathos-amath-quadratics-cluster-v1-4/
[H1] A-Math Quadratics Cluster v1.4 (Runnable + Seed Packs + EPS)
[H2] Definition Lock
Quadratics = one object, many views (roots/vertex/graph).
TruthFence: validate solution sets; accept equivalent forms; resubstitute to verify.
[H2] Cluster Skills (SkillIDs)
- PORT_AM_QUAD_01 QuadraticStructure
- PORT_AM_QUAD_02 DiscriminantAsContract
Core Anchors: - SKILL_G0 GraphAsGeometryOfFunction
- SKILL_R0 RewriteRules
- SKILL_VER0 VerificationContract
[H2] Failure Mode Trace
Single-method solving → missed root/condition → wrong interpretation → exam collapse.
Repair: view swap + resubstitution + discriminant contract.
Checklist:
- CHK_resubstitute
- CHK_boundscheck
- CHK_invariant_sentence
[H2] QuickPick
QuickPick:
level=AMATH
topic=Quadratics
subtopic=Discriminant conditions
goal=exam_ready
common_issue=sign + careless
time_budget_minutes=75
[H2] Session Runner + OBPL
(use the main runner pages)
[H2] TL Seed Packs
- PORT_AM_QUAD_01 (12) — paste from v1.3
- PORT_AM_QUAD_02 (12) — paste from v1.3
[H2] MicroTest Seed Packs
- MTB-QUAD-PACK-01, MTB-QUAD-PACK-02
- MTB-DISC-PACK-01, MTB-DISC-PACK-02
[H2] Validator Examples Panel (Quadratics)
Example A — UNVERIFIED (ambiguous set form)
Student: “x=2/3”
Expected: “x=2,3”
Validator: UNVERIFIED if original equation missing and set unclear
Follow-up: paste original equation and full solution set.
Example B — INCORRECT (missed root)
Problem: x^2-6x+8=0
Student: x=2
Validator: INCORRECT (missing x=4)
ErrID: Err_skip_step / Err_factor_miss
Example C — CORRECT (equivalent forms)
Student: “x=2,4”
Expected: “{2,4}”
Validator: CORRECT (set equivalence)
[H2] EPS-30 Mini Paper (Quadratics)
Paper Items (8):
QUAD-01 Solve: x^2-9=0
QUAD-02 Solve: x^2-5x+6=0
QUAD-03 Solve: 2x^2-3x-2=0
QUAD-04 Convert: y=x^2-4x+1 to vertex form
QUAD-05 Roots -2 and 3: write equation + axis of symmetry
QUAD-06 Find k: x^2+2x+k=0 has one real root
QUAD-07 Find k: x^2-4x+k=0 has no real roots
QUAD-08 Story: h(t)=-t^2+6t+7 find max height + time
Answer Key:
01 x=±3
02 x=2,3
03 x=2, -1/2
04 y=(x-2)^2-3
05 y=(x+2)(x-3); axis x=0.5
06 k=1
07 k>4
08 t=3, h=16
Marking:
5 pts each = 40
- 1pt invariant meaning (roots/vertex/Δ)
- 1pt check (resubstitute / Δ sign)
- 3pt method + correct answer
Student Answer Packet Template:
paper_id=’EPS-QUAD-30-01′ + answers[] list
============================================================
CLUSTER PAGE INSERT #3
AMATH_TRIG_EQ — WordPress-Ready Full Insert v1.4
Slug: /mathos-amath-trig-equations-cluster-v1-4/
[H1] A-Math Trig Equations Cluster v1.4 (Runnable + Seed Packs + EPS)
[H2] Definition Lock
Trig equations = periodicity + symmetry + interval contract.
TruthFence: validator compares solution sets; must be complete in the interval.
[H2] Cluster Skills (SkillIDs)
- PORT_AM_TRIG_01 TrigIdentities
- PORT_AM_TRIG_02 TrigEquations
Core Anchors: - SKILL_I0 InvariantBasics
- SKILL_VER0 VerificationContract (interval completeness)
- SKILL_R0 RewriteRules
[H2] Interval Contract (DC_TRIG_INTERVAL)
Rule:
- Provide ALL solutions in the interval
- Provide ONLY solutions in the interval
- Lock unit (degrees/radians) explicitly
Checklist:
- CHK_domaincheck (interval)
- CHK_snapshot_steps (candidate list)
- CHK_boundscheck (angles)
- CHK_invariant_sentence
[H2] QuickPick
QuickPick:
level=AMATH
topic=Trigonometry
subtopic=Equations in interval
goal=exam_ready
common_issue=missing solutions + notation confusion
time_budget_minutes=75
[H2] TL Seed Packs
- PORT_AM_TRIG_01 (12) — paste from v1.3
- PORT_AM_TRIG_02 (12) — paste from v1.3
[H2] MicroTest Seed Packs
- MTB-TID-PACK-01, MTB-TID-PACK-02
- MTB-TEQ-PACK-01, MTB-TEQ-PACK-02
[H2] Validator Examples Panel (Trig Equations)
Example A — INCORRECT (incomplete set)
Problem: sinθ=1/2, 0°≤θ≤360°
Student: {30°}
Validator: INCORRECT (missing 150°)
ErrID: Err_domain_ignore (interval completeness) / Err_notation_confuse
Example B — UNVERIFIED (unit not stated)
Problem: “Solve sinθ=1/2 for 0≤θ≤2π”
Student answers in degrees
Validator: UNVERIFIED
Follow-up: clarify unit and interval.
Example C — CORRECT (set)
Student: {30°,150°}
Validator: CORRECT
[H2] EPS-30 Mini Paper (Trig Equations)
Paper Items (8):
TRIG-01 Simplify: 1 – sin^2θ
TRIG-02 Simplify: (1-cosθ)(1+cosθ)
TRIG-03 Solve sinθ=1/2 for 0°≤θ≤360°
TRIG-04 Solve cosθ=1/2 for 0°≤θ≤360°
TRIG-05 Solve tanθ=1 for 0°≤θ≤360°
TRIG-06 Solve 2sinθ=√3 for 0°≤θ≤360°
TRIG-07 Solve sin(2θ)=0 for 0°≤θ≤360°
TRIG-08 Solve sinθ=-1/2 for 0°≤θ≤360°
Answer Key:
01 cos^2θ
02 sin^2θ
03 {30°,150°}
04 {60°,300°}
05 {45°,225°}
06 {60°,120°}
07 {0°,90°,180°,270°,360°}
08 {210°,330°}
Marking:
5 pts each = 40
- 1pt identity/rewrite invariant
- 1pt interval/unit lock
- 3pt correct solution set + method
Student Answer Packet Template:
paper_id=’EPS-TRIGEQ-30-01′ + answers[] list
============================================================
NOTE ABOUT THE “PASTE FROM v1.3” LINES
To keep this insert clean, wherever you see:
“paste the 12 TL items exactly as in v1.3”
you replace that line with the 12 TL blocks already produced in v1.3.“`
WORDPRESS PAGE — FULL EXPANDED (INLINED) v1.4CLUSTER 1: AMATH_LOG_EXPSlug: /mathos-amath-logs-exponentials-cluster-v1-4/============================================================[H1] A-Math Logs & Exponentials Cluster v1.4 (Runnable + Seed Packs + EPS)[H2] Definition LockLogs/Exponentials = rewrite rules + domain contracts + multiplicative iteration.TruthFence: grading must validate. UNVERIFIED ⇒ paste steps/original question/domain.[H2] Cluster Skills (SkillIDs)Primary:- PORT_AM_LOG_01 LogLaws- PORT_AM_EXP_01 ExponentialModelsCore Anchors:- SKILL_R0 RewriteRules- SKILL_VER0 VerificationContract (domain discipline)- SKILL_ERR0 ErrorBoundsBasics[H2] Failure Mode TraceMissing DC_LOG → accepts invalid solution → fake mastery → timed mixed set collapse.Repair: enforce DC_LOG + validator + checklist + retest.[H2] Domain Contract (DC_LOG)Rule: every log(argument) must satisfy argument > 0.Operator must write domain BEFORE solving.Validator filters solutions using DC_LOG.Checklist:- CHK_domaincheck- CHK_resubstitute- CHK_boundscheck[H2] QuickPick (copy/paste)QuickPick: level=AMATH topic=Logarithms subtopic=Domain goal=exam_ready common_issue=domain mistakes + time pressure time_budget_minutes=75[H2] Session RunnerUse SYSTEM_PROMPT_SESSION_V1 from /mathos-ai-runner/[H2] One-Button Scoring (OBPL)Use SYSTEM_PROMPT_OBPL_V1 from /mathos-obpl-one-button-scoring/------------------------------------------------------------[H2] TL Seed Pack (12) — PORT_AM_LOG_01 LogLawsValidator: V4+V3 | DomainContract: DC_LOG | AnswerType: EXPRESSION / SET_OF_SOLUTIONSChecks: CHK_domaincheck, CHK_resubstitute, CHK_boundscheck------------------------------------------------------------[D1] TL-LOG-D1-01 (SYMBOLIC)Invariant: "Log laws are rewrites; domain must hold."Prompt: "Simplify: log(3) + log(5). State domain."Expected: "log(15)"Trap: Err_log_rules_mix[D1] TL-LOG-D1-02 (SYMBOLIC)Prompt: "Simplify: log(8) - log(2). State domain."Expected: "log(4)"[D1] TL-LOG-D1-03 (ERRORSPOT)Prompt: "Find the mistake: log(a+b)=log(a)+log(b). Give a counterexample with numbers."Expected: "Not true; e.g., a=1,b=1: log(2) ≠ log(1)+log(1)."Trap: Err_log_rules_mix[D2] TL-LOG-D2-01 (SYMBOLIC)Prompt: "Simplify fully: log((x-1)(x+2)) - log(x-1). State domain."Domain: "x-1>0 and x+2>0"Expected: "log(x+2)"Trap: Err_domain_ignore[D2] TL-LOG-D2-02 (SYMBOLIC)Prompt: "Solve: log(x-1)=log(7). State domain and answer."Domain: "x-1>0"Expected: "x=8"[D2] TL-LOG-D2-03 (SYMBOLIC)Prompt: "Solve: log(x)+log(x-3)=log(10). State domain."Domain: "x>0 and x-3>0"Expected: "x=5"Trap: Err_domain_ignore[D3] TL-LOG-D3-01 (STORY)Prompt: "A student solved log(x-2)+log(x-5)=log(21) and wrote x=7 and x=0. Which is valid? Explain using domain."Expected: "x=7 valid; x=0 invalid because domain requires x>5."Trap: Err_domain_ignore[D3] TL-LOG-D3-02 (ERRORSPOT)Prompt: "Spot the illegal step: log(x-1)+log(x+1)=log((x-1)+(x+1)). Correct it."Expected: "Illegal. Correct: log((x-1)(x+1)) = log(x^2-1)."Trap: Err_log_rules_mix[D3] TL-LOG-D3-03 (SYMBOLIC)Prompt: "Solve: log(x-1)+log(x-3)=log(8). Give all solutions and filter by domain."Domain: "x>3"Expected: "x=5 only (reject x=-1)."Trap: Err_domain_ignore[D4] TL-LOG-D4-01 (SYMBOLIC)Prompt: "Solve: log2(x)+log2(x-2)=3. State domain; give solutions."Domain: "x>2"Expected: "x=4"Trap: Err_domain_ignore[D4] TL-LOG-D4-02 (SYMBOLIC)Prompt: "Solve: log(x-4)-log(x-6)=log(3). State domain."Domain: "x>6"Expected: "x=9"Trap: Err_domain_ignore[D4] TL-LOG-D4-03 (SYMBOLIC)Prompt: "Solve: log(x+1)+log(x-1)=log(16). State domain and solutions."Domain: "x>1"Expected: "x=√17"Trap: Err_domain_ignore------------------------------------------------------------[H2] TL Seed Pack (12) — PORT_AM_EXP_01 ExponentialModelsValidator: V2/V1 | DomainContract: DC_DENOM (if any) | AnswerType: EXPRESSION / NUMERICChecks: CHK_unitscheck, CHK_boundscheck, CHK_resubstitute------------------------------------------------------------[D1] TL-EXP-D1-01 (STORY)Invariant: "Exponential change = multiplicative iteration."Prompt: "A value doubles every hour. If it is 5 at hour 0, write V(t)."Expected: "V(t)=5·2^t"[D1] TL-EXP-D1-02 (SYMBOLIC)Prompt: "Simplify: 2^3 · 2^5"Expected: "2^8"[D1] TL-EXP-D1-03 (STORY)Prompt: "A population is 100 and grows 10% per year. Write P(n)."Expected: "P(n)=100(1.1)^n"Trap: Err_units_ignore[D2] TL-EXP-D2-01 (STORY)Prompt: "Decay: 200 decreases by 15% each month. Write value after 2 months."Expected: "200(0.85)^2"[D2] TL-EXP-D2-02 (SYMBOLIC)Prompt: "Solve: 3·2^t = 96."Expected: "t=5"[D2] TL-EXP-D2-03 (TABLE)Prompt: "Given table: t=0→50, t=1→75, t=2→112.5. Identify model form and ratio."Expected: "Multiply by 1.5 each step; V(t)=50(1.5)^t"[D3] TL-EXP-D3-01 (STORY)Prompt: "Two accounts: A grows by 8% yearly, B grows by 6% yearly but starts larger. Write both models and state what decides when A overtakes."Expected: "A=A0(1.08)^n, B=B0(1.06)^n; solve intersection A0(1.08)^n=B0(1.06)^n."Trap: Err_inverse_confuse[D3] TL-EXP-D3-02 (SYMBOLIC)Prompt: "Solve: 5(1.2)^n = 20."Expected: "n = log(4)/log(1.2) (numeric acceptable)."[D3] TL-EXP-D3-03 (ERRORSPOT)Prompt: "Find the mistake: (1.1)^(a+b) = 1.1^a + 1.1^b. Correct it."Expected: "Incorrect; correct: 1.1^(a+b)=1.1^a·1.1^b."[D4] TL-EXP-D4-01 (STORY)Prompt: "A drug concentration is 80 and halves every 6 hours. Find time t (hours) to reach 10."Expected: "80(1/2)^(t/6)=10 → t=18"Trap: Err_inverse_confuse[D4] TL-EXP-D4-02 (STORY)Prompt: "Find n such that 100(0.9)^n < 50."Expected: "n > log(0.5)/log(0.9)"Trap: Err_notation_confuse[D4] TL-EXP-D4-03 (STORY)Prompt: "Compound interest: $5000 at 3% p.a. Find after 4 years and interpret meaning of the exponent."Expected: "5000(1.03)^4 (exponent counts compounding steps)."Trap: Err_units_ignore------------------------------------------------------------[H2] MicroTest Seed Packs — PORT_AM_LOG_01 (2 packs)------------------------------------------------------------MTB-LOG-PACK-01 (D2)Q1 (Invariant): "Before using log laws, what must be true about every log argument?"Answer: "Each argument must be > 0 (domain)."Q2 (Apply): "Simplify: log(12) - log(3)."Answer: "log(4)"Q3 (Transfer): "Solve log(x-1)=log(5). State domain and answer."Answer: "x>1; x=6"MTB-LOG-PACK-02 (D3)Q1: "Why can a solution from algebra be rejected after solving a log equation?"Answer: "It may violate the domain (log argument not >0)."Q2: "Solve: log(x)+log(x-3)=log(10)."Answer: "x=5 (domain x>3)."Q3: "A student got x=5 and x=-1 for log(x-1)+log(x-3)=log(8). Which is valid and why?"Answer: "x=5 valid; x=-1 invalid (domain x>3)."------------------------------------------------------------[H2] MicroTest Seed Packs — PORT_AM_EXP_01 (2 packs)------------------------------------------------------------MTB-EXP-PACK-01 (D2)Q1: "What does it mean when something grows by a fixed percentage each step?"Answer: "It multiplies by a constant factor each step."Q2: "Solve: 3·2^t=96."Answer: "t=5"Q3: "A value is 100 and decreases 20% per month. Write V(n) and find V(2)."Answer: "V(n)=100(0.8)^n; V(2)=64"MTB-EXP-PACK-02 (D3)Q1: "Why is exponential growth called multiplicative iteration?"Answer: "Each step multiplies by the same factor; repeated multiplication."Q2: "Solve: 5(1.2)^n=20."Answer: "n=log(4)/log(1.2) (≈7.6)"Q3: "Two models: A=50(1.1)^n and B=60(1.05)^n. Which grows faster and how do you decide when A overtakes B?"Answer: "A grows faster (1.1>1.05); solve 50(1.1)^n=60(1.05)^n."[H2] Validator Examples Panel (Logs/Exp)Example A — UNVERIFIED (missing original question)Student answer: "x=5"Problem: not providedValidator result: UNVERIFIEDFollow-up needed:- paste the original question (or the equation after rewrite)- paste student steps (at least 2 lines)- paste stated domain (if any)Example B — INCORRECT (domain fail)Problem: log(x-1)+log(x-3)=log(8)Student: x=5,-1Validator: INCORRECTReason: x=-1 violates DC_LOGErrID: Err_domain_ignoreExample C — CORRECT (domain stated + filtered)Student steps:- domain: x>3- algebra solutions: x=5,-1- filtered: x=5Validator: CORRECTParent paste format:WorkSample: problem_text='...' student_steps='...' student_answer='...' time_sec=__ (optional)------------------------------------------------------------[H2] EPS-30 Mini Paper (Logs & Exp)------------------------------------------------------------EPS-OUT (1) Paper Items (8 items / 30 min)LOGEXP-01 [PORT_AM_LOG_01] Solve: log(x-1)=log(7). State domain.LOGEXP-02 [PORT_AM_LOG_01] Simplify: log(12)-log(3). State domain.LOGEXP-03 [PORT_AM_LOG_01] Solve: log(x)+log(x-3)=log(10). State domain + filter.LOGEXP-04 [PORT_AM_LOG_01] Error-spot: log(a+b)=log(a)+log(b). Give counterexample.LOGEXP-05 [PORT_AM_EXP_01] Model: 100 grows 10% per year. Write P(n).LOGEXP-06 [PORT_AM_EXP_01] Solve: 3·2^t=96.LOGEXP-07 [PORT_AM_EXP_01] Decay: 200 decreases 15% each month. Write value after 2 months.LOGEXP-08 [PORT_AM_EXP_01] Solve: 5(1.2)^n=20 (exact form allowed).EPS-OUT (2) Answer Key01 x=8, domain x>102 log(4)03 x=5, domain x>304 Not true; counterexample e.g. a=b=105 P(n)=100(1.1)^n06 t=507 200(0.85)^208 n=log(4)/log(1.2)EPS-OUT (3) Marking Scheme (40 points total)Each item 5 points:- 1pt invariant sentence (rewrite/domain OR multiplicative factor)- 1pt check (domain/units/bounds/resubstitute as relevant)- 3pt method + correct answerCommon traps:- LOG: Err_domain_ignore, Err_log_rules_mix- EXP: Err_inverse_confuse, Err_units_ignoreEPS-OUT (4) Student Answer Packet TemplateEPS_StudentAnswers: paper_id='EPS-LOGEXP-30-01' answers=[ {item_id:'LOGEXP-01', response:'...', steps:'...', time_sec:__}, {item_id:'LOGEXP-02', response:'...', steps:'...', time_sec:__}, {item_id:'LOGEXP-03', response:'...', steps:'...', time_sec:__}, {item_id:'LOGEXP-04', response:'...', steps:'...', time_sec:__}, {item_id:'LOGEXP-05', response:'...', steps:'...', time_sec:__}, {item_id:'LOGEXP-06', response:'...', steps:'...', time_sec:__}, {item_id:'LOGEXP-07', response:'...', steps:'...', time_sec:__}, {item_id:'LOGEXP-08', response:'...', steps:'...', time_sec:__} ]
WORDPRESS PAGE — FULL EXPANDED (INLINED) v1.4CLUSTER 2: AMATH_QUADSlug: /mathos-amath-quadratics-cluster-v1-4/============================================================[H1] A-Math Quadratics Cluster v1.4 (Runnable + Seed Packs + EPS)[H2] Definition LockQuadratics = one object, many views (roots/vertex/graph/coeff structure).TruthFence: validate solution sets; resubstitute to verify.[H2] Cluster Skills (SkillIDs)- PORT_AM_QUAD_01 QuadraticStructure- PORT_AM_QUAD_02 DiscriminantAsContractCore Anchors:- SKILL_G0 GraphAsGeometryOfFunction- SKILL_R0 RewriteRules- SKILL_VER0 VerificationContract[H2] Failure Mode TraceSingle-method solving → missed root/condition → wrong interpretation → exam collapse.Repair: view swap + resubstitution + discriminant contract.Checklist:- CHK_resubstitute- CHK_boundscheck- CHK_invariant_sentence[H2] QuickPickQuickPick: level=AMATH topic=Quadratics subtopic=Discriminant conditions goal=exam_ready common_issue=sign + careless time_budget_minutes=75[H2] Session Runner + OBPLUse the main runner pages:- /mathos-ai-runner/- /mathos-obpl-one-button-scoring/------------------------------------------------------------[H2] TL Seed Pack (12) — PORT_AM_QUAD_01 QuadraticStructureValidator: V3+V1 | AnswerType: SET_OF_SOLUTIONS / EXPRESSIONChecks: CHK_resubstitute, CHK_boundscheck, CHK_invariant_sentence------------------------------------------------------------[D1] TL-QUAD-D1-01 (SYMBOLIC)Invariant: "Solving finds roots where expression = 0."Prompt: "Solve: x^2=25"Expected: "x=±5"[D1] TL-QUAD-D1-02 (SYMBOLIC)Prompt: "Solve: x^2-9=0"Expected: "x=±3"[D1] TL-QUAD-D1-03 (GRAPH)Prompt: "A parabola crosses x-axis at x=1 and x=4. Write one possible equation."Expected: "y=(x-1)(x-4)"[D2] TL-QUAD-D2-01 (SYMBOLIC)Prompt: "Factor and solve: x^2-5x+6=0"Expected: "x=2,3"Trap: Err_factor_miss[D2] TL-QUAD-D2-02 (SYMBOLIC)Prompt: "Solve: x^2-4x-5=0"Expected: "x=5,-1"Trap: Err_sign[D2] TL-QUAD-D2-03 (STORY)Prompt: "The product of two numbers is -5 and their sum is 4. Form a quadratic and solve."Expected: "t^2-4t-5=0 → t=5,-1"[D3] TL-QUAD-D3-01 (GRAPH)Prompt: "A parabola has roots -2 and 3 and opens upward. Write equation and axis of symmetry."Expected: "y=(x+2)(x-3); axis x=0.5"[D3] TL-QUAD-D3-02 (SYMBOLIC)Prompt: "Convert y=x^2-6x+5 into vertex form."Expected: "y=(x-3)^2-4"[D3] TL-QUAD-D3-03 (ERRORSPOT)Prompt: "A student solved x^2-6x+8=0 and wrote x=2 only. Find what was missed."Expected: "x=4 also."Trap: Err_skip_step[D4] TL-QUAD-D4-01 (SYMBOLIC)Prompt: "Solve: 2x^2-3x-2=0 and check."Expected: "x=2, -1/2"Trap: Err_quadratic_formula_slip[D4] TL-QUAD-D4-02 (SYMBOLIC)Prompt: "Solve: 3x^2+2x-8=0"Expected: "x=4/3, -2"Trap: Err_sign[D4] TL-QUAD-D4-03 (STORY)Prompt: "A projectile height is h(t)=-t^2+6t+7. Find maximum height and when it occurs."Expected: "t=3; h=16"------------------------------------------------------------[H2] TL Seed Pack (12) — PORT_AM_QUAD_02 DiscriminantAsContractValidator: V2/V3 | AnswerType: STATEMENT / INTERVAL / SETChecks: CHK_boundscheck, CHK_invariant_sentence------------------------------------------------------------[D1] TL-DISC-D1-01 (SYMBOLIC)Invariant: "Discriminant decides number of real roots."Prompt: "For x^2+4x+4=0, compute discriminant and state roots count."Expected: "Δ=0, one repeated root"[D1] TL-DISC-D1-02 (SYMBOLIC)Prompt: "For x^2+1=0, compute Δ and state real roots?"Expected: "Δ<0, no real roots"[D1] TL-DISC-D1-03 (STORY)Prompt: "What condition on Δ gives two distinct real roots?"Expected: "Δ>0"[D2] TL-DISC-D2-01 (SYMBOLIC)Prompt: "Find k so x^2+2x+k=0 has one real root."Expected: "k=1"[D2] TL-DISC-D2-02 (SYMBOLIC)Prompt: "Find k so x^2-4x+k=0 has no real roots."Expected: "k>4"[D2] TL-DISC-D2-03 (SYMBOLIC)Prompt: "Find k so 2x^2+3x+k=0 has two distinct real roots."Expected: "k<9/8"[D3] TL-DISC-D3-01 (STORY)Prompt: "A parabola y=x^2+px+q touches the x-axis. What must be true about p and q?"Expected: "Δ=0 → p^2-4q=0"[D3] TL-DISC-D3-02 (GRAPH)Prompt: "A parabola does not cross x-axis. State condition on Δ and interpret."Expected: "Δ<0; no real roots."[D3] TL-DISC-D3-03 (SYMBOLIC)Prompt: "Find range of k so x^2+2(k-1)x+k=0 has real roots."Expected: "Δ≥0 → 4(k-1)^2-4k ≥0"[D4] TL-DISC-D4-01 (SYMBOLIC)Prompt: "For x^2-(k+2)x+k=0, find k such that roots are equal."Expected: "Δ=0 → (k+2)^2-4k=0 → k^2+4=0 → no real k"Note: "This is a valid result: no real parameter satisfies."[D4] TL-DISC-D4-02 (SYMBOLIC)Prompt: "Find k so 3x^2+kx+3=0 has two distinct real roots."Expected: "|k|>6"[D4] TL-DISC-D4-03 (STORY)Prompt: "A quadratic has exactly one real solution. Express the condition using Δ and solve for parameter (generic statement)."Expected: "Δ=0 then solve (context supplies equation)."------------------------------------------------------------[H2] MicroTest Seed Packs — PORT_AM_QUAD_01 (2 packs)------------------------------------------------------------MTB-QUAD-PACK-01 (D2)Q1: "What does a root mean on the graph of y=f(x)?"Answer: "x-value where graph crosses/touches x-axis (f(x)=0)."Q2: "Solve: x^2-6x+8=0"Answer: "x=2,4"Q3: "A parabola has roots 1 and 5. Write one equation."Answer: "y=(x-1)(x-5) (any nonzero multiple acceptable)."MTB-QUAD-PACK-02 (D3)Q1: "Why should you check solutions by substitution?"Answer: "To confirm they satisfy the original equation; catches algebra slips."Q2: "Convert y=x^2-4x+1 to vertex form."Answer: "y=(x-2)^2-3"Q3: "A student wrote only one solution for x^2-9=0. What’s missing and why?"Answer: "Two solutions ±3 because squaring loses sign."------------------------------------------------------------[H2] MicroTest Seed Packs — PORT_AM_QUAD_02 (2 packs)------------------------------------------------------------MTB-DISC-PACK-01 (D2)Q1: "What does Δ tell you?"Answer: "Number/type of real roots."Q2: "Find k so x^2+2x+k=0 has one real root."Answer: "k=1"Q3: "Find k so x^2-4x+k=0 has no real roots."Answer: "k>4"MTB-DISC-PACK-02 (D3)Q1: "What condition on Δ means the parabola touches the x-axis?"Answer: "Δ=0"Q2: "Find k so 2x^2+3x+k=0 has two distinct real roots."Answer: "k<9/8"Q3: "Given y=x^2+px+q touches x-axis, write the condition relating p and q."Answer: "p^2=4q"[H2] Validator Examples Panel (Quadratics)Example A — UNVERIFIED (ambiguous / missing original)Student: "x=2/3"Original: not pastedValidator: UNVERIFIEDFollow-up: paste original equation + full solution set.Example B — INCORRECT (missed root)Problem: x^2-6x+8=0Student: x=2Validator: INCORRECT (missing x=4)ErrID: Err_skip_step / Err_factor_missExample C — CORRECT (set equivalence)Student: "x=2,4"Expected: "{2,4}"Validator: CORRECT (set equivalence)------------------------------------------------------------[H2] EPS-30 Mini Paper (Quadratics)------------------------------------------------------------EPS-OUT (1) Paper Items (8 items / 30 min)QUAD-01 Solve: x^2-9=0QUAD-02 Solve: x^2-5x+6=0QUAD-03 Solve: 2x^2-3x-2=0QUAD-04 Convert: y=x^2-4x+1 to vertex formQUAD-05 Roots -2 and 3: write equation + axis of symmetryQUAD-06 Find k: x^2+2x+k=0 has one real rootQUAD-07 Find k: x^2-4x+k=0 has no real rootsQUAD-08 Story: h(t)=-t^2+6t+7 find max height + timeEPS-OUT (2) Answer Key01 x=±302 x=2,303 x=2, -1/204 y=(x-2)^2-305 y=(x+2)(x-3); axis x=0.506 k=107 k>408 t=3, h=16EPS-OUT (3) Marking Scheme (40 points total)Each item 5 points:- 1pt invariant sentence (roots/vertex/Δ meaning)- 1pt check (resubstitute / Δ sign / reasonableness)- 3pt method + correct answerCommon traps:- Err_sign, Err_factor_miss, Err_skip_step, Err_quadratic_formula_slipEPS-OUT (4) Student Answer Packet TemplateEPS_StudentAnswers: paper_id='EPS-QUAD-30-01' answers=[ {item_id:'QUAD-01', response:'...', steps:'...', time_sec:__}, {item_id:'QUAD-02', response:'...', steps:'...', time_sec:__}, {item_id:'QUAD-03', response:'...', steps:'...', time_sec:__}, {item_id:'QUAD-04', response:'...', steps:'...', time_sec:__}, {item_id:'QUAD-05', response:'...', steps:'...', time_sec:__}, {item_id:'QUAD-06', response:'...', steps:'...', time_sec:__}, {item_id:'QUAD-07', response:'...', steps:'...', time_sec:__}, {item_id:'QUAD-08', response:'...', steps:'...', time_sec:__} ]
WORDPRESS PAGE — FULL EXPANDED (INLINED) v1.4CLUSTER 3: AMATH_TRIG_EQSlug: /mathos-amath-trig-equations-cluster-v1-4/============================================================[H1] A-Math Trig Equations Cluster v1.4 (Runnable + Seed Packs + EPS)[H2] Definition LockTrig equations = periodicity + symmetry + interval contract.TruthFence: validator compares solution sets; answers must be complete in the interval.[H2] Cluster Skills (SkillIDs)- PORT_AM_TRIG_01 TrigIdentities (rewrite legality)- PORT_AM_TRIG_02 TrigEquations (solution sets)Core Anchors:- SKILL_I0 InvariantBasics (symmetry)- SKILL_VER0 VerificationContract (interval completeness)- SKILL_R0 RewriteRules[H2] Interval Contract (DC_TRIG_INTERVAL)Rule:- Provide ALL solutions in the interval- Provide ONLY solutions in the interval- Lock unit (degrees/radians) explicitlyChecklist:- CHK_domaincheck (interval)- CHK_snapshot_steps (candidate list)- CHK_boundscheck (angles)- CHK_invariant_sentence[H2] QuickPickQuickPick: level=AMATH topic=Trigonometry subtopic=Equations in interval goal=exam_ready common_issue=missing solutions + notation confusion time_budget_minutes=75[H2] Session Runner + OBPLUse the main runner pages:- /mathos-ai-runner/- /mathos-obpl-one-button-scoring/------------------------------------------------------------[H2] TL Seed Pack (12) — PORT_AM_TRIG_01 TrigIdentitiesValidator: V2 (+ domain where used) | AnswerType: STATEMENT / EXPRESSIONChecks: CHK_invariant_sentence, CHK_domaincheck (when needed)------------------------------------------------------------[D1] TL-TID-D1-01 (SYMBOLIC)Invariant: "Identity = true for all valid θ; rewrites preserve truth."Prompt: "State the Pythagorean identity relating sin and cos."Expected: "sin^2θ + cos^2θ = 1"[D1] TL-TID-D1-02 (SYMBOLIC)Prompt: "Simplify: sin^2θ + cos^2θ"Expected: "1"[D1] TL-TID-D1-03 (ERRORSPOT)Prompt: "Is sin(α+β)=sinα+sinβ true? Give a counterexample or correction."Expected: "Not true; must use the correct compound-angle formula."Trap: Err_trig_identity_mix[D2] TL-TID-D2-01 (SYMBOLIC)Prompt: "Simplify: (1 - cos^2θ)"Expected: "sin^2θ"[D2] TL-TID-D2-02 (SYMBOLIC)Prompt: "Express tan^2θ in terms of sec^2θ."Expected: "tan^2θ = sec^2θ - 1"[D2] TL-TID-D2-03 (SYMBOLIC)Prompt: "Prove: (1+tan^2θ)cos^2θ = 1"Expected: "Use 1+tan^2θ=sec^2θ and sec^2θ·cos^2θ=1."[D3] TL-TID-D3-01 (ERRORSPOT)Prompt: "A student rewrote 1 - sin^2θ as 1 - sinθ. Explain why illegal and correct."Expected: "Illegal because sin^2θ≠sinθ. Correct: 1 - sin^2θ = cos^2θ."[D3] TL-TID-D3-02 (SYMBOLIC)Prompt: "Simplify: (sin^2θ)/(1 - cos^2θ)"Expected: "1"Trap: Err_trig_identity_mix[D3] TL-TID-D3-03 (SYMBOLIC)Prompt: "Prove: tanθ·cosθ = sinθ"Expected: "tanθ=sinθ/cosθ ⇒ (sinθ/cosθ)·cosθ=sinθ."[D4] TL-TID-D4-01 (SYMBOLIC)Prompt: "Simplify: (1 - cosθ)(1 + cosθ)"Expected: "sin^2θ"[D4] TL-TID-D4-02 (SYMBOLIC)Prompt: "Simplify: (sec^2θ - 1)/tan^2θ"Expected: "1"[D4] TL-TID-D4-03 (SYMBOLIC)Prompt: "Given sinθ=3/5 (θ acute), find tanθ."Expected: "3/4"------------------------------------------------------------[H2] TL Seed Pack (12) — PORT_AM_TRIG_02 TrigEquationsValidator: V4+V3 | DomainContract: DC_TRIG_INTERVAL (unit lock) | AnswerType: SET_OF_SOLUTIONSChecks: CHK_domaincheck, CHK_snapshot_steps, CHK_boundscheckAssume DEGREES unless stated otherwise (unit is locked in every prompt).------------------------------------------------------------[D1] TL-TEQ-D1-01 (SYMBOLIC)Invariant: "Multiple solutions from periodicity + symmetry; filter by interval."Prompt: "Solve sinθ=0 for 0°≤θ≤360°."Expected: "{0°,180°,360°}"[D1] TL-TEQ-D1-02 (SYMBOLIC)Prompt: "Solve cosθ=1 for 0°≤θ≤360°."Expected: "{0°,360°}"[D1] TL-TEQ-D1-03 (SYMBOLIC)Prompt: "Solve sinθ=1 for 0°≤θ≤360°."Expected: "{90°}"[D2] TL-TEQ-D2-01 (SYMBOLIC)Prompt: "Solve sinθ=1/2 for 0°≤θ≤360°."Expected: "{30°,150°}"[D2] TL-TEQ-D2-02 (SYMBOLIC)Prompt: "Solve cosθ=1/2 for 0°≤θ≤360°."Expected: "{60°,300°}"[D2] TL-TEQ-D2-03 (SYMBOLIC)Prompt: "Solve tanθ=1 for 0°≤θ≤360°."Expected: "{45°,225°}"[D3] TL-TEQ-D3-01 (SYMBOLIC)Prompt: "Solve 2sinθ=√3 for 0°≤θ≤360°."Expected: "{60°,120°}"[D3] TL-TEQ-D3-02 (SYMBOLIC)Prompt: "Solve sin(2θ)=0 for 0°≤θ≤360°."Expected: "{0°,90°,180°,270°,360°}"[D3] TL-TEQ-D3-03 (SYMBOLIC)Prompt: "Solve cos(2θ)=1/2 for 0°≤θ≤360°."Expected: "{30°,150°,210°,330°}"[D4] TL-TEQ-D4-01 (SYMBOLIC)Prompt: "Solve sinθ=-1/2 for 0°≤θ≤360°."Expected: "{210°,330°}"[D4] TL-TEQ-D4-02 (SYMBOLIC)Prompt: "Solve tan(2θ)=1 for 0°≤θ≤360°."Expected: "{22.5°,112.5°,202.5°,292.5°}"[D4] TL-TEQ-D4-03 (SYMBOLIC)Prompt: "Solve 3cosθ= -1 for 0°≤θ≤360°."Expected: "{arccos(-1/3), 360°-arccos(-1/3)} (numeric acceptable)"Trap: Err_notation_confuse------------------------------------------------------------[H2] MicroTest Seed Packs — PORT_AM_TRIG_01 (2 packs)------------------------------------------------------------MTB-TID-PACK-01 (D2)Q1: "What does 'identity' mean?"Answer: "True for all valid θ (within its domain)."Q2: "Simplify: 1 - sin^2θ"Answer: "cos^2θ"Q3: "Transfer: Simplify (1 - cosθ)(1 + cosθ). Explain which identity you used."Answer: "sin^2θ using 1 - cos^2θ = sin^2θ."MTB-TID-PACK-02 (D3)Q1: "Why must a rewrite preserve truth for all θ (not just one value)?"Answer: "Otherwise it’s not an identity; it changes the statement."Q2: "Prove: tanθ·cosθ = sinθ"Answer: "tan=sin/cos → (sin/cos)cos=sin."Q3: "Error-spot: Is 1 - sin^2θ = 1 - sinθ correct? If not, correct it."Answer: "Incorrect; correct: 1 - sin^2θ = cos^2θ."------------------------------------------------------------[H2] MicroTest Seed Packs — PORT_AM_TRIG_02 (2 packs)------------------------------------------------------------MTB-TEQ-PACK-01 (D2)Q1: "Why can trig equations have more than one solution in an interval?"Answer: "Periodicity and symmetry produce multiple angles with same value."Q2: "Solve sinθ=1/2 for 0°≤θ≤360°."Answer: "{30°,150°}"Q3: "Transfer: Solve cosθ=1/2 for 0°≤θ≤360° and explain the two angles."Answer: "{60°,300°} (quadrants I and IV)."MTB-TEQ-PACK-02 (D3)Q1: "What must you always do after generating candidate trig solutions?"Answer: "Filter by the given interval and ensure completeness."Q2: "Solve sin(2θ)=0 for 0°≤θ≤360°."Answer: "{0°,90°,180°,270°,360°}"Q3: "Transfer: Solve 2sinθ=√3 for 0°≤θ≤360°."Answer: "{60°,120°}"[H2] Validator Examples Panel (Trig Equations)Example A — INCORRECT (incomplete set)Problem: sinθ=1/2, 0°≤θ≤360°Student: {30°}Validator: INCORRECT (missing 150°)ErrID: Err_domain_ignore (interval completeness)Example B — UNVERIFIED (unit mismatch)Problem: "Solve sinθ=1/2 for 0≤θ≤2π"Student answers in degreesValidator: UNVERIFIEDFollow-up: confirm unit + provide answers in that unit.Example C — CORRECT (set)Student: {30°,150°}Validator: CORRECT------------------------------------------------------------[H2] EPS-30 Mini Paper (Trig Equations)------------------------------------------------------------EPS-OUT (1) Paper Items (8 items / 30 min)TRIG-01 Simplify: 1 - sin^2θTRIG-02 Simplify: (1-cosθ)(1+cosθ)TRIG-03 Solve sinθ=1/2 for 0°≤θ≤360°TRIG-04 Solve cosθ=1/2 for 0°≤θ≤360°TRIG-05 Solve tanθ=1 for 0°≤θ≤360°TRIG-06 Solve 2sinθ=√3 for 0°≤θ≤360°TRIG-07 Solve sin(2θ)=0 for 0°≤θ≤360°TRIG-08 Solve sinθ=-1/2 for 0°≤θ≤360°EPS-OUT (2) Answer Key01 cos^2θ02 sin^2θ03 {30°,150°}04 {60°,300°}05 {45°,225°}06 {60°,120°}07 {0°,90°,180°,270°,360°}08 {210°,330°}EPS-OUT (3) Marking Scheme (40 points total)Each item 5 points:- 1pt identity/invariant sentence- 1pt interval/unit lock (explicit)- 3pt correct method + complete solution setCommon traps:- Err_trig_identity_mix, Err_domain_ignore (completeness), Err_notation_confuseEPS-OUT (4) Student Answer Packet TemplateEPS_StudentAnswers: paper_id='EPS-TRIGEQ-30-01' answers=[ {item_id:'TRIG-01', response:'...', steps:'...', time_sec:__}, {item_id:'TRIG-02', response:'...', steps:'...', time_sec:__}, {item_id:'TRIG-03', response:'...', steps:'...', time_sec:__}, {item_id:'TRIG-04', response:'...', steps:'...', time_sec:__}, {item_id:'TRIG-05', response:'...', steps:'...', time_sec:__}, {item_id:'TRIG-06', response:'...', steps:'...', time_sec:__}, {item_id:'TRIG-07', response:'...', steps:'...', time_sec:__}, {item_id:'TRIG-08', response:'...', steps:'...', time_sec:__} ]
WHAT_THIS_IS (Almost-Code) — MathOS Runtime (AI-TeachRunner)ID: MATHOS_WHAT_THIS_IS_01Runtime: MathOS Runtime v1.xAudience: Parent / Student / Tutor / AI============================================================1) ONE-LINE============================================================MathOS Runtime = an AI-driven closed-loop teaching controller that teaches mathematics as a stability system (invariants + checks + retests), not as a topic list.============================================================2) DEFINITION_LOCK============================================================Math := invariant-preserving representation language for: Predict + Control + Verify + Compose.Teach := Observe → Infer → Plan → Act → Verify → Repair → Promote.TruthFence := do not guess grading; validate or return UNVERIFIED.============================================================3) WHAT YOU GET (OUTPUTS)============================================================Outputs: SESSION(A–H): A OracleReport B OperatorLessonPlan C ArchitectSandbox (0/1) D AdaptivePractice (+ traps + checks + answer types) E MicroTest (Q1 invariant / Q2 apply / Q3 transfer) + key + rubric F FenceDecision (TRUNCATE/STITCH/PROMOTE) + RepairRoute G CompressionSummary (3 lines) H NextSessionPlan (schedule + MachinePatch) OBPL (One-Button Scoring): - Score student answers - Validate answers (Validator) - Update StudentState (mastery/transfer/stability) - Generate next practice + next microtest + next schedule EPS (Exam Paper Simulator): - Generate timed mixed sets - Score + stability panel - Postmortem + 2-session repair plan============================================================4) WHY IT EXISTS (PROBLEM)============================================================Problem: Traditional math learning often produces: - "pattern correctness" without invariants, - careless collapse under time, - transfer failure when format changes, - fake mastery (looks good in drills, fails in exams).MathOS goal: Build Phase reliability: Correct when calm + correct when stressed + correct when format changes.============================================================5) CORE IDEA (THE ENGINE)============================================================Engine: - Sensors (microtests + practice signals) detect leaks early - Thresholds (FENCE) prevent collapse - Repair (Truncation + Stitching) restores stability - Promotion requires mastery + transfer + stability (not just accuracy)============================================================6) THE 3 LAWS (IN PRACTICE)============================================================LAW_1 (Invariant-First): Every problem has a "what stays the same" statement. Student must say it before solving (when required).LAW_2 (Contract-First for risky topics): If domain/interval matters (logs/trig/roots): write contract first (DC_LOG / DC_TRIG_INTERVAL / DC_SQRT_REAL / DC_DENOM). Any solution must satisfy the contract.LAW_3 (Promotion requires stability): PROMOTE only if: mastery >= T_deploy_mastery transfer >= T_deploy_transfer stability >= T_deploy_stability============================================================7) THE RELIABILITY LAYER (WHAT MAKES IT "AI-SAFE")============================================================Modules: StateStore SS_01: - persists StudentState across sessions (no reset) Validator v1: - checks equivalence (numeric tolerance / substitution / set/interval) - enforces domain contracts - returns CORRECT / INCORRECT / UNVERIFIEDPolicy: If UNVERIFIED: - do not update mastery upward - ask for original question or steps============================================================8) THE STUDENTSTATE (WHAT THE SYSTEM TRACKS)============================================================StudentState tracks: mastery(skill) // can do it now transfer(skill) // can do it in new format stability(skill) // can do it under time/load error_signatures // common mistake types dual_track // core vs exam port ratio + shear risk weekly_log // append-only session outcomes============================================================9) HOW A SESSION RUNS (EXECUTION)============================================================SESSION_RUN: Input: - StudentState - QuickPick (level/topic/goal/time) Process: - choose primary skill + (0..2) secondary skills - generate practice + microtest - run lesson plan - verify via microtest - fence decision: TRUNCATE if collapse risk STITCH if partial PROMOTE if stable Output: - A–H package + Next schedule============================================================10) HOW YOU USE IT (3-STEP USER FLOW)============================================================FLOW_PARENT_STUDENT: Step 1: Run SESSION (A–H) for today’s topic Step 2: Student does practice + microtest Step 3: Paste AnswerPacket into OBPL → get: updated StudentState + next practice + next scheduleOptional: - Run EPS once a week to stress-test exam stability============================================================11) WHAT IT IS NOT============================================================Not: - a static worksheet site - a “tips” blog - pure explanation without measurement - grading by guessingIt is: - a control system for building math capability reliably over time.============================================================12) MINIMUM SUCCESS CRITERIA============================================================Success = the student can: - explain the invariant, - solve correctly, - pass transfer question, - remain stable under timed conditions, - avoid repeat error signatures.END
Recommended Internal Links (Spine)
Start Here For Mathematics OS Articles:
- https://edukatesg.com/math-worksheets/
- https://edukatesg.com/mathos-runtime-mega-pack-v0-1/
- https://edukatesg.com/infinite-series-why-1-2-3-is-not-minus-one-over-twelve/
- https://edukatesg.com/math-games/
- https://edukatesg.com/how-mathematics-works-pdf/
- https://edukatesg.com/mathematics-definitions-by-mathematicians/
- https://edukatesg.com/pure-vs-applied-mathematics/
- https://edukatesg.com/three-types-of-mathematics/
- https://edukatesg.com/what-is-a-mathematics-degree-vs-course/
- https://edukatesg.com/what-is-mathematics-essay-template/
- https://edukatesg.com/history-of-mathematics-why-it-exists/
- https://edukatesg.com/pccs-to-wccs-math-flight/
- https://edukatesg.com/math-threshold-why-societies-suddenly-scale/
- https://edukatesg.com/math-as-simulation-language/
- https://edukatesg.com/seven-millennium-problems-explained-simply/
- https://edukatesg.com/the-math-transfer-test-same-structure-different-skin-the-fastest-way-to-find-real-ability/
- https://edukatesg.com/math-phase-slip-why-students-panic/
- https://edukatesg.com/math-fenceos-stop-loss-for-exam-mistakes/
- https://edukatesg.com/math-truncation-and-stitching-recovery-protocol/
- https://edukatesg.com/math-jokes-and-patterns-for-students/
- https://edukatesg.com/math-architect-training-pack-12-week/
- https://edukatesg.com/avoo-mathematics-role-lattice/
- https://edukatesg.com/mathematics-symmetry-breaking-1-0-negatives-decimals-calculus/
- https://edukatesg.com/how-mathematics-works-mechanism/
- https://edukatesg.com/math-as-mindos/
- https://edukatesg.com/math-as-productionos/
- https://edukatesg.com/what-is-mathematics-almost-code/
- https://edukatesg.com/math-architect-corridors-representation-invariant-reduction/
- https://edukatesg.com/history-of-mathematics-flight-mechanics/
- https://edukatesg.com/how-math-works-vorderman-what-it-teaches/
- https://edukatesg.com/mathos-runtime-control-tower-v0-1/
- https://edukatesg.com/mathos-fenceos-threshold-table-v0-1/
- https://edukatesg.com/mathos-sensors-pack-v0-1/
- https://edukatesg.com/mathos-failure-atlas-v0-1/
- https://edukatesg.com/mathos-recovery-corridors-p0-to-p3/
- https://edukatesg.com/mathos-data-adapter-spec-v0-1/
- https://edukatesg.com/mathos-in-12-lines/
- https://edukatesg.com/mathos-master-diagram-v0-1/
- https://edukatesg.com/mathos-registry-error-taxonomy-v0-1/
- https://edukatesg.com/mathos-registry-skill-nodes-v0-1/
- https://edukatesg.com/mathos-registry-concept-nodes-v0-1/
- https://edukatesg.com/mathos-registry-binds-v0-1/
- https://edukatesg.com/mathos-registry-method-corridors-v0-1/
- https://edukatesg.com/mathos-registry-transfer-packs-v0-1/
Start Here for Lattice Infrastructure Connectors
- https://edukatesg.com/singapore-international-os-level-0/
- https://edukatesg.com/singapore-city-os/
- https://edukatesg.com/singapore-parliament-house-os/
- https://edukatesg.com/smrt-os/
- https://edukatesg.com/singapore-port-containers-os/
- https://edukatesg.com/changi-airport-os/
- https://edukatesg.com/tan-tock-seng-hospital-os-ttsh-os/
- https://edukatesg.com/bukit-timah-os/
- https://edukatesg.com/bukit-timah-schools-os/
- https://edukatesg.com/bukit-timah-tuition-os/
- https://edukatesg.com/family-os-level-0-root-node/
- https://bukittimahtutor.com
- https://edukatesg.com/punggol-os/
- https://edukatesg.com/tuas-industry-hub-os/
- https://edukatesg.com/shenton-way-banking-finance-hub-os/
- https://edukatesg.com/singapore-museum-smu-arts-school-district-os/
- https://edukatesg.com/orchard-road-shopping-district-os/
- https://edukatesg.com/singapore-integrated-sports-hub-national-stadium-os/
- Sholpan Upgrade Training Lattice (SholpUTL): https://edukatesg.com/sholpan-upgrade-training-lattice-sholputl/
- https://edukatesg.com/human-regenerative-lattice-3d-geometry-of-civilisation/
- https://edukatesg.com/new-york-z2-institutional-lattice-civos-index-page-master-hub/
- https://edukatesg.com/civilisation-lattice/
- https://edukatesg.com/civ-os-classification/
- https://edukatesg.com/civos-classification-systems/
- https://edukatesg.com/how-civilization-works/
- https://edukatesg.com/civos-lattice-coordinates-of-students-worldwide/
- https://edukatesg.com/civos-worldwide-student-lattice-case-articles-part-1/
- https://edukatesg.com/new-york-z2-institutional-lattice-civos-index-page-master-hub/
- https://edukatesg.com/advantages-of-using-civos-start-here-stack-z0-z3-for-humans-ai/
- Education OS (How Education Works): https://edukatesg.com/education-os-how-education-works-the-regenerative-machine-behind-learning/
- Tuition OS: https://edukatesg.com/tuition-os-edukateos-civos/
- Civilisation OS kernel: https://edukatesg.com/civilisation-os/
- Root definition: What is Civilisation?
- Control mechanism: Civilisation as a Control System
- First principles index: Index: First Principles of Civilisation
- Regeneration Engine: The Full Education OS Map
- The Civilisation OS Instrument Panel (Sensors & Metrics) + Weekly Scan + Recovery Schedule (30 / 90 / 365)
- Inversion Atlas Super Index: Full Inversion CivOS Inversion
- https://edukatesg.com/government-os-general-government-lane-almost-code-canonical/
- https://edukatesg.com/healthcare-os-general-healthcare-lane-almost-code-canonical/
- https://edukatesg.com/education-os-general-education-lane-almost-code-canonical/
- https://edukatesg.com/finance-os-general-finance-banking-lane-almost-code-canonical/
- https://edukatesg.com/transport-os-general-transport-transit-lane-almost-code-canonical/
- https://edukatesg.com/food-os-general-food-supply-chain-lane-almost-code-canonical/
- https://edukatesg.com/security-os-general-security-justice-rule-of-law-lane-almost-code-canonical/
- https://edukatesg.com/housing-os-general-housing-urban-operations-lane-almost-code-canonical/
- https://edukatesg.com/community-os-general-community-third-places-social-cohesion-lane-almost-code-canonical/
- https://edukatesg.com/energy-os-general-energy-power-grid-lane-almost-code-canonical/
- https://edukatesg.com/community-os-general-community-third-places-social-cohesion-lane-almost-code-canonical/
- https://edukatesg.com/water-os-general-water-wastewater-lane-almost-code-canonical/
- https://edukatesg.com/communications-os-general-telecom-internet-information-transport-lane-almost-code-canonical/
- https://edukatesg.com/media-os-general-media-information-integrity-narrative-coordination-lane-almost-code-canonical/
- https://edukatesg.com/waste-os-general-waste-sanitation-public-cleanliness-lane-almost-code-canonical/
- https://edukatesg.com/manufacturing-os-general-manufacturing-production-systems-lane-almost-code-canonical/
- https://edukatesg.com/logistics-os-general-logistics-warehousing-supply-routing-lane-almost-code-canonical/
- https://edukatesg.com/construction-os-general-construction-built-environment-delivery-lane-almost-code-canonical/
- https://edukatesg.com/science-os-general-science-rd-knowledge-production-lane-almost-code-canonical/
- https://edukatesg.com/religion-os-general-religion-meaning-systems-moral-coordination-lane-almost-code-canonical/
- https://edukatesg.com/finance-os-general-finance-money-credit-coordination-lane-almost-code-canonical/
- https://edukatesg.com/family-os-general-family-household-regenerative-unit-almost-code-canonical/
- https://edukatesg.com/top-100-vocabulary-list-for-primary-1-intermediate/
- https://edukatesg.com/top-100-vocabulary-list-for-primary-2-intermediate-psle-distinction/
- https://edukatesg.com/top-100-vocabulary-list-for-primary-3-al1-grade-advanced/
- https://edukatesg.com/2023/04/02/top-100-psle-primary-4-vocabulary-list-level-intermediate/
- https://edukatesg.com/top-100-vocabulary-list-for-primary-5-al1-grade-advanced/
- https://edukatesg.com/2023/03/31/top-100-psle-primary-6-vocabulary-list-level-intermediate/
- https://edukatesg.com/2023/03/31/top-100-psle-primary-6-vocabulary-list-level-advanced/
- https://edukatesg.com/2023/07/19/top-100-vocabulary-words-for-secondary-1-english-tutorial/
- https://edukatesg.com/top-100-vocabulary-list-secondary-2-grade-a1/
- https://edukatesg.com/2024/11/07/top-100-vocabulary-list-secondary-3-grade-a1/
- https://edukatesg.com/2023/03/30/top-100-secondary-4-vocabulary-list-with-meanings-and-examples-level-advanced/
eduKateSG Learning Systems:
- https://edukatesg.com/the-edukate-mathematics-learning-system/
- https://edukatesg.com/additional-mathematics-a-math-in-singapore-secondary-3-4-a-math-tutor/
- https://edukatesg.com/additional-mathematics-101-everything-you-need-to-know/
- https://edukatesg.com/secondary-3-additional-mathematics-sec-3-a-math-tutor-singapore/
- https://edukatesg.com/secondary-4-additional-mathematics-sec-4-a-math-tutor-singapore/
- https://edukatesg.com/learning-english-system-fence-by-edukatesg/
- https://edukatesingapore.com/edukate-vocabulary-learning-system/
