@bcelep/capint 0.4.2 → 0.6.5
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/AGENT.md +11 -1
- package/CHANGELOG.md +101 -0
- package/README.md +38 -10
- package/bin/capint.js +13 -1
- package/docs/PRD-v0.5-agent-capability-activation.md +430 -0
- package/docs/conventions/cli-scripting.md +60 -0
- package/docs/conventions/daily-use.md +132 -0
- package/docs/conventions/task-to-capability-cheatsheet.md +29 -0
- package/docs/execution-intent-contract.md +31 -3
- package/docs/kullanim-kilavuzu.md +374 -0
- package/docs/maintainer-dogfood.md +90 -0
- package/package.json +11 -2
- package/projections/session-start.md +14 -6
- package/registry.json +117 -4
- package/schemas/explanation.v1.json +48 -0
- package/scripts/capint-task.ps1 +38 -0
- package/scripts/capint-task.sh +40 -0
- package/scripts/release-check.mjs +14 -1
- package/scripts/validate-registry.mjs +44 -0
- package/skill-routing-matrix.json +50 -4
- package/skills/agent-browser/LICENSE +201 -0
- package/skills/agent-browser/SKILL.md +522 -0
- package/skills/agent-browser/agents/verdent.yaml +7 -0
- package/skills/agent-browser/assets/icon-dark.png +0 -0
- package/skills/agent-browser/assets/icon-light.png +0 -0
- package/skills/agent-browser/references/authentication.md +202 -0
- package/skills/agent-browser/references/commands.md +263 -0
- package/skills/agent-browser/references/profiling.md +120 -0
- package/skills/agent-browser/references/proxy-support.md +194 -0
- package/skills/agent-browser/references/session-management.md +193 -0
- package/skills/agent-browser/references/snapshot-refs.md +194 -0
- package/skills/agent-browser/references/video-recording.md +173 -0
- package/skills/agent-browser/templates/authenticated-session.sh +105 -0
- package/skills/agent-browser/templates/capture-workflow.sh +69 -0
- package/skills/agent-browser/templates/form-automation.sh +62 -0
- package/skills/algorithmic-art/LICENSE.txt +202 -0
- package/skills/algorithmic-art/SKILL.md +410 -0
- package/skills/algorithmic-art/agents/verdent.yaml +11 -0
- package/skills/algorithmic-art/assets/icon-dark.png +0 -0
- package/skills/algorithmic-art/assets/icon-light.png +0 -0
- package/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/skills/algorithmic-art/templates/viewer.html +599 -0
- package/skills/api-and-interface-design/SKILL.md +294 -0
- package/skills/aspnet-core/LICENSE.txt +202 -0
- package/skills/aspnet-core/SKILL.md +67 -0
- package/skills/aspnet-core/agents/verdent.yaml +11 -0
- package/skills/aspnet-core/assets/dotnet-logo.png +0 -0
- package/skills/aspnet-core/assets/icon-dark.png +0 -0
- package/skills/aspnet-core/assets/icon-light.png +0 -0
- package/skills/aspnet-core/references/_sections.md +40 -0
- package/skills/aspnet-core/references/apis-minimal-and-controllers.md +81 -0
- package/skills/aspnet-core/references/data-state-and-services.md +69 -0
- package/skills/aspnet-core/references/program-and-pipeline.md +103 -0
- package/skills/aspnet-core/references/realtime-grpc-and-background-work.md +58 -0
- package/skills/aspnet-core/references/security-and-identity.md +75 -0
- package/skills/aspnet-core/references/source-map.md +43 -0
- package/skills/aspnet-core/references/stack-selection.md +63 -0
- package/skills/aspnet-core/references/testing-performance-and-operations.md +92 -0
- package/skills/aspnet-core/references/ui-blazor.md +53 -0
- package/skills/aspnet-core/references/ui-mvc.md +56 -0
- package/skills/aspnet-core/references/ui-razor-pages.md +55 -0
- package/skills/aspnet-core/references/versioning-and-upgrades.md +51 -0
- package/skills/auth-patterns/SKILL.md +549 -0
- package/skills/best-practices/SKILL.md +641 -0
- package/skills/better-auth-best-practices/SKILL.md +180 -0
- package/skills/better-auth-best-practices/agents/verdent.yaml +11 -0
- package/skills/better-auth-best-practices/assets/icon-dark.png +0 -0
- package/skills/better-auth-best-practices/assets/icon-light.png +0 -0
- package/skills/brainstorming/SKILL.md +164 -0
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/brainstorming/visual-companion.md +287 -0
- package/skills/canvas-design/LICENSE.txt +202 -0
- package/skills/canvas-design/SKILL.md +135 -0
- package/skills/canvas-design/agents/verdent.yaml +11 -0
- package/skills/canvas-design/assets/icon-dark.png +0 -0
- package/skills/canvas-design/assets/icon-light.png +0 -0
- package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/ci-cd-and-automation/SKILL.md +390 -0
- package/skills/cloudflare/SKILL.md +233 -0
- package/skills/cloudflare/agents/verdent.yaml +12 -0
- package/skills/cloudflare/assets/icon-dark.png +0 -0
- package/skills/cloudflare/assets/icon-light.png +0 -0
- package/skills/cloudflare/references/agents-sdk/README.md +89 -0
- package/skills/cloudflare/references/agents-sdk/api.md +190 -0
- package/skills/cloudflare/references/agents-sdk/configuration.md +182 -0
- package/skills/cloudflare/references/agents-sdk/gotchas.md +158 -0
- package/skills/cloudflare/references/agents-sdk/patterns.md +192 -0
- package/skills/cloudflare/references/ai-gateway/README.md +175 -0
- package/skills/cloudflare/references/ai-gateway/configuration.md +111 -0
- package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +82 -0
- package/skills/cloudflare/references/ai-gateway/features.md +96 -0
- package/skills/cloudflare/references/ai-gateway/sdk-integration.md +114 -0
- package/skills/cloudflare/references/ai-gateway/troubleshooting.md +88 -0
- package/skills/cloudflare/references/ai-search/README.md +138 -0
- package/skills/cloudflare/references/ai-search/api.md +87 -0
- package/skills/cloudflare/references/ai-search/configuration.md +88 -0
- package/skills/cloudflare/references/ai-search/gotchas.md +81 -0
- package/skills/cloudflare/references/ai-search/patterns.md +85 -0
- package/skills/cloudflare/references/analytics-engine/README.md +94 -0
- package/skills/cloudflare/references/analytics-engine/api.md +112 -0
- package/skills/cloudflare/references/analytics-engine/configuration.md +112 -0
- package/skills/cloudflare/references/analytics-engine/gotchas.md +85 -0
- package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
- package/skills/cloudflare/references/api/README.md +66 -0
- package/skills/cloudflare/references/api/api.md +204 -0
- package/skills/cloudflare/references/api/configuration.md +160 -0
- package/skills/cloudflare/references/api/gotchas.md +225 -0
- package/skills/cloudflare/references/api/patterns.md +204 -0
- package/skills/cloudflare/references/api-shield/README.md +44 -0
- package/skills/cloudflare/references/api-shield/api.md +141 -0
- package/skills/cloudflare/references/api-shield/configuration.md +192 -0
- package/skills/cloudflare/references/api-shield/gotchas.md +125 -0
- package/skills/cloudflare/references/api-shield/patterns.md +180 -0
- package/skills/cloudflare/references/argo-smart-routing/README.md +90 -0
- package/skills/cloudflare/references/argo-smart-routing/api.md +240 -0
- package/skills/cloudflare/references/argo-smart-routing/configuration.md +197 -0
- package/skills/cloudflare/references/argo-smart-routing/gotchas.md +111 -0
- package/skills/cloudflare/references/argo-smart-routing/patterns.md +104 -0
- package/skills/cloudflare/references/bindings/README.md +122 -0
- package/skills/cloudflare/references/bindings/api.md +203 -0
- package/skills/cloudflare/references/bindings/configuration.md +188 -0
- package/skills/cloudflare/references/bindings/gotchas.md +208 -0
- package/skills/cloudflare/references/bindings/patterns.md +200 -0
- package/skills/cloudflare/references/bot-management/README.md +94 -0
- package/skills/cloudflare/references/bot-management/api.md +169 -0
- package/skills/cloudflare/references/bot-management/configuration.md +163 -0
- package/skills/cloudflare/references/bot-management/gotchas.md +114 -0
- package/skills/cloudflare/references/bot-management/patterns.md +182 -0
- package/skills/cloudflare/references/browser-rendering/README.md +78 -0
- package/skills/cloudflare/references/browser-rendering/api.md +108 -0
- package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
- package/skills/cloudflare/references/browser-rendering/gotchas.md +88 -0
- package/skills/cloudflare/references/browser-rendering/patterns.md +91 -0
- package/skills/cloudflare/references/c3/README.md +111 -0
- package/skills/cloudflare/references/c3/api.md +71 -0
- package/skills/cloudflare/references/c3/configuration.md +81 -0
- package/skills/cloudflare/references/c3/gotchas.md +92 -0
- package/skills/cloudflare/references/c3/patterns.md +82 -0
- package/skills/cloudflare/references/cache-reserve/README.md +147 -0
- package/skills/cloudflare/references/cache-reserve/api.md +194 -0
- package/skills/cloudflare/references/cache-reserve/configuration.md +169 -0
- package/skills/cloudflare/references/cache-reserve/gotchas.md +132 -0
- package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
- package/skills/cloudflare/references/containers/README.md +85 -0
- package/skills/cloudflare/references/containers/api.md +187 -0
- package/skills/cloudflare/references/containers/configuration.md +188 -0
- package/skills/cloudflare/references/containers/gotchas.md +178 -0
- package/skills/cloudflare/references/containers/patterns.md +202 -0
- package/skills/cloudflare/references/cron-triggers/README.md +99 -0
- package/skills/cloudflare/references/cron-triggers/api.md +196 -0
- package/skills/cloudflare/references/cron-triggers/configuration.md +180 -0
- package/skills/cloudflare/references/cron-triggers/gotchas.md +199 -0
- package/skills/cloudflare/references/cron-triggers/patterns.md +190 -0
- package/skills/cloudflare/references/d1/README.md +133 -0
- package/skills/cloudflare/references/d1/api.md +196 -0
- package/skills/cloudflare/references/d1/configuration.md +188 -0
- package/skills/cloudflare/references/d1/gotchas.md +98 -0
- package/skills/cloudflare/references/d1/patterns.md +189 -0
- package/skills/cloudflare/references/ddos/README.md +41 -0
- package/skills/cloudflare/references/ddos/api.md +164 -0
- package/skills/cloudflare/references/ddos/configuration.md +93 -0
- package/skills/cloudflare/references/ddos/gotchas.md +107 -0
- package/skills/cloudflare/references/ddos/patterns.md +174 -0
- package/skills/cloudflare/references/do-storage/README.md +75 -0
- package/skills/cloudflare/references/do-storage/api.md +102 -0
- package/skills/cloudflare/references/do-storage/configuration.md +112 -0
- package/skills/cloudflare/references/do-storage/gotchas.md +150 -0
- package/skills/cloudflare/references/do-storage/patterns.md +194 -0
- package/skills/cloudflare/references/do-storage/testing.md +183 -0
- package/skills/cloudflare/references/durable-objects/README.md +185 -0
- package/skills/cloudflare/references/durable-objects/api.md +187 -0
- package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
- package/skills/cloudflare/references/durable-objects/gotchas.md +197 -0
- package/skills/cloudflare/references/durable-objects/patterns.md +201 -0
- package/skills/cloudflare/references/email-routing/README.md +89 -0
- package/skills/cloudflare/references/email-routing/api.md +195 -0
- package/skills/cloudflare/references/email-routing/configuration.md +186 -0
- package/skills/cloudflare/references/email-routing/gotchas.md +196 -0
- package/skills/cloudflare/references/email-routing/patterns.md +229 -0
- package/skills/cloudflare/references/email-workers/README.md +151 -0
- package/skills/cloudflare/references/email-workers/api.md +237 -0
- package/skills/cloudflare/references/email-workers/configuration.md +112 -0
- package/skills/cloudflare/references/email-workers/gotchas.md +125 -0
- package/skills/cloudflare/references/email-workers/patterns.md +102 -0
- package/skills/cloudflare/references/graphql-api/README.md +147 -0
- package/skills/cloudflare/references/graphql-api/api.md +175 -0
- package/skills/cloudflare/references/graphql-api/configuration.md +118 -0
- package/skills/cloudflare/references/graphql-api/gotchas.md +110 -0
- package/skills/cloudflare/references/graphql-api/patterns.md +225 -0
- package/skills/cloudflare/references/hyperdrive/README.md +82 -0
- package/skills/cloudflare/references/hyperdrive/api.md +143 -0
- package/skills/cloudflare/references/hyperdrive/configuration.md +159 -0
- package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
- package/skills/cloudflare/references/hyperdrive/patterns.md +190 -0
- package/skills/cloudflare/references/images/README.md +61 -0
- package/skills/cloudflare/references/images/api.md +96 -0
- package/skills/cloudflare/references/images/configuration.md +211 -0
- package/skills/cloudflare/references/images/gotchas.md +99 -0
- package/skills/cloudflare/references/images/patterns.md +115 -0
- package/skills/cloudflare/references/kv/README.md +89 -0
- package/skills/cloudflare/references/kv/api.md +160 -0
- package/skills/cloudflare/references/kv/configuration.md +144 -0
- package/skills/cloudflare/references/kv/gotchas.md +131 -0
- package/skills/cloudflare/references/kv/patterns.md +196 -0
- package/skills/cloudflare/references/miniflare/README.md +105 -0
- package/skills/cloudflare/references/miniflare/api.md +187 -0
- package/skills/cloudflare/references/miniflare/configuration.md +173 -0
- package/skills/cloudflare/references/miniflare/gotchas.md +160 -0
- package/skills/cloudflare/references/miniflare/patterns.md +181 -0
- package/skills/cloudflare/references/network-interconnect/README.md +99 -0
- package/skills/cloudflare/references/network-interconnect/api.md +199 -0
- package/skills/cloudflare/references/network-interconnect/configuration.md +114 -0
- package/skills/cloudflare/references/network-interconnect/gotchas.md +165 -0
- package/skills/cloudflare/references/network-interconnect/patterns.md +166 -0
- package/skills/cloudflare/references/observability/README.md +88 -0
- package/skills/cloudflare/references/observability/api.md +164 -0
- package/skills/cloudflare/references/observability/configuration.md +169 -0
- package/skills/cloudflare/references/observability/gotchas.md +115 -0
- package/skills/cloudflare/references/observability/patterns.md +105 -0
- package/skills/cloudflare/references/pages/README.md +88 -0
- package/skills/cloudflare/references/pages/api.md +204 -0
- package/skills/cloudflare/references/pages/configuration.md +201 -0
- package/skills/cloudflare/references/pages/gotchas.md +203 -0
- package/skills/cloudflare/references/pages/patterns.md +204 -0
- package/skills/cloudflare/references/pages-functions/README.md +98 -0
- package/skills/cloudflare/references/pages-functions/api.md +143 -0
- package/skills/cloudflare/references/pages-functions/configuration.md +122 -0
- package/skills/cloudflare/references/pages-functions/gotchas.md +94 -0
- package/skills/cloudflare/references/pages-functions/patterns.md +137 -0
- package/skills/cloudflare/references/pipelines/README.md +105 -0
- package/skills/cloudflare/references/pipelines/api.md +208 -0
- package/skills/cloudflare/references/pipelines/configuration.md +98 -0
- package/skills/cloudflare/references/pipelines/gotchas.md +80 -0
- package/skills/cloudflare/references/pipelines/patterns.md +87 -0
- package/skills/cloudflare/references/pulumi/README.md +100 -0
- package/skills/cloudflare/references/pulumi/api.md +200 -0
- package/skills/cloudflare/references/pulumi/configuration.md +198 -0
- package/skills/cloudflare/references/pulumi/gotchas.md +181 -0
- package/skills/cloudflare/references/pulumi/patterns.md +191 -0
- package/skills/cloudflare/references/queues/README.md +96 -0
- package/skills/cloudflare/references/queues/api.md +206 -0
- package/skills/cloudflare/references/queues/configuration.md +144 -0
- package/skills/cloudflare/references/queues/gotchas.md +206 -0
- package/skills/cloudflare/references/queues/patterns.md +220 -0
- package/skills/cloudflare/references/r2/README.md +95 -0
- package/skills/cloudflare/references/r2/api.md +200 -0
- package/skills/cloudflare/references/r2/configuration.md +165 -0
- package/skills/cloudflare/references/r2/gotchas.md +190 -0
- package/skills/cloudflare/references/r2/patterns.md +193 -0
- package/skills/cloudflare/references/r2-data-catalog/README.md +149 -0
- package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
- package/skills/cloudflare/references/r2-data-catalog/configuration.md +198 -0
- package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
- package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
- package/skills/cloudflare/references/r2-sql/README.md +128 -0
- package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
- package/skills/cloudflare/references/r2-sql/api.md +158 -0
- package/skills/cloudflare/references/r2-sql/configuration.md +147 -0
- package/skills/cloudflare/references/r2-sql/gotchas.md +212 -0
- package/skills/cloudflare/references/r2-sql/patterns.md +222 -0
- package/skills/cloudflare/references/realtime-sfu/README.md +65 -0
- package/skills/cloudflare/references/realtime-sfu/api.md +158 -0
- package/skills/cloudflare/references/realtime-sfu/configuration.md +137 -0
- package/skills/cloudflare/references/realtime-sfu/gotchas.md +133 -0
- package/skills/cloudflare/references/realtime-sfu/patterns.md +174 -0
- package/skills/cloudflare/references/realtimekit/README.md +113 -0
- package/skills/cloudflare/references/realtimekit/api.md +212 -0
- package/skills/cloudflare/references/realtimekit/configuration.md +203 -0
- package/skills/cloudflare/references/realtimekit/gotchas.md +169 -0
- package/skills/cloudflare/references/realtimekit/patterns.md +223 -0
- package/skills/cloudflare/references/sandbox/README.md +96 -0
- package/skills/cloudflare/references/sandbox/api.md +198 -0
- package/skills/cloudflare/references/sandbox/configuration.md +143 -0
- package/skills/cloudflare/references/sandbox/gotchas.md +194 -0
- package/skills/cloudflare/references/sandbox/patterns.md +201 -0
- package/skills/cloudflare/references/secrets-store/README.md +74 -0
- package/skills/cloudflare/references/secrets-store/api.md +200 -0
- package/skills/cloudflare/references/secrets-store/configuration.md +185 -0
- package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
- package/skills/cloudflare/references/secrets-store/patterns.md +207 -0
- package/skills/cloudflare/references/smart-placement/README.md +138 -0
- package/skills/cloudflare/references/smart-placement/api.md +183 -0
- package/skills/cloudflare/references/smart-placement/configuration.md +196 -0
- package/skills/cloudflare/references/smart-placement/gotchas.md +174 -0
- package/skills/cloudflare/references/smart-placement/patterns.md +183 -0
- package/skills/cloudflare/references/snippets/README.md +68 -0
- package/skills/cloudflare/references/snippets/api.md +198 -0
- package/skills/cloudflare/references/snippets/configuration.md +227 -0
- package/skills/cloudflare/references/snippets/gotchas.md +86 -0
- package/skills/cloudflare/references/snippets/patterns.md +135 -0
- package/skills/cloudflare/references/spectrum/README.md +52 -0
- package/skills/cloudflare/references/spectrum/api.md +181 -0
- package/skills/cloudflare/references/spectrum/configuration.md +194 -0
- package/skills/cloudflare/references/spectrum/gotchas.md +145 -0
- package/skills/cloudflare/references/spectrum/patterns.md +196 -0
- package/skills/cloudflare/references/static-assets/README.md +65 -0
- package/skills/cloudflare/references/static-assets/api.md +199 -0
- package/skills/cloudflare/references/static-assets/configuration.md +186 -0
- package/skills/cloudflare/references/static-assets/gotchas.md +162 -0
- package/skills/cloudflare/references/static-assets/patterns.md +189 -0
- package/skills/cloudflare/references/stream/README.md +114 -0
- package/skills/cloudflare/references/stream/api-live.md +195 -0
- package/skills/cloudflare/references/stream/api.md +199 -0
- package/skills/cloudflare/references/stream/configuration.md +141 -0
- package/skills/cloudflare/references/stream/gotchas.md +130 -0
- package/skills/cloudflare/references/stream/patterns.md +184 -0
- package/skills/cloudflare/references/tail-workers/README.md +89 -0
- package/skills/cloudflare/references/tail-workers/api.md +200 -0
- package/skills/cloudflare/references/tail-workers/configuration.md +176 -0
- package/skills/cloudflare/references/tail-workers/gotchas.md +192 -0
- package/skills/cloudflare/references/tail-workers/patterns.md +180 -0
- package/skills/cloudflare/references/terraform/README.md +102 -0
- package/skills/cloudflare/references/terraform/api.md +178 -0
- package/skills/cloudflare/references/terraform/configuration.md +197 -0
- package/skills/cloudflare/references/terraform/gotchas.md +150 -0
- package/skills/cloudflare/references/terraform/patterns.md +174 -0
- package/skills/cloudflare/references/tunnel/README.md +129 -0
- package/skills/cloudflare/references/tunnel/api.md +193 -0
- package/skills/cloudflare/references/tunnel/configuration.md +157 -0
- package/skills/cloudflare/references/tunnel/gotchas.md +147 -0
- package/skills/cloudflare/references/tunnel/networking.md +168 -0
- package/skills/cloudflare/references/tunnel/patterns.md +192 -0
- package/skills/cloudflare/references/turn/README.md +82 -0
- package/skills/cloudflare/references/turn/api.md +239 -0
- package/skills/cloudflare/references/turn/configuration.md +179 -0
- package/skills/cloudflare/references/turn/gotchas.md +231 -0
- package/skills/cloudflare/references/turn/patterns.md +213 -0
- package/skills/cloudflare/references/turnstile/README.md +99 -0
- package/skills/cloudflare/references/turnstile/api.md +240 -0
- package/skills/cloudflare/references/turnstile/configuration.md +222 -0
- package/skills/cloudflare/references/turnstile/gotchas.md +218 -0
- package/skills/cloudflare/references/turnstile/patterns.md +193 -0
- package/skills/cloudflare/references/vectorize/README.md +133 -0
- package/skills/cloudflare/references/vectorize/api.md +88 -0
- package/skills/cloudflare/references/vectorize/configuration.md +88 -0
- package/skills/cloudflare/references/vectorize/gotchas.md +76 -0
- package/skills/cloudflare/references/vectorize/patterns.md +90 -0
- package/skills/cloudflare/references/waf/README.md +113 -0
- package/skills/cloudflare/references/waf/api.md +202 -0
- package/skills/cloudflare/references/waf/configuration.md +203 -0
- package/skills/cloudflare/references/waf/gotchas.md +204 -0
- package/skills/cloudflare/references/waf/patterns.md +197 -0
- package/skills/cloudflare/references/web-analytics/README.md +141 -0
- package/skills/cloudflare/references/web-analytics/configuration.md +76 -0
- package/skills/cloudflare/references/web-analytics/gotchas.md +82 -0
- package/skills/cloudflare/references/web-analytics/integration.md +60 -0
- package/skills/cloudflare/references/web-analytics/patterns.md +91 -0
- package/skills/cloudflare/references/workerd/README.md +78 -0
- package/skills/cloudflare/references/workerd/api.md +185 -0
- package/skills/cloudflare/references/workerd/configuration.md +183 -0
- package/skills/cloudflare/references/workerd/gotchas.md +139 -0
- package/skills/cloudflare/references/workerd/patterns.md +192 -0
- package/skills/cloudflare/references/workers/README.md +108 -0
- package/skills/cloudflare/references/workers/api.md +195 -0
- package/skills/cloudflare/references/workers/configuration.md +185 -0
- package/skills/cloudflare/references/workers/frameworks.md +197 -0
- package/skills/cloudflare/references/workers/gotchas.md +136 -0
- package/skills/cloudflare/references/workers/patterns.md +198 -0
- package/skills/cloudflare/references/workers-ai/README.md +197 -0
- package/skills/cloudflare/references/workers-ai/api.md +112 -0
- package/skills/cloudflare/references/workers-ai/configuration.md +97 -0
- package/skills/cloudflare/references/workers-ai/gotchas.md +114 -0
- package/skills/cloudflare/references/workers-ai/patterns.md +120 -0
- package/skills/cloudflare/references/workers-for-platforms/README.md +89 -0
- package/skills/cloudflare/references/workers-for-platforms/api.md +196 -0
- package/skills/cloudflare/references/workers-for-platforms/configuration.md +167 -0
- package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
- package/skills/cloudflare/references/workers-for-platforms/patterns.md +188 -0
- package/skills/cloudflare/references/workers-playground/README.md +127 -0
- package/skills/cloudflare/references/workers-playground/api.md +101 -0
- package/skills/cloudflare/references/workers-playground/configuration.md +163 -0
- package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
- package/skills/cloudflare/references/workers-playground/patterns.md +132 -0
- package/skills/cloudflare/references/workers-vpc/README.md +127 -0
- package/skills/cloudflare/references/workers-vpc/api.md +202 -0
- package/skills/cloudflare/references/workers-vpc/configuration.md +147 -0
- package/skills/cloudflare/references/workers-vpc/gotchas.md +167 -0
- package/skills/cloudflare/references/workers-vpc/patterns.md +209 -0
- package/skills/cloudflare/references/workflows/README.md +69 -0
- package/skills/cloudflare/references/workflows/api.md +185 -0
- package/skills/cloudflare/references/workflows/configuration.md +151 -0
- package/skills/cloudflare/references/workflows/gotchas.md +97 -0
- package/skills/cloudflare/references/workflows/patterns.md +175 -0
- package/skills/cloudflare/references/wrangler/README.md +135 -0
- package/skills/cloudflare/references/wrangler/api.md +188 -0
- package/skills/cloudflare/references/wrangler/configuration.md +197 -0
- package/skills/cloudflare/references/wrangler/gotchas.md +197 -0
- package/skills/cloudflare/references/wrangler/patterns.md +209 -0
- package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
- package/skills/cloudflare/references/zaraz/README.md +111 -0
- package/skills/cloudflare/references/zaraz/api.md +112 -0
- package/skills/cloudflare/references/zaraz/configuration.md +90 -0
- package/skills/cloudflare/references/zaraz/gotchas.md +81 -0
- package/skills/cloudflare/references/zaraz/patterns.md +74 -0
- package/skills/code-reviewer/SKILL.md +347 -0
- package/skills/code-simplifier/SKILL.md +124 -0
- package/skills/code-simplifier/agents/verdent.yaml +11 -0
- package/skills/code-simplifier/assets/icon-dark.png +0 -0
- package/skills/code-simplifier/assets/icon-light.png +0 -0
- package/skills/concept-modeler/SKILL.md +178 -0
- package/skills/context-engineering/SKILL.md +289 -0
- package/skills/copywriting/SKILL.md +252 -0
- package/skills/copywriting/evals/evals.json +111 -0
- package/skills/copywriting/references/copy-frameworks.md +344 -0
- package/skills/copywriting/references/natural-transitions.md +272 -0
- package/skills/core-web-vitals/SKILL.md +483 -0
- package/skills/core-web-vitals/references/LCP.md +208 -0
- package/skills/craft-authoring/SKILL.md +123 -0
- package/skills/create-design-system-rules/SKILL.md +530 -0
- package/skills/create-design-system-rules/agents/verdent.yaml +11 -0
- package/skills/create-design-system-rules/assets/icon-dark.png +0 -0
- package/skills/create-design-system-rules/assets/icon-light.png +0 -0
- package/skills/database-and-data-modeling/SKILL.md +515 -0
- package/skills/database-blueprints/SKILL.md +60 -0
- package/skills/database-blueprints/agents/verdent.yaml +13 -0
- package/skills/database-blueprints/assets/icon-dark.png +0 -0
- package/skills/database-blueprints/assets/icon-light.png +0 -0
- package/skills/database-blueprints/references/core-schema.md +68 -0
- package/skills/database-blueprints/references/migration-safety.md +55 -0
- package/skills/database-blueprints/references/mysql.md +50 -0
- package/skills/database-blueprints/references/prisma.md +47 -0
- package/skills/database-blueprints/references/supabase-postgres.md +63 -0
- package/skills/delivery-acceptance/SKILL.md +60 -0
- package/skills/delivery-acceptance/agents/verdent.yaml +12 -0
- package/skills/delivery-acceptance/assets/icon-dark.png +0 -0
- package/skills/delivery-acceptance/assets/icon-light.png +0 -0
- package/skills/delivery-acceptance/references/acceptance-checklist.md +44 -0
- package/skills/delivery-acceptance/references/mobile-print-file.md +19 -0
- package/skills/delivery-acceptance/references/playwright-smoke.md +35 -0
- package/skills/dependency-audit/SKILL.md +97 -0
- package/skills/deprecation-and-migration/SKILL.md +206 -0
- package/skills/design-reviewer/SKILL.md +189 -0
- package/skills/develop-web-game/LICENSE.txt +201 -0
- package/skills/develop-web-game/SKILL.md +154 -0
- package/skills/develop-web-game/agents/verdent.yaml +12 -0
- package/skills/develop-web-game/assets/game-small.svg +4 -0
- package/skills/develop-web-game/assets/game.png +0 -0
- package/skills/develop-web-game/assets/icon-dark.png +0 -0
- package/skills/develop-web-game/assets/icon-light.png +0 -0
- package/skills/develop-web-game/references/action_payloads.json +7 -0
- package/skills/develop-web-game/scripts/web_game_playwright_client.js +356 -0
- package/skills/dignified-python/SKILL.md +175 -0
- package/skills/dignified-python/agents/verdent.yaml +11 -0
- package/skills/dignified-python/assets/icon-dark.png +0 -0
- package/skills/dignified-python/assets/icon-light.png +0 -0
- package/skills/dignified-python/cli-patterns.md +156 -0
- package/skills/dignified-python/dignified-python-core.md +345 -0
- package/skills/dignified-python/references/README.md +319 -0
- package/skills/dignified-python/references/advanced/api-design.md +230 -0
- package/skills/dignified-python/references/advanced/exception-handling.md +185 -0
- package/skills/dignified-python/references/advanced/interfaces.md +183 -0
- package/skills/dignified-python/references/advanced/typing-advanced.md +158 -0
- package/skills/dignified-python/references/checklists.md +134 -0
- package/skills/dignified-python/references/module-design.md +214 -0
- package/skills/dignified-python/subprocess.md +99 -0
- package/skills/dignified-python/versions/python-3.10.md +520 -0
- package/skills/dignified-python/versions/python-3.11.md +538 -0
- package/skills/dignified-python/versions/python-3.12.md +664 -0
- package/skills/dignified-python/versions/python-3.13.md +657 -0
- package/skills/dispatching-parallel-agents/SKILL.md +182 -0
- package/skills/documentation-and-adrs/SKILL.md +278 -0
- package/skills/documentation-sync/SKILL.md +76 -0
- package/skills/documentation-writer/SKILL.md +50 -0
- package/skills/documentation-writer/agents/verdent.yaml +10 -0
- package/skills/documentation-writer/assets/icon-dark.png +0 -0
- package/skills/documentation-writer/assets/icon-light.png +0 -0
- package/skills/docx/SKILL.md +186 -0
- package/skills/docx/agents/verdent.yaml +9 -0
- package/skills/docx/assets/docx.png +0 -0
- package/skills/docx/assets/icon-dark.png +0 -0
- package/skills/docx/assets/icon-light.png +0 -0
- package/skills/docx/references/creation-guide.md +309 -0
- package/skills/docx/references/xml-editing-guide.md +237 -0
- package/skills/docx/scripts/docx_tool.py +164 -0
- package/skills/docx/scripts/fixtures/comments.xml +3 -0
- package/skills/docx/scripts/fixtures/commentsExtended.xml +3 -0
- package/skills/docx/scripts/fixtures/commentsExtensible.xml +3 -0
- package/skills/docx/scripts/fixtures/commentsIds.xml +3 -0
- package/skills/docx/scripts/fixtures/people.xml +3 -0
- package/skills/docx/scripts/internals/__init__.py +0 -0
- package/skills/docx/scripts/internals/content.py +307 -0
- package/skills/docx/scripts/internals/integrity/__init__.py +0 -0
- package/skills/docx/scripts/internals/integrity/foundation.py +559 -0
- package/skills/docx/scripts/internals/integrity/orchestrator.py +66 -0
- package/skills/docx/scripts/internals/integrity/revision_checker.py +181 -0
- package/skills/docx/scripts/internals/integrity/schema_checker.py +294 -0
- package/skills/docx/scripts/internals/packaging.py +193 -0
- package/skills/docx/scripts/internals/preprocessing/__init__.py +0 -0
- package/skills/docx/scripts/internals/preprocessing/revision_merger.py +193 -0
- package/skills/docx/scripts/internals/preprocessing/run_consolidator.py +179 -0
- package/skills/docx/scripts/internals/runtime/__init__.py +0 -0
- package/skills/docx/scripts/internals/runtime/converter.py +184 -0
- package/skills/docx/scripts/internals/runtime/renderer.py +60 -0
- package/skills/docx/scripts/internals/runtime/revision_acceptor.py +122 -0
- package/skills/docx/scripts/render_docx.py +296 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/docx/scripts/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/docx/scripts/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/docx/scripts/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/docx/scripts/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/docx/scripts/schemas/mce/mc.xsd +75 -0
- package/skills/docx/scripts/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/docx/scripts/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/docx/scripts/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/docx/scripts/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/docx/scripts/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/docx/scripts/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/docx/scripts/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/doubt-driven-development/SKILL.md +243 -0
- package/skills/e2e-testing-guide/SKILL.md +204 -0
- package/skills/emil-design-eng/SKILL.md +679 -0
- package/skills/environment-and-config/SKILL.md +849 -0
- package/skills/error-handling/SKILL.md +757 -0
- package/skills/excalidraw-diagram-generator/SKILL.md +618 -0
- package/skills/excalidraw-diagram-generator/agents/verdent.yaml +11 -0
- package/skills/excalidraw-diagram-generator/assets/icon-dark.png +0 -0
- package/skills/excalidraw-diagram-generator/assets/icon-light.png +0 -0
- package/skills/excalidraw-diagram-generator/references/element-types.md +497 -0
- package/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +350 -0
- package/skills/excalidraw-diagram-generator/scripts/README.md +193 -0
- package/skills/excalidraw-diagram-generator/scripts/add-arrow.py +312 -0
- package/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +404 -0
- package/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +183 -0
- package/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +334 -0
- package/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +558 -0
- package/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +279 -0
- package/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +662 -0
- package/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +179 -0
- package/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +244 -0
- package/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +145 -0
- package/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +509 -0
- package/skills/executing-plans/SKILL.md +245 -0
- package/skills/figma/LICENSE.txt +202 -0
- package/skills/figma/SKILL.md +53 -0
- package/skills/figma/agents/verdent.yaml +7 -0
- package/skills/figma/assets/figma.png +0 -0
- package/skills/figma/assets/icon-dark.png +0 -0
- package/skills/figma/assets/icon-light.png +0 -0
- package/skills/figma/assets/icon.svg +28 -0
- package/skills/figma/references/figma-mcp-config.md +49 -0
- package/skills/figma/references/figma-tools-and-prompts.md +39 -0
- package/skills/figma-implement-design/LICENSE.txt +202 -0
- package/skills/figma-implement-design/SKILL.md +265 -0
- package/skills/figma-implement-design/agents/verdent.yaml +7 -0
- package/skills/figma-implement-design/assets/figma.png +0 -0
- package/skills/figma-implement-design/assets/icon-dark.png +0 -0
- package/skills/figma-implement-design/assets/icon-light.png +0 -0
- package/skills/figma-implement-design/assets/icon.svg +28 -0
- package/skills/find-docs/SKILL.md +164 -0
- package/skills/find-docs/agents/verdent.yaml +11 -0
- package/skills/find-docs/assets/icon-dark.png +0 -0
- package/skills/find-docs/assets/icon-light.png +0 -0
- package/skills/find-skills/SKILL.md +142 -0
- package/skills/firecrawl/SKILL.md +131 -0
- package/skills/firecrawl/agents/verdent.yaml +11 -0
- package/skills/firecrawl/assets/icon-dark.png +0 -0
- package/skills/firecrawl/assets/icon-light.png +0 -0
- package/skills/firecrawl/rules/install.md +63 -0
- package/skills/firecrawl/rules/security.md +26 -0
- package/skills/flutter-architecting-apps/SKILL.md +164 -0
- package/skills/flutter-architecting-apps/agents/verdent.yaml +11 -0
- package/skills/flutter-architecting-apps/assets/icon-dark.png +0 -0
- package/skills/flutter-architecting-apps/assets/icon-light.png +0 -0
- package/skills/frontend-design-pro/SKILL.md +328 -0
- package/skills/frontend-slides/LICENSE +21 -0
- package/skills/frontend-slides/SKILL.md +1169 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +561 -0
- package/skills/frontend-slides/agents/verdent.yaml +7 -0
- package/skills/frontend-slides/assets/icon-dark.png +0 -0
- package/skills/frontend-slides/assets/icon-light.png +0 -0
- package/skills/gh-cli/SKILL.md +2192 -0
- package/skills/gh-cli/agents/verdent.yaml +12 -0
- package/skills/gh-cli/assets/icon-dark.png +0 -0
- package/skills/gh-cli/assets/icon-light.png +0 -0
- package/skills/git-commit/SKILL.md +129 -0
- package/skills/git-commit/agents/verdent.yaml +11 -0
- package/skills/git-commit/assets/icon-dark.png +0 -0
- package/skills/git-commit/assets/icon-light.png +0 -0
- package/skills/git-workflow-and-versioning/SKILL.md +300 -0
- package/skills/graphql-operations/SKILL.md +247 -0
- package/skills/graphql-operations/agents/verdent.yaml +11 -0
- package/skills/graphql-operations/assets/icon-dark.png +0 -0
- package/skills/graphql-operations/assets/icon-light.png +0 -0
- package/skills/graphql-operations/references/fragments.md +536 -0
- package/skills/graphql-operations/references/mutations.md +435 -0
- package/skills/graphql-operations/references/queries.md +504 -0
- package/skills/graphql-operations/references/tooling.md +404 -0
- package/skills/graphql-operations/references/variables.md +440 -0
- package/skills/graphql-schema/SKILL.md +175 -0
- package/skills/graphql-schema/agents/verdent.yaml +11 -0
- package/skills/graphql-schema/assets/icon-dark.png +0 -0
- package/skills/graphql-schema/assets/icon-light.png +0 -0
- package/skills/graphql-schema/references/errors.md +388 -0
- package/skills/graphql-schema/references/naming.md +400 -0
- package/skills/graphql-schema/references/pagination.md +396 -0
- package/skills/graphql-schema/references/security.md +484 -0
- package/skills/graphql-schema/references/types.md +445 -0
- package/skills/hugging-face-model-trainer/SKILL.md +722 -0
- package/skills/hugging-face-model-trainer/agents/verdent.yaml +12 -0
- package/skills/hugging-face-model-trainer/assets/icon-dark.png +0 -0
- package/skills/hugging-face-model-trainer/assets/icon-light.png +0 -0
- package/skills/hugging-face-model-trainer/references/gguf_conversion.md +296 -0
- package/skills/hugging-face-model-trainer/references/hardware_guide.md +283 -0
- package/skills/hugging-face-model-trainer/references/hub_saving.md +364 -0
- package/skills/hugging-face-model-trainer/references/local_training_macos.md +231 -0
- package/skills/hugging-face-model-trainer/references/reliability_principles.md +371 -0
- package/skills/hugging-face-model-trainer/references/trackio_guide.md +189 -0
- package/skills/hugging-face-model-trainer/references/training_methods.md +150 -0
- package/skills/hugging-face-model-trainer/references/training_patterns.md +203 -0
- package/skills/hugging-face-model-trainer/references/troubleshooting.md +282 -0
- package/skills/hugging-face-model-trainer/references/unsloth.md +313 -0
- package/skills/hugging-face-model-trainer/scripts/convert_to_gguf.py +424 -0
- package/skills/hugging-face-model-trainer/scripts/dataset_inspector.py +417 -0
- package/skills/hugging-face-model-trainer/scripts/estimate_cost.py +150 -0
- package/skills/hugging-face-model-trainer/scripts/train_dpo_example.py +106 -0
- package/skills/hugging-face-model-trainer/scripts/train_grpo_example.py +89 -0
- package/skills/hugging-face-model-trainer/scripts/train_sft_example.py +122 -0
- package/skills/hugging-face-model-trainer/scripts/unsloth_sft_example.py +512 -0
- package/skills/imagegen/LICENSE.txt +201 -0
- package/skills/imagegen/SKILL.md +180 -0
- package/skills/imagegen/agents/verdent.yaml +11 -0
- package/skills/imagegen/assets/icon-dark.png +0 -0
- package/skills/imagegen/assets/icon-light.png +0 -0
- package/skills/imagegen/assets/imagegen-small.svg +5 -0
- package/skills/imagegen/assets/imagegen.png +0 -0
- package/skills/imagegen/references/cli.md +132 -0
- package/skills/imagegen/references/image-api.md +36 -0
- package/skills/imagegen/references/network-notes.md +28 -0
- package/skills/imagegen/references/prompting.md +81 -0
- package/skills/imagegen/references/sample-prompts.md +384 -0
- package/skills/imagegen/scripts/image_gen.py +876 -0
- package/skills/impeccable/SKILL.md +450 -0
- package/skills/impeccable/reference/adapt.md +190 -0
- package/skills/impeccable/reference/animate.md +175 -0
- package/skills/impeccable/reference/audit.md +133 -0
- package/skills/impeccable/reference/bolder.md +113 -0
- package/skills/impeccable/reference/brand.md +114 -0
- package/skills/impeccable/reference/clarify.md +174 -0
- package/skills/impeccable/reference/cognitive-load.md +106 -0
- package/skills/impeccable/reference/color-and-contrast.md +105 -0
- package/skills/impeccable/reference/colorize.md +154 -0
- package/skills/impeccable/reference/craft.md +193 -0
- package/skills/impeccable/reference/critique.md +213 -0
- package/skills/impeccable/reference/delight.md +302 -0
- package/skills/impeccable/reference/distill.md +111 -0
- package/skills/impeccable/reference/document.md +427 -0
- package/skills/impeccable/reference/extract.md +69 -0
- package/skills/impeccable/reference/harden.md +347 -0
- package/skills/impeccable/reference/heuristics-scoring.md +234 -0
- package/skills/impeccable/reference/interaction-design.md +195 -0
- package/skills/impeccable/reference/layout.md +141 -0
- package/skills/impeccable/reference/live.md +622 -0
- package/skills/impeccable/reference/motion-design.md +109 -0
- package/skills/impeccable/reference/onboard.md +234 -0
- package/skills/impeccable/reference/optimize.md +258 -0
- package/skills/impeccable/reference/overdrive.md +130 -0
- package/skills/impeccable/reference/personas.md +179 -0
- package/skills/impeccable/reference/polish.md +233 -0
- package/skills/impeccable/reference/product.md +62 -0
- package/skills/impeccable/reference/quieter.md +99 -0
- package/skills/impeccable/reference/responsive-design.md +114 -0
- package/skills/impeccable/reference/shape.md +151 -0
- package/skills/impeccable/reference/spatial-design.md +100 -0
- package/skills/impeccable/reference/teach.md +156 -0
- package/skills/impeccable/reference/typeset.md +124 -0
- package/skills/impeccable/reference/typography.md +159 -0
- package/skills/impeccable/reference/ux-writing.md +107 -0
- package/skills/impeccable/references/A11Y-PATTERNS.md +233 -0
- package/skills/impeccable/references/WCAG.md +191 -0
- package/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
- package/skills/impeccable/scripts/command-metadata.json +94 -0
- package/skills/impeccable/scripts/design-parser.mjs +820 -0
- package/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/skills/impeccable/scripts/impeccable-paths.mjs +105 -0
- package/skills/impeccable/scripts/is-generated.mjs +69 -0
- package/skills/impeccable/scripts/live-accept.mjs +595 -0
- package/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/skills/impeccable/scripts/live-browser.js +4860 -0
- package/skills/impeccable/scripts/live-complete.mjs +75 -0
- package/skills/impeccable/scripts/live-completion.mjs +18 -0
- package/skills/impeccable/scripts/live-inject.mjs +446 -0
- package/skills/impeccable/scripts/live-poll.mjs +200 -0
- package/skills/impeccable/scripts/live-resume.mjs +48 -0
- package/skills/impeccable/scripts/live-server.mjs +836 -0
- package/skills/impeccable/scripts/live-session-store.mjs +254 -0
- package/skills/impeccable/scripts/live-status.mjs +47 -0
- package/skills/impeccable/scripts/live-wrap.mjs +632 -0
- package/skills/impeccable/scripts/live.mjs +247 -0
- package/skills/impeccable/scripts/load-context.mjs +141 -0
- package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/impeccable/scripts/pin.mjs +214 -0
- package/skills/improve-codebase-architecture/DEEPENING.md +37 -0
- package/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +44 -0
- package/skills/improve-codebase-architecture/LANGUAGE.md +53 -0
- package/skills/improve-codebase-architecture/SKILL.md +331 -0
- package/skills/incident-response/SKILL.md +97 -0
- package/skills/interview-me/SKILL.md +221 -0
- package/skills/knowledge-base-update/SKILL.md +90 -0
- package/skills/langchain-rag/SKILL.md +522 -0
- package/skills/langchain-rag/agents/verdent.yaml +12 -0
- package/skills/langchain-rag/assets/icon-dark.png +0 -0
- package/skills/langchain-rag/assets/icon-light.png +0 -0
- package/skills/linear/LICENSE.txt +202 -0
- package/skills/linear/SKILL.md +102 -0
- package/skills/linear/agents/verdent.yaml +7 -0
- package/skills/linear/assets/icon-dark.png +0 -0
- package/skills/linear/assets/icon-light.png +0 -0
- package/skills/linear/assets/linear.png +0 -0
- package/skills/localization-hub/ai-batch.md +23 -0
- package/skills/localization-hub/key-naming.md +15 -0
- package/skills/localization-hub/route-slugs.md +14 -0
- package/skills/mcp-builder/LICENSE.txt +202 -0
- package/skills/mcp-builder/SKILL.md +260 -0
- package/skills/mcp-builder/agents/verdent.yaml +7 -0
- package/skills/mcp-builder/assets/icon-dark.png +0 -0
- package/skills/mcp-builder/assets/icon-light.png +0 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +269 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +980 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +737 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/netlify-deploy/LICENSE.txt +201 -0
- package/skills/netlify-deploy/SKILL.md +261 -0
- package/skills/netlify-deploy/agents/verdent.yaml +7 -0
- package/skills/netlify-deploy/assets/icon-dark.png +0 -0
- package/skills/netlify-deploy/assets/icon-light.png +0 -0
- package/skills/netlify-deploy/assets/netlify.png +0 -0
- package/skills/netlify-deploy/references/cli-commands.md +162 -0
- package/skills/netlify-deploy/references/deployment-patterns.md +319 -0
- package/skills/netlify-deploy/references/netlify-toml.md +259 -0
- package/skills/nexus-mapper/SKILL.md +314 -0
- package/skills/nexus-mapper/references/language-customization.md +164 -0
- package/skills/nexus-mapper/references/output-schema.md +298 -0
- package/skills/nexus-mapper/references/probe-protocol.md +246 -0
- package/skills/nexus-mapper/scripts/extract_ast.py +705 -0
- package/skills/nexus-mapper/scripts/git_detective.py +194 -0
- package/skills/nexus-mapper/scripts/languages.json +127 -0
- package/skills/nexus-mapper/scripts/query_graph.py +556 -0
- package/skills/nexus-mapper/scripts/requirements.txt +6 -0
- package/skills/notion-spec-to-implementation/LICENSE.txt +7 -0
- package/skills/notion-spec-to-implementation/SKILL.md +67 -0
- package/skills/notion-spec-to-implementation/agents/verdent.yaml +7 -0
- package/skills/notion-spec-to-implementation/assets/icon-dark.png +0 -0
- package/skills/notion-spec-to-implementation/assets/icon-light.png +0 -0
- package/skills/notion-spec-to-implementation/assets/notion.png +0 -0
- package/skills/notion-spec-to-implementation/evaluations/README.md +130 -0
- package/skills/notion-spec-to-implementation/evaluations/basic-spec-implementation.json +31 -0
- package/skills/notion-spec-to-implementation/evaluations/spec-to-tasks.json +34 -0
- package/skills/notion-spec-to-implementation/examples/api-feature.md +511 -0
- package/skills/notion-spec-to-implementation/examples/database-migration.md +89 -0
- package/skills/notion-spec-to-implementation/examples/ui-component.md +78 -0
- package/skills/notion-spec-to-implementation/reference/milestone-summary-template.md +31 -0
- package/skills/notion-spec-to-implementation/reference/progress-tracking.md +507 -0
- package/skills/notion-spec-to-implementation/reference/progress-update-template.md +29 -0
- package/skills/notion-spec-to-implementation/reference/quick-implementation-plan.md +30 -0
- package/skills/notion-spec-to-implementation/reference/spec-parsing.md +406 -0
- package/skills/notion-spec-to-implementation/reference/standard-implementation-plan.md +170 -0
- package/skills/notion-spec-to-implementation/reference/task-creation-template.md +40 -0
- package/skills/notion-spec-to-implementation/reference/task-creation.md +467 -0
- package/skills/pdf/LICENSE.txt +201 -0
- package/skills/pdf/SKILL.md +715 -0
- package/skills/pdf/agents/verdent.yaml +9 -0
- package/skills/pdf/assets/icon-dark.png +0 -0
- package/skills/pdf/assets/icon-light.png +0 -0
- package/skills/pdf/assets/pdf.png +0 -0
- package/skills/pdf/reference.md +221 -0
- package/skills/performance/SKILL.md +400 -0
- package/skills/playwright/LICENSE.txt +201 -0
- package/skills/playwright/NOTICE.txt +14 -0
- package/skills/playwright/SKILL.md +151 -0
- package/skills/playwright/agents/verdent.yaml +7 -0
- package/skills/playwright/assets/icon-dark.png +0 -0
- package/skills/playwright/assets/icon-light.png +0 -0
- package/skills/playwright/assets/playwright.png +0 -0
- package/skills/playwright/references/cli.md +116 -0
- package/skills/playwright/references/workflows.md +95 -0
- package/skills/playwright/scripts/playwright_cli.sh +25 -0
- package/skills/playwriter/SKILL.md +69 -0
- package/skills/playwriter/agents/verdent.yaml +7 -0
- package/skills/playwriter/assets/icon-dark.png +0 -0
- package/skills/playwriter/assets/icon-light.png +0 -0
- package/skills/pptx/SKILL.md +302 -0
- package/skills/pptx/agents/verdent.yaml +9 -0
- package/skills/pptx/assets/icon-dark.png +0 -0
- package/skills/pptx/assets/icon-light.png +0 -0
- package/skills/pptx/references/generate-with-js.md +412 -0
- package/skills/pptx/references/modify-workflow.md +157 -0
- package/skills/pptx/references/python-charts.md +91 -0
- package/skills/pptx/scripts/check_env.py +207 -0
- package/skills/pptx/scripts/deck.py +161 -0
- package/skills/pptx/scripts/internals/__init__.py +0 -0
- package/skills/pptx/scripts/internals/cleanup.py +194 -0
- package/skills/pptx/scripts/internals/content.py +62 -0
- package/skills/pptx/scripts/internals/create.py +122 -0
- package/skills/pptx/scripts/internals/gridshot.py +181 -0
- package/skills/pptx/scripts/internals/imaging.py +77 -0
- package/skills/pptx/scripts/internals/integrity/__init__.py +0 -0
- package/skills/pptx/scripts/internals/integrity/checks.py +318 -0
- package/skills/pptx/scripts/internals/packaging.py +127 -0
- package/skills/pptx/scripts/internals/runtime/__init__.py +0 -0
- package/skills/pptx/scripts/internals/runtime/converter.py +154 -0
- package/skills/pptx/scripts/internals/structure.py +162 -0
- package/skills/pr-creator/SKILL.md +98 -0
- package/skills/pr-creator/agents/verdent.yaml +11 -0
- package/skills/pr-creator/assets/icon-dark.png +0 -0
- package/skills/pr-creator/assets/icon-light.png +0 -0
- package/skills/prd/SKILL.md +148 -0
- package/skills/prd/agents/verdent.yaml +11 -0
- package/skills/prd/assets/icon-dark.png +0 -0
- package/skills/prd/assets/icon-light.png +0 -0
- package/skills/prismx-skill-gateway/SKILL.md +179 -0
- package/skills/prismx-skill-gateway/references/installed-skills.md +38 -0
- package/skills/prismx-skills-catalog/SKILL.md +51 -0
- package/skills/prismx-skills-catalog/references/inventory.json +1092 -0
- package/skills/prompt-enhancer/SKILL.md +90 -0
- package/skills/react-native-best-practices/SKILL.md +241 -0
- package/skills/react-native-best-practices/agents/verdent.yaml +11 -0
- package/skills/react-native-best-practices/assets/icon-dark.png +0 -0
- package/skills/react-native-best-practices/assets/icon-light.png +0 -0
- package/skills/react-native-best-practices/references/bundle-analyze-app.md +211 -0
- package/skills/react-native-best-practices/references/bundle-analyze-js.md +262 -0
- package/skills/react-native-best-practices/references/bundle-barrel-exports.md +248 -0
- package/skills/react-native-best-practices/references/bundle-code-splitting.md +224 -0
- package/skills/react-native-best-practices/references/bundle-hermes-mmap.md +167 -0
- package/skills/react-native-best-practices/references/bundle-library-size.md +177 -0
- package/skills/react-native-best-practices/references/bundle-native-assets.md +214 -0
- package/skills/react-native-best-practices/references/bundle-r8-android.md +225 -0
- package/skills/react-native-best-practices/references/bundle-tree-shaking.md +214 -0
- package/skills/react-native-best-practices/references/images/bundle-treemap-source-map-explorer.png +0 -0
- package/skills/react-native-best-practices/references/images/controlled-textinput-pingpong.png +0 -0
- package/skills/react-native-best-practices/references/images/devtools-flamegraph.png +0 -0
- package/skills/react-native-best-practices/references/images/emerge-xray-ios.png +0 -0
- package/skills/react-native-best-practices/references/images/expo-atlas-treemap.png +0 -0
- package/skills/react-native-best-practices/references/images/flashlight-flatlist-vs-flashlist.png +0 -0
- package/skills/react-native-best-practices/references/images/fps-drop-graph.png +0 -0
- package/skills/react-native-best-practices/references/images/memory-heap-snapshot.png +0 -0
- package/skills/react-native-best-practices/references/images/tti-warm-start-diagram.png +0 -0
- package/skills/react-native-best-practices/references/images/view-hierarchy-flattening.png +0 -0
- package/skills/react-native-best-practices/references/images/xcode-instruments-templates.png +0 -0
- package/skills/react-native-best-practices/references/images/xcode-thread-view.png +0 -0
- package/skills/react-native-best-practices/references/js-animations-reanimated.md +254 -0
- package/skills/react-native-best-practices/references/js-atomic-state.md +245 -0
- package/skills/react-native-best-practices/references/js-concurrent-react.md +236 -0
- package/skills/react-native-best-practices/references/js-lists-flatlist-flashlist.md +236 -0
- package/skills/react-native-best-practices/references/js-measure-fps.md +180 -0
- package/skills/react-native-best-practices/references/js-memory-leaks.md +205 -0
- package/skills/react-native-best-practices/references/js-profile-react.md +161 -0
- package/skills/react-native-best-practices/references/js-react-compiler.md +368 -0
- package/skills/react-native-best-practices/references/js-uncontrolled-components.md +216 -0
- package/skills/react-native-best-practices/references/native-android-16kb-alignment.md +113 -0
- package/skills/react-native-best-practices/references/native-measure-tti.md +262 -0
- package/skills/react-native-best-practices/references/native-memory-leaks.md +240 -0
- package/skills/react-native-best-practices/references/native-memory-patterns.md +274 -0
- package/skills/react-native-best-practices/references/native-platform-setup.md +110 -0
- package/skills/react-native-best-practices/references/native-profiling.md +176 -0
- package/skills/react-native-best-practices/references/native-sdks-over-polyfills.md +183 -0
- package/skills/react-native-best-practices/references/native-threading-model.md +234 -0
- package/skills/react-native-best-practices/references/native-turbo-modules.md +292 -0
- package/skills/react-native-best-practices/references/native-view-flattening.md +201 -0
- package/skills/redis-development/FULL_GUIDE.md +2216 -0
- package/skills/redis-development/SKILL.md +124 -0
- package/skills/redis-development/agents/verdent.yaml +12 -0
- package/skills/redis-development/assets/icon-dark.png +0 -0
- package/skills/redis-development/assets/icon-light.png +0 -0
- package/skills/redis-development/assets/logo.png +0 -0
- package/skills/redis-development/rules/_contributing.md +97 -0
- package/skills/redis-development/rules/_sections.md +50 -0
- package/skills/redis-development/rules/_template.md +52 -0
- package/skills/redis-development/rules/cluster-hash-tags.md +78 -0
- package/skills/redis-development/rules/cluster-read-replicas.md +55 -0
- package/skills/redis-development/rules/conn-blocking.md +75 -0
- package/skills/redis-development/rules/conn-client-cache.md +70 -0
- package/skills/redis-development/rules/conn-pipelining.md +58 -0
- package/skills/redis-development/rules/conn-pooling.md +71 -0
- package/skills/redis-development/rules/conn-timeouts.md +41 -0
- package/skills/redis-development/rules/data-choose-structure.md +76 -0
- package/skills/redis-development/rules/data-hash-field-expiry.md +62 -0
- package/skills/redis-development/rules/data-incr.md +76 -0
- package/skills/redis-development/rules/data-key-naming.md +62 -0
- package/skills/redis-development/rules/data-transactions.md +74 -0
- package/skills/redis-development/rules/json-partial-updates.md +49 -0
- package/skills/redis-development/rules/json-vs-hash.md +105 -0
- package/skills/redis-development/rules/observe-commands.md +53 -0
- package/skills/redis-development/rules/observe-metrics.md +39 -0
- package/skills/redis-development/rules/ram-limits.md +42 -0
- package/skills/redis-development/rules/ram-ttl.md +55 -0
- package/skills/redis-development/rules/rqe-dialect.md +47 -0
- package/skills/redis-development/rules/rqe-field-types.md +81 -0
- package/skills/redis-development/rules/rqe-index-creation.md +73 -0
- package/skills/redis-development/rules/rqe-index-management.md +49 -0
- package/skills/redis-development/rules/rqe-query-optimization.md +49 -0
- package/skills/redis-development/rules/rqe-skip-initial-scan.md +82 -0
- package/skills/redis-development/rules/security-acls.md +41 -0
- package/skills/redis-development/rules/security-auth.md +78 -0
- package/skills/redis-development/rules/security-network.md +52 -0
- package/skills/redis-development/rules/semantic-cache-best-practices.md +72 -0
- package/skills/redis-development/rules/semantic-cache-langcache-usage.md +86 -0
- package/skills/redis-development/rules/stream-choosing-pattern.md +44 -0
- package/skills/redis-development/rules/vector-algorithm-choice.md +60 -0
- package/skills/redis-development/rules/vector-hybrid-search.md +49 -0
- package/skills/redis-development/rules/vector-index-creation.md +83 -0
- package/skills/redis-development/rules/vector-rag-pattern.md +51 -0
- package/skills/refactor/agents/verdent.yaml +11 -0
- package/skills/refactor/assets/icon-dark.png +0 -0
- package/skills/refactor/assets/icon-light.png +0 -0
- package/skills/runtime-inspector/SKILL.md +99 -0
- package/skills/schema-markup/SKILL.md +179 -0
- package/skills/schema-markup/evals/evals.json +87 -0
- package/skills/schema-markup/references/schema-examples.md +398 -0
- package/skills/screenshot/LICENSE.txt +201 -0
- package/skills/screenshot/SKILL.md +271 -0
- package/skills/screenshot/agents/verdent.yaml +7 -0
- package/skills/screenshot/assets/icon-dark.png +0 -0
- package/skills/screenshot/assets/icon-light.png +0 -0
- package/skills/screenshot/assets/screenshot.png +0 -0
- package/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
- package/skills/screenshot/scripts/macos_display_info.swift +22 -0
- package/skills/screenshot/scripts/macos_permissions.swift +40 -0
- package/skills/screenshot/scripts/macos_window_info.swift +126 -0
- package/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
- package/skills/screenshot/scripts/take_screenshot.py +585 -0
- package/skills/security-and-hardening/SKILL.md +349 -0
- package/skills/security-best-practices/LICENSE.txt +201 -0
- package/skills/security-best-practices/SKILL.md +91 -0
- package/skills/security-best-practices/agents/verdent.yaml +7 -0
- package/skills/security-best-practices/assets/icon-dark.png +0 -0
- package/skills/security-best-practices/assets/icon-light.png +0 -0
- package/skills/security-best-practices/references/golang-general-backend-security.md +988 -0
- package/skills/security-best-practices/references/javascript-express-web-server-security.md +1151 -0
- package/skills/security-best-practices/references/javascript-general-web-frontend-security.md +725 -0
- package/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +672 -0
- package/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1138 -0
- package/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +975 -0
- package/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +789 -0
- package/skills/security-best-practices/references/python-django-web-server-security.md +880 -0
- package/skills/security-best-practices/references/python-fastapi-web-server-security.md +1030 -0
- package/skills/security-best-practices/references/python-flask-web-server-security.md +835 -0
- package/skills/security-ownership-map/LICENSE.txt +201 -0
- package/skills/security-ownership-map/SKILL.md +212 -0
- package/skills/security-ownership-map/agents/verdent.yaml +12 -0
- package/skills/security-ownership-map/assets/icon-dark.png +0 -0
- package/skills/security-ownership-map/assets/icon-light.png +0 -0
- package/skills/security-ownership-map/references/neo4j-import.md +60 -0
- package/skills/security-ownership-map/scripts/build_ownership_map.py +956 -0
- package/skills/security-ownership-map/scripts/community_maintainers.py +544 -0
- package/skills/security-ownership-map/scripts/query_ownership.py +483 -0
- package/skills/security-ownership-map/scripts/run_ownership_map.py +200 -0
- package/skills/security-threat-model/LICENSE.txt +201 -0
- package/skills/security-threat-model/SKILL.md +94 -0
- package/skills/security-threat-model/agents/verdent.yaml +7 -0
- package/skills/security-threat-model/assets/icon-dark.png +0 -0
- package/skills/security-threat-model/assets/icon-light.png +0 -0
- package/skills/security-threat-model/references/prompt-template.md +254 -0
- package/skills/security-threat-model/references/security-controls-and-assets.md +35 -0
- package/skills/seo-audit/SKILL.md +527 -0
- package/skills/seo-audit/evals/evals.json +136 -0
- package/skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/seo-audit/references/international-seo.md +230 -0
- package/skills/sequential-thinking/SKILL.md +224 -0
- package/skills/session-context-primer/SKILL.md +69 -0
- package/skills/shipping-and-launch/SKILL.md +309 -0
- package/skills/source-driven-development/SKILL.md +194 -0
- package/skills/spec-writer/SKILL.md +200 -0
- package/skills/speech/LICENSE.txt +201 -0
- package/skills/speech/SKILL.md +150 -0
- package/skills/speech/agents/verdent.yaml +12 -0
- package/skills/speech/assets/icon-dark.png +0 -0
- package/skills/speech/assets/icon-light.png +0 -0
- package/skills/speech/assets/speech-small.svg +3 -0
- package/skills/speech/assets/speech.png +0 -0
- package/skills/speech/references/accessibility.md +32 -0
- package/skills/speech/references/audio-api.md +31 -0
- package/skills/speech/references/cli.md +99 -0
- package/skills/speech/references/ivr.md +32 -0
- package/skills/speech/references/narration.md +31 -0
- package/skills/speech/references/network-notes.md +28 -0
- package/skills/speech/references/prompting.md +38 -0
- package/skills/speech/references/sample-prompts.md +44 -0
- package/skills/speech/references/voice-directions.md +80 -0
- package/skills/speech/references/voiceover.md +31 -0
- package/skills/speech/scripts/text_to_speech.py +528 -0
- package/skills/system-architect/SKILL.md +677 -0
- package/skills/system-designer/SKILL.md +601 -0
- package/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/find-polluter.sh +63 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/task-planner/SKILL.md +699 -0
- package/skills/task-reviewer/SKILL.md +387 -0
- package/skills/task-skill-router/SKILL.md +105 -0
- package/skills/tech-evaluator/SKILL.md +181 -0
- package/skills/tech-evaluator/references/ADR_TEMPLATE.md +80 -0
- package/skills/tech-evaluator/scripts/evaluate_matrix.py +190 -0
- package/skills/test-driven-development/SKILL.md +383 -0
- package/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/skills/theme-factory/LICENSE.txt +202 -0
- package/skills/theme-factory/SKILL.md +64 -0
- package/skills/theme-factory/agents/verdent.yaml +11 -0
- package/skills/theme-factory/assets/icon-dark.png +0 -0
- package/skills/theme-factory/assets/icon-light.png +0 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/transcribe/LICENSE.txt +201 -0
- package/skills/transcribe/SKILL.md +86 -0
- package/skills/transcribe/agents/verdent.yaml +12 -0
- package/skills/transcribe/assets/icon-dark.png +0 -0
- package/skills/transcribe/assets/icon-light.png +0 -0
- package/skills/transcribe/assets/transcribe-small.svg +3 -0
- package/skills/transcribe/assets/transcribe.png +0 -0
- package/skills/transcribe/references/api.md +8 -0
- package/skills/transcribe/scripts/transcribe_diarize.py +276 -0
- package/skills/vercel-composition-patterns/FULL_GUIDE.md +946 -0
- package/skills/vercel-composition-patterns/SKILL.md +92 -0
- package/skills/vercel-composition-patterns/agents/verdent.yaml +12 -0
- package/skills/vercel-composition-patterns/assets/icon-dark.png +0 -0
- package/skills/vercel-composition-patterns/assets/icon-light.png +0 -0
- package/skills/vercel-composition-patterns/rules/_sections.md +29 -0
- package/skills/vercel-composition-patterns/rules/_template.md +24 -0
- package/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/skills/vercel-deploy/LICENSE.txt +21 -0
- package/skills/vercel-deploy/SKILL.md +75 -0
- package/skills/vercel-deploy/agents/verdent.yaml +7 -0
- package/skills/vercel-deploy/assets/icon-dark.png +0 -0
- package/skills/vercel-deploy/assets/icon-light.png +0 -0
- package/skills/vercel-deploy/assets/vercel.png +0 -0
- package/skills/vercel-deploy/scripts/deploy.sh +301 -0
- package/skills/vercel-react-best-practices/FULL_GUIDE.md +3254 -0
- package/skills/vercel-react-best-practices/SKILL.md +144 -0
- package/skills/vercel-react-best-practices/agents/verdent.yaml +12 -0
- package/skills/vercel-react-best-practices/assets/icon-dark.png +0 -0
- package/skills/vercel-react-best-practices/assets/icon-light.png +0 -0
- package/skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
- package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/skills/verdent-image-cli/SKILL.md +218 -0
- package/skills/verdent-image-cli/agents/verdent.yaml +11 -0
- package/skills/verdent-image-cli/assets/icon-dark.png +0 -0
- package/skills/verdent-image-cli/assets/icon-light.png +0 -0
- package/skills/verdent-skills-catalog/SKILL.md +72 -0
- package/skills/verdent-skills-catalog/references/categories.json +158 -0
- package/skills/verdent-skills-catalog/references/inventory.json +493 -0
- package/skills/verification-before-completion/SKILL.md +139 -0
- package/skills/web-quality-audit/SKILL.md +172 -0
- package/skills/web-quality-audit/scripts/analyze.sh +113 -0
- package/skills/webapp-testing/LICENSE.txt +202 -0
- package/skills/webapp-testing/SKILL.md +302 -0
- package/skills/webapp-testing/examples/console_logging.py +35 -0
- package/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/webapp-testing/scripts/with_server.py +110 -0
- package/skills/workers-best-practices/SKILL.md +132 -0
- package/skills/workers-best-practices/agents/verdent.yaml +11 -0
- package/skills/workers-best-practices/assets/icon-dark.png +0 -0
- package/skills/workers-best-practices/assets/icon-light.png +0 -0
- package/skills/workers-best-practices/references/review.md +174 -0
- package/skills/workers-best-practices/references/rules.md +463 -0
- package/skills/xlsx/SKILL.md +318 -0
- package/skills/xlsx/agents/verdent.yaml +9 -0
- package/skills/xlsx/assets/icon-dark.png +0 -0
- package/skills/xlsx/assets/icon-light.png +0 -0
- package/skills/xlsx/assets/spreadsheet.png +0 -0
- package/skills/xlsx/references/advanced-analysis.md +272 -0
- package/skills/xlsx/references/examples/openpyxl/create_basic_spreadsheet.py +51 -0
- package/skills/xlsx/references/examples/openpyxl/create_spreadsheet_with_styling.py +96 -0
- package/skills/xlsx/references/examples/openpyxl/read_existing_spreadsheet.py +59 -0
- package/skills/xlsx/references/examples/openpyxl/styling_spreadsheet.py +79 -0
- package/skills/xlsx/scripts/formula_engine.py +219 -0
- package/skills/xlsx/scripts/profile.py +62 -0
- package/src/commands/init.js +27 -3
- package/src/commands/pipeline.js +31 -0
- package/src/commands/recover.js +62 -0
- package/src/commands/route.js +7 -0
- package/src/commands/scaffold.js +7 -1
- package/src/commands/skill.js +114 -0
- package/src/commands/ui.js +50 -0
- package/src/commands/upgrade.js +2 -2
- package/src/lib/capability-router.js +4 -3
- package/src/lib/contract.js +49 -0
- package/src/lib/disabled-skills.js +86 -0
- package/src/lib/doctor.js +32 -1
- package/src/lib/env-flags.js +35 -0
- package/src/lib/execution-policy.js +78 -4
- package/src/lib/explanation.js +159 -0
- package/src/lib/ide-sync.js +4 -3
- package/src/lib/pipeline.js +68 -0
- package/src/lib/recover.js +93 -0
- package/src/lib/registry.js +79 -0
- package/src/lib/route-engine.js +21 -1
- package/src/lib/scaffold/index.js +23 -7
- package/src/lib/scaffold/presets.js +200 -31
- package/src/lib/ui-server.js +139 -0
- package/src/lib/upgrade-matrix.js +16 -1
- package/src/lib/workspace-boundary.js +60 -0
- package/templates/minimal/AGENT.md +10 -1
- package/templates/minimal/GUNLUK.md +12 -0
- package/templates/minimal/docs/conventions/daily-use.md +130 -0
- package/templates/minimal/docs/conventions/task-to-capability-cheatsheet.md +29 -0
- package/templates/minimal/docs/kullanim-kilavuzu.md +374 -0
- package/ui/app.js +167 -0
- package/ui/index.html +75 -0
- package/ui/styles.css +227 -0
- package/workflows/audit.md +143 -0
- package/workflows/blueprint.md +374 -0
- package/workflows/challenge.md +322 -0
- package/workflows/change.md +162 -0
- package/workflows/craft.md +135 -0
- package/workflows/design-system.md +248 -0
- package/workflows/explore.md +226 -0
- package/workflows/forge.md +570 -34
- package/workflows/genesis.md +307 -0
- package/workflows/ingest.md +145 -0
- package/workflows/init.md +216 -0
- package/workflows/probe.md +181 -0
- package/workflows/query-to-page.md +134 -0
- package/workflows/quickstart.md +111 -0
- package/workflows/retro.md +78 -0
- package/workflows/upgrade.md +146 -0
- package/workflows/wiki-lint.md +159 -0
- package/templates/bundle/skills/capability-router/SKILL.md +0 -12
- package/templates/bundle/skills/context-memory-bridge/SKILL.md +0 -17
- package/templates/bundle/skills/localization-hub/SKILL.md +0 -17
- package/templates/bundle/skills/refactor/SKILL.md +0 -17
- package/templates/bundle/skills/systematic-debugging/SKILL.md +0 -19
- package/templates/bundle/workflows/forge.md +0 -51
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: database-and-data-modeling
|
|
3
|
+
description: >
|
|
4
|
+
Comprehensive guide for database schema design, migration strategies, ORM patterns,
|
|
5
|
+
indexing, query optimization, and common data modeling patterns. Covers relational and
|
|
6
|
+
NoSQL databases with actionable best practices for production systems.
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
trigger_keywords:
|
|
9
|
+
- database
|
|
10
|
+
- schema
|
|
11
|
+
- migration
|
|
12
|
+
- query
|
|
13
|
+
- SQL
|
|
14
|
+
- ORM
|
|
15
|
+
- index
|
|
16
|
+
- normalization
|
|
17
|
+
- PostgreSQL
|
|
18
|
+
- MySQL
|
|
19
|
+
- MongoDB
|
|
20
|
+
- SQLite
|
|
21
|
+
- data model
|
|
22
|
+
- foreign key
|
|
23
|
+
- join
|
|
24
|
+
- N+1
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Database & Data Modeling
|
|
28
|
+
|
|
29
|
+
## 1. Schema Design Principles
|
|
30
|
+
|
|
31
|
+
### 1.1 Normalization Forms
|
|
32
|
+
|
|
33
|
+
Design schemas starting from 3NF and denormalize intentionally with documented justification.
|
|
34
|
+
|
|
35
|
+
| Normal Form | Rule | Example Violation |
|
|
36
|
+
|-------------|------|-------------------|
|
|
37
|
+
| **1NF** | Atomic values, no repeating groups | `tags: "a,b,c"` stored as CSV in a column |
|
|
38
|
+
| **2NF** | No partial dependencies on composite keys | `order_items(order_id, product_id, product_name)` — `product_name` depends only on `product_id` |
|
|
39
|
+
| **3NF** | No transitive dependencies | `employees(id, dept_id, dept_name)` — `dept_name` depends on `dept_id`, not `id` |
|
|
40
|
+
| **BCNF** | Every determinant is a candidate key | Rare edge cases in composite key tables |
|
|
41
|
+
|
|
42
|
+
### 1.2 Denormalization Trade-offs
|
|
43
|
+
|
|
44
|
+
| Strategy | When to Use | Cost |
|
|
45
|
+
|----------|-------------|------|
|
|
46
|
+
| **Materialized views** | Expensive read queries, stale data acceptable | Storage + refresh cost |
|
|
47
|
+
| **Computed columns** | Frequently derived values | Write overhead |
|
|
48
|
+
| **Duplicate columns** | Cross-table joins on hot paths | Data consistency risk |
|
|
49
|
+
| **Summary tables** | Reporting / analytics dashboards | ETL complexity |
|
|
50
|
+
| **JSON columns** | Flexible schema subsections | Harder to query/index |
|
|
51
|
+
|
|
52
|
+
> **Rule of thumb**: Normalize for writes, denormalize for reads. Always measure before denormalizing.
|
|
53
|
+
|
|
54
|
+
### 1.3 Naming Conventions
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Tables: snake_case, plural → users, order_items
|
|
58
|
+
Columns: snake_case, singular → first_name, created_at
|
|
59
|
+
Primary keys: id (or table_singular_id) → id, user_id
|
|
60
|
+
Foreign keys: referenced_table_id → user_id, order_id
|
|
61
|
+
Indexes: idx_{table}_{columns} → idx_users_email
|
|
62
|
+
Constraints: {type}_{table}_{columns} → uq_users_email, fk_orders_user_id
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 1.4 Standard Column Set
|
|
66
|
+
|
|
67
|
+
Every table should include these columns unless there is a documented reason not to:
|
|
68
|
+
|
|
69
|
+
```sql
|
|
70
|
+
CREATE TABLE example (
|
|
71
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
72
|
+
-- ... domain columns ...
|
|
73
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
74
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
75
|
+
created_by UUID REFERENCES users(id),
|
|
76
|
+
updated_by UUID REFERENCES users(id)
|
|
77
|
+
);
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 2. Migration Strategy
|
|
83
|
+
|
|
84
|
+
### 2.1 Versioned Migrations
|
|
85
|
+
|
|
86
|
+
Use sequential, timestamped migration files. Never edit a migration that has been applied to any shared environment.
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
migrations/
|
|
90
|
+
├── 20240101_000001_create_users.sql
|
|
91
|
+
├── 20240101_000002_create_orders.sql
|
|
92
|
+
├── 20240115_000001_add_users_phone.sql
|
|
93
|
+
└── 20240120_000001_create_order_items.sql
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 2.2 Migration Checklist
|
|
97
|
+
|
|
98
|
+
| Step | Action | Details |
|
|
99
|
+
|------|--------|---------|
|
|
100
|
+
| 1 | **Write UP migration** | The forward change |
|
|
101
|
+
| 2 | **Write DOWN migration** | Reversible rollback |
|
|
102
|
+
| 3 | **Test on staging** | With production-like data volume |
|
|
103
|
+
| 4 | **Backup production** | Point-in-time snapshot before applying |
|
|
104
|
+
| 5 | **Apply in maintenance window** | Or use zero-downtime strategy |
|
|
105
|
+
| 6 | **Verify** | Run health checks and smoke tests |
|
|
106
|
+
| 7 | **Monitor** | Watch error rates for 15–30 minutes |
|
|
107
|
+
|
|
108
|
+
### 2.3 Zero-Downtime Migration Patterns
|
|
109
|
+
|
|
110
|
+
#### Adding a Column
|
|
111
|
+
```
|
|
112
|
+
Step 1: ALTER TABLE ADD COLUMN (nullable, no default) → deploy
|
|
113
|
+
Step 2: Backfill data in batches → deploy
|
|
114
|
+
Step 3: Application code starts writing to new column → deploy
|
|
115
|
+
Step 4: SET NOT NULL / add constraints → deploy
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
#### Renaming a Column
|
|
119
|
+
```
|
|
120
|
+
Step 1: Add new column → deploy
|
|
121
|
+
Step 2: Dual-write to old + new column → deploy
|
|
122
|
+
Step 3: Backfill new column → run
|
|
123
|
+
Step 4: Read from new column → deploy
|
|
124
|
+
Step 5: Stop writing old column → deploy
|
|
125
|
+
Step 6: Drop old column → deploy (after grace period)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Dropping a Column
|
|
129
|
+
```
|
|
130
|
+
Step 1: Stop reading the column in app code → deploy
|
|
131
|
+
Step 2: Stop writing the column → deploy
|
|
132
|
+
Step 3: DROP COLUMN in migration → deploy (after grace period)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 2.4 Rollback Plans
|
|
136
|
+
|
|
137
|
+
- **Always test rollback** on staging before production deployment.
|
|
138
|
+
- Keep rollback scripts in the same migration file (UP/DOWN).
|
|
139
|
+
- For destructive changes (DROP TABLE, DROP COLUMN), the rollback must restore from backup — document this explicitly.
|
|
140
|
+
- Set a **rollback decision deadline**: if issues aren't resolved within 15 minutes, execute rollback.
|
|
141
|
+
|
|
142
|
+
### 2.5 Migration Tools
|
|
143
|
+
|
|
144
|
+
| Tool | Language/Framework | Notes |
|
|
145
|
+
|------|--------------------|-------|
|
|
146
|
+
| **Flyway** | Java / any SQL | Version-based, mature |
|
|
147
|
+
| **Liquibase** | Java / any SQL | XML/YAML/JSON changelog |
|
|
148
|
+
| **Alembic** | Python / SQLAlchemy | Auto-generates diffs |
|
|
149
|
+
| **Knex** | Node.js | JS-based migrations |
|
|
150
|
+
| **Prisma Migrate** | Node.js / TypeScript | Schema-first approach |
|
|
151
|
+
| **Django Migrations** | Python / Django | Auto-detects model changes |
|
|
152
|
+
| **ActiveRecord** | Ruby / Rails | Convention-based |
|
|
153
|
+
| **golang-migrate** | Go | SQL file-based |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 3. ORM Patterns & Anti-Patterns
|
|
158
|
+
|
|
159
|
+
### 3.1 The N+1 Query Problem
|
|
160
|
+
|
|
161
|
+
**Anti-pattern** — fetching related records in a loop:
|
|
162
|
+
|
|
163
|
+
```python
|
|
164
|
+
# BAD: N+1 — 1 query for orders + N queries for users
|
|
165
|
+
orders = Order.objects.all()
|
|
166
|
+
for order in orders:
|
|
167
|
+
print(order.user.name) # Each access triggers a query
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Fix** — eager loading:
|
|
171
|
+
|
|
172
|
+
```python
|
|
173
|
+
# GOOD: 2 queries total (1 for orders, 1 for users)
|
|
174
|
+
orders = Order.objects.select_related('user').all()
|
|
175
|
+
for order in orders:
|
|
176
|
+
print(order.user.name) # No additional query
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### 3.2 Loading Strategies
|
|
180
|
+
|
|
181
|
+
| Strategy | ORM Syntax | When to Use |
|
|
182
|
+
|----------|-----------|-------------|
|
|
183
|
+
| **Eager loading** | `select_related()` (Django), `include()` (Prisma), `eager_load()` (Rails) | Always needed relations, list views |
|
|
184
|
+
| **Lazy loading** | Default in most ORMs | Single object access, rarely traversed relations |
|
|
185
|
+
| **Explicit loading** | `prefetch_related()` (Django), manual JOIN | Conditional loading based on business logic |
|
|
186
|
+
| **Batch loading** | DataLoader pattern (GraphQL) | GraphQL resolvers, fan-out queries |
|
|
187
|
+
|
|
188
|
+
### 3.3 ORM Anti-Patterns
|
|
189
|
+
|
|
190
|
+
| Anti-Pattern | Problem | Solution |
|
|
191
|
+
|--------------|---------|----------|
|
|
192
|
+
| **N+1 queries** | Hundreds of queries for a list page | Eager loading / JOINs |
|
|
193
|
+
| **Fat models** | Business logic in ORM models | Service layer / use cases |
|
|
194
|
+
| **Raw SQL everywhere** | Loses ORM safety, portability | Use ORM; raw SQL only for complex analytics |
|
|
195
|
+
| **Ignoring query count** | Performance degrades silently | Use query logging / `django-debug-toolbar` / `prisma.$queryRaw` |
|
|
196
|
+
| **Over-fetching** | `SELECT *` when only 2 columns needed | Use `.only()`, `.select()`, projections |
|
|
197
|
+
| **Mixing ORM + raw SQL** | Inconsistent data access patterns | Establish a clear data access layer |
|
|
198
|
+
|
|
199
|
+
### 3.4 When to Bypass the ORM
|
|
200
|
+
|
|
201
|
+
- Complex reporting queries with CTEs, window functions
|
|
202
|
+
- Bulk operations (INSERT 100k+ rows)
|
|
203
|
+
- Database-specific features (PostgreSQL `LISTEN/NOTIFY`, full-text search)
|
|
204
|
+
- Performance-critical hot paths after profiling
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 4. Index Strategy
|
|
209
|
+
|
|
210
|
+
### 4.1 Index Types
|
|
211
|
+
|
|
212
|
+
| Type | Syntax (PostgreSQL) | Best For |
|
|
213
|
+
|------|---------------------|----------|
|
|
214
|
+
| **B-tree** (default) | `CREATE INDEX idx ON t(col)` | Equality, range, sorting, `LIKE 'prefix%'` |
|
|
215
|
+
| **Hash** | `CREATE INDEX idx ON t USING hash(col)` | Equality only (rarely better than B-tree) |
|
|
216
|
+
| **GIN** | `CREATE INDEX idx ON t USING gin(col)` | Full-text search, JSONB, arrays |
|
|
217
|
+
| **GiST** | `CREATE INDEX idx ON t USING gist(col)` | Geometric data, range types, nearest-neighbor |
|
|
218
|
+
| **BRIN** | `CREATE INDEX idx ON t USING brin(col)` | Large tables with natural ordering (e.g., timestamps) |
|
|
219
|
+
|
|
220
|
+
### 4.2 Composite Indexes
|
|
221
|
+
|
|
222
|
+
Column order matters — the index is useful for queries that filter on a **left prefix** of the columns.
|
|
223
|
+
|
|
224
|
+
```sql
|
|
225
|
+
-- Index on (country, city, zip_code)
|
|
226
|
+
CREATE INDEX idx_address_lookup ON addresses(country, city, zip_code);
|
|
227
|
+
|
|
228
|
+
-- ✅ Uses index: WHERE country = 'US'
|
|
229
|
+
-- ✅ Uses index: WHERE country = 'US' AND city = 'NYC'
|
|
230
|
+
-- ✅ Uses index: WHERE country = 'US' AND city = 'NYC' AND zip_code = '10001'
|
|
231
|
+
-- ❌ Cannot use index: WHERE city = 'NYC' (missing left prefix)
|
|
232
|
+
-- ❌ Cannot use index: WHERE zip_code = '10001'
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Rule**: Put equality filters first, then range filters, then sort columns.
|
|
236
|
+
|
|
237
|
+
### 4.3 Partial Indexes
|
|
238
|
+
|
|
239
|
+
Index only the rows you actually query:
|
|
240
|
+
|
|
241
|
+
```sql
|
|
242
|
+
-- Only index active users (90% of queries filter on active=true)
|
|
243
|
+
CREATE INDEX idx_users_active_email ON users(email) WHERE active = true;
|
|
244
|
+
|
|
245
|
+
-- Only index unprocessed orders
|
|
246
|
+
CREATE INDEX idx_orders_pending ON orders(created_at) WHERE status = 'pending';
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### 4.4 Covering Indexes (Index-Only Scans)
|
|
250
|
+
|
|
251
|
+
Include all columns needed by a query so the database never reads the table:
|
|
252
|
+
|
|
253
|
+
```sql
|
|
254
|
+
-- PostgreSQL: INCLUDE clause
|
|
255
|
+
CREATE INDEX idx_orders_covering ON orders(user_id, status) INCLUDE (total, created_at);
|
|
256
|
+
|
|
257
|
+
-- This query can be answered entirely from the index:
|
|
258
|
+
SELECT total, created_at FROM orders WHERE user_id = 123 AND status = 'completed';
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### 4.5 Indexing Checklist
|
|
262
|
+
|
|
263
|
+
| Rule | Details |
|
|
264
|
+
|------|---------|
|
|
265
|
+
| Index all foreign keys | Prevents full table scans on JOINs and CASCADE deletes |
|
|
266
|
+
| Index columns in WHERE clauses | If selectivity > 10–15% (i.e., the filter excludes most rows) |
|
|
267
|
+
| Index columns in ORDER BY | Avoids expensive filesort |
|
|
268
|
+
| Don't over-index | Each index slows down writes and uses storage |
|
|
269
|
+
| Monitor unused indexes | `pg_stat_user_indexes` → `idx_scan = 0` means unused |
|
|
270
|
+
| Rebuild bloated indexes | `REINDEX` or `pg_repack` for PostgreSQL |
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 5. Query Optimization
|
|
275
|
+
|
|
276
|
+
### 5.1 Using EXPLAIN
|
|
277
|
+
|
|
278
|
+
```sql
|
|
279
|
+
-- PostgreSQL
|
|
280
|
+
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
|
|
281
|
+
SELECT * FROM orders WHERE user_id = 42 AND status = 'active';
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Key things to look for in EXPLAIN output:**
|
|
285
|
+
|
|
286
|
+
| Indicator | Concern | Action |
|
|
287
|
+
|-----------|---------|--------|
|
|
288
|
+
| **Seq Scan** on large table | Missing index | Add appropriate index |
|
|
289
|
+
| **Nested Loop** with high row count | N+1 at database level | Consider Hash Join (check `work_mem`) |
|
|
290
|
+
| **Sort** with high cost | Missing index on ORDER BY columns | Add index or covering index |
|
|
291
|
+
| **Rows (estimated)** ≠ **Rows (actual)** | Stale statistics | Run `ANALYZE` on the table |
|
|
292
|
+
| **Buffers: shared read** very high | Cold cache or table too large | Check index usage, consider partitioning |
|
|
293
|
+
|
|
294
|
+
### 5.2 Slow Query Detection
|
|
295
|
+
|
|
296
|
+
| Database | Configuration |
|
|
297
|
+
|----------|---------------|
|
|
298
|
+
| **PostgreSQL** | `log_min_duration_statement = 200` (log queries > 200ms) |
|
|
299
|
+
| **MySQL** | `slow_query_log = 1`, `long_query_time = 0.2` |
|
|
300
|
+
| **MongoDB** | `db.setProfilingLevel(1, { slowms: 200 })` |
|
|
301
|
+
|
|
302
|
+
### 5.3 Pagination Patterns
|
|
303
|
+
|
|
304
|
+
| Pattern | Pros | Cons |
|
|
305
|
+
|---------|------|------|
|
|
306
|
+
| **OFFSET/LIMIT** | Simple, supports random page access | Slow on large offsets, inconsistent with concurrent writes |
|
|
307
|
+
| **Cursor-based (keyset)** | Fast at any depth, consistent | No random page access, requires unique sort key |
|
|
308
|
+
| **Seek method** | Variant of cursor, very fast | Same as cursor-based |
|
|
309
|
+
|
|
310
|
+
```sql
|
|
311
|
+
-- ❌ OFFSET pagination (slow at page 1000)
|
|
312
|
+
SELECT * FROM orders ORDER BY id LIMIT 20 OFFSET 19980;
|
|
313
|
+
|
|
314
|
+
-- ✅ Cursor pagination (fast at any depth)
|
|
315
|
+
SELECT * FROM orders WHERE id > :last_seen_id ORDER BY id LIMIT 20;
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### 5.4 Common Optimization Techniques
|
|
319
|
+
|
|
320
|
+
| Technique | Details |
|
|
321
|
+
|-----------|---------|
|
|
322
|
+
| **Batch inserts** | Insert 1000 rows at a time instead of one-by-one |
|
|
323
|
+
| **Connection pooling** | Use PgBouncer, ProxySQL, or built-in pool (Prisma, HikariCP) |
|
|
324
|
+
| **Read replicas** | Route read queries to replicas for horizontal scaling |
|
|
325
|
+
| **Materialized views** | Pre-compute expensive aggregations, refresh periodically |
|
|
326
|
+
| **Partitioning** | Split large tables by date range, hash, or list |
|
|
327
|
+
| **VACUUM / ANALYZE** | PostgreSQL: prevent bloat and keep stats current |
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## 6. Common Data Patterns
|
|
332
|
+
|
|
333
|
+
### 6.1 Soft Delete
|
|
334
|
+
|
|
335
|
+
```sql
|
|
336
|
+
ALTER TABLE users ADD COLUMN deleted_at TIMESTAMPTZ DEFAULT NULL;
|
|
337
|
+
|
|
338
|
+
-- "Delete" a record
|
|
339
|
+
UPDATE users SET deleted_at = NOW() WHERE id = 42;
|
|
340
|
+
|
|
341
|
+
-- Query only active records
|
|
342
|
+
SELECT * FROM users WHERE deleted_at IS NULL;
|
|
343
|
+
|
|
344
|
+
-- Partial index for performance
|
|
345
|
+
CREATE INDEX idx_users_active ON users(id) WHERE deleted_at IS NULL;
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**Considerations:**
|
|
349
|
+
- Add `deleted_at IS NULL` to all queries (use a default scope in ORM)
|
|
350
|
+
- Unique constraints must include `deleted_at` or use partial unique indexes
|
|
351
|
+
- Schedule hard-delete jobs for GDPR/data retention compliance
|
|
352
|
+
|
|
353
|
+
### 6.2 Audit Trails
|
|
354
|
+
|
|
355
|
+
```sql
|
|
356
|
+
CREATE TABLE audit_log (
|
|
357
|
+
id BIGSERIAL PRIMARY KEY,
|
|
358
|
+
table_name VARCHAR(100) NOT NULL,
|
|
359
|
+
record_id UUID NOT NULL,
|
|
360
|
+
action VARCHAR(10) NOT NULL, -- INSERT, UPDATE, DELETE
|
|
361
|
+
old_data JSONB,
|
|
362
|
+
new_data JSONB,
|
|
363
|
+
changed_by UUID REFERENCES users(id),
|
|
364
|
+
changed_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
365
|
+
);
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
**Implementation options:**
|
|
369
|
+
- **Application level**: Middleware / ORM hooks (simpler, less reliable)
|
|
370
|
+
- **Database triggers**: Captures all changes including raw SQL (more reliable)
|
|
371
|
+
- **CDC (Change Data Capture)**: Debezium, AWS DMS (best for streaming)
|
|
372
|
+
|
|
373
|
+
### 6.3 Multi-Tenancy
|
|
374
|
+
|
|
375
|
+
| Strategy | Isolation | Complexity | Best For |
|
|
376
|
+
|----------|-----------|------------|----------|
|
|
377
|
+
| **Shared database, shared schema** (tenant_id column) | Low | Low | SaaS with many small tenants |
|
|
378
|
+
| **Shared database, separate schemas** | Medium | Medium | Moderate isolation needs |
|
|
379
|
+
| **Separate databases** | High | High | Enterprise / regulated industries |
|
|
380
|
+
|
|
381
|
+
```sql
|
|
382
|
+
-- Shared schema approach: every table gets a tenant_id
|
|
383
|
+
CREATE TABLE orders (
|
|
384
|
+
id UUID PRIMARY KEY,
|
|
385
|
+
tenant_id UUID NOT NULL REFERENCES tenants(id),
|
|
386
|
+
-- ... columns ...
|
|
387
|
+
);
|
|
388
|
+
|
|
389
|
+
-- Row-Level Security (PostgreSQL)
|
|
390
|
+
ALTER TABLE orders ENABLE ROW LEVEL SECURITY;
|
|
391
|
+
CREATE POLICY tenant_isolation ON orders
|
|
392
|
+
USING (tenant_id = current_setting('app.current_tenant')::UUID);
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
### 6.4 Polymorphic Associations
|
|
396
|
+
|
|
397
|
+
| Approach | Pros | Cons |
|
|
398
|
+
|----------|------|------|
|
|
399
|
+
| **Single Table Inheritance (STI)** | Simple queries, one table | Sparse columns, wide rows |
|
|
400
|
+
| **Class Table Inheritance (CTI)** | Clean schema per type | JOINs needed for full record |
|
|
401
|
+
| **Polymorphic FK** (`commentable_type` + `commentable_id`) | Flexible | No real FK constraint, harder to query |
|
|
402
|
+
| **Join table per association** | Real FK constraints | More tables |
|
|
403
|
+
|
|
404
|
+
**Recommended approach** — use a join table or separate FK columns:
|
|
405
|
+
|
|
406
|
+
```sql
|
|
407
|
+
-- Instead of polymorphic (commentable_type, commentable_id):
|
|
408
|
+
CREATE TABLE comments (
|
|
409
|
+
id UUID PRIMARY KEY,
|
|
410
|
+
body TEXT NOT NULL,
|
|
411
|
+
post_id UUID REFERENCES posts(id), -- nullable
|
|
412
|
+
photo_id UUID REFERENCES photos(id), -- nullable
|
|
413
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
414
|
+
CONSTRAINT one_parent CHECK (
|
|
415
|
+
(post_id IS NOT NULL)::int + (photo_id IS NOT NULL)::int = 1
|
|
416
|
+
)
|
|
417
|
+
);
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
### 6.5 Temporal Data / Slowly Changing Dimensions
|
|
421
|
+
|
|
422
|
+
```sql
|
|
423
|
+
-- Type 2 SCD: keep full history
|
|
424
|
+
CREATE TABLE product_prices (
|
|
425
|
+
id BIGSERIAL PRIMARY KEY,
|
|
426
|
+
product_id UUID NOT NULL REFERENCES products(id),
|
|
427
|
+
price DECIMAL(10,2) NOT NULL,
|
|
428
|
+
valid_from TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
429
|
+
valid_to TIMESTAMPTZ, -- NULL = current
|
|
430
|
+
EXCLUDE USING gist (
|
|
431
|
+
product_id WITH =,
|
|
432
|
+
tstzrange(valid_from, valid_to) WITH &&
|
|
433
|
+
)
|
|
434
|
+
);
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## 7. Database Selection Guide
|
|
440
|
+
|
|
441
|
+
| Criteria | PostgreSQL | MySQL | MongoDB | SQLite |
|
|
442
|
+
|----------|-----------|-------|---------|--------|
|
|
443
|
+
| **Type** | Relational | Relational | Document | Embedded relational |
|
|
444
|
+
| **ACID compliance** | Full | Full (InnoDB) | Per-document | Full |
|
|
445
|
+
| **JSON support** | Excellent (JSONB) | Good (JSON) | Native | Basic (JSON1 ext) |
|
|
446
|
+
| **Full-text search** | Built-in (tsvector) | Built-in (InnoDB) | Built-in (Atlas Search) | FTS5 extension |
|
|
447
|
+
| **Horizontal scaling** | Citus, read replicas | Group replication, Vitess | Native sharding | N/A |
|
|
448
|
+
| **Best for** | Complex queries, data integrity, extensibility | Web apps, read-heavy workloads | Flexible schemas, rapid prototyping, document data | Embedded apps, testing, edge/mobile |
|
|
449
|
+
| **Avoid when** | Extreme write throughput needed | Complex queries, advanced types | Strong consistency across documents required | Concurrent writes, multi-user server apps |
|
|
450
|
+
| **Max practical size** | Petabytes (with Citus) | Terabytes | Petabytes | ~1 TB (practical: < 100 GB) |
|
|
451
|
+
| **License** | PostgreSQL License (permissive) | GPL v2 (or commercial) | SSPL | Public domain |
|
|
452
|
+
|
|
453
|
+
### Decision Flowchart
|
|
454
|
+
|
|
455
|
+
```
|
|
456
|
+
Need embedded/serverless DB? → SQLite
|
|
457
|
+
Need flexible document schema? → MongoDB
|
|
458
|
+
Need advanced SQL, types, extensions? → PostgreSQL
|
|
459
|
+
Need simple relational with broad hosting? → MySQL
|
|
460
|
+
High write throughput, time-series? → Consider TimescaleDB (PostgreSQL ext) or ClickHouse
|
|
461
|
+
Need graph relationships? → Consider Neo4j or PostgreSQL + Apache AGE
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## 8. Quick Reference Commands
|
|
467
|
+
|
|
468
|
+
### PostgreSQL
|
|
469
|
+
|
|
470
|
+
```sql
|
|
471
|
+
-- Table sizes
|
|
472
|
+
SELECT relname, pg_size_pretty(pg_total_relation_size(oid)) FROM pg_class WHERE relkind = 'r' ORDER BY pg_total_relation_size(oid) DESC LIMIT 10;
|
|
473
|
+
|
|
474
|
+
-- Unused indexes
|
|
475
|
+
SELECT indexrelname, idx_scan FROM pg_stat_user_indexes WHERE idx_scan = 0 ORDER BY pg_relation_size(indexrelid) DESC;
|
|
476
|
+
|
|
477
|
+
-- Running queries
|
|
478
|
+
SELECT pid, now() - pg_stat_activity.query_start AS duration, query FROM pg_stat_activity WHERE state = 'active' ORDER BY duration DESC;
|
|
479
|
+
|
|
480
|
+
-- Kill a query
|
|
481
|
+
SELECT pg_cancel_backend(pid);
|
|
482
|
+
|
|
483
|
+
-- Table bloat estimate
|
|
484
|
+
SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename)) FROM pg_tables WHERE schemaname = 'public' ORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC;
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### MySQL
|
|
488
|
+
|
|
489
|
+
```sql
|
|
490
|
+
-- Table sizes
|
|
491
|
+
SELECT table_name, ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY size_mb DESC;
|
|
492
|
+
|
|
493
|
+
-- Running queries
|
|
494
|
+
SHOW PROCESSLIST;
|
|
495
|
+
|
|
496
|
+
-- Kill a query
|
|
497
|
+
KILL <process_id>;
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
## 9. Anti-Pattern Checklist
|
|
503
|
+
|
|
504
|
+
| ❌ Anti-Pattern | ✅ Better Approach |
|
|
505
|
+
|----------------|-------------------|
|
|
506
|
+
| Storing money as `FLOAT` | Use `DECIMAL(19,4)` or integer cents |
|
|
507
|
+
| Using `SELECT *` in application code | Explicitly list needed columns |
|
|
508
|
+
| No index on foreign keys | Always index FK columns |
|
|
509
|
+
| Storing files in BLOB columns | Store file path/URL; files go to object storage |
|
|
510
|
+
| Using `ENUM` types excessively | Use a reference/lookup table instead |
|
|
511
|
+
| No `created_at` / `updated_at` | Include on every table |
|
|
512
|
+
| Trusting ORM-generated queries blindly | Review queries in development, log slow queries |
|
|
513
|
+
| Running migrations without backup | Always snapshot before destructive changes |
|
|
514
|
+
| Ignoring connection pool limits | Configure pool size based on max_connections |
|
|
515
|
+
| Using `OFFSET` for deep pagination | Use cursor/keyset pagination |
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: database-blueprints
|
|
3
|
+
description: |
|
|
4
|
+
Skill de desenho de tabelas e segurança de migrações. Cobre Supabase/Postgres,
|
|
5
|
+
MySQL, Prisma, RLS, foreign keys, ordem de migração, validação de persistência
|
|
6
|
+
e schemas comuns para SMB no Brasil.
|
|
7
|
+
metadata:
|
|
8
|
+
version: '1.0.0'
|
|
9
|
+
origin: verdent
|
|
10
|
+
prismx_bundle: verdent
|
|
11
|
+
prismx_imported_at: 2026-05-27
|
|
12
|
+
---
|
|
13
|
+
# Blueprints de Banco de Dados
|
|
14
|
+
|
|
15
|
+
Skill de desenho de tabelas e segurança de migrações para transformar requisitos em schema executável.
|
|
16
|
+
|
|
17
|
+
## Uso
|
|
18
|
+
|
|
19
|
+
Quando o Verdent desenvolver sistemas de negócio, corrigir problemas de dados ou integrar Supabase/Postgres/MySQL/Prisma, injete este contexto de engenharia de banco de dados.
|
|
20
|
+
|
|
21
|
+
- **Extração de entidades** — clientes, pedidos, pagamentos, arquivos, mensagens, permissões e auditoria
|
|
22
|
+
- **Schema reutilizável** — estruturas para SMB/SaaS, WhatsApp, PIX, ordem de serviço, ingressos e resgate animal
|
|
23
|
+
- **Segurança de migração** — ordem de execução, dependências, preservação de dados, rollback e seed
|
|
24
|
+
- **Validação de persistência** — alinhamento entre formulário, API, DTO, banco e UI
|
|
25
|
+
- **Permissões e conformidade** — Supabase RLS, papéis, consentimento LGPD e logs de auditoria
|
|
26
|
+
|
|
27
|
+
## Gatilhos
|
|
28
|
+
|
|
29
|
+
`database` · `banco` · `tabela` · `schema` · `migration` · `supabase` · `mysql` · `postgres` · `prisma` · `drizzle` · `dados não salvam` · `RLS` · `foreign key`
|
|
30
|
+
|
|
31
|
+
## Como usar
|
|
32
|
+
|
|
33
|
+
1. Extraia entidades antes de escrever SQL.
|
|
34
|
+
2. Identifique o alvo: Supabase/Postgres, MySQL, Prisma ou SQLite.
|
|
35
|
+
3. Gere lista de tabelas e ordem de migração.
|
|
36
|
+
4. Preserve dados existentes; evite drop/rename direto em produção.
|
|
37
|
+
5. Valide persistência de cada campo.
|
|
38
|
+
6. Classifique erros: schema mismatch, foreign key, RLS, conexão, ordem de migration ou mapeamento.
|
|
39
|
+
|
|
40
|
+
## Arquivos de conhecimento
|
|
41
|
+
|
|
42
|
+
| Arquivo | Conteúdo |
|
|
43
|
+
|---------|----------|
|
|
44
|
+
| `knowledge/core-schema.md` | Tabelas centrais e extensões por negócio |
|
|
45
|
+
| `knowledge/supabase-postgres.md` | Supabase/Postgres, RLS, Storage e Edge Functions |
|
|
46
|
+
| `knowledge/mysql.md` | MySQL, foreign keys, charset e erros comuns |
|
|
47
|
+
| `knowledge/prisma.md` | Prisma schema, relations, migrations e seed |
|
|
48
|
+
| `knowledge/migration-safety.md` | Ordem, preservação de dados, rollback e checklist |
|
|
49
|
+
|
|
50
|
+
## Saída esperada
|
|
51
|
+
|
|
52
|
+
Inclua tabelas, responsabilidades, campos, chaves, índices, ordem de migração, permissões, seed, validação de persistência e plano de rollback.
|
|
53
|
+
|
|
54
|
+
## Proibições
|
|
55
|
+
|
|
56
|
+
- Não sugerir apagar dados de produção sem backup.
|
|
57
|
+
- Não gerar migrations sem ordem de execução.
|
|
58
|
+
- Não corrigir só o front-end sem verificar colunas e DTOs.
|
|
59
|
+
- Não guardar identidade, pagamento ou permissões apenas em localStorage.
|
|
60
|
+
- Não esquecer RLS ou limites da service role no Supabase.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
category: Backend
|
|
2
|
+
interface:
|
|
3
|
+
display_name: Database Blueprints
|
|
4
|
+
short_description: Design and document database schemas, tables, and relationships.
|
|
5
|
+
icon_dark: './assets/icon-dark.png'
|
|
6
|
+
icon_light: './assets/icon-light.png'
|
|
7
|
+
default_prompt: Help me design a database schema.
|
|
8
|
+
label:
|
|
9
|
+
- database
|
|
10
|
+
- schema
|
|
11
|
+
- sql
|
|
12
|
+
- postgres
|
|
13
|
+
- mysql
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Blueprint de Schema Central
|
|
2
|
+
|
|
3
|
+
## Princípios
|
|
4
|
+
|
|
5
|
+
Transforme requisitos em entidades estáveis antes de criar tabelas. Não empilhe campos apenas porque aparecem em uma tela.
|
|
6
|
+
|
|
7
|
+
Confirme sempre:
|
|
8
|
+
|
|
9
|
+
1. Quem usa o sistema: `users`, `roles`, `organizations`.
|
|
10
|
+
2. O que é gerenciado: `customers`, `orders`, `service_orders`, `tickets`, `animals`, `inventory_items`.
|
|
11
|
+
3. Como o dinheiro circula: `payments`, `pix_payments`, `subscriptions`.
|
|
12
|
+
4. Como arquivos são salvos: `files`, `attachments`, `photos`.
|
|
13
|
+
5. Como mensagens são sincronizadas: `messages`, `whatsapp_messages`, `webhook_events`.
|
|
14
|
+
6. Quem alterou o quê: `audit_logs`.
|
|
15
|
+
7. Como configurar: `settings`.
|
|
16
|
+
|
|
17
|
+
## Tabelas centrais SMB/SaaS
|
|
18
|
+
|
|
19
|
+
| Tabela | Responsabilidade | Campos principais |
|
|
20
|
+
|--------|------------------|-------------------|
|
|
21
|
+
| `organizations` | Empresa, comerciante ou tenant | `id`, `name`, `tax_id`, `status`, `created_at` |
|
|
22
|
+
| `users` | Usuários de login | `id`, `email`, `name`, `phone`, `status`, `created_at` |
|
|
23
|
+
| `roles` | Papéis | `id`, `name`, `description` |
|
|
24
|
+
| `user_roles` | Relação usuário-papel | `user_id`, `role_id`, `organization_id` |
|
|
25
|
+
| `customers` | Clientes/contatos | `id`, `organization_id`, `name`, `phone`, `email`, `document` |
|
|
26
|
+
| `orders` | Pedidos ou documentos de negócio | `id`, `organization_id`, `customer_id`, `status`, `total_amount` |
|
|
27
|
+
| `order_items` | Itens do pedido | `id`, `order_id`, `name`, `quantity`, `unit_price` |
|
|
28
|
+
| `payments` | Pagamentos | `id`, `order_id`, `provider`, `status`, `amount`, `paid_at` |
|
|
29
|
+
| `subscriptions` | Planos e assinaturas | `id`, `organization_id`, `plan`, `status`, `trial_ends_at` |
|
|
30
|
+
| `files` | Metadados de arquivos | `id`, `organization_id`, `owner_type`, `owner_id`, `storage_path` |
|
|
31
|
+
| `messages` | Mensagens genéricas | `id`, `organization_id`, `channel`, `direction`, `body`, `status` |
|
|
32
|
+
| `webhook_events` | Eventos brutos de provedores | `id`, `provider`, `event_id`, `payload`, `processed_at` |
|
|
33
|
+
| `audit_logs` | Auditoria | `id`, `actor_user_id`, `action`, `entity_type`, `entity_id`, `changes` |
|
|
34
|
+
| `settings` | Configurações do tenant | `id`, `organization_id`, `key`, `value` |
|
|
35
|
+
|
|
36
|
+
## Extensões brasileiras
|
|
37
|
+
|
|
38
|
+
- `pix_payments`: QR, copia-e-cola, expiração e vínculo com `payments`.
|
|
39
|
+
- `whatsapp_contacts`: telefone E.164, nome e opt-in.
|
|
40
|
+
- `whatsapp_messages`: WAMID, template, status e contato.
|
|
41
|
+
- `lgpd_consents`: finalidade, concessão e revogação.
|
|
42
|
+
|
|
43
|
+
## Verticais
|
|
44
|
+
|
|
45
|
+
### Ordem de serviço
|
|
46
|
+
|
|
47
|
+
Use `service_orders`, `service_order_photos`, `inventory_items`, `service_order_parts`.
|
|
48
|
+
|
|
49
|
+
### Resgate animal
|
|
50
|
+
|
|
51
|
+
Use `animals`, `triages`, `approvals`, `animal_photos`.
|
|
52
|
+
|
|
53
|
+
### Ingressos
|
|
54
|
+
|
|
55
|
+
Use `events`, `tickets`, `ticket_checkins`, `ticket_batches`.
|
|
56
|
+
|
|
57
|
+
## Convenções
|
|
58
|
+
|
|
59
|
+
- UUID como chave primária por padrão.
|
|
60
|
+
- `created_at` e `updated_at` em tabelas de negócio.
|
|
61
|
+
- `deleted_at` para soft delete.
|
|
62
|
+
- Dinheiro em centavos inteiros ou `numeric(12,2)`, nunca float.
|
|
63
|
+
- Telefone em E.164, por exemplo `+5511999999999`.
|
|
64
|
+
- Webhook deve guardar payload bruto para auditoria e replay.
|
|
65
|
+
|
|
66
|
+
## Validação de persistência
|
|
67
|
+
|
|
68
|
+
Para cada campo novo, valide: formulário, API, coluna no banco, gravação, refresh, listagem, detalhe e permissões.
|