[contract-gap] skills/asset-governance 缺「创建空白 skill 骨架」与「市场浏览」契约
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 7m
- Merged PRs (30d)
- 969
Description
## 缺口
在 #1120(`/skill` 后台侧栏 + 新建 Skill 三路径)里核实到:「完全新建空白骨架」与「从市场挑一个改」这两条产品期望的路径目前都**没有对应后端**。
### ① 完全新建空白骨架(人类原话第③点:「直接展示一个文件浏览+code编辑界面从头开始」)
- `createSkillDraft`(`packages/contracts/src/skills.ts`,`POST /skills`)要求一次性交齐完整声明式契约(`name`/`duty`/`contract.promptTemplate`/`contract.inputSchema`/`contract.outputSchema`/`contract.dataScope`/`visibility`/`modelRef`),没有「先建一个只带 `SKILL.md` 骨架的空白目录」这条更轻量的路径。
- `asset-governance` 契约(`packages/contracts/src/asset-governance.ts`)的 `getAssetDirectory`/`readAssetFile`/`writeAssetFile`/`createAssetFile` 全部要求 `in: { assetKind, assetId }`——`assetId` 必须**已经存在**。`AgSkillEditor`(`apps/web/components/asset-governance/ag-screens.tsx`,#933)编辑的是已建好的 skill,无法拿它打开一个还不存在的新 skill 进行「从空白开始写」。
**需要新增的后端能力**(形状待设计,两个候选方向):
1. `skills` 束新增一个轻量创建操作(比如 `createSkillSkeleton`),只落 `name` + 空的 `SKILL.md` 骨架,产出一个可以被 `asset-governance` 编辑器打开的 `assetId`;或
2. `asset-governance` 束新增「先建空 asset 记录(仅根文件)、再进文件编辑器」这条操作。
两者都需要走 ADR-023 契约签核(新契约面,不能顺手加)。
### ② 从市场挑一个改(浏览市场目录)
`packages/contracts/src/*.ts` 里不存在任何 market/marketplace 相关操作。`AgNewSkill`(`apps/web/components/asset-governance/ag-screens.tsx`)与 `lib/mock/asset-governance.ts` 的 `AG_MARKET_CARDS`("Claude Code 社区 1,842 个 · 已同步 34" 这类)纯属 UI 先行阶段的 mock,没有真实的市场数据源、没有"浏览"背后的真实列表接口。
**需要新增的后端能力**:market 目录浏览契约(列出社区/官方 skill 包、查看详情、"已同步"状态),同样需要 ADR-023 签核。
## 现状
`apps/web` 侧(#1120)对这两条路径的处理:「从市场挑一个改」tab 显示如实的"未接后端"说明,不摆假数字;「完全新建」tab 复用已有的 `createSkillDraft` 契约表单(不是空白文件编辑器,但是真实可用的创建路径)。
本 issue 只登记后端契约缺口,不含任何前端改动。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with packages/contracts/src/skills.ts and packages/contracts/src/asset-governance.ts, then review ADR-023 and the existing AgNewSkill and AgSkillEditor flows in apps/web/components/asset-governance/ag-screens.tsx. Determine and get approval for the contract shape for blank skill creation and marketplace browsing; done means the agreed backend capabilities are specified and implemented without frontend changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100