📦 deps(thirdparty): update snapshots
This commit is contained in:
+13
-10
@@ -378,7 +378,7 @@ Reject any PR that fails this:
|
||||
When cutting a new version, follow the maintainer playbook in [`docs/maintainers/release-process.md`](../docs/maintainers/release-process.md).
|
||||
|
||||
**Release checklist (order matters):**
|
||||
Preflight verification → Changelog → `npm run release:prepare -- X.Y.Z` → `npm run release:publish -- X.Y.Z` → npm publish (manual or via CI) → Close remaining linked issues.
|
||||
Preflight verification → Changelog → repository/plugin convergence → `npm run release:prepare -- X.Y.Z` → `npm run release:publish -- X.Y.Z` → npm publish → exact-SHA CI/CodeQL/Pages/live proof → update and handshake every configured local AAS MCP host → final no-drift reconciliation → Close remaining linked issues.
|
||||
|
||||
---
|
||||
|
||||
@@ -398,7 +398,7 @@ Preflight verification → Changelog → `npm run release:prepare -- X.Y.Z` →
|
||||
```bash
|
||||
npm run release:prepare -- X.Y.Z
|
||||
```
|
||||
This validates the release, aligns versioned files, writes the release notes artifact, creates the release commit on `release/vX.Y.Z`, pushes it, and opens the protected release PR. The tag is created only after that exact PR is merged.
|
||||
This validates the release, aligns versioned files, writes the release notes artifact, creates the release commit on `release/vX.Y.Z`, pushes it, and opens the protected release PR. Alignment includes canonical registries, tracked web assets, the offline catalog, compatibility data, both marketplaces, every Codex/Claude plugin mirror, every editorial bundle, and all release-owned plugin manifests. The tag is created only after that exact PR is merged.
|
||||
4. **Create GitHub Release** (REQUIRED):
|
||||
|
||||
> ⚠️ **CRITICAL**: Pushing a tag (`git push --tags`) is NOT enough. You must create a **GitHub Release Object** for it to appear in the sidebar and trigger the NPM publish workflow.
|
||||
@@ -412,17 +412,20 @@ Preflight verification → Changelog → `npm run release:prepare -- X.Y.Z` →
|
||||
**Important:** The release tag must match `package.json`'s version. The [Publish to npm](workflows/publish-npm.yml) workflow runs on **Release published** and will run `npm publish`; npm rejects republishing the same version.
|
||||
Before publishing, that workflow re-runs `sync:release-state`, checks for canonical drift with `git diff --exit-code`, runs tests/docs security/web build, and performs `npm pack --dry-run --json`.
|
||||
|
||||
_Or create the release manually via GitHub UI > Releases > Draft a new release, then publish._
|
||||
Manual GitHub UI publication is emergency-only and does not waive the protected-merge, identity, or full-alignment gates below.
|
||||
|
||||
5. **Publish to npm** (so `npx agentic-awesome-skills` works):
|
||||
- **Option A (manual):** From repo root, with npm logged in and 2FA/token set up:
|
||||
```bash
|
||||
npm publish
|
||||
```
|
||||
You cannot republish the same version; always bump `package.json` before publishing.
|
||||
- **Option B (CI):** On GitHub, create a **Release** (tag e.g. `v4.6.1`). The workflow [Publish to npm](.github/workflows/publish-npm.yml) runs on **Release published** and runs `npm publish` if the repo secret `NPM_TOKEN` is set (npm → Access Tokens → Granular token with Publish, then add as repo secret `NPM_TOKEN`).
|
||||
- The normal path is CI: publishing the protected GitHub Release triggers [Publish to npm](.github/workflows/publish-npm.yml), which publishes the stable version to `latest` and a prerelease to `next` when `NPM_TOKEN` is configured.
|
||||
- Manual `npm publish` is emergency-only. It must publish the exact protected tag contents with the intended dist-tag and does not waive any verification below.
|
||||
|
||||
6. **Close linked issue(s)**:
|
||||
6. **Run the mandatory full-release-alignment gate**:
|
||||
- Re-run `npm run sync:release-state`, `npm run plugin-compat:check`, and `npm run bundles:check`; require a clean, idempotent second pass.
|
||||
- Confirm `package.json`, `package-lock.json`, generated registries and offline catalog, tracked web assets, `.agents/plugins/marketplace.json`, `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, and every published Codex/Claude plugin or editorial-bundle manifest are regenerated and versioned as `X.Y.Z`.
|
||||
- Bind the local/remote `main`, tag, GitHub Release, npm version and intended dist-tag, required CI, CodeQL, and release-only Pages deployment to the exact released commit. Verify live `llms.txt`, `skills.json`, catalog/plugin routes, and the legacy bridge.
|
||||
- Discover every existing AAS MCP entry from real local host configuration. Update each existing host with the published package's digest-bound two-pass `aas mcp configure` flow, pin `agentic-awesome-skills@X.Y.Z` and `--version X.Y.Z`, preserve a backup, restart or reconnect the client, and prove `initialize` plus `tools/list` reports `X.Y.Z`. Never create an absent host entry without separate authorization.
|
||||
- Fetch `origin/main` again after automation settles, fast-forward local `main`, require `main...origin/main` to be `0 0`, and repeat the no-drift, public-surface, and MCP parity checks. Any mismatch or inaccessible configured host keeps the release incomplete.
|
||||
|
||||
7. **Close linked issue(s)**:
|
||||
- Issues that had `Closes #N` / `Fixes #N` in a merged PR are already closed.
|
||||
- For any issue that was fixed by the release but not auto-closed, close it manually and add a comment, e.g.:
|
||||
```bash
|
||||
|
||||
@@ -47,6 +47,8 @@ Treat `main` as pull-request-only. Perform maintainer edits on a topic branch or
|
||||
|
||||
Use the skill's end-to-end sequence: complete triage, repair mergeable source PRs, run checks in parallel, merge source PRs in conflict-aware order, perform one canonical synchronization after the source batch, use the scripted protected-release flow when requested, and verify final `main`, tag, GitHub Release, npm package, CI, and live public surfaces. For changed `SKILL.md` files, distinguish a real Tessl `review` from `manual-review-required`; the latter means Tessl did not run and requires a maintainer review attested to the exact full head SHA. If neither an installed skill nor the repository-canonical copy is available and readable, stop before making repository changes and report that blocker explicitly.
|
||||
|
||||
Every stable or prerelease version must finish with the full-release-alignment gate in the maintainer skill. Do not declare a release complete until clean local `main` equals `origin/main`; canonical generated state is drift-free; every Codex and Claude plugin mirror, editorial bundle, manifest, compatibility report, and marketplace is regenerated and version-aligned; the tag, GitHub Release, npm version and intended dist-tag agree; CI, CodeQL, and the release-only Pages deployment for the exact released commit are green; live catalog and legacy-bridge surfaces match; and every already-configured local AAS MCP host is pinned to and actually running the released version. A release request authorizes updating existing AAS host entries only, never creating an absent host configuration.
|
||||
|
||||
#### Skill Content Review Gate
|
||||
|
||||
For every canonical `SKILL.md` change or tracked bundle-file change, run `npm run validate`, `npm run validate:references`, `npm run security:docs`, and the relevant tests. Inspect semantics, safety, provenance, declared risk, limitations, and every bundled file. The official merge gate remains a truthful Tessl `review` or a maintainer review attested to the exact full head SHA; heuristic local scores and inferred risk labels are not merge authority.
|
||||
|
||||
@@ -9,13 +9,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
|
||||
- Clarified the AAS Core activation path with an exact release-pinned MCP command, a concise end-to-end quick path, an explicit preview-status matrix, and a tested boundary between structural validity, semantic suitability, compatibility, and safety.
|
||||
- Made exact package/MCP version parity a mandatory maintainer release gate: after npm publishes a new AAS package, every already-configured local AAS MCP host must be updated through the approval-bound, backup-first configuration flow and verified with a real MCP handshake before the release task is complete.
|
||||
|
||||
## [15.1.0] - 2026-07-19 - "Agent-Owned Selection and Audit Evidence"
|
||||
|
||||
> AAS Core now leaves semantic skill selection to the coding agent, validates the exact chosen stack, and emits durable evidence that can be reviewed without exposing project content.
|
||||
|
||||
Start here:
|
||||
|
||||
- Install: `npx agentic-awesome-skills`
|
||||
- AAS Core setup: configure the exact `aas` runtime with the [Core guide](https://github.com/sickn33/agentic-awesome-skills/blob/main/docs/users/aas-core.md)
|
||||
- Direct skill distribution: `npx agentic-awesome-skills`
|
||||
- [Choose your tool](https://github.com/sickn33/agentic-awesome-skills#choose-your-tool)
|
||||
- [Best skills by tool](https://github.com/sickn33/agentic-awesome-skills#best-skills-by-tool)
|
||||
- [Bundles](https://github.com/sickn33/agentic-awesome-skills/blob/main/docs/users/bundles.md)
|
||||
@@ -32,7 +38,7 @@ Start here:
|
||||
- Added an MCP session-level capability coverage contract for Codex and Claude: agents must enumerate primary project capabilities, search and compare candidates for each, cover every capability or report a catalog gap, and avoid smallest-stack optimization before `compose_stack`. Core imposes no semantic small-stack policy; each manifest retains an explicit technical maximum of 128 skills.
|
||||
- Moved semantic skill selection fully to Codex and Claude: agents inspect the project, search and read the complete local catalog, and choose exact skill IDs using their own judgment; AAS Core no longer ranks or recommends skills.
|
||||
- Replaced the recommendation workflow with read-only `compose_stack`, which validates and returns the agent-owned manifest in memory; clients or the CLI persist `aas-stack.json` for inspection, validation, and immutable plan preview.
|
||||
- Removed Core selection policy and metadata eligibility gates. Every canonical skill is searchable, readable, selectable, and usable; risk, source, setup, compatibility, review, and evidence metadata are informational only.
|
||||
- Removed Core selection policy and metadata eligibility gates. Every canonical skill is searchable, readable, and available for agent selection; risk, source, setup, compatibility, review, and evidence metadata are informational only.
|
||||
- Made `search_skills` retrieval neutral: matching results preserve stable catalog order and no longer expose relevance scores or ranking while exact-ID lookup and complete pagination remain deterministic.
|
||||
- Updated the public product narrative, host guides, Workbench-facing copy sources, package metadata, and maintainer workflow to describe the agent-owned selection boundary. Released entries below remain historical descriptions of their releases.
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<!-- registry-sync: version=15.1.0; skills=1969; stars=43586; updated_at=2026-07-19T19:39:12+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.**
|
||||
|
||||
**Current release: V15.1.0.** This release includes AAS Core for complete local catalog search, agent-owned selection, manifest validation, planning, and diagnosis. Apply and recovery remain experimental and outside the supported preview path.
|
||||
|
||||
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,968 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.
|
||||
Codex or Claude inspects your project and chooses exact skills from the complete local AAS catalog. AAS Core does not rank or recommend them: its read-only `compose_stack` tool validates the agent-owned selection in memory, and a client or the `aas` CLI can persist it as `aas-stack.json` and produce an immutable plan before any target change.
|
||||
|
||||
**[Read the AAS Core preview guide →](https://github.com/sickn33/agentic-awesome-skills/blob/main/docs/users/aas-core.md)**
|
||||
|
||||
@@ -21,7 +21,7 @@ Project
|
||||
-> human review (optionally in Workbench)
|
||||
```
|
||||
|
||||
The 1,967+ 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.
|
||||
The 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.
|
||||
|
||||
This is an independent community project. It is not affiliated with, sponsored by, endorsed by, or authorized by Google. Google, Antigravity, Gemini, and related product names are referenced only to describe compatibility and install targets. The GitHub repository is canonical; the hosted catalog and browser-local Workbench are companion discovery and review surfaces, not a hosted control plane.
|
||||
|
||||
@@ -47,18 +47,32 @@ This is an independent community project. It is not affiliated with, sponsored b
|
||||
AAS Core gives the repository one product model:
|
||||
|
||||
- **Let the agent choose.** The local MCP preserves `search_skills`, `get_skill`, `compose_stack`, `inspect_stack`, and `diff_stack`, and adds read-only `export_selection_evidence` and `inspect_selection_evidence`; Core does not rank, recommend, exclude, or hide skills.
|
||||
- **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.
|
||||
- **Guide 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. Core records and validates the resulting selection, but it does not certify semantic completeness.
|
||||
- **Keep the chosen stack and evidence reviewable.** A client or the CLI can persist `aas-stack.json` and the separate `aas-selection-evidence.json` sidecar in an `artifact-dir`; the manifest preserves exact agent-selected IDs, while evidence records factual process trace and the agent-declared capability ledger.
|
||||
- **Validate and preview through the CLI.** `aas stack validate` checks the proposal, while `aas stack plan` produces an immutable, per-target plan without applying it.
|
||||
- **Review in Workbench.** The hosted Workbench imports and reviews stack/plan JSON in browser memory; it does not access your filesystem or install anything.
|
||||
- **Retain every useful distribution path.** Direct installs, plugins, bundles, workflows, and the full catalog remain available as payload and compatibility surfaces.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Structural and identity validity does not certify semantic fit, compatibility, setup correctness, operational safety, or safety to apply.
|
||||
|
||||
| Surface | Current status |
|
||||
| --- | --- |
|
||||
| Published package | Current npm release; AAS Core status is `agent-first-preview` |
|
||||
| Catalog search and inspection | Supported preview; local and read-only |
|
||||
| Agent-owned composition | Supported preview; Core validates IDs and structure, not semantic suitability; manifests have a technical maximum of 128 skills |
|
||||
| Stack validation and plan preview | Supported preview; no target skill changes |
|
||||
| Workbench | Browser-local review of stack and plan artifacts |
|
||||
| Selection evidence | Exported and inspected through MCP/CLI contracts; not yet reviewed in Workbench |
|
||||
| Apply and recovery | Experimental, explicit opt-in, outside the supported safety claim |
|
||||
| Semantic suitability certification | Not provided |
|
||||
|
||||
Read the [AAS Core guide](https://github.com/sickn33/agentic-awesome-skills/blob/main/docs/users/aas-core.md) for the exact trust boundaries, current preview status, Codex/Claude setup model, and CLI lifecycle.
|
||||
|
||||
## Why This Repo
|
||||
|
||||
- **Agent-first, locally controlled**: Codex or Claude inspects the project and chooses from the complete local catalog without uploading your repository to AAS.
|
||||
- **Complete and inspectable**: every catalog skill is searchable, readable, selectable, and usable; metadata is informational and never an eligibility gate.
|
||||
- **Complete and inspectable**: every catalog skill is searchable, readable, and available for agent selection; Core does not certify suitability, compatibility, or operational safety, and metadata is informational rather than an eligibility gate.
|
||||
- **Approval before writes**: the durable artifacts are an approved stack and immutable plan, not an opaque one-shot install.
|
||||
- **Installable, not just inspirational**: use the compatible legacy installer or plugin distributions when direct delivery is the right path.
|
||||
- **Built for major agent workflows**: Claude Code, Cursor, Codex CLI, Autohand Code, Gemini CLI, Antigravity, Kiro, OpenCode, Copilot, and more.
|
||||
@@ -67,6 +81,10 @@ Read the [AAS Core guide](https://github.com/sickn33/agentic-awesome-skills/blob
|
||||
- **Focused delivery remains available**: specialized plugins package proven sets for web, security, data, docs, DevOps, QA, OSS, or agent/MCP workflows.
|
||||
- **Useful whether you want breadth or curation**: install the full catalog, choose a specialized plugin, start with bundles, or compare alternatives before installing.
|
||||
|
||||
### Why not just search the skills directory?
|
||||
|
||||
Direct file search can find candidate prose, but it leaves the result in the conversation. AAS Core adds verified catalog identity, explicit target binding, durable desired state, optional selection evidence, deterministic validation, immutable planning, and dedicated review surfaces. Its value is not choosing better than the coding agent; it is turning the agent's choice into reproducible, inspectable state.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [AAS Core: Agent-First Preview](#aas-core-agent-first-preview)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Source
|
||||
|
||||
- Repo: https://github.com/sickn33/antigravity-awesome-skills
|
||||
- Ref: b67a846c7c41cecbcc7ea69edba9fcecf3a04da1
|
||||
- Ref: 5833e0fa1e5f47873b39b3727b9c66640cbeade2
|
||||
- Remove-Paths:
|
||||
- Snapshot: 2026-07-20
|
||||
- Snapshot: 2026-07-21
|
||||
- Sync-Mode: copy_skill_dirs
|
||||
- Notes: vendored into playbook branch thirdparty/skill
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- Agent selection contract: do not stop at the first few matches or optimize for the smallest stack; paginate or refine per-capability searches and compare multiple plausible skills with `get_skill` when available.
|
||||
- Coverage dimensions: explicitly evaluate architecture/runtime, languages/frameworks, domain behavior, data/storage, integrations, testing/quality, security/privacy, UX/accessibility, deployment/operations, and maintenance workflow; mark dimensions not applicable instead of silently omitting them.
|
||||
- Selection boundary: Core never ranks, recommends, excludes, or disables skills; catalog metadata is informational only.
|
||||
- Catalog access: all 1,968 current skills remain individually searchable, readable, and selectable.
|
||||
- Catalog access: every current catalog skill remains individually searchable, readable, and selectable.
|
||||
- Evidence privacy: the sidecar records raw `search_skills` queries, so catalog queries must not contain secrets or private source text.
|
||||
- Preview boundary: planning may write an explicitly requested plan artifact but does not write target state; apply and recovery are not part of the supported preview path.
|
||||
- Supported real clients include Codex CLI and Claude Code; the catalog also serves Cursor, Gemini CLI, Antigravity, and other compatible hosts.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"display": "standalone",
|
||||
"background_color": "#0f172a",
|
||||
"theme_color": "#0f172a",
|
||||
"description": "Agent-first skill recommendation and stack review backed by the Agentic Awesome Skills catalog.",
|
||||
"description": "Neutral catalog retrieval, agent-owned skill selection, and stack review backed by the Agentic Awesome Skills catalog.",
|
||||
"icons": [
|
||||
{
|
||||
"src": "vite.svg",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ const TEMPLATE_PATH = path.join(DIST_DIR, 'index.html');
|
||||
const SKILLS_PATH = path.join(PUBLIC_DIR, 'skills.json');
|
||||
const SEO_LANDING_PAGES_PATH = path.join(ROOT_DIR, 'src', 'data', 'seoLandingPages.json');
|
||||
|
||||
const HOME_CATALOG_COUNT_FALLBACK = 1935;
|
||||
const HOME_CATALOG_COUNT_FALLBACK = 1969;
|
||||
const PRERENDER_SOCIAL_IMAGE = 'social-card.png';
|
||||
const SITE_NAME = 'Agentic Awesome Skills';
|
||||
const REPOSITORY_URL = 'https://github.com/sickn33/agentic-awesome-skills';
|
||||
@@ -19,12 +19,12 @@ const FAQ_ITEMS = [
|
||||
{
|
||||
question: 'What is Agentic Awesome Skills?',
|
||||
answer: (countLabel) =>
|
||||
`Agentic Awesome Skills is built around AAS Core, a local agent-first preview control plane for discovering, recommending, validating, and planning exact skill stacks. AAS Core is backed by an evidence-rich catalog of ${countLabel} reusable SKILL.md playbooks.`,
|
||||
`Agentic Awesome Skills is built around AAS Core, a local agent-first preview boundary for neutral catalog retrieval, exact agent-owned selection, validation, and planning. AAS Core is backed by an evidence-rich catalog of ${countLabel} reusable SKILL.md playbooks.`,
|
||||
},
|
||||
{
|
||||
question: 'How do I use AAS Core preview?',
|
||||
answer:
|
||||
'Configure the local stdio MCP with the AAS CLI, let the agent search, inspect, and recommend skills, then validate the proposed aas-stack.json and preview its immutable plan in the CLI. Apply and recovery are outside the non-applying preview path.',
|
||||
'Configure the local stdio MCP with the AAS CLI, let the agent search and inspect the complete catalog, choose exact skill IDs itself, then validate the proposed aas-stack.json and preview its immutable plan in the CLI. Apply and recovery are outside the non-applying preview path.',
|
||||
},
|
||||
{
|
||||
question: 'Is Agentic Awesome Skills a GitHub repository?',
|
||||
@@ -334,7 +334,7 @@ function buildHomeFallback({ landingPages, siteBaseUrl }) {
|
||||
return [
|
||||
'<main data-prerender-fallback="true">',
|
||||
'<h1>AAS Core: agent-first skill stacks for Codex, Claude Code, and compatible clients</h1>',
|
||||
'<p><strong>Discover. Recommend. Validate. Preview.</strong></p>',
|
||||
'<p><strong>Search. Choose. Validate. Preview.</strong></p>',
|
||||
'<p>Turn intent into an explainable aas-stack.json and immutable plan preview without target writes, backed by the AAS skill catalog.</p>',
|
||||
`<nav aria-label="Catalog hubs"><ul>${buildStaticLinkList(links)}</ul></nav>`,
|
||||
'</main>',
|
||||
@@ -397,13 +397,13 @@ function buildHomeMeta({ catalogCount, imageUrl, canonicalUrl }) {
|
||||
const visibleCount = Math.max(catalogCount, HOME_CATALOG_COUNT_FALLBACK);
|
||||
const formattedCount = visibleCount.toLocaleString('en-US');
|
||||
const title = `AAS Core Preview | Agent-first stacks backed by ${formattedCount}+ skills`;
|
||||
const description = `Use AAS Core preview to discover, recommend, validate, and plan explainable skill stacks for Codex, Claude Code, and compatible clients, backed by ${formattedCount}+ cataloged skills.`;
|
||||
const description = `Use AAS Core preview for neutral catalog retrieval, exact agent-owned selection, validation, and plan preview for Codex, Claude Code, and compatible clients, backed by ${formattedCount}+ cataloged skills.`;
|
||||
const catalogBaseUrl = canonicalUrl.replace(/\/$/, '');
|
||||
const sourceCodeEntity = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'SoftwareSourceCode',
|
||||
name: SITE_NAME,
|
||||
description: `AAS Core preview is a local agent-first control plane for recommending, validating, and planning exact skill stacks backed by ${formattedCount}+ agentic skills.`,
|
||||
description: `AAS Core preview is a local agent-first boundary for neutral catalog retrieval, exact agent-owned selection, validation, and planning, backed by ${formattedCount}+ agentic skills.`,
|
||||
url: REPOSITORY_URL,
|
||||
sameAs: [...new Set([
|
||||
canonicalUrl,
|
||||
@@ -424,7 +424,7 @@ function buildHomeMeta({ catalogCount, imageUrl, canonicalUrl }) {
|
||||
'GitHub AI skills repository',
|
||||
'AI agent skills GitHub',
|
||||
'AAS Core',
|
||||
'skill recommendation',
|
||||
'agent-selected skill stack',
|
||||
'agent stack',
|
||||
'Model Context Protocol',
|
||||
'specialized plugins',
|
||||
@@ -631,7 +631,7 @@ function buildWorkbenchMeta({ imageUrl, canonicalUrl }) {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'WebPage',
|
||||
name: 'Agentic Awesome Skills Workbench',
|
||||
headline: 'Review what AAS Core recommended',
|
||||
headline: 'Review what your agent selected',
|
||||
description,
|
||||
url: canonicalUrl,
|
||||
mainEntityOfPage: canonicalUrl,
|
||||
|
||||
@@ -737,9 +737,17 @@ export function assertIndexDiscoveryMeta(htmlText, { expectedSkillCountLabel = '
|
||||
assert(combined.includes('AAS Core'), 'Home SEO metadata must lead with AAS Core.');
|
||||
assert(combined.includes('preview'), 'Home SEO metadata must state the preview boundary.');
|
||||
assert(combined.includes('catalog'), 'Home SEO metadata must identify the supporting catalog.');
|
||||
assert(
|
||||
!/\bAAS Core[^.]*recommend|\bCore preview[^.]*recommend|\brecommend(?:ing|ation)?(?:,\s*validat|\s+and\s+plan)/i.test(combined),
|
||||
'Home SEO metadata must not describe current AAS Core as a recommender.',
|
||||
);
|
||||
assert(!combined.includes('prompt templates'), 'Home SEO metadata must not use stale prompt-template positioning.');
|
||||
assertOnlyExpectedSkillCountLabel(combined, expectedSkillCountLabel, 'Home SEO metadata');
|
||||
const jsonLdText = JSON.stringify(extractJsonLdEntries(htmlText));
|
||||
assert(
|
||||
!/\bAAS Core[^.]*recommend|\bCore preview[^.]*recommend|\brecommend(?:ing|ation)?(?:,\s*validat|\s+and\s+plan)/i.test(jsonLdText),
|
||||
'Home JSON-LD must not describe current AAS Core as a recommender.',
|
||||
);
|
||||
assertOnlyExpectedSkillCountLabel(jsonLdText, expectedSkillCountLabel, 'Home JSON-LD');
|
||||
if (requireHostedUrl) {
|
||||
assertNoLocalhostUrl(combined, 'Home SEO metadata');
|
||||
@@ -765,6 +773,10 @@ export function assertStaticIndexShell(htmlText, { expectedSkillCountLabel = '1,
|
||||
assert(combined.includes('AAS Core'), 'Source index shell must lead with AAS Core.');
|
||||
assert(combined.includes('preview'), 'Source index shell must state the preview boundary.');
|
||||
assert(combined.includes('catalog'), 'Source index shell must identify the supporting catalog.');
|
||||
assert(
|
||||
!/\bAAS Core[^.]*recommend|\bCore preview[^.]*recommend|\brecommend(?:ing|ation)?(?:,\s*validat|\s+and\s+plan)/i.test(combined),
|
||||
'Source index shell must not describe current AAS Core as a recommender.',
|
||||
);
|
||||
assertOnlyExpectedSkillCountLabel(combined, expectedSkillCountLabel, 'Source index shell');
|
||||
if (requireHostedUrl) {
|
||||
assertNoLocalhostUrl(combined, 'Source index shell');
|
||||
|
||||
@@ -703,7 +703,7 @@ describe('seo assets verification helpers', () => {
|
||||
<html>
|
||||
<head>
|
||||
<title>AAS Core Preview | Agent-first stacks backed by 1,678+ skills</title>
|
||||
<meta name="description" content="Use AAS Core preview to recommend and plan exact stacks backed by 1,678+ cataloged skills." />
|
||||
<meta name="description" content="Use AAS Core preview for neutral catalog retrieval and plan preview backed by 1,678+ cataloged skills." />
|
||||
<meta property="og:title" content="AAS Core Preview | Agent-first stacks backed by 1,678+ skills" />
|
||||
<meta property="og:description" content="Use AAS Core preview with the supporting catalog." />
|
||||
<meta name="twitter:title" content="AAS Core Preview | Agent-first stacks backed by 1,678+ skills" />
|
||||
@@ -729,7 +729,7 @@ describe('seo assets verification helpers', () => {
|
||||
<html>
|
||||
<head>
|
||||
<title>AAS Core Preview | Agent-first stacks backed by 1,678+ skills</title>
|
||||
<meta name="description" content="Use AAS Core preview to recommend and plan exact stacks backed by 1,678+ cataloged skills." />
|
||||
<meta name="description" content="Use AAS Core preview for neutral catalog retrieval and plan preview backed by 1,678+ cataloged skills." />
|
||||
<meta property="og:title" content="AAS Core Preview | Agent-first stacks backed by 1,678+ skills" />
|
||||
<meta property="og:description" content="Use AAS Core preview with the supporting catalog." />
|
||||
<meta name="twitter:title" content="AAS Core Preview | Agent-first stacks backed by 1,678+ skills" />
|
||||
@@ -755,7 +755,7 @@ describe('seo assets verification helpers', () => {
|
||||
<html>
|
||||
<head>
|
||||
<title>AAS Core Preview | Agent-first stacks backed by 1,678+ skills</title>
|
||||
<meta name="description" content="Use AAS Core preview to recommend and plan exact stacks backed by 1,678+ cataloged skills." />
|
||||
<meta name="description" content="Use AAS Core preview for neutral catalog retrieval and plan preview backed by 1,678+ cataloged skills." />
|
||||
<meta property="og:title" content="AAS Core Preview | Agent-first stacks backed by 1,678+ skills" />
|
||||
<meta property="og:description" content="Use AAS Core preview with the supporting catalog." />
|
||||
<meta name="twitter:title" content="AAS Core Preview | Agent-first stacks backed by 1,678+ skills" />
|
||||
|
||||
@@ -173,7 +173,7 @@ export function Home(): React.ReactElement {
|
||||
<label>
|
||||
<span className="sr-only">Sort skills</span>
|
||||
<select aria-label="Sort skills" value={sortBy} onChange={(event) => setSortBy(event.target.value)}>
|
||||
<option value="default">Recommended</option>
|
||||
<option value="default">Catalog order</option>
|
||||
<option value="stars">Community saves</option>
|
||||
<option value="newest">Newest</option>
|
||||
<option value="az">A to Z</option>
|
||||
@@ -237,7 +237,7 @@ export function Home(): React.ReactElement {
|
||||
<section className="catalog-support" aria-label="Catalog guides">
|
||||
<div className="catalog-support__intro">
|
||||
<h2>How AAS Core uses the catalog</h2>
|
||||
<p>The local MCP and CLI choose from catalog evidence; the Workbench reviews what the agent proposed.</p>
|
||||
<p>The coding agent chooses from catalog evidence; the local MCP validates the selection, the CLI persists and plans it, and Workbench reviews the resulting artifacts.</p>
|
||||
</div>
|
||||
<div className="catalog-support__concepts">
|
||||
{conceptCards.map((card) => (
|
||||
|
||||
@@ -7,7 +7,7 @@ const SITE_NAME = 'Agentic Awesome Skills';
|
||||
const REPOSITORY_URL = 'https://github.com/sickn33/agentic-awesome-skills';
|
||||
const HOSTED_CATALOG_URL = 'https://sickn33.github.io/agentic-awesome-skills/';
|
||||
const TOPIC_ROUTE_PREFIX = '/topics';
|
||||
const HOME_CATALOG_COUNT_FALLBACK = 1935;
|
||||
const HOME_CATALOG_COUNT_FALLBACK = 1969;
|
||||
|
||||
export interface SeoLandingPageLink {
|
||||
label: string;
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"assets":[{"path":"data/aas-v1/skill-content-index.v1.json","sha256":"sha256-5648940dab0d17d7b7527c6f591d5bdb719eca7c264fbc265c0f68b33e6ef317","size":271461},{"path":"data/aas-v1/skill-content.v1.ndjson","sha256":"sha256-82d3fd6d61403d5e4c377d51200c5826dcd1a1cfde4c55d1d78a6ac7845f4c71","size":19067364},{"path":"data/catalog.json","sha256":"sha256-44dc3d94045bd5918593ed76361a005e4253d26b6fb7242ca744b757153608d6","size":1625283},{"path":"tools/lib/aas-v1/ontology.v1.json","sha256":"sha256-25169aad0a3d2e8420b0acd65a35f7ce4ecb08fcbe0018ee978808ce0c8944ed","size":7109}],"catalogDigest":"sha256-5f6dabb84f897c76535649260a974d3e998203c08fbdf1001573c8fc39dc3e9e","catalogSchemaVersion":"2.0.0","digestVersion":1,"package":"agentic-awesome-skills","packageVersion":"15.1.0","schemaVersion":1,"skillCount":1969}
|
||||
{"assets":[{"path":"data/aas-v1/skill-content-index.v1.json","sha256":"sha256-6cddeb69857a1f3bd972f9c12b5d1657400e5e34b99990d8ed359dcdb7c9ec62","size":271461},{"path":"data/aas-v1/skill-content.v1.ndjson","sha256":"sha256-42d615b67e7cc685948d7234af0d4c285ff270e74fba3aa52a7b99865ebe3a5f","size":19070570},{"path":"data/catalog.json","sha256":"sha256-44dc3d94045bd5918593ed76361a005e4253d26b6fb7242ca744b757153608d6","size":1625283},{"path":"tools/lib/aas-v1/ontology.v1.json","sha256":"sha256-25169aad0a3d2e8420b0acd65a35f7ce4ecb08fcbe0018ee978808ce0c8944ed","size":7109}],"catalogDigest":"sha256-0414c7b80ab3624ab7ad00e0db20765a64b844ef4f09b103afab123bc2bf026b","catalogSchemaVersion":"2.0.0","digestVersion":1,"package":"agentic-awesome-skills","packageVersion":"15.1.0","schemaVersion":1,"skillCount":1969}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2
-2
@@ -13,7 +13,7 @@ The earlier deterministic recommendation design and goal documents are retained
|
||||
|
||||
## Supported surfaces
|
||||
|
||||
- A complete, integrity-verified local catalog in which every canonical skill is searchable, readable, selectable, and usable.
|
||||
- A complete, integrity-verified local catalog in which every canonical skill is searchable, readable, and available for agent selection.
|
||||
- Local stdio MCP tools `search_skills`, `get_skill`, `compose_stack`, `inspect_stack`, and `diff_stack`, plus `aas://skills/{id}`.
|
||||
- Minimal, schema-validated `aas-stack.json` with pinned catalog identity, targets, goals, and exact agent-selected skill IDs.
|
||||
- CLI manifest validation, immutable plan preview, and read-only diagnosis.
|
||||
@@ -23,7 +23,7 @@ The earlier deterministic recommendation design and goal documents are retained
|
||||
|
||||
1. The coding agent owns semantic selection. It may inspect the project with its normal local capabilities, search broadly, read full skill content when useful, compare alternatives, and choose exact IDs.
|
||||
2. AAS Core does not rank, recommend, promote, demote, exclude, or abstain on skills.
|
||||
3. Catalog metadata is informational only. Missing, incomplete, cautionary, or manually reviewed metadata must never make a canonical skill unsearchable, unselectable, or unusable.
|
||||
3. Catalog metadata is informational only. Missing, incomplete, cautionary, or manually reviewed metadata must never make a canonical skill unsearchable or unavailable for agent selection.
|
||||
4. `compose_stack` validates catalog identity, target shape, goals, exact IDs, and structural limits, then returns the pinned stack shape. It does not substitute a different selection.
|
||||
5. `aas-stack.json` has no Core selection policy. User constraints can guide the agent's reasoning, but they are not an MCP eligibility filter or manifest gate.
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# AAS Agent-First Control Plane v1 Worklog
|
||||
|
||||
- 2026-07-19: Semantic skill selection moved to Codex and Claude. Core now exposes the complete catalog and validates/pins exact agent-selected IDs through `compose_stack`; selection policy and metadata eligibility gates were retired. Every canonical skill must remain searchable, readable, selectable, and usable. Earlier recommendation entries below are historical.
|
||||
- 2026-07-19: Semantic skill selection moved to Codex and Claude. Core now exposes the complete catalog and validates/pins exact agent-selected IDs through `compose_stack`; selection policy and metadata eligibility gates were retired. Every canonical skill must remain searchable, readable, and available for agent selection. Earlier recommendation entries below are historical.
|
||||
|
||||
## 2026-07-18 — Baseline workflow retired
|
||||
|
||||
|
||||
@@ -60,7 +60,9 @@ This command:
|
||||
- checks `CHANGELOG.md` for `X.Y.Z`
|
||||
- aligns `package.json` / `package-lock.json`
|
||||
- runs the full release suite
|
||||
- explicitly proves `plugin-compat:check` and `bundles:check` after regeneration
|
||||
- refreshes release metadata in `README.md`
|
||||
- regenerates canonical registries, tracked web assets, both plugin marketplaces, every Codex/Claude mirror and editorial bundle, and every release-owned plugin manifest
|
||||
- stages canonical release files
|
||||
- creates and pushes `release/vX.Y.Z`
|
||||
- opens a release PR containing the scripted canonical release state
|
||||
@@ -89,6 +91,19 @@ npm view agentic-awesome-skills dist-tags --json
|
||||
|
||||
The workflow reruns `sync:release-state`, installs Python dependencies from `tools/requirements.txt`, refreshes tracked web assets, fails on canonical drift via `git diff --exit-code`, executes tests and docs security checks, runs the web-app coverage gate, enforces `npm audit --audit-level=high`, builds the web app, and dry-runs the npm package before publishing.
|
||||
|
||||
8. Complete the mandatory full-release-alignment gate.
|
||||
|
||||
A stable or prerelease version is not complete when only its tag, GitHub Release, or npm package exists. After publication:
|
||||
|
||||
- rerun `npm run sync:release-state`, `npm run plugin-compat:check`, and `npm run bundles:check`, then require an idempotent second pass and a clean tree;
|
||||
- verify every release-owned Codex/Claude plugin manifest and Claude marketplace entry equals `X.Y.Z`, without treating nested third-party skill manifests as AAS release manifests;
|
||||
- bind local and remote `main`, the tag, GitHub Release, npm version and intended dist-tag, required CI, CodeQL, and the explicitly dispatched release-only Pages deployment to the exact released commit;
|
||||
- read back live `llms.txt`, `skills.json`, catalog/plugin routes, and the legacy redirect bridge;
|
||||
- discover every already-configured local AAS MCP host from real configuration, update each existing entry with the digest-bound two-pass `aas mcp configure` flow, pin `agentic-awesome-skills@X.Y.Z` and `--version X.Y.Z`, preserve a backup, restart or reconnect the host, and prove a real `initialize` plus `tools/list` handshake reports `X.Y.Z`;
|
||||
- fetch and fast-forward `main` again after automation settles, require `git rev-list --left-right --count main...origin/main` to return `0 0`, and repeat the no-drift, public-surface, and MCP parity checks.
|
||||
|
||||
A release request covers updates to existing AAS MCP host entries only. Creating a previously absent host configuration still needs separate authorization. Any mismatch, inaccessible configured host, or stale public surface keeps the release incomplete.
|
||||
|
||||
## Canonical Sync Bot
|
||||
|
||||
`main` still uses the repository's auto-sync model for canonical generated artifacts, but through a protected pull-request contract:
|
||||
|
||||
@@ -6,7 +6,7 @@ This document keeps the repository's GitHub-facing discovery copy aligned with t
|
||||
|
||||
Preferred positioning:
|
||||
|
||||
> AAS Core is the local, deterministic boundary that exposes the complete catalog, validates exact skill IDs selected by the coding agent from an explicit project profile, and produces an immutable preview plan, backed by 1,968+ cataloged skills.
|
||||
> AAS Core is the local, deterministic boundary that exposes the complete catalog, validates exact skill IDs selected by the coding agent from an explicit project profile, and produces an immutable preview plan, backed by the current catalog.
|
||||
|
||||
Key framing:
|
||||
|
||||
@@ -20,7 +20,7 @@ Key framing:
|
||||
|
||||
Preferred description:
|
||||
|
||||
> Local, deterministic AAS Core for explainable coding-agent skill stacks, backed by 1,967+ cataloged skills. Includes a read-only MCP, stack CLI, Workbench review, plugins, bundles, workflows, and direct distribution.
|
||||
> Local, deterministic AAS Core for explainable coding-agent skill stacks, backed by the current catalog. Includes a read-only MCP, stack CLI, Workbench review, plugins, bundles, workflows, and direct distribution.
|
||||
|
||||
Preferred homepage:
|
||||
|
||||
|
||||
@@ -20,14 +20,17 @@ your project
|
||||
-> aas stack plan (preview; no skill changes)
|
||||
```
|
||||
|
||||
AAS MCP does not scan the repository and does not decide which skills are best. Codex or Claude uses its own project understanding and judgment. All 1,968 skills in the current catalog remain individually searchable, readable, selectable, and usable; missing or incomplete metadata never makes a skill ineligible. Core has no semantic policy that favors a small stack, while every stack manifest has an explicit technical maximum of 128 skills.
|
||||
AAS MCP does not scan the repository and does not decide which skills are best. Codex or Claude uses its own project understanding and judgment. Every current catalog skill remains individually searchable, readable, and available for agent selection; missing or incomplete metadata never makes a skill ineligible. Core has no semantic policy that favors a small stack, while every stack manifest has an explicit technical maximum of 128 skills.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Structural and identity validity does not certify semantic fit, compatibility, setup correctness, operational safety, or safety to apply.
|
||||
|
||||
## Configure the local MCP
|
||||
|
||||
> **Release boundary:** AAS Core landed after release 14.6.0. Use an exact Core-capable release rather than an unreviewed moving tag.
|
||||
|
||||
```bash
|
||||
npm exec --yes --ignore-scripts --package=agentic-awesome-skills@X.Y.Z -- aas mcp configure \
|
||||
npm exec --yes --ignore-scripts --package=agentic-awesome-skills@15.1.0 -- aas mcp configure \
|
||||
--host codex \
|
||||
--scope user \
|
||||
--config /absolute/path/to/codex/config.toml \
|
||||
@@ -42,6 +45,15 @@ Use `--host claude` with the appropriate absolute Claude MCP configuration path
|
||||
|
||||
Configuration is explicit and integrity-bound. AAS installs or reuses an exact content-addressed runtime, verifies it, and changes only its managed MCP configuration section. Restart the host if it does not reload MCP configuration automatically.
|
||||
|
||||
## Quick path
|
||||
|
||||
1. Run the exact-version MCP configuration command above, review its approval digest, and repeat it with `--approve <approval-digest>`.
|
||||
2. Give Codex or Claude the project outcome, target, constraints, and the selection prompt below.
|
||||
3. Let the agent search and inspect candidates, choose exact IDs, and call `compose_stack`; review the returned manifest before persisting it.
|
||||
4. Persist the selection as `aas-stack.json`, optionally with the separate evidence sidecar for an audit-enabled flow.
|
||||
5. Run `aas stack validate`, then `aas stack plan` with explicit absolute paths and integrity inputs.
|
||||
6. Review the immutable plan and stop. Apply and recovery remain experimental opt-in paths.
|
||||
|
||||
## Ask the agent to choose the stack
|
||||
|
||||
Give the agent the desired outcome and constraints, and leave selection judgment with the agent:
|
||||
@@ -163,7 +175,7 @@ Stop after reviewing the plan unless you are deliberately participating in contr
|
||||
- MCP is local stdio, process-per-session, read-only, offline-capable, and contains no model credentials or telemetry.
|
||||
- Codex or Claude owns semantic selection. Different agents or project observations may reasonably produce different stacks.
|
||||
- Catalog integrity and manifest validation are deterministic; skill suitability is an agent judgment, not a Core score.
|
||||
- Core does not impose a semantic skill-count target. The technical manifest maximum is 128 skills, and every one of the current catalog's 1,968 skills remains individually searchable, readable, selectable, and usable. Metadata remains visible but informational.
|
||||
- Core does not impose a semantic skill-count target. The technical manifest maximum is 128 skills, and every current catalog skill remains individually searchable, readable, and available for agent selection. Metadata remains visible but informational.
|
||||
- Evidence exports include raw `search_skills` queries; keep secrets and sensitive project content out of those queries.
|
||||
- Catalog updates and runtime changes are explicit. There is no resident daemon or implicit auto-update.
|
||||
- Skill prose is untrusted content and does not gain instruction authority by being returned through MCP.
|
||||
@@ -172,6 +184,23 @@ Stop after reviewing the plan unless you are deliberately participating in contr
|
||||
|
||||
Direct installs, specialized plugins, bundles, workflows, and the legacy installer remain available. These surfaces distribute or curate catalog content; AAS Core adds complete local access, durable agent-owned selection, manifest validation, and a reviewable plan.
|
||||
|
||||
## Current preview status
|
||||
|
||||
| Surface | Current status |
|
||||
| --- | --- |
|
||||
| Published package | Current npm release; AAS Core status is `agent-first-preview` |
|
||||
| Catalog search and inspection | Supported preview; local and read-only |
|
||||
| Agent-owned composition | Supported preview; Core validates IDs and structure, not semantic suitability |
|
||||
| Stack validation and plan preview | Supported preview; no target skill changes |
|
||||
| Workbench | Browser-local review of stack and plan artifacts |
|
||||
| Selection evidence | Exported and inspected through MCP/CLI contracts; not yet reviewed in Workbench |
|
||||
| Apply and recovery | Experimental, explicit opt-in, outside the supported safety claim |
|
||||
| Semantic suitability certification | Not provided |
|
||||
|
||||
## Why not just search the skills directory?
|
||||
|
||||
Direct file search can find candidate prose, but it leaves the result in the conversation. AAS Core adds verified catalog identity, explicit target binding, durable desired state, optional selection evidence, deterministic validation, immutable planning, and dedicated review surfaces. Its value is not choosing better than the coding agent; it is turning the agent's choice into reproducible, inspectable state.
|
||||
|
||||
## Next reads
|
||||
|
||||
- [Getting Started](getting-started.md)
|
||||
|
||||
@@ -21,7 +21,7 @@ use compose_stack with a project profile, inspect the schema 2 manifest returned
|
||||
in memory, and do not apply it.
|
||||
```
|
||||
|
||||
The agent must use `search_skills` and `get_skill` across the complete catalog, build a capability-to-skill coverage map, continue searching while a primary capability remains uncovered, choose the exact IDs itself, call `compose_stack`, then check the in-memory proposal with `inspect_stack` before presenting it. All 1,968 current catalog skills remain individually searchable, readable, and selectable. A client or the CLI can persist the reviewed `aas-stack.json`; an audit-enabled flow can then call `export_selection_evidence`, validate it with `inspect_selection_evidence`, and atomically publish the manifest and separate `aas-selection-evidence.json` sidecar in an `artifact-dir`. Use `aas stack plan` to preview the exact operations without materializing skills or managed state in the target.
|
||||
The agent must use `search_skills` and `get_skill` across the complete catalog, build a capability-to-skill coverage map, continue searching while a primary capability remains uncovered, choose the exact IDs itself, call `compose_stack`, then check the in-memory proposal with `inspect_stack` before presenting it. Every current catalog skill remains individually searchable, readable, and selectable. A client or the CLI can persist the reviewed `aas-stack.json`; an audit-enabled flow can then call `export_selection_evidence`, validate it with `inspect_selection_evidence`, and atomically publish the manifest and separate `aas-selection-evidence.json` sidecar in an `artifact-dir`. Use `aas stack plan` to preview the exact operations without materializing skills or managed state in the target.
|
||||
|
||||
Selection evidence contains the raw `search_skills` queries observed during the MCP session. Do not place secrets, credentials, private source text, or personal data in catalog queries.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
Codex hoặc Claude tự kiểm tra dự án; AAS không quét repository. Agent tìm kiếm catalog cục bộ đầy đủ theo thứ tự ổn định, tự đánh giá kết quả không có điểm số hay xếp hạng, rồi gửi `profile` cùng chính xác các ID đã chọn tới `compose_stack`. AAS Core ghi nhận lựa chọn trong `aas-stack.json` schema 2; CLI xác thực manifest và tạo kế hoạch preview bất biến trước khi thay đổi kỹ năng.
|
||||
|
||||
> **Ranh giới phát hành:** Gói npm 14.6.0 đã phát hành trước AAS Core và không thể dùng để bootstrap Core. Các gói hỗ trợ Core bắt đầu từ dòng 15.x; chỉ dùng một phiên bản chính xác có release notes tuyên bố rõ rằng nó bao gồm Core. Luồng preview được hỗ trợ dừng sau khi xem kế hoạch; `apply` và `recover` vẫn mang tính thử nghiệm. [Tìm hiểu AAS Core](AAS_CORE.vi.md).
|
||||
> **Ranh giới phát hành:** Dòng 15.x hiện tại bao gồm AAS Core. Chỉ dùng một phiên bản chính xác có release notes tuyên bố rõ rằng nó bao gồm Core. Luồng preview được hỗ trợ dừng sau khi xem kế hoạch; `apply` và `recover` vẫn mang tính thử nghiệm. [Tìm hiểu AAS Core](AAS_CORE.vi.md).
|
||||
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://claude.ai)
|
||||
@@ -15,7 +15,7 @@ Codex hoặc Claude tự kiểm tra dự án; AAS không quét repository. Agent
|
||||
[](https://github.com/opencode-ai/opencode)
|
||||
[](https://github.com/sickn33/agentic-awesome-skills)
|
||||
|
||||
Catalog gồm **1,968+ kỹ năng `SKILL.md`**, plugin chuyên biệt, bundle, workflow và installer trực tiếp vẫn rất quan trọng. Chúng là lớp nội dung, tuyển chọn, phân phối và tương thích xung quanh AAS Core, không phải sản phẩm chính cạnh tranh với Core:
|
||||
Các playbook `SKILL.md`, plugin chuyên biệt, bundle, workflow và installer trực tiếp vẫn rất quan trọng. Chúng là lớp nội dung, tuyển chọn, phân phối và tương thích xung quanh AAS Core, không phải sản phẩm chính cạnh tranh với Core:
|
||||
|
||||
- 🟣 **Claude Code** (Anthropic CLI)
|
||||
- 🔵 **Gemini CLI** (Google DeepMind)
|
||||
@@ -26,7 +26,7 @@ Catalog gồm **1,968+ kỹ năng `SKILL.md`**, plugin chuyên biệt, bundle, w
|
||||
- ⚪ **OpenCode** (Mã nguồn mở CLI)
|
||||
- 🟡 **Kiro CLI / IDE** và **AdaL CLI**
|
||||
|
||||
**Ranh giới phiên bản:** Dòng 14.x là baseline phân phối kỹ năng trực tiếp và không chứa AAS Core; các gói hỗ trợ Core bắt đầu từ dòng 15.x. GitHub là nguồn chuẩn cho Core, catalog, plugin và tài liệu; website được host chỉ là bề mặt duyệt catalog và review trong trình duyệt, không phải control plane được host.
|
||||
**Ranh giới phiên bản:** Dòng 14.x là baseline phân phối kỹ năng trực tiếp và không chứa AAS Core; dòng 15.x hiện tại chứa Core. GitHub là nguồn chuẩn cho Core, catalog, plugin và tài liệu; website được host chỉ là bề mặt duyệt catalog và review trong trình duyệt, không phải control plane được host.
|
||||
|
||||
### 1. 🐣 Bối cảnh: Đây là gì?
|
||||
|
||||
@@ -59,7 +59,7 @@ Repository được tổ chức thành các lĩnh vực chuyên biệt để bi
|
||||
|
||||
[Xem các Gói khởi đầu tại docs/vietnamese/BUNDLES.md](BUNDLES.vi.md) để tìm bộ công cụ hoàn hảo cho vai trò của bạn.
|
||||
|
||||
## Duyệt hơn 1,967 Kỹ năng
|
||||
## Duyệt kỹ năng
|
||||
|
||||
Chúng tôi đã chuyển danh sách đầy đủ các kỹ năng sang một danh mục riêng biệt để giữ cho file README này gọn gàng.
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
|
||||
Codex 或 Claude 使用自身能力检查项目;AAS 不会扫描项目。代理通过本地、只读的 AAS MCP 搜索完整目录,自行评估无分数、无排名的稳定分页结果,再把 `profile` 和精确的已选技能 ID 交给 `compose_stack`。AAS Core 将选择记录为 schema 2 的 `aas-stack.json`,随后 `aas` CLI 在任何技能变更前验证该清单并生成不可变的预览计划。
|
||||
|
||||
> **发布边界:** 14.6.0 npm 包早于 AAS Core。支持 Core 的包从 15.x 系列开始,并且必须使用发布说明明确声明包含 Core 的精确版本。当前支持的预览路径在检查计划后停止;`apply` 和 `recover` 仍是实验功能。[了解 AAS Core](users/aas-core.md)。
|
||||
> **发布边界:** 当前 15.x 版本包含 AAS Core。请使用发布说明明确声明包含 Core 的精确版本;当前支持的预览路径在检查计划后停止,`apply` 和 `recover` 仍是实验功能。[了解 AAS Core](users/aas-core.md)。
|
||||
|
||||
1,968+ 个 `SKILL.md`、专用插件、捆绑包、工作流和直接安装器仍然重要;它们是 AAS Core 周围的内容、策展、分发和兼容层,而不是并列的主要产品。
|
||||
`SKILL.md` 剧本、专用插件、捆绑包、工作流和直接安装器仍然重要;它们是 AAS Core 周围的内容、策展、分发和兼容层,而不是并列的主要产品。
|
||||
|
||||
**从这里开始:** [AAS Core](users/aas-core.md) · [为仓库加星](https://github.com/sickn33/agentic-awesome-skills/stargazers) · [1 分钟安装](#installation) · [选择你的工具](#choose-your-tool) · [按工具查看最佳技能](#best-skills-by-tool) · [捆绑包](users/bundles.md) · [工作流](users/workflows.md)
|
||||
|
||||
@@ -24,13 +24,13 @@ Codex 或 Claude 使用自身能力检查项目;AAS 不会扫描项目。代
|
||||
[](https://github.com/opencode-ai/opencode)
|
||||
[](https://github.com/sickn33/agentic-awesome-skills)
|
||||
|
||||
**版本边界:** 14.x 系列是直接技能分发基线,不包含 AAS Core;支持 Core 的包从 15.x 系列开始。GitHub 仓库是 Core、目录、插件和文档的规范来源;托管网站仅用于目录浏览和浏览器内审查,并非托管控制平面。
|
||||
**版本边界:** 14.x 系列是直接技能分发基线,不包含 AAS Core;当前 15.x 系列包含 Core。GitHub 仓库是 Core、目录、插件和文档的规范来源;托管网站仅用于目录浏览和浏览器内审查,并非托管控制平面。
|
||||
|
||||
## 为什么开发者为这个仓库加星
|
||||
|
||||
- **可安装,而不仅是启发式**:使用 `npx agentic-awesome-skills` 将技能放置在你的工具期望的位置。
|
||||
- **为主要代理工作流构建**:Claude Code、Cursor、Codex CLI、Gemini CLI、Antigravity、Kiro、OpenCode、Copilot 等。
|
||||
- **广泛的覆盖范围和实用价值**:1,967+ 个技能,涵盖开发、测试、安全、基础设施、产品和营销。
|
||||
- **广泛的覆盖范围和实用价值**:当前目录覆盖开发、测试、安全、基础设施、产品和营销。
|
||||
- **更快的入门**:捆绑包和工作流减少了从"发现这个仓库"到"使用第一个技能"的时间。
|
||||
- **无论你需要广度还是精选都有用**:浏览完整目录、从顶级捆绑包开始,或在安装前比较替代方案。
|
||||
|
||||
@@ -50,7 +50,7 @@ Codex 或 Claude 使用自身能力检查项目;AAS 不会扫描项目。代
|
||||
- [🧭 Antigravity 工作流](#antigravity-工作流)
|
||||
- [⚖️ 替代方案与比较](#替代方案与比较)
|
||||
- [📦 功能与类别](#功能与类别)
|
||||
- [📚 浏览 1,967+ 技能](#浏览-1967-技能)
|
||||
- [📚 浏览技能](#浏览技能)
|
||||
- [🤝 贡献](#贡献)
|
||||
- [💬 社区](#社区)
|
||||
- [☕ 支持项目](#支持项目)
|
||||
@@ -246,7 +246,7 @@ Codex 插件通过仓库本地插件入口指向相同的精选 `skills/` 树,
|
||||
|
||||
## 按工具查看最佳技能
|
||||
|
||||
如果你想要比"浏览所有 1,967+ 技能"更快的答案,请从工具特定指南开始:
|
||||
如果你想要比浏览完整目录更快的答案,请从工具特定指南开始:
|
||||
|
||||
- **[Claude Code 技能](users/claude-code-skills.md)**:安装路径、入门技能、提示词示例和插件市场流程。
|
||||
- **[Cursor 技能](users/cursor-skills.md)**:`.cursor/skills/` 的最佳入门技能、UI 重型工作和配对编程流程。
|
||||
@@ -411,7 +411,7 @@ Use @security-auditor to review this API endpoint for auth and validation risks.
|
||||
|
||||
计数随着新技能的添加而变化。有关当前完整注册表,请参阅 [CATALOG.md](../CATALOG.md)。
|
||||
|
||||
## 浏览 1,967+ 技能
|
||||
## 浏览技能
|
||||
|
||||
- 在 [`../apps/web-app`](../apps/web-app) 中打开交互式浏览器。
|
||||
- 在 [`../CATALOG.md`](../CATALOG.md) 中阅读完整目录。
|
||||
|
||||
+15
-6
@@ -106,12 +106,21 @@ For AAS CLI, MCP, stack, catalog-cache, or Workbench changes:
|
||||
|
||||
Release only when requested.
|
||||
|
||||
Every stable or prerelease version requires full release alignment. Creating the tag, GitHub Release, or npm package is an intermediate milestone, never the completion condition.
|
||||
|
||||
1. Include the target changelog entry in the maintainer batch PR so it is already on protected `main`; avoid a separate release-notes-only PR.
|
||||
2. From clean, current `main`, run `npm run release:preflight` and required security checks.
|
||||
3. Run `npm run release:prepare -- X.Y.Z`. This creates and pushes `release/vX.Y.Z` and opens the protected release PR.
|
||||
4. Merge that release PR through its required checks, update local `main` to equal `origin/main`, and wait for any canonical-sync PR to close.
|
||||
5. Run `npm run release:publish -- X.Y.Z`. It verifies the exact protected merge before creating or reusing the tag and GitHub Release.
|
||||
6. Wait for publishing workflows, then verify the tag/ref, GitHub Release, npm version and dist-tag, CI, Pages, CodeQL, live `llms.txt`, `skills.json`, and changed catalog routes.
|
||||
3. Run the release-state generator and its explicit plugin gates. Require a second no-drift pass before publication: `npm run sync:release-state`, `npm run plugin-compat:check`, and `npm run bundles:check` must leave a clean tree. Inspect `package.json`, `package-lock.json`, generated registries and the offline catalog, tracked web assets, `.agents/plugins/marketplace.json`, `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, and every published Codex/Claude plugin mirror and editorial-bundle manifest. Every release-owned manifest version must equal `X.Y.Z`.
|
||||
4. Run `npm run release:prepare -- X.Y.Z`. This creates and pushes `release/vX.Y.Z` and opens the protected release PR.
|
||||
5. Merge that release PR through its required checks, update local `main` to equal `origin/main`, and wait for every source, release, or canonical-sync PR in the release path to close. Re-run the release-state and plugin gates if protected `main` moved.
|
||||
6. Run `npm run release:publish -- X.Y.Z`. It verifies the exact protected merge before creating or reusing the tag and GitHub Release.
|
||||
7. Wait for publishing workflows, then bind every proof to the exact released commit: verify the tag/ref, GitHub Release, npm version and intended dist-tag, required CI, CodeQL, and the explicitly dispatched release-only Pages build. Verify live `llms.txt`, `skills.json`, catalog and plugin routes, and the legacy redirect bridge; do not accept a successful run for a different SHA.
|
||||
8. After npm confirms `X.Y.Z` as the published dist-tag, discover every already-configured local AAS MCP host from its real configuration and update each one to the exact same package version before declaring the release complete. Updating existing AAS host entries is part of the release; creating a previously absent host configuration still requires explicit authorization.
|
||||
- Use the published package's `aas mcp configure` two-pass flow: first preview the change, then repeat the identical command with its approval digest. Supply absolute host-config, cache, and backup paths; require a backup when replacing an existing configuration.
|
||||
- Pin `agentic-awesome-skills@X.Y.Z` and `--version X.Y.Z`; never use `latest`, reuse an older cached runtime, or create a previously absent host configuration without explicit authorization.
|
||||
- Verify that the managed host configuration points to a content-addressed `X.Y.Z` runtime, that the runtime package metadata reports `X.Y.Z`, and that a real MCP `initialize` plus `tools/list` handshake reports catalog package version `X.Y.Z`.
|
||||
- Restart the host or open a fresh client session when required so the new MCP process is actually loaded. If configuration access, approval, or runtime verification is blocked, report the exact blocker and keep the maintainer task incomplete even though the package itself is already public.
|
||||
9. Fetch `origin/main` again after automation settles, fast-forward the maintainer checkout, and repeat the release-state, plugin, version, public-surface, and MCP parity checks. The final generator pass must be idempotent, the tree must stay clean, and `git rev-list --left-right --count main...origin/main` must end at `0 0`.
|
||||
|
||||
Never rebase a published release tag, force stale release state, reuse a failed published version, or claim npm publication from the GitHub Release alone.
|
||||
|
||||
@@ -121,10 +130,10 @@ Finish only when:
|
||||
|
||||
- every in-scope PR, issue, and alert is resolved or has one exact blocker;
|
||||
- no open source or canonical-sync PR remains unintentionally;
|
||||
- `main`, `origin/main`, required workflows, generated state, and public surfaces agree;
|
||||
- for every stable or prerelease version, clean local `main`, `origin/main`, the released commit, canonical generated state, every Codex/Claude plugin mirror, bundle, manifest, marketplace, compatibility report, tag, GitHub Release, npm dist-tag, required workflow, and live public surface agree exactly;
|
||||
- the source and legacy repositories have no unintended infrastructure PR, their protected branches and Actions settings remain enforced, and the live manifest identifies the source repository;
|
||||
- the user worktree is unchanged except for files the user explicitly placed in scope;
|
||||
- release proof is complete when a release was requested.
|
||||
- release proof is complete when a release was requested, including an idempotent no-drift regeneration and exact runtime parity between the published npm package and every already-configured local AAS MCP host. Any mismatch keeps the release incomplete.
|
||||
|
||||
## Failure Rules
|
||||
|
||||
|
||||
+15
-6
@@ -106,12 +106,21 @@ For AAS CLI, MCP, stack, catalog-cache, or Workbench changes:
|
||||
|
||||
Release only when requested.
|
||||
|
||||
Every stable or prerelease version requires full release alignment. Creating the tag, GitHub Release, or npm package is an intermediate milestone, never the completion condition.
|
||||
|
||||
1. Include the target changelog entry in the maintainer batch PR so it is already on protected `main`; avoid a separate release-notes-only PR.
|
||||
2. From clean, current `main`, run `npm run release:preflight` and required security checks.
|
||||
3. Run `npm run release:prepare -- X.Y.Z`. This creates and pushes `release/vX.Y.Z` and opens the protected release PR.
|
||||
4. Merge that release PR through its required checks, update local `main` to equal `origin/main`, and wait for any canonical-sync PR to close.
|
||||
5. Run `npm run release:publish -- X.Y.Z`. It verifies the exact protected merge before creating or reusing the tag and GitHub Release.
|
||||
6. Wait for publishing workflows, then verify the tag/ref, GitHub Release, npm version and dist-tag, CI, Pages, CodeQL, live `llms.txt`, `skills.json`, and changed catalog routes.
|
||||
3. Run the release-state generator and its explicit plugin gates. Require a second no-drift pass before publication: `npm run sync:release-state`, `npm run plugin-compat:check`, and `npm run bundles:check` must leave a clean tree. Inspect `package.json`, `package-lock.json`, generated registries and the offline catalog, tracked web assets, `.agents/plugins/marketplace.json`, `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, and every published Codex/Claude plugin mirror and editorial-bundle manifest. Every release-owned manifest version must equal `X.Y.Z`.
|
||||
4. Run `npm run release:prepare -- X.Y.Z`. This creates and pushes `release/vX.Y.Z` and opens the protected release PR.
|
||||
5. Merge that release PR through its required checks, update local `main` to equal `origin/main`, and wait for every source, release, or canonical-sync PR in the release path to close. Re-run the release-state and plugin gates if protected `main` moved.
|
||||
6. Run `npm run release:publish -- X.Y.Z`. It verifies the exact protected merge before creating or reusing the tag and GitHub Release.
|
||||
7. Wait for publishing workflows, then bind every proof to the exact released commit: verify the tag/ref, GitHub Release, npm version and intended dist-tag, required CI, CodeQL, and the explicitly dispatched release-only Pages build. Verify live `llms.txt`, `skills.json`, catalog and plugin routes, and the legacy redirect bridge; do not accept a successful run for a different SHA.
|
||||
8. After npm confirms `X.Y.Z` as the published dist-tag, discover every already-configured local AAS MCP host from its real configuration and update each one to the exact same package version before declaring the release complete. Updating existing AAS host entries is part of the release; creating a previously absent host configuration still requires explicit authorization.
|
||||
- Use the published package's `aas mcp configure` two-pass flow: first preview the change, then repeat the identical command with its approval digest. Supply absolute host-config, cache, and backup paths; require a backup when replacing an existing configuration.
|
||||
- Pin `agentic-awesome-skills@X.Y.Z` and `--version X.Y.Z`; never use `latest`, reuse an older cached runtime, or create a previously absent host configuration without explicit authorization.
|
||||
- Verify that the managed host configuration points to a content-addressed `X.Y.Z` runtime, that the runtime package metadata reports `X.Y.Z`, and that a real MCP `initialize` plus `tools/list` handshake reports catalog package version `X.Y.Z`.
|
||||
- Restart the host or open a fresh client session when required so the new MCP process is actually loaded. If configuration access, approval, or runtime verification is blocked, report the exact blocker and keep the maintainer task incomplete even though the package itself is already public.
|
||||
9. Fetch `origin/main` again after automation settles, fast-forward the maintainer checkout, and repeat the release-state, plugin, version, public-surface, and MCP parity checks. The final generator pass must be idempotent, the tree must stay clean, and `git rev-list --left-right --count main...origin/main` must end at `0 0`.
|
||||
|
||||
Never rebase a published release tag, force stale release state, reuse a failed published version, or claim npm publication from the GitHub Release alone.
|
||||
|
||||
@@ -121,10 +130,10 @@ Finish only when:
|
||||
|
||||
- every in-scope PR, issue, and alert is resolved or has one exact blocker;
|
||||
- no open source or canonical-sync PR remains unintentionally;
|
||||
- `main`, `origin/main`, required workflows, generated state, and public surfaces agree;
|
||||
- for every stable or prerelease version, clean local `main`, `origin/main`, the released commit, canonical generated state, every Codex/Claude plugin mirror, bundle, manifest, marketplace, compatibility report, tag, GitHub Release, npm dist-tag, required workflow, and live public surface agree exactly;
|
||||
- the source and legacy repositories have no unintended infrastructure PR, their protected branches and Actions settings remain enforced, and the live manifest identifies the source repository;
|
||||
- the user worktree is unchanged except for files the user explicitly placed in scope;
|
||||
- release proof is complete when a release was requested.
|
||||
- release proof is complete when a release was requested, including an idempotent no-drift regeneration and exact runtime parity between the published npm package and every already-configured local AAS MCP host. Any mismatch keeps the release incomplete.
|
||||
|
||||
## Failure Rules
|
||||
|
||||
|
||||
@@ -106,12 +106,21 @@ For AAS CLI, MCP, stack, catalog-cache, or Workbench changes:
|
||||
|
||||
Release only when requested.
|
||||
|
||||
Every stable or prerelease version requires full release alignment. Creating the tag, GitHub Release, or npm package is an intermediate milestone, never the completion condition.
|
||||
|
||||
1. Include the target changelog entry in the maintainer batch PR so it is already on protected `main`; avoid a separate release-notes-only PR.
|
||||
2. From clean, current `main`, run `npm run release:preflight` and required security checks.
|
||||
3. Run `npm run release:prepare -- X.Y.Z`. This creates and pushes `release/vX.Y.Z` and opens the protected release PR.
|
||||
4. Merge that release PR through its required checks, update local `main` to equal `origin/main`, and wait for any canonical-sync PR to close.
|
||||
5. Run `npm run release:publish -- X.Y.Z`. It verifies the exact protected merge before creating or reusing the tag and GitHub Release.
|
||||
6. Wait for publishing workflows, then verify the tag/ref, GitHub Release, npm version and dist-tag, CI, Pages, CodeQL, live `llms.txt`, `skills.json`, and changed catalog routes.
|
||||
3. Run the release-state generator and its explicit plugin gates. Require a second no-drift pass before publication: `npm run sync:release-state`, `npm run plugin-compat:check`, and `npm run bundles:check` must leave a clean tree. Inspect `package.json`, `package-lock.json`, generated registries and the offline catalog, tracked web assets, `.agents/plugins/marketplace.json`, `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, and every published Codex/Claude plugin mirror and editorial-bundle manifest. Every release-owned manifest version must equal `X.Y.Z`.
|
||||
4. Run `npm run release:prepare -- X.Y.Z`. This creates and pushes `release/vX.Y.Z` and opens the protected release PR.
|
||||
5. Merge that release PR through its required checks, update local `main` to equal `origin/main`, and wait for every source, release, or canonical-sync PR in the release path to close. Re-run the release-state and plugin gates if protected `main` moved.
|
||||
6. Run `npm run release:publish -- X.Y.Z`. It verifies the exact protected merge before creating or reusing the tag and GitHub Release.
|
||||
7. Wait for publishing workflows, then bind every proof to the exact released commit: verify the tag/ref, GitHub Release, npm version and intended dist-tag, required CI, CodeQL, and the explicitly dispatched release-only Pages build. Verify live `llms.txt`, `skills.json`, catalog and plugin routes, and the legacy redirect bridge; do not accept a successful run for a different SHA.
|
||||
8. After npm confirms `X.Y.Z` as the published dist-tag, discover every already-configured local AAS MCP host from its real configuration and update each one to the exact same package version before declaring the release complete. Updating existing AAS host entries is part of the release; creating a previously absent host configuration still requires explicit authorization.
|
||||
- Use the published package's `aas mcp configure` two-pass flow: first preview the change, then repeat the identical command with its approval digest. Supply absolute host-config, cache, and backup paths; require a backup when replacing an existing configuration.
|
||||
- Pin `agentic-awesome-skills@X.Y.Z` and `--version X.Y.Z`; never use `latest`, reuse an older cached runtime, or create a previously absent host configuration without explicit authorization.
|
||||
- Verify that the managed host configuration points to a content-addressed `X.Y.Z` runtime, that the runtime package metadata reports `X.Y.Z`, and that a real MCP `initialize` plus `tools/list` handshake reports catalog package version `X.Y.Z`.
|
||||
- Restart the host or open a fresh client session when required so the new MCP process is actually loaded. If configuration access, approval, or runtime verification is blocked, report the exact blocker and keep the maintainer task incomplete even though the package itself is already public.
|
||||
9. Fetch `origin/main` again after automation settles, fast-forward the maintainer checkout, and repeat the release-state, plugin, version, public-surface, and MCP parity checks. The final generator pass must be idempotent, the tree must stay clean, and `git rev-list --left-right --count main...origin/main` must end at `0 0`.
|
||||
|
||||
Never rebase a published release tag, force stale release state, reuse a failed published version, or claim npm publication from the GitHub Release alone.
|
||||
|
||||
@@ -121,10 +130,10 @@ Finish only when:
|
||||
|
||||
- every in-scope PR, issue, and alert is resolved or has one exact blocker;
|
||||
- no open source or canonical-sync PR remains unintentionally;
|
||||
- `main`, `origin/main`, required workflows, generated state, and public surfaces agree;
|
||||
- for every stable or prerelease version, clean local `main`, `origin/main`, the released commit, canonical generated state, every Codex/Claude plugin mirror, bundle, manifest, marketplace, compatibility report, tag, GitHub Release, npm dist-tag, required workflow, and live public surface agree exactly;
|
||||
- the source and legacy repositories have no unintended infrastructure PR, their protected branches and Actions settings remain enforced, and the live manifest identifies the source repository;
|
||||
- the user worktree is unchanged except for files the user explicitly placed in scope;
|
||||
- release proof is complete when a release was requested.
|
||||
- release proof is complete when a release was requested, including an idempotent no-drift regeneration and exact runtime parity between the published npm package and every already-configured local AAS MCP host. Any mismatch keeps the release incomplete.
|
||||
|
||||
## Failure Rules
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
@@ -12,6 +13,30 @@ import sync_repo_metadata
|
||||
from update_readme import configure_utf8_output, load_metadata, apply_metadata
|
||||
|
||||
|
||||
CURRENT_CORE_PUBLIC_COPY_FILES = [
|
||||
"README.md",
|
||||
"docs/users/aas-core.md",
|
||||
"docs/users/usage.md",
|
||||
"apps/web-app/index.html",
|
||||
"apps/web-app/public/llms.txt",
|
||||
"apps/web-app/public/manifest.webmanifest",
|
||||
"apps/web-app/public/site.webmanifest",
|
||||
"apps/web-app/scripts/prerender-routes.js",
|
||||
"apps/web-app/src/pages/Home.tsx",
|
||||
"apps/web-app/src/utils/seo.ts",
|
||||
]
|
||||
|
||||
STALE_CORE_COPY_PATTERNS = [
|
||||
("Core recommender copy", r"\bDiscover\. Recommend\. Validate\. Preview\."),
|
||||
("Core recommender copy", r"\bdiscover,\s*recommend,\s*validat"),
|
||||
("Core recommender copy", r"\brecommending,\s*validating,\s*and\s*planning"),
|
||||
("Core recommender copy", r"\brecommend\s+and\s+plan\s+exact\s+stacks"),
|
||||
("Core recommender copy", r"\bskill recommendation and stack review\b"),
|
||||
("Core recommender copy", r"\bReview what AAS Core recommended\b"),
|
||||
("obsolete catalog count fallback", r"\bHOME_CATALOG_COUNT_FALLBACK\s*=\s*1935\b"),
|
||||
]
|
||||
|
||||
|
||||
def _read_text(path: Path) -> str:
|
||||
return path.read_text(encoding="utf-8")
|
||||
|
||||
@@ -101,11 +126,26 @@ def _find_manifest_issues(root: Path) -> list[str]:
|
||||
return issues
|
||||
|
||||
|
||||
def _find_current_core_public_copy_issues(root: Path) -> list[str]:
|
||||
issues: list[str] = []
|
||||
for relative_path in CURRENT_CORE_PUBLIC_COPY_FILES:
|
||||
path = root / relative_path
|
||||
if not path.is_file():
|
||||
continue
|
||||
content = _read_text(path)
|
||||
for label, pattern in STALE_CORE_COPY_PATTERNS:
|
||||
if re.search(pattern, content, flags=re.IGNORECASE):
|
||||
issues.append(f"{relative_path} contains stale {label}")
|
||||
break
|
||||
return issues
|
||||
|
||||
|
||||
def find_local_consistency_issues(base_dir: str | Path) -> list[str]:
|
||||
root = Path(base_dir)
|
||||
metadata = load_metadata(str(root))
|
||||
issues: list[str] = []
|
||||
issues.extend(_find_manifest_issues(root))
|
||||
issues.extend(_find_current_core_public_copy_issues(root))
|
||||
|
||||
package_json = json.loads(_read_text(root / "package.json"))
|
||||
if package_json.get("description") != _package_expected_description(metadata):
|
||||
|
||||
@@ -196,6 +196,8 @@ function writeReleaseNotes(projectRoot, version, sectionContent) {
|
||||
function runReleaseSuite(projectRoot) {
|
||||
runCommand("npm", ["run", "validate:references"], projectRoot);
|
||||
runCommand("npm", ["run", "sync:release-state"], projectRoot);
|
||||
runCommand("npm", ["run", "plugin-compat:check"], projectRoot);
|
||||
runCommand("npm", ["run", "bundles:check"], projectRoot);
|
||||
runCommand("npm", ["run", "test"], projectRoot);
|
||||
runCommand("npm", ["run", "app:install"], projectRoot);
|
||||
runCommand("npm", ["run", "app:build"], projectRoot);
|
||||
|
||||
@@ -45,7 +45,7 @@ RECOMMENDED_TOPICS = [
|
||||
"mcp",
|
||||
]
|
||||
README_TAGLINE_RE = re.compile(
|
||||
r"^> \*\*(?:A complete local skill catalog for coding agents—from project inspection and agent-owned selection to a reproducible, reviewable plan\.|Local, deterministic skill-stack composition for coding agents—from an explicit project profile to a reviewable plan before any target change\.|AAS Core is the local, agent-first control plane for composing explainable, reproducible skill stacks from a catalog of \d[\d,]*\+ agentic skills\.|Installable GitHub library of \d[\d,]*\+ agentic skills for Claude Code, Cursor, Codex CLI, (?:Autohand Code, )?Gemini CLI, Antigravity, and other AI coding assistants\.)\*\*$",
|
||||
r"^> \*\*(?:Local, agent-owned skill stacks for coding agents—from complete catalog access to a reproducible, reviewable plan\.|A complete local skill catalog for coding agents—from project inspection and agent-owned selection to a reproducible, reviewable plan\.|Local, deterministic skill-stack composition for coding agents—from an explicit project profile to a reviewable plan before any target change\.|AAS Core is the local, agent-first control plane for composing explainable, reproducible skill stacks from a catalog of \d[\d,]*\+ agentic skills\.|Installable GitHub library of \d[\d,]*\+ agentic skills for Claude Code, Cursor, Codex CLI, (?:Autohand Code, )?Gemini CLI, Antigravity, and other AI coding assistants\.)\*\*$",
|
||||
re.MULTILINE,
|
||||
)
|
||||
README_TITLE_RE = re.compile(
|
||||
@@ -71,6 +71,18 @@ README_TOC_BROWSE_RE = re.compile(
|
||||
r"^- \[Browse \d[\d,]*\+ Skills\]\(#browse-\d+-skills\)$",
|
||||
re.MULTILINE,
|
||||
)
|
||||
README_AGENT_SELECTION_PARAGRAPH_RE = re.compile(
|
||||
r"^Codex or Claude inspects your project(?:, enumerates its primary capabilities, searches and compares candidates across| and chooses exact skills from) the complete local AAS catalog.*$",
|
||||
re.MULTILINE,
|
||||
)
|
||||
README_SUPPORTING_PLAYBOOKS_RE = re.compile(
|
||||
r"^The (?:\d[\d,]*\+ )?reusable `SKILL\.md` playbooks, specialized plugins, bundles, workflows, and direct installers remain important\..*$",
|
||||
re.MULTILINE,
|
||||
)
|
||||
README_CAPABILITY_COVERAGE_RE = re.compile(
|
||||
r"^- \*\*(?:Require|Guide) capability coverage\.\*\* MCP session instructions require the agent to evaluate the full project surface.*$",
|
||||
re.MULTILINE,
|
||||
)
|
||||
GETTING_STARTED_TITLE_RE = re.compile(
|
||||
r"^# Getting Started with (?:Agentic Awesome Skills \(V[\d.]+\)|AAS Core)$", re.MULTILINE
|
||||
)
|
||||
@@ -157,8 +169,8 @@ def sync_readme_copy(content: str, metadata: dict) -> str:
|
||||
(
|
||||
README_TAGLINE_RE,
|
||||
(
|
||||
"> **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.**"
|
||||
),
|
||||
),
|
||||
(
|
||||
@@ -168,6 +180,34 @@ def sync_readme_copy(content: str, metadata: dict) -> str:
|
||||
"and outside the supported preview path."
|
||||
),
|
||||
),
|
||||
(
|
||||
README_AGENT_SELECTION_PARAGRAPH_RE,
|
||||
(
|
||||
"Codex or Claude inspects your project and chooses exact skills from the complete local AAS catalog. "
|
||||
"AAS Core does not rank or recommend them: its read-only `compose_stack` tool validates the "
|
||||
"agent-owned selection in memory, and a client or the `aas` CLI can persist it as `aas-stack.json` "
|
||||
"and produce an immutable plan before any target change."
|
||||
),
|
||||
),
|
||||
(
|
||||
README_SUPPORTING_PLAYBOOKS_RE,
|
||||
(
|
||||
"The 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."
|
||||
),
|
||||
),
|
||||
(
|
||||
README_CAPABILITY_COVERAGE_RE,
|
||||
(
|
||||
"- **Guide 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. Core records and validates the resulting selection, but it "
|
||||
"does not certify semantic completeness."
|
||||
),
|
||||
),
|
||||
(
|
||||
README_BROAD_COVERAGE_RE,
|
||||
(
|
||||
@@ -210,6 +250,20 @@ def sync_getting_started(content: str, metadata: dict) -> str:
|
||||
return content
|
||||
|
||||
|
||||
def sync_aas_core_guide(content: str, metadata: dict) -> str:
|
||||
if metadata["core_included"]:
|
||||
content = re.sub(
|
||||
r"--package=agentic-awesome-skills@(?:X\.Y\.Z|[^\s\\]+)",
|
||||
f"--package=agentic-awesome-skills@{metadata['version']}",
|
||||
content,
|
||||
count=1,
|
||||
)
|
||||
return content.replace(
|
||||
"searchable, readable, selectable, and usable",
|
||||
"searchable, readable, and available for agent selection",
|
||||
)
|
||||
|
||||
|
||||
def sync_web_index_shell(content: str, metadata: dict) -> str:
|
||||
skill_label = metadata["total_skills_label"]
|
||||
return sync_regex_text(
|
||||
@@ -234,6 +288,10 @@ def sync_llms_text(content: str, metadata: dict) -> str:
|
||||
(r"Skill count: \d[\d,]*\+\.", f"Skill count: {skill_label}."),
|
||||
(r"\d[\d,]*\+ reusable SKILL\.md playbooks", f"{skill_label} reusable SKILL.md playbooks"),
|
||||
(r"\d[\d,]*\+ skill catalog", f"{skill_label} skill catalog"),
|
||||
(
|
||||
r"Catalog access: (?:all \d[\d,]* current skills|every current catalog skill) remain individually searchable, readable, and selectable\.",
|
||||
"Catalog access: every current catalog skill remains individually searchable, readable, and selectable.",
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
@@ -363,6 +421,7 @@ def sync_curated_docs(base_dir: str, metadata: dict, dry_run: bool) -> int:
|
||||
updated_files = 0
|
||||
updated_files += int(update_text_file(root / "README.md", sync_readme_copy, metadata, dry_run))
|
||||
updated_files += int(update_text_file(root / "docs" / "users" / "getting-started.md", sync_getting_started, metadata, dry_run))
|
||||
updated_files += int(update_text_file(root / "docs" / "users" / "aas-core.md", sync_aas_core_guide, metadata, dry_run))
|
||||
updated_files += int(update_text_file(root / "apps" / "web-app" / "index.html", sync_web_index_shell, metadata, dry_run))
|
||||
updated_files += int(update_text_file(root / "apps" / "web-app" / "public" / "llms.txt", sync_llms_text, metadata, dry_run))
|
||||
updated_files += int(
|
||||
|
||||
+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",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"name": "nextlevelbuilder"
|
||||
},
|
||||
"metadata": {
|
||||
"description": "UI/UX design intelligence skill with 84 styles, 161 palettes, 73 font pairings, 25 charts, and 17 stack guidelines",
|
||||
"description": "UI/UX design intelligence skill with 84 styles, 192 palettes, 74 font pairings, 25 charts, and 22 stack guidelines",
|
||||
"version": "2.11.0"
|
||||
},
|
||||
"plugins": [
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Source
|
||||
|
||||
- Repo: https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
|
||||
- Ref: b484e8338c25b9cea3a25981a992d2817188971a
|
||||
- Ref: 5c0946f66120079258e1efc8e436d78ec793877c
|
||||
- Remove-Paths:
|
||||
- Snapshot: 2026-07-20
|
||||
- Snapshot: 2026-07-21
|
||||
- Sync-Mode: render_skill
|
||||
- Notes: vendored into playbook branch thirdparty/skill
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "ui-ux-pro-max",
|
||||
"displayName": "UI/UX Pro Max",
|
||||
"description": "AI-powered design intelligence with 84 UI styles, 161 color palettes, 73 font pairings, 99 UX guidelines, and 25 chart types across 17 tech stacks.",
|
||||
"description": "AI-powered design intelligence with 84 UI styles, 192 color palettes, 74 font pairings, 98 UX guidelines, and 25 chart types across 22 tech stacks.",
|
||||
"version": "2.11.0",
|
||||
"author": "NextLevelBuilder",
|
||||
"license": "MIT",
|
||||
|
||||
Reference in New Issue
Block a user