📦 deps(thirdparty): update snapshots
This commit is contained in:
+26
-3
@@ -6,6 +6,7 @@ const fs = require("node:fs");
|
||||
const path = require("node:path");
|
||||
|
||||
const repoRoot = path.resolve(__dirname, "../../..");
|
||||
const packageJson = JSON.parse(fs.readFileSync(path.join(repoRoot, "package.json"), "utf8"));
|
||||
|
||||
const publicRoots = [
|
||||
"README.md",
|
||||
@@ -79,6 +80,14 @@ for (const relativePath of publicFiles) {
|
||||
|
||||
const coreGuide = fs.readFileSync(path.join(repoRoot, "docs/users/aas-core.md"), "utf8");
|
||||
const usageGuide = fs.readFileSync(path.join(repoRoot, "docs/users/usage.md"), "utf8");
|
||||
const readme = fs.readFileSync(path.join(repoRoot, "README.md"), "utf8");
|
||||
const validityBoundary = /Structural and identity validity does not certify semantic fit, compatibility, setup correctness, operational safety, or safety to apply\./;
|
||||
assert.match(coreGuide, new RegExp(`--package=agentic-awesome-skills@${packageJson.version.replaceAll(".", "\\.")}`));
|
||||
assert.doesNotMatch(coreGuide, /--package=agentic-awesome-skills@(?:X\.Y\.Z|latest)\b/);
|
||||
assert.match(coreGuide, validityBoundary);
|
||||
assert.match(readme, validityBoundary);
|
||||
assert.doesNotMatch(coreGuide, /selectable, and usable/i);
|
||||
assert.doesNotMatch(readme, /selectable, and usable/i);
|
||||
assert.match(coreGuide, /"schemaVersion"\s*:\s*2/);
|
||||
assert.match(coreGuide, /"profile"\s*:\s*\{/);
|
||||
assert.match(coreGuide, /"skills"\s*:\s*\[\s*\{\s*"id"\s*:/);
|
||||
@@ -94,7 +103,7 @@ for (const guide of [coreGuide, usageGuide]) {
|
||||
assert.match(guide, /smallest\s+stack/i);
|
||||
assert.match(guide, /no semantic policy|no semantic small-stack policy/i);
|
||||
assert.match(guide, /technical maximum of 128/i);
|
||||
assert.match(guide, /1,968[^.\n]{0,180}individually searchable, readable, (?:and )?selectable/i);
|
||||
assert.match(guide, /every current catalog skill[^.\n]{0,180}individually searchable, readable, (?:and )?(?:selectable|available for agent selection)/i);
|
||||
assert.match(guide, /compose_stack[\s\S]{0,200}in memory/i);
|
||||
assert.match(guide, /client or (?:the )?CLI[\s\S]{0,200}persist/i);
|
||||
assert.match(guide, /export_selection_evidence/);
|
||||
@@ -112,11 +121,25 @@ for (const guide of [coreGuide, usageGuide]) {
|
||||
for (const relativePath of ["README.md", "apps/web-app/public/llms.txt"]) {
|
||||
const content = fs.readFileSync(path.join(repoRoot, relativePath), "utf8");
|
||||
assert.doesNotMatch(content, /(?:no |without an? )?arbitrary (?:skill-)?count cap/i);
|
||||
assert.match(content, /no semantic policy/i);
|
||||
assert.match(content, /no semantic policy|does not rank or recommend/i);
|
||||
assert.match(content, /technical maximum of 128/i);
|
||||
assert.match(content, /1,968[^.\n]{0,180}individually searchable, readable, (?:and )?selectable/i);
|
||||
assert.match(content, /every (?:current )?catalog skill[^.\n]{0,180}(?:individually )?searchable, readable, (?:and )?(?:selectable|available for agent selection)/i);
|
||||
assert.match(content, /compose_stack[^.\n]{0,160}in memory/i);
|
||||
assert.match(content, /client or (?:the )?(?:`?aas`? )?CLI[^.\n]{0,160}persist/i);
|
||||
}
|
||||
|
||||
for (const relativePath of [
|
||||
"apps/web-app/scripts/prerender-routes.js",
|
||||
"apps/web-app/src/utils/seo.ts",
|
||||
"apps/web-app/public/manifest.webmanifest",
|
||||
"apps/web-app/public/site.webmanifest",
|
||||
]) {
|
||||
const content = fs.readFileSync(path.join(repoRoot, relativePath), "utf8");
|
||||
assert.doesNotMatch(
|
||||
content,
|
||||
/\b(?:discover(?:y|ing)?,\s*)?recommend(?:ing|ation)?(?:,\s*validat|\s+and\s+stack review)/i,
|
||||
`${relativePath} must not describe current AAS Core as a recommender`,
|
||||
);
|
||||
}
|
||||
|
||||
console.log(`AAS Core public documentation contract passed (${publicFiles.length} files scanned).`);
|
||||
|
||||
@@ -56,6 +56,22 @@ assert.match(
|
||||
/check:warning-budget/,
|
||||
"sync:release-state should enforce the frozen validation warning budget",
|
||||
);
|
||||
assert.match(
|
||||
packageJson.scripts["sync:release-state"],
|
||||
/chain/,
|
||||
"sync:release-state should rebuild canonical release and plugin state",
|
||||
);
|
||||
assert.match(packageJson.scripts.chain, /plugin-compat:sync/);
|
||||
assert.match(packageJson.scripts.chain, /bundles:sync/);
|
||||
const releaseSuiteBlock = releaseWorkflowScript.slice(
|
||||
releaseWorkflowScript.indexOf("function runReleaseSuite"),
|
||||
releaseWorkflowScript.indexOf("function runReleasePreflight"),
|
||||
);
|
||||
assert.match(
|
||||
releaseSuiteBlock,
|
||||
/sync:release-state[\s\S]*plugin-compat:check[\s\S]*bundles:check/,
|
||||
"every release suite should explicitly prove plugin compatibility and bundle alignment after regeneration",
|
||||
);
|
||||
assert.match(
|
||||
packageJson.scripts["sync:repo-state"],
|
||||
/sync:web-assets/,
|
||||
|
||||
@@ -86,12 +86,12 @@ assert.ok(
|
||||
"published README must not link to an AAS Core guide path excluded from the npm package",
|
||||
);
|
||||
assert.ok(
|
||||
coreGuide.includes("--package=agentic-awesome-skills@X.Y.Z"),
|
||||
"AAS Core onboarding must require an explicitly Core-capable release",
|
||||
coreGuide.includes(`--package=agentic-awesome-skills@${packageJson.version}`),
|
||||
"AAS Core onboarding must pin the exact published package version",
|
||||
);
|
||||
assert.ok(
|
||||
!coreGuide.includes("--package=agentic-awesome-skills@latest"),
|
||||
"AAS Core onboarding must not resolve latest while the current dist-tag predates Core",
|
||||
"AAS Core onboarding must not resolve a moving npm dist-tag",
|
||||
);
|
||||
assert.ok(
|
||||
!/^\s*--runtime-version\b/m.test(coreGuide),
|
||||
|
||||
@@ -9,6 +9,9 @@ function normalizeRelativePath(value) {
|
||||
|
||||
const projectRoot = findProjectRoot(__dirname);
|
||||
const pluginsRoot = path.join(projectRoot, "plugins");
|
||||
const releaseVersion = JSON.parse(
|
||||
fs.readFileSync(path.join(projectRoot, "package.json"), "utf8"),
|
||||
).version;
|
||||
const claudeMarketplace = JSON.parse(
|
||||
fs.readFileSync(path.join(projectRoot, ".claude-plugin", "marketplace.json"), "utf8"),
|
||||
);
|
||||
@@ -24,6 +27,19 @@ const codexPluginPaths = new Set(
|
||||
);
|
||||
const knownPluginPaths = new Set([...claudePluginPaths, ...codexPluginPaths]);
|
||||
|
||||
const rootClaudeManifest = JSON.parse(
|
||||
fs.readFileSync(path.join(projectRoot, ".claude-plugin", "plugin.json"), "utf8"),
|
||||
);
|
||||
assert.strictEqual(rootClaudeManifest.version, releaseVersion);
|
||||
assert.strictEqual(claudeMarketplace.metadata.version, releaseVersion);
|
||||
for (const plugin of claudeMarketplace.plugins) {
|
||||
assert.strictEqual(
|
||||
plugin.version,
|
||||
releaseVersion,
|
||||
`Claude marketplace version must match the release: ${plugin.name}`,
|
||||
);
|
||||
}
|
||||
|
||||
for (const relativePluginPath of knownPluginPaths) {
|
||||
const pluginDir = path.join(projectRoot, relativePluginPath);
|
||||
assert.ok(fs.existsSync(pluginDir), `plugin directory must exist: ${relativePluginPath}`);
|
||||
@@ -51,6 +67,11 @@ for (const relativePluginPath of knownPluginPaths) {
|
||||
const codexManifestPath = path.join(pluginDir, ".codex-plugin", "plugin.json");
|
||||
if (fs.existsSync(codexManifestPath)) {
|
||||
const codexManifest = JSON.parse(fs.readFileSync(codexManifestPath, "utf8"));
|
||||
assert.strictEqual(
|
||||
codexManifest.version,
|
||||
releaseVersion,
|
||||
`Codex plugin version must match the release: ${relativePluginPath}`,
|
||||
);
|
||||
assert.strictEqual(codexManifest.skills, "./skills/");
|
||||
assert.ok(
|
||||
codexMarketplace.plugins.some((plugin) => plugin.name === codexManifest.name),
|
||||
@@ -61,6 +82,11 @@ for (const relativePluginPath of knownPluginPaths) {
|
||||
const claudeManifestPath = path.join(pluginDir, ".claude-plugin", "plugin.json");
|
||||
if (fs.existsSync(claudeManifestPath)) {
|
||||
const claudeManifest = JSON.parse(fs.readFileSync(claudeManifestPath, "utf8"));
|
||||
assert.strictEqual(
|
||||
claudeManifest.version,
|
||||
releaseVersion,
|
||||
`Claude plugin version must match the release: ${relativePluginPath}`,
|
||||
);
|
||||
assert.ok(
|
||||
claudeMarketplace.plugins.some((plugin) => plugin.name === claudeManifest.name),
|
||||
`Claude marketplace should expose ${claudeManifest.name}`,
|
||||
|
||||
@@ -71,7 +71,7 @@ class AuditConsistencyTests(unittest.TestCase):
|
||||
f"""<!-- registry-sync: version=8.4.0; skills={total_skills}; stars=26132; updated_at=2026-03-21T00:00:00+00:00 -->
|
||||
# AAS Core — Agentic Awesome Skills
|
||||
|
||||
> **A complete local skill catalog for coding agents—from project inspection and agent-owned selection to a reproducible, reviewable plan.**
|
||||
> **Local, agent-owned skill stacks for coding agents—from complete catalog access to a reproducible, reviewable plan.**
|
||||
|
||||
[](https://github.com/sickn33/agentic-awesome-skills/stargazers)
|
||||
|
||||
@@ -163,6 +163,20 @@ class AuditConsistencyTests(unittest.TestCase):
|
||||
|
||||
self.assertTrue(any("data/skills_index.json" in issue for issue in issues))
|
||||
|
||||
def test_local_consistency_flags_current_core_recommender_copy(self):
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
root = Path(temp_dir)
|
||||
self.write_repo_state(root)
|
||||
(root / "apps" / "web-app" / "scripts").mkdir(parents=True)
|
||||
(root / "apps" / "web-app" / "scripts" / "prerender-routes.js").write_text(
|
||||
"const copy = 'Discover. Recommend. Validate. Preview.';\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
issues = audit_consistency.find_local_consistency_issues(root)
|
||||
|
||||
self.assertTrue(any("apps/web-app/scripts/prerender-routes.js" in issue for issue in issues))
|
||||
|
||||
def test_local_consistency_flags_missing_manifest_fields(self):
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
root = Path(temp_dir)
|
||||
|
||||
@@ -49,8 +49,14 @@ class SyncRepoMetadataTests(unittest.TestCase):
|
||||
|
||||
**Current release: V8.3.0.** Trusted by 25k+ GitHub stargazers, this repository combines official and community skill collections with bundles, workflows, installation paths, and docs that help you go from first install to daily use quickly.
|
||||
|
||||
Codex or Claude inspects your project, enumerates its primary capabilities, searches and compares candidates across the complete local AAS catalog, and chooses the exact skills. Core imposes no semantic policy that favors a small stack; the manifest format has an explicit technical maximum of 128 skills. All 1,273 skills in the current catalog remain individually searchable, readable, and selectable. AAS Core does not rank or recommend skills. Its read-only `compose_stack` tool validates and returns the agent-owned manifest in memory; a client or the `aas` CLI persists the reviewed stack and its optional selection-evidence sidecar.
|
||||
|
||||
The 1,273+ reusable `SKILL.md` playbooks, specialized plugins, bundles, workflows, and direct installers remain important. They are the content, curation, distribution, and compatibility layers around AAS Core—not competing primary products.
|
||||
|
||||
- **Broad coverage with real utility**: 1,273+ skills across development, testing, security, infrastructure, product, and marketing.
|
||||
|
||||
- **Require capability coverage.** MCP session instructions require the agent to evaluate the full project surface—from architecture, domain behavior, data and integrations through testing, security, UX, deployment, and maintenance—then search each applicable capability, compare multiple candidates, cover it with a non-redundant skill or report a catalog gap, and avoid stopping at a minimal shortlist.
|
||||
|
||||
**Start here:** [Install in 1 minute](#installation) · [Recommended plugins](#recommended-specialized-plugins) · [Choose your tool](#choose-your-tool) · [📚 Browse 1,273+ Skills](#browse-1273-skills) · [Bundles & workflows](#bundles--workflows) · [Support the project](#support-the-project)
|
||||
|
||||
- [Browse 1,273+ Skills](#browse-1273-skills)
|
||||
@@ -82,6 +88,11 @@ class SyncRepoMetadataTests(unittest.TestCase):
|
||||
"# Getting Started with Agentic Awesome Skills (V8.3.0)\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
(root / "docs" / "users" / "aas-core.md").write_text(
|
||||
"npm exec --yes --ignore-scripts --package=agentic-awesome-skills@X.Y.Z -- aas mcp configure\\\n\n"
|
||||
"Every current catalog skill is searchable, readable, selectable, and usable.\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
(root / "docs" / "users" / "claude-code-skills.md").write_text(
|
||||
"- It includes 1,273+ skills instead of a narrow single-domain starter pack.\n",
|
||||
encoding="utf-8",
|
||||
@@ -131,11 +142,21 @@ class SyncRepoMetadataTests(unittest.TestCase):
|
||||
self.assertIn("1,304+ skills across development", readme)
|
||||
self.assertIn("[📚 Browse 1,304+ Skills](#browse-1304-skills)", readme)
|
||||
self.assertIn("[Browse 1,304+ Skills](#browse-1304-skills)", readme)
|
||||
self.assertIn("1,304+ reusable `SKILL.md` playbooks", readme)
|
||||
self.assertIn("Local, agent-owned skill stacks for coding agents", readme)
|
||||
self.assertIn("AAS Core does not rank or recommend them", readme)
|
||||
self.assertIn("can persist it as `aas-stack.json`", readme)
|
||||
self.assertIn("The reusable `SKILL.md` playbooks", readme)
|
||||
self.assertIn("Guide capability coverage", readme)
|
||||
self.assertIn("does not certify semantic completeness", readme)
|
||||
self.assertEqual(
|
||||
"# Getting Started with AAS Core\n",
|
||||
(root / "docs" / "users" / "getting-started.md").read_text(encoding="utf-8"),
|
||||
)
|
||||
aas_core = (root / "docs" / "users" / "aas-core.md").read_text(encoding="utf-8")
|
||||
self.assertIn("--package=agentic-awesome-skills@8.4.0", aas_core)
|
||||
self.assertIn("searchable, readable, and available for agent selection", aas_core)
|
||||
self.assertNotIn("X.Y.Z", aas_core)
|
||||
self.assertNotIn("selectable, and usable", aas_core)
|
||||
self.assertIn("1,304+ files", (root / "docs" / "users" / "gemini-cli-skills.md").read_text(encoding="utf-8"))
|
||||
self.assertIn("1,304+ specialized areas", (root / "docs" / "users" / "kiro-integration.md").read_text(encoding="utf-8"))
|
||||
self.assertIn("Total Bundles: 2", (root / "docs" / "users" / "bundles.md").read_text(encoding="utf-8"))
|
||||
@@ -184,8 +205,8 @@ class SyncRepoMetadataTests(unittest.TestCase):
|
||||
"version": "15.0.0-rc.1",
|
||||
"core_included": True,
|
||||
"core_included_from_major": 15,
|
||||
"total_skills": 1968,
|
||||
"total_skills_label": "1,968+",
|
||||
"total_skills": 1969,
|
||||
"total_skills_label": "1,969+",
|
||||
"star_badge_count": "44%2C000%2B",
|
||||
"star_milestone": "44,000+",
|
||||
"star_celebration": "44k",
|
||||
|
||||
@@ -76,6 +76,27 @@ for (const instructions of [agentInstructions, maintenanceGuide]) {
|
||||
assert.doesNotMatch(agentInstructions, /review:skills:local|local-skill-reviewer-policy/);
|
||||
assert.doesNotMatch(maintenanceGuide, /review:skills:local|local-skill-reviewer-policy/);
|
||||
|
||||
const maintainerSkill = fs.readFileSync(
|
||||
path.join(repositoryRoot, "skills", "antigravity-maintainer-batch-release", "SKILL.md"),
|
||||
"utf8",
|
||||
);
|
||||
assert.match(maintainerSkill, /discover every already-configured local AAS MCP host from its real configuration and update each one to the exact same package version/);
|
||||
assert.match(maintainerSkill, /Pin `agentic-awesome-skills@X\.Y\.Z` and `--version X\.Y\.Z`; never use `latest`/);
|
||||
assert.match(maintainerSkill, /real MCP `initialize` plus `tools\/list` handshake reports catalog package version `X\.Y\.Z`/);
|
||||
assert.match(maintainerSkill, /Every stable or prerelease version requires full release alignment/);
|
||||
assert.match(maintainerSkill, /npm run sync:release-state`, `npm run plugin-compat:check`, and `npm run bundles:check`/);
|
||||
assert.match(maintainerSkill, /every published Codex\/Claude plugin mirror and editorial-bundle manifest/);
|
||||
assert.match(maintainerSkill, /explicitly dispatched release-only Pages build/);
|
||||
assert.match(maintainerSkill, /final generator pass must be idempotent/);
|
||||
assert.match(agentInstructions, /Every stable or prerelease version must finish with the full-release-alignment gate/);
|
||||
assert.match(maintenanceGuide, /Run the mandatory full-release-alignment gate/);
|
||||
const releaseProcess = fs.readFileSync(
|
||||
path.join(repositoryRoot, "docs", "maintainers", "release-process.md"),
|
||||
"utf8",
|
||||
);
|
||||
assert.match(releaseProcess, /Complete the mandatory full-release-alignment gate/);
|
||||
assert.match(releaseProcess, /Any mismatch, inaccessible configured host, or stale public surface keeps the release incomplete/);
|
||||
|
||||
const publishWorkflow = fs.readFileSync(
|
||||
path.resolve(__dirname, "..", "..", "..", ".github", "workflows", "publish-npm.yml"),
|
||||
"utf8",
|
||||
|
||||
Reference in New Issue
Block a user