Skip to content

Support versioned skill files#68

Merged
EricFernandezPort merged 13 commits into
mainfrom
cursor/versioned-skills-sync
May 27, 2026
Merged

Support versioned skill files#68
EricFernandezPort merged 13 commits into
mainfrom
cursor/versioned-skills-sync

Conversation

@matanAlltra

@matanAlltra matanAlltra commented May 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Support the new Port skills data model: skill file -> skill version -> skill -> skill group.
  • Sync versioned content with batched graph queries: one sortable top-search for selected skill versions and one file search for those latest version IDs.
  • Preserve legacy skill behavior exactly for metadata-only skills, while versioned skills are written under skills/port/<group>/<skill title>/ with skill_file.path relative to that folder.

Test plan

  • go test ./...

matanAlltra and others added 7 commits May 25, 2026 13:22
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@matanAlltra matanAlltra marked this pull request as ready for review May 25, 2026 12:44
matanAlltra and others added 6 commits May 25, 2026 15:46
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- Avoid duplicate API calls during init by threading the raw FetchedSkills
  catalog through LoadSkillsOptions.Fetched so LoadSkills can reuse it
  instead of re-fetching skill_groups and skills a second time.
- Paginate GetSkillGroups via SearchEntities (was silently capped by
  GetEntities default limit); keep GetEntities as a fallback for older
  Port instances.
- Paginate loadLegacySkillContent via SearchEntities so large legacy skill
  catalogs are not truncated; all properties returned (no include filter).
- Fix compareVersionStrings: a non-numeric pre-release segment at a position
  where the other version has no segment now sorts lower (1.2.3-alpha < 1.2.3).
- Remove dead filesFromEntities function and unreachable second len(parts)==0
  guard in normalizeSkillFilePath.
- Add cloneBody comment documenting the shallow-clone contract.
- Narrow isMissingSkillBlueprintError to match Port-specific error codes
  (blueprint_not_found) and the HTTP 404 status rather than broad substrings
  like "not found" that could shadow unrelated errors.
- Update and extend tests to cover the legacy search endpoint, pre-release
  version ordering, and the narrowed blueprint-missing check.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@EricFernandezPort EricFernandezPort merged commit c7560bb into main May 27, 2026
4 checks passed
@EricFernandezPort EricFernandezPort deleted the cursor/versioned-skills-sync branch May 27, 2026 06:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants