@rubytech/create-maxy-code 0.1.106 → 0.1.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/uninstall.js +1 -1
  3. package/package.json +1 -1
  4. package/payload/platform/config/brand.json +1 -0
  5. package/payload/platform/plugins/.claude-plugin/marketplace.json +4 -14
  6. package/payload/platform/plugins/business-assistant/PLUGIN.md +4 -1
  7. package/payload/platform/plugins/docs/references/plugins-guide.md +8 -1
  8. package/payload/platform/plugins/venture-studio/.claude-plugin/plugin.json +8 -0
  9. package/payload/platform/plugins/venture-studio/PLUGIN.md +79 -0
  10. package/payload/platform/plugins/venture-studio/skills/brand-pack/SKILL.md +256 -0
  11. package/payload/platform/plugins/venture-studio/skills/brand-pack/references/color-psychology.md +118 -0
  12. package/payload/{premium-plugins/founder-pack → platform/plugins/venture-studio}/skills/investor-data-room/SKILL.md +109 -8
  13. package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/html-pdf-pipeline.md +1 -1
  14. package/payload/{premium-plugins/founder-pack → platform/plugins/venture-studio}/skills/investor-data-room/references/termsheet-template.md +1 -1
  15. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +1565 -0
  16. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +91 -0
  17. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +715 -0
  18. package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +588 -0
  19. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/SKILL.md +332 -0
  20. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +275 -0
  21. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +93 -0
  22. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +308 -0
  23. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +262 -0
  24. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +171 -0
  25. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +246 -0
  26. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +183 -0
  27. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +190 -0
  28. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +58 -0
  29. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +114 -0
  30. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +43 -0
  31. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +237 -0
  32. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +290 -0
  33. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +105 -0
  34. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +361 -0
  35. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +167 -0
  36. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +193 -0
  37. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +200 -0
  38. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +239 -0
  39. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +103 -0
  40. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +291 -0
  41. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +225 -0
  42. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +179 -0
  43. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/prd.md +363 -0
  44. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +74 -0
  45. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +253 -0
  46. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +256 -0
  47. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +276 -0
  48. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +248 -0
  49. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +89 -0
  50. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +121 -0
  51. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +242 -0
  52. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +271 -0
  53. package/payload/premium-plugins/.claude-plugin/marketplace.json +4 -4
  54. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/build.md +4 -5
  55. package/payload/premium-plugins/venture-studio/.claude-plugin/plugin.json +8 -0
  56. package/payload/premium-plugins/venture-studio/PLUGIN.md +79 -0
  57. package/payload/premium-plugins/venture-studio/skills/brand-pack/SKILL.md +256 -0
  58. package/payload/premium-plugins/venture-studio/skills/brand-pack/references/color-psychology.md +118 -0
  59. package/payload/{platform/plugins/founder-pack → premium-plugins/venture-studio}/skills/investor-data-room/SKILL.md +109 -8
  60. package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/html-pdf-pipeline.md +1 -1
  61. package/payload/{platform/plugins/founder-pack → premium-plugins/venture-studio}/skills/investor-data-room/references/termsheet-template.md +1 -1
  62. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +1565 -0
  63. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +91 -0
  64. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +715 -0
  65. package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +588 -0
  66. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/SKILL.md +332 -0
  67. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +275 -0
  68. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +93 -0
  69. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +308 -0
  70. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +262 -0
  71. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +171 -0
  72. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +246 -0
  73. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +183 -0
  74. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +190 -0
  75. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +58 -0
  76. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +114 -0
  77. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +43 -0
  78. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +237 -0
  79. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +290 -0
  80. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +105 -0
  81. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +361 -0
  82. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +167 -0
  83. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +193 -0
  84. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +200 -0
  85. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +239 -0
  86. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +103 -0
  87. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +291 -0
  88. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +225 -0
  89. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +179 -0
  90. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/prd.md +363 -0
  91. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +74 -0
  92. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +253 -0
  93. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +256 -0
  94. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +276 -0
  95. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +248 -0
  96. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +89 -0
  97. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +121 -0
  98. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +242 -0
  99. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +271 -0
  100. package/payload/server/{chunk-BVDLDM6O.js → chunk-AGFS3TVN.js} +108 -3
  101. package/payload/server/maxy-edge.js +1 -1
  102. package/payload/server/server.js +7 -2
  103. package/payload/platform/plugins/founder-pack/.claude-plugin/plugin.json +0 -8
  104. package/payload/platform/plugins/teaching/.claude-plugin/plugin.json +0 -8
  105. package/payload/platform/plugins/teaching/PLUGIN.md +0 -58
  106. package/payload/platform/plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  107. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  108. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  109. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  110. package/payload/platform/plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  111. package/payload/platform/plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  112. package/payload/platform/plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  113. package/payload/platform/plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  114. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  115. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  116. package/payload/platform/plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  117. package/payload/platform/plugins/writer-craft/PLUGIN.md +0 -88
  118. package/payload/platform/plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  119. package/payload/platform/plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  120. package/payload/platform/plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  121. package/payload/platform/plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  122. package/payload/platform/plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  123. package/payload/platform/plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  124. package/payload/platform/plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  125. package/payload/platform/plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  126. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  127. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  128. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  129. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  130. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  131. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  132. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  133. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  134. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  135. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  136. package/payload/platform/plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  137. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  138. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  139. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  140. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  141. package/payload/platform/plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  142. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  143. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  144. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  145. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  146. package/payload/platform/plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  147. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  148. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  149. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  150. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  151. package/payload/platform/plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  152. package/payload/platform/plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  153. package/payload/platform/plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  154. package/payload/platform/plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  155. package/payload/platform/plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  156. package/payload/platform/plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  157. package/payload/platform/plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  158. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  159. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  160. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  161. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  162. package/payload/platform/plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  163. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  164. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  165. package/payload/premium-plugins/founder-pack/.claude-plugin/plugin.json +0 -8
  166. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/business-plan-template.md +0 -0
  167. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/compliance-research-checklist.md +0 -0
  168. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/data-room-structure.md +0 -0
  169. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/deck-blueprint-template.md +0 -0
  170. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/design-tokens-application.md +0 -0
  171. /package/payload/platform/plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/internal-workings-scrub.md +0 -0
  172. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/business-plan-template.md +0 -0
  173. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/compliance-research-checklist.md +0 -0
  174. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/data-room-structure.md +0 -0
  175. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/deck-blueprint-template.md +0 -0
  176. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/design-tokens-application.md +0 -0
  177. /package/payload/premium-plugins/{founder-pack → venture-studio}/skills/investor-data-room/references/internal-workings-scrub.md +0 -0
