Commit Graph

152 Commits

Author SHA1 Message Date
mashagua
d3b5c6f85c feat: 新增 68 个第三方技能入口(skills-top100 缺口) (#209)
## 概述
以 `entry.json` pointer + `catalog-metadata.v1.json` 边车的形式,收录 68
个第三方技能(来自 24 个上游仓库)。这些技能在 skills-top100 中,但市场里还没有对应条目(top100 共 100 条,另有
11 条已被 baoyu-skills / marketingskills 合集的 children 覆盖)。

## 遵循 ADR-038(市场元数据注册表与两层技能模型)
- **只放元数据、不放内容**:仅新增 `skills/<id>/entry.json` 和边车,正文留在上游源仓库,不 vendoring
任何源码。
- **市场第三方层**:`stewardship: community`、`redistribution:
allowed`,`license` 为 SPDX。
- **source pointer**:`kind=git`,`source.ref` 钉死完整 commit SHA;`SKILL.md`
不在仓库根的,`source.path` 填其父目录。
- **许可证与审核证据**:每条 `governance.license` 为 known 并给出
`evidencePath`,`compliance.reviewedRef` 与 `provenance.content.ref`
一致,因此条目可直接安装。
- 轻量 i18n:仅 name / shortDesc(zh-CN / en-US)。
- 需要外部账号、API Key、CLI 或特定环境的技能,已按 AGENTS.md「外部依赖披露」要求写进中英文简介。

## 变更
- 新增 68 个 `skills/<id>/{entry.json,catalog-metadata.v1.json}`
- `manifest.json`:`stats.totalSkills` 73 -> 141,`lastUpdated` ->
2026-10-05,`version` 1.5.9 -> 1.5.10

## 与 top100 数据不同的地方(均已核实上游)
- 仓库已改名/换所有者,条目里写 GitHub 现名:K-Dense-AI/claude-scientific-skills ->
K-Dense-AI/scientific-agent-skills、RoundTable02/tutor-skills ->
bevibing/tutor-skills、affaan-m/everything-claude-code ->
affaan-m/ECC、nowork-studio/toprank ->
nowork-studio/notfair-plugin、qwibitai/nanoclaw ->
nanocoai/nanoclaw、vercel-labs/add-skill -> vercel-labs/skills(用 GitHub
API 复核,24 个上游均未归档)。
- internal-comms / canvas-design / mcp-builder / webapp-testing:top100
记的是聚合仓库 `sickn33/antigravity-awesome-skills` 的转抄,原始仓库是
`anthropics/skills`(目录内 Apache-2.0 LICENSE.txt),已指向原始仓库。
- planning-with-files:原始仓库是
`OthmanAdi/planning-with-files`(MIT),已指向原始仓库。
- openfang(data-analyst、jira):仓库为 `Apache-2.0 OR MIT` 双许可,登记为该表达式。
- everything-claude-code(现 ECC)的 8 条物流/供应链技能:仓库根 LICENSE 为 MIT,但各
SKILL.md frontmatter 声明 `license: Apache-2.0`,按技能自己的声明登记,证据路径为各自
SKILL.md。

## 未收录
- NousResearch/hermes-agent 的 8 条:它是 Agent 框架本体,不是独立技能仓库。
- 12 条宿主绑定技能(Google AI Edge Gallery 的 run_js 系列、飞书 feishu_*
系列、LifeOS/PAI 系列、nexu 的 nano-banana、Understand-Anything 插件的
understand-knowledge):正文依赖特定宿主提供的工具或环境,离开原宿主无法运行。
- content-research-writer:top100 指向的 Vibe-Skills 只是转抄,原始仓库
`ComposioHQ/awesome-claude-skills` 没有任何 LICENSE,无法核实授权。

## 请维护者确认
- `compliance.reviewedBy` 填的是 `mashagua`,如需统一为其他值请告知;`upstreamEndorsed`
全部为 `false`,未与上游作者沟通。
- 8 条 frontmatter 声明式许可证(ECC)是否接受。

## 验证
```
python3 scripts/catalog/validate_catalog_metadata.py
0 error(s), 123 warning(s)   # 与改动前基线一致,新增条目 0 条警告
uv run scripts/i18n/validate-i18n.py
0 error(s), 123 warning(s)
```
客户端获取门禁(normalizePointerSkill + compareMarketCatalogConsistency +
evaluateCatalogAcquisitionEligibility):68/68 通过。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01MfR3KiqnzKfhqHk4a7pwcy

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: Yige <a@wyr.me>
2026-10-05 23:39:48 +08:00
26a3a4a82a fix: 修复上游健康巡检并同步已审查的市场引用 (#207)
Upstream health checks could select a different branch ending in `main`,
index internal skills or lowercase reference documents, treat a valid
pinned path as broken after an upstream move, and close the tracking
issue while unpinned or unknown entries remained. Resolve exact refs and
tracked filenames, compare the installed snapshot, and drive issue
decisions from structured results.

Refresh 26 reviewed pointers, pin DingTalk and Matt Pocock collections,
remove the deleted merge-conflict skill, and add the six new public
children with reviewed translations. Synchronize sidecars, observed
release facts, license evidence and external dependency disclosures.
Identical-tree Agent pins and their versions remain unchanged. The
per-entry review is recorded in
`docs/upstream-health-189-remediation.md`.

Validation: 99 unit tests pass; all nine pinned collections reproduce;
catalog/i18n and translation-freshness checks pass; online health checks
all 41 external entries with zero broken, actionable or unknown results.
Existing catalog warnings decrease from 123 to 105 with no new warning
groups. Python/workflow shell syntax and whitespace checks pass.

Closes #189.
2026-10-05 23:13:13 +08:00
Johnson-LYS
04042d44bf fix: 补齐优化技能的隐藏工具声明 (#190)
## 变更说明 / Description

加载 workforce-optimization 后,隐藏工具 OptimizationEngineCatalog 和
OptimizationEvidenceLedger 仍不可发现,因为 provides.tools 遗漏了它们。本 PR
补齐共用声明,将技能版本提升至 2.9.1,并同步目录 sidecar 的版本与更新日期。中英文正文均不变,共用 frontmatter
对两种语言同时生效。

Loading workforce-optimization leaves OptimizationEngineCatalog and
OptimizationEvidenceLedger unavailable because its provides.tools
declaration omits these hidden tools. Add both declarations, bump the
skill to 2.9.1, and keep the catalog sidecar aligned. Both localized
bodies share this metadata and remain unchanged. Existing external
solver prerequisites and licensing disclosures remain applicable.

## 验证 / Validation

- 隔离 Electron dev:补声明前 EngineCatalog 为
notFound;补声明并刷新、加载技能后,两工具均可发现,EngineCatalog 实际执行成功。EvidenceLedger
仅验证发现,执行由客户端夹具覆盖。
- Isolated Electron dev: EngineCatalog changed from notFound to
discoverable and executable after the declaration update; EvidenceLedger
discovery was verified without writing ledger data.
- Skill i18n validation and strict complete catalog validation: 0
errors, 123 existing metadata warnings.
- Translation freshness check for workforce-optimization: current; both
bodies unchanged.
- git diff --check passed. Changes and collaboration text contain only
reusable tool identifiers and catalog metadata; no private runtime
evidence is included.

此 PR 仅更新 Market 源数据;客户端 bootstrap ZIP 未手工修改。/ This updates Market source
data only; client bootstrap archives are not hand-edited.

Co-authored-by: Yige <a@wyr.me>
2026-10-04 23:41:53 +08:00
0dcf2aed3b feat(market): 启用团队本地化说明与原始版本
## 中文

启用两支审查团队的中英文完整介绍与隐私说明,保留微信支付上游原始版本 `1.0`,市场版本更新为 `1.5.9`。

解决标书介绍与最新 main 的冲突,保留成员默认收纳说明和用户选择优先的行为。同步条目与 canonical 目录的本地化描述,补齐模型服务配置、可用性、处理授权、条款与费用责任,以及前提不满足时停止相关外部调用的规则。

标书团队 `0.2.3` 引用已合并的 [上游 #7](https://github.com/desirecore-agent/biao-shu-lian-he-shen-cha/pull/7),合同团队 `0.1.40` 引用已合并的 [上游 #51](https://github.com/desirecore-agent/contract-review-team/pull/51)。source、provenance 与 reviewedRef 对齐;成员版本、头像与 `requiredClientVersion: 10.0.178` 保持一致。

本地化字段和原始版本格式所依赖的 desirecore/desirecore#3183 已包含于正式 [v10.0.177](https://github.com/desirecore/desirecore/releases/tag/v10.0.177)。团队自身的 10.0.178 安装要求继续有效。Schema 保持闭集,并明确记录两个分支的本地扩展来源。

验证:84 个市场单元测试通过;完整目录与 i18n、翻译及生成合集新鲜度检查通过,0 错误、123 个既有告警。新增测试覆盖两种 Schema 分支的字段边界和未知属性拒绝。上游静态检查与 11 项收集器回归通过;18 次真实模型回合包含 15 个前提缺失的停止案例和 3 个全部前提确认的正向案例。模型回合验证请求意图和停止信号,未执行完整 Agent Service、市场安装、真实合同或 DOCX 验收。

此前审查意见已处理;Copilot 账户审查额度用尽,最终改动采用人工复核,并遵循仓库已有的检查门禁。

## English

Enable localized full descriptions and privacy disclosures for both review teams, preserve WeChat Pay's original release identifier `1.0`, and advance the Market to `1.5.9`.

Resolve the tender-description conflict against current main while retaining nested member display and user preference precedence. Align entry and canonical localized descriptions, disclose model-service prerequisites and operator responsibilities, and stop affected external calls when prerequisites fail.

Point Tender `0.2.3` and Contract `0.1.40` to the merged revisions from [upstream #7](https://github.com/desirecore-agent/biao-shu-lian-he-shen-cha/pull/7) and [upstream #51](https://github.com/desirecore-agent/contract-review-team/pull/51), keeping source, provenance and reviewed refs aligned. Preserve members, avatars and the separate `10.0.178` installation requirement. The catalog-format dependency shipped in stable v10.0.177; the closed schema documents its deliberate local i18n extension.

Validation: 84 Market unit tests and full catalog/i18n, translation and collection freshness checks pass; zero errors and 123 existing warnings. Upstream static checks and 11 collector regressions pass. Eighteen live model turns include 15 blocked prerequisite cases and three positive controls with all prerequisites confirmed. These turns check request intent and stopping signals; full Agent Service integration, marketplace installation, real-contract acceptance and DOCX acceptance were not performed.

Earlier review findings are addressed. Copilot's account quota is exhausted, so final changes received manual review under the repository's existing check policy.
2026-10-04 07:20:32 -07:00
a7411ab07c fix(web-access): 开发者工具类动作指向 BrowserDevtools,兼容拆分前的客户端(3.4.5) (#206)
desirecore/desirecore#3899 把 BrowserAct 的 21 个开发者工具类动作拆到独立工具 BrowserDevtools,它不随本技能注入。技能在工具表后说明:需要时先 DiscoverTools(query="select:BrowserDevtools") 加载,参数与 BrowserAct 相同;查不到说明客户端早于拆分,同样的 action 与参数在 BrowserAct 上调用。写法不依赖客户端版本,所以不设 required_client_version,也不把 BrowserDevtools 加进 provides.tools。

references/browser-tools.md 新增 BrowserDevtools 一节,cdp.raw 的已知边界、错误处理与调用链路同步更新。技能版本 3.4.5,sidecar 的 release.version 与 catalogUpdatedAt 同步,i18n source_hash 重算。

English: Point web-access's developer-tool actions at BrowserDevtools, the
tool split out of BrowserAct in desirecore/desirecore#3899. The skill loads
it on demand through DiscoverTools and falls back to the same action on
BrowserAct for clients that predate the split, so no client version floor
is needed. Bump to 3.4.5 with synced sidecar metadata and a recomputed i18n
source hash.

验证 / Validation: i18n validation and catalog metadata checks report zero
errors (existing repository warnings remain); translation freshness check
passes.
2026-10-03 23:27:59 -07:00
9bd9f6dfdb feat(market): 更新团队发布指针与兼容门槛 (#205)
更新标书联合审查与合同审查团队的已审核发布指针,分别对应 0.2.2 和 0.1.39,并补充成员默认收纳、用户显示偏好优先的说明。

两条 entry 与目录元数据统一要求 DesireCore 10.0.178 或更新且支持 `team.json.memberDisplay`
的客户端。目录可提前发布;10.0.177(包括仍标为该版本的开发构建)会在市场安装前提示升级。该版本下限不表示兼容客户端已经发布。

同时将 Market 版本提升到 1.5.8,更新目录日期及两个 Agent
管理技能的目录更新时间。成员名册、成员锁版本和头像映射保持与上游发布一致。

验证:完整目录和 i18n 校验零错误、无新增警告;翻译新鲜度检查通过;最新团队配置通过当前 schema 校验,旧版 schema
拒绝该字段;安装版本门控确认拦截 10.0.177。

English: Update the reviewed Tender Review Team and Contract Review Team
pointers to 0.2.2 and 0.1.39. Document the nested member display default
and explicit user preferences. Set the client installation floor to
10.0.178 with memberDisplay support so older clients receive an upgrade
notice before importing incompatible manifests. This floor does not
claim that a compatible release is already available. Bump the catalog
to 1.5.8 and correct catalog timestamps. Catalog, localization,
source-manifest and version-gate checks pass with no new warnings.
2026-10-03 06:34:53 -07:00
bdda7aba89 feat: document asynchronous avatars for created agents (#204)
创建和更新智能体的中英文技能现在说明自动异步头像:默认透明真人,显式外貌/风格/背景要求优先;用户图片优先,删除或关闭可取消任务。旧客户端按实际工具
Schema 使用,图像服务条款、额度与费用明确披露。

The bilingual creation/update skills document automatic asynchronous
avatars, user customization, image precedence, cancellation,
older-client schema detection, and image-provider prerequisites and
costs.

验证 / Validation: focused i18n validation and translation freshness
passed; catalog validation has zero errors (existing repository warnings
remain).
2026-10-03 04:19:19 -07:00
74184056c4 fix(mail-operations): 按现行邮件服务路由修正技能文档(1.0.6) (#194)
## 背景 / Background

发票整理 Agent 在隔离开发实例里真机整理 QQ 邮箱时,按内置技能 `mail-operations` 的写法调用 IMAP
附件下载,拿到 400 `Missing required parameters`:技能写的请求体是 `{email, uid, folder,
partId}`,而 `POST /imap/attachment` 从 2026-03 创建起就只认 `{email, messageId,
attachmentId, folder?}`。顺着这一处,对照 desirecore origin/dev(`c1e2c5ac0`)的
`lib/mail-service/` 与 `MailOperations` 工具把整份技能逐条核对了一遍。

While a real-mailbox run of the invoice agent was downloading QQ Mail
attachments, the builtin `mail-operations` skill's IMAP attachment body
(`{email, uid, folder, partId}`) returned 400; the route has always
taken `{email, messageId, attachmentId, folder?}`. This PR re-audits the
whole skill against the current mail service routes.

## 改动 / Changes

共修正 27 处不一致:会直接导致调用失败 9 处、会误导能力判断 10 处、措辞 8 处。主要有:

- **调用入口**:改为 `MailOperations`(path 带 `/api`,capability
由工具注入);原文的固定端口、「无需认证」、`curl -k` 都不成立
- **附件**:body 字段更正;必须带 `save_to` 落盘(不带会被工具拒绝返回),回执给出路径、字节数、SHA-256
- **参数位置**:`messages/fetch`、`/sync`、IMAP 草稿发送的 `email`(以及 `/sync` 的
`provider`)放查询串;IMAP 草稿收件人是逗号分隔的 `to` / `cc`,更新草稿会换成新 uid
- **folder**:IMAP 单封操作要用 `GET /imap/folders` 返回的服务器路径,列表里的归一化值会 500
- **规则**:operator 是 `matches_regex`(未知 operator 恒为 false
且创建时不校验);`archive` / `move_to_folder` / `forward_to` / `star` 是空操作
- **搜索**:三个 provider 都支持,只查本地缓存、`q` 只匹配主题;Gmail 全文检索改用 `messages/fetch`
的 `query`
- **IMAP 仅收信账户**:`allowUnverifiedSmtp`、`smtp_verification_failed`、409
`smtp_unverified`、`verify-smtp`(失败也返回 200)
- **离线队列**:不会自动入队或处理,只改本地,`processed` 计数不代表执行
- 响应字段名(`toRecipients`、`bodyPreview` 等)、同步状态文件、`/imap/test` 返回形态等措辞修正
- 版本 1.0.6;新增 `market.required_client_version: 10.0.148` 与 sidecar
`compatibility.requiredClientVersion`——`MailOperations`(10.0.95)、`save_to`
与 Outlook/IMAP search(10.0.146)、`imap:<uid>` / fetch `offset` / folder
归一化(10.0.148)分版本上线,旧客户端按新文档操作会静默失败,门控让它们保留旧版

## 验证 / Verification

- 写补丁与审查由两个独立子代理完成:审查方对 9 处致命项全部、另外 13 处抽查逐条对照代码行,均成立;审查意见(最低客户端版本、IMAP
更新草稿换 uid、`/sync` 参数、Gmail 远程检索、`verify-smtp` 返回形态、离线队列计数、响应示例矛盾)已全部采纳
- 各项最低版本用 `git tag --contains` 对照发布 tag 复核
- `translate.py --check`:en-US human-locked 且 hash 新鲜(`source_hash` 按
`compute_source_hash` 重算)
- `validate-i18n`:0 error,123 warning(与 main 基线相同)
- `validate_catalog_metadata --require-complete`:0 error
- `git diff --check` 通过;新增行只有 `example.com` 占位地址,无真实邮箱、姓名、公司名或长数字编号

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-09-29 05:07:39 -04:00
d2125e5b2a fix: 修正 video-use 根目录来源路径 (#193)
## Summary / 摘要

- Omit `source.path` and `provenance.content.path` for the upstream
repository root. The DesireCore resolver treats an absent path as the
root and rejects `.` as an unsafe path segment.
- Keep the item `listing-only` until ref-bound governance review
evidence and platform/setup validation are complete.

- 上游来源指向仓库根目录时省略 `source.path` 和 `provenance.content.path`。DesireCore 在
path 缺省时按仓库根目录解析,并会拒绝 `.` 路径段。
- 在补齐固定版本的治理审查证据并完成平台/安装验证前,继续将条目标记为仅供发现。

## Validation / 校验

- `uv run scripts/i18n/validate-i18n.py skills/video-use` — passed with
0 errors (existing catalog warnings remain).
- `uv run scripts/catalog/validate_catalog_metadata.py
--require-complete` — passed with 0 errors.
- `uv run scripts/i18n/translate.py --check` — passed.
- `git diff --check` — passed.
2026-09-29 04:56:49 -04:00
0e279fd811 feat: 添加 video-use 视频剪辑技能入口 (#192)
## Summary / 摘要

- Add a pinned Market pointer for the upstream `browser-use/video-use`
skill, with English and Chinese discovery text.
- Add catalog metadata for its MIT license, source provenance,
Python/ffmpeg prerequisites, and ElevenLabs Scribe API key and
usage-cost requirement.
- Keep the listing discovery-only until installation and governance
review are completed.
- Add the entry to Market statistics. No upstream skill code is
vendored.

- 新增固定到上游提交的 `browser-use/video-use` 市场入口及中英文介绍。
- 补充 MIT 许可、来源、Python/ffmpeg 前置条件,以及 ElevenLabs Scribe 密钥和可能产生的 API 费用。
- 完成安装与治理审查前,条目标记为仅供发现。
- 更新 Market 条目统计,不复制上游技能代码。

## Validation / 校验

- `uv run scripts/i18n/validate-i18n.py skills/video-use` — passed with
0 errors (existing catalog warnings remain).
- `uv run scripts/catalog/validate_catalog_metadata.py
--require-complete` — passed with 0 errors.
- `uv run scripts/i18n/translate.py --check` — passed.
- `git diff --check` — passed.
2026-09-29 04:19:49 -04:00
mashagua
6fbd5590a7 fix: dingtalk-cli 上游迁移至 DingTalk-Real-AI/dingtalk-workspace-cli (#187)
## 概述
`skills/dingtalk-cli` 指向的上游 `open-dingtalk/dingtalk-workspace-cli` 已
404(`git ls-remote` 返回需要认证,仓库已删除或转为私有),客户端按该指针已无法获取内容。本 PR 将指针迁移到项目现在的地址
[DingTalk-Real-AI/dingtalk-workspace-cli](https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli)。

## 为什么认定是同一项目
- 新仓库 README / README_zh、brew tap、Releases、SECURITY 链接全部指向
`DingTalk-Real-AI/dingtalk-workspace-cli`,产品名、`dws` 命令、Apache-2.0 许可一致。
- 新仓库最新提交 `7de51a8`(2026-09-23)是 `v1.0.63-beta.3` 的 formula 更新,与 npm
`dingtalk-workspace-cli` 当前 beta 版本号一致。
- 注意:npm 包元数据的 `repository` 仍写着旧地址,尚未随迁移更新。请 reviewer 确认是否认可新组织为官方来源。

## 变更
- `source.repoUrl`、sidecar `provenance.content.url` → 新地址;`maintainer` /
`upstreamMaintainer` → `DingTalk-Real-AI`(`url` 仍为 npm 包页)。
- 上游子技能目录已从 `multi/` 移到 `skills/multi/`,14 个 `children[].path`
同步修正(已逐一确认新地址下存在 `SKILL.md`)。
- 新增上游新子技能 `dingtalk-tag`(数字员工管理),`childCount` 14 → 15。
- 上游 `skills/mono`(frontmatter `metadata.internal: true` 的合并技能
`dws`)不作为子技能收录。
- 保持原有 `listing-only`、未锁定 `ref` 的状态不变,未改动人工撰写的子技能简介。
- `manifest.json`:version 1.5.2 → 1.5.4(1.5.3 已由 #186 使用;两者合并有先后时需解一次
version 行冲突),lastUpdated → 2026-09-25。

## 验证
```
uv run scripts/i18n/validate-i18n.py                                    # 0 error(s)
uv run scripts/catalog/validate_catalog_metadata.py --require-complete  # 0 error(s),dingtalk-cli 无警告
uv run scripts/gen-collection-children.py --check dingtalk-cli          # SKIP(未锁定 ref,与改动前一致)
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_0191D9g1FhRQzEGTefUn6mTb

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Yige <a@wyr.me>
2026-09-26 18:08:57 +08:00
mashagua
4dbfd4c563 feat: 新增 HumanLayer Skills 第三方入口 (humanlayer-skills) (#186)
## 概述
以 `entry.json` pointer 形式收录第三方技能合集
[humanlayer/skills](https://github.com/humanlayer/skills)。

## 遵循 ADR-038(市场元数据注册表与两层技能模型)
- **只放元数据、不放内容**:仅新增 `skills/humanlayer-skills/entry.json` 与
sidecar,正文留在上游源仓库,不 vendoring 任何源码。
- **市场第三方层**:`stewardship: community`、`license: MIT`、`redistribution:
allowed`,sidecar `availability: listing-only`(与现有外部条目一致)。
- **source pointer**:`kind=git` + repoUrl + `repoBranch: main`,`ref` 锁定
SHA `ca7c8088db69e315a8b2deea43820270457f8f3c`。
- **集合条目**:6
个子技能(build-iterated-agentic-loop、design-control-loop、improve-claude-md、narrow-react-prop-types、show-me、visual-pr),`children`
由 `scripts/gen-collection-children.py` 从固定提交生成,`source.path` 指向各自含
SKILL.md 的目录。
- **轻量 i18n**:仅 name/shortDesc(zh-CN / en-US)。
- category: `development`。

## 变更
- 新增
`skills/humanlayer-skills/entry.json`、`skills/humanlayer-skills/catalog-metadata.v1.json`
- `manifest.json`:stats.totalSkills 71 → 72,version 1.5.2 →
1.5.3,lastUpdated → 2026-09-25

## 验证
```
uv run scripts/i18n/validate-i18n.py                              # 0 error(s)
uv run scripts/catalog/validate_catalog_metadata.py --require-complete  # 0 error(s)
uv run scripts/i18n/translate.py --check                          # 无过期译文
uv run scripts/gen-collection-children.py --check humanlayer-skills  # OK (6 children)
```
新条目仅有两条与现有外部集合条目相同类型的警告(legacy-license-unverified、子技能 locale 文本相同待人工翻译)。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_0191D9g1FhRQzEGTefUn6mTb

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 12:59:54 +08:00
8f7953948f fix: 补齐市场静态事实并保持旧客户端兼容 (#184)
## 中文

补齐已有 owner 与已锁定上游内容可证明的许可证、技能类型和收录版本。保留 Anthropic Source Available
和其他附加条件,不把所有内容统一标为 MIT,不提升 listing-only 的安装准入。

README 保留最新的双语结构及以 manifest 为准的数量口径,增加静态目录不存访问量、下载量、评分或 Stars 的边界。

发布兼容性:**本 PR 不包含**两支团队新增的本地化字段,也不包含微信支付 `latestVersion:
1.0`;旧客户端会拒绝这些新字段,另以待发布 PR 保留,等匹配客户端发布后再合并。

验证:47 项目录校验测试、19 项 i18n 测试、5 项合集生成测试通过;完整目录/i18n/翻译新鲜度检查通过,6
个固定来源合集的生成检查通过,2 个浮动来源按既有规则明确跳过。发现并修复了生成器在 Windows 使用反斜杠造成的误报:输出改为 POSIX
路径,比较规则不放宽、不重写合集数据。

## English

Fill only license, type and listed-release facts supported by existing
owners or pinned upstream content. Preserve custom license restrictions
and acquisition eligibility. Keep the current bilingual README and
manifest-derived inventory; do not author usage analytics.

This PR deliberately excludes localized team fields and the two-part
WeChat Pay version that older clients reject. Those changes remain
pending a compatible client release.

Validation passes: 47 catalog-validator tests, 19 i18n tests, five
collection-generator tests, complete catalog and translation checks, and
generated inventory checks for six pinned collections. Two mutable
sources remain explicitly skipped. Fix Windows-generated path separators
without weakening comparison or changing declared children.
2026-09-22 01:09:03 +08:00
mashagua
2f52cc6731 feat: 新增 Archify 与 LumaRescue 两个第三方入口 (archify, lumarescue) (#167)
## 概述
以 `entry.json` pointer 形式收录两个第三方技能:
- [tt-a1i/archify](https://github.com/tt-a1i/archify)
- [justlovemaki/LumaRescue](https://github.com/justlovemaki/LumaRescue)

## 遵循 ADR-038(市场元数据注册表与两层技能模型)
- **只放元数据、不放内容**:仅新增两个 `skills/<id>/entry.json`,正文留在上游源仓库,不 vendoring
任何源码。
- **source pointer**:均 `kind=git` + repoUrl + repoBranch=main,`ref` 锁定
SHA。
- **轻量 i18n**:仅 name/shortDesc(zh-CN / en-US),列表本地化可离线。

### archify
- `stewardship: community`、`license: MIT`、`redistribution:
allowed`,category `development`。
- SKILL.md 位于 `archify/` 子目录,`source.path=archify`,ref
`c1443b31b496eebf4a68bf83151816c955ddb796`。

### lumarescue
- 上游未声明 license,判定 `stewardship: pointer`、`license:
not-declared`、`redistribution:
source-pointer-only`(仅安装时从上游获取并提示条款,market 内不分发内容),category `creative`。
- SKILL.md 位于仓库根,故不写 `source.path`,ref
`14cd76cea24e825e079fa2dfa5c5322002d6dc4e`。

## 变更
- 新增 `skills/archify/entry.json`、`skills/lumarescue/entry.json`
- `manifest.json` stats.totalSkills 69 → 71,version 1.5.1 →
1.5.2,lastUpdated → 2026-09-12
- `README.md` external 29→31 / total 69→71,External entries 清单按字母序插入
`archify`、`lumarescue`

## 验证
```
uv run scripts/i18n/validate-i18n.py
0 error(s), 129 warning(s).
```
(warnings 均为既有 builtin 的 legacy 遗留告警,与本 PR 无关)

Co-authored-by: yi-ge <a@wyr.me>
2026-09-19 19:26:39 +08:00
204cd96835 docs: 更新 Control 应用市场入口与服务技能边界 (#181)
## 变更 / Changes
新增 Control 1.4.0 中英文市场安装指南及 README 应用入口,指向真正的应用数据源
desirecore/registry;同步 registering-services / using-services 到 1.0.4,明确
native-app 的对外 MCP 不可注册为内部服务。

Add bilingual marketplace documentation and update both service skills
without duplicating an App as an MCP service. Fixed native application
listing and lifecycle live in Registry; open-source implementation lives
in desirecore-agent/desirecore-cdp-mcp.

## 兼容 / Compatibility
Requires native-app-aware desktop (catalog minimum 10.0.169) and
app-install-manager >=1.4.0. Catalog publication does not upgrade the
desktop or Agent.

## 验证 / Verification
- i18n/catalog validation: 0 errors, 129 existing governance/freshness
warnings retained.
- scoped translation hash check: both skills up to date; no model API
invoked by checks.
- git diff --check passed; unrelated market entries preserved.
2026-09-19 14:21:07 +08:00
aec2e7c28b feat: 新增企业微信助手 Agent,并修正 wecom-cli 条目 ref 漂移 (#112)
## 概述 / Overview

两件事:新增「企业微信助手」Agent(自带 15 个技能),并修正 `wecom-cli` 条目钉在 6 月快照的 ref 漂移。

Two changes: adds the **WeCom Assistant** agent (bundling 15 skills),
and fixes the `wecom-cli` entry whose pinned ref was stuck on a June
snapshot.

## 1. 新增企业微信助手 Agent

覆盖企业微信 **14 类服务、95
个方法**:消息、群聊历史、通讯录、日程、会议、待办、邮件、在线文档、在线表格、智能表格、智能文档、文档管理、微盘、媒体文件。

**采用内联形态 + 自带私有技能**:Agent 安装对 `agents/<id>/` 整目录递归复制且 `skills/`
不在排除集合里,因此装 Agent 即带全部技能,用户无需再单独获取技能合集。

### 技能集(15 个,约 5000 行)

- 基于上游 [wecom-cli](https://github.com/WecomTeam/wecom-cli) 官方
Skill(MIT,© WecomTeam)改写,每个技能末尾保留归属声明
- **新增 `wecom-chat`**:补齐上游零覆盖的群聊历史读取
- 补齐上游未覆盖的 `message.send`、`doc.create`,方法覆盖达 **95/95**
- 修正上游三处文档漂移:邮件能力描述与实际相反、会议室参数名已过时、`title_highlight` 字段不存在

### 相对上游的核心增量:风险治理

- 26 个对外可见或不可逆的方法逐个写明**执行前确认要求**
- 4 个条件升级方法给出**参数级判据**,而非按方法名一刀切
- 文档权限扩散两项加重处理,涉及**企业外可见**时单独再确认一次
- 内部标识禁止外露,不因用户索要而放宽
- 拒绝导出可识别到具体自然人的隐私字段

### 三条真机实测得出、上游未覆盖的硬约束

1. 机器人**只能写入/修改自己创建的数据**,真人创建的只能读
2. 每次响应携带的 `extra_identity_context` **禁止透露给用户**
3. 权限错误(`850002`/`851008`/`853006`)**不得重试**,须将 `help_message`
**逐字原样**转给用户

## 2. 修正 wecom-cli 条目 ref 漂移

`source.ref` 原钉在 2026-06-28 的 `72e14f7`,该快照只有 7
个子技能且用已废弃的旧命名(`msg`/`schedule`)。上游 v1.2.0 已扩展到 **14 个**技能。按旧 ref
安装的用户拿到的是三个月前的快照。

- `source.ref` → `78c514b2afee7c0d3d7be715628478421f37ee63`
- `children` 由 `scripts/gen-collection-children.py` 重新生成,**7 → 14**
- sidecar 同步 `provenance.content.ref`、`childCount` 与 `children`

## 验证 / Verification

**静态**
- 215 条示例命令追加 `--dry-run` 实跑,**215/215 退出码 0**
- 未知方法 0、未知参数 0、`--json` 未知字段 0、枚举违规 0
- 15 个 `SKILL.md` 的 frontmatter 经客户端 `skillFrontmatterSchema` 校验全部通过
- `validate_catalog_metadata.py --require-complete` 与
`gen-collection-children.py`:**0 error**

**真机(在真实企业微信账号上端到端)**
- **待办域 6/6 方法全通**(含 2 个 write-high),`items` 必填的隐蔽坑实测证实
- **日程域 5 个方法全通**(含 3 个 write-high)
- 消息发送、通讯录解析、微盘列表、邮件搜索、文档搜索、会议列表、智能表格创建均已实测通过
- 测试数据已全部清理,未污染真实账号

**尚未实测**:群聊历史(机器人未开通该品类)。相关文档已明确标注验证状态,未实测的能力不写「实际效果」段落。
2026-09-03 03:50:00 -04:00
joy1129-com
c83f917901 feat(skills): add 6 due-diligence data-source skills (#111)
## Summary

Adds six enterprise due-diligence data-source skills as local built-in
skills (SKILL.md + SKILL.zh-CN.md + catalog-metadata sidecar), per
ADR-038.

| Skill | Category | Risk | Source |
|---|---|---|---|
| baidu-poi-search | data | low | Baidu Map Place API (REST) |
| tianyancha-risk | business | low | Tianyancha risk API (REST) |
| ccgp-gov-procurement | business | medium | ccgp.gov.cn (WebBridge) |
| cnipa-patent-search | business | medium | CNIPA pss-system (WebBridge)
|
| creditchina-query | business | high | creditchina.gov.cn (WebBridge +
ddddocr) |
| multi-source-sentiment | research | medium | Douyin Index/Featured +
WebSearch |

## Changes
- 6 x skills/<id>/{SKILL.md, SKILL.zh-CN.md, catalog-metadata.v1.json}
- builtin-skills.json: 34 -> 40
- manifest.json: totalSkills 63 -> 69
- README.md counts + list

## Security
- Credentials replaced with env-var placeholders (BAIDU_MAP_AK,
TIANYANCHA_TOKEN); verified no secrets in diff

## Validation
- validate-i18n.py: 0 errors (remaining warnings pre-existing repo-wide)
- zh/en heading parity verified; source_hash computed per repo algorithm

Co-authored-by: yi-ge <yi-ge@desirecore.net>
2026-09-03 14:05:58 +08:00
fb6005cd7b feat: 新增钉钉官方 CLI 市场入口(含 14 个官方子技能) (#104)
## 中文

补齐官方市场里唯一缺失的主流 IM CLI 条目:**钉钉官方命令行工具 `dws`**(npm 包
`dingtalk-workspace-cli`,Apache-2.0,Copyright 2026 Alibaba Group),与已有的
`wecom-cli`、`larksuite-cli` 形成对称。市场此前只有社区的 `dingtalk-api`,覆盖面远小于官方 CLI。

### 变更

| 文件 | 说明 |
| --- | --- |
| `skills/dingtalk-cli/entry.json` | 合集指针条目 + 14 个官方子技能 `children` |
| `skills/dingtalk-cli/catalog-metadata.v1.json` | 治理 sidecar |
| `manifest.json` | `stats.totalSkills` 62 → 63;`version` 1.2.30 →
1.2.31;`lastUpdated` |
| `README.md` | 外部条目计数与清单同步 |

### 14 个子技能


`dingtalk-aisearch`、`dingtalk-aitable`、`dingtalk-calendar`、`dingtalk-chat`、`dingtalk-contact`、`dingtalk-doc`、`dingtalk-drive`、`dingtalk-event`、`dingtalk-mail`、`dingtalk-minutes`、`dingtalk-misc`、`dingtalk-shared`、`dingtalk-todo`、`dingtalk-wiki`

### 外部依赖披露

CLI 是**独立分发的第三方软件**,本条目只是市场登记,四处均已声明:

- **discovery description**(`entry.json#i18n.<locale>.shortDesc`):需自行用
npm 安装 `dingtalk-workspace-cli`,需完成钉钉 OAuth
授权登录(**不支持账号密码登录**),DesireCore 不打包、不授权、不安装也不代运营钉钉或该 CLI
- **`compatibility.requirements`**(4 条):CLI 需在 PATH 上、Node.js >=
16.7.0、`dws auth login` 建立的授权会话(缺失时必须在外部调用前停止,禁止编造成功结果)、能力覆盖取决于组织授予的
OAuth 范围与钉钉权益
- **本地化市场文案**:sidecar `presentation.i18n` 与 `entry.json#i18n` 逐字一致,zh-CN
/ en-US 双语
- **执行说明**:随 CLI 分发的上游 `SKILL.md`,不在本仓库

`redistribution: verify-package-terms` 会让客户端在安装响应里带出条款提示。

### 来源与治理的取舍(诚实声明)

上游 git 仓库 `https://github.com/open-dingtalk/dingtalk-workspace-cli`(该
URL 是发布方在 npm `package.json#repository` 里自己声明的)**当前对外返回 404,不可公开访问**,因此:

- `source` 用 `kind: git` + 该声明 URL,**不写 `ref`**——没有可观察的 commit,不编造固定版本
- 相应地 `provenance.content` 不可变,`governance.availability` 只能是
`listing-only`(`validate_catalog_metadata.py` 的 installable 强证据门禁要求不可变
ref + 已知 license + `reviewedAt` + `compliance`,本条目一样都拿不出)
- `governance.license` 保持 `{state: "unknown"}`(`entry.json#license:
"Apache-2.0"` 取自发布方声明与包内 LICENSE/NOTICE,但仓库内没有许可证据文件,只产生既有的
`legacy-license-unverified` warning)
- `timestamps.reviewedAt` / `releasePublishedAt` 保持 `unknown`;只有
`catalogUpdatedAt` 与 `upstreamObservedAt` 写入真实观察时刻
- `branding` 声明 `independent-listing` / `nominative` /
`not-used`:独立登记、名称为指代性使用、未使用对方 Logo(图标是通用终端窗形)
- 因为来源未固定,`gen-collection-children.py --check` 会输出 `SKIP`(与既有的
`mattpocock-skills` 同一路径),`children` 由人工按分发件内实际布局 `multi/<id>/` 撰写

### 校验(已实际执行,全部 exit 0)

```
uv run --quiet scripts/i18n/test_validate_i18n.py                            exit=0
uv run --quiet scripts/catalog/test_validate_catalog_metadata.py             exit=0
uv run --quiet scripts/catalog/test_collection_generator.py                  exit=0
uv run --quiet scripts/catalog/validate_catalog_metadata.py --require-complete
    0 error(s), 117 warning(s). agents=1, builtinSkills=34, pointerSkills=29,
    publishableSkills=63, collections=8, collectionChildren=161, sidecars=64  exit=0
uv run --quiet scripts/i18n/validate-i18n.py            0 error(s)            exit=0
uv run --quiet scripts/i18n/translate.py --check                             exit=0
uv run --quiet scripts/gen-collection-children.py --check                     exit=0
```

本条目产生的唯一 warning 是 `legacy-license-unverified`,与其余全部 pointer
条目一致。`entry.json` 另经客户端 `marketSkillEntrySchema` 的 Ajv 校验通过。

发布前公开信息边界检查已按 `CLAUDE.md` 执行并通过(工作树全量扫描含隐藏文件、路径名、分支名、commit 文案与本 PR
文本,零结果;令牌清单保存在仓库之外)。

---

## English

Adds the one mainstream IM CLI the official market was still missing:
the **official DingTalk CLI `dws`** (npm package
`dingtalk-workspace-cli`, Apache-2.0, Copyright 2026 Alibaba Group),
making it symmetric with the existing `wecom-cli` and `larksuite-cli`
entries. Until now the market only carried the community `dingtalk-api`,
whose surface is far smaller.

### Changes

| File | Purpose |
| --- | --- |
| `skills/dingtalk-cli/entry.json` | Collection pointer entry with 14
official sub-skill `children` |
| `skills/dingtalk-cli/catalog-metadata.v1.json` | Governance sidecar |
| `manifest.json` | `stats.totalSkills` 62 → 63; `version` 1.2.30 →
1.2.31; `lastUpdated` |
| `README.md` | External-entry count and list kept in sync |

### External dependency disclosure

The CLI is **separately distributed third-party software**; this entry
is a marketplace listing only. The dependency is disclosed in all four
required places:

- **Discovery description** (`entry.json#i18n.<locale>.shortDesc`): the
operator installs `dingtalk-workspace-cli` from npm and completes
DingTalk OAuth sign-in (**no username-and-password login**); DesireCore
does not bundle, license, install or operate DingTalk or this CLI.
- **`compatibility.requirements`** (4 entries): the `dws` binary on
PATH, Node.js >= 16.7.0, an operator-authorized session from `dws auth
login` (without it the skills must stop before the external call and
must never fabricate a successful result), and the fact that capability
coverage depends on the organization's granted OAuth scopes and DingTalk
entitlements.
- **Localized marketplace text**: sidecar `presentation.i18n` matches
`entry.json#i18n` verbatim, in both zh-CN and en-US.
- **Execution instructions**: the upstream `SKILL.md` files shipped with
the CLI, outside this repository.

`redistribution: verify-package-terms` makes the client surface a terms
notice on install.

### Source and governance trade-off (stated plainly)

The upstream git repository
`https://github.com/open-dingtalk/dingtalk-workspace-cli` — the URL the
publisher itself declares in the npm `package.json#repository` —
**currently returns 404 and is not publicly readable**. Therefore:

- `source` uses `kind: git` with that declared URL and **no `ref`**:
there is no observable commit, and inventing a pinned one is not
acceptable.
- Content provenance is consequently not immutable, so
`governance.availability` can only be `listing-only` (the installable
evidence gate in `validate_catalog_metadata.py` requires an immutable
ref, a known license, `reviewedAt` and `compliance`; none of these exist
here).
- `governance.license` stays `{state: "unknown"}`. `entry.json#license:
"Apache-2.0"` reflects the publisher's declaration and the
LICENSE/NOTICE shipped in the package, but there is no license evidence
file in this repository, so only the existing
`legacy-license-unverified` warning is produced.
- `timestamps.reviewedAt` and `releasePublishedAt` stay `unknown`; only
`catalogUpdatedAt` and `upstreamObservedAt` carry real observed values.
- `branding` declares `independent-listing` / `nominative` / `not-used`:
an independent listing, nominative use of the product name, and no
third-party logo (the icon is a generic terminal-window glyph).
- Because the source is unpinned, `gen-collection-children.py --check`
reports `SKIP` (the same path the existing `mattpocock-skills` entry
takes). The `children` list was written by hand against the
`multi/<id>/` layout actually observed in the distributed skill bundle.

### Validation (actually executed, all exit 0)

All seven checks from `.github/workflows/i18n-validate.yml` were run
locally and passed; the only warning attributable to this entry is
`legacy-license-unverified`, matching every other pointer entry.
`entry.json` additionally validates against the client's
`marketSkillEntrySchema` under Ajv.

The pre-publication public-information-boundary check in `CLAUDE.md` was
performed and passed with a zero-result scan across the working tree
(hidden files included), path names, branch name, commit text and this
PR text. The search tokens are kept outside the repository.

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: yi-ge <jackyoncode@gmail.com>
2026-09-02 06:25:24 -04:00
8ca10741aa chore(larksuite-cli): 同步合集子技能至上游最新 / sync collection children to upstream HEAD (#105)
## 问题 / Problem

市场登记的 `larksuite-cli` 合集落后于上游,用户看到的能力清单不准确:

1. **缺少 `lark-meeting`** — 合集只登记 27 个子技能,上游实际有 28 个。而 `lark-meeting`
恰好是会议域**唯一的真业务技能**。
2. **4 个已降级的兼容壳仍按旧描述展示** — 上游已把 `lark-vc` / `lark-vc-agent` /
`lark-minutes` / `lark-note` 改成纯兼容入口(正文只有一句「转
lark-meeting」),但市场里仍是它们退役前的能力描述。用户按描述勾选,会装到 4 个不再承载业务的空壳,却装不到真正干活的
`lark-meeting`。
3. `source.ref` 钉在 2026-06 的提交上。

The registered `larksuite-cli` collection lagged upstream:
`lark-meeting` — the only real business skill in the meeting domain —
was missing, while four skills that upstream has since reduced to
compatibility shims were still advertised with their pre-retirement
descriptions. Users following those descriptions would install four
empty shims and miss the skill that actually does the work.

## 修改 / Changes

- `source.ref`: `4c31323` → `a257fcb`(上游 main,2026-08-31)
- `children`: 27 → 28,补齐 `lark-meeting`
- 4 个兼容壳的描述随之更新为「仅当显式指定时使用,统一交由 lark-meeting 技能处理」
- 同步 sidecar 的 `provenance.content.ref` 与
`spec.collection.childCount`,修复 legacy 与 sidecar 的一致性

`children` 由 `scripts/gen-collection-children.py larksuite-cli`
生成,未手工编辑。

## 验证 / Validation

```
uv run scripts/i18n/validate-i18n.py              → 0 error, 116 warning
uv run scripts/catalog/validate_catalog_metadata.py → 0 error, 116 warning
```

改动前基线同为 `0 error / 116 warning`,**无新增 warning**。

首次提交时只改了 legacy `entry.json`,校验报 3 个 `legacy-consistency` /
`collection-identity` error;stash 改动跑基线对照确认是本次引入后,补齐 sidecar 修复。
2026-09-01 10:00:10 -04:00
8265c8f4a9 feat(workforce-optimization): governed nonexpert clarification and evidence (#106)
## 摘要 / Summary

补问、原话解释与真人确认分离;增加版本能力预检、sourceField/evidenceLinks、有限语义用例及正确工件依赖顺序。

Separate answers, interpretation and human confirmation; add capability
discovery, explicit source/evidence bindings, finite semantic checks and
artifact ordering.

发现描述覆盖“仅澄清”入口;有歧义的原话保持缺口,不把“不确定”塞入精确枚举或规范化值。按当前对话语言加载框架与固定事实门尾注。

当前请求中已唯一确定的值会写成类型化、待真人确认的 `node.value`;只有未知或仍有歧义的事实才保持 `needs_input`。

Discovery covers clarify-only requests. Ambiguous raw answers remain
unresolved, rather than becoming exact placeholder values. The framework
and fixed fact-gate footer follow the current conversation language.

Exact values uniquely supplied by the current request become typed,
human-reviewable `node.value` proposals; only genuinely unknown or
ambiguous facts remain `needs_input`.

应用/服务重启或重试 fork 后,入口必须在当前父轮重新加载 Skill,并在委派前用 ToolCatalog 核实阶段工具;子 Agent
不得突破未激活父级的能力上限。

After an app/service restart or retry fork, the entry Agent reloads the
Skill in the current parent turn and verifies stage tools before
delegation; a child never expands an unactivated parent ceiling.

新的 decision-grade `OptimizationSpec` 强制使用 v2,并完整声明 `semantic_contract`
中的 solve intent 及所有 objective/variable/constraint/data reference
的单位/维度;legacy v1 仅只读兼容。

New decision-grade `OptimizationSpec` artifacts use v2 and a complete
semantic contract for solve intent plus every material objective,
variable, constraint and data reference; legacy v1 remains read-only
compatibility.

## 验证 / Validation

- Scoped Skill/i18n/catalog check passes with zero errors. Existing
repository warnings remain.
- Publication safety check passed, including hidden working-tree files,
new paths, branch/commit metadata and collaboration text.
- 双语说明与 source hash 已同步,版本更新为 2.7.0;缺少新平台契约时保持普通澄清,不模拟缺失门禁。
- Bilingual bodies and source hashes are synchronized at version 2.7.0.
Older clients stay in plain-text clarification when capability discovery
fails.

## 状态 / Status

Runtime acceptance is still in progress; draft only. No customer data,
credentials, solver software or deployment settings are included.

真机验收仍在进行,本 PR 暂为草稿。保留外部求解器许可证、部署和费用披露;本变更不包含求解器、客户数据或凭据。

---------

Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-09-01 07:40:21 -04:00
e77c658958 feat: 市场支持团队条目类型并上架合同审查团队 (#110)
## 变更 / What

市场此前只有 `agents` 与 `skills` 两类条目。本 PR 加入**团队(teams)**条目类型,并上架第一条真实团队
listing。

The market supported only `agents` and `skills`. This PR adds a
**teams** entry type and lists the first real team.

## 一、支持团队条目类型

「支持一种新条目类型」实际涉及 4 组共 11 个文件,比表面看到的多:

**客户端契约快照**
- 新增 `schemas/market-team-entry.client.schema.json`,用 esbuild 打包客户端
`packages/schemas/src/market.ts` 后导出生成。用同样方法重新生成
`market-agent-entry.client.schema.json` 验证过管线——字节完全一致(含属性顺序),确认不是手工誊抄。

**Sidecar schema**
- `identity.kind` 枚举加 `team`;新增 `$defs.teamSpec`;接入 `spec.oneOf` 与
kind→spec 派发

**校验器(工作量主要在这里)**
- `scripts/catalog/validate_catalog_metadata.py`:`load_legacy`
原先硬编码只认两个根目录。抽出 `CATALOG_ROOTS` 常量同时驱动允许的父目录集合与错误文案;按 kind 分派客户端 schema
校验;`teams` 进 stats 与 `--require-complete` 覆盖统计;把**严格 provenance
比对**与「可安装 pointer 必须自带不可变 ref」两道门禁扩展到团队
- `scripts/i18n/validate-i18n.py`:**它独立重算计数并逐个校验 `entry.json`**,不接团队会漏校
- `.github/workflows/i18n-validate.yml`:变更检测的 grep 不含 `teams/`——**一个只改
teams 的 PR 会报「无 i18n 相关变更,跳过校验」然后零校验通过**
- 测试:`test_validate_catalog_metadata.py` 29→47,`test_validate_i18n.py`
9→17

**顺带修正一条本就不对的规则**:`icon` 此前被要求「每个 entry.json 都必须有非空内联 SVG」,但运行时 schema 里
`marketAgentSchema` 与 `marketTeamSchema` **都没有 `icon` 字段**(只有 skill
有)。也就是说这条规则对 Agent pointer 同样在强加死重量,只因本仓库暂无 agent pointer 条目而未暴露。改为
`ICON_RENDERED_KINDS = {"skill"}`,agent/team 声明 icon
时给**警告**而非错误,文案说明「下一个维护者会以为改它能改变卡片」。

## 二、上架合同审查团队

`teams/contract-review-team/`(`entry.json` + sidecar)。

**团队条目是 fork 指针卡,不分发正文**:市场只存展示元数据 + git-only `source`,真实定义(`team.json`
/ `members.json` / `shared/`)在 `source.repoUrl` 指向的仓库里。安装即
`forkTeam`,更新即 `git pull`——组合固定,因此**没有** `installPolicy` /
`updatePolicy`。

| 字段 | 值 | 依据 |
|---|---|---|
| `source.ref` | `73cd87a9901cc548871927e9d5dbec8e4cc6c2b1` | v0.1.1
的**完整 SHA**。tag 不是可复现 pin,validator 有测试专门拒绝 |
| `latestVersion` | `0.1.1` | 上游真实 tag,与 `release.version` 交叉校验 |
| `license` | `MIT` | 上游仓库真有 LICENSE,已在 pinned ref 的快照中复验 |
| `redistribution` | `source-pointer-only` |
市场从不打包团队正文,只给指针——这是交付形态,与许可证宽松与否无关 |
| `requiredClientVersion` | `10.0.137` | 六个成员都声明了 `FileDigest`
内置工具,它随该版本发布 |
| `memberCount` / `memberNames` | 6 / 5 名 | schema 规定前者**含**组长、后者**不含**
|
| `availability` | `listing-only` | 见下 |

**`availability` 为什么不是 `installable`**:四项证据满足两项(不可变 pin ✓、已知 license
✓),缺的 `reviewedAt` 与 `governance.compliance`
本质是**一次尚未发生的治理审查**——需要具名方在具体日期针对这个确切 ref 审过许可合规、第三方内容与商标使用。没发生的事不能写进目录。

补充一个事实:本仓库**零个 sidecar 有 `compliance` 块,29 个 pointer 条目全是
listing-only**,`installable` 路径从未在任何真实条目上走过。这不阻止安装——fork 由 `source` 驱动。

**`license.evidencePath` 的基准此前是未定义的**:schema 只说
`safeRelativePath`,没规定相对谁。仓库里仅有的两个先例(`guizang-ppt`、`presentation-forge`)都是
vendored 技能,LICENSE 物理上在条目目录里。按那个读法,pointer 条目写 `evidencePath`
断言的是市场目录下有该文件——对 pointer 永远不成立。新增 `license-evidence` 规则按条目形态分派:vendored
要求文件存在(error),pointer 要求条目已 pin(warning),两种读法写进 README。

## 校验 / Validation

```
test_validate_catalog_metadata.py    47 tests  OK
test_validate_i18n.py                17 tests  OK
test_collection_generator.py         exit 0
validate_catalog_metadata.py --require-complete
  0 error, 116 warning   (agents=1, teams=1, publishableSkills=62, sidecars=64)
validate-i18n.py / --online          0 error, 116 warning
translate.py --check                 exit 0
gen-collection-children.py --check   exit 0
```

116 warnings 即加入团队之前的基线——**本条 listing 贡献 0 个警告**。

真实条目上的反向控制(跑在 rsync 副本上,仓库保持干净):

```
source.kind=zip                 → team-entry-schema (error)
install/updatePolicy 出现       → team-entry-schema (error)
requiredClientVersion 漂移      → legacy-consistency (error)
memberCount 漂移                → legacy-consistency (error)
provenance ref 漂移             → legacy-consistency (error)
可安装但无不可变 ref            → installable-evidence (error)
evidencePath 在未 pin 的 pointer → license-evidence (warning)
```

另用**客户端真实校验器**(`parseMarketTeamEntry`,不是快照)验证条目通过,且多写一个字段会被拒。

## 公开信息边界 / Public information boundary

全树扫描无新增命中。团队内容使用「某某科技(北京)有限公司」这类标准中文占位。

---------

Co-authored-by: yi-ge <mizan57533@gmail.com>
2026-09-01 04:15:45 -04:00
a205ef20f0 feat: 迁移统一目录元数据契约 (#102)
## 中文

- 为 System Agent、34 个 Builtin Skill、28 个 Pointer/Collection 条目增加 catalog
sidecar
- 覆盖 147 个 collection child,并固定可证明的来源;无法证明的内容保持 listing-only/unknown
- 增加 strict Schema、validator、collection check 与 CI 完整性门禁

## English

- Add catalog metadata sidecars for the System Agent, 34 built-in
Skills, and 28 pointer/collection entries
- Cover 147 collection children while keeping unverifiable facts
listing-only or unknown
- Add strict schemas, validators, deterministic collection checks, and
CI completeness gates

## 验证 / Verification

- Catalog validator 17/17
- Collection generator 4/4
- 63 sidecars, 147 children, zero errors
2026-08-31 04:10:49 -04:00
40944ca1d3 fix(code-intelligence): 强制 Lsp 优先并要求降级显式声明 (#101)
## 背景 / Background

desirecore/desirecore#2248:真机测试中 code-intelligence 技能被绕过——模型未加载技能、未解锁
`Lsp`,直接用 Glob/Grep 文本检索回答语义导航问题,用户无从知道拿到的不是语义结果。

In real-device testing the skill was bypassed entirely: the model
answered semantic-navigation questions from Glob/Grep text matching
without loading the skill or unlocking `Lsp`, with no disclosure to the
user.

## 变更 / Changes

- **description(根级 + i18n 双语)改为命令式**:语义导航请求必须先加载本技能解锁隐藏的 `Lsp` 工具,禁止未尝试
`Lsp` 就用文本检索作答(配合主仓库的技能目录 provides.tools 附注,模型在决策点即可看到该指令)
- **L1 新增「硬性规则」**(双语):`Lsp`
优先;限定允许回退的三种情形;任何回退到文本检索的回答必须向用户显式声明「结果来自文本匹配而非语义分析」及原因
- **L2 降级策略**同步引用硬性规则
- version 1.0.0 → 1.1.0;重算 i18n `source_hash`(`translated_by: human`
保持锁定)

## 校验 / Validation

- `uv run scripts/i18n/validate-i18n.py` → OK
- `uv run scripts/i18n/translate.py --check` → code-intelligence 两
locale 均无 stale
2026-08-30 20:43:47 -04:00
ebdac6c6b1 fix(web-access): 将外部浏览器启动建议标记为仅展示 (#99)
## 中文

- 将 `debug_port_closed` 的模型可见字段从 `launchCommand` 收紧为
`manualLaunchCommand`
- 明确 `requiredAction=wait_for_user_to_launch_browser` 与
`commandPolicy=display_only_never_execute`
- 中英 Skill 与 CDP 参考文档同步要求结束回合,禁止交给 Bash、PowerShell、终端或脚本执行

## English

- Rename the model-facing closed-port suggestion to
`manualLaunchCommand`
- Define `requiredAction=wait_for_user_to_launch_browser` and
`commandPolicy=display_only_never_execute`
- Keep the English/Chinese skill and CDP reference aligned: end the turn
and never pass the suggestion to an execution tool

## Validation

- i18n validator: pass
- translation freshness check: pass
- Windows real-device evidence: the previous contract correctly detected
`debug_port_closed` but attempted a Bash launch; approval was denied
before execution
2026-08-29 23:00:58 -04:00
54716ea43a fix(skill): 修正算力配置治理流程 (#100)
## 中文

- 将算力配置流程改为 `ManageCompute` 与 `ComputeCredential set`
- 明确密钥只允许写入且工具结果保持脱敏
- 补全 GUI `mode=control` 回退、旧客户端条件化验证和升级提示
- 禁止引导 Agent 绕过 renderer Origin/token 边界

## English

- Route compute configuration through `ManageCompute` and
`ComputeCredential set`
- Keep credentials write-only and redacted from tool results
- Complete the GUI `mode=control` fallback, legacy-client validation,
and upgrade guidance
- Stop directing Agents around renderer Origin/token protections

## Validation

- Translation freshness check
- Skill i18n validation
- `git diff --check`
2026-08-29 14:26:24 -04:00
a625b5ec84 feat: govern workforce optimization with DecisionWorkspace (#98)
## Summary
- teach the workforce optimization Skill to use the canonical
DecisionWorkspace human/Agent governance flow
- declare DecisionWorkspace and OptimizationSolve capabilities while
retaining MindOptSolve compatibility
- document exact-revision artifact lineage, guarded execution,
independent validation, and human approval
- preserve the external MindOpt deployment, license, cost, and secret
boundaries

## Validation
- full i18n validation
- translation freshness check
- validator unit tests (9/9)
- git diff check

## Compatibility
Requires DesireCore 10.0.127 or newer.

---------

Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-08-29 10:48:56 -04:00
3059468526 fix(web-access): use governed external browser open tool (#97)
## 中文

### 变更
- 将 web-access 升级到 v3.4.3,并声明 `BrowserExternalOpen`
- 外部浏览器的简单打开/导航固定为 `BrowserExternalProbe` → `BrowserExternalOpen`
- 仅把点击、动态取文、提取等高级交互交给隔离 Playwright
- 同步中英文 Skill、状态表、决策树和 CDP reference

### 验证
- `python scripts/i18n/validate-i18n.py`
- `python scripts/i18n/translate.py --check skills/web-access`
- `python -m unittest scripts/i18n/test_validate_i18n.py`
- `git diff --check`

## English

### Changes
- Bump web-access to v3.4.3 and expose `BrowserExternalOpen`
- Route simple external-browser open/navigation through
`BrowserExternalProbe` → `BrowserExternalOpen`
- Reserve isolated Playwright for advanced click, dynamic-read, and
extraction workflows
- Keep the English/Chinese skill, status table, decision tree, and CDP
reference aligned

### Verification
- `python scripts/i18n/validate-i18n.py`
- `python scripts/i18n/translate.py --check skills/web-access`
- `python -m unittest scripts/i18n/test_validate_i18n.py`
- `git diff --check`
2026-08-29 07:53:59 -04:00
7026cc72ed fix(web-access): 强制 Windows 隔离 Playwright 环境 (#96)
## 中文

- 将 web-access 升级到 v3.4.2。
- L3-external 必须先创建或选择 DesireCore 隔离 venv,再进行 import、固定版本安装、复检和 CDP
attach。
- Windows 全流程只允许 PowerShell 与 venv 的 Scripts\\python.exe;禁止 Bash、裸
python/pip、pip --user、全局安装和 playwright install。
- 修正中英文 L3 汇总表,避免后置表格覆盖前置安全规则。

验证:完整 i18n validator、translation freshness、validator unit 均通过;独立复审无
P0-P2。

## English

- Bump web-access to v3.4.2.
- Require creating or selecting the DesireCore-owned isolated venv
before import checks, pinned installation, re-check, and CDP attach.
- On Windows, require PowerShell and the venv Scripts\\python.exe
throughout; forbid Bash, bare python/pip, pip --user, global
installation, and playwright install.
- Align both localized L3 summary tables so later guidance cannot
override the safety contract.

Validation: full i18n validation, translation freshness, and validator
unit tests pass; independent review found no P0-P2 findings.
2026-08-29 06:45:37 -04:00
ceeada3625 fix(web-access): 修复 Windows CDP attach 配方 (#95)
## 中文

- 将 web-access 升级到 v3.4.1
- Windows attach 明确禁止把 POSIX heredoc/`/tmp` 交给 PowerShell
- 增加 Playwright import 预检、DesireCore 隔离 venv 和 PowerShell here-string
写脚本配方
- 保持 ready 与依赖缺失分离,禁止回落内置浏览器

## English

- Bump web-access to v3.4.1
- Forbid POSIX heredocs and `/tmp` paths in Windows PowerShell attach
flows
- Add Playwright import preflight, DesireCore-isolated venv guidance,
and a native PowerShell here-string recipe
- Keep browser readiness separate from dependency availability and never
fall back silently

## Validation

- `test_validate_i18n.py`: 9/9
- `validate-i18n.py skills/web-access`: pass
- `translate.py --check skills/web-access`: pass
- Windows live-device observation: probe reached Chrome ready, then the
old recipe attempted Bash `/tmp` and PowerShell `cat <<EOF`; this PR
fixes that deterministic cross-shell failure.
2026-08-29 16:40:38 +08:00
2ccd176dad fix(web-access): 增加外部浏览器确定性前置探测 (#94)
## 中文

### 背景

L3-external 过去只用 curl 判断 9222,无法区分浏览器未安装、端口未开启、错误产品或伪 CDP
服务,也可能静默回落内置浏览器。

### 变更

- web-access 升级到 3.4.0,并要求先调用 BrowserExternalProbe
- 结构化处理未安装、端口关闭、多候选、产品不匹配、无效 CDP 与宿主不可用
- 显式浏览器不可自动替换;泛指 external 在多候选且无 ready 端口时先询问
- 所有 Playwright 配方使用 probe 返回端口和 DesireCore 隔离 Profile
- 纳入并修复 #93 的浏览器收尾规则与重复编号 finding

### 验证

- validate-i18n:通过
- translate --check:通过
- validate-i18n --online:通过
- source hash:sha256:1704b973e3a90e89
- 双语结构:31 个标题、20 个代码围栏

取代 #93;关联 desirecore/desirecore#2369。

## English

### Background

L3-external previously relied on curl against port 9222, which could not
distinguish a missing browser, a closed debug port, a different product,
or a fake CDP service, and could silently fall back to the built-in
browser.

### Changes

- Bump web-access to 3.4.0 and require BrowserExternalProbe before CDP
attach
- Handle missing installation, closed port, multiple candidates, product
mismatch, invalid CDP, and unavailable host as separate states
- Never replace an explicitly requested browser; ask when a generic
external request has multiple candidates and no ready endpoint
- Use the probe result port and a DesireCore-isolated profile in all
Playwright recipes
- Incorporate #93 browser wrap-up guidance and fix its duplicate
numbering review finding

### Validation

- i18n validation passed
- translation freshness check passed
- online validation passed
- source hash: sha256:1704b973e3a90e89
- bilingual structure: 31 headings and 20 code fences

Supersedes #93; related to desirecore/desirecore#2369.

---------

Co-authored-by: xieyuanxiang <124608760@qq.com>
2026-08-29 14:10:46 +08:00
2891f9dc06 feat(skills): 补全团队管理操作规范 (#92)
## 中文

### 变更
- 将 manage-teams 升级到 1.3.0,并设置最低客户端版本 10.0.108
- 补齐 ManageTeam 全部 14 个 action 的用途、参数与风险边界
- 增加创建前检查、工作目录选择、Smart 成员路由、组织更新、头像、团队仓库、远程同步与失败恢复流程
- 明确远程操作必须经过 ManageTeam 的原因是供应链校验与审批,而不是假设 Agent 永远拿不到凭据
- 保持 disable-model-invocation: true,只在需要管理团队时按需加载

### 测试
- uv run --quiet scripts/i18n/test_validate_i18n.py
- uv run --quiet scripts/i18n/validate-i18n.py
- uv run --quiet scripts/i18n/translate.py --check
- git diff --check

## English

### Changes
- Upgrade manage-teams to 1.3.0 and require client 10.0.108
- Cover all 14 ManageTeam actions with their parameters and risk
boundaries
- Add preflight checks, workdir selection, Smart member routing,
organization updates, avatars, team repositories, remote
synchronization, and failure recovery
- Clarify that remote operations must use ManageTeam for supply-chain
validation and approval, not because Agents can never access credentials
- Keep disable-model-invocation: true so the Skill is loaded only when
team management is needed

### Tests
- uv run --quiet scripts/i18n/test_validate_i18n.py
- uv run --quiet scripts/i18n/validate-i18n.py
- uv run --quiet scripts/i18n/translate.py --check
- git diff --check
2026-08-25 18:32:03 +08:00
bdaaa44ce1 fix(skills): 提高智能体管理能力最低客户端版本 (#91)
## 中文

- create-agent 2.6.1:最低客户端提高到 10.0.108(smartRouting + avatarImage)
- update-agent 3.2.1:最低客户端提高到 10.0.108
- clone-agent 1.0.1:最低客户端提高到 10.0.115(补偿、fixed route 与 Provider ceiling)
- action→Skill ID 映射仍不绑定版本

### 验证
- i18n validator
- translation freshness
- public information boundary review

## English

- create-agent 2.6.1 now requires client 10.0.108 for smartRouting and
avatarImage
- update-agent 3.2.1 now requires client 10.0.108
- clone-agent 1.0.1 now requires client 10.0.115 for compensation,
fixed-route, and Provider-ceiling guarantees
- The action-to-Skill-ID mapping remains versionless

### Verification
- i18n validator
- translation freshness
- public information boundary review
2026-08-25 17:25:42 +08:00
22b128f185 feat(skills): 独立维护智能体生命周期操作说明 (#90)
## 中文

### 变更
- 新增 `clone-agent` 内置 Skill,覆盖私有数据复制和团队分发边界
- 将 Smart routing、reasoning、头像和确认流程迁入 action-specific Skills
- 修正 `update-agent` 与当前 ManageAgent 白名单的漂移
- 保持所有市场 Skill 按需加载,并加入 builtin 清单

### 验证
- `uv run --quiet scripts/i18n/test_validate_i18n.py`
- `uv run --quiet scripts/i18n/validate-i18n.py`
- `uv run --quiet scripts/i18n/translate.py --check`
- 公共信息边界检查通过

## English

### Changes
- Add the built-in `clone-agent` Skill for private-data copy and
team-distribution boundaries
- Move Smart routing, reasoning, avatar, and confirmation workflows into
action-specific Skills
- Align `update-agent` with the current ManageAgent configuration
whitelist
- Keep every marketplace Skill on-demand and add the new Skill to the
built-in manifest

### Verification
- `uv run --quiet scripts/i18n/test_validate_i18n.py`
- `uv run --quiet scripts/i18n/validate-i18n.py`
- `uv run --quiet scripts/i18n/translate.py --check`
- Public information boundary review passed
2026-08-25 16:13:09 +08:00
xyx
e58c37d74f feat(web-access): 恢复 L3-external——两个浏览器由用户意图选,而非能力难度选 (#87)
## 背景 / Background

v3.0(#85)以「它存在的每一条技术理由(无批量取文通道、evaluate 不可用、截图必须串行
activate)都已被内置浏览器覆盖」为由,删除了 Python Playwright 那一层。

**作为「内置浏览器不够用时的兜底」,这个判断是对的。**
但删除时顺带丢掉了一个完全不同的用例:用户想用**他自己那个**浏览器——他的登录态在他自己的 Chrome
里,他想亲眼看着操作、随时接管。这跟能力够不够无关,内置浏览器替代不了。

真实案例:用户要求「请你操作我本地机器的外部浏览器来完成一个示例报关过程」。技能里已无此路径,模型自己也查出「无独立的 Browser*
外部浏览器工具」,仍用内置浏览器做完全程,并以「本地受管浏览器」「已启动本地浏览器」描述——用户拿到的和要的不是一回事,却无从分辨。

v3.0 (#85) removed the Python Playwright layer on the grounds that every
technical reason it existed for is now covered by the built-in browser.
**As a fallback, that judgement was right.** But the deletion also took
a different use case with it: the user wanting *their own* browser —
their login state, their window, theirs to watch and take over. That has
nothing to do with capability, and the built-in browser cannot stand in
for it.

## 改动 / Changes

把 L3-external 作为**由用户意图触发的平级选择**恢复(**不再是 fallback**):

- 恢复 `references/cdp-browser.md`(v3.0 删除,含 `connect_over_cdp` 模板与站点配方)
- 恢复 `Prerequisites: Chrome CDP Setup`,重新定位为「**仅 L3-external
需要**」,内置浏览器仍零前置条件
- 决策树的实时交互分支改为双路:用户点名外部 → L3-external;其余 → 内置(默认)
- 新增「两个浏览器,按用户意图选」对照表:是什么 / 登录态 / 用户能否看到 / 前置条件 / 是否默认
- 分层表加回 L3-external,并说明它**刻意不在默认排序里**——判据是用户点名,不是能力够不够
- 明确:CDP attach 时严禁 `browser.close()`(会关掉用户自己的 Chrome)
- 无论走哪条,措辞必须让用户能分辨实际用了哪个;禁止「本地浏览器」这类两边都像的说法

version 3.0.1 → 3.2.0

## 校验 / Validation

- `python3 scripts/i18n/validate-i18n.py` → OK: no i18n issues found
- `python3 scripts/i18n/translate.py --check` → web-access en-US
`human-locked, skipping`(无 source_hash 漂移)
- 双语同步;en-US 为 human-locked 翻译,已手工同步并按 `compute_source_hash` 重算对齐

## 公开信息边界 / Public information boundary

改动仅涉及浏览器能力边界的技术描述,无租户、客户或其他机密身份信息。

---------

Co-authored-by: Yige <a@wyr.me>
2026-08-24 11:06:54 +08:00
mashagua
98ffc8fe92 feat: 内置技能全量收录 presentation-forge (#83)
## 概述
将 PPT 工作流技能 **presentation-forge**(原 codex-ppt-skill)以 **builtin
内置技能**形态全量收录进 DesireCore 官方市场。

> 注:本 PR 最初以 entry.json pointer 形态提交,现按仓库负责人意见改为 builtin 层全量
vendoring。分支保留两个提交(pointer → builtin 转换)。

## 形态:builtin 全量 vendoring(遵循 guizang-ppt 先例)
- 全量内容进 `skills/presentation-forge/`:`SKILL.md` + `SKILL.zh-CN.md` +
`references/` + `scripts/` + `styles/`(9 套风格)+ `templates/` +
`schemas/`。
- builtin frontmatter:`version/type/risk_level/status/tags` +
`metadata.i18n`(zh-CN/en-US)+
`market.icon/category/maintainer`,`category: creative`。
- 列入 `builtin-skills.json`(33 项)。
- 附 `LICENSE`(MIT)+ `NOTICE.md` +
`_desirecore/{frontmatter.yaml,upstream.json}` 溯源。
- 溯源 commit:`mashagua/presentation-forge@b7b1a9c`(MIT)。
- 排除非运行内容:`tests/` 夹具、未被任何 vendored 文件引用的 1.3MB 流程图、Codex `agents/` 绑定。

## 变更
- 新增 `skills/presentation-forge/`(全量内容,约 440KB)
- `builtin-skills.json`:新增 `presentation-forge`(32 → 33)
- `manifest.json`:`stats.totalSkills` 60 → 61,`version` 1.2.26 →
1.2.27,`lastUpdated` → 2026-08-10
- `README.md`:built-in 32 → 33、external 29 → 28、total 61 不变,两处代码块同步

## 验证
```
uv run scripts/i18n/validate-i18n.py
OK: no i18n issues found.
```
stats 公式核对:entry.json 目录 28 + SKILL.md 目录 33 = 61 = manifest.totalSkills
✓

---------

Co-authored-by: Yige <a@wyr.me>
Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-08-23 23:31:26 +08:00
6538f01555 docs(web-access): sync site-pattern baselines off the retired Playwright fallback (#86)
## 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
2026-08-19 20:22:27 +08:00
0d4d7b208b feat(web-access): v3.0 内置浏览器能力面同步——删除 Python Playwright 回落(S31) (#85)
## 变更内容 / What

浏览器升级计划 S31 最终验收信号:web-access 技能与内置受管浏览器新能力面对齐,**删除「用户手工启动调试 Chrome +
Python Playwright」回落路径**。

- **删除回落路径**:Prerequisites: Chrome CDP Setup、Layer 3 CDP Browser(Python
Playwright 模板)、Installation Note(pip install
playwright)整段删除;references/cdp-browser.md 文件删除;jina-reader.md 的 CDP 引用改为
page.extract-text
- **订正陈旧断言**:
- 「没有批量取文通道」→ BrowserSnapshot mode:text /
page.extract-text(maxBytes/cursor 分页,超出截断给 nextCursor)
- 「page.evaluate 基本不可用」→ 返回真实值(expression/awaitPromise,超预算截断标
truncated);仍走人工闸门
- 「截图前必须 tab.activate / 串行截图 / BROWSER_TAB_HOST_NOT_FOUND」→ S36 订正:Agent
单标签会话免 activate;多标签后台 tab 秒级报 BROWSER_VIEWPORT_UNAVAILABLE;命令超时只 stop 不
close,标签页可重试
  - 「accessibility 超限即失败」→ 尊重 depth + maxBytes 截断翻页(S8)
  - 「只有整页截图」→ clip{x,y,width,height,scale≤4} + captureBeyondViewport
- **provides.tools 加 BrowserScript**(code-mode;信任级别等同 Bash)
- **新增选用规则(D4 唯一约束机制)**:反检测站点一律优先 input.*(#1808 输入拟真 +
身份一致性);page.element 写类仅用于表单批量填充等站点不检测场景;JS 直调 el.click() 为禁止回退
- **新增 fetch.browser 配方**:page.evaluate 页面上下文跑 fetch(带 origin Cookie、同
origin、受 Grant origins 约束)——登录态取站内接口的正解
- **能力速查**:page.element 九 op / page.wait 九 until / inline wait 块 / loc=
方言 / BrowserScript / 跨源 iframe 快照(S35)
- **版本** 2.2.1 → 3.0.0(删除回落层为 breaking);source_hash
重算;required_client_version 维持 10.0.98(新能力在正文标注 10.0.112+)

## Why

v2.x 时代回落路径存在的每一条理由(无批量取文、evaluate 不可用、截图必须串行 activate)均已被
S2–S14/S35/S36 覆盖;文档继续引导用户手工起调试 Chrome 会误导新 Agent 走已废弃路径。

双语同步修改(SKILL.md / SKILL.zh-CN.md heading 数一致,i18n-validate 通过)。

- [x] CLA
2026-08-17 01:25:46 -04:00
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
xyx
27589d013d fix(skills): 修复 14 个 pointer 条目安装失败 + 7 个合集声明 children (#81)
## 背景 / Background

市场里 25 个 pointer 条目中有 **14 个点安装必然失败**,客户端返回 502「源仓库中未找到 SKILL.md(pointer
指向有误)」。

根因是 `entry.json` 的 `source` 指错:客户端按 `source.path` 定位内容(缺省则取仓库根),而这些条目的
`path` 缺失或 URL 指向了 HTML 页面,`contentDir/SKILL.md` 自然不存在。

Of the 25 pointer entries, **14 always failed to install** with a 502.
The `source` pointers were wrong: `path` was missing (so the client
looked at the repo root) or `repoUrl` pointed at an HTML page instead of
the content.

## 改动 / Changes

### 1. 补 `source.path`(5 个)

| 条目 | path | 上游 SKILL.md 实际位置 |
|---|---|---|
| `impeccable` | `plugin/skills/impeccable` | 根目录没有;`plugin/` 与
`.claude/` 两份内容逐字节一致,取中立的分发目录 |
| `ai-news-radar` | `skills/ai-news-radar` | 仓库另有 `skills/radar`,取与条目 id
对应的 |
| `taste-skill` | `skills/taste-skill` | 同名子目录 |
| `wechatpay-skills` | `wechatpay-payment-integration` | 仓库另有
`wechatpay-product-coupon` 未覆盖,见下方遗留项 |
| `luckin-my-coffee` | `my-coffee` | zip 内有一层顶层目录 |

### 2. 修正 web 类条目的源地址(2 个)

`amap-jsapi-skill` / `dingtalk-api` 原先指向 ClawHub 的**网页**(`content-type:
text/html`),客户端只在 markdown 时才写成 `SKILL.md`,HTML 会落成 `index.html`,校验必失败。

- `amap-jsapi-skill` → 改用 ClawHub 文件 API(返回 `text/markdown`)。该技能在
ClawHub 的发布包 `version.files` 只有一个 `SKILL.md`,单文件抓取正是对的形态。
- `dingtalk-api` → ClawHub 包有 38 个文件(`scripts/*.ts` 等),单文件抓不全,改指内容完整的
GitHub 上游 `ogenes/dingtalk-api` 并锁 ref。

### 3. 合集条目声明 `children`(7 个,147 个子技能)

这 7 个的上游是「一个仓库装着 N 个平级技能」,没有单一 SKILL.md 可指,靠改 `path`
修不了。配合客户端新增的合集能力(desirecore 主仓库 PR),`entry.json`
现在可声明子技能清单,市场仍是一个条目,安装时由用户勾选装哪几个。

| 条目 | 子技能数 |
|---|---|
| `marketingskills` | 49 |
| `mattpocock-skills` | 35 |
| `larksuite-cli` | 27 |
| `baoyu-skills` | 21 |
| `wecom-cli` | 7 |
| `khazix-skills` | 5 |
| `netease-skills` | 3 |

新增 `scripts/gen-collection-children.py`:按 `entry.json` 锁定的 ref
克隆上游、扫描子技能、读 frontmatter 生成 `children`。约定「仓库有顶层 `skills/` 就只扫它」——否则会收录
`larksuite/cli` 的 linter 测试夹具
`internal/qualitygate/skillscan/testdata/skills/lark-demo`。

### 4. `netease-skills` 分支修正

`repoBranch` 写的是 `main`,上游默认分支是 `master`,此前 clone 必然失败(`Could not find
main`)。

### 5. 版本号

`manifest.json` `1.2.24` → `1.2.25`。

## 验证 / Verification

- `uv run scripts/i18n/validate-i18n.py` — OK
- `uv run scripts/i18n/validate-i18n.py --online` — OK
- **真实运行的 agent-service 上逐个安装**(独立 home + standalone 服务,非模拟):18 个非合集
pointer 条目 **18/18 成功**并完整落盘;7 个合集条目 **7/7 成功**,并验证了部分安装、追加、取消勾选卸载、装到
Agent 私有目录。

## 遗留项 / Known gaps

- `wechatpay-skills` 只覆盖了 `wechatpay-payment-integration`,同仓库的
`wechatpay-product-coupon` 未上架。条目名是复数,后续可拆成两条或改成合集。
- `children[].i18n` 目前只有 `shortDesc`(取自上游
description),**没有中文名**——子技能名沿用上游 id(如 `lark-approval`),以保证与上游文档、Agent
加载路径一致。宝玉 / Matt Pocock / Marketing 三个合集的描述本身就是英文。如需中文化,可接
`i18n-translate.yml` 覆盖 `children` 字段。
- 在线校验目前只查 URL 可达性,**查不出 `path` 指向的目录里有没有 SKILL.md**——这 14
个坏条目当初就是这么一路绿灯合进主干的。建议后续给 `--online` 加这条断言。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: xieyuanxiang <xieyuanxiang123@gmail.com>
2026-08-09 16:25:20 +08:00
b1f0719d40 docs: 明确 MindOpt 外部授权与部署依赖 (#80)
## 变更说明 / Summary

### 中文

- 在 `workforce-optimization` 的发现描述、`compatibility`、中英文市场摘要和正文中明确 MindOpt
是需要独立安装/部署并取得有效许可证的外部第三方求解器。
- 明确 `MindOptSolve` 只是受治理的 Connector/Adapter,不包含 MindOpt
求解器软件、许可证、算力托管、采购或运行费用。
- 增加运行前检查:必须确认 Connector ready、capabilities 可用且部署具备当前用途所需的有效许可证;仅注册 Tool
名称不能证明依赖可用。
- 增加安全降级:外部依赖不可用时仍可完成需求澄清和建模制品,但不得调用求解器、伪造 `SolveResult` 或宣称可行/最优/收益。
- 在 `AGENTS.md` 与 `CLAUDE.md` 中固化通用的第三方商业依赖披露规则。
- Skill 版本升级到 `2.3.3`,Market 版本升级到 `1.2.24`。

MindOpt 官方文档说明运行前必须取得有效许可证,并同时提供商业许可和社区许可;适用范围与采购要求以官方条款为准:

https://opt.aliyun.com/doc/mindopt/latest/cn/html/installation/license.html

### English

- Discloses in discovery metadata, `compatibility`, localized
marketplace text, and runtime instructions that MindOpt is separately
installed/deployed third-party solver software requiring a valid
applicable license.
- Clarifies that `MindOptSolve` is only the governed connector/adapter
and does not bundle the solver, license, hosted compute, procurement, or
operating costs.
- Adds a preflight gate for connector readiness, required capabilities,
and applicable licensing.
- Defines safe degraded behavior: requirement and model artifacts may
still be produced, but no solver call or fabricated solution claim is
allowed.
- Adds a generic third-party dependency disclosure rule to both
repository instruction entrypoints.
- Bumps the Skill to `2.3.3` and the Market to `1.2.24`.

The official MindOpt documentation states that a valid license is
required and documents both commercial and community licenses;
eligibility and purchasing remain governed by those official terms:
https://opt.aliyun.com/doc/latest/en/html/installation/license.html

## 验证 / Validation

- `uv run --quiet scripts/i18n/test_validate_i18n.py` — 8 passed
- `uv run --quiet scripts/i18n/validate-i18n.py` — no issues
- `uv run --quiet scripts/i18n/translate.py --check` — current; human
translation hash aligned
- `git diff --check`
- Public-worktree customer-identity/path scan — 0 matches
2026-08-08 00:13:56 +08:00
20b29df7a4 feat: 发布通用人效与资源优化能力
增加跨行业的人效与资源优化需求澄清、模型求解与独立验收能力,并固化公共市场的信息边界与发布前检查。
2026-08-07 23:55:01 +08:00
2e15720442 fix(web-access): 门槛降回 10.0.98——#77 让新装客户端整个失去浏览器能力 (#78)
真机测试发现的回归,由 #77 引入。

## 现象

全新安装的 10.0.99 客户端上,`BrowserManage` / `BrowserAct` / `BrowserSnapshot`
**完全不存在**——Agent 用 `ToolSearch` 也找不到。它们是 hidden 工具,靠 web-access
技能解锁,而该技能压根没被装上。

## 因果

`sync/builtin-skill.ts:171`:本地不存在 + 客户端版本低于 `required_client_version` →
记 `skippedIncompatible` 直接 return,**不新装**。

#77 把门槛提到 10.0.100,而 **10.0.100 尚未发布**——于是所有新装的 10.0.99 及以下客户端拿不到整个
web-access,连带失去全部内置浏览器能力。

已装 2.1.1 的老用户不受影响(`:207` 那条分支保留本地兼容旧版,不更新成用不了的新版)。

## 判断失误

#77 的理由是「不提门槛老客户端会拿到教它们用不存在能力的说明」。顾虑本身成立,但两害量级差了一个数量级:

| | 后果 |
|---|---|
| 门槛低 | 文档里几条说明超前,Agent 试一次失败、换个路子——**能力还在** |
| 门槛高 | **整个技能不存在**,Agent 连试都没得试 |

## 修法

门槛降回 10.0.98,超前的四条能力改用行内「需
10.0.100+」标注,并写明老版本上的替代做法。老客户端既拿得到技能,也不会被文档误导。`version` 2.2.0 → 2.2.1。

---

Regression from #77 found during real-machine testing: raising
`required_client_version` to an unreleased version made the whole skill
fail to install on fresh clients, taking all built-in browser tools with
it.

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-07 23:54:22 +08:00
f104d18165 feat(web-access): 截图像素直接给、clip 元素级裁剪、artifact 用绝对路径 (#77)
跟进 desirecore/desirecore#1741 与 #1756(均已合入 dev,随 10.0.100 发布)。

## 变更 / Changes

- **截图像素直接给**:现在作为 image 块进工具结果,视觉模型当场就能看。补一节说明什么时候才需要再 `Read`
一次(结果明确写了未附带像素、或需要原始分辨率),避免同一张图在上下文里占两份。同时说明非视觉模型下会明确告知「你看不到它的内容」,此时不要凭空描述画面。
- **元素级裁剪不再需要 `cdp.raw`**:`BrowserSnapshot` 的
`options.clip={x,y,width,height,scale}` 直接支持,`scale` 最大 4(已对照
`command-params.ts:333` 核实)。
- **artifact 改用 `result.artifact.absolutePath`**:原文教的
`${DESIRECORE_ROOT}/...` 在路径展开里根本不认(只认 `~` / `$HOME` /
`$USERPROFILE`),拼出来是相对路径、`Read`
报「文件不存在」;原文给的还是目录,照抄会撞上「路径不是文件」。真机实测两条都踩过。

## 刻意未改 / Deliberately unchanged

「用户真实鼠标会抢控制权」一条**保持原样**——修它的 desirecore/desirecore#1740 尚未合并,现状描述仍然准确。

## 版本门控 / Version gating

`required_client_version` 10.0.98 → **10.0.100**(含上述两个 PR 的最早版本)。market
是运行时拉取的,不提门槛会让老客户端拿到教它们用不存在能力的说明。

---

Follows desirecore/desirecore#1741 and #1756 (both merged to dev,
shipping in 10.0.100). Screenshot pixels now arrive as an image block
directly; element-level cropping no longer needs raw CDP; artifact reads
use the absolute path from the receipt. The 'real mouse steals control'
note is intentionally left as-is because its fix (#1740) is not merged
yet.

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-07 23:54:22 +08:00
a1782c143d fix: 移除 Skill 源仓库中的 Codex 命名
已将源仓库重命名为 desirecore-agent/watch-video-skill,并通过全部市场校验。
2026-08-07 23:54:22 +08:00
4faba8602f feat: 收录视频观看 Skill
通过市场 i18n/schema validator、自动翻译检查和 Copilot review gate;source pointer 固定到 desirecore-agent/codex-watch-video-skill 的 main commit。
2026-08-07 23:54:22 +08:00
b2865d501d fix(web-access): 修正内置浏览器工具文档与客户端版本门控 (#73)
跟进 desirecore/desirecore#1718 的 Codex review,修掉 web-access v2.1.0 正文中 4 处与真实工具实现不符的地方(均对照 desirecore@origin/dev 源码核实):

- 补 market.required_client_version: 10.0.98,避免老客户端把可用的 v2.0 换成调用不存在工具的说明
- BrowserImport 动作名修正:真实枚举 discover/create_plan/dry_run/apply/rollback/list_plans,无 'plan';domains 由 create_plan 消费;planId 前缀 bimp_
- input.wheel 示例补 x/y(schema 硬要求),capabilities 示例补 browser.input.pointer.wheel 并说明显式列表是做减法
- BrowserImport 降级为需额外授权的可选路径:browser.import.* 不在 agentDefault 内且 agentElevated 在工具层零引用,登录态默认改回 L3-fallback CDP

skill 2.1.0 → 2.1.1,manifest 1.2.19 → 1.2.20,human-locked 的 en-US 已重新对齐 source_hash。
2026-08-07 23:54:03 +08:00
mashagua
b4cafe4edd feat: 新增宝玉 Skills 与 Marketing Skills 两个第三方入口 (#64)
以 entry.json pointer 形式收录两个第三方技能合集(均为 MIT、community、SHA 锁定):

- baoyu-skills(JimLiu/baoyu-skills,creative,上游 21 个技能)
- marketingskills(coreyhaines31/marketingskills,business,上游 49 个技能)

同步更新:
- manifest.json:totalSkills 54 → 56,version 1.2.18 → 1.2.19,lastUpdated → 2026-08-06
- README.md:external 22 → 24、total 54 → 56,外部条目清单补入两个新入口,并补回此前遗漏的 karpathy-guidelines、last30days
2026-08-07 23:54:03 +08:00
af4176bbd7 feat(web-access): 迁移到内置受管浏览器工具(v2.1.0) (#72)
## 变更说明 / Description

### 中文

客户端 v10.0.98(desirecore/desirecore#1596)停用了旧的 `BrowserListTabs` /
`BrowserNavigate` / `BrowserEval` / `BrowserClick` / `BrowserScreenshot`
/ `BrowserScroll` / `BrowserSetFiles` / `BrowserCloseTab` 及其 cdp-proxy
后端,调用会直接返回「该旧 BrowserXxx/cdp-proxy 入口已停用」。而 web-access v2.0.2 的
`provides.tools` 仍声明这批工具——技能激活后注入的是一组必然失败的工具。

本次把 `provides.tools` 换成统一浏览器工具,并同步正文与参考文档:

- `provides.tools`:`BrowserManage` / `BrowserSnapshot` / `BrowserAct` /
`BrowserImport` / `BrowserShare` + 保留 `SitePatternRead` /
`SitePatternWrite` / `LocalBookmarks`
- 中英文 SKILL 正文同步改写(L0 / 能力描述 / 决策树 / 四层策略表 / L3-fast 速查 / 反模式)
- `references/browser-tools.md` 整篇重写为新 API + 实测边界
- 5 份站点经验(小红书 / B站 / 微博 / 知乎 / 飞书)的流程改用新工具
- 版本 2.0.2 → 2.1.0,`updated_at` 更新,i18n `source_hash` 重算

**L3-fast 的定位相应收窄**:内置浏览器负责「到达 + 交互 + 截图 + 隔离」,抽取长正文仍回落 Jina
Reader(公开页)或 Playwright(登录态)——理由见下方实测。

### English

Client v10.0.98 retired the legacy `BrowserXxx` tools and the cdp-proxy
behind them, so web-access v2.0.2 was injecting a set of tools that
always fail. This PR migrates `provides.tools` to the unified browser
tools and rewrites the body, the browser-tools reference, and the five
site-pattern playbooks accordingly. L3-fast is re-scoped to
navigation/interaction/screenshots; bulk text extraction still falls
back to Jina Reader or Playwright.

## 测试方式 / Test Plan

在客户端 v10.0.98 + `electron-embedded` Provider 上实测:

- [x] `provides.tools` 里 8 个工具 ID 全部在 builtin registry 中存在
- [x] 把本 PR 的技能装进 dev 实例,带 `skillIds:['web-access']` 驱动智能体:真实调用
`BrowserManage(create_space)` → `BrowserManage(start_session)` →
`BrowserAct(tab.navigate)` → `BrowserManage(close_session)`,全部 success
- [x] `scripts/i18n/validate-i18n.py` 全仓库通过(中英文标题数一致、source_hash 一致)

文档中记录的边界均来自实测,而非推测:

| 边界 | 实测现象 |
|------|---------|
| 截图前必须 `tab.activate` | 标签页默认停在 `(-10000,-10000,1x1)`,直接截图卡满 30s
deadline 并触发 `browser.host.gone`,之后全部 `BROWSER_TAB_HOST_NOT_FOUND` |
| `page.evaluate` 不是取文通道 | 每次调用需人工审批;字符串/对象返回值被替换为
`[REDACTED:browser-runtime-value]`,仅 number/boolean/null 穿透 |
| `accessibility` 快照真实页面不可用 | example.com 正常返回 StaticText;维基百科条目一律
`BROWSER_RESULT_TOO_LARGE`(2 MB 上限,且 `depth` 参数被宿主忽略) |
| `semantic` 快照不含正文 | 只列 button / input / a 等可交互元素 |

## 风险与回滚 / Risk and rollback

- 纯技能内容变更,无脚本或清单结构改动
- 需要客户端 v10.0.98+;旧客户端装到本版会拿到一组不存在的工具名(旧客户端上原本那批工具也已失效,不构成回退)
- 回滚即 revert 本 PR
2026-08-07 23:53:28 +08:00
413f2cc00b fix(skills): 统一服务图标为纯白 (#65)
## Summary / 摘要

Normalize the Configure Compute, Using Services, and Register Services
source SVG icons to pure white.

将“配置算力”、“使用服务”和“注册服务”的源 SVG 图标统一为纯白。

## Version / 版本

- Market: `1.2.16` → `1.2.17`
- Each affected skill: `1.0.2` → `1.0.3`

## Validation / 验证

- `uv run scripts/i18n/validate-i18n.py`
- `uv run scripts/i18n/translate.py --check`
- Parsed all three SVGs and asserted their only hex color is `#FFFFFF`
- `git diff --check`
2026-07-29 17:48:28 +08:00
5d50b66d55 feat: 新增代码智能内置技能 (#61)
## 变更摘要

- 新增中英文 `code-intelligence` 内置技能,按需暴露隐藏的 `Lsp` 工具
- 记录 9 种语义导航操作、目录权限边界、缺少语言服务器时的降级策略
- 要求客户端版本 `10.0.94`,避免旧客户端安装后缺失工具
- 更新内置技能清单、市场统计和版本

## 验证

- `uv run --with httpx --with ruamel-yaml scripts/i18n/validate-i18n.py`
- `uv run --with httpx --with ruamel-yaml scripts/i18n/translate.py
--check`

## Summary

Adds the bilingual `code-intelligence` built-in skill, exposes the
hidden `Lsp` tool only when the skill is active, documents its
permission and fallback behavior, and updates the market manifest and
counts.
2026-07-22 20:03:56 +08:00