opencode-skills-collection 3.0.16 → 3.0.17

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-05-16T01:50:15.647Z",
3
+ "updatedAt": "2026-05-17T01:54:01.076Z",
4
4
  "entries": [
5
5
  "00-andruia-consultant",
6
6
  "007",
@@ -1082,6 +1082,7 @@
1082
1082
  "readme",
1083
1083
  "recallmax",
1084
1084
  "receiving-code-review",
1085
+ "recsys-pipeline-architect",
1085
1086
  "recursive-context-pruning-token-budgeting",
1086
1087
  "red-team-tactics",
1087
1088
  "red-team-tools",
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  title: Jetski/Cortex + Gemini Integration Guide
3
- description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1,459+ skills."
3
+ description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1,460+ skills."
4
4
  ---
5
5
 
6
- # Jetski/Cortex + Gemini: safe integration with 1,459+ skills
6
+ # Jetski/Cortex + Gemini: safe integration with 1,460+ skills
7
7
 
8
8
  This guide shows how to integrate the `antigravity-awesome-skills` repository with an agent based on **Jetski/Cortex + Gemini** (or similar frameworks) **without exceeding the model context window**.
9
9
 
@@ -23,7 +23,7 @@ Never do:
23
23
  - concatenate all `SKILL.md` content into a single system prompt;
24
24
  - re-inject the entire library for **every** request.
25
25
 
26
- With 1,459+ skills, this approach fills the context window before user messages are even added, causing truncation.
26
+ With 1,460+ skills, this approach fills the context window before user messages are even added, causing truncation.
27
27
 
28
28
  ---
29
29
 
@@ -31,14 +31,16 @@ With 1,459+ skills, this approach fills the context window before user messages
31
31
 
32
32
  Core principles:
33
33
 
34
- - **Light manifest**: use `data/skills_index.json` to know *which* skills exist without loading full text.
34
+ - **Stable manifest**: use the canonical root `skills_index.json` to know *which* skills exist without loading full text.
35
+ - **Compatibility mirror**: treat `data/skills_index.json` as an exact mirror of the canonical manifest.
35
36
  - **Lazy loading**: read `SKILL.md` **only** for skills actually invoked in a conversation (for example, when `@skill-id` appears).
36
37
  - **Explicit limits**: enforce a maximum number of skills/tokens loaded per turn, with clear fallbacks.
37
38
  - **Path safety**: verify manifest paths remain inside `SKILLS_ROOT` before reading `SKILL.md`.
39
+ - **Schema contract**: validate manifest entries against [`schemas/skills-index.v1.schema.json`](../../schemas/skills-index.v1.schema.json).
38
40
 
39
41
  The recommended flow is:
40
42
 
41
- 1. **Bootstrap**: on agent startup, read `data/skills_index.json` and build an `id -> meta` map.
43
+ 1. **Bootstrap**: on agent startup, read `skills_index.json` (and `data/skills_index.json` if your host expects compatibility reads) and build an `id -> meta` map.
42
44
  2. **Message parsing**: before calling the model, extract all `@skill-id` references from user/system messages.
43
45
  3. **Resolution**: map the found IDs into `SkillMeta` objects using the bootstrap map.
44
46
  4. **Lazy load**: read `SKILL.md` files only for these IDs (up to a configurable maximum).
@@ -48,7 +50,9 @@ The recommended flow is:
48
50
 
49
51
  ## 3. Structure of `skills_index.json`
50
52
 
51
- The file `data/skills_index.json` is an array of objects, for example:
53
+ The file `skills_index.json` is an array of objects, for example:
54
+
55
+ > `data/skills_index.json` is the compatibility mirror and should stay in sync with the canonical root manifest.
52
56
 
53
57
  ```json
54
58
  {
@@ -78,6 +82,10 @@ To resolve the path to a skill definition:
78
82
 
79
83
  ## 4. Integration pseudocode (TypeScript)
80
84
 
85
+ The parser should validate against:
86
+
87
+ - [`schemas/skills-index.v1.schema.json`](../../schemas/skills-index.v1.schema.json)
88
+
81
89
  > Full example in: [`docs/integrations/jetski-gemini-loader/`](../../docs/integrations/jetski-gemini-loader/).
82
90
 
83
91
  ### 4.1. Core Types
@@ -265,7 +273,7 @@ To prevent recurrence:
265
273
  ## 9. Summary
266
274
 
267
275
  - Do not concatenate all `SKILL.md` files into a single prompt.
268
- - Use `data/skills_index.json` as a lightweight manifest.
276
+ - Use `skills_index.json` as the canonical lightweight manifest.
269
277
  - Load skills **on demand** based on `@skill-id`.
270
278
  - Set clear limits (max skills per turn, token threshold).
271
279
 
@@ -9,7 +9,8 @@ This example shows one way to integrate **antigravity-awesome-skills** with a Je
9
9
  ## What this example demonstrates
10
10
 
11
11
  - How to:
12
- - load the global manifest `data/skills_index.json` once at startup;
12
+ - load the canonical manifest `skills_index.json` once at startup;
13
+ - optionally support `data/skills_index.json` for compatibility-only hosts.
13
14
  - scan conversation messages for `@skill-id` patterns;
14
15
  - resolve those ids to entries in the manifest;
15
16
  - read only the corresponding `SKILL.md` files from disk (lazy loading);
@@ -20,7 +21,12 @@ This example shows one way to integrate **antigravity-awesome-skills** with a Je
20
21
  - How to enforce a **maximum number of skills per turn** via `maxSkillsPerTurn`.
21
22
  - How to choose whether to **truncate or error** when too many skills are requested via `overflowBehavior`.
22
23
 
23
- This pattern avoids context overflow when you have 1,459+ skills installed.
24
+ This pattern avoids context overflow when you have 1,460+ skills installed.
25
+
26
+ Manifest contract references:
27
+
28
+ - [`../../../schemas/skills-index.v1.schema.json`](../../../schemas/skills-index.v1.schema.json)
29
+ - [`../../users/discovery-manifest.md`](../../users/discovery-manifest.md)
24
30
 
25
31
  ---
26
32
 
@@ -49,9 +55,9 @@ import {
49
55
 
50
56
  const REPO_ROOT = "/path/to/antigravity-awesome-skills";
51
57
  const SKILLS_ROOT = REPO_ROOT;
52
- const INDEX_PATH = path.join(REPO_ROOT, "data", "skills_index.json");
58
+ const INDEX_PATH = path.join(REPO_ROOT, "skills_index.json");
53
59
 
54
- // 1. Bootstrap once at agent startup
60
+ // 1. Bootstrap once at agent startup (optionally validate `data/skills_index.json` for compatibility hosts).
55
61
  const skillIndex = loadSkillIndex(INDEX_PATH);
56
62
 
57
63
  // 2. Before calling the model, build messages with lazy‑loaded skills
@@ -85,7 +91,8 @@ Adapt the paths and model call to your environment.
85
91
 
86
92
  - **Do not** iterate through `skills/*/SKILL.md` and load everything at once.
87
93
  - This example:
88
- - assumes skills live under the same repo root as `data/skills_index.json`;
94
+ - assumes skills live under the same repo root as `skills_index.json`;
95
+ - keeps `data/skills_index.json` for compatibility readers only;
89
96
  - uses a plain Node.js ESM module so it can be imported directly without a TypeScript runtime.
90
97
  - In a real host:
91
98
  - wire `buildModelMessages` into the point where you currently assemble the prompt before `TrajectoryChatConverter`;
@@ -6,7 +6,7 @@ This document keeps the repository's GitHub-facing discovery copy aligned with t
6
6
 
7
7
  Preferred positioning:
8
8
 
9
- > Installable GitHub library of 1,459+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants.
9
+ > Installable GitHub library of 1,460+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants.
10
10
 
11
11
  Key framing:
12
12
 
@@ -20,7 +20,7 @@ Key framing:
20
20
 
21
21
  Preferred description:
22
22
 
23
- > Installable GitHub library of 1,459+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.
23
+ > Installable GitHub library of 1,460+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.
24
24
 
25
25
  Preferred homepage:
26
26
 
@@ -28,7 +28,7 @@ Preferred homepage:
28
28
 
29
29
  Preferred social preview:
30
30
 
31
- - use a clean preview image that says `1,459+ Agentic Skills`;
31
+ - use a clean preview image that says `1,460+ Agentic Skills`;
32
32
  - mention Claude Code, Cursor, Codex CLI, and Gemini CLI;
33
33
  - avoid dense text and tiny logos that disappear in social cards.
34
34
 
@@ -39,10 +39,12 @@ The START_APP.bat file includes integrated update functionality that:
39
39
  # 1. Generate skills index
40
40
  python tools/scripts/generate_index.py
41
41
 
42
- # 2. Copy to web app
42
+ # 2. Copy canonical manifest to web app
43
43
  copy skills_index.json apps\web-app\public\skills.json
44
44
  ```
45
45
 
46
+ `tools/scripts/generate_index.py` writes the canonical root `skills_index.json` and mirrors the same array payload to `data/skills_index.json` for compatibility readers.
47
+
46
48
  ## Prerequisites
47
49
 
48
50
  For manual updates, you need:
@@ -67,9 +69,10 @@ For manual updates, you need:
67
69
  ## What Gets Updated
68
70
 
69
71
  The update process refreshes:
70
- - Skills index (`skills_index.json`)
72
+ - Canonical skills index (`skills_index.json`)
73
+ - Compatibility mirror (`data/skills_index.json`)
71
74
  - Web app skills data (`apps\web-app\public\skills.json`)
72
- - All 1,459+ skills from the skills directory
75
+ - All 1,460+ skills from the skills directory
73
76
 
74
77
  ## When to Update
75
78
 
@@ -673,4 +673,4 @@ Found a skill that should be in a bundle? Or want to create a new bundle? [Open
673
673
 
674
674
  ---
675
675
 
676
- _Last updated: March 2026 | Total Skills: 1,459+ | Total Bundles: 37_
676
+ _Last updated: March 2026 | Total Skills: 1,460+ | Total Bundles: 37_
@@ -12,7 +12,7 @@ Install the library into Claude Code, then invoke focused skills directly in the
12
12
 
13
13
  ## Why use this repo for Claude Code
14
14
 
15
- - It includes 1,459+ skills instead of a narrow single-domain starter pack.
15
+ - It includes 1,460+ skills instead of a narrow single-domain starter pack.
16
16
  - It supports the standard `.claude/skills/` path and the Claude Code plugin marketplace flow.
17
17
  - It also ships generated bundle plugins so teams can install focused packs like `Essentials` or `Security Developer` from the marketplace metadata.
18
18
  - It includes onboarding docs, bundles, and workflows so new users do not need to guess where to begin.
@@ -0,0 +1,62 @@
1
+ # Stable Skills Manifest v1
2
+
3
+ This page documents the `skills_index.json` manifest contract used by stable integrations.
4
+
5
+ ## Manifest contract (v1)
6
+
7
+ - **Canonical file:** `skills_index.json` at repository root.
8
+ - **Mirror file:** `data/skills_index.json` must be an exact compatibility mirror of `skills_index.json`.
9
+ - **Format:** JSON array, one object per skill.
10
+ - **Schema:** [`schemas/skills-index.v1.schema.json`](../../schemas/skills-index.v1.schema.json)
11
+
12
+ ## Required fields
13
+
14
+ Each manifest entry includes:
15
+
16
+ - `id` – skill identifier (same as `@skill-id`).
17
+ - `path` – relative skill folder, e.g. `skills/brainstorming`.
18
+ - `category` – grouping used by UI/search surfaces.
19
+ - `name` – display name.
20
+ - `description` – short purpose/trigger summary.
21
+ - `risk` – one of repo risk labels.
22
+ - `source` – source of authority/trust metadata.
23
+ - `date_added` – ISO date string or `null`.
24
+
25
+ Additional fields are allowed, and `plugin` metadata is optional.
26
+
27
+ ## Recommended host behavior
28
+
29
+ Stable integrations must not load every skill instruction file up front.
30
+
31
+ - Read the manifest (`skills_index.json`).
32
+ - Resolve only the requested `@skill-id` values from the conversation.
33
+ - For each resolved skill, read that one `SKILL.md` lazily.
34
+ - Enforce a per-turn maximum so user prompts stay below context limits.
35
+ - Validate each resolved path stays under your configured `SKILLS_ROOT`.
36
+
37
+ This is the core prevention for context truncation and trajectory conversion errors in larger multi-skill hosts.
38
+
39
+ ## Why the `data/` mirror exists
40
+
41
+ `data/skills_index.json` remains for downstream compatibility where clients still read from the `data/` subtree. The stable contract is that both files contain the same payload.
42
+
43
+ ## Quick structure example
44
+
45
+ ```json
46
+ {
47
+ "id": "brainstorming",
48
+ "path": "skills/brainstorming",
49
+ "category": "planning",
50
+ "name": "brainstorming",
51
+ "description": "Use before any creative or constructive work.",
52
+ "risk": "safe",
53
+ "source": "official",
54
+ "date_added": "2026-02-27"
55
+ }
56
+ ```
57
+
58
+ ## Related docs
59
+
60
+ - [`docs/integrations/jetski-cortex.md`](../integrations/jetski-cortex.md)
61
+ - [`docs/integrations/jetski-gemini-loader/README.md`](../integrations/jetski-gemini-loader/README.md)
62
+ - [`docs/users/windows-truncation-recovery.md`](windows-truncation-recovery.md)
@@ -70,9 +70,16 @@ This is **not** how this repository is designed to be used, and it will almost c
70
70
 
71
71
  Instead, hosts should:
72
72
 
73
- - use `data/skills_index.json` as a **lightweight manifest** for discovery; and
73
+ - use `skills_index.json` as the **canonical array-format manifest** for discovery;
74
+ - use `data/skills_index.json` as the compatibility mirror in `data/` when needed;
75
+ - validate each discovered `path` against `SKILLS_ROOT` before reading; and
74
76
  - load individual `SKILL.md` files **only when a skill is invoked** (e.g. via `@skill-id` in the conversation).
75
77
 
78
+ Manifest contract references:
79
+
80
+ - [`schemas/skills-index.v1.schema.json`](../../schemas/skills-index.v1.schema.json)
81
+ - [`discovery-manifest.md`](discovery-manifest.md)
82
+
76
83
  For a concrete example (including pseudo‑code) see:
77
84
 
78
85
  - [`docs/integrations/jetski-cortex.md`](../integrations/jetski-cortex.md)
@@ -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,459+ files.
15
+ - It helps new users get started with bundles and workflows rather than forcing a cold start from 1,460+ 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
@@ -1,4 +1,4 @@
1
- # Getting Started with Antigravity Awesome Skills (V11.2.0)
1
+ # Getting Started with Antigravity Awesome Skills (V11.3.0)
2
2
 
3
3
  **New here? This guide will help you supercharge your AI Agent in 5 minutes.**
4
4
 
@@ -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,459+ specialized areas
21
+ - **Domain expertise** across 1,460+ 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
@@ -14,7 +14,7 @@ If you came in through a **Claude Code** or **Codex** plugin instead of a full l
14
14
 
15
15
  When you ran `npx antigravity-awesome-skills` or cloned the repository, you:
16
16
 
17
- ✅ **Downloaded 1,459+ skill files** to your computer (default: `~/.gemini/antigravity/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
17
+ ✅ **Downloaded 1,460+ skill files** to your computer (default: `~/.gemini/antigravity/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
18
18
  ✅ **Made them available** to your AI assistant
19
19
  ❌ **Did NOT enable them all automatically** (they're just sitting there, waiting)
20
20
 
@@ -34,7 +34,7 @@ Bundles are **curated groups** of skills organized by role. They help you decide
34
34
 
35
35
  **Analogy:**
36
36
 
37
- - You installed a toolbox with 1,459+ tools (✅ done)
37
+ - You installed a toolbox with 1,460+ tools (✅ done)
38
38
  - Bundles are like **labeled organizer trays** saying: "If you're a carpenter, start with these 10 tools"
39
39
  - You can either **pick skills from the tray** or install that tray as a focused marketplace bundle plugin
40
40
 
@@ -212,7 +212,7 @@ Let's actually use a skill right now. Follow these steps:
212
212
 
213
213
  ## Step 5: Picking Your First Skills (Practical Advice)
214
214
 
215
- Don't try to use all 1,459+ skills at once. Here's a sensible approach:
215
+ Don't try to use all 1,460+ skills at once. Here's a sensible approach:
216
216
 
217
217
  If you want a tool-specific starting point before choosing skills, use:
218
218
 
@@ -343,17 +343,23 @@ Usually no, but if your AI doesn't recognize a skill:
343
343
 
344
344
  ### "Can I load all skills into the model at once?"
345
345
 
346
- No. Even though you have 1,459+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
346
+ No. Even though you have 1,460+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
347
347
 
348
348
  The intended pattern is:
349
349
 
350
- - use `data/skills_index.json` (the manifest) to discover which skills exist; and
350
+ - use `skills_index.json` (canonical discovery manifest) to discover which skills exist; and
351
+ - use `data/skills_index.json` only when your host reads from `data/` for compatibility;
351
352
  - only load the `SKILL.md` files for the specific `@skill-id` values you actually use in a conversation.
352
353
 
353
354
  If you are building your own host/agent (e.g. Jetski/Cortex + Gemini), see:
354
355
 
355
356
  - [`docs/integrations/jetski-cortex.md`](../integrations/jetski-cortex.md)
356
357
 
358
+ The v1 manifest shape is defined in:
359
+
360
+ - [`schemas/skills-index.v1.schema.json`](../../schemas/skills-index.v1.schema.json)
361
+ - [`discovery-manifest.md`](discovery-manifest.md)
362
+
357
363
  ### "Can I create my own skills?"
358
364
 
359
365
  Yes! Use the `@skill-creator` skill:
@@ -34,7 +34,7 @@ antigravity-awesome-skills/
34
34
  ├── 📄 CONTRIBUTING.md ← Contributor workflow
35
35
  ├── 📄 CATALOG.md ← Full generated catalog
36
36
 
37
- ├── 📁 skills/ ← 1,459+ skills live here
37
+ ├── 📁 skills/ ← 1,460+ skills live here
38
38
  │ │
39
39
  │ ├── 📁 brainstorming/
40
40
  │ │ └── 📄 SKILL.md ← Skill definition
@@ -47,7 +47,7 @@ antigravity-awesome-skills/
47
47
  │ │ └── 📁 2d-games/
48
48
  │ │ └── 📄 SKILL.md ← Nested skills also supported
49
49
  │ │
50
- │ └── ... (1,459+ total)
50
+ │ └── ... (1,460+ total)
51
51
 
52
52
  ├── 📁 apps/
53
53
  │ └── 📁 web-app/ ← Interactive browser
@@ -100,7 +100,7 @@ antigravity-awesome-skills/
100
100
 
101
101
  ```
102
102
  ┌─────────────────────────┐
103
- │ 1,459+ SKILLS │
103
+ │ 1,460+ SKILLS │
104
104
  └────────────┬────────────┘
105
105
 
106
106
  ┌────────────────────────┼────────────────────────┐
@@ -201,7 +201,7 @@ If you want a workspace-style manual install instead, cloning into `.agent/skill
201
201
  │ ├── 📁 brainstorming/ │
202
202
  │ ├── 📁 stripe-integration/ │
203
203
  │ ├── 📁 react-best-practices/ │
204
- │ └── ... (1,459+ total) │
204
+ │ └── ... (1,460+ total) │
205
205
  └─────────────────────────────────────────┘
206
206
  ```
207
207
 
@@ -60,10 +60,13 @@ If you installed skills into a different location, also back up that custom dire
60
60
  ## Recommended prevention
61
61
 
62
62
  - Do not concatenate every `SKILL.md` into one system prompt.
63
- - Use `data/skills_index.json` as a lightweight manifest.
63
+ - Use the stable manifest contract:
64
+ - `skills_index.json` as canonical discovery source;
65
+ - `data/skills_index.json` only as compatibility mirror.
64
66
  - Load `SKILL.md` files only when a skill is actually requested.
65
67
  - Set explicit limits for skills per turn.
66
68
  - Prefer `overflowBehavior: "error"` in the reference Jetski/Gemini loader so the host fails clearly instead of silently overfilling the context window.
69
+ - See the schema and contract details in [`discovery-manifest.md`](discovery-manifest.md).
67
70
 
68
71
  See:
69
72
 
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: recsys-pipeline-architect
3
+ description: "Designs composable recommendation, ranking, and feed pipelines using the six-stage Source→Hydrator→Filter→Scorer→Selector→SideEffect framework"
4
+ category: data-ai
5
+ risk: safe
6
+ source: community
7
+ source_repo: mturac/recsys-pipeline-architect
8
+ source_type: community
9
+ date_added: "2026-05-16"
10
+ author: mturac
11
+ tags: [recommender-system, ranking, feed-algorithm, recsys, personalization, for-you-feed, rag-reranker, pipeline-architecture]
12
+ tools: [claude, codex, cursor, gemini, opencode, cline, continue, windsurf]
13
+ license: "MIT"
14
+ license_source: "https://github.com/mturac/recsys-pipeline-architect/blob/main/LICENSE"
15
+ ---
16
+
17
+ # recsys-pipeline-architect
18
+
19
+ ## Overview
20
+
21
+ A spec-and-scaffold skill for building composable recommendation, ranking, and feed pipelines. It encodes the six-stage **Source → Hydrator → Filter → Scorer → Selector → SideEffect** framework popularized by xAI's open-sourced [For You algorithm](https://github.com/xai-org/x-algorithm) (Apache 2.0). This skill is an independent reimplementation of the *pattern* — no code is copied from the original — licensed MIT. Use it whenever you need "the top K items for a (user, context)": social feeds, content CMSs, RAG rerankers, task prioritizers, notification triage, search reranking, ad ranking.
22
+
23
+ ## When to Use This Skill
24
+
25
+ - Use when the user wants to build any system that picks "the top K items for a user/context"
26
+ - Use when the user asks "how should I rank X" or describes a feed/personalization problem
27
+ - Use when the user has a scoring function and needs the pipeline plumbing around it
28
+ - Use when the user wants to migrate from a single relevance score to multi-action prediction with tunable weights
29
+ - Use when the user is wrapping an LLM/ML scorer and needs filters, hydrators, side-effects, and a runnable scaffold in their stack (TypeScript / Go / Python)
30
+
31
+ ## How It Works
32
+
33
+ ### Step 1: Clarify the use case
34
+
35
+ Ask the user three questions (only what is missing):
36
+
37
+ 1. What are the items being ranked? (posts, products, tasks, alerts, documents...)
38
+ 2. What is the input context? (user ID, search query, current document, time window...)
39
+ 3. What language / runtime? (TypeScript/Node, Go, Python, Rust...)
40
+
41
+ ### Step 2: Walk the eight steps of the spec
42
+
43
+ The full SKILL walks through: clarify use case → identify candidate sources → list required hydrations → list filters → design scorer chain → selector → side effects → generate scaffold. Each step surfaces the architectural trade-offs (multi-action vs single-score, candidate isolation vs joint scoring, online vs offline batch) so the user makes them explicitly rather than defaulting silently.
44
+
45
+ ### Step 3: Emit a runnable scaffold
46
+
47
+ The upstream repository ships three runnable example scaffolds — every one green on its test suite:
48
+
49
+ - **Strapi v5 plugin** (TypeScript, Jest, 3/3 pass) — adds `GET /api/feed/for-you` with multi-action scoring and author diversity
50
+ - **Zentra-compatible pipeline** (Go with generics, 3/3 pass) — engine.Module-compatible, standalone-usable
51
+ - **PMAI task prioritizer** (Python / FastAPI / pytest, 3/3 pass) — `GET /tasks/next?user_id=42&limit=10`
52
+
53
+ When the user's stack doesn't match, the skill generates from scratch following the interface definitions in `references/interfaces.md` (TypeScript, Go, Python, Rust).
54
+
55
+ ## Examples
56
+
57
+ ### Example 1: Strapi content feed
58
+
59
+ User: "I'm running a Strapi v5 instance with 50k articles. I want a 'for you' feed personalized to each logged-in user based on their reading history."
60
+
61
+ Skill walks through the 8 steps, generates a Strapi plugin scaffold using the Strapi example as the template.
62
+
63
+ ### Example 2: RAG retrieval reranker
64
+
65
+ User: "My RAG returns top-50 chunks from a vector DB. I want to rerank them with a more expensive scorer and return top-5."
66
+
67
+ Skill recognizes this as a single-source pipeline with a scorer chain (cheap retrieval + expensive rerank). Generates a Python async pipeline.
68
+
69
+ ### Example 3: Notification triage
70
+
71
+ User: "We send too many notifications. I want a daily digest that picks the top 10 from the last 24h queue."
72
+
73
+ Skill identifies this as an offline-batch pipeline. Generates a scheduled job scaffold.
74
+
75
+ ## Best Practices
76
+
77
+ - ✅ Surface the multi-action vs single-score trade-off explicitly — don't default silently
78
+ - ✅ Order filters by cost (cheap before expensive); universal filters before user-specific
79
+ - ✅ Wrap side effects in fire-and-forget patterns (goroutines / promises without await / asyncio tasks) — never block the response
80
+ - ✅ Keep scoring deterministic and cacheable; do diversity reranking as a separate stage
81
+ - ✅ Attribute the pattern as "popularized by xAI's open-sourced For You algorithm" when generating output
82
+ - ❌ Don't invent benchmark or latency numbers — say "depends on workload, run it yourself"
83
+ - ❌ Don't name the user's generated artifact "X-like" or use "For You" branding — the pattern is free, the brand is not
84
+ - ❌ Don't conflate this with model architecture: this skill is pipeline plumbing *around* the scorer, not the scorer itself
85
+
86
+ ## Limitations
87
+
88
+ - This skill scaffolds pipeline plumbing; it does not train ML models — the scoring function is the user's responsibility
89
+ - It does not operate deployed pipelines (no monitoring, no autoscaling decisions)
90
+ - It does not predict pipeline performance (depends on data, hardware, traffic)
91
+ - It does not choose infrastructure (vector DB, cache, queue) — those are outside scope
92
+
93
+ ## Security & Safety Notes
94
+
95
+ - The generated scaffolds are framework code, not application logic — no shell commands, no network fetches, no credential handling
96
+ - Filters in the generated cookbook include eligibility/paywall/geo-restriction checks; the skill recommends putting these *before* scoring (so blocked content is never scored)
97
+ - Side-effect stages are always async / fire-and-forget; the skill documents this explicitly in the generated README to prevent users from accidentally blocking the response with cache writes or event emissions
98
+
99
+ ## Common Pitfalls
100
+
101
+ - **Problem:** Single-score model gets overfit to one metric (clicks) and degrades on others (long sessions, retention)
102
+ **Solution:** Skill recommends multi-action prediction with tunable weights — change behavior by changing weights, no retraining
103
+
104
+ - **Problem:** Joint scoring (transformer over the whole batch) is non-deterministic and uncacheable
105
+ **Solution:** Skill defaults to candidate isolation via attention masking; recommends joint only when there's a specific reason (e.g., batch-aware diversity)
106
+
107
+ - **Problem:** Side effects (cache writes, impression emits) block the response
108
+ **Solution:** Skill generates fire-and-forget patterns and documents the constraint
109
+
110
+ ## Upstream
111
+
112
+ This skill is a thin adapter to the upstream repository. For the full SKILL.md content, 5 reference documents (interfaces in 4 languages, multi-action scoring, candidate isolation, filter cookbook, scorer cookbook), and 3 runnable example scaffolds with passing test suites:
113
+
114
+ - **Repository:** https://github.com/mturac/recsys-pipeline-architect
115
+ - **Release:** v0.1.0
116
+ - **Install via skills.sh:** `npx skills add mturac/recsys-pipeline-architect`
117
+ - **Pattern source:** https://github.com/xai-org/x-algorithm (Apache 2.0; this skill is MIT)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-collection",
3
- "version": "3.0.16",
3
+ "version": "3.0.17",
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",
package/skills_index.json CHANGED
@@ -23788,6 +23788,28 @@
23788
23788
  "reasons": []
23789
23789
  }
23790
23790
  },
23791
+ {
23792
+ "id": "recsys-pipeline-architect",
23793
+ "path": "skills/recsys-pipeline-architect",
23794
+ "category": "data-ai",
23795
+ "name": "recsys-pipeline-architect",
23796
+ "description": "Designs composable recommendation, ranking, and feed pipelines using the six-stage Source\u2192Hydrator\u2192Filter\u2192Scorer\u2192Selector\u2192SideEffect framework",
23797
+ "risk": "safe",
23798
+ "source": "community",
23799
+ "date_added": "2026-05-16",
23800
+ "plugin": {
23801
+ "targets": {
23802
+ "codex": "supported",
23803
+ "claude": "supported"
23804
+ },
23805
+ "setup": {
23806
+ "type": "none",
23807
+ "summary": "",
23808
+ "docs": null
23809
+ },
23810
+ "reasons": []
23811
+ }
23812
+ },
23791
23813
  {
23792
23814
  "id": "recursive-context-pruning-token-budgeting",
23793
23815
  "path": "skills/recursive-context-pruning-token-budgeting",