@@ -2632,6 +2632,8 @@ import { resolve, join } from "path";
2632
2632
  import { existsSync, readFileSync } from "fs";
2633
2633
  var configDirName = ".maxy";
2634
2634
  var commercialMode = false;
2635
+ var bundleMode = "none";
2636
+ var bundleAllowlist = [];
2635
2637
  var vncDisplayNum = 99;
2636
2638
  var rfbPortNum = 5900;
2637
2639
  var websockifyPortNum = 6080;
@@ -2651,6 +2653,20 @@ if (platformRoot) {
2651
2653
  }
2652
2654
  if (typeof brand.configDir === "string") configDirName = brand.configDir;
2653
2655
  if (brand.commercialMode === true) commercialMode = true;
2656
+ if (brand.shipsPremiumBundles === true) {
2657
+ bundleMode = "all";
2658
+ } else if (Array.isArray(brand.shipsPremiumBundles)) {
2659
+ const arr = brand.shipsPremiumBundles;
2660
+ for (const entry of arr) {
2661
+ if (typeof entry !== "string" || entry.length === 0) {
2662
+ throw new Error(
2663
+ `brand.json at ${brandPath} shipsPremiumBundles array contains invalid entry: ${JSON.stringify(entry)}`
2664
+ );
2665
+ }
2666
+ }
2667
+ bundleMode = "allowlist";
2668
+ bundleAllowlist = arr;
2669
+ }
2654
2670
  if (typeof brand.vncDisplay === "number") vncDisplayNum = brand.vncDisplay;
2655
2671
  const brandLabel = configDirName.replace(/^\./, "");
