mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-09-05 21:23:57 +08:00
feat(dingtalk-workspace): add USAGE.md and wire feature docs into skill references (#113)
## 背景 / Background
`agents/dingtalk-workspace` 条目把 13 篇使用文档放在 `docs/` 目录,但**两侧都读不到**:
- 市场详情页只渲染 `agent.json` 的元数据字段,不扫描条目目录下的 `docs/`
- Agent 自身的上下文只挂载 `persona.md` / `principles.md` / `memory/` /
`skills/`,`docs/` 不在其中
The listing kept 13 usage documents under `docs/`, but nothing consumed
them: the
market detail page only projects `agent.json` metadata, and the agent's
own context
mounts `persona.md` / `principles.md` / `memory/` / `skills/` only.
## 变更 / Changes
配合 DesireCore 主仓库的 `USAGE.md` 平台约定(ADR-143)与既有技能 `references` 机制,分别解决两侧。
Pairs with the new `USAGE.md` platform convention (ADR-143) in the
DesireCore repo.
| 变更 / Change | 说明 / Detail |
| --- | --- |
| 新增 `USAGE.md` | 安装前该知道的内容:第三方 CLI 依赖声明、5
步快速开始、六种审批模式取舍、安全与已知边界。**刻意不含图片**——详情页的 markdown 渲染器会移除普通 `img src` |
| 新增私有技能 `dingtalk-guide` | 只做索引,正文用 `${SKILL_DIR}/references/` 绝对路径指向
13 篇文档,Agent 按需 `Read`。单产品问题(如「钉盘同步怎么用」)可触发查文档再作答,不占每轮上下文 |
| `docs/` → `dingtalk-guide/references/` | 整体移入并拍平。原 12
篇无交叉链接、无图片,移动无需改写正文 |
| `docs/README.md` 拆分 | 安装部分 → `USAGE.md`;界面与审批部分连同两张截图 →
`references/界面与审批.md` |
| `README.md` | 补 `USAGE.md` 约定说明与目录树条目 |
| `manifest.json` | 1.5.0 → 1.5.1(条目内容新增;计数不变,经校验器实跑确认) |
**单一真相源 / Single source of truth**:每篇文档只有一份,归 `dingtalk-guide` 技能所有;
不存在 `docs/` 与 `references/` 两份副本。`dingtalk-onboarding` 与
`dingtalk-workflows`
两个既有技能不变。
## 校验 / Validation
README 记录的 7 条 CI 校验命令全部实跑通过(改动前后各一轮):
```
scripts/i18n/test_validate_i18n.py exit=0
scripts/catalog/test_validate_catalog_metadata.py exit=0
scripts/catalog/test_collection_generator.py exit=0
scripts/catalog/validate_catalog_metadata.py --require-complete exit=0
scripts/i18n/validate-i18n.py exit=0
scripts/i18n/translate.py --check exit=0
scripts/gen-collection-children.py --check exit=0
```
`manifest.json#stats` 由 `validate_catalog_metadata` 输出实跑确认(agents=3,
teams=1,
publishableSkills=69),非算术推导,故不变。
## 公开信息边界 / Public information boundary
全树扫描零命中:改动文件、新增路径名、分支名、commit 主题与正文、本 PR 文本均不含
租户/客户/伙伴/个人身份。两张截图已逐张目视复核——仅含 DesireCore 自身界面、Agent 名称与
通用 `dws` 命令,返回结果为空列表,不含组织名或任何组织形态。
Full-tree scan returned zero results. Both screenshots were reviewed
individually:
they show only DesireCore's own UI, the agent name, and generic `dws`
commands.
## 依赖 / Dependency
`USAGE.md` 的详情页渲染依赖 DesireCore 主仓库的配套 PR。在其发布前,本条目的
`USAGE.md` 仍是仓库内可读的普通文件,不影响现有行为。
Detail-page rendering depends on the companion PR in the DesireCore
repository.
Until it ships, `USAGE.md` is simply a readable file in the listing and
changes nothing.
This commit is contained in:
16
README.md
16
README.md
@@ -14,7 +14,8 @@ DesireCore 官方市场仓库,存放官方维护的 Agent/Team/Skill 定义,
|
||||
│ │ └── agent.json
|
||||
│ └── <agent-listing>/
|
||||
│ ├── agent.json
|
||||
│ └── catalog-metadata.v1.json
|
||||
│ ├── catalog-metadata.v1.json
|
||||
│ └── USAGE.md # Optional usage notes (USAGE.<locale>.md for variants)
|
||||
├── teams/
|
||||
│ └── <team>/
|
||||
│ └── entry.json
|
||||
@@ -222,6 +223,19 @@ or simultaneous primary files are rejected. For a pointer, `entry.id` and sideca
|
||||
`identity.id` use the catalog directory slug and `identity.kind` is `agent`; the
|
||||
upstream AgentFS `agent.json.id` remains its own UUID and must not be rewritten.
|
||||
|
||||
An agent listing may also carry an optional `USAGE.md` next to `agent.json`. The
|
||||
client renders it as a separate "Usage" section on the agent detail page, kept
|
||||
apart from `fullDesc` (which is persona text and also enters the agent's runtime
|
||||
context). Localized variants use `USAGE.<locale>.md`, resolved through the same
|
||||
fallback chain as the `i18n` block: requested locale, then `i18n.source_locale`,
|
||||
then `i18n.default_locale`, then the unsuffixed file. Its scope is what a reader
|
||||
needs *before* installing — prerequisites, authorization steps, capability and
|
||||
safety boundaries — not full documentation; clients truncate overlong content.
|
||||
Longer material belongs in a skill's `references/` directory, which the agent
|
||||
loads on demand. Listings without the file are unaffected and render no section.
|
||||
Relative image references do not render on the detail page, so keep `USAGE.md`
|
||||
text-only. See ADR-143 in the DesireCore repository.
|
||||
|
||||
Agent pointers first pass the complete raw client contract in
|
||||
[`schemas/market-agent-entry.client.schema.json`](schemas/market-agent-entry.client.schema.json),
|
||||
exported from `marketAgentEntrySchema` in the DesireCore repository at commit
|
||||
|
||||
Reference in New Issue
Block a user