cfsa-antigravity 1.0.0
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/bin/cli.mjs +324 -0
- package/package.json +34 -0
- package/template/.agent/instructions/commands.md +48 -0
- package/template/.agent/instructions/patterns.md +61 -0
- package/template/.agent/instructions/structure.md +29 -0
- package/template/.agent/instructions/tech-stack.md +43 -0
- package/template/.agent/instructions/workflow.md +41 -0
- package/template/.agent/kit-sync.md +15 -0
- package/template/.agent/rules/boundary-not-placeholder.md +146 -0
- package/template/.agent/rules/completion-checklist.md +48 -0
- package/template/.agent/rules/decision-classification.md +103 -0
- package/template/.agent/rules/extensibility.md +47 -0
- package/template/.agent/rules/question-vs-command.md +81 -0
- package/template/.agent/rules/security-first.md +43 -0
- package/template/.agent/rules/specificity-standards.md +54 -0
- package/template/.agent/rules/tdd-contract-first.md +57 -0
- package/template/.agent/rules/vertical-slices.md +42 -0
- package/template/.agent/skill-library/MANIFEST.md +480 -0
- package/template/.agent/skill-library/README.md +38 -0
- package/template/.agent/skill-library/meta/brand-guidelines/SKILL.md +73 -0
- package/template/.agent/skill-library/meta/claude-code/README.md +9 -0
- package/template/.agent/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
- package/template/.agent/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
- package/template/.agent/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
- package/template/.agent/skill-library/meta/git-advanced/SKILL.md +972 -0
- package/template/.agent/skill-library/meta/mcp-builder/SKILL.md +236 -0
- package/template/.agent/skill-library/meta/product-marketing-context/SKILL.md +241 -0
- package/template/.agent/skill-library/meta/regex-patterns/SKILL.md +751 -0
- package/template/.agent/skill-library/meta/tmux-processes/SKILL.md +210 -0
- package/template/.agent/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
- package/template/.agent/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
- package/template/.agent/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
- package/template/.agent/skill-library/stack/ai/langchain/SKILL.md +530 -0
- package/template/.agent/skill-library/stack/ai/ollama/SKILL.md +321 -0
- package/template/.agent/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
- package/template/.agent/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
- package/template/.agent/skill-library/stack/api/graphql/SKILL.md +1061 -0
- package/template/.agent/skill-library/stack/api/trpc/SKILL.md +576 -0
- package/template/.agent/skill-library/stack/auth/authjs/SKILL.md +569 -0
- package/template/.agent/skill-library/stack/auth/clerk/SKILL.md +590 -0
- package/template/.agent/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
- package/template/.agent/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
- package/template/.agent/skill-library/stack/cms/shopify/SKILL.md +1193 -0
- package/template/.agent/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
- package/template/.agent/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
- package/template/.agent/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
- package/template/.agent/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
- package/template/.agent/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
- package/template/.agent/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
- package/template/.agent/skill-library/stack/databases/influxdb/SKILL.md +280 -0
- package/template/.agent/skill-library/stack/databases/lancedb/SKILL.md +415 -0
- package/template/.agent/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
- package/template/.agent/skill-library/stack/databases/neo4j/SKILL.md +839 -0
- package/template/.agent/skill-library/stack/databases/pgvector/SKILL.md +241 -0
- package/template/.agent/skill-library/stack/databases/pinecone/SKILL.md +212 -0
- package/template/.agent/skill-library/stack/databases/postgresql/SKILL.md +658 -0
- package/template/.agent/skill-library/stack/databases/qdrant/SKILL.md +312 -0
- package/template/.agent/skill-library/stack/databases/redis/SKILL.md +1079 -0
- package/template/.agent/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
- package/template/.agent/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
- package/template/.agent/skill-library/stack/databases/supabase/SKILL.md +640 -0
- package/template/.agent/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
- package/template/.agent/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
- package/template/.agent/skill-library/stack/databases/weaviate/SKILL.md +218 -0
- package/template/.agent/skill-library/stack/devops/github-actions/SKILL.md +554 -0
- package/template/.agent/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
- package/template/.agent/skill-library/stack/devops/nginx/SKILL.md +841 -0
- package/template/.agent/skill-library/stack/devops/terraform/SKILL.md +860 -0
- package/template/.agent/skill-library/stack/email/resend/SKILL.md +391 -0
- package/template/.agent/skill-library/stack/engines/godot/SKILL.md +488 -0
- package/template/.agent/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
- package/template/.agent/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
- package/template/.agent/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
- package/template/.agent/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
- package/template/.agent/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
- package/template/.agent/skill-library/stack/frameworks/hono/SKILL.md +90 -0
- package/template/.agent/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
- package/template/.agent/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
- package/template/.agent/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
- package/template/.agent/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
- package/template/.agent/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
- package/template/.agent/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
- package/template/.agent/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
- package/template/.agent/skill-library/stack/hosting/aws/SKILL.md +467 -0
- package/template/.agent/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
- package/template/.agent/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
- package/template/.agent/skill-library/stack/hosting/vercel/SKILL.md +484 -0
- package/template/.agent/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
- package/template/.agent/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
- package/template/.agent/skill-library/stack/languages/gdscript/SKILL.md +789 -0
- package/template/.agent/skill-library/stack/languages/go/SKILL.md +664 -0
- package/template/.agent/skill-library/stack/languages/java/SKILL.md +778 -0
- package/template/.agent/skill-library/stack/languages/kotlin/SKILL.md +665 -0
- package/template/.agent/skill-library/stack/languages/python/SKILL.md +678 -0
- package/template/.agent/skill-library/stack/languages/rust/SKILL.md +673 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
- package/template/.agent/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
- package/template/.agent/skill-library/stack/messaging/kafka/SKILL.md +235 -0
- package/template/.agent/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
- package/template/.agent/skill-library/stack/mobile/flutter/SKILL.md +316 -0
- package/template/.agent/skill-library/stack/mobile/react-native/SKILL.md +337 -0
- package/template/.agent/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
- package/template/.agent/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
- package/template/.agent/skill-library/stack/observability/datadog/SKILL.md +179 -0
- package/template/.agent/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
- package/template/.agent/skill-library/stack/observability/logging-best-practices/SKILL.md +168 -0
- package/template/.agent/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
- package/template/.agent/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
- package/template/.agent/skill-library/stack/observability/python-observability/SKILL.md +158 -0
- package/template/.agent/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
- package/template/.agent/skill-library/stack/orm/prisma/SKILL.md +744 -0
- package/template/.agent/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
- package/template/.agent/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
- package/template/.agent/skill-library/stack/queue/bullmq/SKILL.md +385 -0
- package/template/.agent/skill-library/stack/queue/inngest/SKILL.md +438 -0
- package/template/.agent/skill-library/stack/realtime/socketio/SKILL.md +595 -0
- package/template/.agent/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
- package/template/.agent/skill-library/stack/search/meilisearch/SKILL.md +385 -0
- package/template/.agent/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
- package/template/.agent/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
- package/template/.agent/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
- package/template/.agent/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
- package/template/.agent/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
- package/template/.agent/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
- package/template/.agent/skill-library/stack/state/zustand/SKILL.md +483 -0
- package/template/.agent/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
- package/template/.agent/skill-library/stack/testing/playwright/SKILL.md +641 -0
- package/template/.agent/skill-library/stack/testing/storybook/SKILL.md +923 -0
- package/template/.agent/skill-library/stack/testing/testing-library/SKILL.md +872 -0
- package/template/.agent/skill-library/stack/testing/vitest/SKILL.md +714 -0
- package/template/.agent/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
- package/template/.agent/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
- package/template/.agent/skill-library/stack/ui/react-flow/SKILL.md +425 -0
- package/template/.agent/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
- package/template/.agent/skill-library/surface/api/api-caching/SKILL.md +458 -0
- package/template/.agent/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
- package/template/.agent/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
- package/template/.agent/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
- package/template/.agent/skill-library/surface/api/api-versioning/SKILL.md +420 -0
- package/template/.agent/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
- package/template/.agent/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
- package/template/.agent/skill-library/surface/api/rest-api-design/SKILL.md +478 -0
- package/template/.agent/skill-library/surface/api/webhook-design/SKILL.md +752 -0
- package/template/.agent/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
- package/template/.agent/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
- package/template/.agent/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
- package/template/.agent/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
- package/template/.agent/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
- package/template/.agent/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
- package/template/.agent/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
- package/template/.agent/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
- package/template/.agent/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
- package/template/.agent/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
- package/template/.agent/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
- package/template/.agent/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
- package/template/.agent/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
- package/template/.agent/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
- package/template/.agent/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
- package/template/.agent/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
- package/template/.agent/skill-library/surface/web/ai-seo/SKILL.md +398 -0
- package/template/.agent/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
- package/template/.agent/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
- package/template/.agent/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
- package/template/.agent/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
- package/template/.agent/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
- package/template/.agent/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
- package/template/.agent/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
- package/template/.agent/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
- package/template/.agent/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
- package/template/.agent/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
- package/template/.agent/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
- package/template/.agent/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
- package/template/.agent/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
- package/template/.agent/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
- package/template/.agent/skill-library/surface/web/i18n-localization/SKILL.md +154 -0
- package/template/.agent/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
- package/template/.agent/skill-library/surface/web/page-cro/SKILL.md +182 -0
- package/template/.agent/skill-library/surface/web/page-cro/references/experiments.md +248 -0
- package/template/.agent/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
- package/template/.agent/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
- package/template/.agent/skill-library/surface/web/schema-markup/SKILL.md +179 -0
- package/template/.agent/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
- package/template/.agent/skill-library/surface/web/seo-audit/SKILL.md +394 -0
- package/template/.agent/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
- package/template/.agent/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
- package/template/.agent/skill-library/surface/web/web-scraping/SKILL.md +58 -0
- package/template/.agent/skills/accessibility/SKILL.md +522 -0
- package/template/.agent/skills/accessibility/references/WCAG.md +162 -0
- package/template/.agent/skills/adversarial-review/SKILL.md +90 -0
- package/template/.agent/skills/antigravity-workflows/SKILL.md +81 -0
- package/template/.agent/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
- package/template/.agent/skills/api-design-principles/SKILL.md +37 -0
- package/template/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/template/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/template/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/template/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/template/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/template/.agent/skills/api-versioning/SKILL.md +420 -0
- package/template/.agent/skills/architecture-mapping/SKILL.md +219 -0
- package/template/.agent/skills/bootstrap-agents/SKILL.md +259 -0
- package/template/.agent/skills/brainstorming/SKILL.md +236 -0
- package/template/.agent/skills/brand-guidelines/SKILL.md +44 -0
- package/template/.agent/skills/clean-code/SKILL.md +94 -0
- package/template/.agent/skills/code-review-pro/SKILL.md +152 -0
- package/template/.agent/skills/concise-planning/SKILL.md +68 -0
- package/template/.agent/skills/cross-layer-consistency/SKILL.md +117 -0
- package/template/.agent/skills/database-schema-design/SKILL.md +429 -0
- package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.agent/skills/design-anti-cliche/SKILL.md +159 -0
- package/template/.agent/skills/design-direction/SKILL.md +45 -0
- package/template/.agent/skills/error-handling-patterns/SKILL.md +721 -0
- package/template/.agent/skills/find-skills/SKILL.md +145 -0
- package/template/.agent/skills/git-advanced/SKILL.md +972 -0
- package/template/.agent/skills/git-workflow/SKILL.md +420 -0
- package/template/.agent/skills/idea-extraction/SKILL.md +271 -0
- package/template/.agent/skills/logging-best-practices/SKILL.md +851 -0
- package/template/.agent/skills/migration-management/SKILL.md +384 -0
- package/template/.agent/skills/minimalist-surgical-development/SKILL.md +69 -0
- package/template/.agent/skills/parallel-agents/SKILL.md +165 -0
- package/template/.agent/skills/parallel-debugging/SKILL.md +135 -0
- package/template/.agent/skills/parallel-feature-development/SKILL.md +166 -0
- package/template/.agent/skills/performance-budgeting/SKILL.md +144 -0
- package/template/.agent/skills/pipeline-rubrics/SKILL.md +51 -0
- package/template/.agent/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
- package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +21 -0
- package/template/.agent/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
- package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
- package/template/.agent/skills/pipeline-rubrics/references/scoring.md +28 -0
- package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +11 -0
- package/template/.agent/skills/prd-templates/SKILL.md +88 -0
- package/template/.agent/skills/prd-templates/references/architecture-design-template.md +88 -0
- package/template/.agent/skills/prd-templates/references/be-spec-template.md +101 -0
- package/template/.agent/skills/prd-templates/references/data-placement-template.md +74 -0
- package/template/.agent/skills/prd-templates/references/decomposition-templates.md +211 -0
- package/template/.agent/skills/prd-templates/references/design-system-decisions.md +198 -0
- package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +124 -0
- package/template/.agent/skills/prd-templates/references/fe-classification-procedures.md +47 -0
- package/template/.agent/skills/prd-templates/references/fe-spec-template.md +84 -0
- package/template/.agent/skills/prd-templates/references/infrastructure-report-template.md +71 -0
- package/template/.agent/skills/prd-templates/references/operational-templates.md +116 -0
- package/template/.agent/skills/prd-templates/references/placeholder-guard-template.md +21 -0
- package/template/.agent/skills/prd-templates/references/surface-model.md +61 -0
- package/template/.agent/skills/prd-templates/references/vision-template.md +66 -0
- package/template/.agent/skills/prompt-engineer/README.md +659 -0
- package/template/.agent/skills/prompt-engineer/SKILL.md +249 -0
- package/template/.agent/skills/regex-patterns/SKILL.md +751 -0
- package/template/.agent/skills/resolve-ambiguity/SKILL.md +278 -0
- package/template/.agent/skills/rest-api-design/SKILL.md +478 -0
- package/template/.agent/skills/security-scanning-security-hardening/SKILL.md +231 -0
- package/template/.agent/skills/session-continuity/SKILL.md +730 -0
- package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +38 -0
- package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +85 -0
- package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +70 -0
- package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
- package/template/.agent/skills/session-continuity/protocols/05-session-close.md +37 -0
- package/template/.agent/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
- package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
- package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +43 -0
- package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
- package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +104 -0
- package/template/.agent/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
- package/template/.agent/skills/skill-creator/LICENSE.txt +202 -0
- package/template/.agent/skills/skill-creator/README.md +270 -0
- package/template/.agent/skills/skill-creator/SKILL.md +590 -0
- package/template/.agent/skills/skill-creator/references/output-patterns.md +82 -0
- package/template/.agent/skills/skill-creator/references/workflows.md +28 -0
- package/template/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
- package/template/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
- package/template/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/template/.agent/skills/spec-writing/SKILL.md +110 -0
- package/template/.agent/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/template/.agent/skills/systematic-debugging/SKILL.md +297 -0
- package/template/.agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/template/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/template/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/template/.agent/skills/systematic-debugging/find-polluter.sh +63 -0
- package/template/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/template/.agent/skills/systematic-debugging/test-academic.md +14 -0
- package/template/.agent/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/template/.agent/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/template/.agent/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/template/.agent/skills/tdd-workflow/SKILL.md +409 -0
- package/template/.agent/skills/tech-stack-catalog/SKILL.md +49 -0
- package/template/.agent/skills/tech-stack-catalog/references/constraint-questions.md +21 -0
- package/template/.agent/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
- package/template/.agent/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
- package/template/.agent/skills/technical-writer/SKILL.md +242 -0
- package/template/.agent/skills/testing-strategist/SKILL.md +932 -0
- package/template/.agent/skills/verification-before-completion/SKILL.md +145 -0
- package/template/.agent/skills/workflow-automation/SKILL.md +73 -0
- package/template/.agent/workflows/audit-ambiguity-execute.md +165 -0
- package/template/.agent/workflows/audit-ambiguity-rubrics.md +83 -0
- package/template/.agent/workflows/audit-ambiguity.md +64 -0
- package/template/.agent/workflows/bootstrap-agents-fill.md +201 -0
- package/template/.agent/workflows/bootstrap-agents-provision.md +197 -0
- package/template/.agent/workflows/bootstrap-agents.md +66 -0
- package/template/.agent/workflows/create-prd-architecture.md +119 -0
- package/template/.agent/workflows/create-prd-compile.md +138 -0
- package/template/.agent/workflows/create-prd-design-system.md +135 -0
- package/template/.agent/workflows/create-prd-security.md +113 -0
- package/template/.agent/workflows/create-prd-stack.md +91 -0
- package/template/.agent/workflows/create-prd.md +168 -0
- package/template/.agent/workflows/decompose-architecture-structure.md +82 -0
- package/template/.agent/workflows/decompose-architecture-validate.md +119 -0
- package/template/.agent/workflows/decompose-architecture.md +111 -0
- package/template/.agent/workflows/evolve-contract.md +98 -0
- package/template/.agent/workflows/evolve-feature-cascade.md +140 -0
- package/template/.agent/workflows/evolve-feature-classify.md +116 -0
- package/template/.agent/workflows/evolve-feature.md +56 -0
- package/template/.agent/workflows/ideate-discover.md +144 -0
- package/template/.agent/workflows/ideate-extract.md +129 -0
- package/template/.agent/workflows/ideate-validate.md +117 -0
- package/template/.agent/workflows/ideate.md +113 -0
- package/template/.agent/workflows/implement-slice-setup.md +113 -0
- package/template/.agent/workflows/implement-slice-tdd.md +198 -0
- package/template/.agent/workflows/implement-slice.md +50 -0
- package/template/.agent/workflows/plan-phase.md +202 -0
- package/template/.agent/workflows/propagate-decision-apply.md +135 -0
- package/template/.agent/workflows/propagate-decision-scan.md +147 -0
- package/template/.agent/workflows/propagate-decision.md +56 -0
- package/template/.agent/workflows/remediate-pipeline-assess.md +138 -0
- package/template/.agent/workflows/remediate-pipeline-execute.md +135 -0
- package/template/.agent/workflows/remediate-pipeline.md +55 -0
- package/template/.agent/workflows/resolve-ambiguity.md +82 -0
- package/template/.agent/workflows/sync-kit.md +209 -0
- package/template/.agent/workflows/update-architecture-map.md +74 -0
- package/template/.agent/workflows/validate-phase.md +219 -0
- package/template/.agent/workflows/verify-infrastructure.md +207 -0
- package/template/.agent/workflows/write-architecture-spec-deepen.md +139 -0
- package/template/.agent/workflows/write-architecture-spec-design.md +202 -0
- package/template/.agent/workflows/write-architecture-spec.md +63 -0
- package/template/.agent/workflows/write-be-spec-classify.md +165 -0
- package/template/.agent/workflows/write-be-spec-write.md +98 -0
- package/template/.agent/workflows/write-be-spec.md +76 -0
- package/template/.agent/workflows/write-fe-spec-classify.md +170 -0
- package/template/.agent/workflows/write-fe-spec-write.md +94 -0
- package/template/.agent/workflows/write-fe-spec.md +71 -0
- package/template/AGENTS.md +176 -0
- package/template/GEMINI.md +177 -0
- package/template/docs/README.md +187 -0
- package/template/docs/audits/.gitkeep +0 -0
- package/template/docs/audits/README.md +10 -0
- package/template/docs/plans/.gitkeep +0 -0
- package/template/docs/plans/README.md +21 -0
- package/template/docs/plans/be/.gitkeep +0 -0
- package/template/docs/plans/be/README.md +11 -0
- package/template/docs/plans/fe/.gitkeep +0 -0
- package/template/docs/plans/fe/README.md +11 -0
- package/template/docs/plans/ia/.gitkeep +0 -0
- package/template/docs/plans/ia/README.md +17 -0
- package/template/docs/plans/ia/deep-dives/.gitkeep +0 -0
- package/template/docs/plans/ia/deep-dives/README.md +5 -0
- package/template/docs/plans/phases/.gitkeep +0 -0
- package/template/docs/plans/phases/README.md +11 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pgvector
|
|
3
|
+
description: "Expert pgvector guide covering vector column types, HNSW and IVFFlat indexing, distance operators, hybrid queries combining SQL and vector similarity, embedding storage patterns, index tuning, and integration with PostgreSQL features (CTEs, JOINs, RLS). Use when adding vector search to an existing PostgreSQL database without a separate vector store."
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# pgvector Expert Guide
|
|
8
|
+
|
|
9
|
+
> Use this skill when adding vector similarity search to an existing PostgreSQL database using the pgvector extension. This avoids a separate vector store by co-locating embeddings with relational data. Targets pgvector 0.7+.
|
|
10
|
+
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
- Adding semantic search to an existing PostgreSQL-backed application
|
|
14
|
+
- Co-locating vector embeddings with relational data to avoid a separate vector store
|
|
15
|
+
- Hybrid queries combining SQL filters (WHERE, JOIN, RLS) with vector similarity
|
|
16
|
+
- RAG pipelines where the primary data is already in PostgreSQL
|
|
17
|
+
- Teams that want to minimize infrastructure by reusing their existing database
|
|
18
|
+
|
|
19
|
+
## When NOT to Use This Skill
|
|
20
|
+
|
|
21
|
+
- Dedicated vector workloads at massive scale (100M+ vectors) → use Qdrant or Pinecone
|
|
22
|
+
- No existing PostgreSQL database → evaluate dedicated vector stores first
|
|
23
|
+
- Real-time streaming similarity → Qdrant or Weaviate may offer lower latency
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 1. Setup
|
|
28
|
+
|
|
29
|
+
### Enable Extension
|
|
30
|
+
|
|
31
|
+
```sql
|
|
32
|
+
-- Requires superuser or rds_superuser on managed services
|
|
33
|
+
CREATE EXTENSION IF NOT EXISTS vector;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Vector Column
|
|
37
|
+
|
|
38
|
+
```sql
|
|
39
|
+
CREATE TABLE documents (
|
|
40
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
41
|
+
title TEXT NOT NULL,
|
|
42
|
+
content TEXT NOT NULL,
|
|
43
|
+
embedding VECTOR(1536), -- dimension must match embedding model
|
|
44
|
+
category TEXT,
|
|
45
|
+
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
46
|
+
);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 2. Distance Operators
|
|
52
|
+
|
|
53
|
+
| Operator | Distance | Use Case |
|
|
54
|
+
|----------|----------|----------|
|
|
55
|
+
| `<->` | L2 (Euclidean) | Feature vectors |
|
|
56
|
+
| `<=>` | Cosine | Text embeddings (most common) |
|
|
57
|
+
| `<#>` | Inner product (negative) | Pre-normalised vectors |
|
|
58
|
+
|
|
59
|
+
```sql
|
|
60
|
+
-- Cosine similarity search (most common for LLM embeddings)
|
|
61
|
+
SELECT id, title, 1 - (embedding <=> $1) AS similarity
|
|
62
|
+
FROM documents
|
|
63
|
+
ORDER BY embedding <=> $1
|
|
64
|
+
LIMIT 10;
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 3. Index Strategy
|
|
70
|
+
|
|
71
|
+
### HNSW Index (Recommended)
|
|
72
|
+
|
|
73
|
+
```sql
|
|
74
|
+
-- Create HNSW index for cosine distance
|
|
75
|
+
CREATE INDEX ON documents
|
|
76
|
+
USING hnsw (embedding vector_cosine_ops)
|
|
77
|
+
WITH (m = 16, ef_construction = 200);
|
|
78
|
+
|
|
79
|
+
-- At query time, set ef_search for recall/speed tradeoff
|
|
80
|
+
SET hnsw.ef_search = 100; -- higher = more accurate, slower
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### IVFFlat Index (Legacy, Faster Build)
|
|
84
|
+
|
|
85
|
+
```sql
|
|
86
|
+
-- Create IVFFlat index
|
|
87
|
+
CREATE INDEX ON documents
|
|
88
|
+
USING ivfflat (embedding vector_cosine_ops)
|
|
89
|
+
WITH (lists = 100); -- sqrt(row_count) is a good starting point
|
|
90
|
+
|
|
91
|
+
-- At query time
|
|
92
|
+
SET ivfflat.probes = 10; -- higher = more accurate
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Choosing Index Type
|
|
96
|
+
|
|
97
|
+
| Factor | HNSW | IVFFlat |
|
|
98
|
+
|--------|------|---------|
|
|
99
|
+
| Query accuracy | Higher | Lower (depends on probes) |
|
|
100
|
+
| Build time | Slower | Faster |
|
|
101
|
+
| Memory | Higher | Lower |
|
|
102
|
+
| Recommendation | **Default choice** | Large datasets with fast index rebuild needs |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 4. Hybrid Queries (SQL + Vector)
|
|
107
|
+
|
|
108
|
+
### Filtered Vector Search
|
|
109
|
+
|
|
110
|
+
```sql
|
|
111
|
+
-- Vector search with SQL filters — pgvector's superpower
|
|
112
|
+
SELECT id, title, 1 - (embedding <=> $1) AS similarity
|
|
113
|
+
FROM documents
|
|
114
|
+
WHERE category = 'engineering'
|
|
115
|
+
AND created_at > NOW() - INTERVAL '30 days'
|
|
116
|
+
ORDER BY embedding <=> $1
|
|
117
|
+
LIMIT 20;
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### JOIN with Vector Search
|
|
121
|
+
|
|
122
|
+
```sql
|
|
123
|
+
-- Find similar documents by the same author
|
|
124
|
+
SELECT d.id, d.title, 1 - (d.embedding <=> $1) AS similarity, u.name AS author
|
|
125
|
+
FROM documents d
|
|
126
|
+
JOIN users u ON d.author_id = u.id
|
|
127
|
+
WHERE u.team = 'engineering'
|
|
128
|
+
ORDER BY d.embedding <=> $1
|
|
129
|
+
LIMIT 10;
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Row-Level Security + Vector Search
|
|
133
|
+
|
|
134
|
+
```sql
|
|
135
|
+
-- RLS policies apply transparently to vector queries
|
|
136
|
+
ALTER TABLE documents ENABLE ROW LEVEL SECURITY;
|
|
137
|
+
|
|
138
|
+
CREATE POLICY documents_read ON documents FOR SELECT
|
|
139
|
+
USING (public = true OR author_id = current_setting('app.user_id')::uuid);
|
|
140
|
+
|
|
141
|
+
-- This vector query automatically respects RLS
|
|
142
|
+
SELECT id, title FROM documents ORDER BY embedding <=> $1 LIMIT 10;
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### CTE Pattern for Multi-Stage Retrieval
|
|
146
|
+
|
|
147
|
+
```sql
|
|
148
|
+
-- Stage 1: Coarse vector retrieval
|
|
149
|
+
-- Stage 2: Re-rank or filter
|
|
150
|
+
WITH candidates AS (
|
|
151
|
+
SELECT id, title, content, embedding <=> $1 AS distance
|
|
152
|
+
FROM documents
|
|
153
|
+
ORDER BY embedding <=> $1
|
|
154
|
+
LIMIT 100
|
|
155
|
+
)
|
|
156
|
+
SELECT id, title, 1 - distance AS similarity
|
|
157
|
+
FROM candidates
|
|
158
|
+
WHERE distance < 0.3 -- threshold
|
|
159
|
+
ORDER BY distance
|
|
160
|
+
LIMIT 10;
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 5. Embedding Storage Patterns
|
|
166
|
+
|
|
167
|
+
### Batch Upsert
|
|
168
|
+
|
|
169
|
+
```sql
|
|
170
|
+
-- Use INSERT ... ON CONFLICT for idempotent upserts
|
|
171
|
+
INSERT INTO documents (id, title, content, embedding)
|
|
172
|
+
VALUES ($1, $2, $3, $4)
|
|
173
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
174
|
+
embedding = EXCLUDED.embedding,
|
|
175
|
+
content = EXCLUDED.content;
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Partial Indexes (Sparse Vectors)
|
|
179
|
+
|
|
180
|
+
```sql
|
|
181
|
+
-- Index only rows that have embeddings
|
|
182
|
+
CREATE INDEX ON documents
|
|
183
|
+
USING hnsw (embedding vector_cosine_ops)
|
|
184
|
+
WHERE embedding IS NOT NULL;
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 6. Driver Usage
|
|
190
|
+
|
|
191
|
+
### Python (psycopg + pgvector)
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
import psycopg
|
|
195
|
+
from pgvector.psycopg import register_vector
|
|
196
|
+
|
|
197
|
+
conn = psycopg.connect(os.environ["DATABASE_URL"])
|
|
198
|
+
register_vector(conn)
|
|
199
|
+
|
|
200
|
+
# Search
|
|
201
|
+
embedding = get_embedding("search query") # from your embedding model
|
|
202
|
+
results = conn.execute(
|
|
203
|
+
"SELECT id, title, 1 - (embedding <=> %s) AS similarity "
|
|
204
|
+
"FROM documents ORDER BY embedding <=> %s LIMIT 10",
|
|
205
|
+
(embedding, embedding),
|
|
206
|
+
).fetchall()
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Node.js (pgvector/pg)
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
import pgvector from 'pgvector/pg';
|
|
213
|
+
import pg from 'pg';
|
|
214
|
+
|
|
215
|
+
const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL });
|
|
216
|
+
await pgvector.registerType(pool);
|
|
217
|
+
|
|
218
|
+
const result = await pool.query(
|
|
219
|
+
'SELECT id, title, 1 - (embedding <=> $1) AS similarity FROM documents ORDER BY embedding <=> $1 LIMIT 10',
|
|
220
|
+
[pgvector.toSql(queryEmbedding)]
|
|
221
|
+
);
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 7. Cross-Store Coordination
|
|
227
|
+
|
|
228
|
+
pgvector lives **inside** PostgreSQL, so there is no cross-store coordination needed when PostgreSQL is the primary store. The canonical IDs are the same table PKs. This is pgvector's primary advantage: no sync, no eventual consistency, no ID mapping.
|
|
229
|
+
|
|
230
|
+
If another store is primary, follow the standard canonical ID rule — store the primary store's UUID in the `id` column.
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 8. Common Anti-Patterns
|
|
235
|
+
|
|
236
|
+
1. **Missing HNSW index** — without an index, vector queries do sequential scans on the entire table
|
|
237
|
+
2. **Wrong distance operator** — using `<->` (L2) for cosine-normalised embeddings instead of `<=>`
|
|
238
|
+
3. **Storing embeddings without the source text** — you need the text for re-embedding; store it or keep a reference
|
|
239
|
+
4. **Not setting `ef_search`** — HNSW defaults may be too low for your accuracy needs
|
|
240
|
+
5. **Huge embedding dimensions without quantization** — pgvector supports `halfvec` for 16-bit floats to halve storage
|
|
241
|
+
6. **Using pgvector as a dedicated vector engine at 100M+ scale** — at extreme scale, a purpose-built vector DB offers better throughput
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pinecone
|
|
3
|
+
description: "Expert Pinecone guide covering serverless and pod-based index design, namespace partitioning, metadata filtering, sparse-dense hybrid search, embedding pipeline patterns, SDK setup, cross-store coordination, and security hardening. Use when building production vector search with a fully managed serverless infrastructure."
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Pinecone Expert Guide
|
|
8
|
+
|
|
9
|
+
> Use this skill when designing vector indexes on Pinecone, writing upsert and query operations, planning namespace strategies, setting up SDKs, or coordinating Pinecone with primary stores. Targets Pinecone Serverless.
|
|
10
|
+
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
- Production vector search requiring fully managed, auto-scaling infrastructure
|
|
14
|
+
- RAG pipelines with millions to billions of vectors
|
|
15
|
+
- Sparse-dense hybrid search (BM25 + embedding)
|
|
16
|
+
- Teams that want zero operational overhead for vector infrastructure
|
|
17
|
+
- Multi-tenant applications using namespace isolation
|
|
18
|
+
|
|
19
|
+
## When NOT to Use This Skill
|
|
20
|
+
|
|
21
|
+
- Budget-constrained projects → self-hosted Qdrant is free
|
|
22
|
+
- Need to co-locate vectors with relational data → use pgvector
|
|
23
|
+
- Graph traversal requirements → use Neo4j
|
|
24
|
+
- Need full SQL alongside vectors → use pgvector or SurrealDB
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 1. Index Design
|
|
29
|
+
|
|
30
|
+
### Serverless Index (Recommended)
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from pinecone import Pinecone, ServerlessSpec
|
|
34
|
+
|
|
35
|
+
pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])
|
|
36
|
+
|
|
37
|
+
pc.create_index(
|
|
38
|
+
name="documents",
|
|
39
|
+
dimension=1536,
|
|
40
|
+
metric="cosine", # cosine, euclidean, dotproduct
|
|
41
|
+
spec=ServerlessSpec(
|
|
42
|
+
cloud="aws",
|
|
43
|
+
region="us-east-1",
|
|
44
|
+
),
|
|
45
|
+
)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Namespaces (Multi-Tenancy)
|
|
49
|
+
|
|
50
|
+
Namespaces partition data within a single index. Use them for:
|
|
51
|
+
- Per-tenant isolation in multi-tenant apps
|
|
52
|
+
- Per-environment separation (dev/staging/prod data in one index)
|
|
53
|
+
- Logical grouping (by document type, language, etc.)
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
index = pc.Index("documents")
|
|
57
|
+
|
|
58
|
+
# Upsert into a specific namespace
|
|
59
|
+
index.upsert(
|
|
60
|
+
vectors=[("doc-1", [0.1, 0.2, ...], {"title": "Doc 1"})],
|
|
61
|
+
namespace="tenant-abc",
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
# Query within a namespace
|
|
65
|
+
results = index.query(
|
|
66
|
+
vector=query_embedding,
|
|
67
|
+
top_k=10,
|
|
68
|
+
namespace="tenant-abc",
|
|
69
|
+
)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 2. Upsert Patterns
|
|
75
|
+
|
|
76
|
+
### Batch Upsert
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
# Always batch — never upsert one vector at a time
|
|
80
|
+
vectors = [
|
|
81
|
+
("id-1", embedding_1, {"title": "Doc 1", "category": "eng"}),
|
|
82
|
+
("id-2", embedding_2, {"title": "Doc 2", "category": "sales"}),
|
|
83
|
+
]
|
|
84
|
+
|
|
85
|
+
index.upsert(vectors=vectors, namespace="default")
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Metadata Schema
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
# Metadata values: string, number, boolean, list of strings
|
|
92
|
+
{
|
|
93
|
+
"title": "Architecture Design",
|
|
94
|
+
"category": "engineering",
|
|
95
|
+
"created_at": 1706000000, # Unix timestamp (number)
|
|
96
|
+
"tags": ["architecture", "design"], # list of strings
|
|
97
|
+
"public": True,
|
|
98
|
+
"word_count": 2500,
|
|
99
|
+
"author_id": "user-uuid-123", # canonical ID from primary store
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
> Metadata keys and string values are indexed automatically. Maximum metadata size: 40KB per vector.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 3. Query Patterns
|
|
108
|
+
|
|
109
|
+
### Basic Vector Search
|
|
110
|
+
|
|
111
|
+
```python
|
|
112
|
+
results = index.query(
|
|
113
|
+
vector=query_embedding,
|
|
114
|
+
top_k=10,
|
|
115
|
+
include_metadata=True,
|
|
116
|
+
)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Filtered Search
|
|
120
|
+
|
|
121
|
+
```python
|
|
122
|
+
results = index.query(
|
|
123
|
+
vector=query_embedding,
|
|
124
|
+
top_k=20,
|
|
125
|
+
filter={
|
|
126
|
+
"category": {"$eq": "engineering"},
|
|
127
|
+
"word_count": {"$gte": 500},
|
|
128
|
+
"tags": {"$in": ["architecture"]},
|
|
129
|
+
},
|
|
130
|
+
include_metadata=True,
|
|
131
|
+
)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Sparse-Dense Hybrid Search
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
# Combines BM25-style sparse vectors with dense embeddings
|
|
138
|
+
results = index.query(
|
|
139
|
+
vector=dense_embedding,
|
|
140
|
+
sparse_vector={"indices": [1, 50, 1000], "values": [0.5, 0.3, 0.8]},
|
|
141
|
+
top_k=10,
|
|
142
|
+
)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Fetch by ID (No Vector Search)
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
result = index.fetch(ids=["doc-1", "doc-2"], namespace="default")
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 4. SDK Setup
|
|
154
|
+
|
|
155
|
+
### Python
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
from pinecone import Pinecone
|
|
159
|
+
|
|
160
|
+
pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])
|
|
161
|
+
index = pc.Index("documents")
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### JavaScript/TypeScript
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import { Pinecone } from '@pinecone-database/pinecone';
|
|
168
|
+
|
|
169
|
+
const pc = new Pinecone({ apiKey: process.env.PINECONE_API_KEY! });
|
|
170
|
+
const index = pc.index('documents');
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 5. Cross-Store Coordination
|
|
176
|
+
|
|
177
|
+
### Canonical ID Rule
|
|
178
|
+
|
|
179
|
+
Use the primary store's UUID as the Pinecone vector ID:
|
|
180
|
+
|
|
181
|
+
```python
|
|
182
|
+
# Primary store creates entity → returns UUID
|
|
183
|
+
# Use that UUID as the Pinecone vector ID
|
|
184
|
+
index.upsert(vectors=[(primary_store_uuid, embedding, metadata)])
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Sync Pattern
|
|
188
|
+
|
|
189
|
+
1. Write to primary store → get UUID
|
|
190
|
+
2. Generate embedding from entity content
|
|
191
|
+
3. Upsert to Pinecone with UUID as vector ID
|
|
192
|
+
4. On update → regenerate embedding → upsert (idempotent)
|
|
193
|
+
5. On delete → `index.delete(ids=[uuid])`
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 6. Security
|
|
198
|
+
|
|
199
|
+
- **API key rotation** — rotate keys regularly; use environment variables, never hardcode
|
|
200
|
+
- **Project isolation** — each Pinecone project has its own API keys and indexes
|
|
201
|
+
- **Namespace isolation** — use namespaces for tenant-level data separation
|
|
202
|
+
- **Network** — Pinecone is cloud-hosted; no port exposure to manage
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 7. Common Anti-Patterns
|
|
207
|
+
|
|
208
|
+
1. **Single-vector upserts** — always batch upserts for throughput
|
|
209
|
+
2. **Using Pinecone as primary store** — it's a search index; keep source data in your primary database
|
|
210
|
+
3. **Over-filtering** — highly selective filters reduce the candidate pool, which can hurt recall
|
|
211
|
+
4. **Ignoring namespace isolation** — mixing tenant data in one namespace creates security risks
|
|
212
|
+
5. **Not including metadata** — metadata enables filtered search without a separate query to the primary store
|