code-reviewer
Analyze project source code and generate optimization suggestions. Use when user wants code review, performance optimization advice, security hardening…
Package a script tool under ~/.config/agenvoy/tools/script/ into a tar.gz and publish to pkg.agenvoy.com registry. Keyword picker, dep/key detection, config-stored email (ask + lowercase + persist), ask version, email verification gate, multipart upload with downgrade/unique
$ npx -y skills add agenvoy/Agenvoy --skill extension-upload --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/extension-uploadContext preview
The summary Claude sees to decide when to auto-load this skill.
Package a script tool under ~/.config/agenvoy/tools/script/ into a tar.gz and publish to pkg.agenvoy.com registry. Keyword picker, dep/key detection, config-stored email (ask + lowercase + persist), ask version, email verification gate, multipart upload with downgrade/unique
name: extension-upload description: Package a script tool under ~/.config/agenvoy/tools/script/ into a tar.gz and publish to pkg.agenvoy.com registry. Keyword picker, dep/key detection, config-stored email (ask + lowercase + persist), ask version, email verification gate, multipart upload with downgrade/unique guards.
> **本 Skill 為 Agenvoy 內部最佳化版本**,依 Agenvoy 的執行環境撰寫(`run_command` 的 CWD、`~/.config/agenvoy/skills/.system/` 安裝位置、`edit_skill`/`schedules`/`find_edit_tool` 等工具、subagent 與排程的觸發路徑),**不保證適配其他 AI harness**。
Packages an Agenvoy script tool directory into a marketplace tarball and uploads it to pkg.agenvoy.com. The source root is fixed at `~/.config/agenvoy/tools/script/`. If the user provides a keyword (e.g. `yt`), only matching subdirectories are listed.
`keyword` (**optional**): substring filter (case-insensitive) over subdirectories under `~/.config/agenvoy/tools/script/`. Examples: `yt`, `dlp`, `tts`.
Fixed source root:
SCRIPT_ROOT=~/.config/agenvoy/tools/script
`find_files(mode=list)` lists all first-level subdirectories under `SCRIPT_ROOT` (non-recursive). **Skip names starting with `.` or `_`.**
Branch by input:
| Has keyword? | Candidate set | |---|---| | No | All subdirectories | | Yes | Subdirectories whose name (lowercased) contains `keyword` (lowercased) |
Branch by candidate count:
| Count | Action | |---|---| | 0 | Abort. With keyword: "No directory matching `<keyword>` under `SCRIPT_ROOT`". Without keyword: "`SCRIPT_ROOT` is empty — create a script tool first using `edit_tool(mode=write)`" | | 1 | Use that directory as `extension_dir` directly; report "auto-selected `<basename>`" | | ≥ 2 | `ask_user` singleSelect listing all candidates; user picks one as `extension_dir` |
`extension_dir` is the **absolute path** `<SCRIPT_ROOT>/<basename>`, used by every step below.
> Note: this skill only packages script tools (fixed `type: "script"`). Packaging api tools requires a separate skill. The worker does not accept `mcp` type.
`find_files(mode=list, recursive=true)` enumerates every file under `extension_dir` (relative paths).
**Collect into `raw_files`, excluding:**
`read_file` reads (if present):
Check root-level files under `extension_dir`. Abort immediately on any violation:
| Rule | Condition | |---|---| | tool.json must exist | `extension_dir/tool.json` exists and is a regular file | | script mutual exclusion | `script.py` and `script.js` **must not coexist** (both present → abort) |
Abort message:
❌ Structure check failed: script.py and script.js cannot coexist (keep only one).
Fixed `type: "script"` (this skill only packages tools under `~/.config/agenvoy/tools/script/`).
For `type: script`:
| Rule | Condition | |---|---| | script must exist | `script.py` or `script.js` must exist (exactly one); both missing → abort |
Abort message:
❌ Structure check failed: type:script requires script.py or script.js.
Verify the script can be parsed by its interpreter so consumers don't install something that immediately crashes. **Any failure aborts** and prints the stderr.
Branch on the script file confirmed in §2.5:
python3 -m py_compile <extension_dir>/script.py
node --check <extension_dir>/script.js
exit code ≠ 0 → abort:
❌ Health check failed: script cannot be parsed by the interpreter. <first line of stderr>
> Note: only syntax-level. Top-level code is not executed; import errors / runtime errors / missing API keys are not checked. The author must test runtime behavior before packaging.
Scan every script file for these patterns to extract binaries:
**Exclude:**
What remains (e.g. `yt-dlp`, `ffmpeg`, `imagemagick`, `pandoc`, `tesseract`) is the `dependence` candidate set.
Scan every script file for these patterns to extract key names:
Dedupe and sort all hits.
Call `ask_user`. Put the detection list in the `detail` field (hint-style subtitle); keep `question` short:
{
"questions": [
{
"question": "Are the detections above correct?",
"detail": "dependence: [yt-dlp, ffmpeg]\napi_key_name: []",
"options": ["Yes, continue", "No, let me edit dependence", "No, let me edit api_key_name", "No, edit both"]
}Self-hosted AI agent harness in a single Go binary — writes, sandbox-tests and repairs its own tools, and lets Claude Code, Codex and any MCP client build and share them.
Repo: agenvoy/Agenvoy
Analyze project source code and generate optimization suggestions. Use when user wants code review, performance optimization advice, security hardening…
Generate bilingual (English + Traditional Chinese) commit message from git changes.
Install an Agenvoy extension from pkg.agenvoy.com registry (browse/pick) or local tarball into ~/.config/agenvoy/tools/.extension/<type>/<name>@<version>/.…
從原始碼分析自動生成雙語 README。當使用者請求為專案建立 README、需要從程式碼庫生成 README.md(英文)和 README.zh.md(中文)、或希望為其函式庫/套件建立一致的多語言文件時使用。
建立並排程定時觸發的 skill。**所有新增定時/週期任務、提醒、排程通知的請求必須走此 skill**,禁止直接呼叫 schedules(mode=write)(那是 skill 已存在時的時間綁定工具,不該作為新建排程的入口)。 必定觸發的訊息特徵(任一即活化): - 相對延遲:「X 分鐘後」「X…
Search the curated Agenvoy public API list for an API that fits the current user need or skill context, then chain into the `api-tool-add` skill to register it…