* feat: skills i18n 改造 — schemaVersion 1.1,零向后兼容
把 21 个 skills + 1 个 agent + manifest/categories 全量迁移到 schemaVersion 1.1
的 i18n 结构,配套 CI AI 翻译流水线(GitHub Models)与本地工具链。
## 关键变更
### 数据结构(破坏性,schemaVersion 1.0 → 1.1)
- SKILL.md: 顶层 name 改为 ASCII slug(== 目录名,符合 agentskills.io 规范);
中文显示名/short_desc/description 全部迁入 metadata.i18n.<locale>
- agents/<id>/agent.json: shortDesc/fullDesc/tags/persona.{role,traits} 迁入
i18n.<locale>;changelog[].changes 改为 { <locale>: string[] } 对象
- categories.json: 每个分类的 label/description 迁入 i18n.<locale>,顶层只剩
color/icon
- manifest.json: 加 supportedLocales / defaultLocale;顶层 description 迁入
i18n.<locale>
### Body 文件结构
- 根 SKILL.md = frontmatter + default_locale (en-US) body
- SKILL.<locale>.md = 各 locale 的 markdown body(首行 <!-- locale: xx --> 自校验)
### 工具链(scripts/i18n/)
- glossary.json: zh→en 术语表 + do_not_translate 白名单
- schema/skill-frontmatter.schema.json: i18n frontmatter JSON Schema
- validate-i18n.py: 8 条校验规则(name 合规 / locale 完整性 / hash 一致性等)
- translate.py: GitHub Models / Anthropic 双 backend,sha256 增量翻译
- migrate.py: 一次性迁移脚本(旧格式 → i18n 结构)
### CI(.github/workflows/)
- i18n-validate.yml: PR 触发跑 validate + translate --check
- i18n-translate.yml: PR 触发用 GitHub Models(默认 openai/gpt-5-mini)翻译缺失
locale,自动追加 commit;可切到 ANTHROPIC_API_KEY 走 Claude
### 文档
- docs/I18N.md: 作者贡献指南(schema 说明 / 提交流程 / 常见问题)
- README.md: 加多语言段落
## 验证
- uv run scripts/i18n/validate-i18n.py: OK,49 文件 0 错误
- uv run scripts/i18n/translate.py --check: 0 stale locale
- 21 skills 标题数 zh-CN == en-US 严格对齐(最大 66=66)
- skills-ref 规范校验:全部通过(顶层 name ASCII slug + description 单字段)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(i18n): 修复 PR #1 review 反馈的 6 项问题
- schema: translated_by 正则放宽为 ^(human|ai:[A-Za-z0-9._:/-]+)$,接受
'ai:github:openai/gpt-5-mini' 这类 backend:model 形式(CI 翻译输出格式)
- README + docs/I18N.md: 修正"CI 用 Claude API"误导描述,正确说明默认是
GitHub Models(openai/gpt-5-mini)+ GITHUB_TOKEN,可选切到 Anthropic
- skills/minimax-tts/SKILL.md & SKILL.zh-CN.md: 删除多余的 ``` 闭合,避免
Markdown 后续渲染错乱
- skills/docx/SKILL.md: 翻译时丢失的 • Unicode escape 示例已恢复,
与 zh-CN 版本对齐
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9.7 KiB
name, description, version, type, risk_level, status, disable-model-invocation, tags, metadata, market
| name | description | version | type | risk_level | status | disable-model-invocation | tags | metadata | market | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dev-environment-setup | Use this skill as a router/index when the user faces a development environment question that spans multiple domains: containers (Docker/Podman), WSL2 on Windows, office-skill dependencies (DOCX/PDF/XLSX/ PPTX), or system tools (LibreOffice/Poppler/Pandoc/Tesseract). For pure Python issues use python-runtime skill; for pure Node.js issues use nodejs-runtime skill. Triggers include: "setup environment", "PATH", "WSL", "WSL2", "docker not found", "podman", "container", "office dependency", "LibreOffice", "poppler", "pandoc", "tesseract", or any cross-cutting environment question. 使用场景:用户提到 环境配置、PATH、 容器、Docker、Podman、WSL、WSL2、办公依赖、系统工具,或不确定属于 Python / Node.js 时的入口指引。 | 2.0.1 | procedural | low | enabled | true |
|
|
|
dev-environment-setup Skill (v2.0.0 router)
L0: One-line Summary
When to use: The user needs to
- Install / troubleshoot Docker or Podman containers ("docker not found", daemon startup, registry mirror, etc.)
- Configure WSL2 (Linux Subsystem) on Windows
- One-shot install of office skill dependencies (Python packages + npm packages + system tools required by DOCX / PDF / XLSX / PPTX)
- Install system tools: LibreOffice / Poppler / Pandoc / Tesseract / qpdf / ImageMagick / Ghostscript / Git
- Uncertain whether the issue belongs to Python or Node.js, and a comprehensive diagnosis is needed first
When not to use: Use python-runtime for pure Python issues, and nodejs-runtime for pure Node.js issues.
How to do it: First run scripts/probe.sh (use probe.ps1 on Windows) to obtain a system snapshot JSON,
and route to the corresponding references or sub-skill based on the result; this skill is also the source of truth
for DesireCore's built-in Hatch / Volta / HTTP API / Socket.IO integration (references/desirecore-runtime.md).
L1: Routing Rules
Route directly to the corresponding skill or document by the keywords in the user's question:
| Keyword / Scenario | Path |
|---|---|
| python / pip / venv / pyenv / hatch / virtualenv / PEP 668 | python-runtime skill |
| node / npm / pnpm / yarn / volta / nvm / fnm / EACCES | nodejs-runtime skill |
| docker / podman / container / container daemon | references/container.md |
| WSL / WSL2 / Windows Linux Subsystem | references/wsl.md |
| DOCX / PDF / XLSX / PPTX dependencies / office skill dependencies | references/office-deps.md |
| LibreOffice / poppler / pandoc / tesseract / qpdf | references/system-tools.md |
| Unsure of category, want a quick diagnosis | First run scripts/probe.sh and inspect the JSON |
| DesireCore Hatch / Volta / HTTP API / Socket.IO | references/desirecore-runtime.md |
| Four-tier fallback decision (API → CLI → package manager → community solution) | references/decision-tree.md |
L2: Detailed Specification
Step 1: Quick Diagnosis
bash skills/dev-environment-setup/scripts/probe.sh > /tmp/env-probe.json
cat /tmp/env-probe.json | jq .
For the meaning of output fields, see references/probe-snapshot.md. On Windows use scripts/probe.ps1.
Step 2: Route by Result
desirecore_apinon-empty → take the HTTP API path (references/desirecore-runtime.md)tools.python3.available = falseortools.node.available = false→ enter the corresponding sub-skilltools.docker.available = falseand the user needs containers →references/container.mdwsl.installed = falseand Windows user →references/wsl.md
Step 3: Execute the Sub-skill Decision Tree
Both python-runtime and nodejs-runtime have their own four-tier fallback (L1 API → L2 built-in CLI → L3 system package manager → L4 community solution), defined in the shared references/decision-tree.md.
Step 4: Office Skill Dependencies
Quick lookup for the office quartet (DOCX / PDF / XLSX / PPTX) dependencies: references/office-deps.md. Includes one-shot install commands for Python packages, npm packages, and system tools.
Step 5: System Tools
Installation and troubleshooting for LibreOffice / Poppler / Pandoc / Tesseract / qpdf / ImageMagick / Ghostscript: references/system-tools.md.
DesireCore Built-in Environment Management Base
DesireCore embeds Hatch (Python) and Volta (Node.js), providing complete environment management via HTTP API + Socket.IO. This skill and the sub-skills (python/nodejs) all rely on:
| Document | Content |
|---|---|
references/desirecore-runtime.md |
Binary path table, HTTP API quick-reference, Socket.IO event contracts, EnvironmentSnapshot data structure |
references/decision-tree.md |
Four-tier fallback flowchart, concrete signals for failure detection, switch prompts |
references/probe-snapshot.md |
Probe script JSON output protocol |
Important Constraints
- Do not write strong keywords like python / node / pip / npm into this skill's description—those belong to their respective sub-skills, to avoid trigger conflicts.
- API first:
scripts/probe.shfirst checks~/.desirecore/agent-service.port; if it exists, recommend the HTTP API path. - Cache coherence: after any install/uninstall completes, call
POST /api/runtime/environment/refreshto invalidate the cache before issuing subsequent GETs. - Cross-platform: every command template provides both macOS / Linux and Windows (PowerShell) versions.
Sub-skill and Document Manifest
skills/
├── python-runtime/ # Python environment (Hatch first)
├── nodejs-runtime/ # Node.js environment (Volta first)
└── dev-environment-setup/ # This skill (composite entry)
├── references/
│ ├── desirecore-runtime.md
│ ├── decision-tree.md
│ ├── probe-snapshot.md
│ ├── container.md
│ ├── wsl.md
│ ├── office-deps.md
│ └── system-tools.md
└── scripts/
├── probe.sh
└── probe.ps1
Upgrade Notes (v1.x → v2.0.0)
- v1.x was a 1380-line all-in-one manual, now split.
- Python-related →
python-runtime - Node.js-related →
nodejs-runtime - Docker / WSL / office dependencies / system tools → this skill's
references/ - DesireCore Hatch / Volta upgraded from "optional community solution" to mandatory L1/L2 primary path
Downstream skills (docx / pdf / xlsx / pptx) should rewrite "for Python environment issues, see dev-environment-setup" to "for Python environment issues, see python-runtime / for Node.js environment issues, see nodejs-runtime".