Files
market/README.md
mashagua e15f152ed0 feat: 新增女娲与 Humanizer 双语版三个第三方入口 (#82)
## 概述

以 `entry.json` pointer 形式收录三个第三方技能,均为 MIT、社区维护、SHA 锁定:

| id | 上游 | category | ref | 简介 |
|---|---|---|---|---|
| `nuwa-skill` |
[alchaincyf/nuwa-skill](https://github.com/alchaincyf/nuwa-skill) |
productivity | `27642f5` | 输入一个名字即自动调研→提炼→验证,把任何人的心智模型、决策启发式与表达 DNA
蒸馏成可运行的人物 Skill |
| `humanizer` | [blader/humanizer](https://github.com/blader/humanizer)
| creative | `523374d` | 基于维基百科「Signs of AI writing」指南去除文本 AI 痕迹,纯
Markdown 可跨 agent 运行 |
| `humanizer-zh` |
[op7418/Humanizer-zh](https://github.com/op7418/Humanizer-zh) | creative
| `91f3d39` | Humanizer 汉化版,按中文写作习惯去痕,附核心规则、快速检查清单与质量评分 |

后两者是同一技能的英文原版与汉化版,故合并在一个 PR 内提交便于对照 review。

## 遵循 ADR-038(市场元数据注册表与两层技能模型)

- **只放元数据、不放内容**:仅新增三个 `skills/<id>/entry.json`,正文留在上游源仓库,不 vendoring
任何源码或二进制。
- **市场第三方层**:三者均 `stewardship: community`、`license:
MIT`、`redistribution: allowed`。
- **source pointer**:`kind=git` + repoUrl + repoBranch,`ref` 锁定完整 SHA
保证可复现。
- **轻量 i18n**:仅 name/shortDesc(zh-CN / en-US),列表本地化可离线。
- **无需 `source.path`**:三个上游的 `SKILL.md` 均在仓库根目录(已用 GitHub API 核对树结构),不涉及
#81 修复的 pointer 路径问题。
- **不声明 children**:`nuwa-skill` 的 `examples/` 下 15 个人物 perspective
是女娲的产出示例而非并列子技能,按 `gen-collection-children.py` 的排除规则不计入。
- 第三方 entry 未进 `builtin-skills.json`。

## 变更

- 新增
`skills/nuwa-skill/entry.json`、`skills/humanizer/entry.json`、`skills/humanizer-zh/entry.json`
- `manifest.json`:`stats.totalSkills` 57 → 60,`version` 1.2.24 →
1.2.25,`lastUpdated` → 2026-08-09
- `README.md`:external 25 → 28、total 57 → 60,外部条目清单按字母序插入三个新入口

## 验证

\`\`\`
$ uv run scripts/i18n/validate-i18n.py
OK: no i18n issues found.
\`\`\`

统计核对:`entry.json` 目录 28 + `SKILL.md` 目录 32 = 60,与
`manifest.stats.totalSkills` 一致。
2026-08-09 18:14:38 +08:00

162 lines
4.8 KiB
Markdown

# DesireCore Market
DesireCore 官方市场仓库,存放官方维护的 Agent/Skill 定义,以及经过整理的第三方 Skill 入口。
## Repository Shape
```
.
├── manifest.json # Market metadata, supported locales, aggregate stats
├── categories.json # Category registry and localized labels
├── builtin-skills.json # Built-in local SKILL.md skills
├── agents/
│ └── desirecore/
│ └── agent.json
└── skills/
├── <local-skill>/
│ ├── SKILL.md
│ └── SKILL.<locale>.md
└── <external-entry>/
└── entry.json
```
The market currently contains:
- `1` Agent: `desirecore`
- `32` local built-in skills with `SKILL.md`
- `28` external skill entries with `entry.json`
- `60` publishable skills in total (`SKILL.md` + `entry.json`)
## Skill Sources
Local built-in skills are installable from this repository and must be listed in `builtin-skills.json`:
```text
code-intelligence, configuring-compute, create-agent, dashscope-image-gen, delete-agent,
dev-environment-setup, discover-agent, docx, frontend-design, guizang-ppt,
image-to-image, mail-operations, manage-skills, manage-teams, markdown,
minimax-music-gen, minimax-video-gen, nodejs-runtime, pdf, pptx,
python-runtime, registering-services, s3-storage-operations, skill-creator,
tech-diagram, update-agent, using-services, web-access, workflow, workforce-optimization,
xiaomi-tts, xlsx
```
`builtin-skills.json#retired` lists old built-in Skill IDs that clients may safely retire during
startup. Clients only remove copies tracked in `skills.lock` as market/bundled content whose
`SKILL.md` hash still matches the installed record; manually installed or locally modified copies
are preserved. An ID must not appear in both `skills` and `retired`.
External entries are marketplace pointers to Git/Web/ZIP sources:
```text
agent-reach, ai-news-radar, amap-jsapi-skill, baoyu-skills, dingtalk-api,
flyai-skill, follow-builders, humanizer, humanizer-zh,
ian-xiaohei-illustrations, impeccable, karpathy-guidelines, khazix-skills,
larksuite-cli, last30days, luckin-my-coffee, marketingskills,
mattpocock-skills, minimax-image-gen, minimax-tts, mt-paotui-for-client,
netease-skills, nuwa-skill, taste-skill, watch, watchless,
wechatpay-skills, wecom-cli
```
## Data Formats
### Local Skill (`skills/<id>/SKILL.md`)
Local skills use YAML frontmatter plus Markdown body. The top-level `name` must equal the directory slug. Display strings live in `metadata.i18n`.
```yaml
---
name: web-access
description: >-
Use this skill when ...
version: 2.0.1
type: procedural
risk_level: low
status: enabled
metadata:
author: desirecore
updated_at: '2026-05-05'
i18n:
default_locale: en-US
source_locale: zh-CN
locales: [zh-CN, en-US]
zh-CN:
name: 联网访问
short_desc: 联网搜索、网页抓取、登录态浏览器访问
body: ./SKILL.zh-CN.md
translated_by: human
en-US:
name: Web Access
short_desc: Web search, page fetching, logged-in browser access
body: ./SKILL.md
source_hash: sha256:...
translated_by: human
market:
category: research
channel: latest
maintainer:
name: DesireCore Official
verified: true
---
```
### External Entry (`skills/<id>/entry.json`)
External entries point to upstream packages or repositories. They are counted in `manifest.stats.totalSkills` but are not included in `builtin-skills.json`.
```json
{
"id": "example-skill",
"name": "Example Skill",
"category": "development",
"icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">...</svg>",
"tags": ["example"],
"maintainer": {
"name": "Example",
"verified": false,
"account": "example",
"url": "https://github.com/example/example-skill"
},
"stewardship": "community",
"license": "MIT",
"redistribution": "allowed",
"source": {
"kind": "git",
"repoUrl": "https://github.com/example/example-skill.git",
"repoBranch": "main"
}
}
```
## Categories
Valid category slugs are declared in `categories.json`:
```text
productivity, development, business, creative, design, media,
communication, research, data, management
```
## Validation
Run these checks before submitting changes:
```bash
# Full market + i18n validation
uv run scripts/i18n/validate-i18n.py
# Translation freshness check
uv run scripts/i18n/translate.py --check
# Optional network check for entry.json source URLs
uv run scripts/i18n/validate-i18n.py --online
```
The validator checks market stats, category references, `builtin-skills.json`, `entry.json` structure, i18n completeness, and translation freshness. Human-locked translations (`translated_by: human`) must keep `source_hash` aligned after manual review.
Detailed i18n guidance is in [docs/I18N.md](docs/I18N.md).
## License
MIT License. See [LICENSE](LICENSE).