diff options
| author | Agando <roduccomm@gmail.com> | 2026-10-18 15:00:25 +0200 |
|---|---|---|
| committer | Agando <roduccomm@gmail.com> | 2026-10-18 15:00:25 +0200 |
| commit | bc199e350ea4ab000df03c9e732bf3478c9c43b6 (patch) | |
| tree | dd75d59ec1acfeac2eae40de8f860ffcb34220f5 /course/chapters | |
| parent | 3966a870b13ab0896e6cfa7fb3bca2003846b7e5 (diff) | |
course: fix P0 content errors + completion/mobile/keyboard UX (review A)
Diffstat (limited to 'course/chapters')
| -rw-r--r-- | course/chapters/02-architecture.json | 32 | ||||
| -rw-r--r-- | course/chapters/03-commands.json | 28 | ||||
| -rw-r--r-- | course/chapters/05-modules.json | 12 | ||||
| -rw-r--r-- | course/chapters/06-files-cloud.json | 4 | ||||
| -rw-r--r-- | course/chapters/07-automation.json | 9 | ||||
| -rw-r--r-- | course/chapters/08-build.json | 8 |
6 files changed, 52 insertions, 41 deletions
diff --git a/course/chapters/02-architecture.json b/course/chapters/02-architecture.json index 7dee513..8e8826b 100644 --- a/course/chapters/02-architecture.json +++ b/course/chapters/02-architecture.json @@ -7,12 +7,12 @@ { "id": "2.1", "title": "Terminal, modules, commands", - "objective": "See how the terminal, module manager and command registry fit together.", + "objective": "See what is loaded, why a command can be listed but broken, and what the system is doing.", "minutes": 9, "commands": [ "modules", - "status", - "help" + "doctor", + "status" ], "blocks": [ { @@ -37,23 +37,24 @@ }, { "type": "cmd", - "text": "check" + "text": "doctor" }, { "type": "tip", - "text": "A command that exists in `help` but fails at runtime usually has an unmet module requirement that `check` reports." + "text": "A command that exists in `help` but fails at runtime usually has an unmet module requirement that `doctor` reports." } ], "exercise": { - "instruction": "List the loaded modules.", + "instruction": "Run `doctor` and see how it ranks module problems.", "accept": [ + "doctor", "modules", - "status" + "module-info *" ], "check": { "type": "command" }, - "hint": "Type: modules" + "hint": "Type: doctor" }, "quiz": { "q": "Who executes a command after you press Enter?", @@ -76,9 +77,11 @@ "objective": "Understand where files live and why a module edit sometimes needs a rebuild and sometimes does not.", "minutes": 10, "commands": [ - "status", - "help", - "load-local" + "pwd", + "cd", + "tree", + "health-check", + "mem" ], "blocks": [ { @@ -103,14 +106,15 @@ } ], "exercise": { - "instruction": "Run `status` and find the VFS size line.", + "instruction": "Run `health-check` and find the VFS size line.", "accept": [ - "status" + "health-check", + "mem" ], "check": { "type": "command" }, - "hint": "Type: status" + "hint": "Type: health-check" }, "quiz": { "q": "Which tier needs `rebuild-bundles.py` after an edit?", diff --git a/course/chapters/03-commands.json b/course/chapters/03-commands.json index 10807cb..40fa2ad 100644 --- a/course/chapters/03-commands.json +++ b/course/chapters/03-commands.json @@ -7,16 +7,17 @@ { "id": "3.1", "title": "Find any command fast", - "objective": "Use help, commands and check to discover what exists before guessing.", + "objective": "Use help, doctor and status to discover what exists before guessing.", "minutes": 7, "commands": [ "help", + "doctor", "status" ], "blocks": [ { "type": "text", - "text": "`help` groups all 344 commands by the module that owns them." + "text": "`help` groups every registered command by the module that owns them." }, { "type": "cmd", @@ -28,18 +29,20 @@ }, { "type": "tip", - "text": "`check` shows module requirements — the fastest way to explain a command that is listed but not working." + "text": "`doctor` shows module requirements — the fastest way to explain a command that is listed but not working." } ], "exercise": { - "instruction": "Open the help for `webdav-push`.", + "instruction": "Run `doctor` and read its severity ranking.", "accept": [ - "help webdav-push" + "doctor", + "help", + "status" ], "check": { "type": "command" }, - "hint": "Type: help webdav-push" + "hint": "Type: doctor" }, "quiz": { "q": "Which command shows usage for one command?", @@ -74,11 +77,11 @@ }, { "type": "cmd", - "text": "ls | grep txt" + "text": "grep hello hello.txt" }, { "type": "warn", - "text": "`sed s/x/y/` substitutes the first match per LINE, not per file. `sed -i` is flagged destructive and needs confirmation." + "text": "`sed s/x/y/` substitutes the first match per LINE, not per file. `sed -i` overwrites the file immediately — checkpoint first (`checkpoint before-sed`). Pipes are partial in this build: `ls | grep x` may print the unfiltered listing; use `grep pattern file`." }, { "type": "text", @@ -90,15 +93,16 @@ } ], "exercise": { - "instruction": "Search the current listing for `txt`.", + "instruction": "Search a file for a word (create `hello.txt` with `edit` if needed).", "accept": [ - "ls | grep txt", - "grep txt" + "grep hello hello.txt", + "grep * hello.txt", + "grep hello *" ], "check": { "type": "command" }, - "hint": "Type: ls | grep txt" + "hint": "Type: grep hello hello.txt" }, "quiz": { "q": "`sed s/a/b/` replaces…", diff --git a/course/chapters/05-modules.json b/course/chapters/05-modules.json index 4b68f42..7829553 100644 --- a/course/chapters/05-modules.json +++ b/course/chapters/05-modules.json @@ -17,7 +17,7 @@ "blocks": [ { "type": "text", - "text": "`wpm` is the package manager for terminal modules: list the index, install a module from `packages.json` or a URL." + "text": "`wpm` is the package manager for terminal modules: list the index, install a package by name, inspect it with `wpm info`." }, { "type": "cmd", @@ -29,22 +29,22 @@ }, { "type": "text", - "text": "Every ext module in the default build auto-loads. There is no separate “needs loadmod” tier." + "text": "Most ext modules auto-load via `module-loader.js`. Manual modules such as `test-suite` need `load-local`." }, { "type": "cmd", - "text": "load-local modules/ext/calc.js" + "text": "load-local modules/test/test-suite.js" } ], "exercise": { - "instruction": "List available packages.", + "instruction": "Inspect the calc package metadata.", "accept": [ - "wpm list" + "wpm info calc" ], "check": { "type": "command" }, - "hint": "Type: wpm list" + "hint": "Type: wpm info calc" }, "quiz": { "q": "What does wpm install?", diff --git a/course/chapters/06-files-cloud.json b/course/chapters/06-files-cloud.json index 697a5f5..e997b9c 100644 --- a/course/chapters/06-files-cloud.json +++ b/course/chapters/06-files-cloud.json @@ -18,7 +18,7 @@ "blocks": [ { "type": "text", - "text": "`edit` opens the VFS editor. `diff` compares two files. `find` searches names; `filemgr` opens the visual browser." + "text": "`edit` opens the VFS editor. `diff` compares two files. `find` searches names; `files` opens the visual browser." }, { "type": "cmd", @@ -55,7 +55,7 @@ "quiz": { "q": "Which command opens the visual file manager?", "options": [ - "filemgr", + "files", "ls", "cat" ], diff --git a/course/chapters/07-automation.json b/course/chapters/07-automation.json index 3345fc2..b7eadb4 100644 --- a/course/chapters/07-automation.json +++ b/course/chapters/07-automation.json @@ -102,19 +102,20 @@ }, { "type": "warn", - "text": "`rollback` replaces current VFS state — checkpoint before experiments." + "text": "`rollback` replaces current VFS state — checkpoint before experiments. Only the 3 most recent checkpoints are kept; `checkpoint-list` shows what survived." } ], "exercise": { - "instruction": "Create a checkpoint.", + "instruction": "Create a checkpoint, then confirm it is listed with `checkpoint-list`.", "accept": [ "checkpoint *", - "checkpoint" + "checkpoint", + "checkpoint-list" ], "check": { "type": "command" }, - "hint": "Type: checkpoint my-test" + "hint": "Type: checkpoint my-test, then checkpoint-list" }, "quiz": { "q": "What does checkpoint do?", diff --git a/course/chapters/08-build.json b/course/chapters/08-build.json index 48a60bd..c09d89d 100644 --- a/course/chapters/08-build.json +++ b/course/chapters/08-build.json @@ -33,14 +33,16 @@ } ], "exercise": { - "instruction": "Run the built-in test suite.", + "instruction": "Load the test suite, then run it: `load-local modules/test/test-suite.js` then `test auto`.", "accept": [ - "status" + "test auto", + "test *", + "load-local *test-suite*" ], "check": { "type": "command" }, - "hint": "Type: test auto" + "hint": "Type: load-local modules/test/test-suite.js, then test auto" }, "quiz": { "q": "Which two places carry the version?", |