omnilearn-workflow 1.0.6 → 1.0.7

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.
@@ -15,12 +15,26 @@ description: Start an interactive learning session. Generates hands-on assignmen
15
15
 
16
16
  ## Core Learning Philosophy
17
17
 
18
- **The user learns by doing but needs the right theoretical foundation first.** Every topic produces:
19
- 1. **`topic-explanation.md`** — Concise theory: TL;DR → core concepts → annotated examples → common pitfalls → best practices. The minimum viable theory you need before touching code.
20
- 2. **Hands-on assignments** increasing difficulty: basic → intermediate → real-world
21
- 3. **Test scripts** — automated validation of the user's solution
22
- 4. **Scaffold code** starter files so they can jump straight into coding
23
- 5. **Solution guides** — reference implementations with explanation
18
+ **Learning happens in the Zone of Proximal Development (ZPD)**: just beyond what the user can do alone, but achievable with scaffolding. The goal is NOT to test them — it's to TEACH them through calibrated challenge.
19
+
20
+ ### Key Principles (Backed by Research)
21
+
22
+ | Principle | What It Means |
23
+ |-----------|---------------|
24
+ | **Zone of Proximal Development** | Tasks should be just above current ability + supported by hints, scaffolds, and guidance. Never drop someone into the deep end alone. |
25
+ | **Desirable Difficulty** | Productive struggle grows skills — but only when scaffolding exists. Challenge without support = frustration. |
26
+ | **85% Rule** | Optimal learning happens when ~85% of the task is familiar and ~15% is new. Calibrate so the user succeeds most of the time but has to stretch. |
27
+ | **Flow State** | Challenge must match skill level. Too easy → boredom. Too hard → anxiety. The agent's job is to keep the user in flow by adjusting difficulty dynamically. |
28
+ | **Scaffolding & Fading** | Start with strong support (detailed hints, guided steps). Fade support as the user gains competence. |
29
+ | **Immediate Feedback** | Automated tests give instant signal. Use test results to detect struggle early and adjust. |
30
+
31
+ ### What Every Topic Produces
32
+
33
+ 1. **`topic-explanation.md`** — Concise theory: TL;DR → core concepts → annotated examples → common pitfalls → best practices. The minimum viable theory before touching code.
34
+ 2. **Hands-on assignments** — calibrated difficulty: baseline → adjusted based on performance. NOT a fixed ladder.
35
+ 3. **Test scripts** — immediate feedback so the user knows if they're on track.
36
+ 4. **Scaffold code** — starter files so they jump straight into coding, not boilerplate.
37
+ 5. **Solution guides** — reference implementations with explanation.
24
38
 
25
39
  The goal metric: **Can the user apply what they learned to real-world problems they haven't seen before?**
26
40
 
