feat(compatibility): write declared compatibility_json on publish, sync and backfill
Maintainer thường phản hồi trong vòng 1 ngày
@mrgoonie đang làm issue này rồi.
Từ ngày 22/10/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
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.
- Ngôn ngữ chính
- TypeScript
- Star
- 190
- Fork
- 42
- Merge trung bình
- 3 giờ 33 phút
- Pull request đã merge (30 ngày)
- 48
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của nextlevelbuilder/skillx
-
ai-handle
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
nextlevelbuilder/skillx#105 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
nextlevelbuilder/skillx#28 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
refactor
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
nextlevelbuilder/skillx#27 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ai-handle
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 72/100
nextlevelbuilder/skillx#113 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feat(quality-packs): QGP foundation packs, private overrides và three-way rebase giữ nguyên opt-outĐang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 18/100
nextlevelbuilder/skillx#108 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của nextlevelbuilder/skillx
Issue tương tự
-
Manager flashes an empty "errorOccurred" dialog while redirecting a logged-out user to loginĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
openremote/openremote#3487 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
coollabsio/jean#867 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
ehmpathy/rhachet-roles-bhuild#616 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
📘 Docs supabase/cli
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug(cli): theme file home-directory check uses startsWith (sibling dirs pass, Windows casing fails)Đang mởarea/core kind/bug priority/p2 status/bot-triaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
google-gemini/gemini-cli#29955 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày