@ericrisco/rsc 0.1.59 → 0.1.61

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.59",
2
+ "version": "0.1.61",
3
3
  "counts": {
4
4
  "skills": 258
5
5
  },
@@ -2508,7 +2508,7 @@
2508
2508
  },
2509
2509
  {
2510
2510
  "id": "landing-copy",
2511
- "description": "Use when writing the words on a single conversion page — the hero headline and subhead, the offer, the proof/testimonials, and one primary CTA — or rescuing a page that gets traffic but does not convert (a copy diagnosis, not a layout one). Triggers: 'write the hero headline and subhead', 'write the landing copy', 'turn these features into benefits', 'what should the button say', 'make the page headline match the ad', 'people land on the page and bounce', 'my headline is clever but nobody clicks the button', 'escríbeme el copy de la landing', 'el titular del hero no convierte'. NOT the paid ad that drives the click (that is ads), NOT the visual layout the words sit in (that is design), NOT the experiment that picks the winning variant (that is ab-testing).",
2511
+ "description": "Use when writing the words on a single conversion page — the hero headline and subhead, the offer, the proof and testimonials, and one primary CTA — or diagnosing a page that gets traffic and does not convert, as a copy problem rather than a layout one. NOT the paid ad that drives the click (that is `ads`), NOT the visual layout the words sit in (that is `design`), NOT the experiment that picks the winning variant (that is `ab-testing`).",
2512
2512
  "tags": [
2513
2513
  "landing-page",
2514
2514
  "copywriting",
@@ -2528,7 +2528,7 @@
2528
2528
  },
2529
2529
  {
2530
2530
  "id": "laravel",
2531
- "description": "Use when building or extending a Laravel 11/12 app - Eloquent models/migrations/relationships, routing + controllers + Form Requests, queues and background jobs, framework-native security (validation, mass-assignment, policies, signed URLs, rate limiting), and Pest/PHPUnit feature tests. Triggers: \\\"add a queued job with retries\\\", \\\"create an Eloquent model and migration\\\", \\\"write a Pest feature test\\\", \\\"where did app/Http/Kernel.php go\\\", \\\"my job runs immediately in tests instead of queueing\\\", \\\"configura una cua amb Horizon i Redis\\\", \\\"crea una migración con relaciones\\\", editing bootstrap/app.php / routes/console.php / app/Models. NOT pure PHP language/toolchain work (that is php).",
2531
+ "description": "Use when building or extending a Laravel 11/12 app — Eloquent models, migrations and relationships, routing with controllers and Form Requests, queues and background jobs, framework-native security (validation, mass-assignment, policies, signed URLs, rate limiting), and Pest/PHPUnit feature tests. NOT pure PHP language or toolchain work (that is `php`).",
2532
2532
  "tags": [
2533
2533
  "laravel",
2534
2534
  "php",
@@ -2590,7 +2590,7 @@
2590
2590
  },
2591
2591
  {
2592
2592
  "id": "linkedin-api",
2593
- "description": "Use when wiring an app to LinkedIn's organic Posts / Community Management API — completing 3-legged OAuth, publishing text/article/document posts to a member profile or company page, or pulling impressions/engagement/follower stats and logging them as a durable feedback record. Triggers: 'connect our app to the LinkedIn Posts API', 'publish to our company page programmatically', 'pull last month's impressions for our org posts', 'my /v2/ugcPosts call returns 403', 'unauthorized scope w_organization_social at consent', 'log post performance into the wiki', 'publica a la pàgina de LinkedIn per API', 'conectar la API de LinkedIn y traer las impresiones'. NOT writing the post copy (that is linkedin-content), planning cadence (that is linkedin-strategy), or DM sequences (that is linkedin-outreach).",
2593
+ "description": "Use when wiring an app to LinkedIn's organic Posts / Community Management API — 3-legged OAuth, publishing text, article or document posts to a member profile or company page, and pulling impressions, engagement and follower stats into a durable feedback record. NOT writing the post copy (that is `linkedin-content`), NOT planning cadence (that is `linkedin-strategy`), NOT DM sequences (that is `linkedin-outreach`).",
2594
2594
  "tags": [
2595
2595
  "linkedin",
2596
2596
  "social-api",
@@ -2632,7 +2632,7 @@
2632
2632
  },
2633
2633
  {
2634
2634
  "id": "linkedin-content",
2635
- "description": "Use when writing the actual words of one LinkedIn feed post — turning a raw idea, story, or asset into ready-to-paste copy that earns dwell time and comments: a text post, a document/carousel cover + slide copy + caption, or a 30–90s native-video script + caption. Use to fix a weak hook so people tap 'see more', reformat a wall of text for the mobile feed, or get a CTA that provokes a real comment (not 'thoughts?'). Triggers: 'write me a LinkedIn post about X', 'my hook is weak, rewrite the first three lines so people click see more', 'give me a CTA that gets comments not thoughts?', 'should the link go in the post or the first comment?', 'escríbeme un post de LinkedIn que enganche', 'fes-me un post de LinkedIn amb ganxo sobre el llançament'. NOT planning what/when to post or cadence (that is linkedin-strategy), NOT designing the carousel slides/layout/PDF export (that is linkedin-carousels), NOT DM/connection sequences (that is linkedin-outreach), NOT programmatic publish (that is linkedin-api).",
2635
+ "description": "Use when writing the actual words of one LinkedIn feed post — turning a raw idea, story or asset into ready-to-paste copy: a text post, a document/carousel cover with slide copy and caption, or a short native-video script. Covers fixing a weak hook, reformatting a wall of text for the mobile feed, and a CTA that provokes a real comment. NOT planning what or when to post (that is `linkedin-strategy`), NOT designing the carousel slides and PDF export (that is `linkedin-carousels`), NOT DM sequences (that is `linkedin-outreach`), NOT programmatic publishing (that is `linkedin-api`).",
2636
2636
  "tags": [
2637
2637
  "linkedin",
2638
2638
  "social-copywriting",
@@ -2673,7 +2673,7 @@
2673
2673
  },
2674
2674
  {
2675
2675
  "id": "linkedin-strategy",
2676
- "description": "Use when a LinkedIn presence — personal brand or company page — needs an account-level decision over months: positioning/POV, defining 3-5 content pillars, posting cadence, whether content lives on the founder's profile or the company page, or the SSI / social-selling rhythm, read from and written back to the presence's own learning wiki. Triggers: 'what should I be known for on LinkedIn', 'what should I post about', 'how often should I post', 'company page or founder profile for content', 'my company page is dead where should content live', 'I post but nothing comes back / no inbound', 'my SSI is stuck how do I raise it', 'quarterly LinkedIn review which pillar is working', 'qué debería publicar en LinkedIn', 'cada cuánto publico per ser referent'. NOT writing the post copy or hook (that is linkedin-content), NOT building a carousel deck (that is linkedin-carousels), NOT sending DMs or sequences (that is linkedin-outreach), NOT pulling raw analytics (that is linkedin-api).",
2676
+ "description": "Use when a LinkedIn presence — personal brand or company page — needs an account-level decision spanning months: positioning and point of view, three to five content pillars, posting cadence, whether content lives on the founder's profile or the company page, and the social-selling rhythm, read from and written back to the presence's own learning wiki. NOT writing the post copy or hook (that is `linkedin-content`), NOT building a carousel deck (that is `linkedin-carousels`), NOT sending DMs (that is `linkedin-outreach`), NOT pulling raw analytics (that is `linkedin-api`).",
2677
2677
  "tags": [
2678
2678
  "linkedin",
2679
2679
  "positioning",
@@ -2718,7 +2718,7 @@
2718
2718
  },
2719
2719
  {
2720
2720
  "id": "logistics-ops",
2721
- "description": "Use when an order is paid and packed and the box now has to physically move, go sideways, or come home — pick a carrier/service and cut a label, react to a tracker that fired a delivery exception, get ahead of 'where is my order' tickets, run a return/exchange/refund decision and the reverse label, file a carrier claim before the window closes, or set return-window / restocking-fee policy. Triggers: 'which carrier and service for order #1043, cut me the label', 'the tracker says delivery exception — what do I tell the customer', 'customers keep opening where-is-my-order tickets', 'a package arrived smashed, how long to file a FedEx claim', 'gestiona la devolución de este pedido, quiere cambiar la talla', 'quin transportista surt més barat per a aquest enviament'. NOT setting stock levels or reorder points (that is inventory), NOT sourcing or buying from suppliers (that is procurement), NOT writing the on-voice apology to the customer (that is customer-support).",
2721
+ "description": "Use when an order is paid and packed and the box now has to move, go sideways, or come back — picking a carrier and service and cutting a label, reacting to a delivery exception, getting ahead of where-is-my-order tickets, running a return, exchange or refund with its reverse label, filing a carrier claim before the window closes, and setting return-window and restocking-fee policy. NOT setting stock levels or reorder points (that is `inventory`), NOT sourcing or buying from suppliers (that is `procurement`), NOT writing the apology to the customer (that is `customer-support`).",
2722
2722
  "tags": [
2723
2723
  "logistics",
2724
2724
  "shipping",
@@ -2765,7 +2765,7 @@
2765
2765
  },
2766
2766
  {
2767
2767
  "id": "make",
2768
- "description": "Use when operating Make.com (formerly Integromat) programmatically — driving its REST API v2 or the Make MCP server from code or an agent to create, read, update, activate, run, clone, or delete scenarios, connections, hooks, and data stores. Triggers: 'create a Make scenario via the API', 'export a scenario blueprint, mutate it, and push it back', 'start/stop/run a Make scenario from a script', 'clone this Integromat scenario into another team', 'connect the Make MCP server so an agent runs my scenarios as tools', 'my valid Make API token returns an auth error' (zone trap), 'automatiza escenarios de Make.com desde la API'. NOT designing what the flow should do — trigger, branching, mapping, dedup, error path (automation-flows), NOT choosing Make vs n8n vs Zapier by billing model (automation-strategy), NOT operating n8n / Zapier / Power Automate (their skills), NOT a generic typed REST client with pagination/backoff (api-connector-builder) or an inbound webhook receiver in your own app (webhooks).",
2768
+ "description": "Use when operating Make.com (formerly Integromat) programmatically — driving its REST API v2 or the Make MCP server from code or an agent to create, read, update, activate, run, clone or delete scenarios, connections, hooks and data stores. NOT designing what the flow should do (that is `automation-flows`), NOT choosing between Make, n8n and Zapier by billing model (that is `automation-strategy`), NOT a generic typed REST client (that is `api-connector-builder`), NOT receiving inbound webhooks in your own app (that is `webhooks`).",
2769
2769
  "tags": [
2770
2770
  "make",
2771
2771
  "integromat",
@@ -2846,7 +2846,7 @@
2846
2846
  },
2847
2847
  {
2848
2848
  "id": "medium-strategy",
2849
- "description": "Use when planning Medium as a growth + money SYSTEM over months, not one post: enrolling in and optimizing for the Partner Program, deciding solo profile vs starting a publication vs joining or pitching one, engineering for Boost and the three distribution tiers, choosing tags/topics for reach, and a canonical cross-posting plan — read from and written back to 02-DOCS/wiki/medium/ so each session compounds. Triggers: 'how does the Medium Partner Program pay me', 'why does my story get views but no distribution', 'how do I get Boosted', 'should I start my own publication or pitch the big ones', 'repurpose my blog onto Medium without tanking my SEO', 'what tags maximize reach', 'qué tags uso en Medium', 'com guanyar diners a Medium'. NOT writing the article's hook/structure/prose (that is medium-writing), NOT the mechanical format-and-submit-one-story step (that is medium-publishing).",
2849
+ "description": "Use when planning Medium as a growth and revenue system over months rather than one post — the Partner Program, solo profile versus starting or pitching a publication, engineering for Boost and the distribution tiers, tag and topic choices for reach, and a canonical cross-posting plan, read from and written back to the wiki so each session compounds. NOT writing the article's hook, structure or prose (that is `medium-writing`), NOT the mechanical format-and-submit step (that is `medium-publishing`).",
2850
2850
  "tags": [
2851
2851
  "medium",
2852
2852
  "partner-program",
@@ -2866,7 +2866,7 @@
2866
2866
  },
2867
2867
  {
2868
2868
  "id": "medium-writing",
2869
- "description": "Use when crafting or rewriting ONE Medium story so it earns reads, claps, and Boost curation — writing the title/subtitle/kicker as a hook system, fixing a story that gets views but a low read ratio (title over-promises, intro buries the payoff, wall-of-text body), making a draft scannable and curation-eligible, or reshaping a blog post/newsletter into Medium-native form. Triggers: 'write a Medium article that gets read', 'my Medium post gets views but nobody finishes it', 'fix my read ratio', 'give me a title subtitle and kicker', 'make this Boost-eligible', 'curation-worthy Medium draft', 'escribe un artículo de Medium que enganche desde el primer párrafo', 'fes que aquest esborrany de Medium sigui llegible'. NOT scheduling/publishing/tags/submitting to a publication (that is medium-publishing), and NOT deciding what topics or cadence to write (that is medium-strategy).",
2869
+ "description": "Use when crafting or rewriting ONE Medium story so it earns reads, claps and Boost curation — the title, subtitle and kicker as a hook system, fixing a story with views but a low read ratio, making a draft scannable and curation-eligible, or reshaping a blog post or newsletter into Medium-native form. NOT scheduling, tags or submitting to a publication (that is `medium-publishing`), NOT deciding topics or cadence (that is `medium-strategy`).",
2870
2870
  "tags": [
2871
2871
  "medium",
2872
2872
  "writing",
@@ -2935,7 +2935,7 @@
2935
2935
  },
2936
2936
  {
2937
2937
  "id": "mongodb",
2938
- "description": "Use when modeling MongoDB documents (embed vs reference, the 16MB cap, bucket/subset/extended-reference patterns), choosing or fixing indexes (compound order via the ESR rule, partial/TTL/multikey, reading explain), writing aggregation pipelines that stay index-eligible ($match-first, $lookup cost, $group memory + allowDiskUse), running multi-document transactions with retry, or operating/securing a deployment (replica set, read/write concern, Atlas M0/Flex/dedicated tiers, Vector Search, Queryable Encryption). Triggers: 'slow Mongo query', 'add an index', 'COLLSCAN', 'embed or reference', 'aggregation pipeline', '$lookup', 'transaction keeps retrying', 'modela esta colección', 'mi consulta hace un full scan'. MongoDB 8.2, driver-agnostic (mongosh syntax). NOT relational schema/SQL/EXPLAIN ANALYZE (that is postgresdb).",
2938
+ "description": "Use when modeling MongoDB documents (embed versus reference, the 16MB cap, bucket and subset patterns), choosing or fixing indexes (compound order by the ESR rule, partial, TTL, multikey, reading explain), writing aggregation pipelines that stay index-eligible, running multi-document transactions with retry, or operating and securing a deployment (replica set, read/write concern, Atlas tiers, Vector Search, Queryable Encryption). MongoDB 8.2, driver-agnostic. NOT relational schema, SQL or EXPLAIN ANALYZE (that is `postgresdb`).",
2939
2939
  "tags": [
2940
2940
  "mongodb",
2941
2941
  "nosql",
@@ -2951,7 +2951,7 @@
2951
2951
  },
2952
2952
  {
2953
2953
  "id": "monitoring",
2954
- "description": "Use when setting up uptime/health monitoring, alerts, or on-call basics for a service already in production and you need to know it's down before customers do. Triggers: 'set up uptime monitoring', 'alert me if the site goes down', 'add /healthz and /readyz and probe them', 'we get paged at 3am for CPU spikes that self-resolve — fix alert fatigue', 'alert on our SLO error-budget burn rate not raw error count', 'an untested alert isn't an alert', 'create an on-call rotation with escalation and a status page', 'monta monitorització d'uptime i avísa'm si l'API torna 5xx', 'avísame si la web se cae'. NOT instrumenting logs/metrics/traces or wiring OpenTelemetry (that is observability).",
2954
+ "description": "Use when setting up uptime and health monitoring, alerts, or on-call basics for a service already in production, so you learn it is down before customers do — health and readiness probes, alerting on SLO error-budget burn rather than raw counts, curing alert fatigue, on-call rotation with escalation, and a status page. NOT instrumenting logs, metrics or traces, or wiring OpenTelemetry (that is `observability`).",
2955
2955
  "tags": [
2956
2956
  "monitoring",
2957
2957
  "uptime",
@@ -2970,7 +2970,7 @@
2970
2970
  },
2971
2971
  {
2972
2972
  "id": "mysql",
2973
- "description": "Use when designing, querying, indexing, or operating a MySQL or MariaDB database and engine-specific behaviour matters: schema and type choices, index design, reading EXPLAIN, online schema change, replication, locking, deadlocks, and server config. Triggers: 'slow MySQL query', 'why isn't my index used', 'EXPLAIN says Using filesort', 'add a column to a huge table without downtime', 'set up GTID replication', 'replica lag', 'InnoDB deadlock', 'utf8mb4 vs utf8', 'caching_sha2_password cannot be loaded', 'pt-online-schema-change', 'gh-ost', 'emoji stored as ????', 'optimizar consulta MySQL', 'por qué no usa el índice', 'optimitzar consulta MySQL', 'MariaDB 11.8 vector'. NOT portable SELECT/JOIN/window-function craft (that is sql); NOT PostgreSQL engine behaviour like VACUUM or JSONB (that is postgresdb); NOT the PlanetScale/Vitess branch-and-deploy workflow (that is planetscale).",
2973
+ "description": "Use when designing, querying, indexing or operating a MySQL or MariaDB database and engine-specific behaviour matters — schema and type choices, index design, reading EXPLAIN, online schema change, replication and replica lag, locking and InnoDB deadlocks, charset traps, and server config. NOT portable SELECT/JOIN/window-function craft (that is `sql`), NOT PostgreSQL engine behaviour like VACUUM or JSONB (that is `postgresdb`), NOT the PlanetScale/Vitess branch-and-deploy workflow (that is `planetscale`).",
2974
2974
  "tags": [
2975
2975
  "mysql",
2976
2976
  "mariadb",
@@ -3014,7 +3014,7 @@
3014
3014
  },
3015
3015
  {
3016
3016
  "id": "neon",
3017
- "description": "Use when you picked Neon (serverless Postgres) and need to connect it correctly from a serverless/edge runtime, wire database branching into dev/preview/CI, or stop getting burned by scale-to-zero cold starts and pooler limits — code imports @neondatabase/serverless, DATABASE_URL points at *.neon.tech, or you must choose HTTP neon() vs WebSocket Pool. Triggers: 'connect to Neon from a Cloudflare Worker / Vercel edge', 'too many connections from my serverless function', 'first request after idle is slow' (scale-to-zero cold start), 'which connection string for migrations vs app queries', 'a database branch per pull request', 'pooled vs direct -pooler endpoint', 'conexión serverless a Postgres en Neon', 'branca de base de dades per cada PR'. NOT generic Postgres schema/index/EXPLAIN/RLS/migration engine work (that is postgresdb).",
3017
+ "description": "Use when you have picked Neon (serverless Postgres) and need to connect correctly from a serverless or edge runtime, wire database branching into dev, preview and CI, or stop being burned by scale-to-zero cold starts and pooler limits — including choosing HTTP versus WebSocket connections and pooled versus direct endpoints for migrations. NOT generic Postgres schema, index, EXPLAIN, RLS or migration-engine work (that is `postgresdb`).",
3018
3018
  "tags": [
3019
3019
  "neon",
3020
3020
  "postgres",
@@ -3055,7 +3055,7 @@
3055
3055
  },
3056
3056
  {
3057
3057
  "id": "netlify",
3058
- "description": "Use when deploying or operating a site on Netlify — writing or fixing netlify.toml, authoring Functions or Edge Functions, redirects/rewrites/headers, env vars per deploy context, or shipping via the Netlify CLI. Triggers: 'deploy to Netlify', 'netlify.toml build command', 'Netlify function returns 404 after deploy', 'page not found on SPA refresh on Netlify', 'build works locally but fails on Netlify', 'add a Netlify edge function', 'env var only in deploy preview', 'desplega-ho a Netlify', 'configura el netlify.toml'. NOT deploying to Vercel (that is vercel).",
3058
+ "description": "Use when deploying or operating a site on Netlify — writing or fixing netlify.toml, authoring Functions or Edge Functions, redirects, rewrites and headers, env vars per deploy context, and shipping via the Netlify CLI. NOT deploying to Vercel (that is `vercel`).",
3059
3059
  "tags": [
3060
3060
  "netlify",
3061
3061
  "deployment",
@@ -3112,7 +3112,7 @@
3112
3112
  },
3113
3113
  {
3114
3114
  "id": "nlp",
3115
- "description": "Use when choosing how to tokenize text or which transformer type fits an NLP task, when a tokenizer over-fragments non-English text or inflates token cost, when picking a language metric, or when classification / NER / summarization output looks wrong and you can't tell whether the tokenizer, the architecture, or the metric is at fault. Covers BPE / WordPiece / SentencePiece-Unigram / byte-level BPE, special tokens, encoder (BERT) vs decoder (GPT) vs encoder-decoder (T5) choice, classification, NER, seq2seq, sentence embeddings, and metrics (F1, entity-F1, BLEU / ROUGE / chrF, perplexity, LLM-as-judge). Triggers: 'BPE or WordPiece', 'BERT vs GPT vs T5 for this task', 'tokenizer splits Catalan into too many tokens', 'is BLEU good for summaries', 'entity F1 for NER', 'quin model faig servir per classificar text'. NOT retrieval / vector search (that is embeddings-search), NOT the RAG loop (that is rag), NOT prompt wording (that is prompt-engineering), NOT training the net (that is finetuning / deep-learning).",
3115
+ "description": "Use when choosing how to tokenize text or which transformer type fits an NLP task, when a tokenizer over-fragments non-English text or inflates token cost, when picking a language metric, or when classification, NER or summarization output looks wrong and it is unclear whether the tokenizer, the architecture or the metric is at fault. Covers subword tokenizers, encoder versus decoder versus encoder-decoder choice, sentence embeddings, and the metric families. NOT retrieval or vector search (that is `embeddings-search`), NOT the RAG loop (that is `rag`), NOT prompt wording (that is `prompt-engineering`), NOT training the network (that is `finetuning`).",
3116
3116
  "tags": [
3117
3117
  "nlp",
3118
3118
  "tokenization",
@@ -3215,7 +3215,7 @@
3215
3215
  },
3216
3216
  {
3217
3217
  "id": "ollama",
3218
- "description": "Use when running open-weight LLMs locally with Ollama — pulling/tagging models, calling the local API, picking a quant/GGUF, writing Modelfiles, or sizing VRAM/RAM for the box you're on. Triggers: 'run Llama/Qwen/gpt-oss/Gemma locally', 'self-host an LLM, no API keys, offline', 'model requires more memory than is available', 'why does my 70B OOM at long context', 'point the OpenAI SDK at localhost:11434', 'ollama ps / pull / create', 'ejecutar un LLM en local sin API key', 'quin model i quina quantització caben a la meva GPU de 12GB'. NOT remote/managed GPU serving or autoscaling (that is runpod), NOT downloading raw weights/datasets (that is huggingface), NOT retrieval pipeline design (that is rag).",
3218
+ "description": "Use when running open-weight LLMs locally with Ollama — pulling and tagging models, calling the local API, picking a quantization or GGUF, writing Modelfiles, and sizing VRAM and RAM for the machine at hand. NOT remote or managed GPU serving and autoscaling (that is `runpod`), NOT downloading raw weights or datasets (that is `huggingface`), NOT retrieval pipeline design (that is `rag`).",
3219
3219
  "tags": [
3220
3220
  "ollama",
3221
3221
  "local-llm",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ericrisco/rsc",
3
- "version": "0.1.59",
3
+ "version": "0.1.61",
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: landing-copy
3
- description: "Use when writing the words on a single conversion page — the hero headline and subhead, the offer, the proof/testimonials, and one primary CTA — or rescuing a page that gets traffic but does not convert (a copy diagnosis, not a layout one). Triggers: 'write the hero headline and subhead', 'write the landing copy', 'turn these features into benefits', 'what should the button say', 'make the page headline match the ad', 'people land on the page and bounce', 'my headline is clever but nobody clicks the button', 'escríbeme el copy de la landing', 'el titular del hero no convierte'. NOT the paid ad that drives the click (that is ads), NOT the visual layout the words sit in (that is design), NOT the experiment that picks the winning variant (that is ab-testing)."
3
+ description: "Use when writing the words on a single conversion page — the hero headline and subhead, the offer, the proof and testimonials, and one primary CTA — or diagnosing a page that gets traffic and does not convert, as a copy problem rather than a layout one. NOT the paid ad that drives the click (that is `ads`), NOT the visual layout the words sit in (that is `design`), NOT the experiment that picks the winning variant (that is `ab-testing`)."
4
4
  tags: [landing-page, copywriting, conversion, hero-headline, cta, social-proof]
5
5
  recommends: [ads, design, brand-voice, ab-testing, case-studies]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: laravel
3
- description: "Use when building or extending a Laravel 11/12 app - Eloquent models/migrations/relationships, routing + controllers + Form Requests, queues and background jobs, framework-native security (validation, mass-assignment, policies, signed URLs, rate limiting), and Pest/PHPUnit feature tests. Triggers: \"add a queued job with retries\", \"create an Eloquent model and migration\", \"write a Pest feature test\", \"where did app/Http/Kernel.php go\", \"my job runs immediately in tests instead of queueing\", \"configura una cua amb Horizon i Redis\", \"crea una migración con relaciones\", editing bootstrap/app.php / routes/console.php / app/Models. NOT pure PHP language/toolchain work (that is php)."
3
+ description: "Use when building or extending a Laravel 11/12 app — Eloquent models, migrations and relationships, routing with controllers and Form Requests, queues and background jobs, framework-native security (validation, mass-assignment, policies, signed URLs, rate limiting), and Pest/PHPUnit feature tests. NOT pure PHP language or toolchain work (that is `php`)."
4
4
  tags: [laravel, php, eloquent, queues, pest, artisan]
5
5
  recommends: [php, mysql, redis, api-design, secure-coding, testing-web]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: linkedin-api
3
- description: "Use when wiring an app to LinkedIn's organic Posts / Community Management API — completing 3-legged OAuth, publishing text/article/document posts to a member profile or company page, or pulling impressions/engagement/follower stats and logging them as a durable feedback record. Triggers: 'connect our app to the LinkedIn Posts API', 'publish to our company page programmatically', 'pull last month's impressions for our org posts', 'my /v2/ugcPosts call returns 403', 'unauthorized scope w_organization_social at consent', 'log post performance into the wiki', 'publica a la pàgina de LinkedIn per API', 'conectar la API de LinkedIn y traer las impresiones'. NOT writing the post copy (that is linkedin-content), planning cadence (that is linkedin-strategy), or DM sequences (that is linkedin-outreach)."
3
+ description: "Use when wiring an app to LinkedIn's organic Posts / Community Management API — 3-legged OAuth, publishing text, article or document posts to a member profile or company page, and pulling impressions, engagement and follower stats into a durable feedback record. NOT writing the post copy (that is `linkedin-content`), NOT planning cadence (that is `linkedin-strategy`), NOT DM sequences (that is `linkedin-outreach`)."
4
4
  tags: [linkedin, social-api, oauth, community-management-api, analytics, connector]
5
5
  recommends: [api-connector-builder, webhooks, analytics, knowledge-ops]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: linkedin-content
3
- description: "Use when writing the actual words of one LinkedIn feed post — turning a raw idea, story, or asset into ready-to-paste copy that earns dwell time and comments: a text post, a document/carousel cover + slide copy + caption, or a 30–90s native-video script + caption. Use to fix a weak hook so people tap 'see more', reformat a wall of text for the mobile feed, or get a CTA that provokes a real comment (not 'thoughts?'). Triggers: 'write me a LinkedIn post about X', 'my hook is weak, rewrite the first three lines so people click see more', 'give me a CTA that gets comments not thoughts?', 'should the link go in the post or the first comment?', 'escríbeme un post de LinkedIn que enganche', 'fes-me un post de LinkedIn amb ganxo sobre el llançament'. NOT planning what/when to post or cadence (that is linkedin-strategy), NOT designing the carousel slides/layout/PDF export (that is linkedin-carousels), NOT DM/connection sequences (that is linkedin-outreach), NOT programmatic publish (that is linkedin-api)."
3
+ description: "Use when writing the actual words of one LinkedIn feed post — turning a raw idea, story or asset into ready-to-paste copy: a text post, a document/carousel cover with slide copy and caption, or a short native-video script. Covers fixing a weak hook, reformatting a wall of text for the mobile feed, and a CTA that provokes a real comment. NOT planning what or when to post (that is `linkedin-strategy`), NOT designing the carousel slides and PDF export (that is `linkedin-carousels`), NOT DM sequences (that is `linkedin-outreach`), NOT programmatic publishing (that is `linkedin-api`)."
4
4
  tags: [linkedin, social-copywriting, hooks, content-writing, dwell-time, ctas, document-posts]
5
5
  recommends: [linkedin-strategy, linkedin-carousels, linkedin-outreach, linkedin-api, brand-voice, video-shorts]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: linkedin-strategy
3
- description: "Use when a LinkedIn presence — personal brand or company page — needs an account-level decision over months: positioning/POV, defining 3-5 content pillars, posting cadence, whether content lives on the founder's profile or the company page, or the SSI / social-selling rhythm, read from and written back to the presence's own learning wiki. Triggers: 'what should I be known for on LinkedIn', 'what should I post about', 'how often should I post', 'company page or founder profile for content', 'my company page is dead where should content live', 'I post but nothing comes back / no inbound', 'my SSI is stuck how do I raise it', 'quarterly LinkedIn review which pillar is working', 'qué debería publicar en LinkedIn', 'cada cuánto publico per ser referent'. NOT writing the post copy or hook (that is linkedin-content), NOT building a carousel deck (that is linkedin-carousels), NOT sending DMs or sequences (that is linkedin-outreach), NOT pulling raw analytics (that is linkedin-api)."
3
+ description: "Use when a LinkedIn presence — personal brand or company page — needs an account-level decision spanning months: positioning and point of view, three to five content pillars, posting cadence, whether content lives on the founder's profile or the company page, and the social-selling rhythm, read from and written back to the presence's own learning wiki. NOT writing the post copy or hook (that is `linkedin-content`), NOT building a carousel deck (that is `linkedin-carousels`), NOT sending DMs (that is `linkedin-outreach`), NOT pulling raw analytics (that is `linkedin-api`)."
4
4
  tags: [linkedin, positioning, content-pillars, cadence, thought-leadership, ssi, social-selling]
5
5
  recommends: [linkedin-content, linkedin-outreach, linkedin-api, content-engine, decision-records]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: logistics-ops
3
- description: "Use when an order is paid and packed and the box now has to physically move, go sideways, or come home — pick a carrier/service and cut a label, react to a tracker that fired a delivery exception, get ahead of 'where is my order' tickets, run a return/exchange/refund decision and the reverse label, file a carrier claim before the window closes, or set return-window / restocking-fee policy. Triggers: 'which carrier and service for order #1043, cut me the label', 'the tracker says delivery exception — what do I tell the customer', 'customers keep opening where-is-my-order tickets', 'a package arrived smashed, how long to file a FedEx claim', 'gestiona la devolución de este pedido, quiere cambiar la talla', 'quin transportista surt més barat per a aquest enviament'. NOT setting stock levels or reorder points (that is inventory), NOT sourcing or buying from suppliers (that is procurement), NOT writing the on-voice apology to the customer (that is customer-support)."
3
+ description: "Use when an order is paid and packed and the box now has to move, go sideways, or come back — picking a carrier and service and cutting a label, reacting to a delivery exception, getting ahead of where-is-my-order tickets, running a return, exchange or refund with its reverse label, filing a carrier claim before the window closes, and setting return-window and restocking-fee policy. NOT setting stock levels or reorder points (that is `inventory`), NOT sourcing or buying from suppliers (that is `procurement`), NOT writing the apology to the customer (that is `customer-support`)."
4
4
  tags: [logistics, shipping, carriers, returns, reverse-logistics, fulfillment, tracking]
5
5
  recommends: [inventory, procurement, customer-support, api-connector-builder, webhooks, bookkeeping]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: make
3
- description: "Use when operating Make.com (formerly Integromat) programmatically — driving its REST API v2 or the Make MCP server from code or an agent to create, read, update, activate, run, clone, or delete scenarios, connections, hooks, and data stores. Triggers: 'create a Make scenario via the API', 'export a scenario blueprint, mutate it, and push it back', 'start/stop/run a Make scenario from a script', 'clone this Integromat scenario into another team', 'connect the Make MCP server so an agent runs my scenarios as tools', 'my valid Make API token returns an auth error' (zone trap), 'automatiza escenarios de Make.com desde la API'. NOT designing what the flow should do — trigger, branching, mapping, dedup, error path (automation-flows), NOT choosing Make vs n8n vs Zapier by billing model (automation-strategy), NOT operating n8n / Zapier / Power Automate (their skills), NOT a generic typed REST client with pagination/backoff (api-connector-builder) or an inbound webhook receiver in your own app (webhooks)."
3
+ description: "Use when operating Make.com (formerly Integromat) programmatically — driving its REST API v2 or the Make MCP server from code or an agent to create, read, update, activate, run, clone or delete scenarios, connections, hooks and data stores. NOT designing what the flow should do (that is `automation-flows`), NOT choosing between Make, n8n and Zapier by billing model (that is `automation-strategy`), NOT a generic typed REST client (that is `api-connector-builder`), NOT receiving inbound webhooks in your own app (that is `webhooks`)."
4
4
  tags: [make, integromat, automation, scenarios, blueprint, mcp, no-code, api, workflows]
5
5
  recommends: [automation-flows, automation-strategy, api-connector-builder, webhooks]
6
6
  profiles: [full]
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: medium-strategy
3
- description: "Use when planning Medium as a growth + money SYSTEM over months, not one post: enrolling in and optimizing for the Partner Program, deciding solo profile vs starting a publication vs joining or pitching one, engineering for Boost and the three distribution tiers, choosing tags/topics for reach, and a canonical cross-posting plan — read from and written back to 02-DOCS/wiki/medium/ so each session compounds. Triggers: 'how does the Medium Partner Program pay me', 'why does my story get views but no distribution', 'how do I get Boosted', 'should I start my own publication or pitch the big ones', 'repurpose my blog onto Medium without tanking my SEO', 'what tags maximize reach', 'qué tags uso en Medium', 'com guanyar diners a Medium'. NOT writing the article's hook/structure/prose (that is medium-writing), NOT the mechanical format-and-submit-one-story step (that is medium-publishing)."
3
+ description: "Use when planning Medium as a growth and revenue system over months rather than one post — the Partner Program, solo profile versus starting or pitching a publication, engineering for Boost and the distribution tiers, tag and topic choices for reach, and a canonical cross-posting plan, read from and written back to the wiki so each session compounds. NOT writing the article's hook, structure or prose (that is `medium-writing`), NOT the mechanical format-and-submit step (that is `medium-publishing`)."
4
4
  tags: [medium, partner-program, monetization, distribution, publications, cross-posting]
5
5
  recommends: [medium-writing, medium-publishing, content-engine, seo-geo, decision-records]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: medium-writing
3
- description: "Use when crafting or rewriting ONE Medium story so it earns reads, claps, and Boost curation — writing the title/subtitle/kicker as a hook system, fixing a story that gets views but a low read ratio (title over-promises, intro buries the payoff, wall-of-text body), making a draft scannable and curation-eligible, or reshaping a blog post/newsletter into Medium-native form. Triggers: 'write a Medium article that gets read', 'my Medium post gets views but nobody finishes it', 'fix my read ratio', 'give me a title subtitle and kicker', 'make this Boost-eligible', 'curation-worthy Medium draft', 'escribe un artículo de Medium que enganche desde el primer párrafo', 'fes que aquest esborrany de Medium sigui llegible'. NOT scheduling/publishing/tags/submitting to a publication (that is medium-publishing), and NOT deciding what topics or cadence to write (that is medium-strategy)."
3
+ description: "Use when crafting or rewriting ONE Medium story so it earns reads, claps and Boost curation — the title, subtitle and kicker as a hook system, fixing a story with views but a low read ratio, making a draft scannable and curation-eligible, or reshaping a blog post or newsletter into Medium-native form. NOT scheduling, tags or submitting to a publication (that is `medium-publishing`), NOT deciding topics or cadence (that is `medium-strategy`)."
4
4
  tags: [medium, writing, headlines, hooks, read-ratio, curation, boost, formatting]
5
5
  recommends: [medium-publishing, medium-strategy, brand-voice, article-writing, content-engine]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mongodb
3
- description: "Use when modeling MongoDB documents (embed vs reference, the 16MB cap, bucket/subset/extended-reference patterns), choosing or fixing indexes (compound order via the ESR rule, partial/TTL/multikey, reading explain), writing aggregation pipelines that stay index-eligible ($match-first, $lookup cost, $group memory + allowDiskUse), running multi-document transactions with retry, or operating/securing a deployment (replica set, read/write concern, Atlas M0/Flex/dedicated tiers, Vector Search, Queryable Encryption). Triggers: 'slow Mongo query', 'add an index', 'COLLSCAN', 'embed or reference', 'aggregation pipeline', '$lookup', 'transaction keeps retrying', 'modela esta colección', 'mi consulta hace un full scan'. MongoDB 8.2, driver-agnostic (mongosh syntax). NOT relational schema/SQL/EXPLAIN ANALYZE (that is postgresdb)."
3
+ description: "Use when modeling MongoDB documents (embed versus reference, the 16MB cap, bucket and subset patterns), choosing or fixing indexes (compound order by the ESR rule, partial, TTL, multikey, reading explain), writing aggregation pipelines that stay index-eligible, running multi-document transactions with retry, or operating and securing a deployment (replica set, read/write concern, Atlas tiers, Vector Search, Queryable Encryption). MongoDB 8.2, driver-agnostic. NOT relational schema, SQL or EXPLAIN ANALYZE (that is `postgresdb`)."
4
4
  tags: [mongodb, nosql, database, aggregation, indexing]
5
5
  recommends: [secure-coding, harness]
6
6
  profiles: []
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: monitoring
3
- description: "Use when setting up uptime/health monitoring, alerts, or on-call basics for a service already in production and you need to know it's down before customers do. Triggers: 'set up uptime monitoring', 'alert me if the site goes down', 'add /healthz and /readyz and probe them', 'we get paged at 3am for CPU spikes that self-resolve — fix alert fatigue', 'alert on our SLO error-budget burn rate not raw error count', 'an untested alert isn't an alert', 'create an on-call rotation with escalation and a status page', 'monta monitorització d'uptime i avísa'm si l'API torna 5xx', 'avísame si la web se cae'. NOT instrumenting logs/metrics/traces or wiring OpenTelemetry (that is observability)."
3
+ description: "Use when setting up uptime and health monitoring, alerts, or on-call basics for a service already in production, so you learn it is down before customers do — health and readiness probes, alerting on SLO error-budget burn rather than raw counts, curing alert fatigue, on-call rotation with escalation, and a status page. NOT instrumenting logs, metrics or traces, or wiring OpenTelemetry (that is `observability`)."
4
4
  tags: [monitoring, uptime, alerting, on-call, sre]
5
5
  recommends: [observability, deployment, error-handling, domains-dns, scaling]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mysql
3
- description: "Use when designing, querying, indexing, or operating a MySQL or MariaDB database and engine-specific behaviour matters: schema and type choices, index design, reading EXPLAIN, online schema change, replication, locking, deadlocks, and server config. Triggers: 'slow MySQL query', 'why isn't my index used', 'EXPLAIN says Using filesort', 'add a column to a huge table without downtime', 'set up GTID replication', 'replica lag', 'InnoDB deadlock', 'utf8mb4 vs utf8', 'caching_sha2_password cannot be loaded', 'pt-online-schema-change', 'gh-ost', 'emoji stored as ????', 'optimizar consulta MySQL', 'por qué no usa el índice', 'optimitzar consulta MySQL', 'MariaDB 11.8 vector'. NOT portable SELECT/JOIN/window-function craft (that is sql); NOT PostgreSQL engine behaviour like VACUUM or JSONB (that is postgresdb); NOT the PlanetScale/Vitess branch-and-deploy workflow (that is planetscale)."
3
+ description: "Use when designing, querying, indexing or operating a MySQL or MariaDB database and engine-specific behaviour matters — schema and type choices, index design, reading EXPLAIN, online schema change, replication and replica lag, locking and InnoDB deadlocks, charset traps, and server config. NOT portable SELECT/JOIN/window-function craft (that is `sql`), NOT PostgreSQL engine behaviour like VACUUM or JSONB (that is `postgresdb`), NOT the PlanetScale/Vitess branch-and-deploy workflow (that is `planetscale`)."
4
4
  tags: [mysql, mariadb, innodb, explain, replication, indexing, online-ddl, database]
5
5
  recommends: [sql, postgresdb, planetscale, db-migrations, backups]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neon
3
- description: "Use when you picked Neon (serverless Postgres) and need to connect it correctly from a serverless/edge runtime, wire database branching into dev/preview/CI, or stop getting burned by scale-to-zero cold starts and pooler limits — code imports @neondatabase/serverless, DATABASE_URL points at *.neon.tech, or you must choose HTTP neon() vs WebSocket Pool. Triggers: 'connect to Neon from a Cloudflare Worker / Vercel edge', 'too many connections from my serverless function', 'first request after idle is slow' (scale-to-zero cold start), 'which connection string for migrations vs app queries', 'a database branch per pull request', 'pooled vs direct -pooler endpoint', 'conexión serverless a Postgres en Neon', 'branca de base de dades per cada PR'. NOT generic Postgres schema/index/EXPLAIN/RLS/migration engine work (that is postgresdb)."
3
+ description: "Use when you have picked Neon (serverless Postgres) and need to connect correctly from a serverless or edge runtime, wire database branching into dev, preview and CI, or stop being burned by scale-to-zero cold starts and pooler limits — including choosing HTTP versus WebSocket connections and pooled versus direct endpoints for migrations. NOT generic Postgres schema, index, EXPLAIN, RLS or migration-engine work (that is `postgresdb`)."
4
4
  tags: [neon, postgres, serverless, database, branching, edge]
5
5
  recommends: [postgresdb, drizzle-orm, prisma-orm, vercel]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: netlify
3
- description: "Use when deploying or operating a site on Netlify — writing or fixing netlify.toml, authoring Functions or Edge Functions, redirects/rewrites/headers, env vars per deploy context, or shipping via the Netlify CLI. Triggers: 'deploy to Netlify', 'netlify.toml build command', 'Netlify function returns 404 after deploy', 'page not found on SPA refresh on Netlify', 'build works locally but fails on Netlify', 'add a Netlify edge function', 'env var only in deploy preview', 'desplega-ho a Netlify', 'configura el netlify.toml'. NOT deploying to Vercel (that is vercel)."
3
+ description: "Use when deploying or operating a site on Netlify — writing or fixing netlify.toml, authoring Functions or Edge Functions, redirects, rewrites and headers, env vars per deploy context, and shipping via the Netlify CLI. NOT deploying to Vercel (that is `vercel`)."
4
4
  tags: [netlify, deployment, serverless-functions, edge-functions, netlify-toml, redirects]
5
5
  recommends: [vercel, cloudflare, nextjs, domains-dns, github-actions]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: nlp
3
- description: "Use when choosing how to tokenize text or which transformer type fits an NLP task, when a tokenizer over-fragments non-English text or inflates token cost, when picking a language metric, or when classification / NER / summarization output looks wrong and you can't tell whether the tokenizer, the architecture, or the metric is at fault. Covers BPE / WordPiece / SentencePiece-Unigram / byte-level BPE, special tokens, encoder (BERT) vs decoder (GPT) vs encoder-decoder (T5) choice, classification, NER, seq2seq, sentence embeddings, and metrics (F1, entity-F1, BLEU / ROUGE / chrF, perplexity, LLM-as-judge). Triggers: 'BPE or WordPiece', 'BERT vs GPT vs T5 for this task', 'tokenizer splits Catalan into too many tokens', 'is BLEU good for summaries', 'entity F1 for NER', 'quin model faig servir per classificar text'. NOT retrieval / vector search (that is embeddings-search), NOT the RAG loop (that is rag), NOT prompt wording (that is prompt-engineering), NOT training the net (that is finetuning / deep-learning)."
3
+ description: "Use when choosing how to tokenize text or which transformer type fits an NLP task, when a tokenizer over-fragments non-English text or inflates token cost, when picking a language metric, or when classification, NER or summarization output looks wrong and it is unclear whether the tokenizer, the architecture or the metric is at fault. Covers subword tokenizers, encoder versus decoder versus encoder-decoder choice, sentence embeddings, and the metric families. NOT retrieval or vector search (that is `embeddings-search`), NOT the RAG loop (that is `rag`), NOT prompt wording (that is `prompt-engineering`), NOT training the network (that is `finetuning`)."
4
4
  tags: [nlp, tokenization, bpe, wordpiece, ner, text-classification, bleu, rouge, perplexity, transformers]
5
5
  recommends: [deep-learning, embeddings-search, rag, training-data]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ollama
3
- description: "Use when running open-weight LLMs locally with Ollama — pulling/tagging models, calling the local API, picking a quant/GGUF, writing Modelfiles, or sizing VRAM/RAM for the box you're on. Triggers: 'run Llama/Qwen/gpt-oss/Gemma locally', 'self-host an LLM, no API keys, offline', 'model requires more memory than is available', 'why does my 70B OOM at long context', 'point the OpenAI SDK at localhost:11434', 'ollama ps / pull / create', 'ejecutar un LLM en local sin API key', 'quin model i quina quantització caben a la meva GPU de 12GB'. NOT remote/managed GPU serving or autoscaling (that is runpod), NOT downloading raw weights/datasets (that is huggingface), NOT retrieval pipeline design (that is rag)."
3
+ description: "Use when running open-weight LLMs locally with Ollama — pulling and tagging models, calling the local API, picking a quantization or GGUF, writing Modelfiles, and sizing VRAM and RAM for the machine at hand. NOT remote or managed GPU serving and autoscaling (that is `runpod`), NOT downloading raw weights or datasets (that is `huggingface`), NOT retrieval pipeline design (that is `rag`)."
4
4
  tags: [ollama, local-llm, gguf, quantization, self-hosted-inference]
5
5
  recommends: [huggingface, runpod, modal, llm-pipeline, rag]
6
6
  origin: risco