diff --git a/crates/aionui-app/assets/builtin-skills/auto-inject/aionui-skills/SKILL.md b/crates/aionui-app/assets/builtin-skills/auto-inject/aionui-skills/SKILL.md deleted file mode 100644 index 67f7bb086..000000000 --- a/crates/aionui-app/assets/builtin-skills/auto-inject/aionui-skills/SKILL.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -name: aionui-skills -description: 'Access the AionUI Skills registry — discover and download AI agent skills. Use when you need to find a reusable skill for a task or manage your agent credentials on the AionUI Skills platform.' ---- - -> **⚠️ Platform note — read before running any command.** The shell snippets in this skill are written for **macOS / Linux** (bash/zsh). Always check which OS you are on first. On **Windows** do **not** run them verbatim — the underlying tool/CLI commands are usually cross-platform, but the surrounding shell syntax is not. Translate it to PowerShell before running: -> -> | bash (macOS / Linux) | PowerShell (Windows) | -> | --- | --- | -> | `a && b` | run as two steps, or `a; if ($?) { b }` | -> | `cat <<'EOF' \| tool …` (heredoc) | write the text to a temp file, then pipe/pass that file to the tool | -> | `VAR=$(cmd)` … `$VAR` | `$VAR = cmd` … `$VAR` | -> | `cmd > /dev/null` | `cmd > $null` | -> | `… \| grep PAT` | `… \| Select-String PAT` | -> | `… \| jq …` | `… \| ConvertFrom-Json`, then read the fields | -> | `python3 x.py` | `python x.py` (or `py x.py`) | -> | `~/dir`, `/tmp` | `$env:USERPROFILE\dir`, `$env:TEMP` | -> | `cp` / `mkdir -p` / `rm -rf` | `Copy-Item` / `New-Item -ItemType Directory -Force` / `Remove-Item -Recurse -Force` | -> -> If a command has no obvious Windows equivalent, prefer the built-in file/HTTP tools over raw shell. - -# AionUI Skills Market - -AionUI Skills is a community platform for AI agent skills — discover, download, -and use skills autonomously, similar to npm or PyPI but for AI agents. - -**Homepage**: https://skills.aionui.com - -## Setup (3 steps) - -### Step 1 — Fetch the skill guide - -```bash -mkdir -p ~/.config/aionui-skills -curl -s https://skills.aionui.com/SKILL.md > ~/.config/aionui-skills/SKILL.md -``` - -### Step 2 — Register your agent - -Read `~/.config/aionui-skills/SKILL.md` and follow the **Registration** section -to bind this agent to a user account. - -### Step 3 — Start using community skills - -Once registered, you can search, download, and use skills from the marketplace. -The full workflow (search → evaluate → download → use → review) is documented -in the SKILL.md you fetched in Step 1. - -## When to use this skill - -- When the user's task would benefit from a specialized community skill -- When the user explicitly asks to find or use a skill from the marketplace -- Do NOT search for skills if you can complete the task confidently on your own diff --git a/crates/aionui-app/tests/skills_builtin_e2e.rs b/crates/aionui-app/tests/skills_builtin_e2e.rs index 7f6b7e4e3..e82dd6dac 100644 --- a/crates/aionui-app/tests/skills_builtin_e2e.rs +++ b/crates/aionui-app/tests/skills_builtin_e2e.rs @@ -120,7 +120,12 @@ async fn builtin_auto_lists_entries_from_embedded_corpus() { let json = body_json(resp).await; assert_eq!(json["success"], true); let arr = json["data"].as_array().unwrap(); - assert!(arr.len() >= 4, "expected ≥4 auto-inject entries, got {}", arr.len()); + assert!(arr.len() >= 3, "expected ≥3 auto-inject entries, got {}", arr.len()); + let names: Vec<&str> = arr.iter().filter_map(|item| item["name"].as_str()).collect(); + assert!( + !names.contains(&"aionui-skills"), + "aionui-skills should not be shipped as an auto-inject builtin skill: {names:?}", + ); for item in arr { assert!(item["name"].is_string()); assert!(item["description"].is_string()); diff --git a/crates/aionui-extension/src/skill_service.rs b/crates/aionui-extension/src/skill_service.rs index b9ba3cc96..12c42c06f 100644 --- a/crates/aionui-extension/src/skill_service.rs +++ b/crates/aionui-extension/src/skill_service.rs @@ -2154,7 +2154,7 @@ mod tests { let paths = make_embedded_paths(tmp.path()).await; let autos = list_builtin_auto_skills(&paths).await.unwrap(); - assert!(autos.len() >= 4, "expected ≥4 auto-inject entries, got {}", autos.len()); + assert!(autos.len() >= 3, "expected ≥3 auto-inject entries, got {}", autos.len()); for item in &autos { assert!( item.location.starts_with("auto-inject/"),