opencode-skills-collection 4.0.10 → 4.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "updatedAt": "2026-07-24T01:26:11.385Z",
3
+ "updatedAt": "2026-07-25T01:26:09.879Z",
4
4
  "entries": [
5
5
  "00-andruia-consultant",
6
6
  "007",
@@ -1600,6 +1600,7 @@
1600
1600
  "seo-content-refresher",
1601
1601
  "seo-content-writer",
1602
1602
  "seo-dataforseo",
1603
+ "seo-drift",
1603
1604
  "seo-forensic-incident-response",
1604
1605
  "seo-fundamentals",
1605
1606
  "seo-geo",
@@ -51,6 +51,10 @@ Before changing anything:
51
51
  3. Run checks in parallel where independent.
52
52
  - Use the repository validation, test, docs-security, source-credit, reference, warning-budget, and targeted app checks required by the changed files.
53
53
  - Fix deterministic policy failures in the source; do not wait for them as if they were flaky CI.
54
+ - Treat `pr-policy` fork classification from the exact protected-base implementation as an unprivileged fail-fast gate before dependent work, never as approval authority. `merge:batch` must still recompute the current trusted decision before approving any fork run or merging.
55
+ - Treat `impact_profile` as shadow-only telemetry. It must not skip, downgrade, or satisfy any required check.
56
+ - For ordinary source PRs, require `source-validation` to generate preview state once and `artifact-preview` to verify the manifest bound to the exact head and run identity. For canonical-sync PRs, rely on `pr-policy` exact-tree reproduction, keep `source-validation` lightweight, require `artifact-preview` to confirm no drift, and retain final CI and CodeQL on the merged `main` commit.
57
+ - Keep timing observational and test sharding opt-in. Required CI must continue to run the full unsharded `npm run test`; deterministic local shards may be used only through `npm run test:local -- --shard-index N --shard-count M`.
54
58
 
55
59
  4. Merge accepted source PRs in conflict-aware order.
56
60
  - Run a dry classification first when useful.
@@ -60,10 +64,10 @@ Before changing anything:
60
64
  npm run merge:batch -- --prs <PR_LIST> --reviewed-head <FULL_HEAD_SHA>
61
65
  ```
62
66
 
63
- - `merge:batch` may normalize the PR body and close/reopen the PR. GitHub creates the replacement workflow runs asynchronously; the command must wait for and approve only post-reopen workflow/check-suite IDs. Older runs on the same SHA cannot satisfy or fail the fresh gate.
67
+ - `merge:batch` does not rewrite the PR body and does not close or reopen the PR. It evaluates the current immutable PR tuple and may approve only workflow runs bound to that PR and exact head SHA.
64
68
  - Same-repository location is not sufficient authority for sensitive changes. The guarded same-repository exception is limited to a PR authored by the repository owner and requires an exact full-head attestation; collaborator-authored sensitive PRs fail closed under the external safety policy.
65
69
  - The routine protected checks are `pr-policy`, `pr-evidence`, `source-validation`, and `artifact-preview`. The retired `aas-v1-baseline` workflow is not a merge prerequisite and must not be awaited or approved during source or canonical-sync batches.
66
- - If the PR head or base changes, discard stale evidence and rerun from a fresh `origin/main`.
70
+ - If the PR head or base changes, discard stale evidence, refresh to the current `origin/main`, and rerun the batch. The command does not retry base drift automatically.
67
71
 
68
72
  5. Converge canonical state once after the source batch.
69
73
  - Wait for the protected `automation/canonical-repo-state` PR.
@@ -119,7 +123,7 @@ Every stable or prerelease version requires full release alignment. Creating the
119
123
  4. Run `npm run release:prepare -- X.Y.Z`. This creates and pushes `release/vX.Y.Z` and opens the protected release PR.
120
124
  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.
121
125
  6. Run `npm run release:publish -- X.Y.Z`. It must resolve exactly one merged release PR from the same repository, authored by the repository owner, with base `main`, exact title `chore: release vX.Y.Z`, and head branch `release/vX.Y.Z`. Zero or multiple candidates fail closed; never select the newest approximate match. The command then verifies that exact protected merge before creating or reusing the tag and GitHub Release.
122
- 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.
126
+ 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 from the exact immutable `vX.Y.Z` tag. Never dispatch Pages from `main` or another branch. 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.
123
127
  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.
124
128
  - 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.
125
129
  - 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.
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  title: Jetski/Cortex + Gemini Integration Guide
3
- description: "Use agentic-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1,987+ skills."
3
+ description: "Use agentic-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1,988+ skills."
4
4
  ---
5
5
 
6
- # Jetski/Cortex + Gemini: safe integration with 1,987+ skills
6
+ # Jetski/Cortex + Gemini: safe integration with 1,988+ skills
7
7
 
8
8
  > **Custom-host integration:** This guide documents a low-level, direct-manifest lazy loader for Jetski/Cortex and similar hosts. For Codex or Claude Code, the recommended path is [AAS Core](../users/aas-core.md), which provides neutral, deterministic catalog retrieval and validates exact agent-selected IDs through a bounded, read-only MCP server.
9
9
 
@@ -25,7 +25,7 @@ Never do:
25
25
  - concatenate all `SKILL.md` content into a single system prompt;
26
26
  - re-inject the entire library for **every** request.
27
27
 
28
- With 1,987+ skills, this approach fills the context window before user messages are even added, causing truncation.
28
+ With 1,988+ skills, this approach fills the context window before user messages are even added, causing truncation.
29
29
 
30
30
  ---
31
31
 
@@ -23,7 +23,7 @@ This example shows one way to integrate **agentic-awesome-skills** with a Jetski
23
23
  - How to enforce a **maximum number of skills per turn** via `maxSkillsPerTurn`.
24
24
  - How to choose whether to **truncate or error** when too many skills are requested via `overflowBehavior`.
25
25
 
26
- This pattern avoids context overflow when you have 1,987+ skills installed.
26
+ This pattern avoids context overflow when you have 1,988+ skills installed.
27
27
 
28
28
  Manifest contract references:
29
29
 
@@ -26,6 +26,15 @@ npm run merge:batch -- --prs 450 --reviewed-head <40-character-head-sha>
26
26
 
27
27
  Use `--dry-run` to exercise local classification without approving a run or merging. An abbreviated or stale attestation is rejected.
28
28
 
29
+ ## CI Intake Contract
30
+
31
+ - Before dependent required jobs do expensive setup or wait work, `pr-policy` runs the fork-safety classifier from the exact protected-base implementation and fails an unsafe fork diff early.
32
+ - That CI result is fail-fast evidence, not merge authority. `merge:batch` independently recomputes the complete decision from trusted `main` and remains the only command allowed to approve fork runs or merge the PR.
33
+ - `impact_profile` is shadow-only telemetry. It never skips a required job, test, review, or merge gate.
34
+ - Normal source PRs generate derived preview state once in `source-validation`; `artifact-preview` verifies the exact-head manifest and digest instead of generating the tree again.
35
+ - Canonical-sync PRs use the complementary path: `pr-policy` proves the exact reproduced tree, lightweight `source-validation` records that boundary, and `artifact-preview` confirms no generated drift. Final CI and CodeQL still run on the resulting `main` commit.
36
+ - Test timing is observational. Local deterministic sharding requires the explicit `npm run test:local -- --shard-index N --shard-count M` opt-in; required CI remains complete and unsharded.
37
+
29
38
  ## Happy Path
30
39
 
31
40
  `merge:batch` will:
@@ -46,12 +55,14 @@ Use `--dry-run` to exercise local classification without approving a run or merg
46
55
 
47
56
  ## What It Does Not Automate
48
57
 
58
+ - PR-body rewriting or normalization
59
+ - closing or reopening PRs to refresh metadata or workflow runs
49
60
  - conflict resolution on the PR branch
50
61
  - manual judgment for risky skill changes
51
62
  - semantic review when the distinct `manual-review-required` check is present; the review fingerprint covers the complete nearest skill directory, including nested examples, scripts, lockfiles, references, and assets
52
63
  - README community-source audits when the source metadata is ambiguous
53
64
  - fork-only edge cases that require contributor coordination outside GitHub permissions
54
- - base-branch drift: stale evidence is discarded and the batch must be rerun
65
+ - base-branch or head drift: stale evidence is discarded, the checkout must be refreshed to the current `origin/main`, and the batch must be rerun; there is no automatic retry
55
66
  - auto-merge and merge-queue enrollment; deferred merge state is rejected
56
67
 
57
68
  ## When To Stop
@@ -31,6 +31,8 @@ The manifest always contains:
31
31
 
32
32
  The `untrusted_advisory` marker is intentional. No workflow, merge command, or future bot may treat the artifact as privileged authorization.
33
33
 
34
+ The `pr-policy` job also reports an `impact_profile` and its reasons. That profile is observational shadow telemetry only: it does not skip, downgrade, or satisfy any required job, test, review, or merge gate.
35
+
34
36
  ## Shadow Routes
35
37
 
36
38
  - `block`: deterministic repository policy failed, such as a newly introduced changed-skill regression or a direct edit to generated artifacts.
@@ -41,6 +43,8 @@ Every new or relocated skill and every canonical skill-content change requires m
41
43
 
42
44
  ## Fork Review States
43
45
 
46
+ For an ordinary fork PR, `pr-policy` materializes the intake implementation from the exact protected base and evaluates fork safety before its dependent required jobs begin expensive setup or waiting. This makes unsafe paths, modes, objects, sizes, and repository identity fail fast in unprivileged CI. It is not authorization: `merge:batch` independently recomputes the full decision from trusted `main` and remains the sole authority for fork-run approval and merge.
47
+
44
48
  The Skill Review workflow separates two outcomes:
45
49
 
46
50
  - `review`: a semantic review actually ran using trusted base scripts;
@@ -50,7 +54,7 @@ A successful `manual-review-required` check means only that the requirement was
50
54
 
51
55
  ## Maintainer Recalculation
52
56
 
53
- `merge:batch` must bind workflow approval and human attestation to one full head SHA. When it refreshes a PR body by closing and reopening the PR, it also records the pre-refresh workflow-run IDs and accepts checks only from post-refresh check suites. A shared head SHA is not sufficient evidence of freshness because multiple `pull_request` events can exist for the same commit. Before approving a waiting fork run, it independently:
57
+ `merge:batch` must bind workflow approval and human attestation to one full head SHA. It does not rewrite the PR body or close and reopen the PR to manufacture replacement runs. Before approving a waiting fork run, it independently:
54
58
 
55
59
  1. captures base and head object IDs;
56
60
  2. fetches those objects without checking out pull-request code;
@@ -61,7 +65,7 @@ A successful `manual-review-required` check means only that the requirement was
61
65
  7. rejects operational errors, malformed evidence, incomplete snapshots, score-component regressions, provenance identity regressions, or any other deterministic blocker;
62
66
  8. re-reads both pull-request base and head before and after approval and immediately before merge.
63
67
 
64
- A real merge also requires effective server-side protection for `main`: the four exact GitHub-Actions-owned checks (`pr-policy`, `pr-evidence`, `source-validation`, and `artifact-preview`), strict up-to-date enforcement, pull-request-only changes, administrator enforcement, no applicable ruleset bypass actors, and no merge queue. If that enforcement cannot be proven, `merge:batch` refuses non-dry-run operation. Base drift is never retried with stale evidence; the batch must be rerun from the new tuple. Pre-existing auto-merge state is rejected, and the immediate GitHub merge endpoint must return `merged: true` before post-merge work begins.
68
+ A real merge also requires effective server-side protection for `main`: the four exact GitHub-Actions-owned checks (`pr-policy`, `pr-evidence`, `source-validation`, and `artifact-preview`), strict up-to-date enforcement, pull-request-only changes, administrator enforcement, no applicable ruleset bypass actors, and no merge queue. If that enforcement cannot be proven, `merge:batch` refuses non-dry-run operation. `merge:batch` does not retry base drift automatically or reuse stale evidence; the batch must be rerun from the new tuple. Pre-existing auto-merge state is rejected, and the immediate GitHub merge endpoint must return `merged: true` before post-merge work begins.
65
69
 
66
70
  Sensitive same-repository PRs may use the repository-wide source exception only when the PR author is the repository owner and the maintainer attests the exact full head SHA. Collaborator-authored sensitive PRs do not inherit trust from branch location and fail closed under the external safety policy. Every accepted PR remains bound to the protected branch, trusted-base evidence evaluator, exact PR/base/head tuple, semantic-review requirements, and required checks. Missing or mismatched head-repository identity is treated as external.
67
71
 
@@ -69,11 +73,19 @@ For any tracked change under a canonical `skills/<skill-id>/**` subtree, the mai
69
73
 
70
74
  Deletions, copies, ambiguous moves, and all canonical skill-content changes remain manual-only in this stage even when deterministic evidence contains no regression. A passing ratchet is not semantic approval and never makes a skill eligible for automatic merge.
71
75
 
76
+ ## Required CI Work Split
77
+
78
+ For an ordinary source PR, `source-validation` runs validation, tests, security checks, and generated-state refresh once, then uploads a byte-canonical JSON preview manifest listing drift paths and bound to repository, workflow SHA, run ID and attempt, and exact PR head SHA. `artifact-preview` verifies the downloaded manifest, digest, and identity before reporting drift; it does not repeat source generation.
79
+
80
+ For the protected canonical-sync PR, `pr-policy` already reproduces the exact expected tree from trusted `main`. `source-validation` is therefore a lightweight boundary record, while `artifact-preview` regenerates and confirms that the canonical head has no drift. After protected merge, explicitly dispatched final CI and CodeQL validate the resulting `main` commit.
81
+
82
+ The test runner emits per-test and summary timing telemetry so maintainers can measure before changing the DAG. Deterministic sharding is available only through an explicit `npm run test:local -- --shard-index N --shard-count M` invocation. Required CI uses the complete unsharded `npm run test` path; neither timing, sharding, nor `impact_profile` removes assurance.
83
+
72
84
  ## Protected Canonical Sync
73
85
 
74
86
  Generated artifacts and contributor credits no longer write directly to `main`. Push and scheduled maintenance workflows regenerate the repository state without persisted checkout credentials, reject any unmanaged drift, and maintain one bot PR from `automation/canonical-repo-state`.
75
87
 
76
- Because GitHub suppresses ordinary workflow recursion for PRs created with `GITHUB_TOKEN`, the trusted writer explicitly dispatches the four required checks on the bot branch. That dispatch is accepted only on the exact branch, only for files declared by the generated-files contract, and only when rerunning `sync:repo-state` produces the exact full Git tree. A trusted waiter binds the open PR to its immutable head, verifies all four exact GitHub Actions checks, confirms that `main` remains protected and unchanged, performs an immediate exact-head squash merge, and explicitly dispatches main CI, Pages, and CodeQL. The detailed protection policy is configured and audited with maintainer credentials; the workflow token has no bypass around it.
88
+ Because GitHub suppresses ordinary workflow recursion for PRs created with `GITHUB_TOKEN`, the trusted writer explicitly dispatches the four required checks on the bot branch. That dispatch is accepted only on the exact branch, only for files declared by the generated-files contract, and only when rerunning `sync:repo-state` produces the exact full Git tree. A trusted waiter binds the open PR to its immutable head, verifies all four exact GitHub Actions checks, confirms that `main` remains protected and unchanged, performs an immediate exact-head squash merge, and explicitly dispatches main CI and CodeQL. Pages remains release-only and must never be dispatched by canonical synchronization. The detailed protection policy is configured and audited with maintainer credentials; the workflow token has no bypass around it.
77
89
 
78
90
  ## Later Phases
79
91
 
@@ -98,6 +98,7 @@ A stable or prerelease version is not complete when only its tag, GitHub Release
98
98
  - 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;
99
99
  - 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;
100
100
  - 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;
101
+ - dispatch Pages only from the exact immutable `vX.Y.Z` release tag, never from `main` or another branch, and require the tag, package version, and published GitHub Release to identify the same commit before build work begins;
101
102
  - read back live `llms.txt`, `skills.json`, catalog/plugin routes, and the legacy redirect bridge;
102
103
  - 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`;
103
104
  - 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.
@@ -114,6 +115,7 @@ A release request covers updates to existing AAS MCP host entries only. Creating
114
115
  - Its explicitly dispatched required checks require both managed-only paths and an exact converged Git tree before an immediate protected merge.
115
116
  - If repo-state sync leaves any unmanaged tracked or untracked drift, the workflow fails instead of pushing a partial fix.
116
117
  - The scheduled hygiene workflow follows the same contract and shares the same concurrency group so only one canonical sync writer runs at a time.
118
+ - Between the protected release merge and its tag, the only canonical-sync successor subjects accepted by the release contract are exactly `chore: synchronize canonical repository state` and `[skip pages] chore: synchronize canonical repository state`. The latter is the durable audit marker that the successor must not trigger the release-only Pages lane; both remain subject to the managed-only range validation.
117
119
 
118
120
  ## Rollback Notes
119
121
 
@@ -29,7 +29,7 @@ Preferred homepage:
29
29
  Preferred social preview:
30
30
 
31
31
  - lead with `AAS Core` and the profile → stack → plan flow;
32
- - present `1,987+ Agentic Skills` as supporting catalog evidence, not a second product;
32
+ - present `1,988+ Agentic Skills` as supporting catalog evidence, not a second product;
33
33
  - mention Codex and Claude as the current Core agent path, with broader host compatibility as distribution support;
34
34
  - avoid dense text and tiny logos that disappear in social cards.
35
35
 
@@ -72,7 +72,7 @@ The update process refreshes:
72
72
  - Canonical skills index (`skills_index.json`)
73
73
  - Compatibility mirror (`data/skills_index.json`)
74
74
  - Web app skills data (`apps\web-app\public\skills.json`)
75
- - All 1,987+ skills from the skills directory
75
+ - All 1,988+ skills from the skills directory
76
76
 
77
77
  ## When to Update
78
78
 
@@ -30,7 +30,7 @@ AAS MCP does not scan the repository and does not decide which skills are best.
30
30
  > **Release boundary:** AAS Core landed after release 14.6.0. Use an exact Core-capable release rather than an unreviewed moving tag.
31
31
 
32
32
  ```bash
33
- npm exec --yes --ignore-scripts --package=agentic-awesome-skills@15.3.0 -- aas mcp configure \
33
+ npm exec --yes --ignore-scripts --package=agentic-awesome-skills@15.4.0 -- aas mcp configure \
34
34
  --host codex \
35
35
  --scope user \
36
36
  --config /absolute/path/to/codex/config.toml \
@@ -1062,4 +1062,4 @@ Found a skill that should be in a bundle? Or want to create a new bundle? [Open
1062
1062
 
1063
1063
  ---
1064
1064
 
1065
- _Last updated: June 2026 | Total Skills: 1,987+ | Total Bundles: 58_
1065
+ _Last updated: June 2026 | Total Skills: 1,988+ | Total Bundles: 58_
@@ -17,7 +17,7 @@ Configure AAS Core for Claude Code, describe the task and constraints, let Claud
17
17
  - It lets Claude search the verified local catalog without loading the full library into context.
18
18
  - It preserves Claude's exact selection without using metadata as an eligibility gate.
19
19
  - It keeps MCP discovery read-only and CLI changes approval-gated.
20
- - It includes 1,987+ skills instead of a narrow single-domain starter pack.
20
+ - It includes 1,988+ skills instead of a narrow single-domain starter pack.
21
21
  - It supports the standard `.claude/skills/` path and the Claude Code plugin marketplace flow.
22
22
  - It also ships generated bundle plugins so teams can install focused packs like `Essentials` or `Security Developer` from the marketplace metadata.
23
23
  - It includes onboarding docs, bundles, and workflows so new users do not need to guess where to begin.
@@ -12,7 +12,7 @@ Install into the Gemini skills path, then ask Gemini to apply one skill at a tim
12
12
 
13
13
  - It installs directly into the expected Gemini skills path.
14
14
  - It includes both core software engineering skills and deeper agent/LLM-oriented skills.
15
- - It helps new users get started with bundles and workflows rather than forcing a cold start from 1,987+ files.
15
+ - It helps new users get started with bundles and workflows rather than forcing a cold start from 1,988+ files.
16
16
  - It is useful whether you want a broad internal skill library or a single repo to test many workflows quickly.
17
17
 
18
18
  ## Install Gemini CLI Skills
@@ -18,7 +18,7 @@ Kiro is AWS's agentic AI IDE that combines:
18
18
 
19
19
  Kiro's agentic capabilities are enhanced by skills that provide:
20
20
 
21
- - **Domain expertise** across 1,987+ specialized areas
21
+ - **Domain expertise** across 1,988+ specialized areas
22
22
  - **Best practices** from Anthropic, OpenAI, Google, Microsoft, and AWS
23
23
  - **Workflow automation** for common development tasks
24
24
  - **AWS-specific patterns** for serverless, infrastructure, and cloud architecture
@@ -39,7 +39,7 @@ If you came in through a **Claude Code** or **Codex** plugin instead of AAS Core
39
39
 
40
40
  When you ran `npx agentic-awesome-skills` or cloned the repository, you:
41
41
 
42
- ✅ **Downloaded 1,987+ skill files** to your computer (default: `~/.agents/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
42
+ ✅ **Downloaded 1,988+ skill files** to your computer (default: `~/.agents/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
43
43
  ✅ **Made them available** to your AI assistant
44
44
  ❌ **Did NOT enable them all automatically** (they're just sitting there, waiting)
45
45
 
@@ -231,7 +231,7 @@ Let's actually use a skill right now. Follow these steps:
231
231
 
232
232
  ## Direct-install Step 5: Pick Skills Manually
233
233
 
234
- Don't try to use all 1,987+ skills at once. Here's a sensible approach:
234
+ Don't try to use all 1,988+ skills at once. Here's a sensible approach:
235
235
 
236
236
  If you want a tool-specific starting point before choosing skills, use:
237
237
 
@@ -362,7 +362,7 @@ Usually no, but if your AI doesn't recognize a skill:
362
362
 
363
363
  ### "Can I load all skills into the model at once?"
364
364
 
365
- No. Even though you have 1,987+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
365
+ No. Even though you have 1,988+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
366
366
 
367
367
  The intended pattern is:
368
368
 
@@ -40,7 +40,7 @@ agentic-awesome-skills/
40
40
  ├── 📄 CONTRIBUTING.md ← Contributor workflow
41
41
  ├── 📄 CATALOG.md ← Full generated catalog
42
42
 
43
- ├── 📁 skills/ ← 1,987+ skills live here
43
+ ├── 📁 skills/ ← 1,988+ skills live here
44
44
  │ │
45
45
  │ ├── 📁 brainstorming/
46
46
  │ │ └── 📄 SKILL.md ← Skill definition
@@ -53,7 +53,7 @@ agentic-awesome-skills/
53
53
  │ │ └── 📁 2d-games/
54
54
  │ │ └── 📄 SKILL.md ← Nested skills also supported
55
55
  │ │
56
- │ └── ... (1,987+ total)
56
+ │ └── ... (1,988+ total)
57
57
 
58
58
  ├── 📁 apps/
59
59
  │ └── 📁 web-app/ ← Interactive browser
@@ -106,7 +106,7 @@ agentic-awesome-skills/
106
106
 
107
107
  ```
108
108
  ┌─────────────────────────┐
109
- │ 1,987+ SKILLS │
109
+ │ 1,988+ SKILLS │
110
110
  └────────────┬────────────┘
111
111
 
112
112
  ┌────────────────────────┼────────────────────────┐
@@ -207,7 +207,7 @@ If you want a workspace-style manual install instead, cloning into `.agent/skill
207
207
  │ ├── 📁 brainstorming/ │
208
208
  │ ├── 📁 stripe-integration/ │
209
209
  │ ├── 📁 react-best-practices/ │
210
- │ └── ... (1,987+ total) │
210
+ │ └── ... (1,988+ total) │
211
211
  └─────────────────────────────────────────┘
212
212
  ```
213
213
 
@@ -221,7 +221,7 @@ fix: correct typo in stripe-integration skill
221
221
  ### Bạn mới sử dụng Git/GitHub?
222
222
 
223
223
  - [Hướng dẫn Hello World của GitHub](https://guides.github.com/activities/hello-world/)
224
- - [Cơ bản về Git](https://git-scm.com/book/en/v2/Getting-Started-Git-Basics)
224
+ - [Cơ bản về Git](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository)
225
225
 
226
226
  ### Bạn mới sử dụng Markdown?
227
227
 
@@ -785,9 +785,9 @@
785
785
  }
786
786
  },
787
787
  "node_modules/postcss": {
788
- "version": "8.5.15",
789
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz",
790
- "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==",
788
+ "version": "8.5.18",
789
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.18.tgz",
790
+ "integrity": "sha512-xdB1oSLHbz1vRWgCDalrCqEFTWzFlhqFC5tIHLMOSUIjhm3XXQ1qrFy8S/ESr1JYRRXqM3c1QFiMZUJdUTqyMQ==",
791
791
  "dev": true,
792
792
  "funding": [
793
793
  {
@@ -0,0 +1,144 @@
1
+ ---
2
+ name: seo-drift
3
+ description: "Snapshot a site's SEO state and detect ranking, indexation, metadata, canonical, robots, schema, and on-page regressions over time."
4
+ category: marketing
5
+ risk: safe
6
+ source: https://github.com/nowork-studio/NotFair/tree/main/seo/seo-drift
7
+ source_repo: nowork-studio/NotFair
8
+ source_type: official
9
+ date_added: "2026-07-22"
10
+ author: nowork-studio
11
+ tags: [seo, monitoring, search-console, technical-seo, regression-testing]
12
+ tools: [claude, cursor, gemini, codex]
13
+ license: MIT
14
+ license_source: https://github.com/nowork-studio/NotFair/blob/main/LICENSE
15
+ ---
16
+
17
+ # SEO Drift Monitoring
18
+
19
+ ## Overview
20
+
21
+ Capture a known-good SEO baseline and compare later snapshots against it so regressions become visible. The skill combines search-performance data with live on-page checks to surface ranking drops, deindexation, overwritten metadata, directive changes, and missing schema before they quietly cost traffic.
22
+
23
+ This portable version is adapted from the official [`seo-drift` skill in NotFair](https://github.com/nowork-studio/NotFair/tree/main/seo/seo-drift).
24
+
25
+ ## When to Use
26
+
27
+ Use this skill when the user asks to:
28
+
29
+ - baseline or monitor a site's SEO over time;
30
+ - check whether a migration, redesign, CMS change, or redeploy damaged SEO;
31
+ - compare current search performance and page metadata with a prior snapshot;
32
+ - investigate titles, descriptions, canonicals, robots directives, or schema that changed unexpectedly;
33
+ - identify rankings or indexed pages that disappeared.
34
+
35
+ For a one-time comprehensive SEO audit with no historical comparison, use a general SEO audit skill instead.
36
+
37
+ ## Prerequisites
38
+
39
+ Before capturing data:
40
+
41
+ 1. Confirm the site and the key URLs in scope. Prefer top organic landing pages, commercial pages, and any URLs affected by a recent release.
42
+ 2. Confirm baseline or compare mode. If no prior snapshot exists, use baseline mode and explain that there is nothing to compare yet.
43
+ 3. Ask where the snapshot should be stored. Use a local `seo-drift/` directory alongside the user's other audit reports only after confirming the intended project or reports location.
44
+ 4. Prefer a connected Google Search Console source for query, page, position, impression, click, and indexation signals.
45
+ 5. Use a browser or web-fetch capability for current on-page values. Respect robots directives and avoid high-volume crawling.
46
+
47
+ If Search Console is unavailable, continue only with the on-page comparison and state that ranking and indexation drift could not be measured. Never infer missing Search Console values from a live crawl.
48
+
49
+ ## How It Works
50
+
51
+ ### 1. Choose the comparison boundary
52
+
53
+ Record:
54
+
55
+ - the site property and snapshot date supplied by the user or runtime;
56
+ - whether the snapshot is a baseline or comparison;
57
+ - the prior snapshot used for comparison, when applicable;
58
+ - the exact URL set and search-data window;
59
+ - any known migration, release, or CMS event that may explain expected changes.
60
+
61
+ Do not invent dates or silently compare mismatched date windows.
62
+
63
+ ### 2. Capture the current snapshot
64
+
65
+ For the agreed URL set, collect:
66
+
67
+ - **Search performance:** query and page clicks, impressions, click-through rate, and average position for a stable window;
68
+ - **Indexation:** indexed status or coverage evidence for each key URL when the connected source exposes it;
69
+ - **Metadata:** title, meta description, and H1;
70
+ - **Directives:** canonical URL, robots header, and meta-robots value;
71
+ - **Structured data:** schema types present;
72
+ - **Content shape:** word count and another stable content fingerprint or summary useful for detecting large changes.
73
+
74
+ Persist both the values and their source. Keep unavailable fields as `unknown`; do not coerce them to zero or absent.
75
+
76
+ ### 3. Diff against the previous baseline
77
+
78
+ Surface changes in five groups:
79
+
80
+ 1. **Rankings:** queries that dropped by the agreed threshold or disappeared from the observed window.
81
+ 2. **Indexation:** key pages that lost indexed status or a material drop in indexed-page count.
82
+ 3. **Metadata:** titles, descriptions, or H1s that changed, became blank, or fell back to a generic template.
83
+ 4. **Directives:** canonicals that changed or disappeared, and newly introduced `noindex` directives.
84
+ 5. **Schema:** structured-data types that disappeared from pages where they previously existed.
85
+
86
+ Separate expected content changes from unexplained regressions. A changed value is evidence of drift, not proof of causation.
87
+
88
+ ### 4. Rank severity
89
+
90
+ Use these default levels:
91
+
92
+ - **Critical:** an important page is newly `noindex`, deindexed, or canonicalized to an unintended URL.
93
+ - **Warning:** a material ranking decline, lost query visibility, blank or generic metadata, or missing schema.
94
+ - **Info:** an expected content or metadata change with no observed search-performance harm.
95
+
96
+ Put directive and indexation failures first because they can suppress the entire page regardless of content quality.
97
+
98
+ ### 5. Report and preserve evidence
99
+
100
+ For every reported change, include:
101
+
102
+ - URL and field or metric;
103
+ - before and after values;
104
+ - comparison dates and data window;
105
+ - severity and likely cause, clearly labeled as an inference;
106
+ - the next verification or repair action.
107
+
108
+ End by offering to create a new baseline only after the user confirms that intended changes and critical repairs are complete.
109
+
110
+ ## Example
111
+
112
+ ```text
113
+ User: Baseline SEO for https://example.com before Friday's redesign. Track /, /pricing, and /docs.
114
+
115
+ Agent: I will capture a dated baseline for those three URLs, using Search Console for
116
+ query/page performance and live fetches for metadata, directives, schema, and content
117
+ shape. I will save it under the confirmed reports directory and use the same URL set and
118
+ Search Console window for the post-redesign comparison.
119
+ ```
120
+
121
+ ## Best Practices
122
+
123
+ - Keep the key URL set stable so comparisons remain interpretable.
124
+ - Compare equivalent Search Console windows and call out incomplete or delayed data.
125
+ - Preserve raw snapshot evidence separately from the narrative report.
126
+ - Treat missing data as unknown, not as a decline.
127
+ - Verify a critical directive or canonical change with a second live fetch before escalating it.
128
+ - Label likely causes as hypotheses until repository, CMS, deployment, or change-history evidence confirms them.
129
+
130
+ ## Limitations
131
+
132
+ - Search Console data can lag and may suppress low-volume queries.
133
+ - A live crawl cannot prove that Google has indexed a page or adopted its canonical.
134
+ - Position changes can reflect seasonality, SERP composition, location, device mix, or competitors rather than a site regression.
135
+ - The skill does not replace server-log analysis, full-crawl tooling, or manual review of a large migration.
136
+ - Comparisons are unreliable when URL sets, date windows, locales, or device filters differ without normalization.
137
+
138
+ ## Security & Safety Notes
139
+
140
+ - Write snapshots only inside the user-confirmed project or reports directory.
141
+ - Do not store authentication tokens, cookies, or raw credentials in snapshots.
142
+ - Use read-only Search Console access and non-mutating page fetches.
143
+ - Avoid aggressive crawling; honor access restrictions and keep requests bounded to the agreed scope.
144
+ - Do not change production metadata, canonicals, robots directives, or deployment settings without a separate, explicit implementation request.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-collection",
3
- "version": "4.0.10",
3
+ "version": "4.0.11",
4
4
  "description": "OpenCode CLI plugin that automatically downloads and keeps skills up to date.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",