rsc-universal 0.1.1
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/LICENSE +21 -0
- package/README.md +279 -0
- package/manifest.json +4761 -0
- package/package.json +59 -0
- package/schema/frontmatter.schema.json +12 -0
- package/scripts/build-manifest.js +72 -0
- package/scripts/consult.js +106 -0
- package/scripts/detect-repo.js +118 -0
- package/scripts/doctor.js +21 -0
- package/scripts/eval-lint.sh +179 -0
- package/scripts/install-apply.js +52 -0
- package/scripts/install-plan.js +13 -0
- package/scripts/lib/behavior-score.js +103 -0
- package/scripts/lib/frontmatter.js +47 -0
- package/scripts/lib/harden-policy.js +41 -0
- package/scripts/lib/manifest.js +18 -0
- package/scripts/lib/recommend.js +36 -0
- package/scripts/lib/registry.js +110 -0
- package/scripts/lib/result-envelope.js +35 -0
- package/scripts/lib/state.js +12 -0
- package/scripts/lib/ui.js +17 -0
- package/scripts/reviewer-guard.sh +67 -0
- package/scripts/rsc.js +108 -0
- package/scripts/skill-behavior-eval.js +33 -0
- package/scripts/skill-behavior-eval.workflow.js +136 -0
- package/scripts/skill-behavior-rubric.md +63 -0
- package/scripts/skill-harden-rubric.md +40 -0
- package/scripts/skill-harden.workflow.js +161 -0
- package/scripts/skill-rubric.md +39 -0
- package/scripts/skill-scoreboard.workflow.js +35 -0
- package/skills/ab-testing/SKILL.md +191 -0
- package/skills/ab-testing/evals/README.md +8 -0
- package/skills/ab-testing/evals/cases.yaml +49 -0
- package/skills/ab-testing/references/pitfalls.md +74 -0
- package/skills/ab-testing/references/sample-size-and-cuped.md +128 -0
- package/skills/ab-testing/scripts/verify.sh +89 -0
- package/skills/accessibility/SKILL.md +218 -0
- package/skills/accessibility/evals/README.md +3 -0
- package/skills/accessibility/evals/cases.yaml +47 -0
- package/skills/accessibility/references/aria-patterns.md +113 -0
- package/skills/accessibility/references/wcag22-checklist.md +83 -0
- package/skills/accessibility/scripts/verify.sh +103 -0
- package/skills/ads/SKILL.md +175 -0
- package/skills/ads/evals/README.md +15 -0
- package/skills/ads/evals/cases.yaml +58 -0
- package/skills/ads/references/platform-specs.md +73 -0
- package/skills/ads/references/roas-model.md +77 -0
- package/skills/ads/scripts/verify.sh +210 -0
- package/skills/agent-eval/SKILL.md +213 -0
- package/skills/agent-eval/evals/README.md +12 -0
- package/skills/agent-eval/evals/cases.yaml +45 -0
- package/skills/agent-eval/references/judge-design.md +118 -0
- package/skills/agent-eval/references/runner-and-gate.md +183 -0
- package/skills/agent-eval/scripts/verify.sh +161 -0
- package/skills/agent-safety/SKILL.md +176 -0
- package/skills/agent-safety/evals/README.md +12 -0
- package/skills/agent-safety/evals/cases.yaml +46 -0
- package/skills/agent-safety/references/threat-model.md +51 -0
- package/skills/ai-media/SKILL.md +196 -0
- package/skills/ai-media/evals/README.md +3 -0
- package/skills/ai-media/evals/cases.yaml +45 -0
- package/skills/ai-media/references/ffmpeg-assembly.md +117 -0
- package/skills/ai-media/references/models-and-params.md +78 -0
- package/skills/ai-media/scripts/verify.sh +103 -0
- package/skills/analytics/SKILL.md +219 -0
- package/skills/analytics/evals/README.md +9 -0
- package/skills/analytics/evals/cases.yaml +53 -0
- package/skills/analytics/references/event-taxonomy.md +75 -0
- package/skills/analytics/references/ga4-setup.md +122 -0
- package/skills/analytics/references/posthog-setup.md +100 -0
- package/skills/analytics/scripts/verify.sh +95 -0
- package/skills/analyze/SKILL.md +136 -0
- package/skills/analyze/evals/README.md +72 -0
- package/skills/analyze/evals/cases.yaml +74 -0
- package/skills/angular/SKILL.md +288 -0
- package/skills/angular/evals/README.md +3 -0
- package/skills/angular/evals/cases.yaml +38 -0
- package/skills/angular/references/migration.md +81 -0
- package/skills/angular/references/signals-rxjs.md +92 -0
- package/skills/angular/scripts/verify.sh +122 -0
- package/skills/api-connector-builder/SKILL.md +285 -0
- package/skills/api-connector-builder/evals/README.md +11 -0
- package/skills/api-connector-builder/evals/cases.yaml +47 -0
- package/skills/api-connector-builder/references/auth-flows.md +132 -0
- package/skills/api-connector-builder/references/pagination.md +144 -0
- package/skills/api-connector-builder/scripts/verify.sh +172 -0
- package/skills/api-design/SKILL.md +189 -0
- package/skills/api-design/evals/README.md +3 -0
- package/skills/api-design/evals/cases.yaml +45 -0
- package/skills/api-design/references/graphql-design.md +70 -0
- package/skills/api-design/references/openapi-contract.md +86 -0
- package/skills/api-design/references/rest-conventions.md +63 -0
- package/skills/api-design/references/versioning-and-evolution.md +49 -0
- package/skills/api-design/scripts/verify.sh +138 -0
- package/skills/article-writing/SKILL.md +175 -0
- package/skills/article-writing/evals/README.md +3 -0
- package/skills/article-writing/evals/cases.yaml +47 -0
- package/skills/article-writing/references/ai-tell-banlist.md +114 -0
- package/skills/article-writing/references/on-page-seo.md +133 -0
- package/skills/article-writing/scripts/verify.sh +165 -0
- package/skills/astro/SKILL.md +275 -0
- package/skills/astro/evals/README.md +3 -0
- package/skills/astro/evals/cases.yaml +41 -0
- package/skills/astro/references/content-layer.md +118 -0
- package/skills/astro/references/deploy-and-integrations.md +163 -0
- package/skills/astro/scripts/verify.sh +137 -0
- package/skills/author-skill/SKILL.md +206 -0
- package/skills/author-skill/evals/README.md +66 -0
- package/skills/author-skill/evals/cases.yaml +75 -0
- package/skills/author-skill/references/description-recipe.md +84 -0
- package/skills/author-skill/references/eval-authoring.md +74 -0
- package/skills/author-skill/references/rsc-conventions.md +91 -0
- package/skills/automation-flows/SKILL.md +132 -0
- package/skills/automation-flows/evals/README.md +5 -0
- package/skills/automation-flows/evals/cases.yaml +44 -0
- package/skills/automation-flows/references/error-handling.md +58 -0
- package/skills/automation-flows/references/n8n-workflow-json.md +63 -0
- package/skills/automation-flows/scripts/verify.sh +78 -0
- package/skills/aws-essentials/SKILL.md +223 -0
- package/skills/aws-essentials/evals/README.md +10 -0
- package/skills/aws-essentials/evals/cases.yaml +44 -0
- package/skills/aws-essentials/references/iam-least-privilege.md +134 -0
- package/skills/aws-essentials/references/rds-cloudfront-recipes.md +127 -0
- package/skills/aws-essentials/scripts/verify.sh +99 -0
- package/skills/backups/SKILL.md +137 -0
- package/skills/backups/evals/README.md +3 -0
- package/skills/backups/evals/cases.yaml +42 -0
- package/skills/backups/references/engine-recipes.md +121 -0
- package/skills/backups/references/restore-runbook.md +65 -0
- package/skills/backups/scripts/verify.sh +80 -0
- package/skills/bash-scripting/SKILL.md +231 -0
- package/skills/bash-scripting/evals/README.md +3 -0
- package/skills/bash-scripting/evals/cases.yaml +45 -0
- package/skills/bash-scripting/references/portability.md +97 -0
- package/skills/bash-scripting/scripts/verify.sh +140 -0
- package/skills/bookkeeping/SKILL.md +184 -0
- package/skills/bookkeeping/evals/README.md +5 -0
- package/skills/bookkeeping/evals/cases.yaml +52 -0
- package/skills/bookkeeping/references/chart-of-accounts.md +87 -0
- package/skills/bookkeeping/references/reconciliation-playbook.md +54 -0
- package/skills/bookkeeping/references/tricky-transactions.md +192 -0
- package/skills/brand-identity/SKILL.md +161 -0
- package/skills/brand-identity/evals/README.md +14 -0
- package/skills/brand-identity/evals/cases.yaml +43 -0
- package/skills/brand-identity/references/color-and-tokens.md +129 -0
- package/skills/brand-identity/references/logo-and-assets.md +117 -0
- package/skills/brand-identity/scripts/verify.sh +224 -0
- package/skills/brand-voice/SKILL.md +183 -0
- package/skills/brand-voice/evals/README.md +3 -0
- package/skills/brand-voice/evals/cases.yaml +57 -0
- package/skills/brand-voice/references/voice-guide-template.md +150 -0
- package/skills/brand-voice/references/word-bank.md +61 -0
- package/skills/brand-voice/scripts/verify.sh +190 -0
- package/skills/building-agents/SKILL.md +469 -0
- package/skills/building-agents/evals/README.md +68 -0
- package/skills/building-agents/evals/cases.yaml +60 -0
- package/skills/building-agents/references/agent-loops-and-harness.md +371 -0
- package/skills/building-agents/references/evals-and-observability.md +420 -0
- package/skills/building-agents/references/mcp-servers.md +294 -0
- package/skills/building-agents/references/provider-abstraction.md +489 -0
- package/skills/building-agents/references/tools-and-rag.md +417 -0
- package/skills/building-agents/scripts/verify.sh +121 -0
- package/skills/business-intelligence/SKILL.md +176 -0
- package/skills/business-intelligence/evals/README.md +3 -0
- package/skills/business-intelligence/evals/cases.yaml +43 -0
- package/skills/business-intelligence/references/authoring-semantic-models.md +120 -0
- package/skills/business-intelligence/references/wiring-agents-and-apis.md +79 -0
- package/skills/business-intelligence/scripts/verify.sh +143 -0
- package/skills/calendar-scheduling/SKILL.md +196 -0
- package/skills/calendar-scheduling/evals/README.md +14 -0
- package/skills/calendar-scheduling/evals/cases.yaml +45 -0
- package/skills/calendar-scheduling/references/google-calendar-sync.md +78 -0
- package/skills/calendar-scheduling/references/provider-matrix.md +71 -0
- package/skills/calendar-scheduling/scripts/verify.sh +117 -0
- package/skills/case-studies/SKILL.md +147 -0
- package/skills/case-studies/evals/README.md +3 -0
- package/skills/case-studies/evals/cases.yaml +63 -0
- package/skills/case-studies/references/case-study-skeleton.md +90 -0
- package/skills/case-studies/references/consent-and-substantiation.md +80 -0
- package/skills/case-studies/scripts/verify.sh +161 -0
- package/skills/chatbot/SKILL.md +168 -0
- package/skills/chatbot/evals/README.md +13 -0
- package/skills/chatbot/evals/cases.yaml +43 -0
- package/skills/chatbot/references/handoff-and-sales.md +71 -0
- package/skills/chatbot/references/system-prompt-and-guardrails.md +78 -0
- package/skills/chatbot/scripts/verify.sh +162 -0
- package/skills/chrome-extension/SKILL.md +169 -0
- package/skills/chrome-extension/evals/README.md +12 -0
- package/skills/chrome-extension/evals/cases.yaml +40 -0
- package/skills/chrome-extension/references/store-and-migration.md +84 -0
- package/skills/chrome-extension/scripts/verify.sh +62 -0
- package/skills/clarify/SKILL.md +159 -0
- package/skills/clarify/evals/README.md +70 -0
- package/skills/clarify/evals/cases.yaml +71 -0
- package/skills/clickhouse-analytics/SKILL.md +165 -0
- package/skills/clickhouse-analytics/evals/README.md +3 -0
- package/skills/clickhouse-analytics/evals/cases.yaml +45 -0
- package/skills/clickhouse-analytics/references/ingestion-and-mvs.md +109 -0
- package/skills/clickhouse-analytics/references/query-optimization.md +76 -0
- package/skills/clickhouse-analytics/references/schema-and-engines.md +63 -0
- package/skills/clickhouse-analytics/scripts/verify.sh +109 -0
- package/skills/client-onboarding/SKILL.md +254 -0
- package/skills/client-onboarding/evals/README.md +14 -0
- package/skills/client-onboarding/evals/cases.yaml +40 -0
- package/skills/client-onboarding/references/onboarding-playbook.md +126 -0
- package/skills/cloudflare/SKILL.md +191 -0
- package/skills/cloudflare/evals/README.md +15 -0
- package/skills/cloudflare/evals/cases.yaml +46 -0
- package/skills/cloudflare/references/storage-primitives.md +104 -0
- package/skills/cloudflare/references/wrangler-config.md +91 -0
- package/skills/cloudflare/scripts/verify.sh +133 -0
- package/skills/code-review/SKILL.md +143 -0
- package/skills/code-review/evals/README.md +3 -0
- package/skills/code-review/evals/cases.yaml +55 -0
- package/skills/code-review/references/pr-workflow.md +67 -0
- package/skills/codebase-onboarding/SKILL.md +133 -0
- package/skills/codebase-onboarding/evals/README.md +3 -0
- package/skills/codebase-onboarding/evals/cases.yaml +69 -0
- package/skills/codebase-onboarding/references/recon-playbook.md +57 -0
- package/skills/codebase-onboarding/scripts/verify.sh +54 -0
- package/skills/cold-outreach/SKILL.md +206 -0
- package/skills/cold-outreach/evals/README.md +3 -0
- package/skills/cold-outreach/evals/cases.yaml +60 -0
- package/skills/cold-outreach/references/compliance-footer.md +50 -0
- package/skills/cold-outreach/references/hook-derivation.md +73 -0
- package/skills/cold-outreach/references/templates.md +88 -0
- package/skills/cold-outreach/scripts/verify.sh +170 -0
- package/skills/community/SKILL.md +225 -0
- package/skills/community/evals/README.md +3 -0
- package/skills/community/evals/cases.yaml +40 -0
- package/skills/community/references/metrics-and-rituals.md +58 -0
- package/skills/community/references/platform-playbooks.md +64 -0
- package/skills/community/scripts/verify.sh +83 -0
- package/skills/competitor-watch/SKILL.md +193 -0
- package/skills/competitor-watch/evals/README.md +19 -0
- package/skills/competitor-watch/evals/cases.yaml +54 -0
- package/skills/competitor-watch/references/monitoring-config.md +124 -0
- package/skills/competitor-watch/references/tracker-schema.md +79 -0
- package/skills/competitor-watch/scripts/verify.sh +253 -0
- package/skills/compliance/SKILL.md +184 -0
- package/skills/compliance/evals/README.md +14 -0
- package/skills/compliance/evals/cases.yaml +46 -0
- package/skills/compliance/references/frameworks.md +108 -0
- package/skills/compliance/references/operating-rhythm.md +79 -0
- package/skills/compliance/scripts/verify.sh +168 -0
- package/skills/compose-multiplatform/SKILL.md +198 -0
- package/skills/compose-multiplatform/evals/README.md +3 -0
- package/skills/compose-multiplatform/evals/cases.yaml +40 -0
- package/skills/compose-multiplatform/references/ios-interop.md +91 -0
- package/skills/compose-multiplatform/references/project-setup.md +96 -0
- package/skills/compose-multiplatform/scripts/verify.sh +123 -0
- package/skills/constitution/SKILL.md +160 -0
- package/skills/constitution/evals/README.md +68 -0
- package/skills/constitution/evals/cases.yaml +72 -0
- package/skills/constitution/references/constitution-template.md +90 -0
- package/skills/content-engine/SKILL.md +164 -0
- package/skills/content-engine/evals/README.md +17 -0
- package/skills/content-engine/evals/cases.yaml +62 -0
- package/skills/content-engine/references/atomization.md +81 -0
- package/skills/content-engine/references/brief-and-pipeline.md +90 -0
- package/skills/content-engine/scripts/verify.sh +146 -0
- package/skills/context-budget/SKILL.md +132 -0
- package/skills/context-budget/evals/README.md +11 -0
- package/skills/context-budget/evals/cases.yaml +40 -0
- package/skills/context-budget/references/handoff-and-compaction.md +96 -0
- package/skills/continuous-learning/SKILL.md +136 -0
- package/skills/continuous-learning/evals/README.md +16 -0
- package/skills/continuous-learning/evals/cases.yaml +39 -0
- package/skills/continuous-learning/references/lesson-routing.md +106 -0
- package/skills/contracts/SKILL.md +124 -0
- package/skills/contracts/evals/README.md +3 -0
- package/skills/contracts/evals/cases.yaml +42 -0
- package/skills/contracts/references/clause-library.md +129 -0
- package/skills/contracts/references/review-playbook.md +49 -0
- package/skills/contracts/scripts/verify.sh +53 -0
- package/skills/coolify/SKILL.md +201 -0
- package/skills/coolify/evals/README.md +21 -0
- package/skills/coolify/evals/cases.yaml +46 -0
- package/skills/coolify/references/databases-and-backups.md +99 -0
- package/skills/coolify/references/deploy-recipes.md +105 -0
- package/skills/coolify/references/install-and-proxy.md +80 -0
- package/skills/coolify/scripts/verify.sh +123 -0
- package/skills/cost-tracking/SKILL.md +183 -0
- package/skills/cost-tracking/evals/README.md +3 -0
- package/skills/cost-tracking/evals/cases.yaml +45 -0
- package/skills/cost-tracking/references/cloud-caps.md +52 -0
- package/skills/cost-tracking/references/pricing-tables.md +51 -0
- package/skills/cost-tracking/scripts/verify.sh +135 -0
- package/skills/course-builder/SKILL.md +186 -0
- package/skills/course-builder/evals/README.md +16 -0
- package/skills/course-builder/evals/cases.yaml +49 -0
- package/skills/course-builder/references/assessment-design.md +74 -0
- package/skills/course-builder/references/grounding-and-scoping.md +69 -0
- package/skills/course-builder/references/outcomes-and-blooms.md +82 -0
- package/skills/course-builder/scripts/verify.sh +247 -0
- package/skills/course-storytelling/SKILL.md +205 -0
- package/skills/course-storytelling/evals/README.md +54 -0
- package/skills/course-storytelling/evals/cases.yaml +50 -0
- package/skills/course-storytelling/references/brunson-frameworks.md +190 -0
- package/skills/course-storytelling/references/concept-landing-recipe.md +136 -0
- package/skills/course-storytelling/references/course-analysis.md +124 -0
- package/skills/course-storytelling/references/learner-grounding.md +183 -0
- package/skills/course-storytelling/references/mental-models.md +115 -0
- package/skills/course-storytelling/scripts/verify.sh +223 -0
- package/skills/cpp/SKILL.md +349 -0
- package/skills/cpp/evals/README.md +14 -0
- package/skills/cpp/evals/cases.yaml +44 -0
- package/skills/cpp/references/cmake.md +167 -0
- package/skills/cpp/references/move-and-templates.md +130 -0
- package/skills/cpp/references/undefined-behavior.md +86 -0
- package/skills/cpp/scripts/verify.sh +165 -0
- package/skills/csharp-dotnet/SKILL.md +291 -0
- package/skills/csharp-dotnet/evals/README.md +3 -0
- package/skills/csharp-dotnet/evals/cases.yaml +48 -0
- package/skills/csharp-dotnet/references/aspnetcore.md +99 -0
- package/skills/csharp-dotnet/references/async.md +82 -0
- package/skills/csharp-dotnet/references/efcore.md +96 -0
- package/skills/csharp-dotnet/scripts/verify.sh +90 -0
- package/skills/customer-support/SKILL.md +193 -0
- package/skills/customer-support/evals/README.md +13 -0
- package/skills/customer-support/evals/cases.yaml +61 -0
- package/skills/customer-support/references/macros-and-sla.md +142 -0
- package/skills/dashboard/SKILL.md +205 -0
- package/skills/dashboard/evals/README.md +3 -0
- package/skills/dashboard/evals/cases.yaml +50 -0
- package/skills/dashboard/references/chart-selection.md +34 -0
- package/skills/dashboard/references/tile-schema.md +164 -0
- package/skills/dashboard/scripts/verify.sh +130 -0
- package/skills/data-cleaning/SKILL.md +285 -0
- package/skills/data-cleaning/evals/README.md +16 -0
- package/skills/data-cleaning/evals/cases.yaml +57 -0
- package/skills/data-cleaning/references/normalization-recipes.md +136 -0
- package/skills/data-cleaning/references/validation-patterns.md +134 -0
- package/skills/data-cleaning/scripts/verify.sh +115 -0
- package/skills/data-policy/SKILL.md +163 -0
- package/skills/data-policy/evals/README.md +15 -0
- package/skills/data-policy/evals/cases.yaml +44 -0
- package/skills/data-policy/references/consent-and-ropa.md +97 -0
- package/skills/data-policy/references/retention-schedule.md +83 -0
- package/skills/data-policy/scripts/verify.sh +143 -0
- package/skills/data-scraper/SKILL.md +134 -0
- package/skills/data-scraper/evals/README.md +3 -0
- package/skills/data-scraper/evals/cases.yaml +46 -0
- package/skills/data-scraper/references/anti-bot.md +85 -0
- package/skills/data-scraper/references/frameworks.md +116 -0
- package/skills/data-scraper/references/legal-compliance.md +59 -0
- package/skills/data-scraper/scripts/verify.sh +166 -0
- package/skills/db-migrations/SKILL.md +254 -0
- package/skills/db-migrations/evals/README.md +10 -0
- package/skills/db-migrations/evals/cases.yaml +46 -0
- package/skills/db-migrations/references/backfill-and-batching.md +105 -0
- package/skills/db-migrations/references/expand-contract-playbook.md +152 -0
- package/skills/db-migrations/references/tools-and-runners.md +88 -0
- package/skills/db-migrations/scripts/verify.sh +112 -0
- package/skills/debug/SKILL.md +227 -0
- package/skills/debug/evals/README.md +88 -0
- package/skills/debug/evals/cases.yaml +74 -0
- package/skills/decision-records/SKILL.md +189 -0
- package/skills/decision-records/evals/README.md +3 -0
- package/skills/decision-records/evals/cases.yaml +43 -0
- package/skills/decision-records/references/templates.md +232 -0
- package/skills/decision-records/scripts/verify.sh +105 -0
- package/skills/deployment/SKILL.md +439 -0
- package/skills/deployment/evals/README.md +50 -0
- package/skills/deployment/evals/cases.yaml +53 -0
- package/skills/deployment/references/coolify.md +216 -0
- package/skills/deployment/references/dockerfiles-by-stack.md +319 -0
- package/skills/deployment/references/github-actions.md +295 -0
- package/skills/deployment/references/hosting-targets.md +272 -0
- package/skills/deployment/scripts/verify.sh +134 -0
- package/skills/design/SKILL.md +399 -0
- package/skills/design/evals/README.md +53 -0
- package/skills/design/evals/cases.yaml +56 -0
- package/skills/design/references/brand-grounding.md +187 -0
- package/skills/design/references/copywriting-frameworks.md +138 -0
- package/skills/design/references/landing-anatomy-and-cro.md +202 -0
- package/skills/design/references/motion-and-interaction.md +182 -0
- package/skills/design/references/research-method.md +147 -0
- package/skills/design/references/signature-and-craft.md +148 -0
- package/skills/design/references/trends-2026.md +80 -0
- package/skills/design/references/visual-system.md +236 -0
- package/skills/design/scripts/verify.sh +248 -0
- package/skills/digitalocean/SKILL.md +251 -0
- package/skills/digitalocean/evals/README.md +10 -0
- package/skills/digitalocean/evals/cases.yaml +37 -0
- package/skills/digitalocean/references/app-spec.md +126 -0
- package/skills/digitalocean/references/droplet-ops.md +95 -0
- package/skills/digitalocean/scripts/verify.sh +102 -0
- package/skills/django/SKILL.md +268 -0
- package/skills/django/evals/README.md +11 -0
- package/skills/django/evals/cases.yaml +47 -0
- package/skills/django/references/drf.md +109 -0
- package/skills/django/references/orm-performance.md +91 -0
- package/skills/django/references/security.md +81 -0
- package/skills/django/references/testing.md +86 -0
- package/skills/django/scripts/verify.sh +115 -0
- package/skills/docker/SKILL.md +283 -0
- package/skills/docker/evals/README.md +10 -0
- package/skills/docker/evals/cases.yaml +44 -0
- package/skills/docker/references/base-images-and-stages.md +104 -0
- package/skills/docker/references/compose-recipes.md +109 -0
- package/skills/docker/scripts/verify.sh +149 -0
- package/skills/document-processing/SKILL.md +214 -0
- package/skills/document-processing/evals/README.md +3 -0
- package/skills/document-processing/evals/cases.yaml +65 -0
- package/skills/document-processing/references/engines.md +67 -0
- package/skills/document-processing/scripts/verify.sh +172 -0
- package/skills/domains-dns/SKILL.md +146 -0
- package/skills/domains-dns/evals/README.md +16 -0
- package/skills/domains-dns/evals/cases.yaml +47 -0
- package/skills/domains-dns/references/record-cookbook.md +94 -0
- package/skills/domains-dns/references/tls-and-acme.md +90 -0
- package/skills/domains-dns/references/verify-and-debug.md +64 -0
- package/skills/domains-dns/scripts/verify.sh +163 -0
- package/skills/drizzle-orm/SKILL.md +234 -0
- package/skills/drizzle-orm/evals/README.md +12 -0
- package/skills/drizzle-orm/evals/cases.yaml +47 -0
- package/skills/drizzle-orm/references/relations-and-drivers.md +118 -0
- package/skills/drizzle-orm/scripts/verify.sh +155 -0
- package/skills/duckdb/SKILL.md +207 -0
- package/skills/duckdb/evals/README.md +31 -0
- package/skills/duckdb/evals/cases.yaml +41 -0
- package/skills/duckdb/references/python-and-interop.md +105 -0
- package/skills/duckdb/references/remote-and-lakehouse.md +101 -0
- package/skills/duckdb/scripts/verify.sh +71 -0
- package/skills/dynamodb/SKILL.md +217 -0
- package/skills/dynamodb/evals/README.md +8 -0
- package/skills/dynamodb/evals/cases.yaml +46 -0
- package/skills/dynamodb/references/access-patterns.md +127 -0
- package/skills/dynamodb/references/capacity-and-limits.md +78 -0
- package/skills/dynamodb/scripts/verify.sh +108 -0
- package/skills/e-signature/SKILL.md +185 -0
- package/skills/e-signature/evals/README.md +3 -0
- package/skills/e-signature/evals/cases.yaml +44 -0
- package/skills/e-signature/references/docusign.md +83 -0
- package/skills/e-signature/references/dropbox-sign.md +73 -0
- package/skills/e-signature/references/legal-tiers.md +37 -0
- package/skills/e-signature/scripts/verify.sh +81 -0
- package/skills/e2e-testing/SKILL.md +243 -0
- package/skills/e2e-testing/evals/README.md +10 -0
- package/skills/e2e-testing/evals/cases.yaml +64 -0
- package/skills/e2e-testing/references/config-and-ci.md +156 -0
- package/skills/e2e-testing/references/flakiness-playbook.md +124 -0
- package/skills/e2e-testing/scripts/verify.sh +117 -0
- package/skills/electron/SKILL.md +221 -0
- package/skills/electron/evals/README.md +13 -0
- package/skills/electron/evals/cases.yaml +38 -0
- package/skills/electron/references/packaging-and-updates.md +122 -0
- package/skills/electron/references/security-and-ipc.md +158 -0
- package/skills/electron/scripts/verify.sh +143 -0
- package/skills/elixir/SKILL.md +217 -0
- package/skills/elixir/evals/README.md +3 -0
- package/skills/elixir/evals/cases.yaml +41 -0
- package/skills/elixir/references/mix-and-releases.md +91 -0
- package/skills/elixir/references/otp-patterns.md +96 -0
- package/skills/elixir/scripts/verify.sh +76 -0
- package/skills/email-connector/SKILL.md +294 -0
- package/skills/email-connector/evals/README.md +19 -0
- package/skills/email-connector/evals/cases.yaml +39 -0
- package/skills/email-connector/references/providers.md +107 -0
- package/skills/email-connector/scripts/verify.sh +72 -0
- package/skills/email-deliverability/SKILL.md +168 -0
- package/skills/email-deliverability/evals/README.md +21 -0
- package/skills/email-deliverability/evals/cases.yaml +45 -0
- package/skills/email-deliverability/scripts/verify.sh +98 -0
- package/skills/embeddings-search/SKILL.md +193 -0
- package/skills/embeddings-search/evals/README.md +10 -0
- package/skills/embeddings-search/evals/cases.yaml +44 -0
- package/skills/embeddings-search/references/evaluation.md +86 -0
- package/skills/embeddings-search/references/models.md +73 -0
- package/skills/embeddings-search/scripts/verify.sh +103 -0
- package/skills/error-handling/SKILL.md +307 -0
- package/skills/error-handling/evals/README.md +12 -0
- package/skills/error-handling/evals/cases.yaml +46 -0
- package/skills/error-handling/references/boundaries-and-messaging.md +120 -0
- package/skills/error-handling/references/retry-and-resilience.md +154 -0
- package/skills/error-handling/scripts/verify.sh +110 -0
- package/skills/expo/SKILL.md +253 -0
- package/skills/expo/evals/README.md +13 -0
- package/skills/expo/evals/cases.yaml +44 -0
- package/skills/expo/references/config-plugins.md +117 -0
- package/skills/expo/references/eas-update.md +118 -0
- package/skills/expo/scripts/verify.sh +132 -0
- package/skills/fal/SKILL.md +210 -0
- package/skills/fal/evals/README.md +3 -0
- package/skills/fal/evals/cases.yaml +42 -0
- package/skills/fal/references/models-and-cost.md +53 -0
- package/skills/fal/references/queue-and-webhooks.md +153 -0
- package/skills/fal/scripts/verify.sh +72 -0
- package/skills/fastapi/SKILL.md +499 -0
- package/skills/fastapi/evals/README.md +50 -0
- package/skills/fastapi/evals/cases.yaml +55 -0
- package/skills/fastapi/references/database.md +347 -0
- package/skills/fastapi/references/production.md +338 -0
- package/skills/fastapi/references/security.md +330 -0
- package/skills/fastapi/references/testing.md +349 -0
- package/skills/fastapi/scripts/verify.sh +116 -0
- package/skills/finance-ops/SKILL.md +149 -0
- package/skills/finance-ops/evals/README.md +3 -0
- package/skills/finance-ops/evals/cases.yaml +39 -0
- package/skills/finance-ops/references/cash-flow-forecast.md +57 -0
- package/skills/finance-ops/references/month-close.md +59 -0
- package/skills/finance-ops/references/reconciliation.md +65 -0
- package/skills/finance-ops/scripts/verify.sh +166 -0
- package/skills/financial-model/SKILL.md +170 -0
- package/skills/financial-model/evals/README.md +3 -0
- package/skills/financial-model/evals/cases.yaml +53 -0
- package/skills/financial-model/references/benchmarks-and-scenarios.md +55 -0
- package/skills/financial-model/references/model-structure.md +67 -0
- package/skills/financial-model/references/revenue-build.md +68 -0
- package/skills/financial-model/scripts/verify.sh +232 -0
- package/skills/firebase/SKILL.md +251 -0
- package/skills/firebase/evals/README.md +12 -0
- package/skills/firebase/evals/cases.yaml +45 -0
- package/skills/firebase/references/cloud-functions.md +102 -0
- package/skills/firebase/references/data-modeling.md +108 -0
- package/skills/firebase/references/security-rules.md +137 -0
- package/skills/firebase/scripts/verify.sh +98 -0
- package/skills/flutter/SKILL.md +448 -0
- package/skills/flutter/evals/README.md +54 -0
- package/skills/flutter/evals/cases.yaml +69 -0
- package/skills/flutter/references/architecture-and-state.md +499 -0
- package/skills/flutter/references/i18n-and-dependencies.md +197 -0
- package/skills/flutter/references/performance.md +299 -0
- package/skills/flutter/references/testing.md +385 -0
- package/skills/flutter/references/ui-and-navigation.md +378 -0
- package/skills/flutter/scripts/verify.sh +104 -0
- package/skills/fly-io/SKILL.md +206 -0
- package/skills/fly-io/evals/README.md +3 -0
- package/skills/fly-io/evals/cases.yaml +42 -0
- package/skills/fly-io/references/fly-toml.md +155 -0
- package/skills/fly-io/references/multi-region.md +66 -0
- package/skills/fly-io/scripts/verify.sh +90 -0
- package/skills/forecasting/SKILL.md +139 -0
- package/skills/forecasting/evals/README.md +13 -0
- package/skills/forecasting/evals/cases.yaml +47 -0
- package/skills/forecasting/references/accuracy-and-backtesting.md +104 -0
- package/skills/forecasting/references/methods-cheatsheet.md +94 -0
- package/skills/forecasting/scripts/verify.sh +99 -0
- package/skills/fundraising/SKILL.md +162 -0
- package/skills/fundraising/evals/README.md +18 -0
- package/skills/fundraising/evals/cases.yaml +76 -0
- package/skills/fundraising/references/funnel-math.md +90 -0
- package/skills/fundraising/references/process-playbook.md +97 -0
- package/skills/gcp-essentials/SKILL.md +327 -0
- package/skills/gcp-essentials/evals/README.md +12 -0
- package/skills/gcp-essentials/evals/cases.yaml +38 -0
- package/skills/gcp-essentials/references/deploy-recipes.md +81 -0
- package/skills/gcp-essentials/references/iam-and-auth.md +94 -0
- package/skills/gcp-essentials/references/networking-and-sql.md +74 -0
- package/skills/gcp-essentials/scripts/verify.sh +158 -0
- package/skills/gdpr-privacy/SKILL.md +167 -0
- package/skills/gdpr-privacy/evals/README.md +3 -0
- package/skills/gdpr-privacy/evals/cases.yaml +47 -0
- package/skills/gdpr-privacy/references/dpa-and-transfers.md +63 -0
- package/skills/gdpr-privacy/references/dsar-and-consent.md +83 -0
- package/skills/gdpr-privacy/references/privacy-policy-blueprint.md +99 -0
- package/skills/gdpr-privacy/scripts/verify.sh +84 -0
- package/skills/git-workflow/SKILL.md +190 -0
- package/skills/git-workflow/evals/README.md +10 -0
- package/skills/git-workflow/evals/cases.yaml +47 -0
- package/skills/git-workflow/references/interactive-rebase.md +89 -0
- package/skills/github-actions/SKILL.md +256 -0
- package/skills/github-actions/evals/README.md +3 -0
- package/skills/github-actions/evals/cases.yaml +45 -0
- package/skills/github-actions/references/caching-and-matrix.md +92 -0
- package/skills/github-actions/references/oidc-deploys.md +130 -0
- package/skills/github-actions/scripts/verify.sh +105 -0
- package/skills/go/SKILL.md +438 -0
- package/skills/go/evals/README.md +56 -0
- package/skills/go/evals/cases.yaml +55 -0
- package/skills/go/references/concurrency.md +557 -0
- package/skills/go/references/http-services.md +529 -0
- package/skills/go/references/testing.md +338 -0
- package/skills/go/scripts/verify.sh +109 -0
- package/skills/google-workspace/SKILL.md +287 -0
- package/skills/google-workspace/evals/README.md +16 -0
- package/skills/google-workspace/evals/cases.yaml +44 -0
- package/skills/google-workspace/references/api-recipes.md +148 -0
- package/skills/google-workspace/references/auth-setup.md +100 -0
- package/skills/google-workspace/scripts/verify.sh +128 -0
- package/skills/grants/SKILL.md +171 -0
- package/skills/grants/evals/README.md +3 -0
- package/skills/grants/evals/cases.yaml +69 -0
- package/skills/grants/references/budget-justification.md +71 -0
- package/skills/grants/references/jurisdictions.md +35 -0
- package/skills/grants/references/logic-model.md +66 -0
- package/skills/grants/scripts/verify.sh +193 -0
- package/skills/harness/SKILL.md +329 -0
- package/skills/harness/assets/_TEMPLATE/.env.example +8 -0
- package/skills/harness/assets/_TEMPLATE/CREDENTIALS.md +25 -0
- package/skills/harness/assets/_TEMPLATE/README.md +25 -0
- package/skills/harness/assets/_TEMPLATE/test_connection.sh +30 -0
- package/skills/harness/evals/README.md +54 -0
- package/skills/harness/evals/cases.yaml +72 -0
- package/skills/harness/examples/audit-example.md +120 -0
- package/skills/harness/references/agents-md-template.md +41 -0
- package/skills/harness/references/audit-report-template.html +140 -0
- package/skills/harness/references/audit-report-template.md +116 -0
- package/skills/harness/references/claude-md-template.md +98 -0
- package/skills/harness/references/inbox-readme-template.md +51 -0
- package/skills/harness/references/ingest-formats.md +185 -0
- package/skills/harness/references/providers.yaml +3410 -0
- package/skills/harness/references/tools-readme-template.md +88 -0
- package/skills/harness/references/wiki-archive-template.html +81 -0
- package/skills/harness/references/wiki-article-template.md +20 -0
- package/skills/harness/references/wiki-dashboard-template.html +136 -0
- package/skills/harness/references/wiki-deep-improve-report-template.html +126 -0
- package/skills/harness/references/wiki-gaps-template.md +18 -0
- package/skills/harness/references/wiki-index-template.md +23 -0
- package/skills/harness/references/wiki-protocol.md +699 -0
- package/skills/harness/references/wiki-raw-template.md +7 -0
- package/skills/hetzner/SKILL.md +221 -0
- package/skills/hetzner/evals/README.md +35 -0
- package/skills/hetzner/evals/cases.yaml +46 -0
- package/skills/hetzner/references/cloud-init.md +120 -0
- package/skills/hetzner/references/plans-and-locations.md +56 -0
- package/skills/hetzner/scripts/verify.sh +122 -0
- package/skills/hiring/SKILL.md +248 -0
- package/skills/hiring/evals/README.md +13 -0
- package/skills/hiring/evals/cases.yaml +41 -0
- package/skills/hiring/references/templates.md +118 -0
- package/skills/htmx/SKILL.md +261 -0
- package/skills/htmx/evals/README.md +3 -0
- package/skills/htmx/evals/cases.yaml +38 -0
- package/skills/htmx/references/patterns.md +113 -0
- package/skills/htmx/references/server-contract.md +91 -0
- package/skills/htmx/scripts/verify.sh +93 -0
- package/skills/huggingface/SKILL.md +190 -0
- package/skills/huggingface/evals/README.md +11 -0
- package/skills/huggingface/evals/cases.yaml +41 -0
- package/skills/huggingface/references/endpoints-and-spaces.md +99 -0
- package/skills/huggingface/references/hub-and-cli.md +85 -0
- package/skills/huggingface/references/inference-providers.md +115 -0
- package/skills/huggingface/scripts/verify.sh +123 -0
- package/skills/implement/SKILL.md +283 -0
- package/skills/implement/evals/README.md +56 -0
- package/skills/implement/evals/cases.yaml +43 -0
- package/skills/init/SKILL.md +184 -0
- package/skills/init/evals/README.md +49 -0
- package/skills/init/evals/cases.yaml +74 -0
- package/skills/init/references/accompaniment-and-profile.md +140 -0
- package/skills/init/references/discovery.md +90 -0
- package/skills/init/references/recommend-skills.md +115 -0
- package/skills/init/scripts/verify.sh +122 -0
- package/skills/instagram-api/SKILL.md +241 -0
- package/skills/instagram-api/evals/README.md +3 -0
- package/skills/instagram-api/evals/cases.yaml +43 -0
- package/skills/instagram-api/references/insights-metrics.md +88 -0
- package/skills/instagram-api/references/publish-reel.md +98 -0
- package/skills/instagram-api/scripts/verify.sh +137 -0
- package/skills/inventory/SKILL.md +131 -0
- package/skills/inventory/evals/README.md +3 -0
- package/skills/inventory/evals/cases.yaml +43 -0
- package/skills/inventory/references/abc-xyz.md +52 -0
- package/skills/inventory/references/ddmrp.md +32 -0
- package/skills/inventory/references/reorder-policies.md +85 -0
- package/skills/inventory/references/safety-stock.md +63 -0
- package/skills/inventory/scripts/verify.sh +155 -0
- package/skills/investor-materials/SKILL.md +175 -0
- package/skills/investor-materials/evals/README.md +15 -0
- package/skills/investor-materials/evals/cases.yaml +60 -0
- package/skills/investor-materials/references/dataroom-checklist.md +134 -0
- package/skills/investor-materials/references/update-and-onepager-templates.md +152 -0
- package/skills/investor-materials/scripts/verify.sh +148 -0
- package/skills/invoicing/SKILL.md +154 -0
- package/skills/invoicing/evals/README.md +5 -0
- package/skills/invoicing/evals/cases.yaml +49 -0
- package/skills/invoicing/references/dunning-ladder.md +53 -0
- package/skills/invoicing/references/e-invoicing-mandates.md +43 -0
- package/skills/invoicing/scripts/fixtures/broken-invoice.json +13 -0
- package/skills/invoicing/scripts/fixtures/valid-invoice.json +15 -0
- package/skills/invoicing/scripts/verify.sh +133 -0
- package/skills/ip-trademark/SKILL.md +186 -0
- package/skills/ip-trademark/evals/README.md +10 -0
- package/skills/ip-trademark/evals/cases.yaml +47 -0
- package/skills/ip-trademark/references/jurisdictions.md +63 -0
- package/skills/ip-trademark/references/ownership-and-licensing.md +90 -0
- package/skills/java/SKILL.md +341 -0
- package/skills/java/evals/README.md +23 -0
- package/skills/java/evals/cases.yaml +43 -0
- package/skills/java/references/builds.md +133 -0
- package/skills/java/references/concurrency.md +108 -0
- package/skills/java/references/streams.md +102 -0
- package/skills/java/scripts/verify.sh +107 -0
- package/skills/knowledge-ops/SKILL.md +125 -0
- package/skills/knowledge-ops/evals/README.md +16 -0
- package/skills/knowledge-ops/evals/cases.yaml +50 -0
- package/skills/knowledge-ops/references/gardening-playbook.md +116 -0
- package/skills/kotlin-android/SKILL.md +245 -0
- package/skills/kotlin-android/evals/README.md +13 -0
- package/skills/kotlin-android/evals/cases.yaml +56 -0
- package/skills/kotlin-android/references/architecture.md +200 -0
- package/skills/kotlin-android/references/gradle-setup.md +125 -0
- package/skills/kotlin-android/scripts/verify.sh +109 -0
- package/skills/kpi-framework/SKILL.md +199 -0
- package/skills/kpi-framework/evals/README.md +11 -0
- package/skills/kpi-framework/evals/cases.yaml +42 -0
- package/skills/kpi-framework/references/definition-and-targets.md +64 -0
- package/skills/kpi-framework/references/metric-catalog.md +84 -0
- package/skills/landing-copy/SKILL.md +153 -0
- package/skills/landing-copy/evals/README.md +18 -0
- package/skills/landing-copy/evals/cases.yaml +63 -0
- package/skills/landing-copy/references/frameworks.md +61 -0
- package/skills/landing-copy/references/page-skeleton.md +92 -0
- package/skills/landing-copy/scripts/verify.sh +164 -0
- package/skills/laravel/SKILL.md +301 -0
- package/skills/laravel/evals/README.md +10 -0
- package/skills/laravel/evals/cases.yaml +45 -0
- package/skills/laravel/references/eloquent-patterns.md +126 -0
- package/skills/laravel/references/queues-and-scheduling.md +153 -0
- package/skills/laravel/scripts/verify.sh +128 -0
- package/skills/lead-gen/SKILL.md +155 -0
- package/skills/lead-gen/evals/README.md +3 -0
- package/skills/lead-gen/evals/cases.yaml +43 -0
- package/skills/lead-gen/references/data-sources.md +87 -0
- package/skills/lead-gen/references/scoring-model.md +93 -0
- package/skills/lead-gen/scripts/verify.sh +179 -0
- package/skills/linkedin-api/SKILL.md +211 -0
- package/skills/linkedin-api/evals/README.md +3 -0
- package/skills/linkedin-api/evals/cases.yaml +41 -0
- package/skills/linkedin-api/references/api-reference.md +168 -0
- package/skills/linkedin-api/scripts/verify.sh +98 -0
- package/skills/linkedin-carousels/SKILL.md +239 -0
- package/skills/linkedin-carousels/evals/README.md +13 -0
- package/skills/linkedin-carousels/evals/cases.yaml +62 -0
- package/skills/linkedin-carousels/references/carousel-patterns.md +200 -0
- package/skills/linkedin-carousels/scripts/verify.sh +160 -0
- package/skills/linkedin-content/SKILL.md +162 -0
- package/skills/linkedin-content/evals/README.md +13 -0
- package/skills/linkedin-content/evals/cases.yaml +62 -0
- package/skills/linkedin-content/references/hooks-and-formats.md +114 -0
- package/skills/linkedin-content/scripts/verify.sh +154 -0
- package/skills/linkedin-outreach/SKILL.md +174 -0
- package/skills/linkedin-outreach/evals/README.md +3 -0
- package/skills/linkedin-outreach/evals/cases.yaml +43 -0
- package/skills/linkedin-outreach/references/ledger-schema.md +48 -0
- package/skills/linkedin-outreach/references/sales-navigator-playbook.md +61 -0
- package/skills/linkedin-outreach/scripts/verify.sh +120 -0
- package/skills/linkedin-strategy/SKILL.md +167 -0
- package/skills/linkedin-strategy/evals/README.md +3 -0
- package/skills/linkedin-strategy/evals/cases.yaml +49 -0
- package/skills/linkedin-strategy/references/ssi-and-pillars.md +59 -0
- package/skills/linkedin-strategy/references/wiki-records.md +62 -0
- package/skills/linkedin-strategy/scripts/verify.sh +120 -0
- package/skills/llm-pipeline/SKILL.md +155 -0
- package/skills/llm-pipeline/evals/README.md +3 -0
- package/skills/llm-pipeline/evals/cases.yaml +44 -0
- package/skills/llm-pipeline/references/caching-layers.md +60 -0
- package/skills/llm-pipeline/references/litellm-router.md +101 -0
- package/skills/llm-pipeline/scripts/verify.sh +169 -0
- package/skills/logistics-ops/SKILL.md +219 -0
- package/skills/logistics-ops/evals/README.md +20 -0
- package/skills/logistics-ops/evals/cases.yaml +48 -0
- package/skills/logistics-ops/references/carriers-and-claims.md +105 -0
- package/skills/market-research/SKILL.md +145 -0
- package/skills/market-research/evals/README.md +3 -0
- package/skills/market-research/evals/cases.yaml +48 -0
- package/skills/market-research/references/demand-signals.md +63 -0
- package/skills/market-research/references/sizing-playbook.md +121 -0
- package/skills/market-research/scripts/verify.sh +215 -0
- package/skills/marketing/SKILL.md +233 -0
- package/skills/marketing/evals/README.md +61 -0
- package/skills/marketing/evals/cases.yaml +84 -0
- package/skills/marketing/references/brand-grounding.md +197 -0
- package/skills/marketing/references/campaigns-and-channels.md +151 -0
- package/skills/marketing/references/copy-frameworks.md +166 -0
- package/skills/marketing/references/landing-copy.md +191 -0
- package/skills/marketing/references/seo-geo.md +391 -0
- package/skills/marketing/scripts/seo_audit.py +166 -0
- package/skills/marketing/scripts/verify.sh +233 -0
- package/skills/medium-publishing/SKILL.md +152 -0
- package/skills/medium-publishing/evals/README.md +3 -0
- package/skills/medium-publishing/evals/cases.yaml +42 -0
- package/skills/medium-publishing/references/cross-post-and-canonical.md +65 -0
- package/skills/medium-publishing/references/legacy-api.md +100 -0
- package/skills/medium-strategy/SKILL.md +161 -0
- package/skills/medium-strategy/evals/README.md +3 -0
- package/skills/medium-strategy/evals/cases.yaml +50 -0
- package/skills/medium-strategy/references/distribution-and-boost.md +65 -0
- package/skills/medium-strategy/references/wiki-records.md +60 -0
- package/skills/medium-strategy/scripts/verify.sh +118 -0
- package/skills/medium-writing/SKILL.md +140 -0
- package/skills/medium-writing/evals/README.md +5 -0
- package/skills/medium-writing/evals/cases.yaml +39 -0
- package/skills/medium-writing/references/title-patterns.md +79 -0
- package/skills/meeting-notes/SKILL.md +168 -0
- package/skills/meeting-notes/evals/README.md +14 -0
- package/skills/meeting-notes/evals/cases.yaml +46 -0
- package/skills/meeting-notes/references/templates.md +140 -0
- package/skills/modal/SKILL.md +307 -0
- package/skills/modal/evals/README.md +29 -0
- package/skills/modal/evals/cases.yaml +50 -0
- package/skills/modal/references/images-gpu-cookbook.md +160 -0
- package/skills/modal/references/web-and-scaling.md +138 -0
- package/skills/modal/scripts/verify.sh +127 -0
- package/skills/mongodb/SKILL.md +342 -0
- package/skills/mongodb/evals/README.md +29 -0
- package/skills/mongodb/evals/cases.yaml +41 -0
- package/skills/mongodb/references/aggregation.md +115 -0
- package/skills/mongodb/references/data-modeling.md +135 -0
- package/skills/mongodb/references/transactions-and-ops.md +128 -0
- package/skills/mongodb/scripts/verify.sh +151 -0
- package/skills/monitoring/SKILL.md +155 -0
- package/skills/monitoring/evals/README.md +3 -0
- package/skills/monitoring/evals/cases.yaml +47 -0
- package/skills/monitoring/references/burn-rate-and-oncall.md +128 -0
- package/skills/monitoring/references/tool-setup.md +154 -0
- package/skills/monitoring/scripts/verify.sh +145 -0
- package/skills/mysql/SKILL.md +249 -0
- package/skills/mysql/evals/README.md +12 -0
- package/skills/mysql/evals/cases.yaml +49 -0
- package/skills/mysql/references/indexing-and-explain.md +161 -0
- package/skills/mysql/references/mysql-vs-mariadb.md +78 -0
- package/skills/mysql/references/online-ddl-and-migrations.md +120 -0
- package/skills/mysql/references/replication-and-ha.md +115 -0
- package/skills/mysql/scripts/verify.sh +141 -0
- package/skills/neon/SKILL.md +218 -0
- package/skills/neon/evals/README.md +11 -0
- package/skills/neon/evals/cases.yaml +45 -0
- package/skills/neon/references/branching-ci.md +86 -0
- package/skills/neon/scripts/verify.sh +78 -0
- package/skills/nestjs/SKILL.md +225 -0
- package/skills/nestjs/evals/README.md +3 -0
- package/skills/nestjs/evals/cases.yaml +38 -0
- package/skills/nestjs/references/cross-cutting.md +135 -0
- package/skills/nestjs/references/testing-recipes.md +105 -0
- package/skills/nestjs/scripts/verify.sh +98 -0
- package/skills/netlify/SKILL.md +208 -0
- package/skills/netlify/evals/README.md +13 -0
- package/skills/netlify/evals/cases.yaml +43 -0
- package/skills/netlify/references/functions.md +97 -0
- package/skills/netlify/references/netlify-toml.md +115 -0
- package/skills/netlify/scripts/verify.sh +95 -0
- package/skills/newsletter/SKILL.md +162 -0
- package/skills/newsletter/evals/README.md +12 -0
- package/skills/newsletter/evals/cases.yaml +42 -0
- package/skills/newsletter/references/growth-loops.md +73 -0
- package/skills/newsletter/references/welcome-sequence.md +62 -0
- package/skills/newsletter/scripts/verify.sh +173 -0
- package/skills/nextjs/SKILL.md +472 -0
- package/skills/nextjs/evals/README.md +59 -0
- package/skills/nextjs/evals/cases.yaml +56 -0
- package/skills/nextjs/references/data-and-caching.md +309 -0
- package/skills/nextjs/references/metadata.md +208 -0
- package/skills/nextjs/references/performance.md +325 -0
- package/skills/nextjs/references/react.md +383 -0
- package/skills/nextjs/references/security.md +239 -0
- package/skills/nextjs/references/testing.md +290 -0
- package/skills/nextjs/scripts/verify.sh +141 -0
- package/skills/no-code-app/SKILL.md +153 -0
- package/skills/no-code-app/evals/README.md +3 -0
- package/skills/no-code-app/evals/cases.yaml +43 -0
- package/skills/no-code-app/references/platform-limits.md +100 -0
- package/skills/nodejs/SKILL.md +242 -0
- package/skills/nodejs/evals/README.md +3 -0
- package/skills/nodejs/evals/cases.yaml +39 -0
- package/skills/nodejs/references/express5-migration.md +53 -0
- package/skills/nodejs/references/graceful-shutdown.md +73 -0
- package/skills/nodejs/scripts/verify.sh +122 -0
- package/skills/notion-connector/SKILL.md +234 -0
- package/skills/notion-connector/evals/README.md +15 -0
- package/skills/notion-connector/evals/cases.yaml +45 -0
- package/skills/notion-connector/references/api-versions.md +63 -0
- package/skills/notion-connector/references/property-shapes.md +110 -0
- package/skills/notion-connector/references/sync-patterns.md +95 -0
- package/skills/notion-connector/scripts/verify.sh +162 -0
- package/skills/observability/SKILL.md +231 -0
- package/skills/observability/evals/README.md +3 -0
- package/skills/observability/evals/cases.yaml +49 -0
- package/skills/observability/references/collector-config.md +98 -0
- package/skills/observability/references/instrumentation-recipes.md +115 -0
- package/skills/observability/scripts/verify.sh +156 -0
- package/skills/ollama/SKILL.md +213 -0
- package/skills/ollama/evals/README.md +9 -0
- package/skills/ollama/evals/cases.yaml +43 -0
- package/skills/ollama/references/api.md +148 -0
- package/skills/ollama/references/hardware-sizing.md +87 -0
- package/skills/ollama/scripts/verify.sh +116 -0
- package/skills/orient/SKILL.md +54 -0
- package/skills/orient/evals/README.md +16 -0
- package/skills/orient/evals/cases.yaml +57 -0
- package/skills/orient/references/orientation-contract.md +34 -0
- package/skills/parallel/SKILL.md +198 -0
- package/skills/parallel/evals/README.md +62 -0
- package/skills/parallel/evals/cases.yaml +44 -0
- package/skills/people-ops/SKILL.md +122 -0
- package/skills/people-ops/evals/README.md +14 -0
- package/skills/people-ops/evals/cases.yaml +43 -0
- package/skills/people-ops/references/templates.md +129 -0
- package/skills/performance/SKILL.md +221 -0
- package/skills/performance/evals/README.md +3 -0
- package/skills/performance/evals/cases.yaml +47 -0
- package/skills/performance/references/profiling-playbook.md +54 -0
- package/skills/performance/scripts/verify.sh +94 -0
- package/skills/phoenix/SKILL.md +169 -0
- package/skills/phoenix/evals/README.md +3 -0
- package/skills/phoenix/evals/cases.yaml +40 -0
- package/skills/phoenix/references/auth-and-scopes.md +82 -0
- package/skills/phoenix/references/ecto-patterns.md +93 -0
- package/skills/phoenix/references/liveview.md +134 -0
- package/skills/phoenix/scripts/verify.sh +73 -0
- package/skills/php/SKILL.md +397 -0
- package/skills/php/evals/README.md +12 -0
- package/skills/php/evals/cases.yaml +45 -0
- package/skills/php/references/tooling.md +170 -0
- package/skills/php/references/type-system.md +220 -0
- package/skills/php/scripts/verify.sh +155 -0
- package/skills/pitch-deck/SKILL.md +209 -0
- package/skills/pitch-deck/evals/README.md +15 -0
- package/skills/pitch-deck/evals/cases.yaml +55 -0
- package/skills/pitch-deck/references/numbers-that-matter.md +78 -0
- package/skills/pitch-deck/references/slide-spine.md +149 -0
- package/skills/pitch-deck/scripts/verify.sh +186 -0
- package/skills/plan/SKILL.md +204 -0
- package/skills/plan/evals/README.md +62 -0
- package/skills/plan/evals/cases.yaml +49 -0
- package/skills/plan/references/plan-template.md +124 -0
- package/skills/planetscale/SKILL.md +223 -0
- package/skills/planetscale/evals/README.md +11 -0
- package/skills/planetscale/evals/cases.yaml +46 -0
- package/skills/planetscale/references/deploy-requests.md +75 -0
- package/skills/planetscale/references/no-foreign-keys.md +88 -0
- package/skills/planetscale/scripts/verify.sh +115 -0
- package/skills/podcast/SKILL.md +166 -0
- package/skills/podcast/evals/README.md +17 -0
- package/skills/podcast/evals/cases.yaml +61 -0
- package/skills/podcast/references/rss-and-namespace.md +136 -0
- package/skills/podcast/scripts/verify.sh +246 -0
- package/skills/postgresdb/SKILL.md +372 -0
- package/skills/postgresdb/evals/README.md +55 -0
- package/skills/postgresdb/evals/cases.yaml +57 -0
- package/skills/postgresdb/references/migrations.md +279 -0
- package/skills/postgresdb/references/operations-and-security.md +267 -0
- package/skills/postgresdb/references/query-optimization.md +374 -0
- package/skills/postgresdb/references/schema-and-indexing.md +379 -0
- package/skills/postgresdb/scripts/verify.sh +191 -0
- package/skills/presentations/SKILL.md +296 -0
- package/skills/presentations/evals/README.md +61 -0
- package/skills/presentations/evals/cases.yaml +56 -0
- package/skills/presentations/references/brand-grounding.md +160 -0
- package/skills/presentations/references/markdown-decks.md +290 -0
- package/skills/presentations/references/pptx-python.md +242 -0
- package/skills/presentations/references/slide-design.md +261 -0
- package/skills/presentations/references/storytelling-and-decks.md +150 -0
- package/skills/presentations/scripts/verify.sh +252 -0
- package/skills/press-kit/SKILL.md +243 -0
- package/skills/press-kit/evals/README.md +15 -0
- package/skills/press-kit/evals/cases.yaml +55 -0
- package/skills/press-kit/references/release-types.md +102 -0
- package/skills/press-kit/references/templates.md +132 -0
- package/skills/press-kit/scripts/verify.sh +161 -0
- package/skills/pricing/SKILL.md +160 -0
- package/skills/pricing/evals/README.md +5 -0
- package/skills/pricing/evals/cases.yaml +44 -0
- package/skills/pricing/references/localization.md +56 -0
- package/skills/pricing/references/pricing-models.md +55 -0
- package/skills/pricing/scripts/verify.sh +91 -0
- package/skills/prisma-orm/SKILL.md +320 -0
- package/skills/prisma-orm/evals/README.md +12 -0
- package/skills/prisma-orm/evals/cases.yaml +56 -0
- package/skills/prisma-orm/references/migrations-and-v7-upgrade.md +197 -0
- package/skills/prisma-orm/references/queries-and-performance.md +169 -0
- package/skills/prisma-orm/scripts/verify.sh +137 -0
- package/skills/procurement/SKILL.md +179 -0
- package/skills/procurement/evals/README.md +20 -0
- package/skills/procurement/evals/cases.yaml +49 -0
- package/skills/procurement/references/scorecard-and-tco.md +100 -0
- package/skills/procurement/references/sourcing-requests.md +116 -0
- package/skills/procurement/scripts/verify.sh +280 -0
- package/skills/project-ops/SKILL.md +130 -0
- package/skills/project-ops/evals/README.md +3 -0
- package/skills/project-ops/evals/cases.yaml +71 -0
- package/skills/project-ops/references/raid-and-rag.md +58 -0
- package/skills/project-ops/references/status-report-template.md +68 -0
- package/skills/project-ops/scripts/verify.sh +257 -0
- package/skills/prompt-engineering/SKILL.md +138 -0
- package/skills/prompt-engineering/evals/README.md +11 -0
- package/skills/prompt-engineering/evals/cases.yaml +46 -0
- package/skills/prompt-engineering/references/eval-templates.md +94 -0
- package/skills/prompt-engineering/references/output-contracts.md +120 -0
- package/skills/prompt-engineering/scripts/verify.sh +84 -0
- package/skills/proposals/SKILL.md +159 -0
- package/skills/proposals/evals/README.md +3 -0
- package/skills/proposals/evals/cases.yaml +53 -0
- package/skills/proposals/references/proposal-skeleton.md +110 -0
- package/skills/proposals/references/sow-skeleton.md +79 -0
- package/skills/proposals/scripts/verify.sh +201 -0
- package/skills/python/SKILL.md +369 -0
- package/skills/python/evals/README.md +19 -0
- package/skills/python/evals/cases.yaml +46 -0
- package/skills/python/references/async.md +136 -0
- package/skills/python/references/stdlib.md +162 -0
- package/skills/python/references/typing.md +160 -0
- package/skills/python/scripts/verify.sh +125 -0
- package/skills/rag/SKILL.md +226 -0
- package/skills/rag/evals/README.md +13 -0
- package/skills/rag/evals/cases.yaml +45 -0
- package/skills/rag/references/evaluation.md +99 -0
- package/skills/rag/references/pipeline.md +151 -0
- package/skills/rag/scripts/verify.sh +99 -0
- package/skills/rails/SKILL.md +264 -0
- package/skills/rails/evals/README.md +12 -0
- package/skills/rails/evals/cases.yaml +47 -0
- package/skills/rails/references/activerecord.md +148 -0
- package/skills/rails/references/hotwire.md +139 -0
- package/skills/rails/references/testing.md +110 -0
- package/skills/rails/scripts/verify.sh +128 -0
- package/skills/railway/SKILL.md +245 -0
- package/skills/railway/evals/README.md +14 -0
- package/skills/railway/evals/cases.yaml +44 -0
- package/skills/railway/references/cli-cookbook.md +137 -0
- package/skills/railway/references/config-as-code.md +120 -0
- package/skills/railway/scripts/verify.sh +162 -0
- package/skills/react/SKILL.md +222 -0
- package/skills/react/evals/README.md +3 -0
- package/skills/react/evals/cases.yaml +43 -0
- package/skills/react/references/data-and-state.md +152 -0
- package/skills/react/references/performance.md +75 -0
- package/skills/react/references/routing.md +99 -0
- package/skills/react/scripts/verify.sh +123 -0
- package/skills/react-native/SKILL.md +220 -0
- package/skills/react-native/evals/README.md +3 -0
- package/skills/react-native/evals/cases.yaml +42 -0
- package/skills/react-native/references/native-modules.md +123 -0
- package/skills/react-native/references/performance-debugging.md +46 -0
- package/skills/react-native/scripts/verify.sh +117 -0
- package/skills/redis/SKILL.md +298 -0
- package/skills/redis/evals/README.md +10 -0
- package/skills/redis/evals/cases.yaml +43 -0
- package/skills/redis/references/caching.md +116 -0
- package/skills/redis/references/locks-and-rate-limiting.md +140 -0
- package/skills/redis/references/queues.md +102 -0
- package/skills/redis/scripts/verify.sh +164 -0
- package/skills/remotion-video/SKILL.md +218 -0
- package/skills/remotion-video/evals/README.md +23 -0
- package/skills/remotion-video/evals/cases.yaml +64 -0
- package/skills/remotion-video/references/captions-pipeline.md +163 -0
- package/skills/remotion-video/references/render-and-pipeline.md +131 -0
- package/skills/remotion-video/scripts/verify.sh +169 -0
- package/skills/render/SKILL.md +256 -0
- package/skills/render/evals/README.md +12 -0
- package/skills/render/evals/cases.yaml +45 -0
- package/skills/render/references/blueprint-reference.md +203 -0
- package/skills/render/scripts/verify.sh +167 -0
- package/skills/replicate/SKILL.md +210 -0
- package/skills/replicate/evals/README.md +9 -0
- package/skills/replicate/evals/cases.yaml +45 -0
- package/skills/replicate/references/cog-packaging.md +89 -0
- package/skills/replicate/references/deployments-api.md +87 -0
- package/skills/replicate/references/webhooks-and-async.md +110 -0
- package/skills/replicate/scripts/verify.sh +162 -0
- package/skills/replicate-images/SKILL.md +241 -0
- package/skills/replicate-images/evals/README.md +13 -0
- package/skills/replicate-images/evals/cases.yaml +41 -0
- package/skills/replicate-images/references/editing-recipes.md +129 -0
- package/skills/replicate-images/references/models.md +131 -0
- package/skills/replicate-images/scripts/verify.sh +178 -0
- package/skills/reporting/SKILL.md +178 -0
- package/skills/reporting/evals/README.md +12 -0
- package/skills/reporting/evals/cases.yaml +46 -0
- package/skills/reporting/references/pipeline.md +213 -0
- package/skills/reporting/scripts/verify.sh +149 -0
- package/skills/research-ops/SKILL.md +200 -0
- package/skills/research-ops/evals/README.md +13 -0
- package/skills/research-ops/evals/cases.yaml +38 -0
- package/skills/research-ops/references/credibility-rubric.md +78 -0
- package/skills/research-ops/references/memo-template.md +63 -0
- package/skills/research-ops/scripts/verify.sh +181 -0
- package/skills/retention/SKILL.md +206 -0
- package/skills/retention/evals/README.md +13 -0
- package/skills/retention/evals/cases.yaml +42 -0
- package/skills/retention/references/health-score-and-metrics.md +97 -0
- package/skills/retention/references/save-and-winback-plays.md +65 -0
- package/skills/review/SKILL.md +222 -0
- package/skills/review/evals/README.md +84 -0
- package/skills/review/evals/cases.yaml +55 -0
- package/skills/review-management/SKILL.md +204 -0
- package/skills/review-management/evals/README.md +13 -0
- package/skills/review-management/evals/cases.yaml +60 -0
- package/skills/review-management/references/platform-apis.md +86 -0
- package/skills/review-management/scripts/verify.sh +128 -0
- package/skills/ruby/SKILL.md +316 -0
- package/skills/ruby/evals/README.md +12 -0
- package/skills/ruby/evals/cases.yaml +41 -0
- package/skills/ruby/references/gems-and-testing.md +208 -0
- package/skills/ruby/references/metaprogramming.md +161 -0
- package/skills/ruby/scripts/verify.sh +83 -0
- package/skills/runpod/SKILL.md +238 -0
- package/skills/runpod/evals/README.md +11 -0
- package/skills/runpod/evals/cases.yaml +47 -0
- package/skills/runpod/references/cost-and-scaling.md +85 -0
- package/skills/runpod/references/serverless-workers.md +101 -0
- package/skills/runpod/scripts/verify.sh +126 -0
- package/skills/rust/SKILL.md +395 -0
- package/skills/rust/evals/README.md +12 -0
- package/skills/rust/evals/cases.yaml +42 -0
- package/skills/rust/references/async-tokio.md +141 -0
- package/skills/rust/references/axum-service.md +132 -0
- package/skills/rust/references/ownership.md +86 -0
- package/skills/rust/references/testing.md +108 -0
- package/skills/rust/scripts/verify.sh +91 -0
- package/skills/sales-pipeline/SKILL.md +162 -0
- package/skills/sales-pipeline/evals/README.md +13 -0
- package/skills/sales-pipeline/evals/cases.yaml +60 -0
- package/skills/sales-pipeline/references/forecasting-math.md +82 -0
- package/skills/sales-pipeline/references/stage-playbook.md +84 -0
- package/skills/sales-pipeline/scripts/verify.sh +210 -0
- package/skills/scaling/SKILL.md +137 -0
- package/skills/scaling/evals/README.md +3 -0
- package/skills/scaling/evals/cases.yaml +42 -0
- package/skills/scaling/references/load-testing-k6.md +127 -0
- package/skills/scaling/scripts/example.load.js +24 -0
- package/skills/scaling/scripts/verify.sh +70 -0
- package/skills/sdd/SKILL.md +203 -0
- package/skills/sdd/evals/README.md +60 -0
- package/skills/sdd/evals/cases.yaml +78 -0
- package/skills/sdd-init/SKILL.md +148 -0
- package/skills/sdd-init/evals/README.md +3 -0
- package/skills/sdd-init/evals/cases.yaml +43 -0
- package/skills/secure-coding/SKILL.md +365 -0
- package/skills/secure-coding/evals/README.md +68 -0
- package/skills/secure-coding/evals/cases.yaml +55 -0
- package/skills/secure-coding/references/authn-authz.md +249 -0
- package/skills/secure-coding/references/owasp-by-stack.md +574 -0
- package/skills/secure-coding/references/secrets-and-supply-chain.md +205 -0
- package/skills/secure-coding/references/threat-modeling.md +213 -0
- package/skills/secure-coding/scripts/verify.sh +208 -0
- package/skills/security-scan/SKILL.md +239 -0
- package/skills/security-scan/evals/README.md +14 -0
- package/skills/security-scan/evals/cases.yaml +50 -0
- package/skills/security-scan/references/tools.md +98 -0
- package/skills/security-scan/references/triage.md +93 -0
- package/skills/security-scan/scripts/verify.sh +108 -0
- package/skills/seo-geo/SKILL.md +192 -0
- package/skills/seo-geo/evals/README.md +14 -0
- package/skills/seo-geo/evals/cases.yaml +45 -0
- package/skills/seo-geo/references/ai-crawler-control.md +104 -0
- package/skills/seo-geo/references/schema-recipes.md +130 -0
- package/skills/seo-geo/scripts/verify.sh +236 -0
- package/skills/ship/SKILL.md +258 -0
- package/skills/ship/evals/README.md +89 -0
- package/skills/ship/evals/cases.yaml +44 -0
- package/skills/shopify/SKILL.md +229 -0
- package/skills/shopify/evals/README.md +14 -0
- package/skills/shopify/evals/cases.yaml +41 -0
- package/skills/shopify/references/apps-graphql.md +103 -0
- package/skills/shopify/references/checkout-extensibility.md +71 -0
- package/skills/shopify/references/liquid-themes.md +89 -0
- package/skills/shopify/scripts/verify.sh +120 -0
- package/skills/shortform-editing/SKILL.md +161 -0
- package/skills/shortform-editing/evals/README.md +16 -0
- package/skills/shortform-editing/evals/cases.yaml +61 -0
- package/skills/shortform-editing/references/captions.md +85 -0
- package/skills/shortform-editing/references/ffmpeg-pipeline.md +126 -0
- package/skills/shortform-editing/scripts/verify.sh +148 -0
- package/skills/shortform-ideation/SKILL.md +153 -0
- package/skills/shortform-ideation/evals/README.md +20 -0
- package/skills/shortform-ideation/evals/cases.yaml +58 -0
- package/skills/shortform-ideation/references/experiment-ledger.md +85 -0
- package/skills/shortform-ideation/references/trend-sources.md +69 -0
- package/skills/shortform-ideation/scripts/verify.sh +172 -0
- package/skills/shortform-packaging/SKILL.md +247 -0
- package/skills/shortform-packaging/evals/README.md +10 -0
- package/skills/shortform-packaging/evals/cases.yaml +48 -0
- package/skills/shortform-packaging/references/package-templates.md +117 -0
- package/skills/shortform-packaging/scripts/verify.sh +210 -0
- package/skills/shortform-strategy/SKILL.md +149 -0
- package/skills/shortform-strategy/evals/README.md +3 -0
- package/skills/shortform-strategy/evals/cases.yaml +52 -0
- package/skills/shortform-strategy/references/learning-loop-template.md +49 -0
- package/skills/shortform-strategy/references/platform-signals-2026.md +46 -0
- package/skills/shortform-strategy/scripts/verify.sh +176 -0
- package/skills/skill-scout/SKILL.md +133 -0
- package/skills/skill-scout/evals/README.md +12 -0
- package/skills/skill-scout/evals/cases.yaml +56 -0
- package/skills/skill-scout/references/install-commands.md +76 -0
- package/skills/skill-scout/scripts/verify.sh +154 -0
- package/skills/social-publisher/SKILL.md +179 -0
- package/skills/social-publisher/evals/README.md +14 -0
- package/skills/social-publisher/evals/cases.yaml +55 -0
- package/skills/social-publisher/references/calendar-schema.md +97 -0
- package/skills/social-publisher/references/platform-limits.md +56 -0
- package/skills/social-publisher/scripts/verify.sh +232 -0
- package/skills/solid-js/SKILL.md +260 -0
- package/skills/solid-js/evals/README.md +3 -0
- package/skills/solid-js/evals/cases.yaml +38 -0
- package/skills/solid-js/references/reactivity-deep-dive.md +89 -0
- package/skills/solid-js/references/router-and-start.md +93 -0
- package/skills/solid-js/scripts/verify.sh +130 -0
- package/skills/sop-builder/SKILL.md +233 -0
- package/skills/sop-builder/evals/README.md +14 -0
- package/skills/sop-builder/evals/cases.yaml +48 -0
- package/skills/sop-builder/references/sop-skeleton.md +170 -0
- package/skills/specify/SKILL.md +214 -0
- package/skills/specify/evals/README.md +73 -0
- package/skills/specify/evals/cases.yaml +80 -0
- package/skills/specify/references/eliciting-requirements.md +77 -0
- package/skills/specify/references/spec-template.md +60 -0
- package/skills/spreadsheet-ops/SKILL.md +180 -0
- package/skills/spreadsheet-ops/evals/README.md +33 -0
- package/skills/spreadsheet-ops/evals/cases.yaml +42 -0
- package/skills/spreadsheet-ops/references/formula-cookbook.md +70 -0
- package/skills/spreadsheet-ops/references/python-excel.md +87 -0
- package/skills/spreadsheet-ops/references/sheets-api-appsscript.md +118 -0
- package/skills/spreadsheet-ops/scripts/verify.sh +152 -0
- package/skills/spring-boot/SKILL.md +375 -0
- package/skills/spring-boot/evals/README.md +11 -0
- package/skills/spring-boot/evals/cases.yaml +49 -0
- package/skills/spring-boot/references/jpa.md +94 -0
- package/skills/spring-boot/references/security.md +92 -0
- package/skills/spring-boot/references/testing.md +95 -0
- package/skills/spring-boot/scripts/verify.sh +115 -0
- package/skills/sql/SKILL.md +286 -0
- package/skills/sql/evals/README.md +9 -0
- package/skills/sql/evals/cases.yaml +49 -0
- package/skills/sql/references/ctes-and-recursion.md +63 -0
- package/skills/sql/references/joins-and-sets.md +71 -0
- package/skills/sql/references/portability.md +38 -0
- package/skills/sql/references/window-functions.md +72 -0
- package/skills/sql/scripts/verify.sh +139 -0
- package/skills/sqlite-turso/SKILL.md +214 -0
- package/skills/sqlite-turso/evals/README.md +24 -0
- package/skills/sqlite-turso/evals/cases.yaml +45 -0
- package/skills/sqlite-turso/references/embedded-replicas.md +96 -0
- package/skills/sqlite-turso/scripts/verify.sh +95 -0
- package/skills/stripe/SKILL.md +269 -0
- package/skills/stripe/evals/README.md +11 -0
- package/skills/stripe/evals/cases.yaml +45 -0
- package/skills/stripe/references/going-live.md +64 -0
- package/skills/stripe/references/webhook-events.md +79 -0
- package/skills/stripe/scripts/verify.sh +130 -0
- package/skills/structured-extraction/SKILL.md +230 -0
- package/skills/structured-extraction/evals/README.md +13 -0
- package/skills/structured-extraction/evals/cases.yaml +70 -0
- package/skills/structured-extraction/references/providers.md +152 -0
- package/skills/structured-extraction/scripts/verify.sh +160 -0
- package/skills/suggest/SKILL.md +30 -0
- package/skills/suggest/evals/README.md +14 -0
- package/skills/suggest/evals/cases.yaml +51 -0
- package/skills/supabase/SKILL.md +268 -0
- package/skills/supabase/evals/README.md +12 -0
- package/skills/supabase/evals/cases.yaml +42 -0
- package/skills/supabase/references/auth-ssr.md +173 -0
- package/skills/supabase/references/rls-cookbook.md +122 -0
- package/skills/supabase/scripts/verify.sh +149 -0
- package/skills/svelte/SKILL.md +238 -0
- package/skills/svelte/evals/README.md +3 -0
- package/skills/svelte/evals/cases.yaml +41 -0
- package/skills/svelte/references/runes.md +97 -0
- package/skills/svelte/references/sveltekit-data.md +156 -0
- package/skills/svelte/scripts/verify.sh +128 -0
- package/skills/swift-ios/SKILL.md +217 -0
- package/skills/swift-ios/evals/README.md +3 -0
- package/skills/swift-ios/evals/cases.yaml +46 -0
- package/skills/swift-ios/references/concurrency.md +132 -0
- package/skills/swift-ios/references/testing.md +112 -0
- package/skills/swift-ios/scripts/verify.sh +98 -0
- package/skills/tasks/SKILL.md +260 -0
- package/skills/tasks/evals/README.md +70 -0
- package/skills/tasks/evals/cases.yaml +75 -0
- package/skills/tauri/SKILL.md +224 -0
- package/skills/tauri/evals/README.md +12 -0
- package/skills/tauri/evals/cases.yaml +46 -0
- package/skills/tauri/references/bundling-distribution.md +129 -0
- package/skills/tauri/references/security.md +143 -0
- package/skills/tauri/scripts/verify.sh +178 -0
- package/skills/technical-writing/SKILL.md +230 -0
- package/skills/technical-writing/evals/README.md +12 -0
- package/skills/technical-writing/evals/cases.yaml +53 -0
- package/skills/technical-writing/references/diataxis-modes.md +131 -0
- package/skills/technical-writing/references/vale-starter.md +90 -0
- package/skills/technical-writing/scripts/verify.sh +83 -0
- package/skills/terms-conditions/SKILL.md +147 -0
- package/skills/terms-conditions/evals/README.md +14 -0
- package/skills/terms-conditions/evals/cases.yaml +48 -0
- package/skills/terms-conditions/references/clause-library.md +158 -0
- package/skills/terms-conditions/references/notices-and-aup.md +125 -0
- package/skills/terms-conditions/scripts/verify.sh +92 -0
- package/skills/testing-go/SKILL.md +246 -0
- package/skills/testing-go/evals/README.md +3 -0
- package/skills/testing-go/evals/cases.yaml +44 -0
- package/skills/testing-go/references/coverage-and-benchmarks.md +85 -0
- package/skills/testing-go/references/mocks-and-fakes.md +140 -0
- package/skills/testing-go/references/synctest-and-concurrency.md +82 -0
- package/skills/testing-go/scripts/verify.sh +72 -0
- package/skills/testing-py/SKILL.md +179 -0
- package/skills/testing-py/evals/README.md +5 -0
- package/skills/testing-py/evals/cases.yaml +44 -0
- package/skills/testing-py/references/mocking.md +141 -0
- package/skills/testing-py/references/property-testing.md +99 -0
- package/skills/testing-py/scripts/verify.sh +117 -0
- package/skills/testing-web/SKILL.md +224 -0
- package/skills/testing-web/evals/README.md +11 -0
- package/skills/testing-web/evals/cases.yaml +52 -0
- package/skills/testing-web/references/jest-setup.md +88 -0
- package/skills/testing-web/references/recipes.md +116 -0
- package/skills/testing-web/scripts/verify.sh +111 -0
- package/skills/tiktok-api/SKILL.md +315 -0
- package/skills/tiktok-api/evals/README.md +17 -0
- package/skills/tiktok-api/evals/cases.yaml +51 -0
- package/skills/tiktok-api/references/metrics-and-publish.md +127 -0
- package/skills/tiktok-api/references/oauth-setup.md +105 -0
- package/skills/tiktok-api/references/wiki-schema.md +85 -0
- package/skills/tiktok-api/scripts/verify.sh +96 -0
- package/skills/together-fireworks/SKILL.md +181 -0
- package/skills/together-fireworks/evals/README.md +3 -0
- package/skills/together-fireworks/evals/cases.yaml +50 -0
- package/skills/together-fireworks/references/batch-and-tuning.md +59 -0
- package/skills/together-fireworks/references/models-and-pricing.md +79 -0
- package/skills/together-fireworks/scripts/verify.sh +165 -0
- package/skills/translation-l10n/SKILL.md +229 -0
- package/skills/translation-l10n/evals/README.md +3 -0
- package/skills/translation-l10n/evals/cases.yaml +39 -0
- package/skills/translation-l10n/references/icu-cookbook.md +82 -0
- package/skills/translation-l10n/references/rtl-and-bidi.md +60 -0
- package/skills/typescript/SKILL.md +258 -0
- package/skills/typescript/evals/README.md +15 -0
- package/skills/typescript/evals/cases.yaml +46 -0
- package/skills/typescript/references/build-and-monorepo.md +141 -0
- package/skills/typescript/references/type-system.md +162 -0
- package/skills/typescript/scripts/verify.sh +52 -0
- package/skills/unit-economics/SKILL.md +180 -0
- package/skills/unit-economics/evals/README.md +5 -0
- package/skills/unit-economics/evals/cases.yaml +43 -0
- package/skills/unit-economics/references/formulas.md +144 -0
- package/skills/unit-economics/scripts/verify.sh +179 -0
- package/skills/vector-db/SKILL.md +189 -0
- package/skills/vector-db/evals/README.md +10 -0
- package/skills/vector-db/evals/cases.yaml +45 -0
- package/skills/vector-db/references/engines.md +175 -0
- package/skills/vector-db/references/tuning.md +62 -0
- package/skills/vector-db/scripts/verify.sh +110 -0
- package/skills/vercel/SKILL.md +242 -0
- package/skills/vercel/evals/README.md +23 -0
- package/skills/vercel/evals/cases.yaml +45 -0
- package/skills/vercel/references/cli-cookbook.md +98 -0
- package/skills/vercel/references/vercel-json.md +120 -0
- package/skills/vercel/scripts/verify.sh +168 -0
- package/skills/verify/SKILL.md +188 -0
- package/skills/verify/evals/README.md +78 -0
- package/skills/verify/evals/cases.yaml +74 -0
- package/skills/video-shorts/SKILL.md +163 -0
- package/skills/video-shorts/evals/README.md +15 -0
- package/skills/video-shorts/evals/cases.yaml +56 -0
- package/skills/video-shorts/references/hook-and-script-patterns.md +95 -0
- package/skills/video-shorts/references/specs-and-safe-zones.md +74 -0
- package/skills/video-shorts/scripts/verify.sh +172 -0
- package/skills/vue-nuxt/SKILL.md +384 -0
- package/skills/vue-nuxt/evals/README.md +11 -0
- package/skills/vue-nuxt/evals/cases.yaml +49 -0
- package/skills/vue-nuxt/references/data-and-state.md +127 -0
- package/skills/vue-nuxt/references/migration-nuxt4.md +79 -0
- package/skills/vue-nuxt/references/nitro-and-rendering.md +117 -0
- package/skills/vue-nuxt/references/reactivity.md +135 -0
- package/skills/vue-nuxt/scripts/verify.sh +148 -0
- package/skills/webhooks/SKILL.md +246 -0
- package/skills/webhooks/evals/README.md +15 -0
- package/skills/webhooks/evals/cases.yaml +46 -0
- package/skills/webhooks/references/framework-raw-body.md +97 -0
- package/skills/webhooks/references/signature-schemes.md +66 -0
- package/skills/webhooks/scripts/verify.sh +142 -0
- package/skills/webinar/SKILL.md +196 -0
- package/skills/webinar/evals/README.md +14 -0
- package/skills/webinar/evals/cases.yaml +44 -0
- package/skills/webinar/references/email-cadence.md +75 -0
- package/skills/webinar/references/run-of-show.md +83 -0
- package/skills/whatsapp-telegram/SKILL.md +235 -0
- package/skills/whatsapp-telegram/evals/README.md +11 -0
- package/skills/whatsapp-telegram/evals/cases.yaml +44 -0
- package/skills/whatsapp-telegram/references/telegram-bot-api.md +91 -0
- package/skills/whatsapp-telegram/references/whatsapp-cloud-api.md +103 -0
- package/skills/whatsapp-telegram/scripts/verify.sh +90 -0
- package/skills/wordpress/SKILL.md +224 -0
- package/skills/wordpress/evals/README.md +3 -0
- package/skills/wordpress/evals/cases.yaml +50 -0
- package/skills/wordpress/references/hardening.md +108 -0
- package/skills/wordpress/references/performance.md +80 -0
- package/skills/wordpress/references/woocommerce.md +65 -0
- package/skills/wordpress/scripts/verify.sh +96 -0
- package/skills/worktrees/SKILL.md +199 -0
- package/skills/worktrees/evals/README.md +78 -0
- package/skills/worktrees/evals/cases.yaml +47 -0
- package/skills/youtube-api/SKILL.md +286 -0
- package/skills/youtube-api/evals/README.md +3 -0
- package/skills/youtube-api/evals/cases.yaml +50 -0
- package/skills/youtube-api/references/analytics-queries.md +89 -0
- package/skills/youtube-api/references/oauth-setup.md +55 -0
- package/skills/youtube-api/references/wiki-schema.md +70 -0
- package/skills/youtube-api/scripts/verify.sh +84 -0
- package/skills/youtube-ideation/SKILL.md +234 -0
- package/skills/youtube-ideation/evals/README.md +14 -0
- package/skills/youtube-ideation/evals/cases.yaml +52 -0
- package/skills/youtube-ideation/references/idea-ledger-and-loop.md +89 -0
- package/skills/youtube-ideation/references/research-and-signals.md +92 -0
- package/skills/youtube-ideation/scripts/verify.sh +237 -0
- package/skills/youtube-packaging/SKILL.md +220 -0
- package/skills/youtube-packaging/evals/README.md +16 -0
- package/skills/youtube-packaging/evals/cases.yaml +48 -0
- package/skills/youtube-packaging/references/description-and-chapters.md +135 -0
- package/skills/youtube-packaging/scripts/verify.sh +250 -0
- package/skills/youtube-strategy/SKILL.md +157 -0
- package/skills/youtube-strategy/evals/README.md +5 -0
- package/skills/youtube-strategy/evals/cases.yaml +61 -0
- package/skills/youtube-strategy/references/channel-architecture.md +46 -0
- package/skills/youtube-strategy/references/wiki-records.md +86 -0
- package/skills/youtube-strategy/scripts/verify.sh +118 -0
- package/skills/youtube-thumbnails/SKILL.md +180 -0
- package/skills/youtube-thumbnails/evals/README.md +11 -0
- package/skills/youtube-thumbnails/evals/cases.yaml +48 -0
- package/skills/youtube-thumbnails/references/composition-and-specs.md +69 -0
- package/skills/youtube-thumbnails/references/experiment-log-format.md +65 -0
- package/skills/youtube-thumbnails/scripts/verify.sh +123 -0
- package/targets/claude.js +23 -0
- package/targets/codex.js +29 -0
- package/targets/cursor.js +20 -0
- package/targets/gemini.js +29 -0
- package/targets/index.js +55 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rag
|
|
3
|
+
description: "Use when building grounded Q&A over your own documents — handbook, support tickets, PDFs, policies — and the answers must come only from the corpus with citations; when retrieval surfaces the right document but the answer is still wrong; when the model invents facts that are not in the sources; when you need to measure whether retrieval is any good; when the right document is found but the wrong passage is used. Triggers: 'build a bot that answers from our docs with citations', 'my RAG returns the right document but the answer is wrong', 'how do I stop the model hallucinating facts not in the corpus', 'context recall vs context precision', 'add contextual retrieval / prepend chunk context before embedding', 'hybrid search plus rerank pipeline', 'respuestas con citas sobre nuestros documentos', 'el bot s'inventa coses que no surten als documents'. NOT operating the vector store itself — collection schema, HNSW ef_search, quantization (that is vector-db)."
|
|
4
|
+
tags: [rag, retrieval-augmented-generation, chunking, hybrid-search, reranking, grounding, citations, faithfulness, contextual-retrieval]
|
|
5
|
+
recommends: [vector-db, embeddings-search, document-processing, chatbot, agent-eval]
|
|
6
|
+
origin: risco
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# rag — own the retrieve → rerank → ground → cite → refuse pipeline
|
|
10
|
+
|
|
11
|
+
You own the **pipeline** that turns a corpus plus a question into a grounded, cited answer.
|
|
12
|
+
You do **not** own the store underneath it (`../vector-db/SKILL.md`) nor the embedding and
|
|
13
|
+
chunk-sizing science beside it (`embeddings-search`). Your job is the glue: chunk, optionally
|
|
14
|
+
contextualize, index, retrieve hybrid, rerank, assemble a grounded prompt, cite the sources,
|
|
15
|
+
and **refuse** when the context does not contain the answer.
|
|
16
|
+
|
|
17
|
+
You are judged by **retrieval quality and answer faithfulness**, not by raw vector math. If you
|
|
18
|
+
find yourself tuning HNSW parameters, you wandered into `vector-db`. If you are comparing
|
|
19
|
+
embedding models or chunk sizes, that is `embeddings-search`.
|
|
20
|
+
|
|
21
|
+
## The pipeline, and where each stage hands off
|
|
22
|
+
|
|
23
|
+
Each stage is a real branch — most failures live in one specific stage, and several stages
|
|
24
|
+
delegate to a sibling skill rather than living here.
|
|
25
|
+
|
|
26
|
+
| Stage | What you do | Hands off to |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| Ingest | Get clean text out of PDFs/DOCX/HTML/OCR | `../document-processing/SKILL.md` |
|
|
29
|
+
| Chunk | Heading/semantic-aware splits with overlap, stable ids | chunk-size science → `embeddings-search` |
|
|
30
|
+
| Contextualize | Prepend an LLM-written context blurb per chunk (optional) | stays here |
|
|
31
|
+
| Index | Embed + write dense vectors and a BM25/keyword index | the store → `../vector-db/SKILL.md` |
|
|
32
|
+
| Retrieve | Hybrid dense + BM25, fuse with RRF, top ~150 | hybrid query mechanics → `../vector-db/SKILL.md` |
|
|
33
|
+
| Rerank | Cross-encoder over the 150, keep top ~20 | stays here |
|
|
34
|
+
| Ground + cite | System prompt: answer only from context, cite chunk ids | stays here |
|
|
35
|
+
| Refuse | Output "I don't have enough information" on weak context | stays here |
|
|
36
|
+
| Evaluate | Faithfulness, answer relevancy, context precision/recall | general harness → `agent-eval` |
|
|
37
|
+
|
|
38
|
+
Surfacing this answer inside a chat product (sessions, channels, UI) is `../chatbot/SKILL.md`;
|
|
39
|
+
pulling schema-constrained fields out of text is `structured-extraction`. `rag` is the
|
|
40
|
+
retrieval brain those products call.
|
|
41
|
+
|
|
42
|
+
## Retrieval is the bottleneck — measure recall before touching the prompt
|
|
43
|
+
|
|
44
|
+
Naive RAG pipelines fail at the **retrieval** step in up to ~40% of cases *even when the correct
|
|
45
|
+
document is in the corpus* (StackAI / Lushbinary, 2026-06-02). Why this matters: if the right
|
|
46
|
+
passage never reaches the model, no prompt wording can save the answer. So your first move on a
|
|
47
|
+
broken pipeline is never the prompt — it is measuring whether retrieval delivered the goods.
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
Bad → "answers are wrong, let me lower temperature and reword the system prompt."
|
|
51
|
+
Good → measure context recall on a golden set; if the right chunk isn't in the top-K,
|
|
52
|
+
fix chunking + hybrid + rerank first. Only then touch grounding.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Order of attack when answers are wrong: **context recall → context precision → grounding prompt
|
|
56
|
+
→ generation params**. The last item almost never moves the needle.
|
|
57
|
+
|
|
58
|
+
## Chunking — the highest-leverage single fix
|
|
59
|
+
|
|
60
|
+
Chunk on structure, not on a blind character count. Why: too-small loses the context a passage
|
|
61
|
+
needs to be interpretable; too-large dilutes the embedding so the relevant sentence gets averaged
|
|
62
|
+
away (StackAI; EdenAI 2025, accessed 2026-06-02).
|
|
63
|
+
|
|
64
|
+
- Split on headings/sections first, then sub-split long sections to a target window.
|
|
65
|
+
- Keep **overlap** (~10–20% of the window) so a fact spanning a boundary survives in one chunk.
|
|
66
|
+
- Attach a **stable `chunk_id` and `source`** at creation — you will need them end to end for
|
|
67
|
+
citations (see below). Never embed text and discard where it came from.
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
# Heading-aware split sketch; real size tuning belongs in embeddings-search.
|
|
71
|
+
def chunk_markdown(doc_id, text, target=800, overlap=120):
|
|
72
|
+
sections, buf, head = [], [], None
|
|
73
|
+
for line in text.splitlines():
|
|
74
|
+
if line.startswith("#"):
|
|
75
|
+
if buf: sections.append((head, "\n".join(buf))); buf = []
|
|
76
|
+
head = line.lstrip("# ").strip()
|
|
77
|
+
else:
|
|
78
|
+
buf.append(line)
|
|
79
|
+
if buf: sections.append((head, "\n".join(buf)))
|
|
80
|
+
out, i = [], 0
|
|
81
|
+
for head, body in sections:
|
|
82
|
+
for start in range(0, max(1, len(body)), target - overlap):
|
|
83
|
+
piece = body[start:start + target]
|
|
84
|
+
out.append({"chunk_id": f"{doc_id}#{i}", "source": doc_id,
|
|
85
|
+
"heading": head, "text": piece})
|
|
86
|
+
i += 1
|
|
87
|
+
return out
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
For the deep "what window/overlap maximizes recall for *this* corpus" study, that is
|
|
91
|
+
`embeddings-search`. Here you just need structurally sane chunks that keep their ids.
|
|
92
|
+
|
|
93
|
+
## Contextual retrieval — prepend context before you embed
|
|
94
|
+
|
|
95
|
+
Anthropic's Contextual Retrieval (Sept 2024) prepends a short LLM-generated blurb to each chunk
|
|
96
|
+
*before* embedding **and** before BM25 indexing, so an isolated chunk knows what document and
|
|
97
|
+
section it belongs to. Why it matters: it cuts failed retrievals by ~35% (contextual embeddings
|
|
98
|
+
alone), ~49% (contextual embeddings + contextual BM25), and ~67% once reranking is added
|
|
99
|
+
(anthropic.com/news/contextual-retrieval, 2024-09; accessed 2026-06-02).
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
<document>{{WHOLE_DOC}}</document>
|
|
103
|
+
Here is the chunk we want to situate within the whole document:
|
|
104
|
+
<chunk>{{CHUNK}}</chunk>
|
|
105
|
+
Give a short, standalone context (1–2 sentences) that situates this chunk within the
|
|
106
|
+
document for search retrieval. Answer only with the context, nothing else.
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Embed `context + "\n" + chunk_text` (not the bare chunk). The full implementation — caching the
|
|
110
|
+
document prompt, batching, the BM25 side — lives in `references/pipeline.md`.
|
|
111
|
+
|
|
112
|
+
## Hybrid retrieval + RRF + rerank
|
|
113
|
+
|
|
114
|
+
Dense vectors miss exact terms (codes, names, error strings); BM25 keyword search catches them
|
|
115
|
+
but misses paraphrase. Combine both, fuse with **Reciprocal Rank Fusion (RRF)**, then rerank
|
|
116
|
+
with a cross-encoder. The default-best quality/cost funnel (Microsoft Cloud Blog 2025-02-04;
|
|
117
|
+
StackAI, accessed 2026-06-02):
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
retrieve ~150 candidates (dense + BM25, fused with RRF)
|
|
121
|
+
→ rerank all 150 with a cross-encoder
|
|
122
|
+
→ keep top ~20 for the prompt
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The actual hybrid query (named vectors, sparse-dense, server-side fusion) is `vector-db`. Here
|
|
126
|
+
you own the funnel and the reranker choice:
|
|
127
|
+
|
|
128
|
+
- **Cohere Rerank 3.5** — managed cross-encoder, context length 4096, SOTA on BEIR and
|
|
129
|
+
multilingual, available via Cohere API, Bedrock, Pinecone, Azure (docs.cohere.com/changelog/
|
|
130
|
+
rerank-v3.5, accessed 2026-06-02). Use when you want quality without hosting a model.
|
|
131
|
+
- A **local cross-encoder** (e.g. a `bge-reranker`) — use when data cannot leave your network or
|
|
132
|
+
you need zero per-call cost; you pay in GPU/latency instead.
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
# Rerank the fused candidates down to the prompt set; keep ids intact.
|
|
136
|
+
import cohere
|
|
137
|
+
co = cohere.ClientV2()
|
|
138
|
+
ranked = co.rerank(model="rerank-v3.5", query=q,
|
|
139
|
+
documents=[c["text"] for c in candidates], top_n=20)
|
|
140
|
+
top = [candidates[r.index] for r in ranked.results] # each still carries chunk_id + source
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Ground the prompt — answer only from context, cite, refuse
|
|
144
|
+
|
|
145
|
+
Properly grounded RAG reduces hallucination rates by up to ~71%; poorly grounded pipelines still
|
|
146
|
+
hallucinate in up to ~40% of responses *even with the right doc retrieved* (Confident AI / Maxim
|
|
147
|
+
2025, accessed 2026-06-02). The prompt must do three non-negotiable things: bind the answer to
|
|
148
|
+
the context, force inline citations, and provide an explicit refusal path.
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
You answer ONLY using the information inside <context>. Do not use prior knowledge.
|
|
152
|
+
Cite every claim with the chunk id it came from, like [chunk_id]. Multiple ids are fine.
|
|
153
|
+
If the context does not contain enough information to answer, reply exactly:
|
|
154
|
+
"I don't have enough information in the provided sources to answer that."
|
|
155
|
+
(Spanish corpora: "No tengo suficiente información en las fuentes para responder.")
|
|
156
|
+
|
|
157
|
+
<context>
|
|
158
|
+
[doc12#3] {chunk text...}
|
|
159
|
+
[doc12#4] {chunk text...}
|
|
160
|
+
</context>
|
|
161
|
+
|
|
162
|
+
Question: {{question}}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
A grounding prompt **without a refusal path is a bug** — it converts "missing context" into a
|
|
166
|
+
confident fabrication. The refusal clause is what turns retrieval failures into honest non-answers.
|
|
167
|
+
|
|
168
|
+
## Citations — carry ids the whole way
|
|
169
|
+
|
|
170
|
+
The answer can only link back if a stable id survives every stage: chunk → retrieve → rerank →
|
|
171
|
+
prompt → answer. Why: if you embed text and drop the id at index time, there is nothing for a
|
|
172
|
+
citation to point at, and you cannot debug which passage produced a wrong claim.
|
|
173
|
+
|
|
174
|
+
- Put `chunk_id` and `source` on the chunk at creation; keep them on the object through rerank.
|
|
175
|
+
- Render them into the `<context>` block (`[chunk_id] text`) so the model can quote them.
|
|
176
|
+
- Map cited ids back to source URLs/pages when you render the answer to the user.
|
|
177
|
+
|
|
178
|
+
## Evaluating it — metrics, not vibes
|
|
179
|
+
|
|
180
|
+
Faithfulness is **not** correctness: an answer can be faithful to a wrong chunk. Measure four
|
|
181
|
+
RAGAS metrics on a small golden Q/A set (RAGAS docs; Cohorte 2025; Confident AI, accessed
|
|
182
|
+
2026-06-02):
|
|
183
|
+
|
|
184
|
+
| Failure symptom | Metric that catches it | First fix |
|
|
185
|
+
|---|---|---|
|
|
186
|
+
| Answer states things not in the sources | **faithfulness** (claims supported by context) | grounding prompt + refusal |
|
|
187
|
+
| Answer is on-topic but doesn't address the question | **answer relevancy** | prompt / query rewriting |
|
|
188
|
+
| Relevant chunks exist but rank below junk | **context precision** | reranker, RRF weights |
|
|
189
|
+
| The needed chunk never gets retrieved | **context recall** | chunking, contextual retrieval, hybrid |
|
|
190
|
+
|
|
191
|
+
Build a 30–50 question golden set with known-good answers, score with RAGAS, and gate CI below a
|
|
192
|
+
threshold (e.g. faithfulness ≥ 0.90, context recall ≥ 0.85). Full formulas, thresholds, and the
|
|
193
|
+
CI snippet are in `references/evaluation.md`. The general-purpose eval harness is `agent-eval`;
|
|
194
|
+
the RAG-specific metrics live here.
|
|
195
|
+
|
|
196
|
+
## Anti-patterns
|
|
197
|
+
|
|
198
|
+
| Anti-pattern | Why it breaks | Do instead |
|
|
199
|
+
|---|---|---|
|
|
200
|
+
| Fixed char-count chunking, blind to structure | Splits mid-sentence; dilutes embeddings | Heading/semantic chunks with overlap |
|
|
201
|
+
| Rerank disabled — stuff top-50 raw into prompt | Noise drowns the right passage; cost balloons | Retrieve ~150 → rerank → keep ~20 |
|
|
202
|
+
| No refusal path in the grounding prompt | Missing context becomes confident fabrication | Explicit "I don't have enough information" |
|
|
203
|
+
| Embed text, drop the chunk id | Nothing to cite or debug | Carry `chunk_id`+`source` end to end |
|
|
204
|
+
| "It looks good" eval on vibes | Regressions ship silently | Golden set + RAGAS + CI threshold gate |
|
|
205
|
+
| Embedding the query differently from the corpus | Query and chunks land in different spaces | Same model + same preprocessing both sides |
|
|
206
|
+
| Dense-only, ignoring BM25/keyword | Misses exact codes/names/error strings | Hybrid dense + BM25 fused with RRF |
|
|
207
|
+
| Tuning temperature to fix wrong answers | Generation is rarely the bottleneck | Measure context recall first |
|
|
208
|
+
|
|
209
|
+
## Wiring map
|
|
210
|
+
|
|
211
|
+
- **Ingestion (file → text, OCR, tables):** `../document-processing/SKILL.md` — you assume text
|
|
212
|
+
already exists; send raw PDFs/DOCX/scans there first.
|
|
213
|
+
- **The store (collection, index, hybrid query, quantization):** `../vector-db/SKILL.md` — you
|
|
214
|
+
call it to upsert and query; it owns the knobs.
|
|
215
|
+
- **Embedding model + chunk-size science:** `embeddings-search` — picking the model, dims,
|
|
216
|
+
cost, and the semantic-vs-fixed chunking experiments.
|
|
217
|
+
- **Chat product surface (sessions, channels, UI):** `../chatbot/SKILL.md` — wraps the answer
|
|
218
|
+
you return; it calls you, not the reverse.
|
|
219
|
+
- **Multi-step tool/agent loop with state:** `../building-agents/SKILL.md` — when retrieval is
|
|
220
|
+
one tool among many in a larger loop.
|
|
221
|
+
- **General eval framework:** `agent-eval` — RAG-specific metrics are here; the harness is there.
|
|
222
|
+
- **Schema-constrained field extraction:** `structured-extraction` — when the goal is fields,
|
|
223
|
+
not a grounded prose answer.
|
|
224
|
+
|
|
225
|
+
See `references/pipeline.md` for the full runnable retrieve → rerank → answer skeleton and
|
|
226
|
+
`references/evaluation.md` for the metric formulas, thresholds, and CI gate.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# rag evals — how to run
|
|
2
|
+
|
|
3
|
+
These are routing and capability checks, not unit tests. Run the `should_trigger` prompts against
|
|
4
|
+
your skill router and confirm `rag` fires; run the `should_not_trigger` prompts and confirm the
|
|
5
|
+
router instead defers to the named sibling (`vector-db`, `embeddings-search`, `document-processing`,
|
|
6
|
+
`chatbot`, `structured-extraction`) — a miss there means the boundary in the description needs
|
|
7
|
+
sharpening. For the `capability` case, hand the scenario to the agent with this skill loaded and
|
|
8
|
+
grade the answer against the `must_include` rubric line by line (does it name all five pipeline
|
|
9
|
+
stages, hybrid + RRF, the rerank funnel, the grounding-plus-refusal contract, the eval gate, and
|
|
10
|
+
the two handoffs); each rubric item is pass/fail. You can do this by hand or wire it through the
|
|
11
|
+
`agent-eval` harness for a repeatable score. `scripts/verify.sh` is the static gate on the skill's
|
|
12
|
+
own artifacts (frontmatter, the grounding contract, the references, the RAGAS metric names) and is
|
|
13
|
+
separate from these capability checks.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
skill: rag
|
|
2
|
+
|
|
3
|
+
should_trigger:
|
|
4
|
+
- prompt: "Build Q&A over our internal handbook so the bot only answers from it and adds citations."
|
|
5
|
+
why: Core RAG ask — grounded answers from a private corpus with citations is exactly the pipeline rag owns.
|
|
6
|
+
- prompt: "My RAG returns the right document but the answer is still wrong."
|
|
7
|
+
why: Non-obvious — the store retrieved correctly, so this is a passage/rerank/grounding problem inside the pipeline, not a vector-db issue.
|
|
8
|
+
- prompt: "The assistant keeps inventing facts that aren't in our docs — how do I ground it so it stops?"
|
|
9
|
+
why: Grounding + refusal contract; forcing answer-only-from-context and an explicit refusal is rag's job.
|
|
10
|
+
- prompt: "How do I measure if my retrieval is any good — context recall vs context precision?"
|
|
11
|
+
why: RAG-specific evaluation metrics; rag carries faithfulness/recall/precision even though the general harness is agent-eval.
|
|
12
|
+
- prompt: "Add contextual retrieval — prepend an LLM context blurb to each chunk before embedding to cut failed retrievals."
|
|
13
|
+
why: Anthropic Contextual Retrieval technique lives in the rag pipeline (contextualize stage), not in embeddings-search.
|
|
14
|
+
- prompt: "Wire a hybrid search plus rerank flow: dense + BM25 fused, then a cross-encoder before generation."
|
|
15
|
+
why: The retrieve → rerank → generate funnel is the heart of the rag pipeline.
|
|
16
|
+
- prompt: "El bot s'inventa coses que no surten als nostres documents i vull respostes amb cites."
|
|
17
|
+
why: Catalan — grounding + citations over a private corpus is the rag pipeline.
|
|
18
|
+
|
|
19
|
+
should_not_trigger:
|
|
20
|
+
- prompt: "Set up a Qdrant collection with binary quantization and tune ef_search for recall."
|
|
21
|
+
route_to: vector-db
|
|
22
|
+
why: Store operations — collection schema, quantization, HNSW knobs — are the layer under rag, not the pipeline.
|
|
23
|
+
- prompt: "Which embedding model and chunk size give the best recall for a code corpus?"
|
|
24
|
+
route_to: embeddings-search
|
|
25
|
+
why: Embedding-model choice and chunk-size science are the layer beside rag; rag uses a chunker but does not own the experiments.
|
|
26
|
+
- prompt: "Extract the tables from these scanned invoice PDFs into clean text."
|
|
27
|
+
route_to: document-processing
|
|
28
|
+
why: File-to-text / OCR is pre-RAG ingestion; rag assumes text already exists.
|
|
29
|
+
- prompt: "Build the chat UI with sessions and channel routing for our support bot."
|
|
30
|
+
route_to: chatbot
|
|
31
|
+
why: Product surface (sessions, UI, channels) — chatbot calls the rag brain, it is not the retrieval pipeline itself.
|
|
32
|
+
- prompt: "Pull the buyer name, total, and due date out of this contract into a fixed JSON schema."
|
|
33
|
+
route_to: structured-extraction
|
|
34
|
+
why: Schema-constrained field extraction, not a grounded prose Q&A answer.
|
|
35
|
+
|
|
36
|
+
capability:
|
|
37
|
+
- scenario: "Design a grounded RAG pipeline over a 500-PDF policy corpus that currently hallucinates and sometimes answers despite the right document being present."
|
|
38
|
+
must_include:
|
|
39
|
+
- Names the full pipeline stages retrieve → rerank → ground → cite → refuse.
|
|
40
|
+
- Specifies hybrid retrieval (dense + BM25) fused with Reciprocal Rank Fusion (RRF).
|
|
41
|
+
- Uses a reranker (Cohere Rerank 3.5 or a local cross-encoder) with a top-N → top-K funnel (~150 → ~20).
|
|
42
|
+
- Grounding prompt forces answer-only-from-context, inline citations of chunk ids, and an explicit refusal on insufficient context.
|
|
43
|
+
- Defines an eval plan with faithfulness plus context recall/precision and a CI threshold gate.
|
|
44
|
+
- Routes file-to-text ingestion to document-processing and store operations to vector-db.
|
|
45
|
+
- Mentions contextual retrieval (prepend context before embedding) as a recall lever for the policy corpus.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# references/evaluation.md — measuring a RAG pipeline
|
|
2
|
+
|
|
3
|
+
Faithfulness is not correctness, and "it looks good" is not a metric. This file gives the golden
|
|
4
|
+
set, the four RAGAS metrics with plain-English formulas and sensible thresholds, the
|
|
5
|
+
failure → metric → fix mapping, and a CI gate that fails the build below threshold.
|
|
6
|
+
|
|
7
|
+
Sources: RAGAS docs; Cohorte "Evaluating RAG Systems in 2025"; Confident AI / Maxim "RAG
|
|
8
|
+
Evaluation 2025" (accessed 2026-06-02).
|
|
9
|
+
|
|
10
|
+
## 1. Build a golden set
|
|
11
|
+
|
|
12
|
+
A golden set is 30–50 questions with known-good answers and, ideally, the ids of the chunks that
|
|
13
|
+
*should* be retrieved.
|
|
14
|
+
|
|
15
|
+
- Cover the real query distribution: factual lookups, multi-hop, "not in the corpus" (so you can
|
|
16
|
+
test the refusal path), and paraphrased duplicates.
|
|
17
|
+
- Include at least a few questions whose answer is **not** in the corpus — a good pipeline must
|
|
18
|
+
refuse these, and you cannot measure refusal without them.
|
|
19
|
+
- Store as a tiny YAML/JSON: `{question, ground_truth_answer, ground_truth_chunk_ids}`.
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
- question: "How many vacation days do new employees get?"
|
|
23
|
+
ground_truth_answer: "15 days in the first year."
|
|
24
|
+
ground_truth_chunk_ids: ["handbook#42"]
|
|
25
|
+
- question: "What is the company's policy on Mars colonization?"
|
|
26
|
+
ground_truth_answer: null # not in corpus — must refuse
|
|
27
|
+
ground_truth_chunk_ids: []
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 2. The four RAGAS metrics
|
|
31
|
+
|
|
32
|
+
| Metric | Plain-English formula | What it catches |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| **faithfulness** | decompose the answer into atomic claims; fraction of claims supported by retrieved context. 1.0 = fully grounded | answer states things not in the sources |
|
|
35
|
+
| **answer relevancy** | how directly the answer addresses the question (low if padded/off-topic) | on-topic-but-evasive answers |
|
|
36
|
+
| **context precision** | are the relevant chunks ranked at the top of what was retrieved | relevant chunks exist but rank below junk |
|
|
37
|
+
| **context recall** | fraction of ground-truth chunks that actually got retrieved | the needed chunk never gets retrieved |
|
|
38
|
+
|
|
39
|
+
Faithfulness specifically decomposes the answer into atomic claims and checks each against the
|
|
40
|
+
retrieved context; a score of 1.0 means every claim is grounded.
|
|
41
|
+
|
|
42
|
+
## 3. Failure → metric → fix
|
|
43
|
+
|
|
44
|
+
| Symptom you observe | Metric that drops | Fix, in order |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| Confident statements absent from sources | faithfulness | tighten grounding prompt; enforce refusal clause |
|
|
47
|
+
| Answer rambles / dodges the question | answer relevancy | query rewriting; tighter prompt |
|
|
48
|
+
| Right chunk present but buried | context precision | add/strengthen reranker; tune RRF k |
|
|
49
|
+
| Right chunk never retrieved | context recall | fix chunking; add contextual retrieval; go hybrid |
|
|
50
|
+
|
|
51
|
+
Always read **context recall first** — if it is low, every downstream metric is capped, because
|
|
52
|
+
the model cannot ground an answer on a chunk it never saw.
|
|
53
|
+
|
|
54
|
+
## 4. Suggested thresholds
|
|
55
|
+
|
|
56
|
+
Start strict and relax only with evidence:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
faithfulness >= 0.90 # near-zero tolerance for ungrounded claims
|
|
60
|
+
context recall >= 0.85 # the right chunk must almost always be retrieved
|
|
61
|
+
context precision >= 0.70
|
|
62
|
+
answer relevancy >= 0.80
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 5. CI gate
|
|
66
|
+
|
|
67
|
+
Score the golden set on every change and fail the build below threshold so regressions cannot
|
|
68
|
+
ship silently.
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
# eval_gate.py — run in CI; exit non-zero on regression.
|
|
72
|
+
import sys
|
|
73
|
+
from ragas import evaluate
|
|
74
|
+
from ragas.metrics import faithfulness, answer_relevancy, context_precision, context_recall
|
|
75
|
+
|
|
76
|
+
THRESHOLDS = {"faithfulness": 0.90, "context_recall": 0.85,
|
|
77
|
+
"context_precision": 0.70, "answer_relevancy": 0.80}
|
|
78
|
+
|
|
79
|
+
result = evaluate(dataset, # built from your golden set + pipeline outputs
|
|
80
|
+
metrics=[faithfulness, answer_relevancy,
|
|
81
|
+
context_precision, context_recall])
|
|
82
|
+
scores = result.to_pandas().mean(numeric_only=True).to_dict()
|
|
83
|
+
|
|
84
|
+
failed = {m: scores[m] for m, t in THRESHOLDS.items() if scores.get(m, 0) < t}
|
|
85
|
+
for m, t in THRESHOLDS.items():
|
|
86
|
+
print(f"{m}: {scores.get(m, 0):.3f} (gate {t})")
|
|
87
|
+
if failed:
|
|
88
|
+
print("FAIL:", failed); sys.exit(1)
|
|
89
|
+
print("RAG eval gate passed"); sys.exit(0)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
# .github/workflows/rag-eval.yml (excerpt)
|
|
94
|
+
- name: RAG eval gate
|
|
95
|
+
run: python eval_gate.py
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
The general-purpose eval harness (arbitrary tasks, non-RAG agents) is the `agent-eval` skill;
|
|
99
|
+
these four metrics and this gate are the RAG-specific part that lives with `rag`.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# references/pipeline.md — the reference RAG pipeline
|
|
2
|
+
|
|
3
|
+
This is the long-form companion to the SKILL body: the full contextual-retrieval prompt, the
|
|
4
|
+
hybrid + RRF fusion, the rerank funnel parameters, the complete grounding system prompt, and a
|
|
5
|
+
minimal runnable retrieve → rerank → answer skeleton. Provider-neutral with concrete Cohere /
|
|
6
|
+
Anthropic examples. Adapt names; keep the contracts.
|
|
7
|
+
|
|
8
|
+
## 1. Contextual retrieval (full)
|
|
9
|
+
|
|
10
|
+
Anthropic's technique: before embedding and before BM25 indexing, prepend a 1–2 sentence
|
|
11
|
+
LLM-written blurb that situates each chunk inside its document. Reductions in failed retrieval:
|
|
12
|
+
~35% (contextual embeddings), ~49% (+ contextual BM25), ~67% (+ rerank)
|
|
13
|
+
(anthropic.com/news/contextual-retrieval, 2024-09; accessed 2026-06-02).
|
|
14
|
+
|
|
15
|
+
Cache the whole-document portion of the prompt so you pay for it once per document, not once per
|
|
16
|
+
chunk — this is what makes the technique affordable at scale.
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
<document>
|
|
20
|
+
{{WHOLE_DOCUMENT}}
|
|
21
|
+
</document>
|
|
22
|
+
Here is the chunk we want to situate within the whole document:
|
|
23
|
+
<chunk>
|
|
24
|
+
{{CHUNK_TEXT}}
|
|
25
|
+
</chunk>
|
|
26
|
+
Give a short, standalone context (1–2 sentences) that situates this chunk within the overall
|
|
27
|
+
document, to improve search retrieval of the chunk. Answer ONLY with the succinct context and
|
|
28
|
+
nothing else.
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
# Generate context per chunk, then index context + chunk for BOTH dense and BM25.
|
|
33
|
+
def contextualize(client, doc_text, chunk_text):
|
|
34
|
+
msg = client.messages.create(
|
|
35
|
+
model="claude-sonnet-4-5",
|
|
36
|
+
max_tokens=120,
|
|
37
|
+
system=[{"type": "text",
|
|
38
|
+
"text": f"<document>\n{doc_text}\n</document>",
|
|
39
|
+
"cache_control": {"type": "ephemeral"}}], # cache the doc
|
|
40
|
+
messages=[{"role": "user", "content":
|
|
41
|
+
f"Here is the chunk:\n<chunk>{chunk_text}</chunk>\n"
|
|
42
|
+
"Give a 1-2 sentence standalone context for retrieval. Context only."}],
|
|
43
|
+
)
|
|
44
|
+
return msg.content[0].text.strip()
|
|
45
|
+
|
|
46
|
+
def indexable(doc_text, chunk):
|
|
47
|
+
ctx = contextualize(client, doc_text, chunk["text"])
|
|
48
|
+
chunk["context"] = ctx
|
|
49
|
+
chunk["embed_input"] = f"{ctx}\n{chunk['text']}" # embed this
|
|
50
|
+
chunk["bm25_input"] = f"{ctx} {chunk['text']}" # index this for keyword
|
|
51
|
+
return chunk
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## 2. Hybrid retrieval + Reciprocal Rank Fusion
|
|
55
|
+
|
|
56
|
+
Dense search catches paraphrase; BM25 catches exact tokens. Run both and fuse by rank, not by
|
|
57
|
+
raw score (scores from two systems are not comparable). RRF score for a document is the sum over
|
|
58
|
+
result lists of `1 / (k + rank)`, with `k ≈ 60` a standard constant.
|
|
59
|
+
|
|
60
|
+
```python
|
|
61
|
+
def rrf(*ranked_lists, k=60, top_n=150):
|
|
62
|
+
scores = {}
|
|
63
|
+
seen = {}
|
|
64
|
+
for lst in ranked_lists: # each: list of chunks in rank order
|
|
65
|
+
for rank, chunk in enumerate(lst):
|
|
66
|
+
cid = chunk["chunk_id"]
|
|
67
|
+
scores[cid] = scores.get(cid, 0.0) + 1.0 / (k + rank)
|
|
68
|
+
seen[cid] = chunk
|
|
69
|
+
fused = sorted(seen.values(), key=lambda c: scores[c["chunk_id"]], reverse=True)
|
|
70
|
+
return fused[:top_n]
|
|
71
|
+
|
|
72
|
+
dense = vector_store.search(query_vec, limit=150) # ../vector-db owns this call
|
|
73
|
+
keyword = bm25.search(query, limit=150)
|
|
74
|
+
candidates = rrf(dense, keyword, top_n=150)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The actual store-side hybrid (named vectors, sparse-dense, server-side fusion in Qdrant/Weaviate/
|
|
78
|
+
Pinecone) belongs to `../vector-db/SKILL.md`. Use that if your store fuses natively; use the RRF
|
|
79
|
+
above when you fuse two independent indexes yourself.
|
|
80
|
+
|
|
81
|
+
## 3. Rerank funnel
|
|
82
|
+
|
|
83
|
+
Funnel parameters (Microsoft Cloud Blog 2025-02-04; StackAI, accessed 2026-06-02):
|
|
84
|
+
|
|
85
|
+
| Param | Value | Why |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| retrieve top_n | ~150 | wide enough that the right chunk is almost always present |
|
|
88
|
+
| rerank model | Cohere Rerank 3.5 (ctx 4096) or local cross-encoder | cross-encoder scores query+chunk jointly |
|
|
89
|
+
| keep top_k | ~20 | precise enough for the prompt without diluting it |
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
import cohere
|
|
93
|
+
co = cohere.ClientV2()
|
|
94
|
+
|
|
95
|
+
def rerank(query, candidates, top_k=20):
|
|
96
|
+
res = co.rerank(model="rerank-v3.5", query=query,
|
|
97
|
+
documents=[c["text"] for c in candidates], top_n=top_k)
|
|
98
|
+
return [candidates[r.index] for r in res.results] # ids preserved by index
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Local alternative: load a `bge-reranker`-class cross-encoder and score each `(query, chunk)`
|
|
102
|
+
pair; sort descending; slice top_k. Use it when data cannot leave the network.
|
|
103
|
+
|
|
104
|
+
## 4. The grounding system prompt (complete)
|
|
105
|
+
|
|
106
|
+
Three non-negotiable clauses: answer only from context, cite chunk ids, explicit refusal.
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
You are a retrieval-grounded assistant. You answer ONLY using information inside the <context>
|
|
110
|
+
block below. Do not use prior knowledge or make assumptions.
|
|
111
|
+
|
|
112
|
+
Rules:
|
|
113
|
+
1. Every factual claim MUST cite the chunk id it came from, written inline as [chunk_id].
|
|
114
|
+
You may cite multiple ids for one claim.
|
|
115
|
+
2. If the <context> does not contain enough information to answer the question, reply EXACTLY:
|
|
116
|
+
"I don't have enough information in the provided sources to answer that."
|
|
117
|
+
(For Spanish corpora: "No tengo suficiente información en las fuentes para responder.")
|
|
118
|
+
3. Do not fabricate citations. If you cannot cite it, do not state it.
|
|
119
|
+
|
|
120
|
+
<context>
|
|
121
|
+
{{#each chunks}}[{{chunk_id}}] {{text}}
|
|
122
|
+
{{/each}}
|
|
123
|
+
</context>
|
|
124
|
+
|
|
125
|
+
Question: {{question}}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 5. Minimal runnable skeleton
|
|
129
|
+
|
|
130
|
+
```python
|
|
131
|
+
# retrieve -> rerank -> ground -> answer. Provider-neutral glue; swap clients as needed.
|
|
132
|
+
def answer(query):
|
|
133
|
+
qv = embed(query) # same model as the corpus
|
|
134
|
+
dense = vector_store.search(qv, limit=150) # ../vector-db
|
|
135
|
+
keyword = bm25.search(query, limit=150)
|
|
136
|
+
fused = rrf(dense, keyword, top_n=150)
|
|
137
|
+
top = rerank(query, fused, top_k=20) # section 3
|
|
138
|
+
|
|
139
|
+
context = "\n".join(f"[{c['chunk_id']}] {c['text']}" for c in top)
|
|
140
|
+
resp = llm.messages.create(
|
|
141
|
+
model="claude-sonnet-4-5",
|
|
142
|
+
max_tokens=1024,
|
|
143
|
+
system=GROUNDING_PROMPT, # section 4, refusal clause included
|
|
144
|
+
messages=[{"role": "user",
|
|
145
|
+
"content": f"<context>\n{context}\n</context>\n\nQuestion: {query}"}],
|
|
146
|
+
)
|
|
147
|
+
return resp.content[0].text # contains [chunk_id] citations or the refusal line
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Keep `chunk_id` + `source` on every object from chunking through this function so the cited ids
|
|
151
|
+
in the answer map back to real source pages.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# verify.sh — rag skill gate. Read-only, idempotent, no network.
|
|
5
|
+
#
|
|
6
|
+
# Checks the skill's own checkable artifacts (the grounding prompt-contract + eval rubric),
|
|
7
|
+
# NOT model output:
|
|
8
|
+
# 1. SKILL.md frontmatter keys exactly = {name, description, tags, recommends, origin}.
|
|
9
|
+
# 2. `recommends` is a subset of the KNOWN catalog ids.
|
|
10
|
+
# 3. The grounding section contains the contract markers: answer-only-from-context,
|
|
11
|
+
# an explicit refusal phrase, and a citation requirement (banlist guard so a grounding
|
|
12
|
+
# prompt missing refusal fails).
|
|
13
|
+
# 4. references/pipeline.md and references/evaluation.md exist and are non-empty.
|
|
14
|
+
# 5. The four RAGAS metric names all appear in references/evaluation.md.
|
|
15
|
+
# 6. Every code fence in SKILL.md is language-tagged.
|
|
16
|
+
#
|
|
17
|
+
# Resolves the skill dir relative to this script, so it runs from anywhere. If SKILL.md is
|
|
18
|
+
# absent (empty/clean target) it exits 0 with a skip — no false failure.
|
|
19
|
+
|
|
20
|
+
GREEN=$'\033[32m'; YELLOW=$'\033[33m'; RED=$'\033[31m'; NC=$'\033[0m'
|
|
21
|
+
EXIT=0
|
|
22
|
+
skip() { printf '%s[skip]%s %s\n' "$YELLOW" "$NC" "$*"; }
|
|
23
|
+
ok() { printf '%s[ok]%s %s\n' "$GREEN" "$NC" "$*"; }
|
|
24
|
+
err() { printf '%s[fail]%s %s\n' "$RED" "$NC" "$*"; EXIT=1; }
|
|
25
|
+
|
|
26
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
27
|
+
SKILL_DIR="$(dirname "$SCRIPT_DIR")"
|
|
28
|
+
SKILL="$SKILL_DIR/SKILL.md"
|
|
29
|
+
PIPELINE="$SKILL_DIR/references/pipeline.md"
|
|
30
|
+
EVALDOC="$SKILL_DIR/references/evaluation.md"
|
|
31
|
+
|
|
32
|
+
if [ ! -f "$SKILL" ]; then
|
|
33
|
+
skip "no SKILL.md at $SKILL_DIR — nothing to verify"
|
|
34
|
+
ok "verify.sh passed (empty target)"
|
|
35
|
+
exit 0
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
# --- 1. frontmatter keys ---
|
|
39
|
+
fm="$(awk 'NR==1 && $0=="---"{f=1;next} f&&$0=="---"{exit} f{print}' "$SKILL")"
|
|
40
|
+
keys="$(printf '%s\n' "$fm" | grep -E '^[a-z_]+:' | sed -E 's/^([a-z_]+):.*/\1/' | sort | tr '\n' ' ' | sed 's/ $//')"
|
|
41
|
+
expected="description name origin recommends tags"
|
|
42
|
+
if [ "$keys" = "$expected" ]; then
|
|
43
|
+
ok "frontmatter keys exact: $keys"
|
|
44
|
+
else
|
|
45
|
+
err "frontmatter keys mismatch — got [$keys], want [$expected]"
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
# --- 2. recommends subset of KNOWN ids ---
|
|
49
|
+
KNOWN="analyze author-skill building-agents clarify constitution course-storytelling debug deployment design fastapi flutter go harness implement init marketing nextjs parallel plan postgresdb presentations review sdd secure-coding ship specify suggest tasks verify worktrees finance-ops invoicing bookkeeping pricing sales-pipeline lead-gen cold-outreach proposals contracts customer-support client-onboarding retention hiring people-ops inventory logistics-ops procurement meeting-notes sop-builder project-ops seo-geo content-engine social-publisher brand-voice brand-identity newsletter landing-copy ads article-writing case-studies video-shorts podcast market-research competitor-watch press-kit community webinar review-management pitch-deck investor-materials financial-model fundraising unit-economics grants gdpr-privacy terms-conditions compliance data-policy ip-trademark stripe email-connector google-workspace notion-connector whatsapp-telegram automation-flows api-connector-builder webhooks data-scraper spreadsheet-ops calendar-scheduling document-processing e-signature analytics dashboard kpi-framework reporting ab-testing forecasting data-cleaning business-intelligence rag embeddings-search prompt-engineering llm-pipeline agent-eval chatbot ai-media replicate-images structured-extraction agent-safety cost-tracking react react-native vue-nuxt nodejs django laravel rails swift-ios kotlin-android rust api-design wordpress shopify no-code-app chrome-extension mysql redis prisma-orm db-migrations backups clickhouse-analytics code-review security-scan testing-py testing-web testing-go e2e-testing accessibility performance error-handling observability docker github-actions git-workflow domains-dns monitoring email-deliverability scaling knowledge-ops codebase-onboarding research-ops decision-records continuous-learning skill-scout context-budget course-builder technical-writing translation-l10n youtube-api youtube-strategy youtube-ideation youtube-thumbnails youtube-packaging remotion-video tiktok-api instagram-api shortform-strategy shortform-ideation shortform-packaging shortform-editing linkedin-api linkedin-strategy linkedin-content linkedin-carousels linkedin-outreach medium-writing medium-publishing medium-strategy typescript python java csharp-dotnet php ruby cpp elixir bash-scripting sql angular svelte astro solid-js htmx nestjs spring-boot phoenix tauri electron expo compose-multiplatform mongodb supabase neon planetscale sqlite-turso drizzle-orm firebase dynamodb vector-db duckdb vercel netlify cloudflare railway render fly-io coolify hetzner digitalocean aws-essentials gcp-essentials replicate runpod modal huggingface ollama together-fireworks fal"
|
|
50
|
+
rec_line="$(printf '%s\n' "$fm" | grep -E '^recommends:' | sed -E 's/^recommends:[[:space:]]*\[?//; s/\]//')"
|
|
51
|
+
rec_ids="$(printf '%s' "$rec_line" | tr ',' ' ')"
|
|
52
|
+
bad=""
|
|
53
|
+
for id in $rec_ids; do
|
|
54
|
+
id="$(printf '%s' "$id" | tr -d ' ')"
|
|
55
|
+
[ -z "$id" ] && continue
|
|
56
|
+
case " $KNOWN " in *" $id "*) ;; *) bad="$bad $id";; esac
|
|
57
|
+
done
|
|
58
|
+
if [ -z "$bad" ]; then ok "recommends are all known ids"; else err "recommends not in KNOWN:$bad"; fi
|
|
59
|
+
|
|
60
|
+
# --- 3. grounding contract markers ---
|
|
61
|
+
if grep -qi 'ONLY using' "$SKILL" || grep -qi 'answer ONLY' "$SKILL"; then
|
|
62
|
+
ok "grounding: answer-only-from-context present"
|
|
63
|
+
else
|
|
64
|
+
err "grounding: missing answer-only-from-context clause"
|
|
65
|
+
fi
|
|
66
|
+
if grep -qi "don't have enough information" "$SKILL" || grep -qi 'No tengo suficiente' "$SKILL"; then
|
|
67
|
+
ok "grounding: explicit refusal phrase present"
|
|
68
|
+
else
|
|
69
|
+
err "grounding: missing explicit refusal phrase (banlist guard)"
|
|
70
|
+
fi
|
|
71
|
+
if grep -qi 'cite' "$SKILL" && grep -q 'chunk_id' "$SKILL"; then
|
|
72
|
+
ok "grounding: citation requirement present"
|
|
73
|
+
else
|
|
74
|
+
err "grounding: missing citation requirement"
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
# --- 4. references exist and non-empty ---
|
|
78
|
+
for f in "$PIPELINE" "$EVALDOC"; do
|
|
79
|
+
if [ -s "$f" ]; then ok "reference present: ${f#$SKILL_DIR/}"; else err "missing/empty reference: ${f#$SKILL_DIR/}"; fi
|
|
80
|
+
done
|
|
81
|
+
|
|
82
|
+
# --- 5. four RAGAS metric names in evaluation.md ---
|
|
83
|
+
if [ -f "$EVALDOC" ]; then
|
|
84
|
+
for m in "faithfulness" "answer relevancy" "context precision" "context recall"; do
|
|
85
|
+
if grep -qi "$m" "$EVALDOC"; then ok "metric present: $m"; else err "metric missing in evaluation.md: $m"; fi
|
|
86
|
+
done
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
# --- 6. every code fence in SKILL.md is language-tagged ---
|
|
90
|
+
untagged="$(awk '/^```/{n++; if(n%2==1 && $0=="```") print NR}' "$SKILL")"
|
|
91
|
+
if [ -z "$untagged" ]; then
|
|
92
|
+
ok "all code fences language-tagged"
|
|
93
|
+
else
|
|
94
|
+
err "untagged code fence(s) at SKILL.md line(s): $(printf '%s' "$untagged" | tr '\n' ' ')"
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
printf '\n'
|
|
98
|
+
if [ "$EXIT" -eq 0 ]; then ok "verify.sh passed"; else err "verify.sh found failures"; fi
|
|
99
|
+
exit "$EXIT"
|