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,415 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lancedb
|
|
3
|
+
description: "Expert LanceDB vector database guide covering embedded serverless setup, table design with Pydantic and Arrow schemas, vector search (IVF-PQ, HNSW-PQ), full-text search, hybrid search with rerankers, scalar indexing, embedding functions, async API, cross-store coordination, and data versioning. Use when building RAG pipelines, semantic search, recommendation engines, or any embedding-based retrieval system with an embedded (no-server) vector store."
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# LanceDB Expert Guide
|
|
8
|
+
|
|
9
|
+
> Use this skill when designing vector tables, writing search queries, planning indexing strategies, setting up LanceDB connections, coordinating LanceDB with primary stores, or choosing between LanceDB and a managed vector database. This skill targets LanceDB 0.x (Python `lancedb` / TypeScript `@lancedb/lancedb`).
|
|
10
|
+
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
- Building semantic search with an **embedded** (serverless, no-infra) vector store
|
|
14
|
+
- Implementing RAG (Retrieval-Augmented Generation) pipelines with vector retrieval
|
|
15
|
+
- Hybrid search combining vector similarity + full-text search + metadata filtering
|
|
16
|
+
- Multi-modal retrieval (text, image, audio embeddings) in a single table
|
|
17
|
+
- Projects that need **zero-config vector storage** — no Docker, no managed service
|
|
18
|
+
- Integrating as the `DATABASE_VECTOR` store alongside a primary relational/document database
|
|
19
|
+
|
|
20
|
+
## When NOT to Use This Skill
|
|
21
|
+
|
|
22
|
+
- Need a managed, distributed vector cluster → use Qdrant or Pinecone
|
|
23
|
+
- Relational data with JOINs → use PostgreSQL
|
|
24
|
+
- Graph traversals → use Neo4j
|
|
25
|
+
- Time-series analytics → use TimescaleDB
|
|
26
|
+
- Key-value caching → use Redis
|
|
27
|
+
- Full-text search without vectors → use Meilisearch or Elasticsearch
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 1. Table Design
|
|
32
|
+
|
|
33
|
+
### Connection
|
|
34
|
+
|
|
35
|
+
```python
|
|
36
|
+
import lancedb
|
|
37
|
+
|
|
38
|
+
# Local embedded (file-based — no server required)
|
|
39
|
+
db = lancedb.connect("./my_lancedb")
|
|
40
|
+
|
|
41
|
+
# Cloud (LanceDB Cloud)
|
|
42
|
+
db = lancedb.connect(
|
|
43
|
+
"db://my-database",
|
|
44
|
+
api_key=os.environ["LANCEDB_API_KEY"],
|
|
45
|
+
region="us-east-1",
|
|
46
|
+
)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
import * as lancedb from "@lancedb/lancedb";
|
|
51
|
+
|
|
52
|
+
// Local embedded
|
|
53
|
+
const db = await lancedb.connect("./my_lancedb");
|
|
54
|
+
|
|
55
|
+
// Cloud
|
|
56
|
+
const db = await lancedb.connect("db://my-database", {
|
|
57
|
+
apiKey: process.env.LANCEDB_API_KEY,
|
|
58
|
+
region: "us-east-1",
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Schema Definition (Python — Pydantic)
|
|
63
|
+
|
|
64
|
+
Always define schemas with Pydantic models or PyArrow — never raw dicts.
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
from lancedb.pydantic import LanceModel, Vector
|
|
68
|
+
from lancedb.embeddings import get_registry
|
|
69
|
+
|
|
70
|
+
# Auto-embed with an embedding function
|
|
71
|
+
embeddings = get_registry().get("openai").create(name="text-embedding-3-small")
|
|
72
|
+
|
|
73
|
+
class Document(LanceModel):
|
|
74
|
+
text: str = embeddings.SourceField() # source text
|
|
75
|
+
vector: Vector(1536) = embeddings.VectorField() # auto-generated
|
|
76
|
+
category: str
|
|
77
|
+
author_id: str # canonical ID from primary store
|
|
78
|
+
created_at: str
|
|
79
|
+
public: bool = True
|
|
80
|
+
|
|
81
|
+
table = db.create_table("documents", schema=Document, mode="overwrite")
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Schema Definition (Python — PyArrow)
|
|
85
|
+
|
|
86
|
+
```python
|
|
87
|
+
import pyarrow as pa
|
|
88
|
+
|
|
89
|
+
schema = pa.schema([
|
|
90
|
+
("id", pa.int64()),
|
|
91
|
+
("text", pa.string()),
|
|
92
|
+
("category", pa.string()),
|
|
93
|
+
("vector", pa.list_(pa.float32(), 1536)),
|
|
94
|
+
])
|
|
95
|
+
table = db.create_table("documents", schema=schema)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Schema Definition (TypeScript — Arrow)
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
import * as lancedb from "@lancedb/lancedb";
|
|
102
|
+
import "@lancedb/lancedb/embedding/openai";
|
|
103
|
+
import { Utf8 } from "apache-arrow";
|
|
104
|
+
|
|
105
|
+
const embedFunc = lancedb
|
|
106
|
+
.getRegistry()
|
|
107
|
+
.get("openai")
|
|
108
|
+
?.create({ model: "text-embedding-3-small" });
|
|
109
|
+
|
|
110
|
+
const schema = lancedb.embedding.LanceSchema({
|
|
111
|
+
text: embedFunc.sourceField(new Utf8()),
|
|
112
|
+
vector: embedFunc.vectorField(),
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
const table = await db.createEmptyTable("documents", schema, {
|
|
116
|
+
mode: "overwrite",
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Inserting Data
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
# With Pydantic model (auto-embeds via SourceField)
|
|
124
|
+
table.add([
|
|
125
|
+
Document(text="Architecture overview", category="engineering",
|
|
126
|
+
author_id="user-uuid-1", created_at="2026-01-15"),
|
|
127
|
+
Document(text="API design patterns", category="engineering",
|
|
128
|
+
author_id="user-uuid-2", created_at="2026-01-16"),
|
|
129
|
+
])
|
|
130
|
+
|
|
131
|
+
# With raw dicts (requires pre-computed vectors)
|
|
132
|
+
table.add([
|
|
133
|
+
{"text": "Hello world", "vector": [0.1, 0.2, ...], "category": "demo"},
|
|
134
|
+
])
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
await table.add([
|
|
139
|
+
{ text: "Architecture overview" },
|
|
140
|
+
{ text: "API design patterns" },
|
|
141
|
+
]);
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 2. Search Patterns
|
|
147
|
+
|
|
148
|
+
### Basic Vector Search
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
# With embedding function — pass text, auto-embeds
|
|
152
|
+
results = table.search("architecture patterns").limit(10).to_pandas()
|
|
153
|
+
|
|
154
|
+
# With raw vector
|
|
155
|
+
results = table.search([0.1, 0.2, ...]).limit(10).to_pandas()
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
const results = await table.search("architecture patterns").limit(10).toArray();
|
|
160
|
+
|
|
161
|
+
// With raw vector
|
|
162
|
+
const results = await table
|
|
163
|
+
.query()
|
|
164
|
+
.nearestTo([0.1, 0.2])
|
|
165
|
+
.limit(10)
|
|
166
|
+
.toArrow();
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Filtered Search (Vector + Metadata)
|
|
170
|
+
|
|
171
|
+
```python
|
|
172
|
+
results = (
|
|
173
|
+
table.search("deployment strategies")
|
|
174
|
+
.where("category = 'engineering' AND public = true")
|
|
175
|
+
.limit(20)
|
|
176
|
+
.to_pandas()
|
|
177
|
+
)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
const results = await table
|
|
182
|
+
.search("deployment strategies")
|
|
183
|
+
.where("category = 'engineering' AND public = true")
|
|
184
|
+
.limit(20)
|
|
185
|
+
.toArray();
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Full-Text Search (FTS)
|
|
189
|
+
|
|
190
|
+
Requires creating an FTS index first.
|
|
191
|
+
|
|
192
|
+
```python
|
|
193
|
+
from lancedb.index import FTS
|
|
194
|
+
|
|
195
|
+
table.create_fts_index("text")
|
|
196
|
+
|
|
197
|
+
results = table.search("deployment", query_type="fts").limit(10).to_pandas()
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
await table.createIndex("text", { config: lancedb.Index.fts() });
|
|
202
|
+
|
|
203
|
+
const results = await table
|
|
204
|
+
.search("deployment", { queryType: "fts" })
|
|
205
|
+
.limit(10)
|
|
206
|
+
.toArray();
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Hybrid Search (Vector + FTS)
|
|
210
|
+
|
|
211
|
+
Combines vector similarity and full-text search with reranking for best-of-both retrieval.
|
|
212
|
+
|
|
213
|
+
```python
|
|
214
|
+
from lancedb.rerankers import RRFReranker, LinearCombinationReranker
|
|
215
|
+
|
|
216
|
+
# Prerequisite: both vector and FTS indexes must exist
|
|
217
|
+
table.create_index("vector", config=lancedb.index.IvfPq())
|
|
218
|
+
table.create_fts_index("text")
|
|
219
|
+
|
|
220
|
+
# Reciprocal Rank Fusion
|
|
221
|
+
reranker = RRFReranker()
|
|
222
|
+
results = (
|
|
223
|
+
table.search("AI architecture", query_type="hybrid")
|
|
224
|
+
.rerank(reranker)
|
|
225
|
+
.limit(10)
|
|
226
|
+
.to_pandas()
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
# Linear combination (70% vector, 30% FTS)
|
|
230
|
+
reranker = LinearCombinationReranker(weight=0.7)
|
|
231
|
+
results = (
|
|
232
|
+
table.search("AI architecture", query_type="hybrid")
|
|
233
|
+
.rerank(reranker)
|
|
234
|
+
.limit(10)
|
|
235
|
+
.to_pandas()
|
|
236
|
+
)
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Async API (Python)
|
|
240
|
+
|
|
241
|
+
```python
|
|
242
|
+
import lancedb
|
|
243
|
+
|
|
244
|
+
async def search():
|
|
245
|
+
db = await lancedb.connect_async("./my_lancedb")
|
|
246
|
+
table = await db.open_table("documents")
|
|
247
|
+
results = await (
|
|
248
|
+
table.hybrid_search([0.1, 0.2, ...], "query text")
|
|
249
|
+
.vector_column("vector")
|
|
250
|
+
.text_column("text")
|
|
251
|
+
.limit(10)
|
|
252
|
+
.to_pandas()
|
|
253
|
+
)
|
|
254
|
+
return results
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 3. Index & Performance
|
|
260
|
+
|
|
261
|
+
### Vector Indexes
|
|
262
|
+
|
|
263
|
+
| Index Type | When to Use | Trade-off |
|
|
264
|
+
|-----------|------------|-----------|
|
|
265
|
+
| `IvfPq` | Large datasets (100K+ rows) | Fast, lower recall |
|
|
266
|
+
| `HnswPq` | Medium datasets, higher recall needed | More memory, better accuracy |
|
|
267
|
+
| `IvfFlat` | Binary vectors, Hamming distance | Exact partitioned search |
|
|
268
|
+
|
|
269
|
+
```python
|
|
270
|
+
import lancedb
|
|
271
|
+
|
|
272
|
+
# IVF-PQ (recommended for large datasets)
|
|
273
|
+
table.create_index(
|
|
274
|
+
"vector",
|
|
275
|
+
config=lancedb.index.IvfPq(
|
|
276
|
+
num_partitions=256,
|
|
277
|
+
num_sub_vectors=96,
|
|
278
|
+
distance_type="cosine", # "l2", "cosine", or "dot"
|
|
279
|
+
),
|
|
280
|
+
)
|
|
281
|
+
|
|
282
|
+
# HNSW-PQ (better recall, more memory)
|
|
283
|
+
table.create_index(
|
|
284
|
+
"vector",
|
|
285
|
+
config=lancedb.index.HnswPq(
|
|
286
|
+
distance_type="cosine",
|
|
287
|
+
num_partitions=1,
|
|
288
|
+
m=20, # connections per node
|
|
289
|
+
ef_construction=300, # build-time search width
|
|
290
|
+
),
|
|
291
|
+
replace=True,
|
|
292
|
+
)
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
```typescript
|
|
296
|
+
await table.createIndex("vector", {
|
|
297
|
+
config: lancedb.Index.ivfPq({
|
|
298
|
+
numPartitions: 256,
|
|
299
|
+
numSubVectors: 96,
|
|
300
|
+
distanceType: "cosine",
|
|
301
|
+
}),
|
|
302
|
+
});
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### Scalar Indexes (for filter columns)
|
|
306
|
+
|
|
307
|
+
```python
|
|
308
|
+
# BTree index for filter fields — avoids full scans
|
|
309
|
+
table.create_index("category", config=lancedb.index.BTree())
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
> Always create scalar indexes on columns used in `.where()` filters — unindexed filter columns trigger full scans.
|
|
313
|
+
|
|
314
|
+
### Distance Metrics
|
|
315
|
+
|
|
316
|
+
| Metric | When to Use |
|
|
317
|
+
|--------|------------|
|
|
318
|
+
| `cosine` | Text embeddings (OpenAI, Cohere, most LLMs) — direction matters |
|
|
319
|
+
| `l2` (Euclidean) | Feature vectors where absolute distance matters |
|
|
320
|
+
| `dot` | Pre-normalised embeddings, maximum inner product |
|
|
321
|
+
|
|
322
|
+
### Listing Indexes
|
|
323
|
+
|
|
324
|
+
```python
|
|
325
|
+
for idx in table.list_indices():
|
|
326
|
+
print(f"Index: {idx['name']} on column {idx['columns']}")
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## 4. Data Versioning
|
|
332
|
+
|
|
333
|
+
LanceDB uses the Lance columnar format which provides automatic data versioning:
|
|
334
|
+
|
|
335
|
+
- Every write (add, update, delete) creates a new version
|
|
336
|
+
- Previous versions are retained and queryable
|
|
337
|
+
- Zero-copy reads — multiple readers can access different versions simultaneously
|
|
338
|
+
- Time-travel queries by version number
|
|
339
|
+
|
|
340
|
+
> This makes LanceDB well-suited for ML experiment tracking and reproducible pipelines where you need to query historical snapshots of your data.
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## 5. Cross-Store Coordination
|
|
345
|
+
|
|
346
|
+
### Canonical ID Rule
|
|
347
|
+
|
|
348
|
+
The primary store's UUID is the canonical identifier. Store it in LanceDB records:
|
|
349
|
+
|
|
350
|
+
```python
|
|
351
|
+
table.add([
|
|
352
|
+
Document(
|
|
353
|
+
text="Architecture overview",
|
|
354
|
+
category="engineering",
|
|
355
|
+
author_id="primary-store-uuid-123", # canonical ID
|
|
356
|
+
created_at="2026-01-15",
|
|
357
|
+
),
|
|
358
|
+
])
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Sync Pattern
|
|
362
|
+
|
|
363
|
+
1. **Write to primary store first** → generates canonical ID
|
|
364
|
+
2. **Add to LanceDB** with canonical ID (embedding auto-generated if using SourceField)
|
|
365
|
+
3. On primary store update → update or re-add to LanceDB
|
|
366
|
+
4. On primary store delete → delete from LanceDB by filter
|
|
367
|
+
|
|
368
|
+
```python
|
|
369
|
+
# Delete by filter
|
|
370
|
+
table.delete('author_id = "primary-store-uuid-123"')
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## 6. Embedding Functions
|
|
376
|
+
|
|
377
|
+
LanceDB supports built-in embedding functions that auto-generate vectors on insert and search:
|
|
378
|
+
|
|
379
|
+
| Provider | Registry Key | Example Model |
|
|
380
|
+
|----------|-------------|---------------|
|
|
381
|
+
| OpenAI | `openai` | `text-embedding-3-small`, `text-embedding-3-large` |
|
|
382
|
+
| Cohere | `cohere` | `embed-english-v3.0` |
|
|
383
|
+
| Hugging Face | `huggingface` | `sentence-transformers/all-MiniLM-L6-v2` |
|
|
384
|
+
| Ollama | `ollama` | `nomic-embed-text` |
|
|
385
|
+
|
|
386
|
+
```python
|
|
387
|
+
from lancedb.embeddings import get_registry
|
|
388
|
+
|
|
389
|
+
func = get_registry().get("openai").create(name="text-embedding-3-small")
|
|
390
|
+
# Use func with LanceModel SourceField/VectorField (see Section 1)
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
> When using embedding functions, you pass text to `.search("query text")` and LanceDB auto-embeds it — no manual vector computation needed.
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## 7. Security & Deployment
|
|
398
|
+
|
|
399
|
+
- **Embedded mode** — data is local files; protect with filesystem permissions and encryption-at-rest
|
|
400
|
+
- **LanceDB Cloud** — API key auth via `LANCEDB_API_KEY` environment variable
|
|
401
|
+
- **No network exposure** — embedded mode has no server port; no network attack surface
|
|
402
|
+
- **PII in vectors** — embeddings can leak information; apply the same PII controls as the source text
|
|
403
|
+
- **Backups** — Lance format is file-based; standard file backup/replication strategies apply
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## 8. Common Anti-Patterns
|
|
408
|
+
|
|
409
|
+
1. **Using raw dicts for schemas** — always use Pydantic `LanceModel` or PyArrow schemas for type safety
|
|
410
|
+
2. **Missing vector indexes on large tables** — tables with 100K+ rows without an IVF-PQ or HNSW index will be slow
|
|
411
|
+
3. **No scalar indexes on filter columns** — `.where()` filters on unindexed columns cause full scans
|
|
412
|
+
4. **Treating LanceDB as a primary store** — LanceDB is a vector index; keep source-of-truth data in a primary store
|
|
413
|
+
5. **Mixed vector dimensions in one table** — all vectors in a column must have the same dimension
|
|
414
|
+
6. **Skipping the embedding function** — manual embedding computation is error-prone; use built-in embedding functions
|
|
415
|
+
7. **Not using hybrid search for RAG** — pure vector search misses keyword-exact matches; hybrid + reranking gives better retrieval
|