@ericrisco/rsc 0.1.63 → 0.1.65

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.
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.63",
2
+ "version": "0.1.65",
3
3
  "counts": {
4
4
  "skills": 258
5
5
  },
@@ -3863,7 +3863,7 @@
3863
3863
  },
3864
3864
  {
3865
3865
  "id": "replicate-images",
3866
- "description": "Use when generating or editing images through the Replicate API, or when a modern image model keeps ignoring the prompt — running google/nano-banana-2, openai/gpt-image-1, Flux, or SeeDream from Node or Python, choosing aspect ratio, resolution, seed, and output format, doing image-to-image, multi-reference composition, or text-driven inpainting, and structuring prompts per model family. Triggers: 'replicate.run nano-banana-2', 'why does Flux ignore half my prompt', 'render readable text inside a generated product label', 'compose a product shot from two reference images', 'make the generation reproducible with a seed', 'generar y editar imágenes con la API de Replicate', 'per què Flux no segueix el prompt'. NOT general Replicate platform/auth/non-image models like LLMs or audio (that is replicate).",
3866
+ "description": "Use when generating or editing images through the Replicate API, or when a modern image model keeps ignoring the prompt — choosing aspect ratio, resolution, seed and output format, image-to-image, multi-reference composition, text-driven inpainting, readable text inside a generated image, and structuring prompts per model family. NOT general Replicate platform, auth or non-image models (that is `replicate`).",
3867
3867
  "tags": [
3868
3868
  "replicate",
3869
3869
  "image-generation",
@@ -3908,7 +3908,7 @@
3908
3908
  },
3909
3909
  {
3910
3910
  "id": "research-ops",
3911
- "description": "Use when someone hands you an open question to find out the truth about — a tech choice, a regulation, a 'what's actually true about X' — and the answer must survive scrutiny: every non-obvious claim dated and sourced, source disagreements surfaced not averaged away, and the deliverable is a cited memo you could defend in a room. Also when refreshing a stale research memo. Triggers: 'research whether A or B is better in 2026 with sources', 'give me a memo I can defend in Monday's meeting', 'settle this argument, is X actually true, cite your sources', 'what's the state of Y with citations', 'investiga a fondo X y cítame las fuentes con fecha', 'fes una recerca a fons amb fonts datades i nivell de confiança'. NOT sizing a market with TAM/SAM/SOM (that is market-research), NOT a standing cadence watch on named rivals (that is competitor-watch).",
3911
+ "description": "Use when someone hands you an open question whose answer must survive scrutiny — a tech choice, a regulation, a what-is-actually-true-about-X — with every non-obvious claim dated and sourced, source disagreements surfaced rather than averaged away, and a cited memo as the deliverable. Also for refreshing a stale research memo. NOT sizing a market with TAM/SAM/SOM (that is `market-research`), NOT a standing cadence watch on named rivals (that is `competitor-watch`).",
3912
3912
  "tags": [
3913
3913
  "research-ops",
3914
3914
  "deep-research",
@@ -3931,7 +3931,7 @@
3931
3931
  },
3932
3932
  {
3933
3933
  "id": "retention",
3934
- "description": "Use when revenue is leaking out the bottom of the funnel and you need a program to keep, score, and win back customers — building a customer health score, running NPS, catching churn signals before renewal, designing a cancellation save flow, or a win-back sequence. Triggers: 'reduce churn', 'health score', 'NPS', 'save play', 'cancellation flow', 'win-back', 'at-risk accounts', 'GRR vs NRR', non-obvious 'my annual customers are downgrading to monthly', 'renewal is slipping', 'detractors keep canceling'; Catalan/Spanish 'reduir la rotació de clients', 'recuperar clients perduts', 'puntuació de salut del client', 'evitar bajas'. NOT working a single live churn-risk ticket in the moment (that is customer-support), NOT the first-30-days welcome flow (that is client-onboarding).",
3934
+ "description": "Use when revenue is leaking out the bottom of the funnel and you need a program to keep, score and win back customers — a customer health score, NPS, catching churn signals before renewal, a cancellation save flow, or a win-back sequence, and reading GRR against NRR. NOT working a single live churn-risk ticket in the moment (that is `customer-support`), NOT the first-30-days welcome flow (that is `client-onboarding`).",
3935
3935
  "tags": [
3936
3936
  "retention",
3937
3937
  "churn",
@@ -3973,7 +3973,7 @@
3973
3973
  },
3974
3974
  {
3975
3975
  "id": "review-management",
3976
- "description": "Use when a public review just landed and needs an on-voice reply, or you need to earn more reviews legally, or your aggregate rating is slipping across Google Business Profile, Trustpilot, the App Store, or Google Play. Use when a 1-star feels unfair and you want it removed not just answered, when you must decide reply-vs-flag, or when wiring programmatic replies (GBP v4 updateReply, Trustpilot, App Store Connect, Play). Triggers: 'responder a esta reseña de Google', 'conseguir más reseñas sin saltarnos la ley', 'respon aquesta ressenya d''una estrella', 'aconseguir més ressenyes sense saltar-nos la llei', 'a 1-star landed and I want it removed not just answered', 'are we allowed to ask only happy customers for reviews', 'draft a reply to this 2-star', 'set up a review-request flow', 'build a reputation scorecard across Google and the App Store'. NOT a private 1:1 support ticket against an SLA (that is customer-support), NOT churn/NPS/save plays (that is retention).",
3976
+ "description": "Use when a public review needs an on-voice reply, when you need to earn more reviews legally, or when an aggregate rating is slipping across Google Business Profile, Trustpilot, the App Store or Google Play — including deciding reply versus flag, getting an unfair one-star removed rather than merely answered, and wiring programmatic replies. NOT a private support ticket against an SLA (that is `customer-support`), NOT churn, NPS or save plays (that is `retention`).",
3977
3977
  "tags": [
3978
3978
  "reviews",
3979
3979
  "reputation",
@@ -4032,7 +4032,7 @@
4032
4032
  },
4033
4033
  {
4034
4034
  "id": "runpod",
4035
- "description": "Use when running GPU compute on RunPod and deciding between Pods (hourly, always-on) and Serverless (per-second, autoscaling) for training, fine-tuning, or model inference. Triggers: deploying a vLLM or custom-model serverless endpoint, writing or debugging a handler(job) worker, building a worker Docker template, attaching a network volume, tuning idle/execution timeout, max/active workers, FlashBoot, or chasing a runaway RunPod bill or slow cold starts; 'mi factura de RunPod se disparó', 'pod o serverless en RunPod', 'workers que no escalan a cero', 'el cold start tarda 20s'. NOT generic Python-native serverless GPU with snapshot autoscaling (that is modal); NOT calling hosted prebuilt model APIs (that is replicate); NOT pulling weights from the Hub (that is huggingface).",
4035
+ "description": "Use when running GPU compute on RunPod and deciding between Pods (hourly, always-on) and Serverless (per-second, autoscaling) for training, fine-tuning or inference — serverless endpoints, handler workers, worker Docker templates, network volumes, timeout and worker-count tuning, cold starts, and runaway bills. NOT Python-native serverless GPU with snapshot autoscaling (that is `modal`), NOT calling hosted prebuilt model APIs (that is `replicate`), NOT pulling weights from the Hub (that is `huggingface`).",
4036
4036
  "tags": [
4037
4037
  "runpod",
4038
4038
  "gpu",
@@ -4075,7 +4075,7 @@
4075
4075
  },
4076
4076
  {
4077
4077
  "id": "sales-pipeline",
4078
- "description": "Use when an operator runs deals out of a spreadsheet, Notion, or Airtable and wants real stages, win-probabilities, deal hygiene, a weekly follow-up sweep, or a defensible roll-up forecast off the list — and when the pipeline looks full but nothing closes. Triggers: 'set up stages and a weighted forecast for my deal sheet', 'which deals are stale and what do I follow up on this week', 'my forecast keeps slipping every quarter', 'what's my pipeline coverage vs a 250k quota', 'build me a lightweight CRM without Salesforce', 'munta'm un CRM lleuger amb etapes i previsió', 'quins deals estan encallats', 'previsió de vendes del pipeline'. NOT statistical / scenario forecast modeling, time-series or cohort projections (that is forecasting), NOT sourcing new prospects (that is lead-gen), NOT writing the outbound emails (that is cold-outreach), NOT writing the proposal/quote (that is proposals), NOT the post-close kickoff (that is client-onboarding).",
4078
+ "description": "Use when an operator runs deals out of a spreadsheet or Notion and wants real stages, win probabilities, deal hygiene, a weekly follow-up sweep, and a defensible roll-up forecast — including the case where the pipeline looks full but nothing closes. NOT statistical or scenario forecast modelling (that is `forecasting`), NOT sourcing prospects (that is `lead-gen`), NOT writing the outbound emails (that is `cold-outreach`), NOT the proposal or quote (that is `proposals`), NOT the post-close kickoff (that is `client-onboarding`).",
4079
4079
  "tags": [
4080
4080
  "sales",
4081
4081
  "crm",
@@ -4096,7 +4096,7 @@
4096
4096
  },
4097
4097
  {
4098
4098
  "id": "scaling",
4099
- "description": "Use when traffic is growing or about to spike and the system bends under concurrency — deciding what to add and in what order (cache, connection pool, async queue, read replica, more instances) and proving it with a load test instead of guessing. Triggers: 'will we survive the launch spike', 'fine for me but dies under load', 'too many clients already', 'add caching or a read replica?', 'set RPS and p95 targets and load-test before go-live', the non-obvious 'DB connections are maxed out', and Catalan/Spanish 'aguantarem el pic de trànsit del llançament' / 'prepara un test de carga con objetivos de p95'. NOT making one slow request faster or profiling an N+1 (that is performance), NOT race-free Redis caches/locks/queue semantics (that is redis).",
4099
+ "description": "Use when traffic is growing or about to spike and the system bends under concurrency — deciding what to add and in what order (cache, connection pool, async queue, read replica, more instances) and proving it with a load test against explicit RPS and p95 targets rather than guessing. NOT making one slow request faster or profiling an N+1 (that is `performance`), NOT race-free Redis caches, locks and queue semantics (that is `redis`).",
4100
4100
  "tags": [
4101
4101
  "scaling",
4102
4102
  "capacity",
@@ -4193,7 +4193,7 @@
4193
4193
  },
4194
4194
  {
4195
4195
  "id": "seo-geo",
4196
- "description": "Use when you need one existing page to rank in Google AND get cited by AI answer engines (ChatGPT Search, Perplexity, Gemini/AI Overviews, Copilot) — auditing a URL for on-page SEO, structured-data/JSON-LD schema, GEO citation levers, Core Web Vitals, crawlability, and AI-bot access in robots.txt. Triggers: 'audit this page for SEO', 'why isn't this ranking', 'get us cited in ChatGPT/Perplexity', 'optimize for AI search', 'add schema markup', 'write the JSON-LD', 'should we block GPTBot', 'our Core Web Vitals are failing', 'audita el SEO de esta página', 'optimitza per a cerca amb IA', 'afegeix schema a aquest article'. NOT writing the article body (that is article-writing), NOT keyword research or content strategy (that is content-engine).",
4196
+ "description": "Use when one existing page needs to rank in Google AND get cited by AI answer engines — auditing a URL for on-page SEO, structured-data JSON-LD, GEO citation levers, Core Web Vitals, crawlability, and AI-bot access in robots.txt. NOT writing the article body (that is `article-writing`), NOT keyword research or content strategy (that is `content-engine`).",
4197
4197
  "tags": [
4198
4198
  "seo",
4199
4199
  "geo",
@@ -4231,7 +4231,7 @@
4231
4231
  },
4232
4232
  {
4233
4233
  "id": "shopify",
4234
- "description": "Use when building or customizing a Shopify store across its three code surfaces — themes (Liquid + Online Store 2.0 sections/blocks/JSON templates), apps (Remix + versioned GraphQL Admin API), and checkout (UI extensions, Functions, Web Pixels). Triggers: writing/reviewing any .liquid section/snippet/template or {% schema %}, scaffolding a Shopify app with @shopify/shopify-app-remix + Polaris, Admin GraphQL queries and the query-cost/throttle model, shopify CLI flow (theme dev/push, app dev/deploy), 'merchant must edit content in the theme editor without a deploy', 'our checkout customizations broke after the August upgrade', 'add an @app block to the product section', 'migrar el checkout.liquid a checkout extensibility', 'afegir un bloc d'app a la secció de producte'. NOT WooCommerce/PHP stores (that is wordpress), NOT the React/RSC layer of a headless storefront (that is nextjs), NOT non-Shopify payment integrations (that is stripe).",
4234
+ "description": "Use when building or customizing a Shopify store across its three code surfaces — themes (Liquid, Online Store 2.0 sections, blocks and JSON templates), apps (Remix with the versioned GraphQL Admin API and its query-cost model), and checkout (UI extensions, Functions, Web Pixels), plus the CLI flow and checkout-extensibility migration. NOT WooCommerce or PHP stores (that is `wordpress`), NOT the React layer of a headless storefront (that is `nextjs`), NOT non-Shopify payment integrations (that is `stripe`).",
4235
4235
  "tags": [
4236
4236
  "shopify",
4237
4237
  "liquid",
@@ -4252,7 +4252,7 @@
4252
4252
  },
4253
4253
  {
4254
4254
  "id": "shortform-editing",
4255
- "description": "Use when you have raw 9:16 footage and need it cut into a posted-ready vertical short — dead air removed, fast jump cuts, karaoke word-by-word burned-in captions from a transcript, cuts and zooms snapped to the music beat, and a platform-correct MP4 export. Use to remove silences, generate or fix burned captions, sync cuts to a beat grid, or encode to TikTok/Reels/Shorts specs. Triggers: 'remove the dead air from this talking-head clip', 'burn TikTok-style word-by-word captions onto this short', 'cut this footage to the beat of the song', 'export this Reel with the right specs', 'my captions are out of sync and getting hidden behind the TikTok buttons', 'quítale los silencios y ponle subtítulos quemados estilo TikTok', 'munta'm aquest clip vertical amb talls sincronitzats amb la música'. NOT writing the script, hook, beats, or caption text (that is video-shorts), NOT building a Remotion React composition codebase (that is remotion-video), NOT deciding when/where to post (that is social-publisher).",
4255
+ "description": "Use when you have raw 9:16 footage and need it cut into a post-ready vertical short — dead air removed, fast jump cuts, karaoke word-by-word burned-in captions from a transcript, cuts and zooms snapped to the music beat, safe-area placement so captions clear the platform UI, and a platform-correct MP4 export. NOT writing the script, hook, beats or caption text (that is `video-shorts`), NOT building a Remotion React composition codebase (that is `remotion-video`), NOT deciding when or where to post (that is `social-publisher`).",
4256
4256
  "tags": [
4257
4257
  "video-editing",
4258
4258
  "shortform",
@@ -4294,7 +4294,7 @@
4294
4294
  },
4295
4295
  {
4296
4296
  "id": "shortform-packaging",
4297
- "description": "Use when a vertical short (TikTok/Reels/YouTube Shorts) is shot or scripted and you need the upload-form copy and cover that win the feed: the hook line, the first-frame on-screen text, the search-led caption, a tight 3-5 hashtag set, and the cover frame; it learns from what performed via the 02-DOCS log. Triggers: 'write the hook and caption for this Reel', 'pick the cover frame and its text', 'what hashtags for this TikTok', the non-obvious 'is 20 hashtags too many' and 'my shorts get views but nobody shares them, fix the packaging', 'rewrite the caption to rank in TikTok search', 'log how the last 5 shorts performed and apply it', plus Spanish/Catalan 'escríbeme el gancho y el pie de foto para este Reel' / 'ningú comparteix els meus vídeos, arregla'm el packaging i dona'm els hashtags'. NOT inventing the idea (that is shortform-ideation), NOT scripting or directing the cuts (that is video-shorts), NOT executing the edit (that is shortform-editing), NOT scheduling the post (that is social-publisher).",
4297
+ "description": "Use when a vertical short is shot or scripted and you need the upload-form copy and cover that win the feed — the hook line, the first-frame on-screen text, the search-led caption, a tight hashtag set, and the cover frame; it learns from what performed via the 02-DOCS log. NOT inventing the idea (that is `shortform-ideation`), NOT scripting or directing the cuts (that is `video-shorts`), NOT executing the edit (that is `shortform-editing`), NOT scheduling the post (that is `social-publisher`).",
4298
4298
  "tags": [
4299
4299
  "shortform",
4300
4300
  "packaging",
@@ -4348,7 +4348,7 @@
4348
4348
  },
4349
4349
  {
4350
4350
  "id": "skill-scout",
4351
- "description": "Use when about to do a task and a specialized skill probably exists but is not loaded, when a task feels harder than it should because generic reasoning is doing a domain skill's job, or when auditing a workspace's skill coverage for holes. Triggers: 'is there a skill for this?', 'what skill am I missing?', 'should I install a skill before doing this?', 'audit my .claude/skills against what this repo does', 'this feels like reinventing something we already have a skill for', 'qué skill me falta', 'quina skill em falta'. Names the absent skill and emits an install command, or routes to author-skill when none exists. NOT routing among skills you already have (that is suggest), and NOT writing the skill when none exists (that is author-skill).",
4351
+ "description": "Use when a specialized skill probably exists but is not loaded, when a task feels harder than it should because generic reasoning is doing a domain skill's job, or when auditing a workspace's skill coverage for holes. Names the absent skill and emits an install command, or routes onward when none exists. NOT routing among skills you already have (that is `suggest`), NOT writing the skill when none exists (that is `author-skill`).",
4352
4352
  "tags": [
4353
4353
  "skill-discovery",
4354
4354
  "capability-gap",
@@ -4367,7 +4367,7 @@
4367
4367
  },
4368
4368
  {
4369
4369
  "id": "social-publisher",
4370
- "description": "Use when planning a posting schedule, building a multi-platform content calendar, or reshaping one source asset into channel-native posts across X, LinkedIn, Instagram, Threads, Bluesky, TikTok, Facebook, or YouTube — deciding cadence, best-time slots, per-platform char/format limits, and producing a dated CSV/JSON calendar a scheduler can import. Use when the same caption flopped after being cross-posted everywhere, when reach drops after a posting gap, or when checking API publish caps before programmatic posting. Triggers: 'build me a posting schedule for next week', 'turn this blog into a week of posts', 'give me a CSV calendar I can import into Buffer', 'how often and what time should we post Reels vs LinkedIn', 'I posted the same text on every platform and it tanked', 'planificar el calendario de publicaciones', 'reaprovechar aquest post a tots els canals'. NOT the brand voice the posts speak in (that is brand-voice) and NOT the editorial strategy of what to make (that is content-engine).",
4370
+ "description": "Use when planning a posting schedule, building a multi-platform content calendar, or reshaping one source asset into channel-native posts across X, LinkedIn, Instagram, Threads, Bluesky, TikTok, Facebook or YouTube — cadence, best-time slots, per-platform format limits, API publish caps, and a dated CSV or JSON calendar a scheduler can import. NOT the brand voice the posts speak in (that is `brand-voice`), NOT the editorial strategy of what to make (that is `content-engine`).",
4371
4371
  "tags": [
4372
4372
  "social-media",
4373
4373
  "scheduling",
@@ -4386,7 +4386,7 @@
4386
4386
  },
4387
4387
  {
4388
4388
  "id": "solid-js",
4389
- "description": "Use when building, reviewing, or debugging a SolidJS app — signals, stores, effects, memos, resources, and JSX that compiles to real DOM with no virtual DOM (solid-js 1.9.x stable, Solid 2.0 beta, @solidjs/router). Triggers: \\\"signal isn't updating the UI\\\", \\\"<For> vs <Index>\\\", \\\"createStore for a form\\\", \\\"createEffect infinite loop\\\", \\\"why does my component only run once\\\", \\\"el prop no es reactiu quan el desestructuro\\\", \\\"mi prop no se actualiza al desestructurar\\\". NOT React's re-render model (that is react).",
4389
+ "description": "Use when building, reviewing or debugging a SolidJS app — signals, stores, effects, memos and resources, and JSX that compiles to real DOM with no virtual DOM. Covers the classic traps: a signal that does not update the UI, For versus Index, effect loops, components that run once, and props losing reactivity when destructured. NOT React's re-render model (that is `react`).",
4390
4390
  "tags": [
4391
4391
  "solidjs",
4392
4392
  "signals",
@@ -4404,7 +4404,7 @@
4404
4404
  },
4405
4405
  {
4406
4406
  "id": "sop-builder",
4407
- "description": "Use when a repeated process lives in one person's head, breaks when they're out, gets re-explained to every new hire, or produces inconsistent results because everyone does it differently — and needs to be written down once so anyone (or an agent) can run it the same way. Also when an existing SOP is stale, ignored, or missing its branches and needs an audit + rewrite. Triggers: 'write an SOP for how we publish the weekly newsletter', 'document this process step by step', 'turn this Loom/recording into a written procedure', 'it breaks every time Maria is on holiday because nobody else knows how she does it', 'our client handoff is different every time, standardize it', 'documenta este proceso paso a paso', 'crea un procedimiento para que cualquiera lo pueda hacer'. NOT capturing a meeting's decisions and action items (that is meeting-notes), NOT running a one-time project plan with milestones (that is project-ops).",
4407
+ "description": "Use when a repeated process lives in one person's head, breaks when they are away, gets re-explained to every new hire, or produces inconsistent results — and needs writing down once so anyone or any agent can run it the same way. Also for auditing and rewriting an SOP that is stale, ignored or missing its branches. NOT capturing a meeting's decisions and action items (that is `meeting-notes`), NOT running a one-time project plan with milestones (that is `project-ops`).",
4408
4408
  "tags": [
4409
4409
  "sop",
4410
4410
  "process-documentation",
@@ -4442,7 +4442,7 @@
4442
4442
  },
4443
4443
  {
4444
4444
  "id": "spreadsheet-ops",
4445
- "description": "Use when you must work a spreadsheet programmatically: write or repair a formula, generate an .xlsx file with Python (charts, conditional formats, append a sheet), drive Google Sheets from a script, build a read→transform→write-to-sheet pipeline, or write an in-sheet macro/trigger. Symptoms: a formula returns #VALUE!/#REF!/#SPILL!, a nightly job hits 429 quota on the Sheets API, or openpyxl 'wrote' a formula but the cell reads back blank. Triggers: 'export this DataFrame to Excel with a chart', 'my SUMIFS returns #VALUE!', 'append rows to a Google Sheet every night', 'openpyxl formula shows blank until I open in Excel', 'service account can't see my sheet / PermissionError', 'build an XLOOKUP across sheets', 'automatitza un full de càlcul', 'haz una macro de Google Sheets que coloree filas'. NOT pure dedupe/normalize with no sheet output (that is data-cleaning), NOT scraping a web table into rows (that is data-scraper), NOT multi-app event wiring (that is automation-flows).",
4445
+ "description": "Use when working a spreadsheet programmatically — writing or repairing a formula, generating an .xlsx with Python including charts and conditional formats, driving Google Sheets from a script, building a read-transform-write pipeline, or writing an in-sheet macro or trigger. Covers formula errors, Sheets API quota, service-account permissions, and formulas that read back blank. NOT pure dedupe or normalisation with no sheet output (that is `data-cleaning`), NOT scraping a web table into rows (that is `data-scraper`), NOT multi-app event wiring (that is `automation-flows`).",
4446
4446
  "tags": [
4447
4447
  "spreadsheet",
4448
4448
  "excel",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ericrisco/rsc",
3
- "version": "0.1.63",
3
+ "version": "0.1.65",
4
4
  "description": "Eric Risco's agent-skills catalog as a granular, self-recommending CLI installer.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: replicate-images
3
- description: "Use when generating or editing images through the Replicate API, or when a modern image model keeps ignoring the prompt — running google/nano-banana-2, openai/gpt-image-1, Flux, or SeeDream from Node or Python, choosing aspect ratio, resolution, seed, and output format, doing image-to-image, multi-reference composition, or text-driven inpainting, and structuring prompts per model family. Triggers: 'replicate.run nano-banana-2', 'why does Flux ignore half my prompt', 'render readable text inside a generated product label', 'compose a product shot from two reference images', 'make the generation reproducible with a seed', 'generar y editar imágenes con la API de Replicate', 'per què Flux no segueix el prompt'. NOT general Replicate platform/auth/non-image models like LLMs or audio (that is replicate)."
3
+ description: "Use when generating or editing images through the Replicate API, or when a modern image model keeps ignoring the prompt — choosing aspect ratio, resolution, seed and output format, image-to-image, multi-reference composition, text-driven inpainting, readable text inside a generated image, and structuring prompts per model family. NOT general Replicate platform, auth or non-image models (that is `replicate`)."
4
4
  tags: [replicate, image-generation, image-editing, nano-banana, flux, prompting, gpt-image, seedream]
5
5
  recommends: [replicate, prompt-engineering, ai-media, fal]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: research-ops
3
- description: "Use when someone hands you an open question to find out the truth about — a tech choice, a regulation, a 'what's actually true about X' — and the answer must survive scrutiny: every non-obvious claim dated and sourced, source disagreements surfaced not averaged away, and the deliverable is a cited memo you could defend in a room. Also when refreshing a stale research memo. Triggers: 'research whether A or B is better in 2026 with sources', 'give me a memo I can defend in Monday's meeting', 'settle this argument, is X actually true, cite your sources', 'what's the state of Y with citations', 'investiga a fondo X y cítame las fuentes con fecha', 'fes una recerca a fons amb fonts datades i nivell de confiança'. NOT sizing a market with TAM/SAM/SOM (that is market-research), NOT a standing cadence watch on named rivals (that is competitor-watch)."
3
+ description: "Use when someone hands you an open question whose answer must survive scrutiny — a tech choice, a regulation, a what-is-actually-true-about-X — with every non-obvious claim dated and sourced, source disagreements surfaced rather than averaged away, and a cited memo as the deliverable. Also for refreshing a stale research memo. NOT sizing a market with TAM/SAM/SOM (that is `market-research`), NOT a standing cadence watch on named rivals (that is `competitor-watch`)."
4
4
  tags: [research-ops, deep-research, source-credibility, citations, verification, synthesis, knowledge-meta]
5
5
  recommends: [market-research, competitor-watch, data-scraper, knowledge-ops, decision-records, structured-extraction, technical-writing]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: retention
3
- description: "Use when revenue is leaking out the bottom of the funnel and you need a program to keep, score, and win back customers — building a customer health score, running NPS, catching churn signals before renewal, designing a cancellation save flow, or a win-back sequence. Triggers: 'reduce churn', 'health score', 'NPS', 'save play', 'cancellation flow', 'win-back', 'at-risk accounts', 'GRR vs NRR', non-obvious 'my annual customers are downgrading to monthly', 'renewal is slipping', 'detractors keep canceling'; Catalan/Spanish 'reduir la rotació de clients', 'recuperar clients perduts', 'puntuació de salut del client', 'evitar bajas'. NOT working a single live churn-risk ticket in the moment (that is customer-support), NOT the first-30-days welcome flow (that is client-onboarding)."
3
+ description: "Use when revenue is leaking out the bottom of the funnel and you need a program to keep, score and win back customers — a customer health score, NPS, catching churn signals before renewal, a cancellation save flow, or a win-back sequence, and reading GRR against NRR. NOT working a single live churn-risk ticket in the moment (that is `customer-support`), NOT the first-30-days welcome flow (that is `client-onboarding`)."
4
4
  tags: [retention, churn, nps, health-score, save-play, win-back, nrr, grr, customer-success]
5
5
  recommends: [customer-support, client-onboarding, unit-economics, pricing, forecasting, compliance, newsletter, review-management]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: review-management
3
- description: "Use when a public review just landed and needs an on-voice reply, or you need to earn more reviews legally, or your aggregate rating is slipping across Google Business Profile, Trustpilot, the App Store, or Google Play. Use when a 1-star feels unfair and you want it removed not just answered, when you must decide reply-vs-flag, or when wiring programmatic replies (GBP v4 updateReply, Trustpilot, App Store Connect, Play). Triggers: 'responder a esta reseña de Google', 'conseguir más reseñas sin saltarnos la ley', 'respon aquesta ressenya d''una estrella', 'aconseguir més ressenyes sense saltar-nos la llei', 'a 1-star landed and I want it removed not just answered', 'are we allowed to ask only happy customers for reviews', 'draft a reply to this 2-star', 'set up a review-request flow', 'build a reputation scorecard across Google and the App Store'. NOT a private 1:1 support ticket against an SLA (that is customer-support), NOT churn/NPS/save plays (that is retention)."
3
+ description: "Use when a public review needs an on-voice reply, when you need to earn more reviews legally, or when an aggregate rating is slipping across Google Business Profile, Trustpilot, the App Store or Google Play — including deciding reply versus flag, getting an unfair one-star removed rather than merely answered, and wiring programmatic replies. NOT a private support ticket against an SLA (that is `customer-support`), NOT churn, NPS or save plays (that is `retention`)."
4
4
  tags: [reviews, reputation, google-business-profile, trustpilot, ftc, responses, app-store]
5
5
  recommends: [customer-support, retention, seo-geo, brand-voice, social-publisher]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: runpod
3
- description: "Use when running GPU compute on RunPod and deciding between Pods (hourly, always-on) and Serverless (per-second, autoscaling) for training, fine-tuning, or model inference. Triggers: deploying a vLLM or custom-model serverless endpoint, writing or debugging a handler(job) worker, building a worker Docker template, attaching a network volume, tuning idle/execution timeout, max/active workers, FlashBoot, or chasing a runaway RunPod bill or slow cold starts; 'mi factura de RunPod se disparó', 'pod o serverless en RunPod', 'workers que no escalan a cero', 'el cold start tarda 20s'. NOT generic Python-native serverless GPU with snapshot autoscaling (that is modal); NOT calling hosted prebuilt model APIs (that is replicate); NOT pulling weights from the Hub (that is huggingface)."
3
+ description: "Use when running GPU compute on RunPod and deciding between Pods (hourly, always-on) and Serverless (per-second, autoscaling) for training, fine-tuning or inference — serverless endpoints, handler workers, worker Docker templates, network volumes, timeout and worker-count tuning, cold starts, and runaway bills. NOT Python-native serverless GPU with snapshot autoscaling (that is `modal`), NOT calling hosted prebuilt model APIs (that is `replicate`), NOT pulling weights from the Hub (that is `huggingface`)."
4
4
  tags: [runpod, gpu, serverless, inference, training, cost-control, vllm, ai-infra]
5
5
  recommends: [modal, replicate, huggingface, docker, llm-pipeline, cost-tracking, ollama]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sales-pipeline
3
- description: "Use when an operator runs deals out of a spreadsheet, Notion, or Airtable and wants real stages, win-probabilities, deal hygiene, a weekly follow-up sweep, or a defensible roll-up forecast off the list — and when the pipeline looks full but nothing closes. Triggers: 'set up stages and a weighted forecast for my deal sheet', 'which deals are stale and what do I follow up on this week', 'my forecast keeps slipping every quarter', 'what's my pipeline coverage vs a 250k quota', 'build me a lightweight CRM without Salesforce', 'munta'm un CRM lleuger amb etapes i previsió', 'quins deals estan encallats', 'previsió de vendes del pipeline'. NOT statistical / scenario forecast modeling, time-series or cohort projections (that is forecasting), NOT sourcing new prospects (that is lead-gen), NOT writing the outbound emails (that is cold-outreach), NOT writing the proposal/quote (that is proposals), NOT the post-close kickoff (that is client-onboarding)."
3
+ description: "Use when an operator runs deals out of a spreadsheet or Notion and wants real stages, win probabilities, deal hygiene, a weekly follow-up sweep, and a defensible roll-up forecast — including the case where the pipeline looks full but nothing closes. NOT statistical or scenario forecast modelling (that is `forecasting`), NOT sourcing prospects (that is `lead-gen`), NOT writing the outbound emails (that is `cold-outreach`), NOT the proposal or quote (that is `proposals`), NOT the post-close kickoff (that is `client-onboarding`)."
4
4
  tags: [sales, crm, pipeline, forecasting, deal-hygiene, business-ops]
5
5
  recommends: [forecasting, lead-gen, cold-outreach, proposals, client-onboarding, spreadsheet-ops]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: scaling
3
- description: "Use when traffic is growing or about to spike and the system bends under concurrency — deciding what to add and in what order (cache, connection pool, async queue, read replica, more instances) and proving it with a load test instead of guessing. Triggers: 'will we survive the launch spike', 'fine for me but dies under load', 'too many clients already', 'add caching or a read replica?', 'set RPS and p95 targets and load-test before go-live', the non-obvious 'DB connections are maxed out', and Catalan/Spanish 'aguantarem el pic de trànsit del llançament' / 'prepara un test de carga con objetivos de p95'. NOT making one slow request faster or profiling an N+1 (that is performance), NOT race-free Redis caches/locks/queue semantics (that is redis)."
3
+ description: "Use when traffic is growing or about to spike and the system bends under concurrency — deciding what to add and in what order (cache, connection pool, async queue, read replica, more instances) and proving it with a load test against explicit RPS and p95 targets rather than guessing. NOT making one slow request faster or profiling an N+1 (that is `performance`), NOT race-free Redis caches, locks and queue semantics (that is `redis`)."
4
4
  tags: [scaling, capacity, load-testing, caching, read-replicas, pgbouncer, k6, devops]
5
5
  recommends: [performance, redis, postgresdb, monitoring, deployment, backups, fly-io]
6
6
  profiles: []
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: seo-geo
3
- description: "Use when you need one existing page to rank in Google AND get cited by AI answer engines (ChatGPT Search, Perplexity, Gemini/AI Overviews, Copilot) — auditing a URL for on-page SEO, structured-data/JSON-LD schema, GEO citation levers, Core Web Vitals, crawlability, and AI-bot access in robots.txt. Triggers: 'audit this page for SEO', 'why isn't this ranking', 'get us cited in ChatGPT/Perplexity', 'optimize for AI search', 'add schema markup', 'write the JSON-LD', 'should we block GPTBot', 'our Core Web Vitals are failing', 'audita el SEO de esta página', 'optimitza per a cerca amb IA', 'afegeix schema a aquest article'. NOT writing the article body (that is article-writing), NOT keyword research or content strategy (that is content-engine)."
3
+ description: "Use when one existing page needs to rank in Google AND get cited by AI answer engines — auditing a URL for on-page SEO, structured-data JSON-LD, GEO citation levers, Core Web Vitals, crawlability, and AI-bot access in robots.txt. NOT writing the article body (that is `article-writing`), NOT keyword research or content strategy (that is `content-engine`)."
4
4
  tags: [seo, geo, structured-data, schema-org, core-web-vitals, ai-search, technical-seo]
5
5
  recommends: [content-engine, article-writing, landing-copy, performance, nextjs, accessibility, analytics]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: shopify
3
- description: "Use when building or customizing a Shopify store across its three code surfaces — themes (Liquid + Online Store 2.0 sections/blocks/JSON templates), apps (Remix + versioned GraphQL Admin API), and checkout (UI extensions, Functions, Web Pixels). Triggers: writing/reviewing any .liquid section/snippet/template or {% schema %}, scaffolding a Shopify app with @shopify/shopify-app-remix + Polaris, Admin GraphQL queries and the query-cost/throttle model, shopify CLI flow (theme dev/push, app dev/deploy), 'merchant must edit content in the theme editor without a deploy', 'our checkout customizations broke after the August upgrade', 'add an @app block to the product section', 'migrar el checkout.liquid a checkout extensibility', 'afegir un bloc d'app a la secció de producte'. NOT WooCommerce/PHP stores (that is wordpress), NOT the React/RSC layer of a headless storefront (that is nextjs), NOT non-Shopify payment integrations (that is stripe)."
3
+ description: "Use when building or customizing a Shopify store across its three code surfaces — themes (Liquid, Online Store 2.0 sections, blocks and JSON templates), apps (Remix with the versioned GraphQL Admin API and its query-cost model), and checkout (UI extensions, Functions, Web Pixels), plus the CLI flow and checkout-extensibility migration. NOT WooCommerce or PHP stores (that is `wordpress`), NOT the React layer of a headless storefront (that is `nextjs`), NOT non-Shopify payment integrations (that is `stripe`)."
4
4
  tags: [shopify, liquid, ecommerce, themes, checkout, graphql, storefront]
5
5
  recommends: [nextjs, stripe, wordpress, api-design, seo-geo]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: shortform-editing
3
- description: "Use when you have raw 9:16 footage and need it cut into a posted-ready vertical short — dead air removed, fast jump cuts, karaoke word-by-word burned-in captions from a transcript, cuts and zooms snapped to the music beat, and a platform-correct MP4 export. Use to remove silences, generate or fix burned captions, sync cuts to a beat grid, or encode to TikTok/Reels/Shorts specs. Triggers: 'remove the dead air from this talking-head clip', 'burn TikTok-style word-by-word captions onto this short', 'cut this footage to the beat of the song', 'export this Reel with the right specs', 'my captions are out of sync and getting hidden behind the TikTok buttons', 'quítale los silencios y ponle subtítulos quemados estilo TikTok', 'munta'm aquest clip vertical amb talls sincronitzats amb la música'. NOT writing the script, hook, beats, or caption text (that is video-shorts), NOT building a Remotion React composition codebase (that is remotion-video), NOT deciding when/where to post (that is social-publisher)."
3
+ description: "Use when you have raw 9:16 footage and need it cut into a post-ready vertical short — dead air removed, fast jump cuts, karaoke word-by-word burned-in captions from a transcript, cuts and zooms snapped to the music beat, safe-area placement so captions clear the platform UI, and a platform-correct MP4 export. NOT writing the script, hook, beats or caption text (that is `video-shorts`), NOT building a Remotion React composition codebase (that is `remotion-video`), NOT deciding when or where to post (that is `social-publisher`)."
4
4
  tags: [video-editing, shortform, captions, ffmpeg, whisper, beat-sync, vertical-video]
5
5
  recommends: [video-shorts, remotion-video, shortform-packaging, social-publisher, podcast]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: shortform-packaging
3
- description: "Use when a vertical short (TikTok/Reels/YouTube Shorts) is shot or scripted and you need the upload-form copy and cover that win the feed: the hook line, the first-frame on-screen text, the search-led caption, a tight 3-5 hashtag set, and the cover frame; it learns from what performed via the 02-DOCS log. Triggers: 'write the hook and caption for this Reel', 'pick the cover frame and its text', 'what hashtags for this TikTok', the non-obvious 'is 20 hashtags too many' and 'my shorts get views but nobody shares them, fix the packaging', 'rewrite the caption to rank in TikTok search', 'log how the last 5 shorts performed and apply it', plus Spanish/Catalan 'escríbeme el gancho y el pie de foto para este Reel' / 'ningú comparteix els meus vídeos, arregla'm el packaging i dona'm els hashtags'. NOT inventing the idea (that is shortform-ideation), NOT scripting or directing the cuts (that is video-shorts), NOT executing the edit (that is shortform-editing), NOT scheduling the post (that is social-publisher)."
3
+ description: "Use when a vertical short is shot or scripted and you need the upload-form copy and cover that win the feed — the hook line, the first-frame on-screen text, the search-led caption, a tight hashtag set, and the cover frame; it learns from what performed via the 02-DOCS log. NOT inventing the idea (that is `shortform-ideation`), NOT scripting or directing the cuts (that is `video-shorts`), NOT executing the edit (that is `shortform-editing`), NOT scheduling the post (that is `social-publisher`)."
4
4
  tags: [shortform, packaging, tiktok, reels, shorts, caption, hashtags, hook, cover, retention, social-copy]
5
5
  recommends: [video-shorts, shortform-ideation, shortform-strategy, shortform-editing, social-publisher, brand-voice, tiktok-api, instagram-api]
6
6
  profiles: []
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: skill-scout
3
- description: "Use when about to do a task and a specialized skill probably exists but is not loaded, when a task feels harder than it should because generic reasoning is doing a domain skill's job, or when auditing a workspace's skill coverage for holes. Triggers: 'is there a skill for this?', 'what skill am I missing?', 'should I install a skill before doing this?', 'audit my .claude/skills against what this repo does', 'this feels like reinventing something we already have a skill for', 'qué skill me falta', 'quina skill em falta'. Names the absent skill and emits an install command, or routes to author-skill when none exists. NOT routing among skills you already have (that is suggest), and NOT writing the skill when none exists (that is author-skill)."
3
+ description: "Use when a specialized skill probably exists but is not loaded, when a task feels harder than it should because generic reasoning is doing a domain skill's job, or when auditing a workspace's skill coverage for holes. Names the absent skill and emits an install command, or routes onward when none exists. NOT routing among skills you already have (that is `suggest`), NOT writing the skill when none exists (that is `author-skill`)."
4
4
  tags: [skill-discovery, capability-gap, meta, recommendations, coverage-audit]
5
5
  recommends: [suggest, author-skill, context-budget, continuous-learning, knowledge-ops]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: social-publisher
3
- description: "Use when planning a posting schedule, building a multi-platform content calendar, or reshaping one source asset into channel-native posts across X, LinkedIn, Instagram, Threads, Bluesky, TikTok, Facebook, or YouTube — deciding cadence, best-time slots, per-platform char/format limits, and producing a dated CSV/JSON calendar a scheduler can import. Use when the same caption flopped after being cross-posted everywhere, when reach drops after a posting gap, or when checking API publish caps before programmatic posting. Triggers: 'build me a posting schedule for next week', 'turn this blog into a week of posts', 'give me a CSV calendar I can import into Buffer', 'how often and what time should we post Reels vs LinkedIn', 'I posted the same text on every platform and it tanked', 'planificar el calendario de publicaciones', 'reaprovechar aquest post a tots els canals'. NOT the brand voice the posts speak in (that is brand-voice) and NOT the editorial strategy of what to make (that is content-engine)."
3
+ description: "Use when planning a posting schedule, building a multi-platform content calendar, or reshaping one source asset into channel-native posts across X, LinkedIn, Instagram, Threads, Bluesky, TikTok, Facebook or YouTube — cadence, best-time slots, per-platform format limits, API publish caps, and a dated CSV or JSON calendar a scheduler can import. NOT the brand voice the posts speak in (that is `brand-voice`), NOT the editorial strategy of what to make (that is `content-engine`)."
4
4
  tags: [social-media, scheduling, repurposing, content-calendar, distribution]
5
5
  recommends: [content-engine, brand-voice, video-shorts, newsletter, calendar-scheduling]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: solid-js
3
- description: "Use when building, reviewing, or debugging a SolidJS app — signals, stores, effects, memos, resources, and JSX that compiles to real DOM with no virtual DOM (solid-js 1.9.x stable, Solid 2.0 beta, @solidjs/router). Triggers: \"signal isn't updating the UI\", \"<For> vs <Index>\", \"createStore for a form\", \"createEffect infinite loop\", \"why does my component only run once\", \"el prop no es reactiu quan el desestructuro\", \"mi prop no se actualiza al desestructurar\". NOT React's re-render model (that is react)."
3
+ description: "Use when building, reviewing or debugging a SolidJS app — signals, stores, effects, memos and resources, and JSX that compiles to real DOM with no virtual DOM. Covers the classic traps: a signal that does not update the UI, For versus Index, effect loops, components that run once, and props losing reactivity when destructured. NOT React's re-render model (that is `react`)."
4
4
  tags: [solidjs, signals, reactivity, frontend, jsx, web]
5
5
  recommends: [vercel, testing-web, design]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sop-builder
3
- description: "Use when a repeated process lives in one person's head, breaks when they're out, gets re-explained to every new hire, or produces inconsistent results because everyone does it differently — and needs to be written down once so anyone (or an agent) can run it the same way. Also when an existing SOP is stale, ignored, or missing its branches and needs an audit + rewrite. Triggers: 'write an SOP for how we publish the weekly newsletter', 'document this process step by step', 'turn this Loom/recording into a written procedure', 'it breaks every time Maria is on holiday because nobody else knows how she does it', 'our client handoff is different every time, standardize it', 'documenta este proceso paso a paso', 'crea un procedimiento para que cualquiera lo pueda hacer'. NOT capturing a meeting's decisions and action items (that is meeting-notes), NOT running a one-time project plan with milestones (that is project-ops)."
3
+ description: "Use when a repeated process lives in one person's head, breaks when they are away, gets re-explained to every new hire, or produces inconsistent results — and needs writing down once so anyone or any agent can run it the same way. Also for auditing and rewriting an SOP that is stale, ignored or missing its branches. NOT capturing a meeting's decisions and action items (that is `meeting-notes`), NOT running a one-time project plan with milestones (that is `project-ops`)."
4
4
  tags:
5
5
  - sop
6
6
  - process-documentation
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: spreadsheet-ops
3
- description: "Use when you must work a spreadsheet programmatically: write or repair a formula, generate an .xlsx file with Python (charts, conditional formats, append a sheet), drive Google Sheets from a script, build a read→transform→write-to-sheet pipeline, or write an in-sheet macro/trigger. Symptoms: a formula returns #VALUE!/#REF!/#SPILL!, a nightly job hits 429 quota on the Sheets API, or openpyxl 'wrote' a formula but the cell reads back blank. Triggers: 'export this DataFrame to Excel with a chart', 'my SUMIFS returns #VALUE!', 'append rows to a Google Sheet every night', 'openpyxl formula shows blank until I open in Excel', 'service account can't see my sheet / PermissionError', 'build an XLOOKUP across sheets', 'automatitza un full de càlcul', 'haz una macro de Google Sheets que coloree filas'. NOT pure dedupe/normalize with no sheet output (that is data-cleaning), NOT scraping a web table into rows (that is data-scraper), NOT multi-app event wiring (that is automation-flows)."
3
+ description: "Use when working a spreadsheet programmatically — writing or repairing a formula, generating an .xlsx with Python including charts and conditional formats, driving Google Sheets from a script, building a read-transform-write pipeline, or writing an in-sheet macro or trigger. Covers formula errors, Sheets API quota, service-account permissions, and formulas that read back blank. NOT pure dedupe or normalisation with no sheet output (that is `data-cleaning`), NOT scraping a web table into rows (that is `data-scraper`), NOT multi-app event wiring (that is `automation-flows`)."
4
4
  tags: [spreadsheet, excel, google-sheets, openpyxl, gspread, apps-script, formulas, automation]
5
5
  recommends: [data-cleaning, data-scraper, automation-flows, google-workspace, reporting, duckdb, document-processing]
6
6
  origin: risco