Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

feat(compatibility): write declared compatibility_json on publish, sync and backfill

Đang mở
#119 0 bình luận 0 reaction 1 người được giao Xem trên GitHub

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:

  1. 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.
  2. Validate on write: use the same @skillx/contracts validator the reader uses. An invalid shape is stored as NULL ("unknown"), never as a partial value. Writes are idempotent.
  3. When to write: on release publish into package_releases.compatibility_json, and on skill create/update/sync into skills.compatibility_json. Invalidate the llms cache key, or bump its version, when a declaration changes.
  4. 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).
  5. 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*.txt and 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.md and 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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của nextlevelbuilder/skillx

Tất cả issue của nextlevelbuilder/skillx

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.