@ericrisco/rsc 0.1.61 → 0.1.63

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.61",
2
+ "version": "0.1.63",
3
3
  "counts": {
4
4
  "skills": 258
5
5
  },
@@ -3234,7 +3234,7 @@
3234
3234
  },
3235
3235
  {
3236
3236
  "id": "open-weights",
3237
- "description": "Use when choosing an open-weight LLM and clearing it for use — which family and size fit a task, hardware and budget, and above all whether the license lets you ship (Llama, Qwen, Mistral/Mixtral, Gemma, DeepSeek, Phi, gpt-oss, and others). Owns the license-CLASS map (OSI-open Apache/MIT vs custom-community like Llama/Gemma vs non-commercial/restricted like the original Codestral) and the always-verify-the-model-card rule, plus size-to-VRAM budgeting and quant formats (GGUF/AWQ/GPTQ, what Q4_K_M means). Triggers: 'which open model should I use', 'can I use Llama/Gemma commercially', 'is Qwen Apache-2.0', 'what open LLM fits a 24GB GPU', 'is this license safe to ship in a product', 'quin model obert puc fer servir legalment'. NOT how to download or host on HF (that is huggingface), NOT running it locally (that is ollama), NOT serving at throughput (that is vllm), NOT fine-tuning it (that is finetuning) — this layer only tells you WHICH model and whether the license permits it, then hands off.",
3237
+ "description": "Use when choosing an open-weight LLM and clearing it for use — which family and size fit the task, the hardware and the budget, and above all whether the license permits shipping. Owns the license-class map (OSI-open versus custom-community versus non-commercial), the always-verify-the-model-card rule, size-to-VRAM budgeting and the quant formats. This layer decides WHICH model and whether the license allows it, then hands off. NOT downloading or hosting on the Hub (that is `huggingface`), NOT running it locally (that is `ollama`), NOT serving at throughput (that is `vllm`), NOT fine-tuning it (that is `finetuning`).",
3238
3238
  "tags": [
3239
3239
  "open-weights",
3240
3240
  "open-source-llm",
@@ -3284,7 +3284,7 @@
3284
3284
  },
3285
3285
  {
3286
3286
  "id": "people-ops",
3287
- "description": "Use when the offer is signed and you now run the person — building an onboarding plan (preboarding → Day 1 → 30/60/90 ramp), drafting or auditing an internal policy or employee-handbook section (PTO, remote/hybrid, conduct, leave, expenses), standing up the recurring people rhythm (weekly 1:1s, review/goal cycle, headcount), or offboarding a leaver. Triggers: 'build an onboarding plan with a 30/60/90', 'draft a remote-work policy', 'the offer's signed, now what do I need ready before day one?', 'this handbook reads like a contract', 'set up our 1:1 and review cadence', 'someone's leaving — offboarding checklist', 'what HR do we even need?', 'plan de onboarding para el nuevo fichaje', 'redacta la política de teletreball'. NOT sourcing/interviewing/the offer itself (that is hiring).",
3287
+ "description": "Use when the offer is signed and you now have to run the person — an onboarding plan from preboarding through the 30/60/90 ramp, drafting or auditing an internal policy or handbook section, standing up the recurring people rhythm (1:1s, review and goal cycles, headcount), or offboarding a leaver. NOT sourcing, interviewing or the offer itself (that is `hiring`).",
3288
3288
  "tags": [
3289
3289
  "people-ops",
3290
3290
  "hr",
@@ -3332,7 +3332,7 @@
3332
3332
  },
3333
3333
  {
3334
3334
  "id": "phoenix",
3335
- "description": "Use when building an Elixir web app with Phoenix — contexts, Ecto schemas/changesets/migrations, LiveView, channels, generators and Phoenix-flavored tests — or wiring up the boundary between domain logic and the web layer. Triggers: 'mix phx.new', 'phx.gen.live', 'phx.gen.auth', 'build a LiveView CRUD', 'Ecto changeset', 'Phoenix channel / PubSub', 'how do I structure a context', non-obvious 'my LiveView re-renders the whole list every time one row is added', 'every post fires a separate query for its author' (N+1), Catalan 'crea un context Comandes i un LiveView per gestionar-les amb acces per usuari', Spanish 'autenticacion sin contrasena con phx.gen.auth / como separo el contexto del controlador'. NOT pure OTP — GenServers, supervision trees, releases with no web/Ecto layer (that is elixir).",
3335
+ "description": "Use when building an Elixir web app with Phoenix — contexts, Ecto schemas, changesets and migrations, LiveView, channels and PubSub, the generators, and the boundary between domain logic and the web layer. Covers the classic LiveView over-rendering and Ecto N+1 traps. NOT pure OTP work with no web or Ecto layer — GenServers, supervision trees, releases (that is `elixir`).",
3336
3336
  "tags": [
3337
3337
  "phoenix",
3338
3338
  "elixir",
@@ -3352,7 +3352,7 @@
3352
3352
  },
3353
3353
  {
3354
3354
  "id": "php",
3355
- "description": "Use when writing, reviewing, or modernizing PHP (8.3/8.4/8.5) beyond Laravel - strict types, union/intersection types, readonly classes, backed enums, PHP 8.4 property hooks and asymmetric visibility, PHP 8.5 pipe operator and clone-with, Composer + PSR-4 autoloading, PER-CS style, PSR-3/7/11/15 interop, and the quality toolchain (PHPStan max, Pint/PHP-CS-Fixer, Rector, PHPUnit 12 / Pest 4). Triggers: \\\"write a PHP value object\\\", \\\"set up composer.json with PSR-4\\\", \\\"convert getters to property hooks\\\", \\\"is this idiomatic modern PHP or 2015 code\\\", \\\"configura PHPStan a nivel max\\\", editing .php / composer.json / phpstan.neon. NOT Eloquent/Blade/Artisan (that is laravel).",
3355
+ "description": "Use when writing, reviewing or modernizing PHP (8.3-8.5) outside Laravel — strict types, union and intersection types, readonly classes, backed enums, property hooks and asymmetric visibility, the pipe operator and clone-with, Composer with PSR-4, PER-CS style, PSR interop, and the quality toolchain (PHPStan, Pint, Rector, PHPUnit/Pest). NOT Eloquent, Blade or Artisan (that is `laravel`).",
3356
3356
  "tags": [
3357
3357
  "php",
3358
3358
  "php8",
@@ -3371,7 +3371,7 @@
3371
3371
  },
3372
3372
  {
3373
3373
  "id": "pitch-deck",
3374
- "description": "Use when building or fixing an investor fundraising deck — the narrative arc, the slide-by-slide story, and the small set of numbers that actually move an investment decision, for a pre-seed, seed, or Series A raise (and the close cousin, a YC/accelerator application deck). Decides WHAT goes on each slide, in what order, and with which metric; sequences the story the way a VC evaluates risk (problem → solution → why-now → market → traction → team → ask). Triggers: 'build our seed pitch deck', 'what slides do I need to raise pre-seed', 'write the traction slide and the ask slide', 'investors lose interest after slide 3', 'tighten the fundraising story before demo day', 'monta el pitch deck para inversores', 'prepara la ronda seed', 'el deck per a la presentació a inversors'. NOT rendering/exporting/theming the slides into a designed PDF or PPTX (that is presentations), NOT the projection spreadsheet behind the numbers (that is financial-model).",
3374
+ "description": "Use when building or fixing an investor fundraising deck — the narrative arc, the slide-by-slide story, and the few numbers that actually move an investment decision, for a pre-seed, seed or Series A raise (or an accelerator application deck). Decides what goes on each slide, in what order, with which metric, sequenced the way an investor evaluates risk. NOT rendering, theming or exporting the slides into a designed PDF or PPTX (that is `presentations`), NOT the projection spreadsheet behind the numbers (that is `financial-model`).",
3375
3375
  "tags": [
3376
3376
  "pitch-deck",
3377
3377
  "fundraising",
@@ -3426,7 +3426,7 @@
3426
3426
  },
3427
3427
  {
3428
3428
  "id": "podcast",
3429
- "description": "Use when planning, recording, editing, or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings (double-ender, 48 kHz WAV multitrack), the loudness master, the Podcasting 2.0 sidecars (chapters.json, transcript.vtt), the RSS <item>, and timestamped SEO show notes. Use when audio sounds quiet on Spotify but loud on Apple, a feed is rejected for bad artwork, or chapters and transcripts will not show in the app. Triggers: 'plan the run-of-show for a 40-minute interview', 'what LUFS for Apple and Spotify', 'master once to -16 LUFS', 'wire the transcript tag', 'valid RSS item with chapters and transcript for episode 14', 'generate a chapters.json from the double-ender locals', 'write timestamped SEO show notes', 'masteritzar l'àudio del podcast', 'escribe las show notes con timestamps'. NOT clipping the episode into social posts (that is social-publisher) and NOT cutting the vertical short (that is video-shorts).",
3429
+ "description": "Use when planning, recording, editing or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings, the loudness master, the Podcasting 2.0 sidecars for chapters and transcripts, the RSS item, and timestamped SEO show notes. Covers audio that is quiet on one platform and loud on another, feeds rejected for bad artwork, and chapters that will not appear in the app. NOT clipping the episode into social posts (that is `social-publisher`), NOT cutting the vertical short (that is `video-shorts`).",
3430
3430
  "tags": [
3431
3431
  "podcast",
3432
3432
  "audio",
@@ -3497,7 +3497,7 @@
3497
3497
  },
3498
3498
  {
3499
3499
  "id": "press-kit",
3500
- "description": "Use when writing a press release or assembling a media kit a journalist can lift — launches, funding rounds, exec hires, partnerships, milestones, awards, or building an online newsroom; symptoms include 'reads like an ad', no pickup, a buried lede, no quotable line, or a missing dateline/boilerplate/asset. Triggers: 'write a press release', 'put together a press kit / media kit', 'write our boilerplate', 'draft a fact sheet', 'set an embargo on this announcement', the non-obvious 'our release got no coverage / journalists ignored it' and 'make this announcement quotable', and 'redacta una nota de prensa' / 'munta un dossier de premsa per als periodistes'. NOT finding the reporter list to send to (that is lead-gen), NOT the multi-touch pitch cadence (that is cold-outreach), NOT the brand tone-of-voice spec (that is brand-voice), and NOT the owned launch campaign (that is marketing).",
3500
+ "description": "Use when writing a press release or assembling a media kit a journalist can lift from — launches, funding, exec hires, partnerships, milestones, awards, or an online newsroom. Symptoms include a release that reads like an ad, a buried lede, no quotable line, or a missing dateline, boilerplate or asset. NOT finding the reporter list (that is `lead-gen`), NOT the multi-touch pitch cadence (that is `cold-outreach`), NOT the brand tone-of-voice spec (that is `brand-voice`), NOT the owned launch campaign (that is `marketing`).",
3501
3501
  "tags": [
3502
3502
  "press-release",
3503
3503
  "media-kit",
@@ -3523,7 +3523,7 @@
3523
3523
  },
3524
3524
  {
3525
3525
  "id": "pricing",
3526
- "description": "Use when setting or resetting what a product or service charges and how it is packaged — choosing list price, margin floor, tiers, value metric, pricing model (flat/seat/usage/outcome/hybrid) and discount rules. Triggers: 'what should I charge', 'cómo pongo precio a esto', 'quin preu poso', 'design my pricing tiers', 'good better best packaging', 'we keep discounting away our margin', 'reprice because our AI compute costs jumped', 'localize price for other countries (PPP)', 'per-seat pricing is killing us', 'set a discount floor'. NOT issuing the actual bill (that is invoicing) and NOT implementing prices in a billing system (that is stripe).",
3526
+ "description": "Use when setting or resetting what a product or service charges and how it is packaged — list price, margin floor, tiers, the value metric, the pricing model (flat, seat, usage, outcome or hybrid), discount rules and purchasing-power localisation. NOT issuing the actual bill (that is `invoicing`), NOT implementing prices in a billing system (that is `stripe`).",
3527
3527
  "tags": [
3528
3528
  "pricing",
3529
3529
  "packaging",
@@ -3592,7 +3592,7 @@
3592
3592
  },
3593
3593
  {
3594
3594
  "id": "project-ops",
3595
- "description": "Use when an operator wants to run a small or mid project from a flat file — dated milestones each with one named owner and a binary done-test, RAG status driven by rules, a RAID log, slippage detection, and a 2-minute weekly status report — instead of standing up Jira/Asana. Triggers: 'set up milestones with owners and due dates', 'write this week's status report', 'who do I chase if the launch slips', 'everything is green and I don't trust it — what should be amber', 'which milestones are trending late before they miss', 'start a RAID log', 'munta'm un seguiment de projecte amb fites i estat RAG', 'informe d'estat setmanal', 'qui és l'owner de cada fita', 'estado del proyecto en rojo/ámbar/verde'. NOT sequencing the engineering work inside one approved plan (that is tasks).",
3595
+ "description": "Use when an operator wants to run a small or mid-sized project from a flat file instead of standing up Jira or Asana — dated milestones each with one named owner and a binary done-test, rule-driven RAG status, a RAID log, slippage detection, and a two-minute weekly status report. NOT sequencing the engineering work inside one approved plan (that is `tasks`).",
3596
3596
  "tags": [
3597
3597
  "project-management",
3598
3598
  "milestones",
@@ -3626,7 +3626,7 @@
3626
3626
  },
3627
3627
  {
3628
3628
  "id": "proposals",
3629
- "description": "Use when writing the document a buyer reads to say yes — a commercial proposal or Statement of Work (SOW), turning discovery notes into a scoped priced doc, adding Good/Better/Best tiers, or fixing a proposal that won't close. Triggers: 'write a proposal for this client', 'draft a SOW / scope of work', 'turn this discovery call into a proposal', 'add pricing tiers so the middle one wins', 'why isn't this proposal closing', 'scope this so the client can't keep adding free work', 'propuesta comercial / propuesta de servicios', 'proposta comercial / abast del projecte'. NOT the binding legal agreement, MSA, liability/IP clauses (that is contracts), NOT deciding what number to charge or the margin (that is pricing), NOT the slide deck that pitches the vision to a room (that is pitch-deck).",
3629
+ "description": "Use when writing the document a buyer reads to say yes — a commercial proposal or Statement of Work, turning discovery notes into a scoped and priced document, adding tiers so the middle one wins, or diagnosing a proposal that will not close. NOT the binding legal agreement with its liability and IP clauses (that is `contracts`), NOT deciding the number or the margin (that is `pricing`), NOT the deck that pitches the vision to a room (that is `pitch-deck`).",
3630
3630
  "tags": [
3631
3631
  "proposals",
3632
3632
  "sow",
@@ -3685,7 +3685,7 @@
3685
3685
  },
3686
3686
  {
3687
3687
  "id": "rails",
3688
- "description": "Use when building or maintaining a Ruby on Rails app — generating or editing app/ models, controllers, views, config/routes.rb, db/migrate; writing ActiveRecord associations/scopes/queries; building Hotwire (Turbo + Stimulus) UI; Active Job / Solid Queue jobs; or Rails tests. Triggers: 'rails generate', 'fix this N+1', 'add a Turbo Stream', 'belongs_to / has_many', 'is this migration safe on a live table?', 'my system test went flaky after I added a Turbo Frame', 'should this be Sidekiq or Solid Queue?', 'scaffold un CRUD en Rails', 'arreglar una consulta ActiveRecord', 'aquesta migració és segura en producció?'. NOT plain Ruby scripts/gems/CLIs with no Rails loaded (that is ruby).",
3688
+ "description": "Use when building or maintaining a Ruby on Rails app — models, controllers, views, routes and migrations; ActiveRecord associations, scopes and query performance; Hotwire (Turbo and Stimulus) UI; Active Job or Solid Queue background work; and Rails tests. Covers N+1 queries, migration safety on live tables, and flaky system tests around Turbo Frames. NOT plain Ruby scripts, gems or CLIs with no Rails loaded (that is `ruby`).",
3689
3689
  "tags": [
3690
3690
  "rails",
3691
3691
  "activerecord",
@@ -3706,7 +3706,7 @@
3706
3706
  },
3707
3707
  {
3708
3708
  "id": "railway",
3709
- "description": "Use when deploying an app to Railway — pushing a repo or running railway up, provisioning a managed database, wiring env and reference variables, attaching a volume, or fixing a Railway deploy that builds but won't serve. Triggers: 'deploy this on Railway', 'railway up', 'add Postgres to Railway', 'railway.json healthcheck path', 'my Railway service binds localhost and 502s', 'reference DATABASE_URL across two services', 'two Railway services need to talk privately', 'desplegar en Railway', 'mi servicio de Railway no arranca'. NOT Render (that is render), NOT Fly machines (that is fly-io), NOT self-hosted PaaS on your own box (that is coolify).",
3709
+ "description": "Use when deploying an app to Railway — pushing a repo or running railway up, provisioning a managed database, wiring env and reference variables across services, attaching a volume, or fixing a deploy that builds but will not serve. NOT Render (that is `render`), NOT Fly machines (that is `fly-io`), NOT a self-hosted PaaS on your own box (that is `coolify`).",
3710
3710
  "tags": [
3711
3711
  "railway",
3712
3712
  "paas",
@@ -3772,7 +3772,7 @@
3772
3772
  },
3773
3773
  {
3774
3774
  "id": "redis",
3775
- "description": "Use when using Redis (or Valkey/ElastiCache/Upstash/Dragonfly/Memorystore — any Redis-protocol store) as a cache, queue, rate limiter, or distributed lock and you need it CORRECT, not just connected: stampede-proof caching, locks that don't release someone else's hold, race-free rate limits, jobs that survive a worker crash. Triggers: 'cache stampede', 'thundering herd', 'distributed lock', 'SET NX PX', 'Redlock', 'fencing token', 'rate limiter race', 'INCR then EXPIRE', 'BullMQ stalled jobs', 'XREADGROUP / XAUTOCLAIM', 'maxmemory-policy', 'KEYS * in prod', 'lock released by the wrong owner', 'limitador de peticiones', 'bloqueig distribuït', 'la cau s'invalida malament'. NOT durable SQL queues with SELECT FOR UPDATE SKIP LOCKED (that is postgresdb), NOT vector similarity search over embeddings (that is vector-db).",
3775
+ "description": "Use when using Redis or any Redis-protocol store (Valkey, ElastiCache, Upstash, Dragonfly, Memorystore) as a cache, queue, rate limiter or distributed lock and it has to be CORRECT rather than merely connected — stampede-proof caching, locks that cannot release someone else's hold, race-free rate limits, and jobs that survive a worker crash. NOT durable SQL queues with SELECT FOR UPDATE SKIP LOCKED (that is `postgresdb`), NOT vector similarity search over embeddings (that is `vector-db`).",
3776
3776
  "tags": [
3777
3777
  "redis",
3778
3778
  "valkey",
@@ -3797,7 +3797,7 @@
3797
3797
  },
3798
3798
  {
3799
3799
  "id": "remotion-video",
3800
- "description": "Use when you need to render an actual video file with Remotion — React compositions, slide/fade transitions, burned-in word-by-word captions from a transcript, automatic silence removal, b-roll overlays, and a final MP4/MOV out of `npx remotion render`. Covers project scaffold, the Composition/Sequence/TransitionSeries graph, the Whisper.cpp → toCaptions → createTikTokStyleCaptions pipeline, and headless CI renders. Triggers: 'render my script and voiceover into an MP4 with Remotion', 'burn TikTok-style word-by-word captions from a Whisper transcript', 'add slide and fade transitions between scenes programmatically', 'genera el vídeo final con subtítulos quemados', 'quita los silencios del recording automáticamente', 'renderitza la composició a MP4 amb Remotion'. NOT writing the script, hook, beats, or caption text (that is video-shorts), NOT mastering audio to LUFS or building an RSS feed (that is podcast), NOT structuring the narrative arc (that is course-storytelling).",
3800
+ "description": "Use when you need to render an actual video file with Remotion — React compositions, the Composition/Sequence/TransitionSeries graph, transitions, burned-in word-by-word captions from a transcript, automatic silence removal, b-roll overlays, headless CI renders, and a final MP4 or MOV. NOT writing the script, hook, beats or caption text (that is `video-shorts`), NOT mastering audio to LUFS or building an RSS feed (that is `podcast`), NOT structuring the narrative arc (that is `course-storytelling`).",
3801
3801
  "tags": [
3802
3802
  "remotion",
3803
3803
  "video-rendering",
@@ -3818,7 +3818,7 @@
3818
3818
  },
3819
3819
  {
3820
3820
  "id": "render",
3821
- "description": "Use when deploying or fixing an app on Render (render.com) — web services, background workers, cron jobs, private services, managed Postgres/Key-Value, and especially the render.yaml Blueprint. Use when a deploy fails with 'no open ports detected' or returns 502 on first deploy, a free service cold-starts after going idle, or a free Postgres is about to expire and take its data. Triggers: 'deploy to Render', 'write a render.yaml', 'render blueprint', 'Render background worker', 'Render cron job', 'no open ports detected', 'wire DATABASE_URL between Render services', 'why does my free Render service take 30 seconds to wake', 'desplegar en Render', 'configurar render.yaml', 'mi servicio en Render da 502'. NOT generic ship/release flow (that is deployment) and NOT another PaaS like railway or fly-io.",
3821
+ "description": "Use when deploying or fixing an app on Render — web services, background workers, cron jobs, private services, managed Postgres and Key-Value, and especially the render.yaml Blueprint. Covers deploys that fail with no open ports detected, 502s on first deploy, free-tier cold starts, and a free Postgres about to expire with its data. NOT the generic ship and release flow (that is `deployment`), NOT another PaaS such as `railway` or `fly-io`.",
3822
3822
  "tags": [
3823
3823
  "render",
3824
3824
  "paas",
@@ -3840,7 +3840,7 @@
3840
3840
  },
3841
3841
  {
3842
3842
  "id": "replicate",
3843
- "description": "Use when running, packaging, deploying or scaling a model on the Replicate platform from code — choosing blocking run vs async predictions, handling FileOutput, wiring deployments with warm/private endpoints and autoscaling, packaging with Cog, verifying webhooks, or cutting GPU spend. Triggers: 'run flux on Replicate from Python', 'my prediction takes 8 minutes and my request times out', 'keep an instance warm so users don't hit cold starts', 'cog push fails', 'verify the webhook came from Replicate', 'desplegar mi modelo en Replicate con endpoint privado', 'empaquetar mi modelo con Cog'. NOT crafting image prompts/params or picking image model families (that is replicate-images).",
3843
+ "description": "Use when running, packaging, deploying or scaling a model on the Replicate platform from code — blocking run versus async predictions, handling FileOutput, deployments with warm private endpoints and autoscaling, packaging with Cog, verifying webhook signatures, and cutting GPU spend. NOT crafting image prompts and parameters or picking image model families (that is `replicate-images`).",
3844
3844
  "tags": [
3845
3845
  "replicate",
3846
3846
  "cog",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ericrisco/rsc",
3
- "version": "0.1.61",
3
+ "version": "0.1.63",
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: open-weights
3
- description: "Use when choosing an open-weight LLM and clearing it for use — which family and size fit a task, hardware and budget, and above all whether the license lets you ship (Llama, Qwen, Mistral/Mixtral, Gemma, DeepSeek, Phi, gpt-oss, and others). Owns the license-CLASS map (OSI-open Apache/MIT vs custom-community like Llama/Gemma vs non-commercial/restricted like the original Codestral) and the always-verify-the-model-card rule, plus size-to-VRAM budgeting and quant formats (GGUF/AWQ/GPTQ, what Q4_K_M means). Triggers: 'which open model should I use', 'can I use Llama/Gemma commercially', 'is Qwen Apache-2.0', 'what open LLM fits a 24GB GPU', 'is this license safe to ship in a product', 'quin model obert puc fer servir legalment'. NOT how to download or host on HF (that is huggingface), NOT running it locally (that is ollama), NOT serving at throughput (that is vllm), NOT fine-tuning it (that is finetuning) — this layer only tells you WHICH model and whether the license permits it, then hands off."
3
+ description: "Use when choosing an open-weight LLM and clearing it for use — which family and size fit the task, the hardware and the budget, and above all whether the license permits shipping. Owns the license-class map (OSI-open versus custom-community versus non-commercial), the always-verify-the-model-card rule, size-to-VRAM budgeting and the quant formats. This layer decides WHICH model and whether the license allows it, then hands off. NOT downloading or hosting on the Hub (that is `huggingface`), NOT running it locally (that is `ollama`), NOT serving at throughput (that is `vllm`), NOT fine-tuning it (that is `finetuning`)."
4
4
  tags: [open-weights, open-source-llm, model-selection, model-licenses, llama-qwen-mistral-gemma]
5
5
  recommends: [huggingface, ollama, finetuning, vllm]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: people-ops
3
- description: "Use when the offer is signed and you now run the person — building an onboarding plan (preboarding → Day 1 → 30/60/90 ramp), drafting or auditing an internal policy or employee-handbook section (PTO, remote/hybrid, conduct, leave, expenses), standing up the recurring people rhythm (weekly 1:1s, review/goal cycle, headcount), or offboarding a leaver. Triggers: 'build an onboarding plan with a 30/60/90', 'draft a remote-work policy', 'the offer's signed, now what do I need ready before day one?', 'this handbook reads like a contract', 'set up our 1:1 and review cadence', 'someone's leaving — offboarding checklist', 'what HR do we even need?', 'plan de onboarding para el nuevo fichaje', 'redacta la política de teletreball'. NOT sourcing/interviewing/the offer itself (that is hiring)."
3
+ description: "Use when the offer is signed and you now have to run the person — an onboarding plan from preboarding through the 30/60/90 ramp, drafting or auditing an internal policy or handbook section, standing up the recurring people rhythm (1:1s, review and goal cycles, headcount), or offboarding a leaver. NOT sourcing, interviewing or the offer itself (that is `hiring`)."
4
4
  tags: [people-ops, hr, onboarding, employee-handbook, policy, offboarding, one-on-ones, retention]
5
5
  recommends: [hiring, contracts, gdpr-privacy, sop-builder, project-ops, e-signature]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: phoenix
3
- description: "Use when building an Elixir web app with Phoenix — contexts, Ecto schemas/changesets/migrations, LiveView, channels, generators and Phoenix-flavored tests — or wiring up the boundary between domain logic and the web layer. Triggers: 'mix phx.new', 'phx.gen.live', 'phx.gen.auth', 'build a LiveView CRUD', 'Ecto changeset', 'Phoenix channel / PubSub', 'how do I structure a context', non-obvious 'my LiveView re-renders the whole list every time one row is added', 'every post fires a separate query for its author' (N+1), Catalan 'crea un context Comandes i un LiveView per gestionar-les amb acces per usuari', Spanish 'autenticacion sin contrasena con phx.gen.auth / como separo el contexto del controlador'. NOT pure OTP — GenServers, supervision trees, releases with no web/Ecto layer (that is elixir)."
3
+ description: "Use when building an Elixir web app with Phoenix — contexts, Ecto schemas, changesets and migrations, LiveView, channels and PubSub, the generators, and the boundary between domain logic and the web layer. Covers the classic LiveView over-rendering and Ecto N+1 traps. NOT pure OTP work with no web or Ecto layer — GenServers, supervision trees, releases (that is `elixir`)."
4
4
  tags: [phoenix, elixir, liveview, ecto, channels, contexts, web, beam]
5
5
  recommends: [elixir, postgresdb, docker]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: php
3
- description: "Use when writing, reviewing, or modernizing PHP (8.3/8.4/8.5) beyond Laravel - strict types, union/intersection types, readonly classes, backed enums, PHP 8.4 property hooks and asymmetric visibility, PHP 8.5 pipe operator and clone-with, Composer + PSR-4 autoloading, PER-CS style, PSR-3/7/11/15 interop, and the quality toolchain (PHPStan max, Pint/PHP-CS-Fixer, Rector, PHPUnit 12 / Pest 4). Triggers: \"write a PHP value object\", \"set up composer.json with PSR-4\", \"convert getters to property hooks\", \"is this idiomatic modern PHP or 2015 code\", \"configura PHPStan a nivel max\", editing .php / composer.json / phpstan.neon. NOT Eloquent/Blade/Artisan (that is laravel)."
3
+ description: "Use when writing, reviewing or modernizing PHP (8.3-8.5) outside Laravel — strict types, union and intersection types, readonly classes, backed enums, property hooks and asymmetric visibility, the pipe operator and clone-with, Composer with PSR-4, PER-CS style, PSR interop, and the quality toolchain (PHPStan, Pint, Rector, PHPUnit/Pest). NOT Eloquent, Blade or Artisan (that is `laravel`)."
4
4
  tags: [php, php8, composer, psr, enums, types, static-analysis]
5
5
  recommends: [laravel, secure-coding, mysql]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pitch-deck
3
- description: "Use when building or fixing an investor fundraising deck — the narrative arc, the slide-by-slide story, and the small set of numbers that actually move an investment decision, for a pre-seed, seed, or Series A raise (and the close cousin, a YC/accelerator application deck). Decides WHAT goes on each slide, in what order, and with which metric; sequences the story the way a VC evaluates risk (problem → solution → why-now → market → traction → team → ask). Triggers: 'build our seed pitch deck', 'what slides do I need to raise pre-seed', 'write the traction slide and the ask slide', 'investors lose interest after slide 3', 'tighten the fundraising story before demo day', 'monta el pitch deck para inversores', 'prepara la ronda seed', 'el deck per a la presentació a inversors'. NOT rendering/exporting/theming the slides into a designed PDF or PPTX (that is presentations), NOT the projection spreadsheet behind the numbers (that is financial-model)."
3
+ description: "Use when building or fixing an investor fundraising deck — the narrative arc, the slide-by-slide story, and the few numbers that actually move an investment decision, for a pre-seed, seed or Series A raise (or an accelerator application deck). Decides what goes on each slide, in what order, with which metric, sequenced the way an investor evaluates risk. NOT rendering, theming or exporting the slides into a designed PDF or PPTX (that is `presentations`), NOT the projection spreadsheet behind the numbers (that is `financial-model`)."
4
4
  tags: [pitch-deck, fundraising, investor-deck, startup]
5
5
  recommends: [presentations, financial-model, investor-materials, unit-economics, fundraising, marketing]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: podcast
3
- description: "Use when planning, recording, editing, or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings (double-ender, 48 kHz WAV multitrack), the loudness master, the Podcasting 2.0 sidecars (chapters.json, transcript.vtt), the RSS <item>, and timestamped SEO show notes. Use when audio sounds quiet on Spotify but loud on Apple, a feed is rejected for bad artwork, or chapters and transcripts will not show in the app. Triggers: 'plan the run-of-show for a 40-minute interview', 'what LUFS for Apple and Spotify', 'master once to -16 LUFS', 'wire the transcript tag', 'valid RSS item with chapters and transcript for episode 14', 'generate a chapters.json from the double-ender locals', 'write timestamped SEO show notes', 'masteritzar l'àudio del podcast', 'escribe las show notes con timestamps'. NOT clipping the episode into social posts (that is social-publisher) and NOT cutting the vertical short (that is video-shorts)."
3
+ description: "Use when planning, recording, editing or publishing one podcast episode end to end — the run-of-show and guest brief, recording settings, the loudness master, the Podcasting 2.0 sidecars for chapters and transcripts, the RSS item, and timestamped SEO show notes. Covers audio that is quiet on one platform and loud on another, feeds rejected for bad artwork, and chapters that will not appear in the app. NOT clipping the episode into social posts (that is `social-publisher`), NOT cutting the vertical short (that is `video-shorts`)."
4
4
  tags: [podcast, audio, rss, show-notes, podcasting-2.0]
5
5
  recommends: [social-publisher, video-shorts, newsletter, brand-voice, content-engine]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: press-kit
3
- description: "Use when writing a press release or assembling a media kit a journalist can lift — launches, funding rounds, exec hires, partnerships, milestones, awards, or building an online newsroom; symptoms include 'reads like an ad', no pickup, a buried lede, no quotable line, or a missing dateline/boilerplate/asset. Triggers: 'write a press release', 'put together a press kit / media kit', 'write our boilerplate', 'draft a fact sheet', 'set an embargo on this announcement', the non-obvious 'our release got no coverage / journalists ignored it' and 'make this announcement quotable', and 'redacta una nota de prensa' / 'munta un dossier de premsa per als periodistes'. NOT finding the reporter list to send to (that is lead-gen), NOT the multi-touch pitch cadence (that is cold-outreach), NOT the brand tone-of-voice spec (that is brand-voice), and NOT the owned launch campaign (that is marketing)."
3
+ description: "Use when writing a press release or assembling a media kit a journalist can lift from — launches, funding, exec hires, partnerships, milestones, awards, or an online newsroom. Symptoms include a release that reads like an ad, a buried lede, no quotable line, or a missing dateline, boilerplate or asset. NOT finding the reporter list (that is `lead-gen`), NOT the multi-touch pitch cadence (that is `cold-outreach`), NOT the brand tone-of-voice spec (that is `brand-voice`), NOT the owned launch campaign (that is `marketing`)."
4
4
  tags: [press-release, media-kit, pr, public-relations, boilerplate, embargo, newsroom, journalist-outreach]
5
5
  recommends: [cold-outreach, lead-gen, brand-voice, brand-identity, case-studies, article-writing, marketing, social-publisher, email-connector]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pricing
3
- description: "Use when setting or resetting what a product or service charges and how it is packaged — choosing list price, margin floor, tiers, value metric, pricing model (flat/seat/usage/outcome/hybrid) and discount rules. Triggers: 'what should I charge', 'cómo pongo precio a esto', 'quin preu poso', 'design my pricing tiers', 'good better best packaging', 'we keep discounting away our margin', 'reprice because our AI compute costs jumped', 'localize price for other countries (PPP)', 'per-seat pricing is killing us', 'set a discount floor'. NOT issuing the actual bill (that is invoicing) and NOT implementing prices in a billing system (that is stripe)."
3
+ description: "Use when setting or resetting what a product or service charges and how it is packaged — list price, margin floor, tiers, the value metric, the pricing model (flat, seat, usage, outcome or hybrid), discount rules and purchasing-power localisation. NOT issuing the actual bill (that is `invoicing`), NOT implementing prices in a billing system (that is `stripe`)."
4
4
  tags: [pricing, packaging, margin, tiers, discounting, value-metric, willingness-to-pay, ppp]
5
5
  recommends: [invoicing, stripe, unit-economics, proposals, forecasting, sales-pipeline]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: project-ops
3
- description: "Use when an operator wants to run a small or mid project from a flat file — dated milestones each with one named owner and a binary done-test, RAG status driven by rules, a RAID log, slippage detection, and a 2-minute weekly status report — instead of standing up Jira/Asana. Triggers: 'set up milestones with owners and due dates', 'write this week's status report', 'who do I chase if the launch slips', 'everything is green and I don't trust it — what should be amber', 'which milestones are trending late before they miss', 'start a RAID log', 'munta'm un seguiment de projecte amb fites i estat RAG', 'informe d'estat setmanal', 'qui és l'owner de cada fita', 'estado del proyecto en rojo/ámbar/verde'. NOT sequencing the engineering work inside one approved plan (that is tasks)."
3
+ description: "Use when an operator wants to run a small or mid-sized project from a flat file instead of standing up Jira or Asana — dated milestones each with one named owner and a binary done-test, rule-driven RAG status, a RAID log, slippage detection, and a two-minute weekly status report. NOT sequencing the engineering work inside one approved plan (that is `tasks`)."
4
4
  tags: [project-management, milestones, status-tracking]
5
5
  recommends: [tasks, decision-records, meeting-notes, sop-builder, dashboard]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: proposals
3
- description: "Use when writing the document a buyer reads to say yes — a commercial proposal or Statement of Work (SOW), turning discovery notes into a scoped priced doc, adding Good/Better/Best tiers, or fixing a proposal that won't close. Triggers: 'write a proposal for this client', 'draft a SOW / scope of work', 'turn this discovery call into a proposal', 'add pricing tiers so the middle one wins', 'why isn't this proposal closing', 'scope this so the client can't keep adding free work', 'propuesta comercial / propuesta de servicios', 'proposta comercial / abast del projecte'. NOT the binding legal agreement, MSA, liability/IP clauses (that is contracts), NOT deciding what number to charge or the margin (that is pricing), NOT the slide deck that pitches the vision to a room (that is pitch-deck)."
3
+ description: "Use when writing the document a buyer reads to say yes — a commercial proposal or Statement of Work, turning discovery notes into a scoped and priced document, adding tiers so the middle one wins, or diagnosing a proposal that will not close. NOT the binding legal agreement with its liability and IP clauses (that is `contracts`), NOT deciding the number or the margin (that is `pricing`), NOT the deck that pitches the vision to a room (that is `pitch-deck`)."
4
4
  tags: [proposals, sow, sales, scope]
5
5
  recommends: [contracts, pricing, invoicing, sales-pipeline, pitch-deck, brand-voice]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rails
3
- description: "Use when building or maintaining a Ruby on Rails app — generating or editing app/ models, controllers, views, config/routes.rb, db/migrate; writing ActiveRecord associations/scopes/queries; building Hotwire (Turbo + Stimulus) UI; Active Job / Solid Queue jobs; or Rails tests. Triggers: 'rails generate', 'fix this N+1', 'add a Turbo Stream', 'belongs_to / has_many', 'is this migration safe on a live table?', 'my system test went flaky after I added a Turbo Frame', 'should this be Sidekiq or Solid Queue?', 'scaffold un CRUD en Rails', 'arreglar una consulta ActiveRecord', 'aquesta migració és segura en producció?'. NOT plain Ruby scripts/gems/CLIs with no Rails loaded (that is ruby)."
3
+ description: "Use when building or maintaining a Ruby on Rails app — models, controllers, views, routes and migrations; ActiveRecord associations, scopes and query performance; Hotwire (Turbo and Stimulus) UI; Active Job or Solid Queue background work; and Rails tests. Covers N+1 queries, migration safety on live tables, and flaky system tests around Turbo Frames. NOT plain Ruby scripts, gems or CLIs with no Rails loaded (that is `ruby`)."
4
4
  tags: [rails, activerecord, hotwire, turbo, stimulus, solid-queue, minitest]
5
5
  recommends: [ruby, postgresdb, testing-web, deployment, db-migrations]
6
6
  profiles: []
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: railway
3
- description: "Use when deploying an app to Railway — pushing a repo or running railway up, provisioning a managed database, wiring env and reference variables, attaching a volume, or fixing a Railway deploy that builds but won't serve. Triggers: 'deploy this on Railway', 'railway up', 'add Postgres to Railway', 'railway.json healthcheck path', 'my Railway service binds localhost and 502s', 'reference DATABASE_URL across two services', 'two Railway services need to talk privately', 'desplegar en Railway', 'mi servicio de Railway no arranca'. NOT Render (that is render), NOT Fly machines (that is fly-io), NOT self-hosted PaaS on your own box (that is coolify)."
3
+ description: "Use when deploying an app to Railway — pushing a repo or running railway up, provisioning a managed database, wiring env and reference variables across services, attaching a volume, or fixing a deploy that builds but will not serve. NOT Render (that is `render`), NOT Fly machines (that is `fly-io`), NOT a self-hosted PaaS on your own box (that is `coolify`)."
4
4
  tags: [railway, paas, deploy, services, env-vars, volumes, databases, private-networking, railway-json]
5
5
  recommends: [render, fly-io, coolify, postgresdb, db-migrations, domains-dns, deployment, docker]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: redis
3
- description: "Use when using Redis (or Valkey/ElastiCache/Upstash/Dragonfly/Memorystore — any Redis-protocol store) as a cache, queue, rate limiter, or distributed lock and you need it CORRECT, not just connected: stampede-proof caching, locks that don't release someone else's hold, race-free rate limits, jobs that survive a worker crash. Triggers: 'cache stampede', 'thundering herd', 'distributed lock', 'SET NX PX', 'Redlock', 'fencing token', 'rate limiter race', 'INCR then EXPIRE', 'BullMQ stalled jobs', 'XREADGROUP / XAUTOCLAIM', 'maxmemory-policy', 'KEYS * in prod', 'lock released by the wrong owner', 'limitador de peticiones', 'bloqueig distribuït', 'la cau s'invalida malament'. NOT durable SQL queues with SELECT FOR UPDATE SKIP LOCKED (that is postgresdb), NOT vector similarity search over embeddings (that is vector-db)."
3
+ description: "Use when using Redis or any Redis-protocol store (Valkey, ElastiCache, Upstash, Dragonfly, Memorystore) as a cache, queue, rate limiter or distributed lock and it has to be CORRECT rather than merely connected — stampede-proof caching, locks that cannot release someone else's hold, race-free rate limits, and jobs that survive a worker crash. NOT durable SQL queues with SELECT FOR UPDATE SKIP LOCKED (that is `postgresdb`), NOT vector similarity search over embeddings (that is `vector-db`)."
4
4
  tags: [redis, valkey, cache, rate-limiting, distributed-locks, queues, bullmq, streams, lua, data-infra]
5
5
  recommends: [postgresdb, vector-db, clickhouse-analytics, scaling, nodejs, fly-io]
6
6
  profiles: []
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: remotion-video
3
- description: "Use when you need to render an actual video file with Remotion — React compositions, slide/fade transitions, burned-in word-by-word captions from a transcript, automatic silence removal, b-roll overlays, and a final MP4/MOV out of `npx remotion render`. Covers project scaffold, the Composition/Sequence/TransitionSeries graph, the Whisper.cpp → toCaptions → createTikTokStyleCaptions pipeline, and headless CI renders. Triggers: 'render my script and voiceover into an MP4 with Remotion', 'burn TikTok-style word-by-word captions from a Whisper transcript', 'add slide and fade transitions between scenes programmatically', 'genera el vídeo final con subtítulos quemados', 'quita los silencios del recording automáticamente', 'renderitza la composició a MP4 amb Remotion'. NOT writing the script, hook, beats, or caption text (that is video-shorts), NOT mastering audio to LUFS or building an RSS feed (that is podcast), NOT structuring the narrative arc (that is course-storytelling)."
3
+ description: "Use when you need to render an actual video file with Remotion — React compositions, the Composition/Sequence/TransitionSeries graph, transitions, burned-in word-by-word captions from a transcript, automatic silence removal, b-roll overlays, headless CI renders, and a final MP4 or MOV. NOT writing the script, hook, beats or caption text (that is `video-shorts`), NOT mastering audio to LUFS or building an RSS feed (that is `podcast`), NOT structuring the narrative arc (that is `course-storytelling`)."
4
4
  tags: [remotion, video-rendering, react, captions, ffmpeg, whisper, youtube]
5
5
  recommends: [video-shorts, podcast, course-storytelling, youtube-packaging, nextjs]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: render
3
- description: "Use when deploying or fixing an app on Render (render.com) — web services, background workers, cron jobs, private services, managed Postgres/Key-Value, and especially the render.yaml Blueprint. Use when a deploy fails with 'no open ports detected' or returns 502 on first deploy, a free service cold-starts after going idle, or a free Postgres is about to expire and take its data. Triggers: 'deploy to Render', 'write a render.yaml', 'render blueprint', 'Render background worker', 'Render cron job', 'no open ports detected', 'wire DATABASE_URL between Render services', 'why does my free Render service take 30 seconds to wake', 'desplegar en Render', 'configurar render.yaml', 'mi servicio en Render da 502'. NOT generic ship/release flow (that is deployment) and NOT another PaaS like railway or fly-io."
3
+ description: "Use when deploying or fixing an app on Render — web services, background workers, cron jobs, private services, managed Postgres and Key-Value, and especially the render.yaml Blueprint. Covers deploys that fail with no open ports detected, 502s on first deploy, free-tier cold starts, and a free Postgres about to expire with its data. NOT the generic ship and release flow (that is `deployment`), NOT another PaaS such as `railway` or `fly-io`."
4
4
  tags: [render, paas, deployment, render-yaml, cron, background-worker, infrastructure-as-code]
5
5
  recommends: [deployment, postgresdb, docker, domains-dns, github-actions, scaling]
6
6
  origin: risco
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: replicate
3
- description: "Use when running, packaging, deploying or scaling a model on the Replicate platform from code — choosing blocking run vs async predictions, handling FileOutput, wiring deployments with warm/private endpoints and autoscaling, packaging with Cog, verifying webhooks, or cutting GPU spend. Triggers: 'run flux on Replicate from Python', 'my prediction takes 8 minutes and my request times out', 'keep an instance warm so users don't hit cold starts', 'cog push fails', 'verify the webhook came from Replicate', 'desplegar mi modelo en Replicate con endpoint privado', 'empaquetar mi modelo con Cog'. NOT crafting image prompts/params or picking image model families (that is replicate-images)."
3
+ description: "Use when running, packaging, deploying or scaling a model on the Replicate platform from code — blocking run versus async predictions, handling FileOutput, deployments with warm private endpoints and autoscaling, packaging with Cog, verifying webhook signatures, and cutting GPU spend. NOT crafting image prompts and parameters or picking image model families (that is `replicate-images`)."
4
4
  tags: [replicate, cog, deployments, webhooks, model-serving, gpu, ai-infra]
5
5
  recommends: [replicate-images, modal, runpod, huggingface, webhooks, cost-tracking, docker]
6
6
  origin: risco