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:
KeyInfo Bot committed 2026-10-27 00:03:14 +08:00
1 parent 6a0a022257
commit f4d6b4228b
7 files changed
+28 -14

No files matched your search

@@ -3,5 +3,5 @@
"name": "playwright浏览器自动化操作",
"version": "20260605",
"keySource": "none",
"syncedAt": "2026-10-25T16:03:14Z"
"syncedAt": "2026-10-26T16:03:14Z"
}
@@ -2,8 +2,8 @@
"sourceId": "next-skills",
"repo": "https://github.com/vercel/next.js.git",
"ref": "canary",
"commit": "cbf49db30a655ac17c92c2951885c4256db14b9e",
"commit": "b0e1bf792f18c039933d8a9ce9d50d35f930f1be",
"adapter": "skill-collection",
"sourcePath": "skills",
"syncedAt": "2026-10-25T16:00:00Z"
"syncedAt": "2026-10-26T16:00:00Z"
}
@@ -2,8 +2,8 @@
"sourceId": "shadcn",
"repo": "https://github.com/shadcn-ui/ui.git",
"ref": "main",
"commit": "481d523374745e77d0cf9c53a4115ab5dd7c8481",
"commit": "8f04138777c1b6996e709993362a7b0a12888ecf",
"adapter": "claude-skill",
"sourcePath": "skills/shadcn",
"syncedAt": "2026-10-25T16:00:00Z"
"syncedAt": "2026-10-26T16:00:00Z"
}
@@ -2,8 +2,8 @@
"sourceId": "ui-ux-pro-max",
"repo": "https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git",
"ref": "main",
"commit": "d14efff8ed1faa4187f004f79926f428c8074ec7",
"commit": "28b3b8dee8c976df4fa3e94aed4e092ad43fcb03",
"adapter": "claude-skill",
"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:
matches = re.finditer(
rf"\b(?:{stack_name})\s*(?:sdk|ui)?\s*(?:[@(]\s*)?(?:v(?:ersion)?\s*)?"
rf"(\d+)(?:\.(\d+))?\s*\)?",
rf"(\d+)(?:\.(\d+))?(?!\w)\s*\)?",
normalized,
)
requested_versions = [
@@ -116,6 +116,20 @@ class TestWebStackFreshness(unittest.TestCase):
{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):
result = search_stack("Astro 5 content collections", "astro")
self.assertEqual(result["count"], 0)