aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-10-18 14:05:58 +0200
committerAgando <roduccomm@gmail.com>2026-10-18 14:05:58 +0200
commit360183b4ef928064d0b9b916daf294e4cc89cf1d (patch)
tree2433d4c0cecfd715357068fc57fe1d660df93664
parent0d0d936e7b5cd41a31773069540b1ddb8836ef44 (diff)
newOS4 course: first daily lesson generated, atlas 345 commands, modules-index refreshed
-rw-r--r--course/atlas.json73
-rw-r--r--course/changelog.jsonl2
-rw-r--r--course/faq.json2
-rw-r--r--course/feed.json50
-rw-r--r--modules-index.json12
-rw-r--r--scripts/course-daily-update.py19
6 files changed, 120 insertions, 38 deletions
diff --git a/course/atlas.json b/course/atlas.json
index e1c6a4e..6d9aa53 100644
--- a/course/atlas.json
+++ b/course/atlas.json
@@ -1,6 +1,6 @@
{
- "version": "2026-10-18T12:01:30Z",
- "source_hash": "3295c562f4c4dd30",
+ "version": "2026-10-18T12:05:43Z",
+ "source_hash": "fbab8c7227cc4a6c",
"commands": {
"a2a-ack": {
"module": "module-agent-registry",
@@ -151,7 +151,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "ai-compress — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "ai-compress"
},
@@ -241,7 +241,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "archive-list — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "archive-list"
},
@@ -250,7 +250,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "archive-read — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "archive-read"
},
@@ -412,7 +412,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "commit-approve — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "commit-approve"
},
@@ -421,7 +421,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "commit-deny — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "commit-deny"
},
@@ -430,7 +430,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "commit-status — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "commit-status"
},
@@ -578,6 +578,15 @@
"builtin": false,
"example": "contract-register"
},
+ "course": {
+ "module": "course",
+ "file": "modules/ext/course.js",
+ "tier": "ext-auto",
+ "category": "learning",
+ "desc": "course [start|list|next|open <id>|check|hint|progress|reset|ask <q>|project [id]|cmds [q]] — Interactive newOS4 course",
+ "builtin": false,
+ "example": "course"
+ },
"cp": {
"module": "module-fs",
"file": "modules/core/module-fs.js",
@@ -673,7 +682,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "debug-ai-last — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "debug-ai-last"
},
@@ -682,7 +691,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "debug-ai-log — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "debug-ai-log"
},
@@ -691,7 +700,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "debug-ai-send — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "debug-ai-send"
},
@@ -916,7 +925,7 @@
"file": "modules/core/module-system.js",
"tier": "core-bundle",
"category": "system",
- "desc": "factory-reset-old — command from module-system",
+ "desc": "Extracted from newOS4 index.html — SystemModule",
"builtin": false,
"example": "factory-reset-old"
},
@@ -1024,7 +1033,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "guardrail — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "guardrail"
},
@@ -1033,7 +1042,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "guardrail-add — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "guardrail-add"
},
@@ -1042,7 +1051,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "guardrail-remove — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "guardrail-remove"
},
@@ -1231,7 +1240,7 @@
"file": "modules/core/module-leases.js",
"tier": "core-bundle",
"category": "agents",
- "desc": "lease-renew — command from module-leases",
+ "desc": "module-leases.js — Lease system for agent task delegation",
"builtin": false,
"example": "lease-renew"
},
@@ -1654,7 +1663,7 @@
"file": "modules/core/module-neural-vfs.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "nvfs-index-graph — command from module-neural-vfs",
+ "desc": "── Core Index Builder ──",
"builtin": false,
"example": "nvfs-index-graph"
},
@@ -2284,7 +2293,7 @@
"file": "modules/core/module-fs.js",
"tier": "core-bundle",
"category": "filesystem",
- "desc": "session-export — command from module-fs",
+ "desc": "Use trash for recursive dir removal too",
"builtin": false,
"example": "session-export"
},
@@ -2293,7 +2302,7 @@
"file": "modules/core/module-fs.js",
"tier": "core-bundle",
"category": "filesystem",
- "desc": "session-import — command from module-fs",
+ "desc": "Use trash for recursive dir removal too",
"builtin": false,
"example": "session-import"
},
@@ -2365,7 +2374,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "shadow — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "shadow"
},
@@ -2374,7 +2383,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "shadow-commit — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "shadow-commit"
},
@@ -2383,7 +2392,7 @@
"file": "modules/core/module-aiassist.js",
"tier": "core-bundle",
"category": "ai",
- "desc": "shadow-rollback — command from module-aiassist",
+ "desc": "Extracted from newOS4 index.html — WebX11AIAssistantModule (Full Agent Loop)",
"builtin": false,
"example": "shadow-rollback"
},
@@ -2527,7 +2536,7 @@
"file": "modules/core/terminal.js",
"tier": "core-bundle",
"category": "system",
- "desc": "Extracted from newOS4 index.html — SystemModule",
+ "desc": "smart-prompt — command from terminal",
"builtin": true,
"example": "smart-prompt"
},
@@ -2815,7 +2824,7 @@
"file": "modules/core/module-fs.js",
"tier": "core-bundle",
"category": "filesystem",
- "desc": "vfs-size — command from module-fs",
+ "desc": "Use trash for recursive dir removal too",
"builtin": false,
"example": "vfs-size"
},
@@ -3150,6 +3159,14 @@
],
"lines": 96
},
+ "course": {
+ "file": "modules/ext/course.js",
+ "tier": "ext-auto",
+ "commands": [
+ "course"
+ ],
+ "lines": 324
+ },
"cron": {
"file": "modules/ext/cron.js",
"tier": "ext-auto",
@@ -3755,13 +3772,13 @@
}
},
"coverage": {
- "commands": 344,
- "described": 344,
- "modules": 46,
+ "commands": 345,
+ "described": 345,
+ "modules": 47,
"tiers": {
"core-bundle": 257,
"critical-ext-bundle": 28,
- "ext-auto": 59,
+ "ext-auto": 60,
"ext-manual": 0
}
}
diff --git a/course/changelog.jsonl b/course/changelog.jsonl
index e69de29..bfebf95 100644
--- a/course/changelog.jsonl
+++ b/course/changelog.jsonl
@@ -0,0 +1,2 @@
+{"date": "2026-10-18", "added": ["daily-2026-10-18"], "faq": 0, "rejected": [], "atlas": "345 commands"}
+{"date": "2026-10-18", "added": [], "faq": 0, "rejected": [], "atlas": "345 commands"}
diff --git a/course/faq.json b/course/faq.json
index fc69ce2..346fb18 100644
--- a/course/faq.json
+++ b/course/faq.json
@@ -1,3 +1,3 @@
{
- "items": []
+ "items": []
} \ No newline at end of file
diff --git a/course/feed.json b/course/feed.json
index 81aac99..7a74ac7 100644
--- a/course/feed.json
+++ b/course/feed.json
@@ -1,4 +1,50 @@
{
- "version": "2026-10-18",
- "items": []
+ "version": "2026-10-18",
+ "items": [
+ {
+ "title": "Designing humane terminal commands",
+ "minutes": 4,
+ "blocks": [
+ {
+ "type": "text",
+ "text": "CLI design guides such as Better CLI and the Command Line Interface Guidelines exist to help developers, product managers, technical writers, UX designers, and maintainers build better command-line interfaces. Inclusive CLI practices are also part of improving command-line user experience."
+ },
+ {
+ "type": "cmd",
+ "text": "help"
+ },
+ {
+ "type": "tip",
+ "text": "The Command Line Interface Guidelines is an open-source guide that updates traditional UNIX principles for modern command-line programs."
+ },
+ {
+ "type": "text",
+ "text": "For CLI UX, colors can help users read commands and outputs faster. Recommended font colors include magenta, cyan, blue, green, and gray; background colors can also help."
+ },
+ {
+ "type": "warn",
+ "text": "Do not rely on color alone. The inclusive CLI best-practices article focuses on improving CLI user experience, and this course uses the help command as a simple example of terminal command design."
+ }
+ ],
+ "exercise": {
+ "instruction": "Run the help command to inspect the terminal command interface.",
+ "accept": [
+ "help"
+ ],
+ "check": {
+ "type": "manual"
+ },
+ "hint": "Type help exactly as shown in the cmd block."
+ },
+ "sources": [
+ "https://bettercli.org/",
+ "https://clig.dev/?trk=public_post-text",
+ "https://seirdy.one/posts/2022/06/10/cli-best-practices/",
+ "https://opensource.com/article/22/7/awesome-ux-cli-application"
+ ],
+ "id": "daily-2026-10-18",
+ "date": "2026-10-18",
+ "generated": true
+ }
+ ]
} \ No newline at end of file
diff --git a/modules-index.json b/modules-index.json
index 6d562f2..395a788 100644
--- a/modules-index.json
+++ b/modules-index.json
@@ -1087,6 +1087,18 @@
"three"
],
"tier": "ext-auto"
+ },
+ "course": {
+ "name": "course",
+ "file": "modules/ext/course.js",
+ "type": "ext",
+ "class": "",
+ "auto_load": true,
+ "description": "",
+ "commands": [
+ "course"
+ ],
+ "tier": "ext-auto"
}
},
"total": 45
diff --git a/scripts/course-daily-update.py b/scripts/course-daily-update.py
index 4f509d6..4845402 100644
--- a/scripts/course-daily-update.py
+++ b/scripts/course-daily-update.py
@@ -45,13 +45,18 @@ def parse_json(txt):
except Exception: return None
def llm(system, user, n=900):
- try:
- r = requests.post(OLLAMA, json={'model': MODEL, 'stream': False, 'temperature': 0.4, 'max_tokens': n,
- 'messages': [{'role': 'system', 'content': system}, {'role': 'user', 'content': user}]}, timeout=180)
- if not r.ok: return None
- return (r.json().get('choices') or [{}])[0].get('message', {}).get('content')
- except Exception:
- return None
+ for model in (MODEL, 'gemma4:31b-cloud'):
+ try:
+ r = requests.post(OLLAMA, json={'model': model, 'stream': False, 'temperature': 0.4, 'max_tokens': max(n, 1400),
+ 'think': False,
+ 'messages': [{'role': 'system', 'content': system}, {'role': 'user', 'content': user}]}, timeout=180)
+ if not r.ok: continue
+ msg = (r.json().get('choices') or [{}])[0].get('message', {})
+ content = (msg.get('content') or '').strip()
+ if content: return content
+ except Exception:
+ continue
+ return None
def research(q):
try: