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,220 @@
|
|
|
1
|
+
# PHP type system — depth
|
|
2
|
+
|
|
3
|
+
Offloaded from SKILL.md. Patterns and edge cases for enums, docblock generics,
|
|
4
|
+
`readonly`/`clone with`, property hooks, and asymmetric visibility. PHP 8.3 floor,
|
|
5
|
+
8.4 default, 8.5 features flagged.
|
|
6
|
+
|
|
7
|
+
## Enums: backed + interface + methods
|
|
8
|
+
|
|
9
|
+
Enums are first-class types, not class constants. A backed enum maps each case to a scalar;
|
|
10
|
+
a pure enum has no backing. Both can implement interfaces and carry methods and constants.
|
|
11
|
+
|
|
12
|
+
```php
|
|
13
|
+
<?php
|
|
14
|
+
|
|
15
|
+
declare(strict_types=1);
|
|
16
|
+
|
|
17
|
+
interface HasLabel {
|
|
18
|
+
public function label(): string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
enum Priority: int implements HasLabel {
|
|
22
|
+
case Low = 10;
|
|
23
|
+
case Normal = 20;
|
|
24
|
+
case High = 30;
|
|
25
|
+
|
|
26
|
+
// Methods: behavior travels with the closed set.
|
|
27
|
+
public function label(): string {
|
|
28
|
+
return match ($this) {
|
|
29
|
+
self::Low => 'Low priority',
|
|
30
|
+
self::Normal => 'Normal',
|
|
31
|
+
self::High => 'High priority',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// A static "named constructor" over the raw value.
|
|
36
|
+
public static function fromScore(int $score): self {
|
|
37
|
+
return match (true) {
|
|
38
|
+
$score >= 30 => self::High,
|
|
39
|
+
$score >= 20 => self::Normal,
|
|
40
|
+
default => self::Low,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Enum constants are allowed.
|
|
45
|
+
const Default = self::Normal;
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Parsing rules:
|
|
50
|
+
|
|
51
|
+
- `Priority::from(20)` returns the case or **throws** `\ValueError` on a bad value.
|
|
52
|
+
- `Priority::tryFrom(99)` returns `null` on a bad value — use it for untrusted input.
|
|
53
|
+
- `Priority::cases()` returns every case in declaration order — iterate for menus/seeders.
|
|
54
|
+
- `$case->value` is the backing scalar; `$case->name` is the case name string.
|
|
55
|
+
|
|
56
|
+
Comparison is by identity: `$a === Priority::High` (cases are singletons). Never compare
|
|
57
|
+
`->value` when you mean the case.
|
|
58
|
+
|
|
59
|
+
## Docblock generics for PHPStan
|
|
60
|
+
|
|
61
|
+
The engine has no runtime generics; PHPStan and Psalm read `@template` annotations and
|
|
62
|
+
enforce them at analysis time. The runtime type stays `array`/`mixed`.
|
|
63
|
+
|
|
64
|
+
```php
|
|
65
|
+
<?php
|
|
66
|
+
|
|
67
|
+
declare(strict_types=1);
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @template TKey of array-key
|
|
71
|
+
* @template TValue
|
|
72
|
+
*/
|
|
73
|
+
final class TypedMap {
|
|
74
|
+
/** @var array<TKey, TValue> */
|
|
75
|
+
private array $items = [];
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @param TKey $key
|
|
79
|
+
* @param TValue $value
|
|
80
|
+
*/
|
|
81
|
+
public function set(int|string $key, mixed $value): void {
|
|
82
|
+
$this->items[$key] = $value;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @param TKey $key
|
|
87
|
+
* @return TValue|null
|
|
88
|
+
*/
|
|
89
|
+
public function get(int|string $key): mixed {
|
|
90
|
+
return $this->items[$key] ?? null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** @return list<TValue> */
|
|
94
|
+
public function values(): array {
|
|
95
|
+
return array_values($this->items);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Useful pseudo-types PHPStan understands: `list<T>` (a 0-indexed sequential array),
|
|
101
|
+
`array<K, V>`, `non-empty-array<...>`, `non-empty-string`, `int<0, max>`, `class-string<T>`,
|
|
102
|
+
`callable(int): string`. Prefer `list<T>` over `array<int, T>` when the array is a sequence
|
|
103
|
+
— it documents and enforces the no-gaps invariant.
|
|
104
|
+
|
|
105
|
+
`@template T of SomeInterface` bounds the parameter; `@template-covariant` allows variance on
|
|
106
|
+
read-only containers. Annotate `@implements`/`@extends` when a class implements a generic
|
|
107
|
+
interface so the type flows through.
|
|
108
|
+
|
|
109
|
+
## readonly rules and the with-er pattern
|
|
110
|
+
|
|
111
|
+
`readonly` properties are write-once: assignable only from inside the declaring class scope,
|
|
112
|
+
and only before they hold a value. A `readonly class` makes every property readonly implicitly.
|
|
113
|
+
|
|
114
|
+
Constraints to know:
|
|
115
|
+
|
|
116
|
+
- A readonly property has no default value and must be typed.
|
|
117
|
+
- You cannot `unset()` or re-assign it, even inside the class.
|
|
118
|
+
- Cloning copies the value, but a plain `clone` then re-assigning a readonly prop in
|
|
119
|
+
`__clone` is **not** allowed before 8.3; from 8.3 you may reinitialize a readonly property
|
|
120
|
+
inside `__clone`. From **8.5**, prefer `clone with`.
|
|
121
|
+
|
|
122
|
+
```php
|
|
123
|
+
<?php
|
|
124
|
+
|
|
125
|
+
declare(strict_types=1);
|
|
126
|
+
|
|
127
|
+
final readonly class Point {
|
|
128
|
+
public function __construct(
|
|
129
|
+
public int $x,
|
|
130
|
+
public int $y,
|
|
131
|
+
) {}
|
|
132
|
+
|
|
133
|
+
// Pre-8.5 with-er: build a new instance explicitly.
|
|
134
|
+
public function withX(int $x): self {
|
|
135
|
+
return new self($x, $this->y);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// 8.5+: clone with overrides named properties in one expression.
|
|
140
|
+
$p2 = clone $p1 with ['x' => 10]; // y is copied, x is replaced
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Property hooks — edge cases (8.4+)
|
|
144
|
+
|
|
145
|
+
A property may declare a `get` hook, a `set` hook, or both. A property with only a `get` hook
|
|
146
|
+
and no backing assignment is **virtual** (computed, stores nothing).
|
|
147
|
+
|
|
148
|
+
```php
|
|
149
|
+
<?php
|
|
150
|
+
|
|
151
|
+
declare(strict_types=1);
|
|
152
|
+
|
|
153
|
+
final class User {
|
|
154
|
+
// Backed property with a guarded set and a normalizing get.
|
|
155
|
+
public string $email {
|
|
156
|
+
get => strtolower($this->email);
|
|
157
|
+
set (string $value) {
|
|
158
|
+
if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
|
|
159
|
+
throw new \InvalidArgumentException("invalid email: {$value}");
|
|
160
|
+
}
|
|
161
|
+
$this->email = $value;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Virtual: no backing store, recomputed each read.
|
|
166
|
+
public string $domain {
|
|
167
|
+
get => substr($this->email, (int) strpos($this->email, '@') + 1);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
public function __construct(string $email) {
|
|
171
|
+
$this->email = $email; // runs the set hook -> validation
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Gotchas:
|
|
177
|
+
|
|
178
|
+
- Inside a hook, `$this->email` refers to the backing store, not the hook — no infinite loop
|
|
179
|
+
for a backed property. A **virtual** property (get-only, never assigned) must not reference
|
|
180
|
+
itself.
|
|
181
|
+
- Hooks run on **every** access. Do not do I/O, queries, or state mutation in a `get` hook —
|
|
182
|
+
a field read becoming a side effect is a debugging trap. Use a named method instead.
|
|
183
|
+
- Hooks are inheritable and can be declared in interfaces (an interface can require a property
|
|
184
|
+
with hooks).
|
|
185
|
+
- PHPStan 2.1+ analyzes hooks; older analyzers will misreport them.
|
|
186
|
+
|
|
187
|
+
## Asymmetric visibility matrix (8.4+)
|
|
188
|
+
|
|
189
|
+
Read visibility and write (set) visibility are declared independently. Write visibility must
|
|
190
|
+
be **equal to or narrower** than read visibility.
|
|
191
|
+
|
|
192
|
+
| Declaration | Readable from | Writable from |
|
|
193
|
+
|---|---|---|
|
|
194
|
+
| `public int $n` | anywhere | anywhere |
|
|
195
|
+
| `public protected(set) int $n` | anywhere | class + subclasses |
|
|
196
|
+
| `public private(set) int $n` | anywhere | declaring class only |
|
|
197
|
+
| `protected private(set) int $n` | class + subclasses | declaring class only |
|
|
198
|
+
| `private int $n` | declaring class | declaring class |
|
|
199
|
+
|
|
200
|
+
Use `public private(set)` for the common case: a value object whose fields are read freely
|
|
201
|
+
but mutated only through intent-revealing methods (`deposit()`, `rename()`), without writing a
|
|
202
|
+
getter for every field.
|
|
203
|
+
|
|
204
|
+
```php
|
|
205
|
+
<?php
|
|
206
|
+
|
|
207
|
+
declare(strict_types=1);
|
|
208
|
+
|
|
209
|
+
final class Counter {
|
|
210
|
+
public function __construct(public private(set) int $count = 0) {}
|
|
211
|
+
public function increment(): void { $this->count++; } // only path that writes
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
$c = new Counter();
|
|
215
|
+
echo $c->count; // ok: public read
|
|
216
|
+
// $c->count = 5; // Error: write is private(set)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
`readonly` plus `private(set)` is redundant — `readonly` already forbids writes after init.
|
|
220
|
+
Choose `private(set)` when you need controlled mutation, `readonly` when you need none.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# verify.sh - local quality gate for a PHP project (superset of CI).
|
|
4
|
+
#
|
|
5
|
+
# Usage:
|
|
6
|
+
# cd <your-php-project-root> # the directory containing composer.json
|
|
7
|
+
# ./verify.sh
|
|
8
|
+
#
|
|
9
|
+
# Runs: composer validate, php -l syntax lint, Pint/PHP-CS-Fixer (style, dry-run),
|
|
10
|
+
# PHPStan analyse, and PHPUnit/Pest - each only if the tool/config is present.
|
|
11
|
+
# Missing tools are skipped with a yellow warning (not a failure).
|
|
12
|
+
# Real problems (invalid composer.json, syntax errors, style/analysis/test failures)
|
|
13
|
+
# exit non-zero. Read-only: never mutates your source or runs a formatter in fix mode.
|
|
14
|
+
#
|
|
15
|
+
# Portability: stock macOS bash 3.2 (no mapfile, no associative arrays, no unguarded
|
|
16
|
+
# array expansion under `set -u`). Exits 0 on a clean project and on an empty src tree.
|
|
17
|
+
|
|
18
|
+
set -euo pipefail
|
|
19
|
+
|
|
20
|
+
# Colors only when stdout is a TTY (keeps logs/CI output clean).
|
|
21
|
+
if [ -t 1 ]; then
|
|
22
|
+
YELLOW=$'\033[33m'; RED=$'\033[31m'; GREEN=$'\033[32m'; RESET=$'\033[0m'
|
|
23
|
+
else
|
|
24
|
+
YELLOW=''; RED=''; GREEN=''; RESET=''
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
failed=0
|
|
28
|
+
|
|
29
|
+
have() { command -v "$1" >/dev/null 2>&1; }
|
|
30
|
+
warn() { printf '%s[skip]%s %s\n' "$YELLOW" "$RESET" "$*"; }
|
|
31
|
+
fail() { printf '%s[fail]%s %s\n' "$RED" "$RESET" "$*"; failed=1; }
|
|
32
|
+
ok() { printf '%s[ ok ]%s %s\n' "$GREEN" "$RESET" "$*"; }
|
|
33
|
+
info() { printf -- '----- %s\n' "$*"; }
|
|
34
|
+
|
|
35
|
+
# A binary may be a global on PATH or a project-local vendor/bin script. Resolve either.
|
|
36
|
+
binof() {
|
|
37
|
+
if [ -x "vendor/bin/$1" ]; then printf 'vendor/bin/%s' "$1"; return 0; fi
|
|
38
|
+
if have "$1"; then printf '%s' "$1"; return 0; fi
|
|
39
|
+
return 1
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
# Must run from a project root.
|
|
43
|
+
if [ ! -f composer.json ]; then
|
|
44
|
+
printf '%serror:%s no composer.json in %s - cd into your project root first.\n' \
|
|
45
|
+
"$RED" "$RESET" "$(pwd)" >&2
|
|
46
|
+
exit 2
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# Directories we lint/analyse, only those that exist.
|
|
50
|
+
SRC_DIRS=""
|
|
51
|
+
for d in src app lib tests; do
|
|
52
|
+
[ -d "$d" ] && SRC_DIRS="$SRC_DIRS $d"
|
|
53
|
+
done
|
|
54
|
+
|
|
55
|
+
# 1. composer validate - the manifest must be well-formed.
|
|
56
|
+
info "composer validate"
|
|
57
|
+
if have composer; then
|
|
58
|
+
if composer validate --strict --no-check-publish >/dev/null 2>&1; then
|
|
59
|
+
ok "composer.json valid"
|
|
60
|
+
else
|
|
61
|
+
# Re-run to surface the message, but a lockfile drift is a warning, not a hard fail.
|
|
62
|
+
if composer validate --no-check-publish >/dev/null 2>&1; then
|
|
63
|
+
warn "composer.json valid but not strict-clean (lock drift / metadata) - run: composer validate --strict"
|
|
64
|
+
else
|
|
65
|
+
fail "composer validate reported errors (run: composer validate)"
|
|
66
|
+
fi
|
|
67
|
+
fi
|
|
68
|
+
else
|
|
69
|
+
warn "composer not found (https://getcomposer.org)"
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# 2. php -l syntax lint across the source tree. No files = nothing to do (clean exit).
|
|
73
|
+
info "php -l (syntax lint)"
|
|
74
|
+
if have php; then
|
|
75
|
+
if [ -z "$SRC_DIRS" ]; then
|
|
76
|
+
warn "no src/app/lib/tests directory to lint"
|
|
77
|
+
else
|
|
78
|
+
lint_failed=0
|
|
79
|
+
file_count=0
|
|
80
|
+
# find with -print0 + a while/read loop is bash-3.2 safe and space-safe.
|
|
81
|
+
while IFS= read -r -d '' f; do
|
|
82
|
+
file_count=$((file_count + 1))
|
|
83
|
+
if ! php -l "$f" >/dev/null 2>&1; then
|
|
84
|
+
php -l "$f" || true
|
|
85
|
+
lint_failed=1
|
|
86
|
+
fi
|
|
87
|
+
done < <(find $SRC_DIRS -name '*.php' -type f -print0 2>/dev/null)
|
|
88
|
+
|
|
89
|
+
if [ "$file_count" -eq 0 ]; then
|
|
90
|
+
warn "no .php files found under:$SRC_DIRS"
|
|
91
|
+
elif [ "$lint_failed" -ne 0 ]; then
|
|
92
|
+
fail "PHP syntax errors found"
|
|
93
|
+
else
|
|
94
|
+
ok "syntax clean ($file_count files)"
|
|
95
|
+
fi
|
|
96
|
+
fi
|
|
97
|
+
else
|
|
98
|
+
warn "php not found - cannot lint/analyse/test"
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
# 3. Style: Pint preferred, else PHP-CS-Fixer. Always dry-run / test mode (read-only).
|
|
102
|
+
info "style (Pint / PHP-CS-Fixer)"
|
|
103
|
+
if pint_bin="$(binof pint)"; then
|
|
104
|
+
if $pint_bin --test >/dev/null 2>&1; then
|
|
105
|
+
ok "pint clean"
|
|
106
|
+
else
|
|
107
|
+
fail "pint reports style issues (run: $pint_bin)"
|
|
108
|
+
fi
|
|
109
|
+
elif fixer_bin="$(binof php-cs-fixer)"; then
|
|
110
|
+
if $fixer_bin fix --dry-run >/dev/null 2>&1; then
|
|
111
|
+
ok "php-cs-fixer clean"
|
|
112
|
+
else
|
|
113
|
+
fail "php-cs-fixer reports style issues (run: $fixer_bin fix)"
|
|
114
|
+
fi
|
|
115
|
+
else
|
|
116
|
+
warn "no formatter found (composer require --dev laravel/pint)"
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
# 4. PHPStan - only if a config exists (else we cannot know the intended level).
|
|
120
|
+
info "phpstan"
|
|
121
|
+
if [ -f phpstan.neon ] || [ -f phpstan.neon.dist ] || [ -f phpstan.dist.neon ]; then
|
|
122
|
+
if stan_bin="$(binof phpstan)"; then
|
|
123
|
+
if $stan_bin analyse --no-progress >/dev/null 2>&1; then
|
|
124
|
+
ok "phpstan clean"
|
|
125
|
+
else
|
|
126
|
+
$stan_bin analyse --no-progress || true
|
|
127
|
+
fail "phpstan reported issues"
|
|
128
|
+
fi
|
|
129
|
+
else
|
|
130
|
+
warn "phpstan config present but binary not found (composer require --dev phpstan/phpstan)"
|
|
131
|
+
fi
|
|
132
|
+
else
|
|
133
|
+
warn "no phpstan.neon - skipping static analysis"
|
|
134
|
+
fi
|
|
135
|
+
|
|
136
|
+
# 5. Tests: Pest preferred, else PHPUnit - only if a test config/dir exists.
|
|
137
|
+
info "tests (Pest / PHPUnit)"
|
|
138
|
+
if [ -f phpunit.xml ] || [ -f phpunit.xml.dist ] || [ -f Pest.php ] || [ -d tests ]; then
|
|
139
|
+
if pest_bin="$(binof pest)"; then
|
|
140
|
+
if $pest_bin >/dev/null 2>&1; then ok "pest green"; else fail "pest failed (run: $pest_bin)"; fi
|
|
141
|
+
elif phpunit_bin="$(binof phpunit)"; then
|
|
142
|
+
if $phpunit_bin >/dev/null 2>&1; then ok "phpunit green"; else fail "phpunit failed (run: $phpunit_bin)"; fi
|
|
143
|
+
else
|
|
144
|
+
warn "tests present but no runner found (composer require --dev pestphp/pest)"
|
|
145
|
+
fi
|
|
146
|
+
else
|
|
147
|
+
warn "no phpunit.xml / tests dir - skipping tests"
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
echo
|
|
151
|
+
if [ "$failed" -ne 0 ]; then
|
|
152
|
+
printf '%sFAIL:%s one or more checks failed.\n' "$RED" "$RESET"
|
|
153
|
+
exit 1
|
|
154
|
+
fi
|
|
155
|
+
printf '%sPASS:%s all checks passed.\n' "$GREEN" "$RESET"
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pitch-deck
|
|
3
|
+
description: "Use when building or fixing an investor fundraising deck — the narrative arc, the slide-by-slide story, and the small set of numbers that actually move an investment decision, for a pre-seed, seed, or Series A raise (and the close cousin, a YC/accelerator application deck). Decides WHAT goes on each slide, in what order, and with which metric; sequences the story the way a VC evaluates risk (problem → solution → why-now → market → traction → team → ask). Triggers: 'build our seed pitch deck', 'what slides do I need to raise pre-seed', 'write the traction slide and the ask slide', 'investors lose interest after slide 3', 'tighten the fundraising story before demo day', 'monta el pitch deck para inversores', 'prepara la ronda seed', 'el deck per a la presentació a inversors'. NOT rendering/exporting/theming the slides into a designed PDF or PPTX (that is presentations), NOT the projection spreadsheet behind the numbers (that is financial-model)."
|
|
4
|
+
tags: [pitch-deck, fundraising, investor-deck, startup]
|
|
5
|
+
recommends: [presentations, financial-model, investor-materials, unit-economics, fundraising, marketing]
|
|
6
|
+
origin: risco
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Pitch deck — the fundraising story, slide by slide
|
|
10
|
+
|
|
11
|
+
> You are a fundraising story editor that thinks in slides and in evidence. Your output is the founder's
|
|
12
|
+
> argument for *why invest, why this team, why now* — the narrative arc, the slide-by-slide content, and the
|
|
13
|
+
> few numbers that decide the meeting. You decide WHAT goes on each slide, in what ORDER, and with which
|
|
14
|
+
> METRIC. You do **not** draw the slides, build the spreadsheet, or write the SAFE terms. You write the pitch,
|
|
15
|
+
> then hand the rest off.
|
|
16
|
+
|
|
17
|
+
Scope: pre-seed → Series A investor decks, plus the accelerator/YC application deck. This is *not* a sales or
|
|
18
|
+
demo deck (selling product to customers → `presentations`) and *not* a customer proof story (→ `case-studies`).
|
|
19
|
+
|
|
20
|
+
## What you produce — and what you hand off
|
|
21
|
+
|
|
22
|
+
You own the story and the numbers ON the deck. The moment the job becomes design, math, or paperwork, route it
|
|
23
|
+
out. Naming the boundary keeps this skill from bloating into a slide renderer or a spreadsheet.
|
|
24
|
+
|
|
25
|
+
| The job | Owner | Why it is not yours |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| Story order, slide content, which metric goes where | **pitch-deck** (you) | This is the pitch — the persuasion lives in sequence + evidence. |
|
|
28
|
+
| Render/theme/export slides to PDF or PPTX (Marp/Slidev/python-pptx) | `../presentations/SKILL.md` | Design + export is a different craft; you hand it a locked outline. |
|
|
29
|
+
| The revenue projection, cohort model, burn/runway, valuation math | `financial-model` | The spreadsheet *produces* the numbers; you only put the decision-grade few on a slide. |
|
|
30
|
+
| One-pager, exec memo, data room, investor-update FAQ, SAFE prep | `investor-materials` | The non-deck raise collateral around the deck. |
|
|
31
|
+
| The standalone CAC/LTV/payback health check itself | `unit-economics` | You cite the verdict; you do not run the analysis. |
|
|
32
|
+
| Round strategy, target-investor list, outreach sequencing | `fundraising` | The raise *process*, not the deck content. |
|
|
33
|
+
| Polishing the deck's WORDS (headline craft, voice, ban-list) | `../marketing/SKILL.md` | Copy craft; you set the deck-shaped structure those words fill. |
|
|
34
|
+
|
|
35
|
+
Rule: **lock the outline here, then hand off.** Do not start theming colors or building a model inside this
|
|
36
|
+
skill — that is scope creep, and it buries the narrative work that only you do.
|
|
37
|
+
|
|
38
|
+
## First principle: front-load belief
|
|
39
|
+
|
|
40
|
+
A VC reads a deck the way you skim a cold email. DocSend's data puts the average first read at roughly
|
|
41
|
+
**2m24s–3m44s total — under ~20 seconds a slide.** That is the whole budget. It forces three rules:
|
|
42
|
+
|
|
43
|
+
- **Win belief in the first ~5 slides.** Problem → solution → why-now → market have to land before attention
|
|
44
|
+
decays — because nobody reaches slide 12 if slide 3 lost them.
|
|
45
|
+
- **Depth goes to the follow-up, not the page.** Extra detail (the full model, the cohort tables, the
|
|
46
|
+
competitive teardown) lives in the *conversation* and the data room — because a slide read in 19 seconds
|
|
47
|
+
cannot hold it, and crowding it kills the slides that matter.
|
|
48
|
+
- **Every slide earns its place or is cut.** If a slide does not move the investment decision, it is stealing
|
|
49
|
+
seconds from one that does — so it goes to the appendix or the bin.
|
|
50
|
+
|
|
51
|
+
## The canonical spine (10 + the ask)
|
|
52
|
+
|
|
53
|
+
The disciplined spine is **10 core slides plus an ask — keep it under ~15.** DocSend's survey found decks of
|
|
54
|
+
11–20 slides raised more successfully (~43% higher); past that, more slides *hurt* (extra material belongs in
|
|
55
|
+
the conversation). Each slide has exactly one job and answers one investor question.
|
|
56
|
+
|
|
57
|
+
| # | Slide | Its one job | The investor question it answers |
|
|
58
|
+
| --- | --- | --- | --- |
|
|
59
|
+
| 1 | Title / purpose | State what you do in one line | "What is this, in a sentence?" |
|
|
60
|
+
| 2 | Problem | Make the pain ache, for a real who | "Is this a real, urgent problem?" |
|
|
61
|
+
| 3 | Solution | Show the insight that solves it | "Does their thing actually solve it?" |
|
|
62
|
+
| 4 | Why now | Name the shift that makes this the moment | "Why hasn't this been done — why now?" |
|
|
63
|
+
| 5 | Market | TAM/SAM/SOM, bottom-up and sourced | "Is the prize big enough to matter?" |
|
|
64
|
+
| 6 | Product | One concrete proof it works (a visual, a flow) | "Is this real or a slide?" |
|
|
65
|
+
| 7 | Business model | How a dollar in becomes more dollars out | "How does this make money?" |
|
|
66
|
+
| 8 | Traction | The growth SHAPE + the few key metrics | "Is it working, and accelerating?" |
|
|
67
|
+
| 9 | Competition | Honest landscape + your wedge | "Why don't incumbents just crush them?" |
|
|
68
|
+
| 10 | Team | Why *this* team wins *this* | "Can these people actually pull it off?" |
|
|
69
|
+
| 11 | The ask | Amount → use-of-funds → milestone it buys | "What do you need, and what does it buy?" |
|
|
70
|
+
|
|
71
|
+
Full per-slide template (what content goes on each, an example line, the trap to avoid) and the stage deltas
|
|
72
|
+
(pre-seed / seed / Series A: what each slide may claim) live in `references/slide-spine.md`. Read it before
|
|
73
|
+
drafting; do not improvise the order.
|
|
74
|
+
|
|
75
|
+
## Sequence is the persuasion
|
|
76
|
+
|
|
77
|
+
Investors read in **risk-evaluation order**: believe the problem → understand the solution → trust the market
|
|
78
|
+
→ see the proof → back the team → know the ask. Reordering breaks the logic and makes the business harder to
|
|
79
|
+
grasp in the 19 seconds a slide gets. The order *is* the argument.
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
Bad (founder-centric) Good (investor-risk order)
|
|
83
|
+
1 Look at our product! 1 Here is a painful, real problem
|
|
84
|
+
2 17 features, a demo tour 2 Here is the insight that solves it
|
|
85
|
+
3 Our amazing team 3 Why this is solvable now and not before
|
|
86
|
+
4 ... oh, the problem 4 The market is big and reachable
|
|
87
|
+
5 The ask 5 Proof: it works and it is growing
|
|
88
|
+
6 This team is why it wins → the ask
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Open with the *problem*, never with a feature tour. A feature tour answers a question the investor has not
|
|
92
|
+
asked yet ("does this solve a real problem?") and burns the front-loaded attention on the wrong thing.
|
|
93
|
+
|
|
94
|
+
## The numbers that matter
|
|
95
|
+
|
|
96
|
+
At seed, the decision rides on a **small set** of numbers — not the whole P&L. Pick the few that tell *your*
|
|
97
|
+
story and put them where they belong (traction, business model, the ask). The set and healthy bands:
|
|
98
|
+
|
|
99
|
+
| Metric | What it shows | Healthy band (2025/26) |
|
|
100
|
+
| --- | --- | --- |
|
|
101
|
+
| MRR/ARR + MoM growth | Are you growing, and how fast | ~15–20% MoM (<$1M ARR); ~8–15% MoM ($1M–$10M ARR) |
|
|
102
|
+
| LTV : CAC | Is acquisition profitable | **≥ 3:1** |
|
|
103
|
+
| CAC payback | Months to earn back acquisition cost | **< ~18 months** (the 2024 median; lower = above average) |
|
|
104
|
+
| Gross margin | How much of revenue is yours to keep | software typically 70%+ |
|
|
105
|
+
| Net revenue retention | Do existing customers expand | **> 110%** |
|
|
106
|
+
| Burn / runway | Cash out per month / months left | runway names the ask (below) |
|
|
107
|
+
|
|
108
|
+
Formulas and the full glossary → `references/numbers-that-matter.md`. The model that *computes* these is
|
|
109
|
+
`financial-model`; the deep CAC/LTV health check is `unit-economics`. This skill only decides which numbers
|
|
110
|
+
go ON the deck and what "good" looks like.
|
|
111
|
+
|
|
112
|
+
**Growth shape beats absolute size.** Traction is the highest-stakes slide — investors spend ~3× longer on it,
|
|
113
|
+
and **76% of "no" decisions cite weak traction.** A company at **$50K MRR growing 25% MoM consistently** reads
|
|
114
|
+
stronger than one at **$200K MRR that is flat or erratic.** Show the curve, not just the point.
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
Bad traction slide Good traction slide
|
|
118
|
+
"We have 10,000 users." "$50K MRR, +22% MoM for 5 straight months (curve shown);
|
|
119
|
+
"Huge interest!" NRR 118%; 40 paying logos incl. [2 names]; LTV:CAC 4:1."
|
|
120
|
+
(a vanity number, no shape, (a number + a unit + a trend + a band — the SHAPE is visible)
|
|
121
|
+
no unit, no trend)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Never show registered users without an activation/paying rate behind them — a count with no engagement is a
|
|
125
|
+
vanity metric, and a sharp investor reads it as hiding the real number.
|
|
126
|
+
|
|
127
|
+
## The ask slide
|
|
128
|
+
|
|
129
|
+
The ask names three things, in this order: **the amount → the use-of-funds allocation → the milestone it
|
|
130
|
+
buys.** An ask with no number, or no milestone, reads as "we have not done the math."
|
|
131
|
+
|
|
132
|
+
```text
|
|
133
|
+
Raising $1.5M (SAFE).
|
|
134
|
+
Use of funds: 60% engineering · 25% go-to-market · 15% ops
|
|
135
|
+
Buys: 18 months runway to $100K MRR — Series-A ready.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
The milestone is the point. "$1.5M for 18 months" is a burn statement; "$1.5M → 18 months → $100K MRR /
|
|
139
|
+
Series-A-ready" is an *investment thesis* — it tells the VC what their money de-risks and what the next round
|
|
140
|
+
will look like. Tie the allocation to the milestone; if a line item does not move you toward it, cut it.
|
|
141
|
+
|
|
142
|
+
## Market sizing, honestly
|
|
143
|
+
|
|
144
|
+
Size **bottom-up first**, then sanity-check top-down — and source every number. TAM/SAM/SOM and the ask are
|
|
145
|
+
the two slides investors scrutinize hardest for realism.
|
|
146
|
+
|
|
147
|
+
```text
|
|
148
|
+
Bad "The market is $1.2 trillion — we only need 1% of it."
|
|
149
|
+
Good "120,000 target SMBs in our segment × $4.8K ACV = $576M SAM (sourced: [registry/report]).
|
|
150
|
+
Bottom-up reachable in 3 yrs (SOM): 3,000 accounts = $14.4M ARR."
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
The "$X trillion, we just need 1%" move is a credibility tell — it shows you reasoned top-down from a number
|
|
154
|
+
too big to mean anything. Build up from a unit (accounts × price), name the source, and let the big number be
|
|
155
|
+
the *result*, not the premise.
|
|
156
|
+
|
|
157
|
+
## Stage deltas (short)
|
|
158
|
+
|
|
159
|
+
What each stage is allowed to claim — full table in `references/slide-spine.md`:
|
|
160
|
+
|
|
161
|
+
- **Pre-seed** sells the **team + the insight**. Little traction yet; the bet is the founders and the wedge.
|
|
162
|
+
- **Seed** sells the **early traction shape** — growth trend, early retention, the first signs of a model.
|
|
163
|
+
- **Series A** sells a **repeatable growth engine** — efficient, predictable acquisition and expansion you can
|
|
164
|
+
pour fuel on.
|
|
165
|
+
|
|
166
|
+
Claiming above your stage (Series-A "engine" language on a pre-seed deck with no data) reads as naive; claiming
|
|
167
|
+
below it (a seed deck that hides real traction behind a vision) wastes your best card.
|
|
168
|
+
|
|
169
|
+
## Anti-patterns
|
|
170
|
+
|
|
171
|
+
| Anti-pattern | Why it's wrong | Do instead |
|
|
172
|
+
| --- | --- | --- |
|
|
173
|
+
| "No competition" / "we have no competitors" | Reads as naive or as "no market" | Map the honest landscape + your specific wedge |
|
|
174
|
+
| Ask slide with no amount or no milestone | "They have not done the math" | Amount → use-of-funds → the milestone it buys |
|
|
175
|
+
| Vanity metrics (registered users, no activation) | Hides the real number; investors notice | Show the metric WITH its rate/trend (paying, active, MoM) |
|
|
176
|
+
| 25–30 slide deck | Past ~15 it hurts; attention is gone | 10 + ask; depth to the data room / conversation |
|
|
177
|
+
| Designing/theming before the story is locked | Polishing the wrong outline | Lock the spine here, THEN hand to `presentations` |
|
|
178
|
+
| Hockey-stick projection with no driver | A curve with no mechanism is fiction | Tie growth to a named driver; cite the model |
|
|
179
|
+
| Opening with a feature tour | Answers a question not yet asked | Open with the problem (risk order) |
|
|
180
|
+
| "$X trillion × 1%" market | Top-down hand-wave, credibility tell | Bottom-up: accounts × price, sourced |
|
|
181
|
+
| Buzzwords ("revolutionary", "disruptive", "world-class") | Hollow; says nothing falsifiable | A number, a mechanism, a receipt |
|
|
182
|
+
| Reading the deck aloud verbatim | Slide and voice become redundant | Slide = the claim + proof; you narrate the story |
|
|
183
|
+
|
|
184
|
+
## Verify + references
|
|
185
|
+
|
|
186
|
+
Run the structural linter against a deck outline (markdown, one slide per heading) before handing off:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
./scripts/verify.sh path/to/deck.md # required-slide presence, count, ask + traction numbers, buzzwords
|
|
190
|
+
./scripts/verify.sh --strict path/to/deck.md # warnings become failures (CI gate)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
It is a structural/numeric lint only — required core slides present, count ≤ 15, the ask names an amount + a
|
|
194
|
+
use-of-funds/milestone token, traction carries a metric with a unit, and a buzzword warning. **Narrative
|
|
195
|
+
quality is graded by the capability eval, not by grep.** Exits 0 on a clean/empty target; non-zero only on a
|
|
196
|
+
missing core slide or a numberless ask.
|
|
197
|
+
|
|
198
|
+
References:
|
|
199
|
+
|
|
200
|
+
- `references/slide-spine.md` — full ordered slide-by-slide template (one job + investor question + what goes
|
|
201
|
+
on it + an example line + the trap), the ask/use-of-funds block, and the pre-seed/seed/Series A stage deltas.
|
|
202
|
+
- `references/numbers-that-matter.md` — the seed/Series A metric glossary (formula + current benchmark band),
|
|
203
|
+
the "growth shape" framing, and Bad→Good traction examples; defers the model to `financial-model` and the
|
|
204
|
+
CAC/LTV health check to `unit-economics`.
|
|
205
|
+
|
|
206
|
+
See also: `../presentations/SKILL.md` (renders + exports the locked outline), `../marketing/SKILL.md` (polishes
|
|
207
|
+
the words), `../harness/SKILL.md` (the `02-DOCS` wiki where deck/raise conventions persist). The siblings
|
|
208
|
+
`financial-model`, `investor-materials`, `unit-economics`, and `fundraising` are named in the route-out table
|
|
209
|
+
above; link them once they exist in the catalog.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Evals — pitch-deck
|
|
2
|
+
|
|
3
|
+
These cases check two things: that the skill's description/triggers ROUTE correctly, and that the SKILL.md
|
|
4
|
+
content contract actually holds. Run them with the repo's eval harness if one is wired up, or read-and-judge
|
|
5
|
+
manually. `should_trigger` prompts must select `pitch-deck` (they include non-obvious cases — a narrative
|
|
6
|
+
diagnosis, a story-tightening, a market-slide judgment call — plus a Spanish trigger). `should_not_trigger`
|
|
7
|
+
prompts must route to the named real sibling instead (`presentations` for rendering/sales decks,
|
|
8
|
+
`financial-model` for the projection spreadsheet, `investor-materials` for the one-pager/data room,
|
|
9
|
+
`unit-economics` for the CAC/LTV health check, `fundraising` for the raise process). The `capability` cases are
|
|
10
|
+
graded against their `must_include` rubric: a correct response produces a ~10-slide + ask outline in
|
|
11
|
+
risk-evaluation order, shows the growth SHAPE on traction, names amount + use-of-funds + milestone on the ask,
|
|
12
|
+
sizes the market bottom-up, respects the stage, defers rendering and modeling to the right siblings, and stays
|
|
13
|
+
within the ~15-slide discipline. The mechanical slide-structure subset (required slides, count, ask + traction
|
|
14
|
+
numbers, buzzwords) is enforced by `../scripts/verify.sh` against a deck outline; narrative quality is judged
|
|
15
|
+
here, not by grep.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
skill: pitch-deck
|
|
2
|
+
|
|
3
|
+
should_trigger:
|
|
4
|
+
- prompt: "Help me build our seed pitch deck for investors."
|
|
5
|
+
why: "Core use case: writing the fundraising-deck narrative and slide content for a seed raise. This skill owns the story order and the deck-level numbers."
|
|
6
|
+
- prompt: "What slides do I need to raise a pre-seed round?"
|
|
7
|
+
why: "A request for the slide spine / deck structure at a named stage — the canonical 10 + ask spine and stage deltas are exactly this skill."
|
|
8
|
+
- prompt: "Investors keep losing interest after slide 3 — can you fix our deck's narrative?"
|
|
9
|
+
why: "Non-obvious: a narrative DIAGNOSIS, not a build request. The front-load-belief principle and risk-order sequencing are the cure this skill owns; it is not asking to render slides."
|
|
10
|
+
- prompt: "Write the traction slide and the ask slide for our Series A deck."
|
|
11
|
+
why: "Slide-level content — the two highest-stakes slides (growth shape, amount/use-of-funds/milestone). Deciding what metric and what ask go on a slide is this skill's job."
|
|
12
|
+
- prompt: "Prepara el pitch deck para la ronda seed."
|
|
13
|
+
why: "Spanish trigger for building a seed fundraising deck — same core use case, named explicitly in the description triggers."
|
|
14
|
+
- prompt: "Tighten our fundraising story before demo day."
|
|
15
|
+
why: "Non-obvious: story-arc tightening for an accelerator/demo-day pitch, not a slide-design task. The narrative arc and slide ordering are this skill's center."
|
|
16
|
+
- prompt: "Our market slide says we just need 1% of a trillion-dollar market — does that hurt us?"
|
|
17
|
+
why: "Non-obvious: a content-judgment question about the market slide. Bottom-up TAM/SAM/SOM and the over-claim trap are this skill's market-sizing guidance."
|
|
18
|
+
|
|
19
|
+
should_not_trigger:
|
|
20
|
+
- prompt: "Export our deck to PDF and PPTX with our brand colors and a clean theme."
|
|
21
|
+
route_to: presentations
|
|
22
|
+
why: "Rendering, theming, and exporting the slides is presentations' craft; pitch-deck hands it a locked outline and does not draw or export pixels."
|
|
23
|
+
- prompt: "Build the 3-year revenue projection and burn/runway model behind these numbers."
|
|
24
|
+
route_to: financial-model
|
|
25
|
+
why: "The spreadsheet that COMPUTES the projections is financial-model; pitch-deck only places the decision-grade few numbers on a slide."
|
|
26
|
+
- prompt: "Draft the investor one-pager and the data-room checklist for the raise."
|
|
27
|
+
route_to: investor-materials
|
|
28
|
+
why: "The non-deck raise collateral (one-pager, memo, data room, FAQ) is investor-materials; pitch-deck writes the deck itself, not the package around it."
|
|
29
|
+
- prompt: "Is our CAC/LTV actually healthy? Run the full unit-economics analysis by channel."
|
|
30
|
+
route_to: unit-economics
|
|
31
|
+
why: "The standalone CAC/LTV/payback health check is unit-economics; pitch-deck cites the headline band on a slide but does not run the analysis."
|
|
32
|
+
- prompt: "Make a sales deck to demo our product to enterprise customers."
|
|
33
|
+
route_to: presentations
|
|
34
|
+
why: "A sales/demo deck sells product to customers, not equity to investors — that is a presentations deck, not a fundraising pitch."
|
|
35
|
+
- prompt: "Plan our raise: build the target-investor list and the outreach sequence."
|
|
36
|
+
route_to: fundraising
|
|
37
|
+
why: "The raise PROCESS — investor targeting, outreach, round strategy — is fundraising; pitch-deck produces only the deck content."
|
|
38
|
+
|
|
39
|
+
capability:
|
|
40
|
+
- scenario: "A pre-seed SaaS founder gives raw context: problem is finance teams closing books in spreadsheets; an early product ships; $40K MRR growing 22% MoM for 5 straight months; 2 technical/finance founders; wants to raise $1.2M. 'Turn this into a pitch deck.'"
|
|
41
|
+
must_include:
|
|
42
|
+
- "Produces a ~10-slide + ask outline (problem, solution, why-now, market, product, business model, traction, competition, team, ask) in risk-evaluation order, kept under ~15 slides."
|
|
43
|
+
- "Traction slide shows the growth SHAPE — $40K MRR with the +22% MoM, 5-month trend/curve — not just the single $40K figure; each number carries a unit."
|
|
44
|
+
- "Ask slide names all three: the amount ($1.2M), a use-of-funds allocation, and the milestone the runway buys (e.g. months of runway to a target MRR / Series-A readiness)."
|
|
45
|
+
- "Sizes the market bottom-up (accounts x price, sourced), explicitly avoiding the '$X trillion, we just need 1%' top-down hand-wave."
|
|
46
|
+
- "Frames pre-seed correctly: sells the team + insight, does not over-claim a Series-A 'repeatable engine'."
|
|
47
|
+
- "Defers rendering/theming/export to presentations and the projection/burn model to financial-model instead of building them here."
|
|
48
|
+
- "Flags any vanity or over-claim (e.g. registered users without an activation/paying rate, hollow superlatives) and keeps the deck within the ~15-slide discipline."
|
|
49
|
+
- scenario: "A founder says 'our deck has 28 slides and investors zone out after slide 3 — fix it.'"
|
|
50
|
+
must_include:
|
|
51
|
+
- "Diagnoses front-loading: belief must be won in the first ~5 slides because a first read is ~2.5-3.7 minutes (~19s/slide); depth moves to the conversation/data room."
|
|
52
|
+
- "Cuts the deck toward the 10 + ask spine, well under ~15 slides, moving appendix-grade detail off the deck."
|
|
53
|
+
- "Re-sequences into investor risk order (problem -> solution -> why-now -> market -> proof -> team -> ask) and calls out any feature-tour opening as the wrong front."
|
|
54
|
+
- "Identifies which slides do not move the investment decision and cuts or appendixes them."
|
|
55
|
+
- "Hands the re-themed/re-exported result to presentations once the outline is locked, rather than redesigning slides itself."
|