## What / 变更内容 S31(#85)把 `web-access` 技能升到 v3.0.0,删掉了 `SKILL.md` 与 `references/browser-tools.md` 里「用户手工启动带 `--remote-debugging-port` 的 Chrome + Python Playwright」的回落路径,但 **5 个 per-site 基线文件未同步**,仍然引导 Agent 在正文抽取(以及部分站点的登录态复用)上 回落到已废弃的 Playwright / 外部 CDP: - `references/site-patterns/zhihu.com.md` - `references/site-patterns/weibo.com.md` - `references/site-patterns/bilibili.com.md` - `references/site-patterns/xiaohongshu.com.md` - `references/site-patterns/feishu.cn.md` 本 PR 把这 5 处旧表述替换为已落地的内置浏览器能力: - 正文抽取 → `BrowserAct(page.extract-text)`(format/maxBytes/nextCursor 分页) - 知乎/B站的「批量回答/评论」抽取 → `BrowserAct(page.element, op: all-inner-texts, selector: loc=css:...)` (九 op 判别式命令的只读档,一次拿全部匹配元素文本) - 登录态未授予 `browser.import.*` 时的处置,由「直接回落 / 回落 CDP」改为「如实告知用户无法复用 登录态,按未登录继续或放弃」,与 `references/browser-tools.md` 里 `BrowserImport` 一节已修好的 措辞对齐 - 各文件 `历史更新` 追加一条同步记录;`SKILL.md` 版本号 `3.0.0` → `3.0.1` (只改 `references/*`,未改 `SKILL.md`/`SKILL.zh-CN.md` 正文,`source_hash` 不受影响) `references/browser-tools.md` 现存的 2 处 "Playwright" 字样经核实均为**已移除**的历史性陈述 ("…并移除 Python Playwright 回落"、"无需…Python / Playwright"),不构成误导性指令,本 PR 未改动该文件。 Refs: desirecore/desirecore#2074, #85 ## Test plan / 测试计划 - [x] 通读改动后的每个 site-pattern 文件:新写法对应的能力(`page.extract-text` / `page.element` op: `all-inner-texts`)均已在 v3.0 落地,未引用不存在的参数 - [x] `compute_source_hash` 只 hash `SKILL.md` frontmatter 之后的 body + i18n strings,本次只改 `references/*.md`,不触发 source_hash drift - [ ] CI(i18n validate) - [x] CLA
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:
1Agent:desirecore32local built-in skills withSKILL.md28external skill entries withentry.json60publishable 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:
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:
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.
---
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.
{
"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:
productivity, development, business, creative, design, media,
communication, research, data, management
Validation
Run these checks before submitting changes:
# 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.
License
MIT License. See LICENSE.