@@ -458,15 +472,17 @@ task(category="unspecified-high", run_in_background=false, prompt="
458
472
 
459
473
  4. MUST DO:
460
474
  - **CURRENT DATE: {CURRENT_DATE}** — ONLY research current information. Check for deprecation warnings. If a library/framework has a newer standard (e.g. CRA → Vite, pip → uv), reference the current approach.
475
+ - **ZPD calibration**: The user is struggling with this concept. The micro-exercise must be EASIER than the main assignment — it fills the gap, not adds more difficulty. ~90% familiar / 10% new.
461
476
  - Read the current assignment: {ASSIGNMENT_DIR}/question.md (to understand context without giving away the solution)
462
477
  - Research the concept online to find the MOST COMMON confusion points
463
478
  - Design a micro-exercise that:
464
479
  * ISOLATES the confusing concept — removes unrelated complexity
465
480
  * Is a real-world-ish scenario (NOT 'write a function that...' — frame it as solving a problem)
466
- * Can be solved in 5-15 minutes
481
+ * Can be solved in 5-15 minutes (if it takes longer, it's outside ZPD — add more scaffolding)
467
482
  * Requires the user to WRITE CODE / PRODUCE SOMETHING to complete
468
483
  * Has a CLEAR RIGHT ANSWER that can be verified
469
- - DO NOT write academic explanations. The exercise IS the explanation.
484
+ * INCLUDES built-in scaffolding: starter code, inline hints (commented), or step guidance
485
+ - DO NOT write academic explanations. The exercise IS the teaching tool.
470
486
  - Include in the exercise brief:
471
487
  * A short scenario (1-2 sentences)
472
488
  * What to build
@@ -487,6 +503,7 @@ task(category="unspecified-high", run_in_background=false, prompt="
487
503
  - Concept: {concept}
488
504
  - User's confusion: {their exact question}
489
505
  - User experience level: {from preferences}
506
+ - ZPD directive: This micro-exercise must be EASIER than the main assignment. The user is struggling — your job is to fill the gap, not stretch further. ~90% familiar / 10% new.
490
507
  ")
491
508
  ```
492
509
 
@@ -499,27 +516,39 @@ task(category="unspecified-high", run_in_background=false, prompt="
499
516
 
500
517
  3. When the user completes the micro-exercise, verify their solution and discuss what they learned. THEN connect it back to the main assignment.
501
518
 
502
- 4. If the user still doesn't understand after the micro-exercise, generate a SECOND one targeting a different angle. Only revert to a direct explanation after 2 failed task attempts.
519
+ 4. If the user still doesn't understand after the micro-exercise:
520
+ - Do NOT make the second one harder. Make it EASIER with MORE scaffolding.
521
+ - Break the concept into smaller sub-concepts and target just one.
522
+ - Provide more starter code, more inline hints, more step-by-step guidance.
523
+ - Only after 2 failed task attempts AND regressed scaffolding, provide a brief direct explanation followed by an even simpler task.
524
+ - If the user is clearly out of their depth, suggest reviewing prerequisites from topic-roadmap.md.
503
525
 
504
526
  **For solution review** (user says "check my solution" or "I'm done"):
505
527
  1. Read the user's solution from the scaffold directory.
506
528
  2. Do NOT use a subagent — review it yourself (it's quick).
507
529
  3. Check:
508
- - Does it pass the tests?
530
+ - Does it pass the tests? (If not, this tells you they're outside ZPD — offer easier variant)
509
531
  - Is the code clean and idiomatic?
510
532
  - Are there edge cases not handled?
511
533
  - Could it be more efficient?
512
- 4. Provide structured feedback.
513
- 5. If it passes review:
514
- - Mark assignment as completed in progress-index.md
515
- - Ask if they want to proceed to the next assignment
516
- - Generate next assignment on-demand
534
+ 4. Provide structured feedback. Be encouraging — the goal is teaching, not grading.
535
+ 5. **Calibrate next step based on performance:**
536
+ - **Passed easily (no hints, fast, clean code)** → great. Flag for next level: skip easier variants, go straight to stretch.
537
+ - **Passed with some hints or minor issues** → perfect ZPD. Proceed to next level normally.
538
+ - **Passed but needed significant help** → they're at the edge of ZPD. Consider an intermediate bridging assignment before the next difficulty level.
539
+ - **Did NOT pass tests** → **do NOT proceed.** They're outside ZPD. Offer a regressed easier variant or more scaffolding. Create an intermediate exercise that bridges the gap.
540
+ 6. Update topic-progress.md with the result and your calibration assessment.
517
541
 
518
542
  **For "I'm stuck" / "give me a hint"**:
519
543
  1. Read their current work (if any exists).
520
- 2. Identify where they're stuck.
521
- 3. Provide a hint that guides WITHOUT giving away the solution.
522
- 4. If they're fundamentally stuck on a prerequisite concept, offer to create mini-exercises.
544
+ 2. Identify where they're stuck. Is it the core concept or a tangential detail? This tells you if they need ZPD regression.
545
+ 3. **First response**: provide a minimal hint that nudges, not solves. See if they can proceed.
546
+ 4. **Second response** (still stuck): increase scaffolding. Give more specific guidance, a partial code snippet, or break the next step down.
547
+ 5. **Third response** (still stuck): **the assignment is outside their ZPD.** Do NOT keep pushing. Offer to:
548
+ - Create an easier variant of the same assignment with more scaffolding
549
+ - Switch to a bridging micro-exercise that targets the prerequisite they're missing
550
+ - Review the relevant section of topic-explanation.md together
551
+ 6. Log the struggle pattern in topic-progress.md so the next agent knows this was a sticking point.
523
552
 
524
553
  **For deeper practice requests** (e.g., "I need more practice with this"):
525
554
  ```typescript
@@ -531,14 +560,17 @@ task(category="writing", run_in_background=false, prompt="
531
560
 
532
561
  4. MUST DO:
533
562
  - **CURRENT DATE: {CURRENT_DATE}** — Use current, real-world examples. Avoid outdated patterns or deprecated APIs.
563
+ - **ZPD calibration**: These exercises should be EASIER than the main assignment — they're bridging exercises, not harder challenges.
534
564
  - Read the current assignment to understand what's been covered
535
- - Create 2-3 smaller exercises that target the specific area the user is struggling with
536
- - Each should be solvable in 5-15 minutes
537
- - Include: brief description, expected output, hints if needed
565
+ - Identify the SPECIFIC sub-concept the user is struggling with (from their interaction history)
566
+ - Create 2-3 smaller exercises that target ONLY that sub-concept
567
+ - Each should be solvable in 5-15 minutes (if longer, add more scaffolding)
568
+ - Include: brief description, expected output, hints, and partial starter code
538
569
  - Save as markdown with code blocks to: {CURRENT_RUN}/interaction-{n}-practice-exercises.md
539
570
 
540
571
  5. MUST NOT:
541
572
  - Do NOT repeat the same problems from the main assignment
573
+ - Do NOT make these harder than the main assignment — they bridge the gap, they don't add difficulty
542
574
  ")
543
575
  ```
544
576
 
@@ -784,15 +816,32 @@ If no git repo: ask if user wants to initialize one (same as /omnilearn-roadmap)
784
816
  | SkillPreferences.md updated | 5 | Update with new observations |
785
817
  | Git commit made | 6 | Commit or ask user |
786
818
 
787
- ## Assignment Difficulty Progression
819
+ ## Assignment Difficulty Calibration (ZPD + Flow)
820
+
821
+ ### The 85% Rule
822
+ Each assignment should be roughly **85% familiar / 15% new**. If the user is struggling with more than ~30% of an assignment, it's outside their ZPD — provide more scaffolding or offer an easier variant.
823
+
824
+ ### Difficulty Progression (NOT Fixed)
825
+
826
+ | Phase | Focus | Scaffolding Level | Success Rate Target |
827
+ |-------|-------|-------------------|---------------------|
828
+ | **Baseline** | Establish floor. One straightforward task to gauge current level. | High — detailed hints, guided steps | Should complete easily (>90%) |
829
+ | **Stretch 1** | Core concept + one new twist. First real learning step. | Medium — key hints available | Should complete with some struggle (~80%) |
830
+ | **Stretch 2** | Combine concepts, handle edge cases. Defensible difficulty. | Low — minimal hints, fading support | Productive struggle (~70%) |
831
+ | **Real-World** | Full scenario, multiple concerns, best practices. Maximum stretch. | Minimal — just success criteria | Challenge zone (~60% initial, improve with iteration) |
832
+
833
+ > **If the user succeeds at Baseline too easily** → skip Stretch 1, start at Stretch 2.
834
+ > **If the user fails at Stretch 2** → drop back, provide more scaffolding, or create an intermediate variant.
835
+ > **The goal is never to make the user fail.** It's to keep them in flow — challenged but supported.
788
836
 
789
- | Level | Focus | What it Tests |
790
- |-------|-------|---------------|
791
- | 01-basic | Core concept application | Can the user apply the fundamental concept correctly? |
792
- | 02-intermediate | Combined concepts + edge cases | Can the user handle complexity and edge cases? |
793
- | 03-real-world | Full scenario + best practices | Can the user deliver production-quality code? |
837
+ ### Dynamic Adjustment Rules
794
838
 
795
- Each level should feel meaningfully harder. The jump from 02 to 03 should be the biggest that's where real learning happens.
839
+ 1. **After each assignment completion**, assess: Did they need hints? How many? How long did it take?
840
+ 2. **Passed too easily** (no hints, fast) → skip one difficulty level or add a harder twist.
841
+ 3. **Passed with some hints** → perfect. Proceed to next level with similar calibration.
842
+ 4. **Failed or excessive struggle** → **do NOT push forward.** Regress: offer an easier variant with more scaffolding, or provide a bridging exercise.
843
+ 5. **After 2 consecutive failures on the same level** → the topic is too advanced. Recommend reviewing prerequisites from topic-roadmap.md before continuing.
844
+ 6. **The number of assignments per topic is NOT fixed at 3.** Add extra intermediate assignments if the user needs them. Remove levels that are too easy. The goal is learning, not completing a checklist.
796
845
 
797
846
  ## Error Recovery
798
847
 
@@ -810,12 +859,17 @@ Each level should feel meaningfully harder. The jump from 02 to 03 should be the
810
859
 
811
860
  ## What You MUST Do
812
861
 
862
+ - ✅ **Teach, don't test** — The goal is learning, not assessment. Every assignment is a teaching tool.
863
+ - ✅ **Calibrate to ZPD** — First assignment should be baseline (easy, ~90% success). Adjust difficulty based on performance. Never start with max difficulty.
864
+ - ✅ **Follow the 85% Rule** — ~85% familiar, ~15% new. If the user struggles with >30% of the task, it's outside ZPD — provide scaffolding or regress.
865
+ - ✅ **Scaffold then fade** — Start with strong support (detailed hints, starter code, guided steps). Remove scaffolding as competence grows.
866
+ - ✅ **Detect frustration early** — If user says "I'm stuck" 3+ times, the task is outside ZPD. Create an easier variant or bridge exercise.
813
867
  - ✅ **Check roadmap exists before starting** — validate the skill is set up
814
868
  - ✅ **Read progress before each session** — know where the user left off
815
869
  - ✅ **Generate assignments on-demand** — only create what's needed now
816
870
  - ✅ **Create topic roadmaps via deep subagent** — autonomous research + structure
817
871
  - ✅ **Progress lives in topic-progress.md** — assignment status, sessions, skills demonstrated. Runs/ contains only action logs.
818
- - ✅ **When user has a doubt, generate a diagnostic micro-task** — the user learns by doing, not by reading explanations
872
+ - ✅ **When user has a doubt, generate a diagnostic micro-task** — but make it EASIER than the main assignment (fills the ZPD gap)
819
873
  - ✅ **Update topic-progress.md after every state change** — never batch updates. Then sync progress-index.md (the overview)
820
874
  - ✅ **Log all interactions in runs/** — create interaction task files for Q&A, agent-log.md for session actions
821
875
  - ✅ **Update user preferences** — when you have clear signal
@@ -826,10 +880,15 @@ Each level should feel meaningfully harder. The jump from 02 to 03 should be the
826
880
  ## What You MUST NOT Do
827
881
 
828
882
  - ❌ Do NOT create all assignments upfront — generate on-demand as user progresses
883
+ - ❌ Do NOT start with max difficulty — always baseline first, then calibrate
884
+ - ❌ Do NOT push the user beyond ZPD — if they're failing, regress and scaffold more
885
+ - ❌ Do NOT keep the same difficulty after failure — if tests fail, offer an easier variant
829
886
  - ❌ Do NOT write explanations when user has a doubt — generate a diagnostic task instead
830
887
  - ❌ Do NOT give away solutions when the user is stuck — give them tasks that lead to the answer
831
888
  - ❌ Do NOT skip scaffold files — the user needs a starting point
889
+ - ❌ Do NOT skip fading scaffolding — as competence grows, reduce support
832
890
  - ❌ Do NOT make all assignments the same difficulty — progression is critical. Each should be noticeably harder than the last.
891
+ - ❌ Do NOT fix the number of assignments — add more if the user needs intermediate steps, remove if they're too easy
833
892
  - ❌ Do NOT let runs/ contain progress state — runs/ is for action logs only, topic-progress.md is the source of truth
834
893
  - ❌ Do NOT skip updating topic-progress.md — it's the authoritative progress record per topic
835
894
  - ❌ Do NOT lose the user's work or progress — always read topic-progress.md before acting
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnilearn-workflow",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "OmniLearn — AI-powered adaptive learning workflow for OpenCode. Multi-agent orchestration that creates personalized roadmaps, hands-on assignments, and tracks progress across any skill.",
5
5
  "keywords": [
6
6
  "opencode",