Commit Graph

231 Commits

Author SHA1 Message Date
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
0d0e745ef0 chore(invoice-organizer): 1.0.4 —— pin 到内容仓库合并提交 (#191)
发票整理助手内容仓库 desirecore-agent/invoice-organizer#1 已合并为 553ce87。
三处 ref 同步 pin 到该提交;latestVersion 与 release.version 升到 1.0.4;
reviewedAt 两处与各时间戳更新到 2026-09-29,保持结构化形态。
校验器 0 error,agents=7。

1.0.4:同票多载体先读 OFD、补两族 OFD 标引键名、航空电子行程单按计税依据拆分
(民航发展基金记入新增的 otherCharges)、必印字段为空不算通过且多轮只补全不清空。
2026-09-29 04:05:13 -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
6cd60a7141 feat: 新增外部条目上游健康检查与每周巡检工作流 (#188)
## 背景
外部条目只存上游指针,上游仓库被删除、分支被重写或技能目录移动时,客户端安装会静默失败,目前没有任何机制能发现(例如
`dingtalk-cli` 的上游已 404,见修复 PR)。

## 变更
- **`scripts/catalog/check_upstream_health.py`**:只读,逐个检查
`skills/`、`agents/`、`teams/` 下的 `entry.json`:
- 失效(退出码 1):`gone` 上游不存在 · `bad-branch` 分支不存在 · `bad-ref` 固定提交无法获取 ·
`bad-path` `source.path`、根 `SKILL.md` 或 children 路径在分支最新提交下缺失
- 提示:`unreachable` 网络错误(不等于失效)· `new-skill` 集合有未声明子技能(发现规则直接复用
`gen-collection-children.py` 的 `discover_children`,两者结论一致)· `outdated`
固定 ref 落后于分支 · `unpinned` 未锁定 ref
  - 只稀疏检出 `SKILL.md`,39 个条目本地全量运行约 12 秒
- **`scripts/catalog/test_check_upstream_health.py`**:9 个基于本地 Git
仓库的单测,已加入 `i18n-validate.yml`。
- **`.github/workflows/upstream-health.yml`**:每周一 01:23 UTC 运行(可手动触发),仅在
`desirecore/market` 运行:
- 报告写入 Job Summary,并维护唯一一个带 `upstream-health` 标签的
Issue:有待处理项时创建或更新,全部正常时评论并关闭
  - 有失效条目时任务标红
- 权限仅 `contents: read` + `issues: write`,**不改写任何目录文件**;修复与 `source.ref`
更新仍通过评审 PR(与固定 ref 的审查语义一致)
- README 中英文补充用法。

## 当前主干的检查结果
- 失效 1:`dingtalk-cli`(已有修复 PR)
- 未声明子技能 3:`khazix-skills`、`marketingskills`、`mattpocock-skills`
- 可更新 21 个,未锁定 1 个
- `amap-jsapi-skill`、`luckin-my-coffee` 在本地因代理显示 `unreachable`,需要 CI
环境确认

## 验证
```
uv run scripts/catalog/test_check_upstream_health.py   # Ran 9 tests OK
uv run scripts/catalog/check_upstream_health.py        # 如上
uv run scripts/i18n/validate-i18n.py                   # 0 error(s)
```

🤖 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 16:13:14 +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
5dcf5c2087 docs: split and expand English and Chinese market READMEs (#183)
Split the market documentation into synchronized English and Simplified Chinese READMEs. Expand getting started, catalog contracts, localization, contribution and validation guidance, security boundaries, and licensing. Replace stale inventory snapshots with authoritative references.
2026-09-19 21:20:35 +08:00
eb4aa627c6 docs: 同步 README Agent 与 Team 统计 (#182)
## 概述

同步 README 市场摘要与实际目录及 `manifest.json`:

- Agent:5 → 7,补充 `mimo-model-quota-monitor`、`tender-review-assistant`
- Team:1 → 2,补充 `biao-shu-lian-he-shen-cha`
- 将单数 `Team` 调整为复数 `Teams`

## 验证

- `uv run --quiet scripts/catalog/test_validate_catalog_metadata.py`(47
tests passed)
- `uv run --quiet scripts/catalog/validate_catalog_metadata.py
--require-complete`(0 errors)
- README 摘要名称与目录逐项比对通过
2026-09-19 19:43:29 +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
afa4be0aaa Pin tender-review team evidence-delivery release (#162)
Update the published team pointer to the reviewed team revision that
locks Lead and Evidence 0.1.1. Preview wording remains until
clean-install end-to-end acceptance is complete.

---------

Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-09-19 19:16:49 +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
0897028856 release: contract review team 0.1.36
## Why\nPublish the intake-gate scope fix through the official market
pointer.\n\n## Changes\n- point team entry and catalog metadata to team
release 0.1.36\n- update contract-intake member to 1.0.6\n- preserve
tracked DOCX, parallel risk/jurisdiction, and human-review
disclosures\n\n## Validation\n- validate_catalog_metadata.py
--require-complete (0 errors, pre-existing warnings only)\n- python -m
unittest scripts.catalog.test_validate_catalog_metadata (47 passed)\n-
git diff --check
2026-09-15 11:58:29 -04:00
0008b05376 release: contract review team 0.1.35
All release checks passed; publishes the refactored O0-O5 contract review team.
2026-09-15 10:48:05 -04:00
b5b1e03c5f release: contract review team 0.1.34 (#178)
## Why
The published contract review team must reconcile redline delivery state
after `ExportRedlineDocument` succeeds.

## What changed
- publish team 0.1.34 at upstream ref 92cb41f
- update Lead pointer to 1.0.20 at cf11ca6
- keep source-pointer-only distribution and existing governance metadata

## Validation
- uv run scripts/i18n/validate-i18n.py
- uv run scripts/catalog/test_validate_catalog_metadata.py (47 passed)
- uv run scripts/catalog/validate_catalog_metadata.py (0 errors;
existing warnings)
- uv run scripts/i18n/translate.py --check
2026-09-15 02:24:26 -04:00
a34f5a933a chore: publish contract review team 0.1.33 (#177)
## Why
Publish the lead tool-permission fix so newly installed contract-review
teams can pass `ExportRedlineDocument` through the orchestrator to the
independent reviewer.

## What changed
- Point the official team entry at team commit
`948f61c6c2d9ea101023e66c6a8261288d2cfab7`.
- Publish version 0.1.33 and lead member version 1.0.19.

## Validation
- Team source `npm run check:gates` passed before this market update.
- Entry diff reviewed and source ref is a 40-character commit SHA.
2026-09-15 01:35:15 -04:00
cd3c8d759b chore: publish contract review team 0.1.32
## Why
Publish the corrected contract review team release after the newcomer
run found stale coverage matrix state.

## Change
- Team 0.1.32 points to team merge
`821f999b087c9a740b3b209963f5f123a3cc694d`.
- Lead member 1.0.18 is listed in the catalog.

## Validation
- `git diff --check`
2026-09-15 10:25:23 +08:00
1e7ac2034b release: publish contract review team 0.1.31
Publish contract review team 0.1.31.
2026-09-14 21:05:39 -04:00
2b69efe512 release: publish contract review team 0.1.30
Publish team lock and tracked redline reporter delivery.
2026-09-14 20:07:53 -04:00
e0f9ec90fa publish: contract review team 0.1.29
Checks passed; Copilot produced no file comments after rerun. Published the KPI-driven Lead update.
2026-09-14 18:14:40 -04:00
94f5b34d6c publish: contract review team 0.1.28 (#172)
This release publishes contract-review-team 0.1.28 from immutable team
commit f088da9eb61d084470e8ede578e73c8cd65b57cb.

Changes:
- Lock Lead 1.0.16 with bounded O0→O4 orchestration and receipt/matrix
synchronization.
- Lock jurisdiction-auditor 1.3.0 and risk-scanner 1.1.0 with one-turn
bounded evidence loops.
- Preserve existing intake, clause-extractor 1.1.0, and reporter
members.
- Update both entry and catalog metadata to the same full team commit
SHA.

Validation: contract-review-team npm run check:gates passes; market
validate and translate checks pass on this PR.
2026-09-14 17:22:01 -04:00
7d0d047f3e Publish contract review team 0.1.27 (#171)
## Why

The contract review team now uses the merged `clause-extractor` 1.1.0
bounded checkpoint workflow. The official market entry still pointed at
team release 0.1.26 and clause-extractor 1.0.6.

## Change

- Publish team version 0.1.27.
- Point the source ref to merged team commit
`cb25d73a0dfbfc319df6eac2d254b3dbcc790e6e`.
- Update the member projection to clause-extractor 1.1.0.
2026-09-14 15:50:58 -04:00
b72610a7b6 feat(agents): 新增 MiMo 模型余量检测智能体 / add MiMo model quota monitor agent (#168)
## 变更说明 / What this changes

新增官方 Agent 条目「MiMo 模型余量检测」,以不可变 source pointer 形态收录,内容仓库为
`desirecore-agent/mimo-model-quota-monitor`。

- `agents/mimo-model-quota-monitor/entry.json` 指向已发布提交
`911c0a226346a8157f07d5218207f16e32ea82e0`。
-
`agents/mimo-model-quota-monitor/catalog-metadata.v1.json`:provenance、MIT
许可证证据、合规审查(`reviewedRef` 与内容 ref 一致),`availability: installable`。
- `requiredClientVersion: 10.0.156`:依赖该版本起的调度完成判据、调度权限上限与内嵌浏览器操作记录修复。
- `manifest.json`:Agent 计数与更新日期。

Agent 做什么:按计划(默认每小时)读取小米 MiMo 开放平台 Token Plan 余量,结构化写入 `latest.json`
与每轮一份历史文件,在余量偏低、消耗过快、即将重置或登录失效时提醒。只读、不执行命令;遇到验证码或短信验证时停下请人处理;登录凭据只经
DesireCore 加密凭据存储的占位符注入。

Adds the official "MiMo model quota monitor" Agent as an immutable
source pointer to `desirecore-agent/mimo-model-quota-monitor` at commit
`911c0a226346a8157f07d5218207f16e32ea82e0`, with a bilingual catalog
sidecar (provenance, MIT license evidence, compliance review with
`reviewedRef` equal to the content ref, `availability: installable`) and
`requiredClientVersion: 10.0.156`. The Agent reads the Xiaomi MiMo Token
Plan quota on a schedule, writes structured results, and alerts on low
quota, fast burn, upcoming reset or an expired login. It is read-only,
runs no shell commands, stops for CAPTCHA or SMS verification, and
receives credentials only through DesireCore's encrypted credential
placeholders.

## 校验 / Validation

- `uv run --quiet scripts/catalog/validate_catalog_metadata.py
--require-complete`:0 error(既有条目的 warning 未变)。
- 条目目录内所有 40
位十六进制值只有一个,即上面的提交号(`source.ref`、`provenance.content.ref`、`governance.compliance.reviewedRef`
三处一致)。
- 内容仓库:`agent.json` 通过 agentConfigSchema;`SKILL.md` frontmatter 通过技能
Schema;`HEARTBEAT.md` 被判为实质为空(心跳不会白调模型);结果与账号 Schema 用样例和反例校验,共 19 项通过。
- 内容仓库共两个提交(首版 + SOP 失败分支表更新),不含账号标识、手机号或凭据。Git 提交元数据中的维护者邮箱是 DesireCore
组织所有公开提交一致使用的公开身份邮箱。

`validate_catalog_metadata.py --require-complete` reports 0 errors; the
entry directory contains exactly one 40-hex value, the pinned commit, in
all three places; the content repository passes agent config, skill
frontmatter, heartbeat and result/account schema checks (19 checks) and
has two commits (initial release plus the SOP failure-branch update)
without account identifiers or credentials.

## 真机验证 / Real-device verification

在 DesireCore dev 构建(10.0.156 之后的 dev,含
#2863/#2865/#2869)上安装本提交的内容,智能路由旗舰档,两个账号各一个每小时定时巡检,连续观察四轮:

| 轮次 | 结果 | 说明 |
|---|---|---|
| 账号 2 · 20:30 | ok | 经接口取到数据,`latest.json` 与本轮 history 文件通过
`result.schema.json`,history 先写、关闭会话、`latest.json` 最后写 |
| 账号 1 · 21:00 | blocked(`platform_unavailable`) |
本机网络间歇断连期间内置浏览器开不了会话;如实落盘,未新建浏览器环境、未反复填表,首轮不提醒 |
| 账号 2 · 21:30 | 失败 | 同一次断网里浏览器开不了会话,且 AI 审批上游持续 502,写 `latest.json`
被拒;平台按完成判据续跑一次后记为失败(已写入使用说明「已知限制」) |
| 账号 1 · 22:00 | blocked,已提醒 | 连续第二轮 `platform_unavailable`,按告警规则
`notify=true`、告警项 `blocked:platform_unavailable` |

四轮都没有执行任何命令,没有非预期工具调用,没有写出 `mimo-quota/` 与平台 Plan 目录以外的文件;每轮的结果文件都通过
Schema 校验。浏览器宿主把导航失败统一报成 `BROWSER_HOST_EXECUTION_FAILED` 的问题已在主仓 #2871
修复(10.0.157 起提供 `BROWSER_NAVIGATION_*` 闭集错误码),本提交的 SOP
失败分支表已随之更新:网络类失败按码重试一次、页面跳转顶替(ABORTED)先看停留页再分流、越出授权范围(ORIGIN_NOT_GRANTED
/ SCHEME_DENIED)不新建 space。旧客户端上这些码不会出现,条目行为退回原有兜底,不受影响。

Installed this commit's content on a DesireCore dev build (dev after
10.0.156, including #2863/#2865/#2869) with smart routing at the
flagship tier and one hourly schedule per account, and observed four
runs. Account 2 at 20:30 read the data through the API; `latest.json`
and the per-run history file passed `result.schema.json`, with history
written first, the session closed, and `latest.json` written last.
During a local network outage, account 1 at 21:00 could not open a
browser session and recorded `blocked` / `platform_unavailable` without
creating environments or retrying the login, and without notifying on
the first round; account 2 at 21:30 hit the same outage plus sustained
502s from the AI approval upstream, so its `latest.json` write was
denied and the run was recorded as failed after one platform
continuation (now listed under known limitations); account 1 at 22:00
was the second consecutive `platform_unavailable` and notified with
`blocked:platform_unavailable`. No run executed a command, called an
unexpected tool, or wrote outside `mimo-quota/` and the platform Plan
directory, and every result file passed schema validation. The browser
host reporting all navigation failures as
`BROWSER_HOST_EXECUTION_FAILED` was fixed in the main repository in
#2871 (closed-set `BROWSER_NAVIGATION_*` codes from 10.0.157), and the
SOP in this commit was updated accordingly: network-class failures retry
once by code, a navigation replaced by a page jump (ABORTED) inspects
the landed page before branching, and out-of-grant targets
(ORIGIN_NOT_GRANTED / SCHEME_DENIED) never create a new space. On older
clients these codes simply do not appear and the entry falls back to the
previous behavior.
2026-09-12 16:13:34 -04:00
f58ef12edf Publish preparation guidance correction 0.2.1 (#170)
Pin the reviewed Entry patch prompted by a real Qwen consultation:
distinguish full tender documents from a notice/invitation and describe
useful outcomes without defect-free assurance. Catalog validation
passed; team member pins are unchanged.

Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-09-12 14:50:05 -04:00
c03cc5da49 Publish outcome-quality tender team 0.2.0 (#169)
Ordinary tender review was blocked by mandatory TaskSpec preparation,
metadata preflight, fixed report packages and runtime receipts, while
the business quality of delivered opinions remained insufficiently
explicit.

This release accepts clear natural-language assignments and defines
concrete goals, good and bad outcomes, evidence expectations and focused
corrections for each role. Chat, tables and files are valid
deliverables. Specialist calculations and legacy structured-export
validators remain available for their specific purposes. It removes
obsolete business input contracts and updates the corresponding
bilingual guides.

Validation was performed after the full multi-repository modification:
JSON/configuration and document-link checks, targeted calculation
regressions, independent content review, and eight synthetic
paper-evaluation scenarios (8/8 after fixing informational-only entry
handling and residual visual preflight/human gates). Paper evaluation is
not a live DesireCore/Qwen or real-tender accuracy result. No real bid
package was tested.

---------

Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-09-12 14:36:45 -04:00
d18cdbf253 Docs: publish tender project guide release (#164)
Advance the team source pointer and matching catalog provenance/review
reference to the merged bilingual project-guide commit.

Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-09-11 05:35:25 -04:00
5b6ea80f6b Pin tender-review team evidence-delivery release (#163)
Update the published team pointer to the reviewed team revision that
locks Lead and Evidence 0.1.1. Preview wording remains until
clean-install end-to-end acceptance is complete.

Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-09-11 04:59:53 -04:00
dabdcc4b99 Publish tender review team and usage docs
Publish the reviewed tender review team pointer, bilingual usage docs, and provenance sidecar after catalog/i18n/Copilot checks pass.
2026-09-10 16:42:52 -04:00
18f2f2243e feat: add tender review team preview (#160)
## What this changes

Adds the tender-review team and its onboarding entry to the official
Market catalog as an immutable source pointer, plus bilingual catalog
sidecars.

- `teams/biao-shu-lian-he-shen-cha/entry.json` points to the published
team commit `7ee5650b066cdee385288a722b8cbd8e1947d0fe`.
- `agents/tender-review-assistant/entry.json` points to assistant commit
`4b6855d2edb535f81c29847e06145c0da87942d0`.
- Both entries include bilingual descriptions, privacy boundaries and
`requiredClientVersion: 10.0.155`.
- The listing is deliberately `pointer` / preview. It does not claim the
v10.0.155 release is fully green or production-certified; newcomer
qualification remains pending.

## Validation

- `python3 scripts/catalog/validate_catalog_metadata.py --json` — 0
errors (existing catalog warnings unchanged).
- Market entry and both `catalog-metadata.v1.json` sidecars validate
against the current client/catalog schemas.
- Published source repositories and full commit pins were checked before
creating this branch.

---------

Co-authored-by: yige <yige@yigedeMacBook-Neo.local>
2026-09-10 15:45:40 -04:00
e111eb31f8 release: publish contract review team 0.1.26 (#159)
发布合同审查团队 v0.1.26 市场元数据。

团队版本、成员版本、来源提交和审阅引用均锁定至已合并的 Team 提交;发布时间和远端观测时间以可复核 Git 事实更新。

验证:catalog/i18n 校验通过,JSON 与空白检查通过;独立审阅 P0--P3 均为零。

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: yi-ge <6657330+yi-ge@users.noreply.github.com>
2026-09-08 07:56:50 -04:00
06929d16d6 release: publish contract review team 0.1.25 (#158)
问题:合同审查 Team 已发布 0.1.25 并锁定统筹官 1.0.13;市场仍指向 0.1.24,新用户无法安装经过推理兼容性修复的版本。

改动:将市场 entry 与 catalog sidecar 更新为 0.1.25,并以 Team 合并提交
0ce23190297d2b5918a91f2053a5ee2a9de264a7 作为唯一发布指针。

验证:JSON、catalog/i18n、镜像字段与公开信息扫描通过;独立 Terra review 通过。全局 collection
检查仍有4个未改外部集合陈旧项,和本发布无关,未将其记为通过。
2026-09-08 03:20:26 -04:00
8d0cedaeeb fix: publish contract review team 0.1.24 (#157)
## Why

The C02 newcomer test exposed a missing-material preflight defect in the
contract-review lead. The corrected team release is already merged as
0.1.24; this PR publishes the exact team ref to the market.

## What changed

- Update the market pointer and catalog sidecar to contract-review-team
0.1.24.
- Pin both metadata surfaces to
`e096a74a482b55266753b3b93e179f9cac2f0ecd`.
- Publish contract-review-lead 1.0.12 in the team roster.

## Validation

- Parsed both market JSON files.
- Verified pointer, provenance, and reviewed refs are identical.
- Verified the remote team `main` ref matches the published pointer.
- Ran the catalog and i18n validators successfully; they reported only
pre-existing catalog warnings outside this team.
- Ran `git diff --check`.

## 中文说明

将市场中的合同审查团队发布指针升级到 0.1.24,并锁定已合并的团队提交。该版本包含统筹官 1.0.12
的无材料零工具咨询修复;entry、sidecar 的来源与审阅提交已一致,市场校验通过。
2026-09-07 23:32:33 -04:00
4940c8a82d 发布合同审查团队 0.1.23
## 中文

### 背景
合同审查团队已发布 0.1.23,锁定 `contract-intake` 1.0.2 的 YAML 安全与解析声明治理修复。市场条目仍指向团队
0.1.22,导致新用户安装不到修复版本。

### 变更
- 市场条目 `latestVersion` 与 metadata release version 更新为 `0.1.23`。
- source、provenance 与 reviewedRef 更新为团队合并提交
`67805f39bae1e76a726fcbeef766c743cc020bc7`。
- 条目成员版本同步 `contract-intake` 1.0.2。
- 更新时间戳更新至本次团队发布。

### 验证
- 市场 i18n 校验:0 errors(既有 129 warnings)。
- catalog metadata 单元测试:47 tests,全部通过。
- collection generator 单元测试:4 tests,全部通过。
- catalog metadata validator:0 errors(既有 warning)。
- translate `--check`:通过。
- `git diff --check` 与凭据扫描:通过。
- `gen-collection-children.py --check` 发现 4 个既有外部 collection
stale(baoyu-skills、larksuite-cli、marketingskills、wecom-cli),本次未修改这些目录。

## English

### Background
Contract Review Team 0.1.23 is released with the `contract-intake` 1.0.2
YAML safety and parser-claim governance fix. The market listing still
pointed to 0.1.22, so new installs would miss the fix.

### Changes
- Update the market entry and metadata release version to `0.1.23`.
- Update source, provenance, and reviewedRef to team merge commit
`67805f39bae1e76a726fcbeef766c743cc020bc7`.
- Sync the entry member version for `contract-intake` to 1.0.2.
- Refresh release timestamps.

### Validation
- Market i18n validation: 0 errors (129 pre-existing warnings).
- Catalog metadata unit tests: 47 passed.
- Collection generator unit tests: 4 passed.
- Catalog metadata validator: 0 errors (pre-existing warnings).
- `translate --check`: passed.
- `git diff --check` and credential scan: passed.
- `gen-collection-children.py --check` reports four pre-existing stale
external collections; none are touched by this change.
2026-09-07 11:18:54 -04:00
d46d1a77d3 发布合同审查团队 0.1.22
市场校验、翻译检查与 Copilot review 全部通过。
2026-09-07 09:36:30 -04:00
12a70d4418 release: contract review team 0.1.21
Publish corrected member content hashes.
2026-09-06 21:59:08 -04:00
5934e479fd release: contract review team 0.1.20
Publish market metadata for team 0.1.20.
2026-09-06 21:36:13 -04:00
d4952e82f4 release: contract review team 0.1.19
GPT-Reserve review PASS; market validators and Copilot gate passed.
2026-09-06 20:25:50 -04:00
0683e1bf31 release: contract review team 0.1.18 (#151)
## Why
Publish the reviewed contract review team fix that was validated by a
fresh final18 real run. The prior run correctly fail-closed when
reporter artifacts escaped the lead case root and clauses.yaml was not
parseable.

## Changes
- bump marketplace entry/catalog to team 0.1.18
- point source/provenance/governance refs to merged team commit
6aa93bf11a6e37cc9d0444e3335ba953bee0a61f
- expose lead 1.0.10, clause 1.0.5, reporter 1.0.4 member versions
- retain legal disclaimer and source-pointer-only distribution

## Validation
- catalog validator exit 0
- i18n validator exit 0
- targeted JSON/ref assertions
- git diff --check
2026-09-06 19:20:54 -04:00
e9c1048a6a release: publish contract review team 0.1.15
Independent GPT-Reserve review passed; targeted validators and ref assertions passed.
2026-09-06 17:37:27 -04:00
3160e703d9 release: publish contract review team 0.1.14
Merged after independent GPT-Reserve review (P0/P1/P2/P3=0) and all market checks passed.
2026-09-06 16:32:55 -04:00
be1904d567 release: publish contract review team 0.1.13 (#148)
## 变更

- 更新合同审查团队市场条目至 `0.1.13`。
- `source.ref`、provenance content ref、governance reviewedRef 统一锁定团队合并提交
`91f576d8d5a30984d138752d32cc74929771a213`。
- roster 将 `review-reporter` 更新至 `1.0.2`。
- 对外说明评分回执的完整回读与 `REJECT-SCORECARD-YAML` fail-closed 闸门。

## 验证

- `uv run scripts/catalog/validate_catalog_metadata.py --json`:exit 0,0
errors(保留既有 warnings)。
- `uv run python scripts/catalog/test_validate_catalog_metadata.py`:47
passed。
- `uv run python scripts/i18n/test_validate_i18n.py`:19 passed。
- `uv run python scripts/catalog/test_collection_generator.py`:4 passed。
- entry/catalog JSON、ref/version 一致性断言与 `git diff --check` 通过。
- 团队 PR #26 与 reporter PR #3 已由 GPT-Reserve 独立复审并合并。
2026-09-06 14:50:12 -04:00
74466d1ac9 refactor(invoice-organizer): 迁出为独立仓库,条目转真 pointer / move to standalone repo (#140)
## 背景 / Background

`invoice-organizer` 是 market 里最后一个 inline 形态的第三方 Agent。它的
`provenance.content` 是指向 market 自身的 **self-pointer**(`url=market.git`,
`path=agents/invoice-organizer`)——治理字段已经按 pointer 写,内容却还在 market 里。本 PR
让两者一致。

## 改动 / Changes

内容迁到
**[desirecore-agent/invoice-organizer](https://github.com/desirecore-agent/invoice-organizer)**
@ `5ac1e29`,条目收敛为 3 个文件(`entry.json` + `catalog-metadata.v1.json` +
`assets/avatar.webp`)。

## pointer 形态的三处强制改动

`agent.json` 直接过 `agentConfigSchema`(根级 `additionalProperties:
false`),实测改完 `validateAgentConfig` 返回 `success: true`:

- **剥离 10 个市场字段**:`category` / `tags` / `updatedAt` / `maintainer` /
`installPolicy` / `updatePolicy` / `i18n` / `persona` / `changelog` /
`contentSource`
- **`id` 从 slug 换 UUID**
- **`avatar` 从 `{t,bg,image}` 换 `{char,color}`**:原 `bg` 是 `#34C759 →
#007AFF` 的绿蓝渐变,取起点绿色

## ⚠️ 一个必须补的兜底 / A gap this migration would otherwise open

原条目只有 `USAGE.zh-CN.md` 和 `USAGE.en-US.md`,**没有无后缀版本**。

pointer 形态下这两份都抓不到:

1. `fetchAgentRepoData` 总是抓无后缀 `USAGE.md`;`USAGE.<locale>.md` 的探测列表由
`extractDeclaredLocales` 从**上游 agent.json 的 `i18n.locales`** 得出
2. 而 pointer 的 `agent.json` 不能有 `i18n`——`agentConfigSchema` 顶层无此键且根级
`additionalProperties: false`
3. `readAgentDetailFromPointer` 调
`resolveUsageDocFromFiles(repoData.usage, locale)` 时**不传
localeHints**,回退链只剩 `locale → 无后缀`

不处理的话,使用说明会在详情页**彻底消失**。因此上游新增无后缀 `USAGE.md` 兜底(内容同
`zh-CN`,`source_locale` 就是 zh-CN),两份 locale 版本作为事实源保留。

**代价如实记录**:en-US 用户会从看到英文版降级为看到中文版。根因在平台侧,建议后续补齐
`readAgentDetailFromPointer` 的 locale hints,届时两份 locale 版本自动生效,无需再动条目。

## 准入 / Availability

**维持 `installable`**,证据六项自检全部通过:

```
content.ref == entry.source.ref                 ✅ 5ac1e29d3
compliance.reviewedRef == content.ref           ✅
timestamps.reviewedAt == compliance.reviewedAt  ✅ 2026-09-06
availability                                    ✅ installable
license known + licenseEvidencePath: LICENSE    ✅
provenance 不再指向 market 自身                  ✅
```

`LICENSE` 随内容迁到上游——与 `feishu-orchestrator` 一致,`licenseEvidencePath`
相对的是内容仓库而非条目目录。

## 已安装用户影响 / Impact on existing installs

`timestamps.releasePublishedAt` 是
2026-09-06(今天),实际安装量应为零。`provenance.content.url` 变更会影响已安装条目的 ownership
校验,但在这个时间窗内无实际影响。

## 结果 / Result

market 的 `agents/` 现在只剩官方 `desirecore` 一个 inline 条目,其余全部 pointer。
2026-09-06 14:17:21 -04:00
45cdff4923 release: publish contract review team 0.1.12 (#147)
Publish Contract Review Team 0.1.12. Update entry/catalog to the merged
team ref d85b9244244c3b69718b2525b8ef4b8b7296f144, lead 1.0.8, and
current timestamps. Focused validators: metadata 47 passed, i18n 19
passed, collection 4 passed, JSON parse and diff-check pass; existing
catalog warnings unchanged.
2026-09-06 13:27:44 -04:00
5025a7322f chore(contract-review-team): publish 0.1.11
GPT-Reserve review PASS (P0=0, P1=0, P2=0, P3=0). Metadata, i18n, collection, and Copilot checks passed.
2026-09-06 12:50:43 -04:00
377b7254dc docs(feishu-orchestrator): 补 USAGE.md 使用说明并重新 pin / add USAGE.md and repin (#137)
## 背景 / Background

主仓 [#2600](https://github.com/desirecore/desirecore/pull/2600)
给市场详情页加了「使用说明」区块,按约定文件名 `USAGE.md` 消费。飞书编排助手此前没有这个文件,详情页不渲染该区块——README
里的前置条件、授权步骤与边界,只有访问 GitHub 才看得到,而真正需要它的是市场里正准备安装的人。

The market detail page gained a Usage section in desirecore#2600,
sourced from a conventional `USAGE.md`. This agent had none, so the
section stayed hidden — its prerequisites, auth steps and limits were
reachable only by visiting GitHub.

## 改动 / Changes

- 上游新增
`USAGE.md`([desirecore-agent/feishu-orchestrator@6116ad4](6116ad4ac7))
- 本条目重新 pin 到该 commit,证据六项同步更新

## 为什么放上游而不是条目目录 / Why upstream

`sync/market.ts` 有两条读取路径,只有一条读本地条目目录:

| 方法 | 本地条目目录基线 | 远程 |
|---|---|---|
| `readAgentDetail`(inline 形态) | ✅ `readUsageDocFromDir` | 有则覆盖 |
| `readAgentDetailFromPointer`(**本条目**) | ❌ 无 | 仅远程 |

所以 pointer 条目的使用说明只能来自上游仓库。条目目录放 `USAGE.md` 对本条目无效。

## 为什么只有无后缀版本 / Why no locale variants

远程抓取时,`USAGE.<locale>.md` 的探测列表由 `extractDeclaredLocales` 从**上游
agent.json 的 `i18n.locales`** 得出;无后缀 `USAGE.md` 则总是被抓。

而 `agentConfigSchema` 顶层没有 `i18n`,根级 `additionalProperties: false`——给上游
agent.json 加这个字段会让 pointer 形态的安装校验直接失败。因此本条目只提供无后缀 `USAGE.md`。

## 内容 / Content

按 `usage-doc.ts` 的定位写「装之前该知道什么」,不是全量文档(3212 字符,上限
16000):第三方分发免责、四步授权、审批模式取舍、安全边界、已验证/未验证清单。各业务域的实测细节仍在上游 `docs/` 的 13 篇里。

两处与既有同类文档(`dingtalk-workspace/USAGE.md`)不同,是核对 `app/data/i18n/zh-CN.ts`
后的修正而非照搬:

- 审批模式是 **7 种**不是 6 种,补上 `allow-all`(全部放行)
- `ask-external` 的语义是「内置工具与命令放行,仅
MCP、HTTP、脚本等外部工具需审批」,**不是**「交给外部系统裁决」——两者含义相反,照搬会让用户以为自己收紧了,实际放宽了命令执行

## 验证 / Verification

证据六项一致性自检全部通过:

```
content.ref == entry.source.ref            ✅ 6116ad4ac
reviewedRef == content.ref                 ✅
timestamps.reviewedAt == compliance.reviewedAt  ✅ 2026-09-06
availability                               ✅ installable
license                                    ✅ known + LICENSE
requiredClientVersion                      ✅ 10.0.144
```
2026-09-06 12:19:03 -04:00
41c0badfcb chore(contract-review-team): publish 0.1.10 (#145)
## Change\n- publish contract-review-team 0.1.10\n- point source,
provenance, and governance review to team commit
1950e3b117e11b9208ed38fe6d64abfa87ea1adc\n- expose contract-review-lead
1.0.6\n\n## Validation\n- catalog metadata validator: 0 errors\n-
test_validate_catalog_metadata.py: 47 passed\n- git diff --check
passed\n- team PR #23 and lead PR #7 independently reviewed by
GPT-Reserve\n
2026-09-06 12:08:37 -04:00
31e4ca4611 chore(invoice-organizer): 1.0.3 —— 重新 pin 到已合并 commit (#144)
接 #138。那个 PR 只改技能内容,刻意没动版本号与 pin——contentSource.ref 必须
指向已合并的 commit,而那个 SHA 在合并前并不存在。这是同一条两步约束的第四次
(#117/#118、#120/#121、#127/#130 之后)。

- agent.json#contentSource.ref、sidecar 的 provenance.content.ref 与
  governance.compliance.reviewedRef 三处同步 pin 到 450be28
- 版本 1.0.2 → 1.0.3(agent.json 与 sidecar release.version 两处一致)
- 补 1.0.3 changelog(中英双语)

1.0.3 修的是:PDF 文本层在「两栏先输出全部标签、再输出全部取值」的版式下,
按「标签后紧跟的下一段文字」配对会把字段标签本身抽成销售方/购买方名称,且
所有形式勾稽都不会报错。新增硬校验:名称命中已知标签模式即判定提取失败,
先同页重定位、再整页视觉阅读,仍不能确定则按必填字段缺失隔离。

timestamps 三项已经是 2026-09-06,本次无需变更;结构化形态原样保持。
2026-09-06 11:24:13 -04:00
5750c48556 release: contract review team 0.1.9 market entry
All checks passed after rebasing onto market main; independent reserve review PASS, schema/i18n validation passed, and review conversation resolved.
2026-09-06 10:57:58 -04:00
450be28a2b fix(invoice-organizer): PDF 文本层名称字段标签污染防护 (#138)
PDF 的文本层顺序由生成它的开票系统决定,不保证等于版面阅读顺序。部分模板会把
「两栏的全部标签」连续输出完,再输出「两栏的全部取值」,按「标签后紧跟的下一段
文字」配对会把字段标签本身当成取值——一次真实批量整理里,某网约车平台开具的两张
「旅客运输服务」数电票的 sellerName 被抽成了字面的「统一社会信用代码/纳税人识别号:」。

新增「名称字段的标签污染防护(PDF 文本层)」一节:名称等于或主要由已知字段标签
组成时判定为提取失败,先在同页重新定位、再退到整页视觉阅读,仍不能确定则按技能
既定的「抽不齐必填字段就隔离」处理,不得从主题/文件名/相邻税号猜公司名。

明确标注这条只针对 PDF 文本层:OFD 页面文本按坐标重建阅读顺序、模板标签与取值
已合并到同一行,结构化来源更不依赖文本顺序,均不受此问题影响,OFD 章节未改动。
2026-09-06 10:46:46 -04:00
f1f38d7766 docs(wecom-assistant): 把能力边界落到技能侧并重新 pin / land capability boundaries in skills and repin (#143)
## 中文

上一个 PR(#136)把两条能力边界写进了 `USAGE.md`。但 `USAGE.md` **刻意不进模型上下文**(ADR-143,与
`fullDesc` 分开正是为了不占每轮 token)——也就是说运行时模型并不知道这些边界,遇到 `851003` 仍会当故障重试。本 PR
把它们落到技能侧。

重新 pin 到内容仓库

[`ebb1903`](ebb19035bb)。

### 三条改动

**1. `wecom-shared` 新增「零之四:企业人数改变机器人的身份」**

| 企业规模 | 模式 | 以谁的身份调用 | 能否读到真人的东西 |
| --- | --- | --- | --- |
| ≤ 10 人 | 小团队模式 | 授权真人 | 能,继承其文档权限 |
| > 10 人 | 企业模式 | 机器人独立身份 | **不能** |

写明了它与既有「零之一」的分工——零之一管**写**(任何规模下只能写机器人自己建的),本条管**读**(>10
人连读都不继承)。给出正确动作:说明边界 + 建议把文档显式分享给机器人,而不是重试。并标注**这条不可自查**:CLI
没有查企业人数的接口,`identity whoami` 也不返回规模,只能从实际返回反推。来源为上游 issue #64 维护者确认。

此前这个概念只藏在 `wecomcli-smartsheet/references/smart-sheet-webhook.md`
里,是局部知识,而且表述成「写入接口被限制」——真实机制是身份不继承,本 PR 一并修正。

**2. `wecom-shared` 易错点补「方法描述里也有不存在的参数」**

比既有的「服务描述里有不存在的能力」更隐蔽:方法真的存在,只是做不到描述承诺的事。实测三处,`--schema` 请求体里根本没有对应字段:

| 方法 | 描述承诺 | 请求体实际只有 |
| --- | --- | --- |
| `calendar schedules cancel` | 周期日程需指定编辑规则 | `schedule_id` |
| `calendar schedules update` | 同上 | 11 个字段,无一是周期规则 |
| `meeting cancel` | 周期会议取消单次需指定子会议 ID | `meeting_id` |

这解释了 `wecomcli-calendar` / `wecomcli-meeting` 为何禁止操作周期日程——**不是技能保守,是 CLI
没暴露参数**。顺带把 `calendar` 的「日历本列表查询」补进既有的服务描述清单。

**3. `smartsheet get` 是 `sheets list` 的别名**

两者官方描述逐字相同、返回同一份子表列表。此前 `smartsheet get` 在整个仓库零字面出现,模型只能靠 `--help`
自己摸到,然后在两者之间犹豫。

### vendor 纪律

第 3 条与 webhook 归因修正都落在 **vendor 自上游的 `wecomcli-smartsheet`**
上。脚本头注释明确「不要手工编辑 `skills/wecomcli-*`,改动会在下次重跑时被无声抹掉」,所以走
`patches/snippets/` + `injections.tsv` 注入,不手工改文件。

`bash scripts/vendor-official-skills.sh` **连跑两次 diff 不变**,幂等成立;注入计数 6 →
8,脚本摘要与 tsv 注释同步更新。

### 条目改动

三处 ref 一起改(这次用全文扫 40 位 hex 复核,只剩一个值),`releasePublishedAt` 不动——版本仍 1.0.0:

- `entry.source.ref`
- `provenance.content.ref`
- `governance.compliance.reviewedRef`

推之前本地跑过 `uv run scripts/catalog/validate_catalog_metadata.py
--require-complete`:**0 error**(129 warning 为全仓存量)。

---

## English

#136 put two capability limits into `USAGE.md`, which is **deliberately
kept out of model context** (ADR-143). At runtime the model therefore
still doesn't know them and retries `851003` as a failure. This PR lands
them in the skills.

1. **`wecom-shared` gains "rule zero-four": corporation size changes the
bot's identity.** ≤10 people — the bot calls *as the authorizing user*
and inherits their document permissions; >10 — it calls under its own
identity and inherits nothing. Spelled out against the existing "rule
zero-one" (that one governs *writes*; this one governs *reads*). Marked
as non-self-checkable: no API returns the corporation size, so it can
only be inferred from responses. Source: upstream issue #64.
2. **A new pitfall: method descriptions also promise parameters that
don't exist** — subtler than the existing service-level note, since the
method does exist. Three verified cases where `--schema` has no such
field, which is precisely why the calendar/meeting skills forbid
recurring-event operations.
3. **`smartsheet get` is an alias of `sheets list`** — identical
official descriptions, same payload.

Items 2–3 touch vendored upstream skills, so they go through
`patches/snippets/` + `injections.tsv` rather than hand edits; the
vendor script is idempotent across two consecutive runs. Catalog
validator reports 0 errors locally before pushing.
2026-09-06 10:37:08 -04:00
aa394e8bef refactor(dingtalk-workspace): 内联条目改为 pointer 形态 / convert inline entry to pointer (#141)
## 背景 / Context

钉钉工作台助手此前以**内联**形态登记(市场目录里直接放 24 个文件的完整正文)。这带来两个实际问题:

1. **同一份内容存在多个副本。** 上一次修正 `ask-external` 的审批模式文案时,同样的错误要在市场目录、Agent
私有目录、市场解压目录**四处**分别修改。
2. **与既有 Agent 形态不一致。** `wecom-assistant` / `feishu-orchestrator` 等都是
pointer 形态。

The DingTalk agent was registered inline (24 files of body content
inside the catalog). This duplicated the same content across several
copies — a single copy fix had to be applied in four places — and
diverged from every other agent, which use the pointer form.

## 改动 / Change

正文迁到
[desirecore-agent/dingtalk-workspace](https://github.com/desirecore-agent/dingtalk-workspace),市场侧只留两个文件:

```
agents/dingtalk-workspace/
├── entry.json                  ← pointer,source.ref 钉死上游 commit
└── catalog-metadata.v1.json    ← sidecar
```

**24 files → 2 files**(25 files changed, 72 insertions, 1781 deletions)

## 为什么必须删掉 agent.json 而非并存

`scripts/catalog/validate_catalog_metadata.py:253-261` 用
`inline_path.is_file() == pointer_path.is_file()`
判定——**两者必须恰好存在一个**,都有或都没有都会报 `fixed-sidecar-path` 并使条目掉出目录。

正文也一并清除,理由是另外两条:安装时会**整树复制**(排除清单只有
`upstream`/`.git`/`node_modules`/`.cache`),留下旧副本会与从上游拉取的正文形成两份可能不同步的内容;且与
`redistribution: source-pointer-only` 的声明自相矛盾。

## 证据六项 / Evidence

| 项 | 值 |
| --- | --- |
| `provenance.content` | https + 40 位 SHA
`9e5a4695b07d9d71921202a7a4072140c2135670` |
| `license` | `state: known` + `value: MIT` + `evidencePath: LICENSE` |
| `compliance` | 五项必填齐备 |
| `compliance.reviewedRef === provenance.content.ref` | ✅ |
| `timestamps.reviewedAt.value === compliance.reviewedAt` | ✅ |
| `governance.availability` | `installable` |

一致性比对的三处按既有约定处理:`entry.tags` 用英文 slug 且与 `presentation.tags` 逐字相同;entry
声明了 `license` 故 sidecar 必须 `known` 且 value 相等;`entry.maintainer` 映射到
sidecar 的 `upstreamMaintainer`。`redistribution` 用
`source-pointer-only`(pointer 不分发内容),非 inline 条目的 `allowed`。

## 上游仓库 / Upstream

内容仓库同步修正了审批模式文案(此前 `ask-external` 被写成「交给外部系统裁决」,实际含义是「内置工具与命令放行,仅
MCP、HTTP、脚本等外部工具需审批」,且漏掉 `allow-all`),现全部逐字引用平台内 i18n 文案。另补
`assets/avatar.webp` 与 `agent.json` 的 `avatar.image.path`,使 pointer
安装后仍有图片头像。

## 校验 / Verification

```
validate_catalog_metadata.py --require-complete   exit=0   0 error(s)
validate-i18n.py                                  exit=0   0 error
agents=5(条目未掉出目录)
```

上游可达性已独立验证:`git ls-remote` 取得 40 位 SHA,`git clone` 成功,27
个文件。**先推上游确认可达、再改市场卡片**,避免出现指向不存在 ref 的孤儿 entry。

Co-authored-by: yi-ge <jackyoncode@gmail.com>
2026-09-06 10:26:02 -04:00