2656
2672
  const required = [
@@ -2674,6 +2690,8 @@ if (platformRoot) {
2674
2690
  var MAXY_DIR = resolve(homedir(), configDirName);
2675
2691
  var BRAND_NAME = configDirName.replace(/^\./, "");
2676
2692
  var COMMERCIAL_MODE = commercialMode;
2693
+ var BUNDLE_MODE = bundleMode;
2694
+ var BUNDLE_ALLOWLIST = bundleAllowlist;
2677
2695
  var VNC_DISPLAY = `:${vncDisplayNum}`;
2678
2696
  var RFB_PORT = rfbPortNum;
2679
2697
  var WEBSOCKIFY_PORT = websockifyPortNum;
@@ -3429,6 +3447,38 @@ if (!existsSync4(PLATFORM_ROOT2)) {
3429
3447
  Set the MAXY_PLATFORM_ROOT environment variable to the absolute path of the platform directory.`
3430
3448
  );
3431
3449
  }
3450
+ var _stubDirsLoggedThisBoot = /* @__PURE__ */ new Set();
3451
+ function listValidAccounts() {
3452
+ if (!existsSync4(ACCOUNTS_DIR)) return [];
3453
+ const out = [];
3454
+ const entries = readdirSync(ACCOUNTS_DIR, { withFileTypes: true });
3455
+ for (const entry of entries) {
3456
+ if (!entry.isDirectory()) continue;
3457
+ if (entry.name.startsWith(".")) continue;
3458
+ const accountDir = resolve3(ACCOUNTS_DIR, entry.name);
3459
+ const configPath = resolve3(accountDir, "account.json");
3460
+ if (!existsSync4(configPath)) {
3461
+ if (!_stubDirsLoggedThisBoot.has(entry.name)) {
3462
+ console.error(
3463
+ `[platform] accounts-state STUB-DIR id=${entry.name} \u2014 onboarding leak; remove or repair`
3464
+ );
3465
+ _stubDirsLoggedThisBoot.add(entry.name);
3466
+ }
3467
+ continue;
3468
+ }
3469
+ let config;
3470
+ try {
3471
+ config = JSON.parse(readFileSync4(configPath, "utf-8"));
3472
+ } catch {
3473
+ console.error(
3474
+ `[platform] accounts-state CORRUPT-JSON id=${entry.name} \u2014 account.json failed to parse; treating as stub`
3475
+ );
3476
+ continue;
3477
+ }
3478
+ out.push({ accountId: config.accountId, accountDir, config });
3479
+ }
3480
+ return out;
3481
+ }
3432
3482
  function resolveAccount() {
3433
3483
  if (!existsSync4(ACCOUNTS_DIR)) return null;
3434
3484
  let usersJsonUserId = null;
@@ -3622,7 +3672,26 @@ function readBundleSubPlugins(bundlePath) {
3622
3672
  return subs;
3623
3673
  }
3624
3674
  function walkPremiumBundles() {
3625
- if (BRAND_NAME === "maxy") return [];
3675
+ const TAG = "[premium-auto-deliver]";
3676
+ if (BUNDLE_MODE === "none") {
3677
+ console.log(`${TAG} gate brand=${BRAND_NAME} mode=none bundles=[]`);
3678
+ return [];
3679
+ }
3680
+ const onDisk = walkPremiumBundlesOnDisk();
3681
+ if (BUNDLE_MODE === "all") {
3682
+ console.log(`${TAG} gate brand=${BRAND_NAME} mode=all bundles=[${onDisk.map((b) => b.bundle).join(",")}]`);
3683
+ return onDisk;
3684
+ }
3685
+ const allow = new Set(BUNDLE_ALLOWLIST);
3686
+ const kept = onDisk.filter((b) => allow.has(b.bundle));
3687
+ const onDiskNames = new Set(onDisk.map((b) => b.bundle));
3688
+ const missing = BUNDLE_ALLOWLIST.filter((name) => !onDiskNames.has(name));
3689
+ console.log(
3690
+ `${TAG} gate brand=${BRAND_NAME} mode=allowlist bundles=[${kept.map((b) => b.bundle).join(",")}]` + (missing.length > 0 ? ` missing=[${missing.join(",")}]` : "")
3691
+ );
3692
+ return kept;
3693
+ }
3694
+ function walkPremiumBundlesOnDisk() {
3626
3695
  const stagingRoot = resolve4(PLATFORM_ROOT2, "../premium-plugins");
3627
3696
  if (!existsSync5(stagingRoot)) return [];
3628
3697
  let entries;
@@ -3695,7 +3764,7 @@ function autoDeliverPremiumPlugins() {
3695
3764
  }
3696
3765
  }
3697
3766
  }
3698
- function reconcileEnabledPlugins(accountDir, config) {
3767
+ function reconcileEnabledPlugins(accountDir, config, accountId) {
3699
3768
  const TAG = "[premium-auto-deliver]";
3700
3769
  if (!accountDir || !config) return;
3701
3770
  const bundles = walkPremiumBundles();
@@ -3721,7 +3790,9 @@ function reconcileEnabledPlugins(accountDir, config) {
3721
3790
  currentSet.add(sub);
3722
3791
  added.push(sub);
3723
3792
  }
3724
- console.log(`${TAG} brand=${BRAND_NAME} bundles=[${bundleNames.join(",")}] subs=[${allSubs.join(",")}] stamped=${added.length}`);
3793
+ console.log(
3794
+ `${TAG} stamp accountId=${accountId ?? "unknown"} brand=${BRAND_NAME} mode=${BUNDLE_MODE} bundles=[${bundleNames.join(",")}] added=[${added.join(",")}]`
3795
+ );
3725
3796
  if (added.length === 0) return;
3726
3797
  const merged = [...currentSet];
3727
3798
  const configPath = resolve4(accountDir, "account.json");
@@ -3735,6 +3806,38 @@ function reconcileEnabledPlugins(accountDir, config) {
3735
3806
  console.error(`${TAG} enabled-stamp write failed: ${err instanceof Error ? err.message : String(err)}`);
3736
3807
  }
3737
3808
  }
3809
+ function cleanupLeakedPremiumSubs(accountDir, config, accountId) {
3810
+ const TAG = "[premium-auto-deliver]";
3811
+ if (!accountDir || !config) return;
3812
+ if (BUNDLE_MODE === "all") return;
3813
+ const current = Array.isArray(config.enabledPlugins) ? config.enabledPlugins : [];
3814
+ if (current.length === 0) return;
3815
+ const allow = new Set(BUNDLE_ALLOWLIST);
3816
+ const leakedNames = /* @__PURE__ */ new Set();
3817
+ for (const { bundle, subs } of walkPremiumBundlesOnDisk()) {
3818
+ if (BUNDLE_MODE === "allowlist" && allow.has(bundle)) continue;
3819
+ for (const sub of subs) leakedNames.add(sub);
3820
+ }
3821
+ if (leakedNames.size === 0) return;
3822
+ const removed = [];
3823
+ const kept = [];
3824
+ for (const name of current) {
3825
+ if (leakedNames.has(name)) removed.push(name);
3826
+ else kept.push(name);
3827
+ }
3828
+ if (removed.length === 0) return;
3829
+ const configPath = resolve4(accountDir, "account.json");
3830
+ try {
3831
+ const raw2 = readFileSync5(configPath, "utf-8");
3832
+ const parsed = JSON.parse(raw2);
3833
+ parsed.enabledPlugins = kept;
3834
+ writeFileSync2(configPath, JSON.stringify(parsed, null, 2) + "\n");
3835
+ config.enabledPlugins = kept;
3836
+ console.log(`${TAG} cleanup accountId=${accountId ?? "unknown"} removed=[${removed.join(",")}]`);
3837
+ } catch (err) {
3838
+ console.error(`${TAG} cleanup write failed accountId=${accountId ?? "unknown"}: ${err instanceof Error ? err.message : String(err)}`);
3839
+ }
3840
+ }
3738
3841
 
3739
3842
  // app/lib/claude-agent/logging.ts
3740
3843
  var emitMissingOnResolve = (..._args) => null;
@@ -4414,6 +4517,7 @@ export {
4414
4517
  parseCookieValue,
4415
4518
  PLATFORM_ROOT2 as PLATFORM_ROOT,
4416
4519
  ACCOUNTS_DIR,
4520
+ listValidAccounts,
4417
4521
  resolveAccount,
4418
4522
  resolveUserAccounts,
4419
4523
  fingerprintSessionKey,
@@ -4432,6 +4536,7 @@ export {
4432
4536
  walkPremiumBundles,
4433
4537
  autoDeliverPremiumPlugins,
4434
4538
  reconcileEnabledPlugins,
4539
+ cleanupLeakedPremiumSubs,
4435
4540
  emitMissingOnResolve,
4436
4541
  stripAttachmentMetaSuffix,
4437
4542
  requirePortEnv,
@@ -19,7 +19,7 @@ import {
19
19
  streamActionEvents,
20
20
  vncLog,
21
21
  websockifyLog
22
- } from "./chunk-BVDLDM6O.js";
22
+ } from "./chunk-AGFS3TVN.js";
23
23
  import "./chunk-JRBCOVA4.js";
24
24
  import "./chunk-JSBRDJBE.js";
25
25
 
@@ -18,6 +18,7 @@ import {
18
18
  browserViewerLog,
19
19
  canAccessAdmin,
20
20
  checkRateLimit,
21
+ cleanupLeakedPremiumSubs,
21
22
  clearRateLimit,
22
23
  clientIpMiddleware,
23
24
  createRemoteSession,
@@ -35,6 +36,7 @@ import {
35
36
  isPasswordValid,
36
37
  isRemoteAuthConfigured,
37
38
  launchAction,
39
+ listValidAccounts,
38
40
  reconcileEnabledPlugins,
39
41
  recordFailedAttempt,
40
42
  registerSession,
@@ -59,7 +61,7 @@ import {
59
61
  vncLog,
60
62
  waitForExit,
61
63
  walkPremiumBundles
62
- } from "./chunk-BVDLDM6O.js";
64
+ } from "./chunk-AGFS3TVN.js";
63
65
  import {
64
66
  CLOUDFLARE_TASK_DIAGNOSTICS,
65
67
  appendCloudflareSteps,
@@ -14367,7 +14369,10 @@ var bootEntitlement = bootAccountConfig ? resolveEntitlement(
14367
14369
  }
14368
14370
  ) : null;
14369
14371
  autoDeliverPremiumPlugins();
14370
- reconcileEnabledPlugins(bootAccount?.accountDir, bootAccount?.config);
14372
+ reconcileEnabledPlugins(bootAccount?.accountDir, bootAccount?.config, bootAccount?.accountId);
14373
+ for (const acct of listValidAccounts()) {
14374
+ cleanupLeakedPremiumSubs(acct.accountDir, acct.config, acct.accountId);
14375
+ }
14371
14376
  (async () => {
14372
14377
  if (!bootAccount) return;
14373
14378
  try {
@@ -1,8 +0,0 @@
1
- {
2
- "name": "founder-pack",
3
- "description": "founder-pack plugin",
4
- "version": "0.1.0",
5
- "author": {
6
- "name": "Rubytech LLC"
7
- }
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "teaching",
3
- "description": "Interactive tutoring, lesson planning, and study pack generation. Teaches any subject from the knowledge base, adapting to learner age and pace. Three skills: live tutoring, parent-delivered lesson plans, and independent revision packs.",
4
- "version": "0.1.0",
5
- "author": {
6
- "name": "Rubytech LLC"
7
- }
8
- }
@@ -1,58 +0,0 @@
1
- ---
2
- name: teaching
3
- description: "Interactive tutoring, lesson planning, and study pack generation. Teaches any subject from the knowledge base, adapting to learner age and pace. Three skills: live tutoring, parent-delivered lesson plans, and independent revision packs."
4
- icon: 🎓
5
- tools: []
6
- always: false
7
- metadata: {"platform":{"optional":true,"pluginKey":"teaching","embed":["public","admin"]}}
8
- ---
9
-
10
- # Teaching
11
-
12
- Three skills for knowledge-based teaching and learning. Each skill draws content exclusively from the account's knowledge base — never from training data — and adapts to the learner's age (5–18).
13
-
14
- ## Skills
15
-
16
- | Skill | Purpose | Audience |
17
- |-------|---------|----------|
18
- | `interactive-tutor` | Teaches a learner directly through conversation, adapting in real time | Student (via chat) |
19
- | `lesson-planner` | Generates self-contained lesson plans a parent or instructor can deliver | Parent / instructor |
20
- | `study-pack-builder` | Produces structured revision packs (flashcards, summaries, assessments) | Student (independent study) |
21
-
22
- ## When to Activate
23
-
24
- The user wants to:
25
- - Teach a child or student a topic from the knowledge base
26
- - Create a lesson plan for home education or tutoring
27
- - Build revision materials, flashcards, or study packs from stored content
28
- - Prepare a student for an assessment using knowledge base content
29
-
30
- ## Shared Principles
31
-
32
- - **Content from knowledge base only.** Every skill searches memory first. If the knowledge base lacks sufficient material, the skill says so — it never fills gaps from training data.
33
- - **Conversational context gathering.** Each skill collects requirements one question at a time, confirming before generating.
34
- - **Age-appropriate adaptation.** Language, examples, and complexity scale to the learner's age (5–18 years).
35
- - **Self-contained output.** Lesson plans, study packs, and tutoring sessions require no external resources.
36
- - **Domain-neutral.** The skills work for any subject present in the knowledge base — not limited to any specific curriculum, exam board, or educational system.
37
-
38
- ## Tools Used
39
-
40
- No MCP server. Skills operate via existing platform tools:
41
- - `memory-search` — retrieve subject content from the knowledge base
42
- - `image_generate` — create visual aids, diagrams, and infographics
43
-
44
- Structured choices are presented as numbered lists in plain chat — the platform has no inline-UI component primitive on the admin / native-CC surface.
45
-
46
- ## References
47
-
48
- Domain knowledge files loaded on demand by each skill:
49
-
50
- | Reference | Used By | Purpose |
51
- |-----------|---------|---------|
52
- | `references/assessment.md` | interactive-tutor | Prior knowledge assessment and comprehension checking |
53
- | `references/classroom-conduct.md` | interactive-tutor | Standing rules for language, output format, and boundaries |
54
- | `references/teaching-modes.md` | interactive-tutor | Four teaching approaches (Socratic, Direct, Guided Discovery, Adaptive) |
55
- | `references/context-gathering.md` | lesson-planner | Student context fields and teaching mode descriptions |
56
- | `references/plan-structure.md` | lesson-planner | Lesson plan format, content requirements, and quality standards |
57
- | `references/disaggregation.md` | study-pack-builder | Building topic hierarchies from knowledge base content |
58
- | `references/materials.md` | study-pack-builder | Per-topic revision material generation (summaries, flashcards, assessments) |
@@ -1,59 +0,0 @@
1
- ---
2
- name: interactive-tutor
3
- description: "Teach learners interactively through conversation. Adapts to the student's age, assesses prior knowledge, teaches using four modes (Socratic, Direct, Guided Discovery, Adaptive), checks comprehension, and adjusts complexity in real time."
4
- ---
5
-
6
- # Interactive Tutor
7
-
8
- You teach learners directly through conversation. When a student wants to learn something, you become their teacher — engaging, age-appropriate, and responsive to their understanding.
9
-
10
- ## Teaching Flow
11
-
12
- ```
13
- 1. Gather basics (age, topic, lesson length, teaching mode)
14
- 2. Assess prior knowledge (warm greeting, 1-2 questions)
15
- 3. Teach with adaptive complexity (main loop)
16
- ```
17
-
18
- ## Step 1: Gather Basics
19
-
20
- Collect from the parent or student:
21
- - **Student's age**
22
- - **Topic** to learn
23
- - **Lesson length** (10-20 minutes)
24
- - **Teaching mode** (Socratic, Direct, Guided Discovery, or Adaptive)
25
-
26
- If the parent is present, gather from them. If the student is chatting directly, ask in age-appropriate language.
27
-
28
- ## Step 2: Assess Prior Knowledge
29
-
30
- Greet the student warmly. You are now speaking DIRECTLY to the child, not the parent.
31
- - Brief introduction about what you'll learn together
32
- - 1-2 engaging questions to gauge what they already know
33
- - Then transition directly into teaching — don't announce a plan
34
-
35
- Load `references/assessment.md` for the full assessment approach.
36
-
37
- ## Step 3: Teach
38
-
39
- Search memory for content on the topic before teaching. Teach from what the knowledge base provides — do not teach from training data.
40
-
41
- Use the selected mode. Load `references/teaching-modes.md` for mode-specific strategies.
42
-
43
- During teaching:
44
- - Use concrete, age-appropriate examples (toys, games, food, animals — things they know)
45
- - Check comprehension periodically
46
- - Adjust complexity based on their responses
47
- - Celebrate their thinking process and effort
48
- - Generate images with `image_generate` when a visual would help — diagrams, illustrations, worked examples. Don't narrate that you're generating; just include the image naturally in the teaching flow.
49
-
50
- Load `references/classroom-conduct.md` for conduct rules that apply at all times.
51
-
52
- ## Critical Rules
53
-
54
- 1. **Speak only dialogue** — no action descriptions, no asterisks, no stage directions. Only words you would say out loud.
55
- 2. **Don't ask permission** — "Would you like me to teach you?" is wrong. Just teach.
56
- 3. **Lead with confidence** — you are the teacher. Ask questions, guide discovery, explain concepts.
57
- 4. **Adapt immediately** — if they struggle once, simplify. If they excel once, increase the challenge. Don't wait for patterns.
58
- 5. **Stay on topic** — if the student goes off-topic, redirect warmly but firmly.
59
- 6. **Content from memory only** — search the knowledge base for topic content. Do not teach from training data.
@@ -1,70 +0,0 @@
1
- # Assessment and Comprehension
2
-
3
- ## Initial Assessment (Prior Knowledge)
4
-
5
- When transitioning from gathering basics to teaching, assess what the student already knows.
6
-
7
- **You are speaking DIRECTLY to the student, not the parent.**
8
-
9
- ### Opening
10
- 1. Warm greeting: "Hello! I'm excited to teach you about [topic] today."
11
- 2. Brief introduction: explain what you'll be learning together in simple terms
12
- 3. Transition to assessment: "Before we dive in, I'd like to understand what you already know."
13
-
14
- ### Assessment Questions
15
- - Ask open, engaging questions — not test questions
16
- - "What do you know about [topic]?" not "Can you define [topic]?"
17
- - "Have you ever noticed..." or "What happens when you..."
18
- - Keep it light — this isn't a test
19
- - Build on what they say with follow-up questions
20
-
21
- ### Quick Assessment (1-2 Questions Max)
22
- 1. Start with an open question about what they know
23
- 2. Based on their answer, ask one follow-up to gauge depth
24
- 3. Then START TEACHING immediately — don't announce a plan
25
-
26
- ### Transition to Teaching
27
- - Wrong: "I'll now create a lesson plan for you..."
28
- - Right: "Let me show you something cool about [topic]..."
29
- - Wrong: "Would you like me to start teaching?"
30
- - Right: "Here's an interesting question..."
31
-
32
- ## Comprehension Checks During Teaching
33
-
34
- Periodically assess whether the student understands the current concept.
35
-
36
- ### How to Check
37
- Ask a question that tests understanding, not recall:
38
- - "If I changed [variable], what would happen?"
39
- - "Can you explain that to me in your own words?"
40
- - "Why do you think [concept] works that way?"
41
-
42
- ### Interpreting Responses
43
-
44
- | Level | Signs | Action |
45
- |-------|-------|--------|
46
- | Full understanding | Explains concept accurately, applies it to new examples | Move on. Increase complexity. |
47
- | Partial understanding | Gets the idea but misses details or can't apply it | Clarify the gaps. Try a different example. |
48
- | Minimal understanding | Vague or partially wrong answers | Simplify. Reteach with a different approach. |
49
- | No understanding | Confused, silent, or completely wrong | Step back. Start from a more basic concept. |
50
-
51
- ### Complexity Adjustment
52
-
53
- Track complexity on a 1-10 scale (1 = very simple, 10 = advanced).
54
-
55
- **Decrease complexity when:** Multiple wrong answers, asks for explanations, says "I don't understand", long pauses.
56
-
57
- **Increase complexity when:** Answers quickly and correctly, asks advanced questions, shows mastery, seems bored.
58
-
59
- **Maintain when:** Appropriately challenged, engaged, occasional mistakes but learning.
60
-
61
- Adjustments should be decisive (+/-2-3 levels) when the signal is clear, gradual (+/-1) when uncertain.
62
-
63
- ## Mastery Tracking
64
-
65
- Throughout the session, mentally track:
66
- - **Concepts introduced** — what you've taught
67
- - **Concepts mastered** — what the student demonstrated understanding of
68
- - **Concepts needing work** — where they struggled
69
-
70
- Use this to guide what to focus on next. Don't move on from a concept the student hasn't grasped — reteach it differently before progressing.
@@ -1,43 +0,0 @@
1
- # Classroom Conduct
2
-
3
- These rules apply at ALL times during tutoring, regardless of teaching mode.
4
-
5
- ## Language Standards
6
-
7
- - Always maintain appropriate, professional language suitable for educational settings
8
- - Never use profanity, slang, crude humour, or informal language inappropriate for a classroom
9
- - Keep all examples and questions age-appropriate and educational in nature
10
- - Maintain a warm but professional teaching tone appropriate for student-teacher relationships
11
-
12
- ## Output Format
13
-
14
- Provide ONLY spoken dialogue — plain text words you would say out loud.
15
-
16
- **Never:**
17
- - Action descriptions or body language ("*smiles*", "*nods*", "*leans forward*")
18
- - Emotional state descriptions ("I'm excited to...")
19
- - Stage directions or roleplay narration
20
- - Asterisk-wrapped actions of any kind
21
-
22
- **Only:** The words you would speak. Nothing else.
23
-
24
- ## Staying On Topic
25
-
26
- - Stay strictly within the lesson topic and objectives
27
- - If the student goes off-topic, redirect warmly but firmly: "That's interesting! But let's get back to [current topic]..."
28
- - If the student uses inappropriate language, redirect immediately: "Let's use classroom-appropriate language. Now, back to [current topic]..."
29
- - Do not engage in casual conversation unrelated to the lesson
30
-
31
- ## Content Boundaries
32
-
33
- - All content must be suitable for a classroom environment, no exceptions
34
- - Avoid topics related to: violence, adult content, controversial politics, religion (unless these ARE the lesson topic)
35
- - Keep examples age-appropriate — use everyday scenarios children can relate to
36
- - If the student asks something outside the lesson scope: "That's a great question! It's a bit beyond what we're covering today, but let's focus on [current topic]..."
37
-
38
- ## Teaching Confidence
39
-
40
- - Never ask permission to teach — lead confidently
41
- - Never say "Would you like me to..." or "Should I..."
42
- - Never say "I'll create a lesson plan for you" — you're already teaching
43
- - Ask questions that make the student think, not questions asking for their consent to proceed
@@ -1,83 +0,0 @@
1
- # Teaching Modes
2
-
3
- ## Socratic Dialogue
4
-
5
- Guide learning through engaging questions and concrete examples.
6
-
7
- **How to start:** Jump right in with a concrete scenario. "Let's say you have 3 toy cars and your friend gives you 2 more..." Ask an engaging question about something they can visualise.
8
-
9
- **Never start with:** "Would you like me to teach you about..." or "Should we begin with..." or "Let me create a lesson plan..."
10
-
11
- **Technique:**
12
- - Use toys, sweets, pets, games — things the child can picture
13
- - Ask questions that make them think, not questions asking permission
14
- - Guide them to discover answers through concrete examples
15
- - Build each question on their previous answer
16
-
17
- **Example (8-year-old, maths):**
18
- "Imagine you have 7 toy dinosaurs. Your little brother gives you 5 more. How many dinosaurs do you have now?"
19
- [Student: "12?"]
20
- "Exactly! Now, what if you gave 3 dinosaurs to your friend? How many would you have left?"
21
-
22
- ## Direct Instruction
23
-
24
- Clear, structured explanation with examples and regular checks.
25
-
26
- **Technique:**
27
- - Present information in logical, step-by-step sequence
28
- - Use concrete examples: "Let me show you how..."
29
- - Employ visual descriptions: "Imagine..." "Picture this..."
30
- - Check understanding frequently: "Does that make sense?" "Can you explain it back to me?"
31
- - Provide clear summaries: "So what we learned is..."
32
- - Use repetition for key concepts
33
- - Offer analogies to familiar things: "It's like when you..."
34
-
35
- **Structure:**
36
- 1. Hook their interest, state what they'll discover
37
- 2. Explain the concept with examples
38
- 3. Apply the concept together (guided practice)
39
- 4. Check understanding with questions
40
-
41
- ## Guided Discovery
42
-
43
- Exploration-based learning with scaffolding and support.
44
-
45
- **Technique:**
46
- - Present scenarios or problems to explore: "Let's investigate..." "I wonder what would happen if..."
47
- - Suggest thought experiments: "Try imagining..." "Let's think about..."
48
- - Provide hints and clues, not direct answers: "What if you looked at it this way..."
49
- - Encourage hypothesis formation: "What do you predict?" "What's your theory?"
50
- - Guide their exploration with strategic questions
51
- - Celebrate discoveries: "You figured it out!" "What a great observation!"
52
-
53
- **Example pattern:**
54
- "Let's do a thought experiment. Imagine you're on a boat in the middle of a lake..."
55
- [Student describes what they think]
56
- "Interesting! Now what if the lake was completely frozen solid? What changes?"
57
-
58
- ## Adaptive
59
-
60
- Dynamically blend teaching approaches based on student responses.
61
-
62
- **React to these signals immediately — not after 3-4 exchanges:**
63
-
64
- | Signal | Response |
65
- |--------|----------|
66
- | Struggling | Simplify now. Use direct instruction. Provide more scaffolding. |
67
- | Excelling | Add complexity immediately. Use Socratic questions. Try guided discovery. |
68
- | Curious | Follow their interest right away. Use questions to deepen understanding. |
69
- | Confused | Pause immediately. Check understanding. Reteach differently. |
70
- | Engaged | Continue current approach. |
71
- | Disengaged | Change approach now. Connect to interests. Add an activity. |
72
-
73
- **Be highly responsive.** If the student struggles once, simplify. If they answer quickly and correctly, challenge them more. Decisive adjustments (+/-2-3 levels) when the signal is clear; gradual (+/-1) when uncertain.
74
-
75
- ## Age-Appropriate Language
76
-
77
- Adapt your vocabulary and examples to the student's age:
78
-
79
- - **5-7:** Very simple words, familiar objects (toys, food, family), lots of counting and physical examples
80
- - **8-10:** Slightly more complex, can handle multi-step thinking, use stories and games
81
- - **11-13:** Can handle abstract concepts with concrete anchors, use real-world applications
82
- - **14-16:** Near-adult language, can handle abstract reasoning, use practical and academic examples
83
- - **17-18:** Adult-level discussion, nuanced concepts, examination-level rigour
@@ -1,48 +0,0 @@
1
- ---
2
- name: lesson-planner
3
- description: "Create personalised lesson plans for home educating families. Gathers student context conversationally, confirms the plan, then generates a structured lesson plan with objectives, activities, assessments, and parent guidance."
4
- ---
5
-
6
- # Lesson Planner
7
-
8
- You help parents create detailed, self-contained lesson plans their children can learn from. The parent should be able to teach the entire lesson using only the plan you produce — no external resources needed.
9
-
10
- ## Workflow
11
-
12
- ```
13
- 1. Gather student context (conversationally, one question at a time)
14
- 2. Confirm the plan summary with the parent
15
- 3. Generate the lesson plan
16
- ```
17
-
18
- ## Step 1: Gather Context
19
-
20
- You are speaking to the PARENT, not the child. Use professional, adult-to-adult language.
21
-
22
- Collect one at a time:
23
- 1. **Student's age** (or year group)
24
- 2. **Topic** the student needs to learn
25
- 3. **Lesson length** (10-20 minutes, in 5-minute increments)
26
- 4. **Teaching mode** — offer these four options:
27
- - **Socratic Dialogue** — guided questions leading to discovery
28
- - **Direct Instruction** — clear explanations with worked examples
29
- - **Guided Discovery** — structured exploration with scaffolding
30
- - **Adaptive** — adjusts approach based on responses
31
- 5. **Curriculum alignment** — should the lesson align with a formal curriculum or standards framework? (Yes/No)
32
- 6. **Prior knowledge** — what does the student already know about this topic?
33
-
34
- Once gathered, confirm with the parent before proceeding.
35
-
36
- ## Step 2: Generate the Plan
37
-
38
- Load `references/plan-structure.md` for the detailed plan format, content requirements, and quality standards.
39
-
40
- For context-gathering prompts and teaching mode descriptions, load `references/context-gathering.md`.
41
-
42
- ## Constraints
43
-
44
- - Lessons are 10-20 minutes only. For longer sessions, create multiple plans.
45
- - Plans are written for the parent (the teacher), not the child.
46
- - Include specific dialogue prompts: "Say: '...'" and "Ask: '...'"
47
- - Include concrete, age-appropriate examples throughout.
48
- - All lesson content must come from the knowledge base (memory), not training data.
@@ -1,41 +0,0 @@
1
- # Context Gathering
2
-
3
- ## Student Context Fields
4
-
5
- | Field | Required | Notes |
6
- |-------|----------|-------|
7
- | Age | Yes | 5-18 years |
8
- | Topic | Yes | What the student will learn |
9
- | Lesson length | Yes | 10-20 minutes (5-minute increments) |
10
- | Teaching mode | Yes | Socratic, Direct, Guided Discovery, or Adaptive |
11
- | Curriculum alignment | Yes | Whether to align with a formal curriculum or standards framework |
12
- | Prior knowledge | Yes | What the student already knows |
13
- | Learning preferences | Optional | Only if the parent volunteers it |
14
-
15
- ## Teaching Mode Descriptions
16
-
17
- Offer these when the parent needs to choose:
18
-
19
- **Socratic Dialogue** — You guide learning through engaging questions and concrete examples. The student discovers concepts by thinking through carefully chosen questions rather than being told the answers.
20
-
21
- **Direct Instruction** — Clear, structured explanations with worked examples and regular comprehension checks. Information presented in logical, step-by-step sequence. Good for building foundational understanding of new topics.
22
-
23
- **Guided Discovery** — Exploration-based learning with scaffolding and support. You present scenarios or problems for the student to investigate, providing hints and clues rather than direct answers. Good for building critical thinking.
24
-
25
- **Adaptive** — Dynamically blends all three approaches based on the student's responses. Switches to direct instruction when the student is confused, Socratic questioning when they show curiosity, and guided discovery when they're ready to explore.
26
-
27
- ## Confirmation Format
28
-
29
- Once all context is gathered, present a summary for the parent to confirm:
30
-
31
- "Here's what I have:
32
- - Age: [age]
33
- - Topic: [topic]
34
- - Lesson length: [X] minutes
35
- - Teaching mode: [mode]
36
- - Curriculum alignment: [Yes/No]
37
- - Prior knowledge: [description]
38
-
39
- Shall I generate the lesson plan?"
40
-
41
- Wait for confirmation before generating.