feat(compatibility): write declared compatibility_json on publish, sync and backfill
维护者通常 1 天内回复
@mrgoonie 已经在做这个了。
开始于 2026年10月22日。
评估
这个 Issue 还没有评估数据。
描述
Problem
The catalog's compatibility display, introduced in #90 ("agent-native discovery and compatibility"), reads skills.compatibility_json and package_releases.compatibility_json. Each declaration goes through the shared validator in @skillx/contracts. Nothing on main writes either column: origin/main has no non-test writer.
So every catalog row, the .md pages, llms.txt/llms-full.txt and the MCP discovery tools report compatibility as "unknown" for every skill. The feature is live but shows nothing.
Proposal
Add a write path that fills the declared compatible map from what the publisher actually declares:
- Source of the declaration:
- the SKILL.md frontmatter, or the release manifest, field
compatible/compatibility(for example{ "agentkit": { "status": "declared", "versions": ">=1.0.0" } }); - for skills synced from GitHub, the same field read during seed/sync.
- the SKILL.md frontmatter, or the release manifest, field
- Validate on write: use the same
@skillx/contractsvalidator the reader uses. An invalid shape is stored asNULL("unknown"), never as a partial value. Writes are idempotent. - When to write: on release publish into
package_releases.compatibility_json, and on skill create/update/sync intoskills.compatibility_json. Invalidate the llms cache key, or bump its version, when a declaration changes. - Backfill: a one-off backfill of existing rows from their stored SKILL.md content. Back up D1 first (Time Travel restore point plus per-table export, because the FTS5 tables block a full
wrangler d1 export). - Never infer: do not infer compatibility from content heuristics. Only a declaration counts.
Acceptance
- Publishing a release with a valid declaration stores it; publishing one with an invalid declaration stores
NULL. Covered by tests. - Creating or syncing a skill whose frontmatter declares compatibility stores it.
- Catalog,
.md,llms*.txtand MCP surfaces show the declared status for those skills. - The backfill has run on production after a D1 backup, with the counts of declared and unknown rows recorded.
- Docs updated:
docs/api-reference.mdand the publisher guide describe how to declare compatibility.
Context: found during the review of #90 (rebuilt from #41). Related AgentKit epic: bestagentkits/agentkit#2274.
- 主要语言
- TypeScript
- 星标
- 193
- 派生
- 43
- 平均合并
- 5 小时 37 分钟
- 30 天内合并 PR
- 63
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
nextlevelbuilder/skillx 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
nextlevelbuilder/skillx#28 · 1 条评论 ·
维护者通常 1 天内回复
-
refactor
难度 2/5 1-3 小时 新手友好度 82/100
nextlevelbuilder/skillx#27 ·
维护者通常 1 天内回复
-
fix(search): FTS5 sanitizer glues hyphenated words, strips non-ASCII queries and breaks on NOT/AND/OR可能已有人在做 @mrgoonie 于 2 天前认领。 未关闭ai-handle bug in progress
nextlevelbuilder/skillx#156 · 已指派 1 人 ·
维护者通常 1 天内回复
-
chore(security): enable GitHub private vulnerability reporting可能已有人在做 @mrgoonie 于 2 天前认领。 未关闭blocked
nextlevelbuilder/skillx#153 · 已指派 1 人 ·
维护者通常 1 天内回复
-
chore(claude-directory): submit plugins/skillx in the developer portal and track listing metrics可能已有人在做 @mrgoonie 于 2 天前认领。 未关闭blocked
nextlevelbuilder/skillx#151 · 已指派 1 人 ·
维护者通常 1 天内回复
查看 nextlevelbuilder/skillx 的全部 Issue
相似的 Issue
-
bug
难度 1/5 1 小时以内 新手友好度 86/100
awslabs/visual-asset-management-system#937 ·
维护者通常 1 天内回复
-
t0ggles
难度 1/5 1 小时以内 新手友好度 82/100
nolimits4web/swiper#8255 · 1 条评论 ·
维护者通常 15 天内回复
-
render: --variables-file (and --variables <path>) fails with "io.readFile is not a function" since 0.8.212可能已有人在做 @miguel-heygen 今天认领。 未关闭bug triage/needs-triage
难度 2/5 1-3 小时 新手友好度 76/100
heygen-com/hyperframes#6830 ·
维护者通常 1 天内回复
-
bug launch local use
难度 2/5 1-3 小时 新手友好度 65/100
维护者通常 1 天内回复
-
account: profile bug
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 5 天内回复