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
- スター
- 190
- フォーク
- 42
- 平均マージ
- 5時間 50分
- マージ済み PR(30日)
- 37
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nextlevelbuilder/skillx のほかの issue
-
ai-handle
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
nextlevelbuilder/skillx#105 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
nextlevelbuilder/skillx#28 ·
メンテナーはふだん 1 日以内に返信
-
refactor
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
nextlevelbuilder/skillx#27 ·
メンテナーはふだん 1 日以内に返信
-
ai-handle
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
nextlevelbuilder/skillx#113 ·
メンテナーはふだん 1 日以内に返信
-
feat(quality-packs): QGP foundation packs, private overrides và three-way rebase giữ nguyên opt-outオープンenhancement
難易度 5/5 1週間以上 初心者へのやさしさ 18/100
nextlevelbuilder/skillx#108 ·
メンテナーはふだん 1 日以内に返信
nextlevelbuilder/skillx の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
braintrustdata/braintrust-sdk-javascript#2659 ·
メンテナーはふだん 1 日以内に返信
-
body-parser 2.3.0 in the published ai-dial-chat-bff image is vulnerable (CVE-2026-111181, HIGH)対応中かも @illya-havsiyevych が今日担当しました。 オープンbug
難易度 1/5 1〜3時間 初心者へのやさしさ 87/100
epam/ai-dial-chat#9566 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
はさみアイコンを修正するオープンbug
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
-
area: core
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信