omnilearn-workflow 1.0.0

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.
@@ -0,0 +1,502 @@
1
+ ---
2
+ description: Edit an existing learning roadmap with full research-backed revision. Preserves progress data and run logs while restructuring the roadmap with the same rigor as creation.
3
+ ---
4
+
5
+ # /omnilearn-roadmap-edit — Edit an Existing Learning Roadmap
6
+
7
+ ## Usage
8
+ ```
9
+ /omnilearn-roadmap-edit Rust Add more systems programming focus
10
+ /omnilearn-roadmap-edit React I want more emphasis on testing patterns
11
+ /omnilearn-roadmap-edit Machine Learning Make the math section more approachable
12
+ /omnilearn-roadmap-edit Python I want to add web scraping and automation
13
+ ```
14
+
15
+ ## Core Behavior
16
+
17
+ This command performs the same rigorous research-backed process as `/omnilearn-roadmap`, but operates on an EXISTING roadmap. It:
18
+ 1. Reads the existing roadmap and associated files
19
+ 2. Understands what the user wants to change
20
+ 3. Does parallel research to validate and expand
21
+ 4. Produces an updated roadmap while preserving progress tracking data
22
+ 5. Archives the old version to runs/ for history
23
+
24
+ **Progress data (completed topics, assignment logs, run histories) must NOT be lost during editing.**
25
+
26
+ **Critical rule: the edit restructures FUTURE topics intelligently while leaving COMPLETED and IN-PROGRESS topics untouched. Never delete or reset progress — only reorder, add, or deepen future content.**
27
+
28
+ ## Directory Structure Reference
29
+
30
+ ```
31
+ .omnilearn/
32
+ ├── UserPreferences.md
33
+ └── <skill-name>/
34
+ ├── SkillPreferences.md
35
+ ├── roadmap.md ← Will be updated
36
+ ├── progress-index.md ← Must be preserved & updated
37
+ ├── runs/
38
+ │ └── YYYY-MM-DD-HHMMSS-roadmap-edit/
39
+ │ ├── agent-log.md
40
+ │ ├── research-changes.md ← Research on requested changes
41
+ │ ├── old-roadmap-archived.md ← Previous version of roadmap
42
+ │ └── new-roadmap-draft.md ← Draft of updated roadmap
43
+ └── topics/ ← MUST be preserved — never delete or alter topic-progress.md, assignments/, or runs/
44
+ └── <topic-name>/
45
+ ├── topic-progress.md ← 🔑 THE source of truth for what the user has done
46
+ ├── assignments/ ← All assignment work the user has completed
47
+ └── runs/ ← Learning session logs
48
+ ```
49
+
50
+ **Progress Inventory — Every edit must account for each topic's full state before making changes.**
51
+
52
+ ## Phase 0: INTENT GATE — Parse Input & Validate
53
+
54
+ ### 0.1 Parse Input
55
+
56
+ Extract the skill name and the change request from the user's message:
57
+ - "Edit my Rust roadmap to add more systems programming" → skill: `Rust`, changes: "add more systems programming"
58
+ - "Make the React roadmap less focused on hooks and more on state management patterns" → skill: `React`, changes: "more state management patterns"
59
+
60
+ If no skill is identifiable, ask:
61
+ > "Which skill's roadmap would you like to edit? (e.g., 'Rust', 'React', 'Machine Learning')"
62
+
63
+ If no specific change is mentioned, ask:
64
+ > "What would you like to change about the {skill} roadmap? For example: add topics, restructure, change depth, adjust focus areas."
65
+
66
+ ### 0.2 Check Roadmap Exists
67
+
68
+ ```bash
69
+ OMNILEARN_CONFIG="$HOME/.config/opencode/omnilearn.json"
70
+
71
+ if [ ! -f "$OMNILEARN_CONFIG" ]; then
72
+ echo "OmniLearn is not configured yet."
73
+ echo ""
74
+ echo "Run this first:"
75
+ echo " /omnilearn-init"
76
+ exit 1
77
+ fi
78
+
79
+ LEARNING_DIR=$(grep -o '"learningDirectory"[[:space:]]*:[[:space:]]*"[^"]*"' "$OMNILEARN_CONFIG" | sed 's/"learningDirectory"[[:space:]]*:[[:space:]]*"//' | sed 's/"$//')
80
+ OMNILEARN_DIR="$LEARNING_DIR/.omnilearn"
81
+ SKILL_DIR="$OMNILEARN_DIR/<skill>"
82
+ ROADMAP="$SKILL_DIR/roadmap.md"
83
+ RUNS_DIR="$SKILL_DIR/runs"
84
+ TOPICS_DIR="$SKILL_DIR/topics"
85
+ PROGRESS_INDEX="$SKILL_DIR/progress-index.md"
86
+ SKILL_PREFS="$SKILL_DIR/SkillPreferences.md"
87
+
88
+ if [ ! -f "$ROADMAP" ]; then
89
+ echo "No roadmap found for {skill}. Create one first with: /omnilearn-roadmap {skill}"
90
+ exit 1
91
+ fi
92
+ ```
93
+
94
+ ### 0.3 Read Existing Files + Build Progress Inventory
95
+
96
+ Read these files:
97
+ - `UserPreferences.md` — global preferences
98
+ - `SkillPreferences.md` — per-skill preferences
99
+ - `roadmap.md` — the existing roadmap (read fully)
100
+ - `progress-index.md` — overview of topic statuses
101
+
102
+ ### 0.4 Inventory ALL Topic Progress (CRITICAL — Must Not Be Skipped)
103
+
104
+ **Before ANY changes, you must build a complete inventory of every topic's progress.** This is the safety net that prevents progress loss.
105
+
106
+ ```bash
107
+ TOPICS_DIR="$SKILL_DIR/topics"
108
+ ```
109
+
110
+ For each topic directory found in `$TOPICS_DIR/`:
111
+ 1. Read its `topic-progress.md` — extract:
112
+ - Topic name and overall status (✅ Completed / 🔵 In Progress / 🟢 Not Started)
113
+ - Which assignments are completed (1/3, 2/3, 3/3)
114
+ - Skills demonstrated (from the log)
115
+ - Last session date
116
+ 2. List the assignments directory — note which assignment files exist
117
+ 3. List the runs directory — note any learning session logs
118
+
119
+ Build a **Progress Inventory** file:
120
+
121
+ ```bash
122
+ PROGRESS_INVENTORY="$ARCHIVE_DIR/progress-inventory.md"
123
+ ```
124
+
125
+ Write to this file with the following structure:
126
+
127
+ ```markdown
128
+ # Progress Inventory: {skill} (before edit)
129
+
130
+ ## Topics Inventory
131
+ | Topic | Status | Assignments Done | Skills Demonstrated | Last Activity |
132
+ |-------|--------|-----------------|---------------------|---------------|
133
+ | topic-1 | ✅ Completed | 3/3 | {list of skills} | {date} |
134
+ | topic-2 | 🔵 In Progress | 1/3 | {partial skills} | {date} |
135
+ | topic-3 | 🟢 Not Started | 0/3 | — | — |
136
+
137
+ ## Detailed Topic States
138
+
139
+ ### topic-1 (✅ Completed)
140
+ - topic-progress.md: {TOPICS_DIR}/topic-1/topic-progress.md
141
+ - Assignments: 01-basics ✅, 02-intermediate ✅, 03-real-world ✅
142
+ - Skills: {extracted skills demonstrated}
143
+ - Sessions: {count} learning sessions in runs/
144
+
145
+ ### topic-2 (🔵 In Progress)
146
+ - topic-progress.md: {TOPICS_DIR}/topic-2/topic-progress.md
147
+ - Assignments: 01-basics ✅, 02-intermediate 🔵, 03-real-world 🟢
148
+ - Current assignment: {which one they're on}
149
+ - Skills: {extracted skills demonstrated so far}
150
+ - Sessions: {count} learning sessions
151
+
152
+ ### topic-3 (🟢 Not Started)
153
+ - topic-progress.md: {TOPICS_DIR}/topic-3/topic-progress.md
154
+ - No progress yet
155
+
156
+ ## Cross-Skill Context (from existing skills)
157
+ {summary of other skills user has learned}
158
+ ```
159
+
160
+ This inventory is passed to ALL downstream subagents so they know exactly what must be preserved.
161
+
162
+ ### 0.5 Archive Current Roadmap
163
+
164
+ ```bash
165
+ mkdir -p "$RUNS_DIR/$(date +%s)-roadmap-edit"
166
+ ARCHIVE_DIR="$RUNS_DIR/$(date +%s)-roadmap-edit"
167
+ cp "$ROADMAP" "$ARCHIVE_DIR/old-roadmap-archived.md"
168
+ ```
169
+
170
+ This ensures the old version is NEVER lost.
171
+
172
+ ## Phase 1: PARALLEL RESEARCH — Analyze + Research Changes
173
+
174
+ Spawn two subagents in parallel:
175
+
176
+ ### 1.1 Subagent A: Changes Analysis (Progress-Aware)
177
+
178
+ ```typescript
179
+ task(category="unspecified-high", run_in_background=true, prompt="
180
+ 1. TASK: Analyze the existing {skill} roadmap and the user's requested changes to determine exactly what needs to be added, removed, or restructured. **CRITICAL: You MUST read the progress inventory first to know what the user has already accomplished.**
181
+ 2. EXPECTED OUTCOME: A detailed analysis identifying specific roadmap changes, with rationale and a **progress migration plan** ensuring nothing the user has done is lost.
182
+
183
+ 3. REQUIRED TOOLS: read, write, grep
184
+
185
+ 4. MUST DO:
186
+ - FIRST — Read the PROGRESS INVENTORY: {ARCHIVE_DIR}/progress-inventory.md
187
+ * Note EVERY topic's status (✅ Completed / 🔵 In Progress / 🟢 Not Started)
188
+ * Note every assignment that's been completed
189
+ * Note skills the user has demonstrated
190
+ - Read the existing roadmap: {ROADMAP}
191
+ - Read the skill preferences: {SKILL_PREFS}
192
+ - Analyze the user's change request: '{user_change_request}'
193
+ - Identify EXACTLY which sections/topics need to change:
194
+ * **COMPLETED topics (✅) must NEVER be removed or altered** — they represent accomplished learning
195
+ * **IN-PROGRESS topics (🔵) should be left intact** — the user is mid-learning
196
+ * **NOT STARTED topics (🟢) are fair game for restructuring** — these are future work
197
+ * New topics to add — specify where in the structure they fit
198
+ * Existing topics to modify — specify what needs to change (only future/not-started ones)
199
+ * Topics to reorder — specify new position in the sequence
200
+ * Depth/emphasis adjustments — which topics need more/less coverage
201
+ - **For each proposed change to a NOT STARTED topic, verify it doesn't conflict with completed topics' prerequisites**
202
+ - Write analysis to: {ARCHIVE_DIR}/research-changes.md
203
+ - Format: For each change, state: What, Where, Why, Impact on existing progress
204
+
205
+ 5. MUST NOT DO:
206
+ - Do NOT suggest removing or modifying ✅ Completed topics
207
+ - Do NOT suggest removing or modifying 🔵 In Progress topics unless the user explicitly asked
208
+ - Do NOT suggest discarding any assignment files, topic-progress.md files, or run logs
209
+ - Do NOT modify any files — this is analysis only
210
+ - Do NOT add topics that are out of scope for the skill
211
+
212
+ 6. CONTEXT:
213
+ - Skill: {skill}
214
+ - User change request: {user_change_request}
215
+ - Progress inventory at: {ARCHIVE_DIR}/progress-inventory.md
216
+ - Existing roadmap at: {ROADMAP}
217
+ - User preferences: {summary}
218
+ ")
219
+ ```
220
+
221
+ ### 1.2 Subagent B: Online Research for Changes
222
+
223
+ ```typescript
224
+ task(category="unspecified-high", run_in_background=true, prompt="
225
+ 1. TASK: Research online to validate and inform the user's requested roadmap changes for {skill}.
226
+ 2. EXPECTED OUTCOME: A research document with web-sourced findings about the topics the user wants to add/modify.
227
+
228
+ 3. REQUIRED TOOLS: google_search, websearch_web_search_exa, context7_resolve-library-id, context7_query_docs, read, write
229
+
230
+ 4. MUST DO:
231
+ - Analyze the user's change request: '{user_change_request}'
232
+ - Use google_search / websearch_web_search_exa to research:
233
+ * The specific topics/areas the user wants to add or modify
234
+ * Current best practices and latest developments
235
+ * Common curriculum structures that include these topics
236
+ * Importance and relevance of these topics for real-world proficiency
237
+ - If the topics involve programming languages/frameworks, use context7 for official docs
238
+ - For each researched area, document:
239
+ * What it is and why it matters
240
+ * Prerequisites
241
+ * How it connects to other topics in the skill
242
+ * Recommended depth of coverage
243
+ * Learning resources
244
+ - Assess whether the user's requested changes are:
245
+ * Essential (should definitely be added)
246
+ * Beneficial (good addition but not critical)
247
+ * Out of scope (not relevant to the skill)
248
+ * Too advanced/premature (needs prerequisites first)
249
+ - Write findings to: {ARCHIVE_DIR}/research-online.md
250
+
251
+ 5. MUST NOT DO:
252
+ - Do NOT skip research even if you 'know' the topic — web search validates currency
253
+ - Do NOT modify any files — this is research only
254
+
255
+ 6. CONTEXT:
256
+ - Skill: {skill}
257
+ - User change request: {user_change_request}
258
+ - User preferences: {summary}
259
+ ")
260
+ ```
261
+
262
+ ### 1.3 Collect Both Results
263
+
264
+ Wait for both to complete. Collect via `background_output()`.
265
+
266
+ ## Phase 2: ROADMAP UPDATE — Synthesize New Version
267
+
268
+ ### 2.1 Read Research and Old Roadmap
269
+
270
+ Read the research files and the archived old roadmap.
271
+
272
+ ### 2.2 Spawn Roadmap Update Subagent (Progress-Preserving)
273
+
274
+ ```typescript
275
+ task(category="unspecified-high", run_in_background=false, timeout=300000, prompt="
276
+ 1. TASK: Update the {skill} roadmap based on change analysis and online research. **CRITICAL: Preserve ALL completed and in-progress topic data — these represent learning the user has already done and must never be erased.**
277
+ 2. EXPECTED OUTCOME: An updated roadmap.md that incorporates the user's requested changes while keeping every byte of the user's progress intact.
278
+
279
+ 3. REQUIRED TOOLS: google_search, websearch_web_search_exa, read, write, grep
280
+
281
+ 4. MUST DO — in this order:
282
+
283
+ STEP 1 — Read ALL context:
284
+ - Read the PROGRESS INVENTORY: {ARCHIVE_DIR}/progress-inventory.md
285
+ * This tells you EXACTLY what the user has done: every completed topic, every in-progress assignment
286
+ * Every topic in this inventory has a topic-progress.md, assignments/, and runs/ in topics/
287
+ - Read the CHANGE ANALYSIS: {ARCHIVE_DIR}/research-changes.md
288
+ - Read the ONLINE RESEARCH: {ARCHIVE_DIR}/research-online.md
289
+ - Read the OLD ROADMAP: {ARCHIVE_DIR}/old-roadmap-archived.md
290
+
291
+ STEP 2 — Map old topics → new structure:
292
+ For EACH topic from the progress inventory and old roadmap, decide:
293
+ - ✅ **Completed topics**: MUST appear in the new roadmap EXACTLY as they were — same name, same position (or moved only as a group with other completed topics), same ✅ marker
294
+ - 🔵 **In-progress topics**: MUST appear in the new roadmap with the same name and 🔵 marker. If the user wants to rename it, create an alias mapping. The topic-progress.md must remain valid.
295
+ - 🟢 **Not-started topics**: Can be restructured, merged, split, reordered, or replaced as needed
296
+
297
+ Create a **topic mapping table** showing how each old topic maps to the new structure:
298
+
299
+ ```markdown
300
+ | Old Topic | Status | Action | New Topic | topic-progress.md |
301
+ |-----------|--------|--------|-----------|-------------------|
302
+ | Variables | ✅ | Preserve | Variables | topics/variables/topic-progress.md |
303
+ | Functions | 🔵 | Preserve | Functions | topics/functions/topic-progress.md |
304
+ | Pointers | 🟢 | Merge into | Memory Management | (new — no existing file) |
305
+ | Structs | 🟢 | Split into | Structs + Traits | (new — no existing files) |
306
+ ```
307
+
308
+ STEP 3 — Synthesize updated roadmap:
309
+ - Completed topics appear first in their section (user has earned their place)
310
+ - In-progress topics appear next, with their 🔵 marker and link to topic-progress.md
311
+ - Not-started and new topics follow, reorganized as needed
312
+ - Maintain the same structure format (Foundation → Core → Advanced → Real-World)
313
+ - For each preserved topic (✅ or 🔵), include a note like:
314
+ > *Progress: ✅ Completed — see topics/{topic}/ for details*
315
+ - Write the updated roadmap to: {ROADMAP}
316
+ - Format must be IDENTICAL to the original roadmap format (same section structure, marker format)
317
+
318
+ 5. MUST NOT DO:
319
+ - Do NOT change progress markers for ✅ or 🔵 topics
320
+ - Do NOT delete or modify any files inside topics/ directory — topic-progress.md, assignments/, runs/ are all sacred
321
+ - Do NOT remove completed topics — they represent accomplished learning
322
+ - Do NOT treat completed and not-started topics the same — completed are immutable, not-started are flexible
323
+ - Do NOT rename topic folders without updating the mapping — the topic-progress.md path must still work
324
+ - Do NOT change SkillPreferences.md or progress-index.md (those are updated separately)
325
+
326
+ 6. CONTEXT:
327
+ - Skill: {skill}
328
+ - Progress inventory (source of truth for what user has done): {ARCHIVE_DIR}/progress-inventory.md
329
+ - User change request: {user_change_request}
330
+ - User preferences: {summary}
331
+ - Topic directories (DO NOT TOUCH): {TOPICS_DIR}/
332
+ ")
333
+ ```
334
+
335
+ ### 2.3 Preserve Topic Directories & Update Supporting Files
336
+
337
+ **Critical: The topics/ directory and everything inside it must NEVER be deleted.**
338
+
339
+ If the edit renames or restructures topics:
340
+
341
+ 1. **If a topic is renamed**: Move the directory (not copy — move to preserve all content):
342
+ ```bash
343
+ mv "$TOPICS_DIR/old-topic-name" "$TOPICS_DIR/new-topic-name"
344
+ ```
345
+ And update its `topic-progress.md` header to reflect the new name.
346
+
347
+ 2. **If a topic is split into multiple topics**: Copy the `topic-progress.md` to each split topic as a starting point (with 🟢 Not Started status), but keep the original intact:
348
+ ```bash
349
+ cp "$TOPICS_DIR/original-topic/topic-progress.md" "$TOPICS_DIR/split-topic-1/topic-progress.md"
350
+ cp "$TOPICS_DIR/original-topic/topic-progress.md" "$TOPICS_DIR/split-topic-2/topic-progress.md"
351
+ ```
352
+ Update each copy's header to reflect the new topic name and reset status to 🟢.
353
+
354
+ 3. **If topics are merged**: Keep all original topic directories. Create a new parent topic directory that references them:
355
+ ```bash
356
+ mkdir -p "$TOPICS_DIR/new-merged-topic"
357
+ # Create topic-progress.md that references the sub-topics
358
+ ```
359
+ The originals remain accessible and their progress is preserved.
360
+
361
+ 4. **Completed/In-progress topics MUST keep their exact directory name** unless the user explicitly requests renaming.
362
+
363
+ Then update supporting files:
364
+
365
+ Update `SkillPreferences.md` to reflect any new focus areas.
366
+
367
+ Update `progress-index.md`:
368
+ - Preserve ALL existing progress data (completed/in-progress markers unchanged)
369
+ - Add any new topics with 🟢 Not Started status
370
+ - Update renamed topic references if directories were moved
371
+ - Each topic entry should link to its topic-progress.md
372
+
373
+ **Do NOT use a subagent for these — they are simple edits performed by the orchestrator directly.**
374
+
375
+ ## Phase 3: UPDATE USER PREFERENCES
376
+
377
+ ### 3.1 Update UserPreferences.md
378
+
379
+ If this interaction reveals new, clear signals about the user's preferences, append them to `UserPreferences.md`:
380
+
381
+ - User wants deeper coverage of specific areas → adjust skill focus preferences
382
+ - User expresses frustration with certain topics → note potential learning style insight
383
+ - User asks for more/less theory vs practice → update learning style preferences
384
+
385
+ **Only add high-confidence signals. Don't speculate.**
386
+
387
+ ### 3.2 Write Agent Log
388
+
389
+ ```bash
390
+ mkdir -p "$ARCHIVE_DIR"
391
+ ```
392
+
393
+ Write to `$ARCHIVE_DIR/agent-log.md`:
394
+ - What changes were requested
395
+ - What research was conducted
396
+ - What changes were made to the roadmap
397
+ - Any topics added/removed/modified
398
+ - Current state of progress-index.md
399
+
400
+ ## Phase 4: PRESENT TO USER
401
+
402
+ ```markdown
403
+ ┌──────────────────────────────────────────────────────────────────┐
404
+ │ ✅ Roadmap Updated: {skill} │
405
+ ├──────────────────────────────────────────────────────────────────┤
406
+ │ │
407
+ │ Changes Made: │
408
+ │ • Added: {new topics added} │
409
+ │ • Modified: {topics restructured or deepened} │
410
+ │ • Removed: {any topics removed, if any} │
411
+ │ • Preserved: All progress data intact │
412
+ │ │
413
+ │ 🔗 Previous version archived at: │
414
+ │ .omnilearn/{skill}/runs/{timestamp}-roadmap-edit/ │
415
+ │ │
416
+ │ 📍 Updated roadmap: .omnilearn/{skill}/roadmap.md │
417
+ │ │
418
+ │ ┌─ Change Preview ──────────────────────────────────────────┐ │
419
+ │ │ {brief summary of the most significant changes} │ │
420
+ │ └────────────────────────────────────────────────────────────┘ │
421
+ │ │
422
+ │ Your progress on completed/in-progress topics has been preserved.│
423
+ │ │
424
+ │ Next: Use /omnilearn-start {skill} to continue learning. │
425
+ │ Want further changes? Use /omnilearn-roadmap-edit again. │
426
+ └──────────────────────────────────────────────────────────────────┘
427
+ ```
428
+
429
+ ## Phase 5: GIT COMMIT
430
+
431
+ ```bash
432
+ if git rev-parse --git-dir > /dev/null 2>&1; then
433
+ git add "$OMNILEARN_DIR/"
434
+ git commit -m "omnilearn: update roadmap for {skill}
435
+
436
+ - {change summary}
437
+ - Archived previous version to runs/
438
+ - Preserved all progress data unchanged
439
+ "
440
+ fi
441
+ ```
442
+
443
+ If no git repo: same flow as `/omnilearn-roadmap` — ask if the user wants to initialize one.
444
+
445
+ ## Quality Gates
446
+
447
+ | Check | Phase | Action if Failed |
448
+ |-------|-------|-----------------|
449
+ | Old roadmap archived before editing | 0 | Block — archive first |
450
+ | Progress inventory built (topic-progress.md read for ALL topics) | 0 | Block — must know what user has done |
451
+ | Change analysis subagent reads progress inventory | 1 | Re-spawn with progress inventory path |
452
+ | Online research subagent completed | 1 | Block — must have validation |
453
+ | All ✅ Completed topics preserved in new roadmap unchanged | 2 | Restore from archive, re-synthesize |
454
+ | All 🔵 In Progress topics preserved with same status | 2 | Restore markers from archive |
455
+ | All 🟢 Not Started topics accounted for (restructured or moved) | 2 | Check each was mapped |
456
+ | Each existing topic-progress.md still accessible | 2 | Verify file still exists at its path |
457
+ | No topic-progress.md files deleted | 2 | Revert: git checkout if needed |
458
+ | No assignment files deleted | 2 | Revert: git checkout if needed |
459
+ | progress-index.md updated with new structure + old progress | 2 | Fix manually — preserve all ✅ and 🔵 |
460
+ | Agent log written with topic mapping table | 3 | Write it |
461
+ | Verify old roadmap archived to runs/ | 0 | Archive it — never lose history |
462
+
463
+ ## Error Recovery
464
+
465
+ | Situation | Action |
466
+ |-----------|--------|
467
+ | Skill/roadmap doesn't exist | Tell user to use /omnilearn-roadmap first |
468
+ | User wants to revert changes | Restore old-roadmap-archived.md from runs/, revert any topic directory moves |
469
+ | User says "you deleted my progress!" | STOP. Restore from archive. The topics/ directory must be fully intact with git checkout. |
470
+ | Change analysis conflicts with online research | Present both perspectives, ask user which to follow |
471
+ | Progress markers accidentally changed | Restore from archived old roadmap |
472
+ | topic-progress.md accidentally modified | Revert: `git checkout .omnilearn/{skill}/topics/{topic}/topic-progress.md` |
473
+ | topics/ directory accidentally modified | Revert: `git checkout .omnilearn/{skill}/topics/` |
474
+ | Topic renamed but topic-progress.md path broken | Move directory back, use a symlink or alias instead |
475
+ | User's requested change is too vague | Ask clarifying questions before proceeding |
476
+
477
+ ## What You MUST Do
478
+
479
+ - ✅ **Build a complete progress inventory BEFORE any changes** — read every topic-progress.md
480
+ - ✅ **Archive old roadmap before any changes** — never overwrite without backup
481
+ - ✅ **Preserve ALL topic-progress.md, assignments/, and runs/ files** — they are the user's learning record
482
+ - ✅ **Treat ✅ Completed topics as immutable** — never delete, never reset, never reorder away from their section
483
+ - ✅ **Treat 🔵 In Progress topics as sacred** — the user is mid-learning, don't disrupt them
484
+ - ✅ **Only restructure 🟢 Not Started topics** — future work is flexible, past work is not
485
+ - ✅ **Map old topic names → new topic names** — create a mapping table so nothing is lost
486
+ - ✅ **Research changes online** — validate that additions are current and relevant
487
+ - ✅ **Update progress-index.md with new structure** — add new topics, preserve old progress, update renamed references
488
+ - ✅ **Update SkillPreferences.md** to reflect new focus areas
489
+ - ✅ **Git commit after edit**
490
+
491
+ ## What You MUST NOT Do
492
+
493
+ - ❌ Do NOT overwrite roadmap without archiving old version
494
+ - ❌ Do NOT delete or modify files in topics/ directory — topic-progress.md, assignments/, runs/ are all sacred
495
+ - ❌ Do NOT delete or reset completed topic progress
496
+ - ❌ Do NOT modify in-progress topic status
497
+ - ❌ Do NOT treat completed and not-started topics the same — they are fundamentally different
498
+ - ❌ Do NOT skip building the progress inventory — this is what prevents data loss
499
+ - ❌ Do NOT skip online research — even for topics you 'know'
500
+ - ❌ Do NOT assume you know what the user has done — read topic-progress.md files to verify
501
+ - ❌ Do NOT proceed if change request is too vague — ask for clarification
502
+ - ❌ Do NOT push to remote without explicit user approval