omnilearn-workflow 1.0.2 → 1.0.4
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.
|
@@ -37,9 +37,20 @@ This global location is always accessible regardless of which project directory
|
|
|
37
37
|
|
|
38
38
|
```
|
|
39
39
|
{learningDirectory}/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
├── .omnilearn/ ← ONLY configuration and global preferences
|
|
41
|
+
│ ├── config.json ← Mirror of the global config (for reference)
|
|
42
|
+
│ └── UserPreferences.md ← Global user preferences (auto-populated)
|
|
43
|
+
│
|
|
44
|
+
├── <skill>/ ← Skills live at the ROOT of learning directory
|
|
45
|
+
│ ├── roadmap.md
|
|
46
|
+
│ ├── SkillPreferences.md
|
|
47
|
+
│ ├── SkillConventions.md
|
|
48
|
+
│ ├── progress-index.md
|
|
49
|
+
│ ├── runs/
|
|
50
|
+
│ └── topics/
|
|
51
|
+
│
|
|
52
|
+
└── <another-skill>/ ← Each skill is its own top-level folder
|
|
53
|
+
└── ...
|
|
43
54
|
```
|
|
44
55
|
|
|
45
56
|
## Phase 0: CHECK EXISTING CONFIG
|
|
@@ -117,7 +128,8 @@ sed -i "s|DATE_PLACEHOLDER|$(date +%Y-%m-%d)|g" "$OMNILEARN_CONFIG"
|
|
|
117
128
|
### 2.2 Create Base Directory Structure
|
|
118
129
|
|
|
119
130
|
```bash
|
|
120
|
-
# Create .omnilearn in the learning directory
|
|
131
|
+
# Create .omnilearn in the learning directory (config only)
|
|
132
|
+
# Skills will be created as top-level directories at $LEARNING_DIR
|
|
121
133
|
OMNILEARN_DIR="$LEARNING_DIR/.omnilearn"
|
|
122
134
|
mkdir -p "$OMNILEARN_DIR"
|
|
123
135
|
|
|
@@ -25,7 +25,7 @@ Both scenarios follow the same core flow: research → analyze → produce struc
|
|
|
25
25
|
## Directory Structure
|
|
26
26
|
|
|
27
27
|
```
|
|
28
|
-
|
|
28
|
+
<skill>/ ← Skill at learning directory root
|
|
29
29
|
├── roadmap.md
|
|
30
30
|
├── SkillPreferences.md
|
|
31
31
|
├── SkillConventions.md ← 🔑 Setup conventions read for consistent diagnostic tasks
|
|
@@ -56,9 +56,9 @@ CURRENT_YEAR=$(date +%Y)
|
|
|
56
56
|
|
|
57
57
|
All subagents that use MCP tools MUST follow these exact calling conventions:
|
|
58
58
|
|
|
59
|
-
### `context7_resolve-library-id` + `
|
|
59
|
+
### `context7_resolve-library-id` + `context7_query-docs`
|
|
60
60
|
1. **ALWAYS call `context7_resolve-library-id` FIRST** with the library name to get the correct library ID.
|
|
61
|
-
2. Use the returned library ID (format: `/org/package`) as the `libraryId` parameter in `
|
|
61
|
+
2. Use the returned library ID (format: `/org/package`) as the `libraryId` parameter in `context7_query-docs`.
|
|
62
62
|
3. Do NOT guess or hardcode library IDs.
|
|
63
63
|
4. Max 3 calls per question.
|
|
64
64
|
|
|
@@ -79,7 +79,7 @@ All subagents that use MCP tools MUST follow these exact calling conventions:
|
|
|
79
79
|
| Tool | When | Why |
|
|
80
80
|
|------|------|-----|
|
|
81
81
|
| `google_search` / `websearch_web_search_exa` | Research | Topic research, answer questions, validate changes |
|
|
82
|
-
| `context7_resolve-library-id` + `
|
|
82
|
+
| `context7_resolve-library-id` + `context7_query-docs` | Tech topics | Official documentation for precise answers — MUST call resolve first |
|
|
83
83
|
| `task(category="unspecified-high", background)` | Heavy work | Research, analysis, topic updates |
|
|
84
84
|
| `read`, `write`, `edit`, `bash`, `grep`, `glob` | All phases | File operations |
|
|
85
85
|
|
|
@@ -121,7 +121,7 @@ fi
|
|
|
121
121
|
|
|
122
122
|
LEARNING_DIR=$(grep -o '"learningDirectory"[[:space:]]*:[[:space:]]*"[^"]*"' "$OMNILEARN_CONFIG" | sed 's/"learningDirectory"[[:space:]]*:[[:space:]]*"//' | sed 's/"$//')
|
|
123
123
|
OMNILEARN_DIR="$LEARNING_DIR/.omnilearn"
|
|
124
|
-
SKILL_DIR="$
|
|
124
|
+
SKILL_DIR="$LEARNING_DIR/<skill>"
|
|
125
125
|
TOPIC_DIR="$SKILL_DIR/topics/<topic>"
|
|
126
126
|
TOPIC_ROADMAP="$TOPIC_DIR/topic-roadmap.md"
|
|
127
127
|
CURRENT_RUN="$SKILL_DIR/runs/$(date +%s)-refine-<topic>"
|
|
@@ -162,7 +162,7 @@ task(category="unspecified-high", run_in_background=false, prompt="
|
|
|
162
162
|
1. TASK: Create a focused micro-exercise that tests the user's understanding of '{concept}' in '{skill}'. The user is confused about: '{user_request}'.
|
|
163
163
|
2. EXPECTED OUTCOME: A self-contained micro-exercise (5-15 min) that isolates the specific concept and lets the user figure it out by coding/building.
|
|
164
164
|
|
|
165
|
-
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id,
|
|
165
|
+
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id, context7_query-docs, read, write
|
|
166
166
|
|
|
167
167
|
4. MUST DO:
|
|
168
168
|
- Read the current topic-roadmap.md to understand what's been covered: {TOPIC_ROADMAP}
|
|
@@ -275,7 +275,7 @@ task(category="unspecified-high", run_in_background=true, prompt="
|
|
|
275
275
|
1. TASK: Research online to find better ways to structure and teach '{topic}' in '{skill}'.
|
|
276
276
|
2. EXPECTED OUTCOME: A research document with web-sourced findings about best practices for teaching/learning this topic.
|
|
277
277
|
|
|
278
|
-
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id,
|
|
278
|
+
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id, context7_query-docs, read, write
|
|
279
279
|
|
|
280
280
|
4. MUST DO:
|
|
281
281
|
- Analyze the user's refinement request: '{user_request}'
|
|
@@ -410,7 +410,7 @@ Write to `$CURRENT_RUN/agent-log.md`:
|
|
|
410
410
|
|
|
411
411
|
```bash
|
|
412
412
|
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
413
|
-
git add "$
|
|
413
|
+
git add "$LEARNING_DIR/"
|
|
414
414
|
git commit -m "omnilearn: refine topic '{topic}' in {skill}
|
|
415
415
|
|
|
416
416
|
- {summary of what was done}
|
|
@@ -442,7 +442,7 @@ If no git repo: ask if user wants to initialize one (same pattern).
|
|
|
442
442
|
| Topic not found | Suggest available topics from the skill roadmap |
|
|
443
443
|
| User's question is too vague | Ask clarifying questions before researching |
|
|
444
444
|
| Research yields poor results | Try alternative search queries, broaden scope |
|
|
445
|
-
| Refinement accidentally modifies assignments | Revert: `git checkout
|
|
445
|
+
| Refinement accidentally modifies assignments | Revert: `git checkout $SKILL_DIR/topics/$TOPIC/assignments/` |
|
|
446
446
|
| User wants to undo refinement | Archive current, restore from git or previous file in runs/ |
|
|
447
447
|
| User has multiple questions | Answer the most foundational one first, then the dependent ones |
|
|
448
448
|
|
|
@@ -25,9 +25,9 @@ CURRENT_YEAR=$(date +%Y)
|
|
|
25
25
|
|
|
26
26
|
All subagents that use MCP tools MUST follow these exact calling conventions:
|
|
27
27
|
|
|
28
|
-
### `context7_resolve-library-id` + `
|
|
28
|
+
### `context7_resolve-library-id` + `context7_query-docs`
|
|
29
29
|
1. **ALWAYS call `context7_resolve-library-id` FIRST** with the library name to get the correct library ID.
|
|
30
|
-
2. Use the returned library ID (format: `/org/package`) as the `libraryId` parameter in `
|
|
30
|
+
2. Use the returned library ID (format: `/org/package`) as the `libraryId` parameter in `context7_query-docs`.
|
|
31
31
|
3. Do NOT guess or hardcode library IDs.
|
|
32
32
|
4. Max 3 calls per question.
|
|
33
33
|
|
|
@@ -59,14 +59,15 @@ This command performs the same rigorous research-backed process as `/omnilearn-r
|
|
|
59
59
|
## Directory Structure Reference
|
|
60
60
|
|
|
61
61
|
```
|
|
62
|
-
.omnilearn/
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
.omnilearn/ ← Config only
|
|
63
|
+
└── UserPreferences.md
|
|
64
|
+
|
|
65
|
+
<skill-name>/ ← Skill at learning directory root
|
|
65
66
|
├── SkillPreferences.md
|
|
66
67
|
├── SkillConventions.md ← Preserved during edits
|
|
67
68
|
├── roadmap.md ← Will be updated
|
|
68
69
|
├── progress-index.md ← Must be preserved & updated
|
|
69
|
-
├── runs/
|
|
70
|
+
├── runs/ ← Action logs
|
|
70
71
|
│ └── YYYY-MM-DD-HHMMSS-roadmap-edit/
|
|
71
72
|
│ ├── agent-log.md
|
|
72
73
|
│ ├── research-changes.md ← Research on requested changes
|
|
@@ -110,7 +111,7 @@ fi
|
|
|
110
111
|
|
|
111
112
|
LEARNING_DIR=$(grep -o '"learningDirectory"[[:space:]]*:[[:space:]]*"[^"]*"' "$OMNILEARN_CONFIG" | sed 's/"learningDirectory"[[:space:]]*:[[:space:]]*"//' | sed 's/"$//')
|
|
112
113
|
OMNILEARN_DIR="$LEARNING_DIR/.omnilearn"
|
|
113
|
-
SKILL_DIR="$
|
|
114
|
+
SKILL_DIR="$LEARNING_DIR/<skill>"
|
|
114
115
|
ROADMAP="$SKILL_DIR/roadmap.md"
|
|
115
116
|
RUNS_DIR="$SKILL_DIR/runs"
|
|
116
117
|
TOPICS_DIR="$SKILL_DIR/topics"
|
|
@@ -257,7 +258,7 @@ task(category="unspecified-high", run_in_background=true, prompt="
|
|
|
257
258
|
1. TASK: Research online to validate and inform the user's requested roadmap changes for {skill}.
|
|
258
259
|
2. EXPECTED OUTCOME: A research document with web-sourced findings about the topics the user wants to add/modify.
|
|
259
260
|
|
|
260
|
-
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id,
|
|
261
|
+
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id, context7_query-docs, read, write
|
|
261
262
|
|
|
262
263
|
4. MUST DO:
|
|
263
264
|
- **CURRENT DATE: {CURRENT_DATE}** — ONLY research current information. Check for deprecation warnings. Prioritize resources from the last 1-2 years. Prefer latest stable versions of any library/framework/tool.
|
|
@@ -444,9 +445,9 @@ Write to `$ARCHIVE_DIR/agent-log.md`:
|
|
|
444
445
|
│ • Preserved: All progress data intact │
|
|
445
446
|
│ │
|
|
446
447
|
│ 🔗 Previous version archived at: │
|
|
447
|
-
│
|
|
448
|
+
│ {SKILL_DIR}/runs/{timestamp}-roadmap-edit/ │
|
|
448
449
|
│ │
|
|
449
|
-
│ 📍 Updated roadmap:
|
|
450
|
+
│ 📍 Updated roadmap: {SKILL_DIR}/roadmap.md │
|
|
450
451
|
│ │
|
|
451
452
|
│ ┌─ Change Preview ──────────────────────────────────────────┐ │
|
|
452
453
|
│ │ {brief summary of the most significant changes} │ │
|
|
@@ -463,7 +464,7 @@ Write to `$ARCHIVE_DIR/agent-log.md`:
|
|
|
463
464
|
|
|
464
465
|
```bash
|
|
465
466
|
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
466
|
-
git add "$
|
|
467
|
+
git add "$LEARNING_DIR/"
|
|
467
468
|
git commit -m "omnilearn: update roadmap for {skill}
|
|
468
469
|
|
|
469
470
|
- {change summary}
|
|
@@ -502,8 +503,8 @@ If no git repo: same flow as `/omnilearn-roadmap` — ask if the user wants to i
|
|
|
502
503
|
| User says "you deleted my progress!" | STOP. Restore from archive. The topics/ directory must be fully intact with git checkout. |
|
|
503
504
|
| Change analysis conflicts with online research | Present both perspectives, ask user which to follow |
|
|
504
505
|
| Progress markers accidentally changed | Restore from archived old roadmap |
|
|
505
|
-
| topic-progress.md accidentally modified | Revert: `git checkout
|
|
506
|
-
| topics/ directory accidentally modified | Revert: `git checkout
|
|
506
|
+
| topic-progress.md accidentally modified | Revert: `git checkout {SKILL_DIR}/topics/{topic}/topic-progress.md` |
|
|
507
|
+
| topics/ directory accidentally modified | Revert: `git checkout {SKILL_DIR}/topics/` |
|
|
507
508
|
| Topic renamed but topic-progress.md path broken | Move directory back, use a symlink or alias instead |
|
|
508
509
|
| User's requested change is too vague | Ask clarifying questions before proceeding |
|
|
509
510
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Create a comprehensive, real-world-ready learning roadmap for any skill or subject. Uses multi-agent research to design optimal learning paths with practical, hands-on focus. Stores structured output in
|
|
2
|
+
description: Create a comprehensive, real-world-ready learning roadmap for any skill or subject. Uses multi-agent research to design optimal learning paths with practical, hands-on focus. Stores structured output in the learning directory for continuous learning.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# /omnilearn-roadmap — Create a Comprehensive Learning Roadmap
|
|
@@ -15,13 +15,14 @@ description: Create a comprehensive, real-world-ready learning roadmap for any s
|
|
|
15
15
|
## Directory Structure
|
|
16
16
|
|
|
17
17
|
```
|
|
18
|
-
.omnilearn/
|
|
19
|
-
├── UserPreferences.md
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
.omnilearn/ ← ONLY config and global preferences
|
|
19
|
+
├── UserPreferences.md ← Global user preferences (auto-read + updated)
|
|
20
|
+
|
|
21
|
+
<skill-name>/ ← Skills at LEARNING DIRECTORY ROOT
|
|
22
|
+
├── SkillPreferences.md ← Per-skill learning preferences
|
|
23
|
+
├── SkillConventions.md ← 🔑 Setup conventions: package manager, project structure, deps, testing (auto-learned)
|
|
24
|
+
├── roadmap.md ← Master roadmap (the main deliverable)
|
|
25
|
+
├── progress-index.md ← Progress log — index of all runs
|
|
25
26
|
├── runs/ ← Research & execution logs
|
|
26
27
|
│ └── YYYY-MM-DD-HHMMSS-roadmap-creation/
|
|
27
28
|
│ ├── agent-log.md ← What this run did, decisions made
|
|
@@ -87,7 +88,10 @@ OMNILEARN_DIR="$LEARNING_DIR/.omnilearn"
|
|
|
87
88
|
echo "Using learning directory: $LEARNING_DIR"
|
|
88
89
|
```
|
|
89
90
|
|
|
90
|
-
|
|
91
|
+
**Path convention:**
|
|
92
|
+
- `$OMNILEARN_DIR` = `$LEARNING_DIR/.omnilearn/` — **ONLY** config + UserPreferences.md
|
|
93
|
+
- `$SKILL_DIR` = `$LEARNING_DIR/<skill>/` — skill folders are at the learning directory ROOT
|
|
94
|
+
- All cross-skill scans use `$LEARNING_DIR/*/` (excluding `.omnilearn`)
|
|
91
95
|
|
|
92
96
|
## Current Date Context (CRITICAL — Must Pass to ALL Subagents)
|
|
93
97
|
|
|
@@ -102,9 +106,9 @@ CURRENT_YEAR=$(date +%Y)
|
|
|
102
106
|
|
|
103
107
|
All subagents that use MCP tools MUST follow these exact calling conventions:
|
|
104
108
|
|
|
105
|
-
### `context7_resolve-library-id` + `
|
|
109
|
+
### `context7_resolve-library-id` + `context7_query-docs`
|
|
106
110
|
1. **ALWAYS call `context7_resolve-library-id` FIRST** with the library name to get the correct library ID.
|
|
107
|
-
2. Use the returned library ID (format: `/org/package`) as the `libraryId` parameter in `
|
|
111
|
+
2. Use the returned library ID (format: `/org/package`) as the `libraryId` parameter in `context7_query-docs`.
|
|
108
112
|
3. Do NOT guess or hardcode library IDs.
|
|
109
113
|
4. Max 3 calls per question.
|
|
110
114
|
|
|
@@ -128,7 +132,7 @@ All subagents that use MCP tools MUST follow these exact calling conventions:
|
|
|
128
132
|
| `task(category="unspecified-high", background)` | Content creation | Heavy research, roadmap synthesis, file writing |
|
|
129
133
|
| `task(category="deep", background)` | Autonomous multi-step | Complex subtasks that need internal orchestration |
|
|
130
134
|
| `google_search` / `websearch_web_search_exa` | Research phases | Web research for content, learning paths, best practices |
|
|
131
|
-
| `context7_resolve-library-id` + `
|
|
135
|
+
| `context7_resolve-library-id` + `context7_query-docs` | Tech skills | Official documentation for languages, frameworks, libraries |
|
|
132
136
|
| `read`, `write`, `edit`, `bash`, `grep`, `glob` | Every phase | File operations and navigation |
|
|
133
137
|
| `bash(git ...)` | Completion phase | Git commit after roadmap creation |
|
|
134
138
|
|
|
@@ -147,18 +151,18 @@ If the input is too vague (e.g., "I want to learn something"), ask for clarifica
|
|
|
147
151
|
### 0.2 Check Prerequisites
|
|
148
152
|
|
|
149
153
|
```bash
|
|
150
|
-
SKILL_DIR="$
|
|
154
|
+
SKILL_DIR="$LEARNING_DIR/<skill-name>"
|
|
151
155
|
RUNS_DIR="$SKILL_DIR/runs"
|
|
152
156
|
TOPICS_DIR="$SKILL_DIR/topics"
|
|
153
157
|
|
|
154
158
|
# Create base omnilearn dir if not exists
|
|
155
|
-
mkdir -p "$
|
|
159
|
+
mkdir -p "$SKILL_DIR"
|
|
156
160
|
```
|
|
157
161
|
|
|
158
162
|
### 0.3 Check for Existing Skill
|
|
159
163
|
|
|
160
164
|
If `$SKILL_DIR` already has a `roadmap.md`, inform the user:
|
|
161
|
-
> "A roadmap for **{skill}** already exists at
|
|
165
|
+
> "A roadmap for **{skill}** already exists at `{SKILL_DIR}/roadmap.md`. To revise it, use `/omnilearn-roadmap-edit`. To start learning, use `/omnilearn-start`."
|
|
162
166
|
|
|
163
167
|
If the user wants to overwrite, note it and proceed (archive old roadmap to runs/ first).
|
|
164
168
|
|
|
@@ -182,9 +186,11 @@ Read `UserPreferences.md` if it exists. Key signals to extract:
|
|
|
182
186
|
**This is mandatory.** Scan the learning directory for ALL existing skills the user has already learned or is learning:
|
|
183
187
|
|
|
184
188
|
```bash
|
|
185
|
-
# List all existing skill directories
|
|
186
|
-
ls -d "$
|
|
189
|
+
# List all existing skill directories at learning root (NOT .omnilearn/)
|
|
190
|
+
ls -d "$LEARNING_DIR"/*/ 2>/dev/null | while read dir; do
|
|
187
191
|
skill_name=$(basename "$dir")
|
|
192
|
+
# Skip .omnilearn — it's config only
|
|
193
|
+
[ "$skill_name" = ".omnilearn" ] && continue
|
|
188
194
|
# Read their progress to understand what the user already knows
|
|
189
195
|
if [ -f "$dir/progress-index.md" ]; then
|
|
190
196
|
echo "Existing skill: $skill_name — checking progress..."
|
|
@@ -225,7 +231,7 @@ task(category="unspecified-high", run_in_background=true, prompt="
|
|
|
225
231
|
|
|
226
232
|
2. EXPECTED OUTCOME: A comprehensive, structured markdown file covering all knowledge areas, concepts, tools, and practices needed for real-world proficiency in {skill} — **filtered and prioritized based on what the user already knows**.
|
|
227
233
|
|
|
228
|
-
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id,
|
|
234
|
+
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id, context7_query-docs, read, write
|
|
229
235
|
|
|
230
236
|
4. MUST DO:
|
|
231
237
|
- **CURRENT DATE: {CURRENT_DATE}** — ONLY search for and reference current information. Prioritize resources from the last 1-2 years. Check for deprecation warnings on any library/framework/tool. Prefer latest stable versions. If something has been superseded (e.g. Create React App → Vite, npm → pnpm/uv), flag it.
|
|
@@ -367,7 +373,7 @@ task(category="unspecified-high", run_in_background=false, timeout=300000, promp
|
|
|
367
373
|
1. TASK: Synthesize research into a personalized, level-adaptive, cross-skill-integrated master roadmap for {skill}.
|
|
368
374
|
2. EXPECTED OUTCOME: A detailed roadmap.md file with a learning path TAILORED to this user's level and existing knowledge — skipping what they already know, integrating related skills, and focused on real-world readiness.
|
|
369
375
|
|
|
370
|
-
3. REQUIRED TOOLS: google_search, websearch_web_search_exa,
|
|
376
|
+
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_query-docs, read, write, grep
|
|
371
377
|
|
|
372
378
|
4. MUST DO:
|
|
373
379
|
- **CURRENT DATE: {CURRENT_DATE}** — ONLY reference current information. If you do additional online research, prioritize resources from the last 1-2 years. Check for deprecation warnings. Prefer latest stable versions of any library/framework/tool mentioned.
|
|
@@ -535,7 +541,7 @@ Write to the agent log file documenting:
|
|
|
535
541
|
│ ✅ Roadmap Created: {skill} │
|
|
536
542
|
├──────────────────────────────────────────────────────────────────┤
|
|
537
543
|
│ │
|
|
538
|
-
│ 📍 Location:
|
|
544
|
+
│ 📍 Location: {SKILL_DIR}/roadmap.md │
|
|
539
545
|
│ │
|
|
540
546
|
│ 📊 Roadmap Overview: │
|
|
541
547
|
│ • Foundation: {N} topics — build the fundamentals │
|
|
@@ -582,7 +588,7 @@ fi
|
|
|
582
588
|
|
|
583
589
|
If git repo exists:
|
|
584
590
|
```bash
|
|
585
|
-
git add "$
|
|
591
|
+
git add "$LEARNING_DIR/"
|
|
586
592
|
git commit -m "omnilearn: create learning roadmap for {skill}
|
|
587
593
|
|
|
588
594
|
- Added master roadmap with foundation, core, advanced, and real-world topics
|
|
@@ -597,7 +603,7 @@ If no git repo exists, ask:
|
|
|
597
603
|
If yes:
|
|
598
604
|
```bash
|
|
599
605
|
git init
|
|
600
|
-
git add "$
|
|
606
|
+
git add "$LEARNING_DIR/"
|
|
601
607
|
git commit -m "omnilearn: initialize learning environment with {skill} roadmap"
|
|
602
608
|
```
|
|
603
609
|
|
|
@@ -613,7 +619,7 @@ Mark the task as complete. Update UserPreferences.md if new relevant information
|
|
|
613
619
|
|-------|-------|-----------------|
|
|
614
620
|
| Content research subagent completed | 1 | Block — must have research |
|
|
615
621
|
| Learning path subagent completed | 1 | Block — must have research |
|
|
616
|
-
| Cross-skill inventory scanned | 0 | Scan .omnilearn
|
|
622
|
+
| Cross-skill inventory scanned | 0 | Scan $LEARNING_DIR/*/ (skip .omnilearn) |
|
|
617
623
|
| User level extracted from preferences | 0 | Infer from available signals |
|
|
618
624
|
| Roadmap has 5+ substantive topics | 2 | Re-synthesize with fix |
|
|
619
625
|
| Roadmap skips topics user already knows | 2 | Re-synthesize — remove redundant basics |
|
|
@@ -27,12 +27,15 @@ The goal metric: **Can the user apply what they learned to real-world problems t
|
|
|
27
27
|
## Directory Structure
|
|
28
28
|
|
|
29
29
|
```
|
|
30
|
-
|
|
31
|
-
├──
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
├──
|
|
35
|
-
├──
|
|
30
|
+
{learningDirectory}/
|
|
31
|
+
├── .omnilearn/ ← Config only (config.json, UserPreferences.md)
|
|
32
|
+
│
|
|
33
|
+
└── <skill>/ ← Skills at learning root
|
|
34
|
+
├── roadmap.md
|
|
35
|
+
├── SkillPreferences.md
|
|
36
|
+
├── SkillConventions.md ← 🔑 Setup conventions: package manager, project structure, deps, testing (auto-learned)
|
|
37
|
+
├── progress-index.md ← Overview index: links to topic-progress.md per topic
|
|
38
|
+
├── runs/ ← Skill-level run logs (action logs only, NOT progress)
|
|
36
39
|
│ └── YYYY-MM-DD-HHMMSS-learning-<topic>/
|
|
37
40
|
│ ├── agent-log.md ← What happened this run: decisions, actions taken
|
|
38
41
|
│ ├── interaction-1.md ← User Q&A interaction record
|
|
@@ -71,9 +74,9 @@ CURRENT_YEAR=$(date +%Y)
|
|
|
71
74
|
|
|
72
75
|
All subagents that use MCP tools MUST follow these exact calling conventions:
|
|
73
76
|
|
|
74
|
-
### `context7_resolve-library-id` + `
|
|
77
|
+
### `context7_resolve-library-id` + `context7_query-docs`
|
|
75
78
|
1. **ALWAYS call `context7_resolve-library-id` FIRST** with the library name to get the correct library ID.
|
|
76
|
-
2. Use the returned library ID (format: `/org/package`) as the `libraryId` parameter in `
|
|
79
|
+
2. Use the returned library ID (format: `/org/package`) as the `libraryId` parameter in `context7_query-docs`.
|
|
77
80
|
3. Do NOT guess or hardcode library IDs.
|
|
78
81
|
4. Max 3 calls per question.
|
|
79
82
|
|
|
@@ -98,7 +101,7 @@ All subagents that use MCP tools MUST follow these exact calling conventions:
|
|
|
98
101
|
| `task(category="writing")` | Content writing | Topic explanations, solution guides |
|
|
99
102
|
| `task(category="unspecified-high", ["programming"])` | Technical work | Test scripts, scaffold code |
|
|
100
103
|
| `google_search` / `websearch_web_search_exa` | Research | Learning resources, topic best practices |
|
|
101
|
-
| `
|
|
104
|
+
| `context7_query-docs` | Tech skills | Official docs for languages/frameworks |
|
|
102
105
|
| `question` tool | User interaction | Present topic choices, ask for preferences |
|
|
103
106
|
| `read`, `write`, `edit`, `bash`, `grep`, `glob` | Every phase | File operations |
|
|
104
107
|
| `bash(git ...)` | Completion | Commit progress |
|
|
@@ -127,7 +130,7 @@ fi
|
|
|
127
130
|
|
|
128
131
|
LEARNING_DIR=$(grep -o '"learningDirectory"[[:space:]]*:[[:space:]]*"[^"]*"' "$OMNILEARN_CONFIG" | sed 's/"learningDirectory"[[:space:]]*:[[:space:]]*"//' | sed 's/"$//')
|
|
129
132
|
OMNILEARN_DIR="$LEARNING_DIR/.omnilearn"
|
|
130
|
-
SKILL_DIR="$
|
|
133
|
+
SKILL_DIR="$LEARNING_DIR/<skill>"
|
|
131
134
|
ROADMAP="$SKILL_DIR/roadmap.md"
|
|
132
135
|
PROGRESS_INDEX="$SKILL_DIR/progress-index.md"
|
|
133
136
|
TOPICS_DIR="$SKILL_DIR/topics"
|
|
@@ -158,8 +161,9 @@ Read these files to understand the current state:
|
|
|
158
161
|
|
|
159
162
|
**Cross-skill inventory** — Scan the learning directory for other skills the user has learned:
|
|
160
163
|
```bash
|
|
161
|
-
ls -d "$
|
|
164
|
+
ls -d "$LEARNING_DIR"/*/ 2>/dev/null | while read dir; do
|
|
162
165
|
skill_name=$(basename "$dir")
|
|
166
|
+
[ "$skill_name" = ".omnilearn" ] && continue
|
|
163
167
|
if [ "$skill_name" != "$SKILL_NAME" ] && [ -f "$dir/progress-index.md" ]; then
|
|
164
168
|
echo "Related skill: $skill_name — can integrate with $SKILL_NAME"
|
|
165
169
|
fi
|
|
@@ -211,7 +215,7 @@ task(category="deep", run_in_background=false, timeout=600000, prompt="
|
|
|
211
215
|
1. TASK: Create a comprehensive subtopic roadmap and initial learning materials for the topic '{topic}' within the skill '{skill}'.
|
|
212
216
|
2. EXPECTED OUTCOME: A detailed topic-roadmap.md with structured learning path, AND the first assignment with question, test script, scaffold, and solution guide.
|
|
213
217
|
|
|
214
|
-
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id,
|
|
218
|
+
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id, context7_query-docs, read, write, bash, grep
|
|
215
219
|
|
|
216
220
|
4. MUST DO — Step-by-Step:
|
|
217
221
|
- **CURRENT DATE: {CURRENT_DATE}** — ONLY research current information. Prioritize resources from the last 1-2 years. Check for deprecation warnings. Prefer latest stable versions of any library/framework/tool. If older resources reference superseded tools (e.g. CRA → Vite, pip → uv), flag and use the current standard.
|
|
@@ -359,7 +363,7 @@ Read the assignment files for the current topic:
|
|
|
359
363
|
│ {brief description of the assignment} │
|
|
360
364
|
│ │
|
|
361
365
|
│ Files: │
|
|
362
|
-
│ • Question:
|
|
366
|
+
│ • Question: {SKILL_DIR}/topics/{topic}/assignments/ │
|
|
363
367
|
│ 01-{name}/question.md │
|
|
364
368
|
│ • Scaffold: (same directory)/scaffold/ │
|
|
365
369
|
│ • Test: (same directory)/test.{ext} │
|
|
@@ -401,7 +405,7 @@ task(category="unspecified-high", run_in_background=false, prompt="
|
|
|
401
405
|
1. TASK: Create a focused micro-exercise that tests the user's understanding of '{concept}' in '{skill}'. The user is struggling with this concept during assignment '{assignment}' on topic '{topic}'.
|
|
402
406
|
2. EXPECTED OUTCOME: A self-contained micro-exercise (5-15 min to solve) that isolates the specific concept and lets the user figure it out by coding.
|
|
403
407
|
|
|
404
|
-
3. REQUIRED TOOLS: google_search, websearch_web_search_exa,
|
|
408
|
+
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_query-docs, read, write
|
|
405
409
|
|
|
406
410
|
4. MUST DO:
|
|
407
411
|
- **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.
|
|
@@ -535,7 +539,7 @@ task(category="unspecified-high", run_in_background=false, timeout=300000, promp
|
|
|
535
539
|
1. TASK: Create the next assignment ({assignment-num}) for topic '{topic}' in skill '{skill}'.
|
|
536
540
|
2. EXPECTED OUTCOME: Complete assignment with question.md, test script, scaffold, and solution-guide.md at the next difficulty level.
|
|
537
541
|
|
|
538
|
-
3. REQUIRED TOOLS: google_search, websearch_web_search_exa,
|
|
542
|
+
3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_query-docs, read, write
|
|
539
543
|
|
|
540
544
|
4. MUST DO:
|
|
541
545
|
- **CURRENT DATE: {CURRENT_DATE}** — ONLY use current, real-world scenarios. Avoid outdated APIs, deprecated libraries, or superseded best practices. Research what's current in the industry for this topic.
|
|
@@ -699,7 +703,7 @@ Write to `$CURRENT_RUN/agent-log.md`:
|
|
|
699
703
|
|
|
700
704
|
```bash
|
|
701
705
|
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
702
|
-
git add "$
|
|
706
|
+
git add "$LEARNING_DIR/"
|
|
703
707
|
git commit -m "omnilearn: learning session — {skill}/{topic}
|
|
704
708
|
|
|
705
709
|
- Completed assignment(s): {list}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnilearn-workflow",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
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",
|