Sync third-party and MCP marketplace plugins
Constraint: Public skills are published only by explicit administrator action unless they are tracked third-party market sources. Confidence: high Scope-risk: narrow Directive: Keep private/internal skills out of the public marketplace and preserve normal incremental market Git history. Tested: Marketplace validation passed.
This commit is contained in:
1 parent
6a0a022257
commit
f4d6b4228b
7 files changed
+28
-14
No files matched your search
@@ -105,8 +105,8 @@
|
|||||||
"repo": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git",
|
"repo": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"commit": "d14efff8ed1faa4187f004f79926f428c8074ec7",
|
"commit": "28b3b8dee8c976df4fa3e94aed4e092ad43fcb03",
|
||||||
"syncedAt": "2026-10-23T16:00:00Z"
|
"syncedAt": "2026-10-26T16:00:00Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "caveman",
|
"id": "caveman",
|
||||||
@@ -132,8 +132,8 @@
|
|||||||
"repo": "https://github.com/shadcn-ui/ui.git",
|
"repo": "https://github.com/shadcn-ui/ui.git",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"commit": "481d523374745e77d0cf9c53a4115ab5dd7c8481",
|
"commit": "8f04138777c1b6996e709993362a7b0a12888ecf",
|
||||||
"syncedAt": "2026-10-25T16:00:00Z"
|
"syncedAt": "2026-10-26T16:00:00Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "frontend-slides",
|
"id": "frontend-slides",
|
||||||
@@ -258,8 +258,8 @@
|
|||||||
"repo": "https://github.com/vercel/next.js.git",
|
"repo": "https://github.com/vercel/next.js.git",
|
||||||
"ref": "canary",
|
"ref": "canary",
|
||||||
"adapter": "skill-collection",
|
"adapter": "skill-collection",
|
||||||
"commit": "cbf49db30a655ac17c92c2951885c4256db14b9e",
|
"commit": "b0e1bf792f18c039933d8a9ce9d50d35f930f1be",
|
||||||
"syncedAt": "2026-10-25T16:00:00Z"
|
"syncedAt": "2026-10-26T16:00:00Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "shuorenhua",
|
"id": "shuorenhua",
|
||||||
|
|||||||
@@ -3,5 +3,5 @@
|
|||||||
"name": "playwright浏览器自动化操作",
|
"name": "playwright浏览器自动化操作",
|
||||||
"version": "20260605",
|
"version": "20260605",
|
||||||
"keySource": "none",
|
"keySource": "none",
|
||||||
"syncedAt": "2026-10-25T16:03:14Z"
|
"syncedAt": "2026-10-26T16:03:14Z"
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
"sourceId": "next-skills",
|
"sourceId": "next-skills",
|
||||||
"repo": "https://github.com/vercel/next.js.git",
|
"repo": "https://github.com/vercel/next.js.git",
|
||||||
"ref": "canary",
|
"ref": "canary",
|
||||||
"commit": "cbf49db30a655ac17c92c2951885c4256db14b9e",
|
"commit": "b0e1bf792f18c039933d8a9ce9d50d35f930f1be",
|
||||||
"adapter": "skill-collection",
|
"adapter": "skill-collection",
|
||||||
"sourcePath": "skills",
|
"sourcePath": "skills",
|
||||||
"syncedAt": "2026-10-25T16:00:00Z"
|
"syncedAt": "2026-10-26T16:00:00Z"
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
"sourceId": "shadcn",
|
"sourceId": "shadcn",
|
||||||
"repo": "https://github.com/shadcn-ui/ui.git",
|
"repo": "https://github.com/shadcn-ui/ui.git",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"commit": "481d523374745e77d0cf9c53a4115ab5dd7c8481",
|
"commit": "8f04138777c1b6996e709993362a7b0a12888ecf",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"sourcePath": "skills/shadcn",
|
"sourcePath": "skills/shadcn",
|
||||||
"syncedAt": "2026-10-25T16:00:00Z"
|
"syncedAt": "2026-10-26T16:00:00Z"
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
"sourceId": "ui-ux-pro-max",
|
"sourceId": "ui-ux-pro-max",
|
||||||
"repo": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git",
|
"repo": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"commit": "d14efff8ed1faa4187f004f79926f428c8074ec7",
|
"commit": "28b3b8dee8c976df4fa3e94aed4e092ad43fcb03",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"sourcePath": ".claude/skills/ui-ux-pro-max",
|
"sourcePath": ".claude/skills/ui-ux-pro-max",
|
||||||
"syncedAt": "2026-10-23T16:00:00Z"
|
"syncedAt": "2026-10-26T16:00:00Z"
|
||||||
}
|
}
|
||||||
@@ -856,7 +856,7 @@ def _stack_query_requests_legacy(query, stack):
|
|||||||
if current_version is not None and stack_name is not None:
|
if current_version is not None and stack_name is not None:
|
||||||
matches = re.finditer(
|
matches = re.finditer(
|
||||||
rf"\b(?:{stack_name})\s*(?:sdk|ui)?\s*(?:[@(]\s*)?(?:v(?:ersion)?\s*)?"
|
rf"\b(?:{stack_name})\s*(?:sdk|ui)?\s*(?:[@(]\s*)?(?:v(?:ersion)?\s*)?"
|
||||||
rf"(\d+)(?:\.(\d+))?\s*\)?",
|
rf"(\d+)(?:\.(\d+))?(?!\w)\s*\)?",
|
||||||
normalized,
|
normalized,
|
||||||
)
|
)
|
||||||
requested_versions = [
|
requested_versions = [
|
||||||
|
|||||||
+14
@@ -116,6 +116,20 @@ class TestWebStackFreshness(unittest.TestCase):
|
|||||||
{row["Status"] for row in result["results"]}, {"deprecated"}
|
{row["Status"] for row in result["results"]}, {"deprecated"}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_number_starting_a_word_is_not_a_version(self):
|
||||||
|
cases = {
|
||||||
|
"react": "react 3d canvas effect cleanup",
|
||||||
|
"html-tailwind": "tailwind 2xl breakpoint",
|
||||||
|
"angular": "angular 2fa login form",
|
||||||
|
}
|
||||||
|
for stack, query in cases.items():
|
||||||
|
with self.subTest(stack=stack, query=query):
|
||||||
|
result = search_stack(query, stack)
|
||||||
|
self.assertGreater(result["count"], 0)
|
||||||
|
self.assertNotIn(
|
||||||
|
"deprecated", {row["Status"] for row in result["results"]}
|
||||||
|
)
|
||||||
|
|
||||||
def test_old_major_without_curated_legacy_guidance_abstains(self):
|
def test_old_major_without_curated_legacy_guidance_abstains(self):
|
||||||
result = search_stack("Astro 5 content collections", "astro")
|
result = search_stack("Astro 5 content collections", "astro")
|
||||||
self.assertEqual(result["count"], 0)
|
self.assertEqual(result["count"], 0)
|
||||||
|
|||||||
Reference in new issue
Block a user