aboutsummaryrefslogtreecommitdiff
path: root/skills
diff options
context:
space:
mode:
Diffstat (limited to 'skills')
-rw-r--r--skills/backup-and-restore.md27
-rw-r--r--skills/index.json149
-rw-r--r--skills/memory-and-profile.md30
-rw-r--r--skills/memory-map.md51
-rw-r--r--skills/mindmap-user-guide.md40
-rw-r--r--skills/mindmap-workflow.md39
-rw-r--r--skills/module-management.md32
-rw-r--r--skills/navigating-the-terminal.md27
-rw-r--r--skills/skills-system-guide.md35
-rw-r--r--skills/system-maintenance.md35
-rw-r--r--skills/web-search-and-fetch.md27
-rw-r--r--skills/webdav-sync.md40
12 files changed, 532 insertions, 0 deletions
diff --git a/skills/backup-and-restore.md b/skills/backup-and-restore.md
new file mode 100644
index 0000000..1744f47
--- /dev/null
+++ b/skills/backup-and-restore.md
@@ -0,0 +1,27 @@
+---
+name: backup-and-restore
+description: How to backup, restore, and export WebX11 data
+tags: [backup, restore, export, import, persistence]
+category: system
+---
+## Steps
+1. **Backup VFS:**
+ - vfs-export — downloads the entire virtual filesystem as a dated JSON file
+ - backup — creates a full backup including VFS, modules, config (saves to _backups/)
+
+2. **Export/Import personal data:**
+ - my-export — prints all my-set data as formatted JSON
+ - my-import <json> — bulk-import personal data from JSON string
+
+3. **Export/Import modules:**
+ - export-mods — exports module registry as JSON
+ - import-mods <json> — imports modules from JSON backup
+
+4. **Restore:**
+ - restore <json> — restores terminal state from a backup JSON
+ - Session logs are saved to /memory/ automatically on page unload
+
+5. **When to use:**
+ - Before factory-reset: call my-export, vfs-export, export-mods to save data
+ - When switching browsers or devices: export all, then import
+ - User says "backup my data" or "save my files" \ No newline at end of file
diff --git a/skills/index.json b/skills/index.json
new file mode 100644
index 0000000..ad002f5
--- /dev/null
+++ b/skills/index.json
@@ -0,0 +1,149 @@
+{
+ "navigating-the-terminal": {
+ "name": "navigating-the-terminal",
+ "description": "How to explore the WebX11 terminal, find commands, check status, and navigate the filesystem",
+ "tags": [
+ "terminal",
+ "navigation",
+ "help",
+ "filesystem"
+ ],
+ "category": "system",
+ "created": "2026-05-26T18:25:28.851Z",
+ "updated": "2026-05-26T18:25:28.851Z"
+ },
+ "memory-and-profile": {
+ "name": "memory-and-profile",
+ "description": "How to use the user profile system, session memory, and pattern tracking for persistent context",
+ "tags": [
+ "memory",
+ "profile",
+ "session",
+ "persistence"
+ ],
+ "category": "system",
+ "created": "2026-05-26T18:25:28.851Z",
+ "updated": "2026-05-26T18:25:28.851Z"
+ },
+ "web-search-and-fetch": {
+ "name": "web-search-and-fetch",
+ "description": "How to search the web and fetch URL content using the WebX11 proxy API",
+ "tags": [
+ "search",
+ "fetch",
+ "web",
+ "proxy",
+ "api"
+ ],
+ "category": "research",
+ "created": "2026-05-26T18:25:28.852Z",
+ "updated": "2026-05-26T18:25:28.852Z"
+ },
+ "module-management": {
+ "name": "module-management",
+ "description": "How to view, edit, test, reload modules and manage startup configuration",
+ "tags": [
+ "modules",
+ "editing",
+ "code",
+ "self-improvement"
+ ],
+ "category": "dev",
+ "created": "2026-05-26T18:25:28.853Z",
+ "updated": "2026-05-26T18:25:28.853Z"
+ },
+ "system-maintenance": {
+ "name": "system-maintenance",
+ "description": "How to reset, troubleshoot, and maintain the WebX11 terminal",
+ "tags": [
+ "system",
+ "maintenance",
+ "reset",
+ "troubleshoot",
+ "config"
+ ],
+ "category": "system",
+ "created": "2026-05-26T18:25:28.854Z",
+ "updated": "2026-05-26T18:25:28.854Z"
+ },
+ "backup-and-restore": {
+ "name": "backup-and-restore",
+ "description": "How to backup, restore, and export WebX11 data",
+ "tags": [
+ "backup",
+ "restore",
+ "export",
+ "import",
+ "persistence"
+ ],
+ "category": "system",
+ "created": "2026-05-26T18:25:28.855Z",
+ "updated": "2026-05-26T18:25:28.855Z"
+ },
+ "mindmap-workflow": {
+ "name": "mindmap-workflow",
+ "description": "How to create, view, edit, and manage brainstorming mindmaps",
+ "tags": [
+ "mindmap",
+ "brainstorming",
+ "planning",
+ "organization"
+ ],
+ "category": "productivity",
+ "created": "2026-05-26T18:25:28.856Z",
+ "updated": "2026-05-26T18:25:28.856Z"
+ },
+ "skills-system-guide": {
+ "name": "skills-system-guide",
+ "description": "How to use the skills system: load, create, patch, list, and audit skills for persistent procedural memory",
+ "tags": [
+ "skills",
+ "system",
+ "meta"
+ ],
+ "category": "system",
+ "created": "2026-05-26T18:25:28.857Z",
+ "updated": "2026-05-26T18:25:28.857Z"
+ },
+ "mindmap-user-guide": {
+ "name": "mindmap-user-guide",
+ "description": "How to create, view, and manage brainstorming mindmaps using the mindmap terminal module",
+ "tags": [
+ "mindmap",
+ "brainstorming",
+ "organization",
+ "planning"
+ ],
+ "category": "productivity",
+ "created": "2026-05-26T18:28:53.203Z",
+ "updated": "2026-05-26T18:28:53.203Z"
+ },
+ "webdav-sync": {
+ "name": "webdav-sync",
+ "description": "Sync, backup, and restore VFS via WebDAV in WebX11. CRITICAL: Only use verified commands.",
+ "tags": [
+ "webdav",
+ "sync",
+ "backup",
+ "cloud",
+ "vfs"
+ ],
+ "category": "system",
+ "created": "2026-05-26T18:32:07.434Z",
+ "updated": "2026-05-26T20:20:17.764Z"
+ },
+ "memory-map": {
+ "name": "memory-map",
+ "description": "Maintain and query the persistent memory map at /memory/map.json for Agando/DarkMoto Systems.",
+ "tags": [
+ "memory",
+ "persistence",
+ "context",
+ "map",
+ "agando"
+ ],
+ "category": "system",
+ "created": "2026-05-26T20:07:04.617Z",
+ "updated": "2026-05-26T20:07:04.617Z"
+ }
+} \ No newline at end of file
diff --git a/skills/memory-and-profile.md b/skills/memory-and-profile.md
new file mode 100644
index 0000000..6605893
--- /dev/null
+++ b/skills/memory-and-profile.md
@@ -0,0 +1,30 @@
+---
+name: memory-and-profile
+description: How to use the user profile system, session memory, and pattern tracking for persistent context
+tags: [memory, profile, session, persistence]
+category: system
+---
+## Steps
+1. **User Profile (persists across sessions):**
+ - user_get(key) — read any profile field (e.g. "preferredModel", "fontSize")
+ - user_set(key, value) — write to profile, auto-persists to localStorage
+ - user_list — show all stored profile keys
+ - user_forget(key) — delete a profile key
+ - Dot notation supported: user_set knownFacts.name "Alex"
+
+2. **Session Memory (VFS-based daily logs):**
+ - session_save(summary) — save a summary of what was accomplished
+ - session_load(date) — read a specific day's log (format: YYYY-MM-DD)
+ - session_recent(count) — show last N session summaries
+ - session_stats — aggregate totals across all sessions
+ - Recent sessions auto-load into context on first message
+
+3. **Conversation Patterns:**
+ - Pattern tracking runs automatically — frequent topics surface as hints
+ - my-set, my-get, my-list store additional personal data
+ - AI conversation context persists within a session (use ai-clear to reset)
+
+4. **When to use:**
+ - At start: call session_recent(3) to see what was worked on before
+ - After identifying user preferences: call user_set to store them
+ - After complex tasks: call session_save with a brief summary \ No newline at end of file
diff --git a/skills/memory-map.md b/skills/memory-map.md
new file mode 100644
index 0000000..b8c0f83
--- /dev/null
+++ b/skills/memory-map.md
@@ -0,0 +1,51 @@
+---
+name: memory-map
+description: Maintain and query the persistent memory map at /memory/map.json for Agando/DarkMoto Systems.
+category: system
+tags: memory, persistence, context, map, agando
+---
+
+## Purpose
+Keep a living index of projects, infrastructure, preferences, active issues, and session history so the AI never asks Agando to repeat himself.
+
+## File Location
+- `/memory/map.json` — primary memory map
+- `/memory/index.json` — session index (auto-generated)
+
+## Workflow
+
+### 1. Read Before Acting
+At the start of any session or when context is unclear:
+```bash
+read_file("memory/map.json")
+```
+
+### 2. Update After Significant Work
+After any task that changes status, fixes an issue, or adds knowledge:
+```bash
+# Read current map
+read_file("memory/map.json")
+
+# Modify relevant section(s)
+# Write back
+write_file("memory/map.json", <updated_json>)
+```
+
+### 3. Add Session Link
+Append to `recent_sessions` (keep last 10):
+```json
+{"date": "YYYY-MM-DD", "file": "memory/YYYY-MM-DD.json", "summary": "..."}
+```
+
+## Map Structure
+- `projects` — WebX11, clients, personal builds, stores
+- `infrastructure` — security stack, backup systems, constraints
+- `preferences` — communication style, UI needs (#00ff88, 48px touch targets)
+- `active_issues` — open tasks, blockers, manual steps required
+- `recent_sessions` — quick links to session logs
+
+## Rules
+- NEVER ask Agando for info already in the map.
+- If info is stale or wrong, update it immediately.
+- Use `session_save()` after complex tasks to populate index.json.
+- Keep `active_issues` accurate — remove resolved items. \ No newline at end of file
diff --git a/skills/mindmap-user-guide.md b/skills/mindmap-user-guide.md
new file mode 100644
index 0000000..7bee410
--- /dev/null
+++ b/skills/mindmap-user-guide.md
@@ -0,0 +1,40 @@
+---
+name: mindmap-user-guide
+description: How to create, view, and manage brainstorming mindmaps using the mindmap terminal module
+tags: [mindmap, brainstorming, organization, planning]
+category: productivity
+---
+## Steps
+
+1. **Create a new mindmap:**
+ - `mindmap new "<topic>" -t tag1,tag2` — creates a root node
+ - Tags are optional (e.g. planning, research, dev)
+ - Root gets auto-assigned a color
+
+2. **Add child nodes:**
+ - `mindmap add <parent-id> "<idea>" -t tag` — add a child
+ - Get the parent-id from `mindmap show`
+ - IDs are 4-char random strings (e.g. a3f8, x7k2)
+
+3. **View the mindmap:**
+ - `mindmap show` — full tree with Unicode box-drawing
+ - `mindmap show <id>` — subtree starting at that node
+
+4. **Edit nodes:**
+ - `mindmap rename <id> "<new text>"` — change text
+ - `mindmap color <id> <color>` — set color (red/green/yellow/blue/cyan/magenta/white)
+ - `mindmap tag <id> <tag>` — add a tag
+
+5. **Persistence:**
+ - `mindmap save <name>` — save to localStorage
+ - `mindmap load <name>` — restore
+ - `mindmap list` — show saved mindmaps
+ - `mindmap delete <name>` — remove saved
+
+6. **Export:**
+ - `mindmap export [id]` — Markdown bullet list output
+
+## When to use
+- User wants to brainstorm, organize ideas, plan features
+- User says "map out", "diagram", "brainstorm", "organize thoughts"
+- Visualizing project structure or task decomposition \ No newline at end of file
diff --git a/skills/mindmap-workflow.md b/skills/mindmap-workflow.md
new file mode 100644
index 0000000..f05c237
--- /dev/null
+++ b/skills/mindmap-workflow.md
@@ -0,0 +1,39 @@
+---
+name: mindmap-workflow
+description: How to create, view, edit, and manage brainstorming mindmaps
+tags: [mindmap, brainstorming, planning, organization]
+category: productivity
+---
+## Steps
+1. **Create a new mindmap:**
+ - mindmap new "<topic>" -t tag1,tag2 — creates a root node
+ - Tags are optional (e.g. planning, research, dev)
+ - Root gets auto-assigned a color from 7-color palette
+
+2. **Add child nodes:**
+ - mindmap add <parent-id> "<idea>" -t tag — add a child
+ - Get the parent-id from mindmap show
+ - IDs are 4-char random strings (e.g. a3f8, x7k2)
+
+3. **View:**
+ - mindmap show — full tree with Unicode box-drawing
+ - mindmap show <id> — subtree starting at that node
+
+4. **Edit nodes:**
+ - mindmap rename <id> "<new text>" — change text
+ - mindmap color <id> <color> — set color (red/green/yellow/blue/cyan/magenta/white)
+ - mindmap tag <id> <tag> — add a tag
+
+5. **Persistence:**
+ - mindmap save <name> — save to localStorage
+ - mindmap load <name> — restore
+ - mindmap list — show saved mindmaps
+ - mindmap delete <name> — remove saved
+
+6. **Export:**
+ - mindmap export [id] — Markdown bullet list output, auto-copies to clipboard
+
+7. **When to use:**
+ - Map out project structure, brainstorm features, organize ideas
+ - Break down complex tasks into subtrees
+ - User says "brainstorm", "diagram", "organize thoughts", "plan" \ No newline at end of file
diff --git a/skills/module-management.md b/skills/module-management.md
new file mode 100644
index 0000000..d57f957
--- /dev/null
+++ b/skills/module-management.md
@@ -0,0 +1,32 @@
+---
+name: module-management
+description: How to view, edit, test, reload modules and manage startup configuration
+tags: [modules, editing, code, self-improvement]
+category: dev
+---
+## Steps
+1. **View module source:**
+ - view_module(name) — fetches original source or reads from _mods/ if edited
+ - Supports all loaded modules: SystemModule, FileSystemModule, SearXNGModule, etc.
+
+2. **Edit a module:**
+ - edit_module(name) — copies source to _mods/<name>.js and opens code editor
+ - Editor shows the full source in a textarea
+ - Click "Save & Test" to save and auto-load the edited version
+
+3. **Test and reload:**
+ - test_module(name) — loads edited module from _mods/ for live testing
+ - reload_module(name) — discards edits and reloads from original URL
+ - list_modified_modules — shows all modules with pending edits
+
+4. **Check for updates:**
+ - check_updates — HEAD-requests all loaded module URLs to verify reachability
+
+5. **Manage startup:**
+ - startup-modules — opens the Startup Modules UI to select which modules load
+ - load-local <path> — load a module from VFS or URL without editing
+
+6. **When to use:**
+ - User reports a bug in a module → view_module, edit_module, test_module
+ - User asks "can you add X feature?" → same workflow
+ - Always save edits before testing. If test fails, the original module stays loaded. \ No newline at end of file
diff --git a/skills/navigating-the-terminal.md b/skills/navigating-the-terminal.md
new file mode 100644
index 0000000..8e822be
--- /dev/null
+++ b/skills/navigating-the-terminal.md
@@ -0,0 +1,27 @@
+---
+name: navigating-the-terminal
+description: How to explore the WebX11 terminal, find commands, check status, and navigate the filesystem
+tags: [terminal, navigation, help, filesystem]
+category: system
+---
+## Steps
+1. **Get an overview of available commands:**
+ - Call get_help() to get a full command list sorted by category
+ - Call get_status() to see filesystem state, loaded modules, Ollama status
+ - For a specific command, use help <command> or check the help map
+
+2. **Explore the filesystem:**
+ - Use list_files(path?) to browse directories (omit path for current dir)
+ - Use read_file(path) to view file contents
+ - Use get_current_dir to see your working directory
+ - Use run_command("ls") or run_command("tree") for visual output
+
+3. **Understand system state:**
+ - run_command("mem") — memory usage
+ - run_command("status") — network, files, modules, Ollama
+ - run_command("modules") — module manager GUI
+ - get_module_status() — loaded modules, URLs, local edits
+
+4. **When user asks a vague question:**
+ - First call get_status() and get_help() to understand the current state
+ - Then ask clarifying questions based on what you found \ No newline at end of file
diff --git a/skills/skills-system-guide.md b/skills/skills-system-guide.md
new file mode 100644
index 0000000..26d3dcf
--- /dev/null
+++ b/skills/skills-system-guide.md
@@ -0,0 +1,35 @@
+---
+name: skills-system-guide
+description: How to use the skills system: load, create, patch, list, and audit skills for persistent procedural memory
+tags: [skills, system, meta]
+category: system
+---
+## Steps
+1. **Always load skills at task start:**
+ - At the START of every task, call load_skills(query) to check for stored procedures
+ - Example: load_skills("search the web") returns matching skill content
+ - Example: load_skills("edit module") returns the module editing workflow
+
+2. **Create skills after complex tasks:**
+ - After any task with 3+ tool calls, call create_skill to save the approach
+ - Required fields: name (kebab-case), description, content (markdown with YAML frontmatter)
+ - Optional: tags (comma-separated), category (e.g. research, system, dev)
+ - Skills persist in /skills/ as .md files with /skills/index.json for fast lookup
+
+3. **Patch skills when they're outdated:**
+ - If a stored procedure has wrong steps, call patch_skill(name, newContent)
+ - This replaces the entire skill content and updates the index
+ - Do NOT create a duplicate — always patch the existing skill
+
+4. **Auto-created error skills:**
+ - If the same tool fails 3+ times, a workaround skill is created automatically
+ - Named tool-<name>-workaround (e.g. tool-write_file-workaround)
+
+5. **Audit and maintenance:**
+ - list_skills(category?) — browse available skills, optionally filter
+ - Skills are audited every 20 messages for staleness (empty content, >30 days old)
+
+6. **YAML frontmatter format:**
+ - Each skill file must start with: ---\nname: <name>\ndescription: <text>\ntags: [...]\ncategory: <cat>\n---\n
+ - Steps follow under ## Steps heading
+ - Use numbered lists for sequential steps \ No newline at end of file
diff --git a/skills/system-maintenance.md b/skills/system-maintenance.md
new file mode 100644
index 0000000..cb6b809
--- /dev/null
+++ b/skills/system-maintenance.md
@@ -0,0 +1,35 @@
+---
+name: system-maintenance
+description: How to reset, troubleshoot, and maintain the WebX11 terminal
+tags: [system, maintenance, reset, troubleshoot, config]
+category: system
+---
+## Steps
+1. **Factory reset (wipes everything):**
+ - factory-reset --confirm — clears all webx11_ localStorage keys, resets VFS, reloads
+ - Use only when the system is in an unrecoverable state
+
+2. **Soft VFS reset:**
+ - reset-vfs --confirm — clears only the filesystem, preserves settings/profile/modules
+
+3. **Config management:**
+ - config-list — show all config keys and values
+ - config-set <key> <value> — set a config value
+ - config-delete <key> — remove a config key
+ - config-export — dump all config as JSON
+ - config-reset — restore defaults (use before factory-reset if you want to save data)
+
+4. **Health checks (run automatically after complex tasks):**
+ - Check module loading status: loaded vs total
+ - Check for pending module edits
+ - Check memory usage (high if >100MB)
+ - Check skill count (0 skills after 2+ tool calls → suggest create_skill)
+
+5. **Font size and display:**
+ - font-size <8-32> — set terminal font size, persists across sessions
+ - setfont — alias for font-size
+
+6. **When to use:**
+ - System is slow or modules fail to load → check check_updates, memory
+ - User says "reset everything" → factory-reset --confirm
+ - User says "clear my files but keep settings" → reset-vfs --confirm \ No newline at end of file
diff --git a/skills/web-search-and-fetch.md b/skills/web-search-and-fetch.md
new file mode 100644
index 0000000..fcd5f91
--- /dev/null
+++ b/skills/web-search-and-fetch.md
@@ -0,0 +1,27 @@
+---
+name: web-search-and-fetch
+description: How to search the web and fetch URL content using the WebX11 proxy API
+tags: [search, fetch, web, proxy, api]
+category: research
+---
+## Steps
+1. **Search the web:**
+ - Call web_search(query) — uses /api/search which queries SearXNG + DDG fallback
+ - Results include: title, url, content snippet, source engine
+ - Always available (same-origin, no CORS issues)
+ - 5-minute server-side cache for repeated queries
+
+2. **Fetch URL content:**
+ - Call web_fetch(url) — uses /api/extract which strips HTML, extracts clean text
+ - Returns: title, content (up to 4000 chars), word_count, extraction method
+ - SSRF protection blocks internal network addresses
+ - 15-minute server-side cache
+
+3. **Search flags (via terminal search command):**
+ - search <query> --summarize — adds AI-generated overview via Ollama
+ - search <query> --fetch — fetches content snippets for top 3 results
+
+4. **When to use:**
+ - User asks about current events, facts, research → call web_search
+ - User says "read this article" or provides a URL → call web_fetch
+ - For in-depth analysis: search first, then fetch top results \ No newline at end of file
diff --git a/skills/webdav-sync.md b/skills/webdav-sync.md
new file mode 100644
index 0000000..ead86dd
--- /dev/null
+++ b/skills/webdav-sync.md
@@ -0,0 +1,40 @@
+---
+name: webdav-sync
+description: Sync, backup, and restore VFS via WebDAV in WebX11. CRITICAL: Only use verified commands.
+category: system
+tags: [webdav, sync, backup, cloud, vfs]
+---
+
+# WebDAV Sync Workflow
+
+## ⚠️ CRITICAL RULE: VERIFY BEFORE EXECUTING
+**ALWAYS run `help <command>` first.**
+**If `help <command>` returns nothing, the command does NOT exist.**
+**Never invent commands — terminal crashes.**
+
+## 1. Install & Configure
+- `webdav-config` — configure WebDAV connection
+- `webdav-status` — verify connection
+
+## 2. Verified Commands ONLY
+| Command | Verify With | Purpose |
+|---------|-------------|---------|
+| `webdav-ls` | `help webdav-ls` | List files on server |
+| `webdav-backup` | `help webdav-backup` | Backup VFS to WebDAV |
+| `webdav-backup-list` | `help webdav-backup-list` | List backups |
+| `webdav-restore` | `help webdav-restore` | Restore from backup |
+| `webdav-push` | `help webdav-push` | Push VFS to server |
+| `webdav-pull` | `help webdav-pull` | Pull from server |
+
+## 3. What Does NOT Exist
+There is **NO CLI delete** for WebDAV files. These will CRASH:
+- `webdav-browser` ❌
+- `webdav-explorer` ❌
+- `webdav-delete` ❌
+- `webdav-rm` ❌
+
+## 4. Deleting Files
+Since `curl` is also blocked, there is **no automated way** to delete WebDAV backups from the terminal. Use the WebDAV web interface outside the terminal.
+
+## 5. For VFS Files (local filesystem)
+Use `rm <file>` — this is a real command. Verify: `help rm` \ No newline at end of file