kinemotion 0.59.0__tar.gz → 0.60.0__tar.gz
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.
Potentially problematic release.
This version of kinemotion might be problematic. Click here for more details.
- kinemotion-0.60.0/.basic-memory/development/database-setup-scripts-complete-implementation.md +295 -0
- kinemotion-0.60.0/.basic-memory/development/supabase-documentation-validation-december-2025.md +98 -0
- kinemotion-0.60.0/.basic-memory/project-management/agent-documentation-standards-update.md +133 -0
- kinemotion-0.60.0/.basic-memory/research/performance-improvement-analysis-30s-18s.md +248 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/biomechanics-specialist.md +3 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/computer-vision-engineer.md +3 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/devops-cicd-engineer.md +3 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/frontend-developer.md +5 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/ml-data-scientist.md +3 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/project-manager.md +7 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/python-backend-developer.md +3 -1
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/qa-test-engineer.md +6 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/agents/technical-writer.md +3 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.gitignore +1 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/mvp-roadmap-and-priorities.md +6 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/CHANGELOG.md +13 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/PKG-INFO +1 -1
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/auth.py +53 -9
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/middleware.py +15 -2
- kinemotion-0.60.0/docs/development/supabase-database-setup.md +513 -0
- kinemotion-0.60.0/docs/guides/supabase-setup/README.md +56 -0
- kinemotion-0.60.0/docs/guides/supabase-setup/quickstart.md +255 -0
- kinemotion-0.60.0/docs/guides/supabase-setup/scripts-reference.md +223 -0
- kinemotion-0.60.0/docs/guides/supabase-setup/setup-guide.md +387 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/package.json +1 -0
- kinemotion-0.60.0/frontend/src/components/Auth.test.tsx +152 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/Auth.tsx +13 -17
- kinemotion-0.60.0/frontend/src/components/ErrorBoundary.test.tsx +232 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/ErrorBoundary.tsx +19 -6
- kinemotion-0.60.0/frontend/src/components/FeedbackForm.test.tsx +263 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/FeedbackForm.tsx +17 -31
- kinemotion-0.60.0/frontend/src/components/LoadingSpinner.test.tsx +133 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/LoadingSpinner.tsx +16 -10
- kinemotion-0.60.0/frontend/src/components/RecentUploads.test.tsx +207 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/RecentUploads.tsx +7 -4
- kinemotion-0.60.0/frontend/src/i18n/locales/en/translation.json +272 -0
- kinemotion-0.60.0/frontend/src/i18n/locales/es/translation.json +272 -0
- kinemotion-0.60.0/frontend/src/i18n/locales/fr/translation.json +272 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/yarn.lock +10 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/pyproject.toml +1 -1
- kinemotion-0.60.0/scripts/supabasedb/setup-supabase-database.sh +231 -0
- kinemotion-0.60.0/scripts/supabasedb/setup_supabase_db.py +311 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/uv.lock +1 -1
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/api/api-reference-quick-commands.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/api/cloud-run-cpu-specifications-investigation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/api/supabase-authentication-setup-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/authentication/auth-provider-comparison-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/authentication/auth-providers-comparison-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/authentication/supabase-authentication-quick-start.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/authentication/supabase-authentication-setup-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/authentication/supabase-authentication-technical-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/authentication/supabase-google-oauth-setup-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/authentication/supabase-production-setup-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/authentication/supabase-quick-start-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/biomechanics/camera-angle-empirical-validation-results-45-superior-for-media-pipe.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/biomechanics/camera-perspective-analysis-45deg-vs-lateral.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/biomechanics/cmj-landing-detection-window-validation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/biomechanics/cmj-physiological-bounds-for-validation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/biomechanics/cmj-validation-implementation-complete.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/biomechanics/drop-jump-vs-cmj-key-differences.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/biomechanics/technical-implementation-45deg-perspective-correction.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/codebase/codebase-architecture-overview.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/codebase/validation-architecture-visual-hierarchy-after-refactoring.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/codebase/validation-code-duplication-evidence.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/codebase/validation-module-architecture-analysis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/codebase/validation-refactoring-complete-architecture-improvement.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/automated-deployment-setup-git-hub-actions-with-workload-identity-federation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/backend-repository-split-migration-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/backend-repository-split-step-by-step-execution-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/cloud-run-security-least-privilege-service-account-setup.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/cors-and-memory-issues-production-debugging-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/current-kinemotion-architecture-correct-deployment-setup.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/frontend-repository-split-migration-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/frontend-repository-split-step-by-step-execution-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/production-deployment-guide-vercel-google-cloud-run.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/quick-deployment-commands-vercel-and-cloud-run.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/deployment/vercel-monorepo-deployment-best-practice.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/athlete-pose3d-and-cross-platform-determinism-investigation-complete.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/athlete-pose3d-final-strategy-accuracy-and-robustness.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/athlete-pose3d-media-pipe-enhancement-plan.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/athlete-pose3d-phase-1-implementation-complete.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/backend-authentication-and-logging-status.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/backend-code-coverage-analysis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/backend-code-duplication-analysis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/backend-granular-logging-implementation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/backend-kinemotion-decoupling-strategy.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/backend-sonar-cloud-integration-status.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/basic-memory-naming-hook-analysis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/ci-caching-issue-investigation-deep-squat-test-failure.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/ci-vs-local-test-failure-investigation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/claude-code-hook-configuration.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/cmj-phase-detection-testing-gap-analysis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/commit-review-r2-video-storage-migration-fe74d1f.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/comprehensive-timing-instrumentation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/cross-platform-determinism-analysis-final-results.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/development-standards-quality-gates.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/drop-jump-detection-complete-fix-all-metrics-within-target.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/drop-jump-detection-failure-analysis-per-video-breakdown.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/drop-jump-fix-drop-start-successful-landing-and-takeoff-remain.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/fast-api-app.py Refactoring Plan - Modular Architecture.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/fast-api-refactoring-completion-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/feature-request-system-configuration.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/follow-up-improvements-to-r2-video-storage-migration.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/frontend-dependencies-analysis-nov-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/google-oauth-setup-script-final-review-production-ready.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/google-oauth-setup-script-review-issues-and-recommendations.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/hook-complete-audit-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/hook-configuration-audit.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/hook-quick-reference.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/i18n-implementation-plan-for-validation-messages.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/keyboard-interrupt-test-suite-failure-analysis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/model-import-conflict-resolution-fast-api-refactoring.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/non-deterministic-analysis-root-cause-and-solution.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/optimal-timing-implementation-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/p0-p1-p2-test-suite-fixes-final-report.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/pose-detection-baseline-evaluation-results.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/pose-detection-optimization-complete-success-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/pose-detection-parameter-optimization-framework.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/structured-logging-implementation-complete.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/structured-logging-implementation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/supabase-dashboard-navigation-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/supabase-database-integration-setup.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/test-coverage-asymmetry-analysis-cmj-vs-drop-jump.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/test-coverage-equivalence-achievement-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/test-suite-comprehensive-review-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/test-suite-comprehensive-review-structure-and-gaps.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/test-suite-p0-p1-p2-fixes-complete-report.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/test-suite-p0-p1-p2-fixes-progress-report.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/unused-and-experimental-features-strategy.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/unused-code-detection-prompt-template.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/unused-code-identification-and-decorator-application-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/unused-code-verification-final-pass-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/using-multiple-mcp-reasoning-servers-simultaneously.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/velocity-threshold-empirical-validation-study.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/development/vercel-authentication-options-for-user-id-tracking.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/documentation-audit-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/i18n-documentation-cleanup-completed.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/issue-12-mvp-scaffolding-complete.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/issue-12-unblocked-tasks-breakdown.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/issue-12-use-real-metrics-now.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/kinemotion-project-setup-complete.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/kinemotion-supabase-production-configuration.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/mcp-sequential-thinking-alternatives-analysis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/performance-optimization-pose-tracker-pool-timing-instrumentation-complete.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/project-state-summary-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/specialized-subagents-routing-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/supabase-setup-instructions-for-kinemotion.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/project-management/version-mismatch-analysis-kinemotion-0370-vs-0300.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/strategy/deployment-decision-analysis-for-kinemotion.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/strategy/mvp-feedback-collection-plan.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/strategy/mvp-first-strategic-direction.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/strategy/mvp-validation-checkpoints.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/strategy/pose2sim-migration-evaluation-and-strategy.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/strategy/strategic-priority-tasks-current-roadmap.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.basic-memory/strategy/third-party-auth-providers-with-free-tiers-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.claude/settings.local.json +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.cursor/mcp.json +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.dockerignore +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.envrc +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.gitattributes +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/dependabot.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/pull_request_template.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/workflows/deploy-backend.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/workflows/docs.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/workflows/release.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.github/workflows/test.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.mcp.json +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.pre-commit-config.yaml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.readthedocs.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/.gitignore +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/backend-cors-fastapi-middleware-order.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/camera-perspective-validation-study.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/code_style_and_conventions.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/current-project-architecture.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/deployment-checklist-and-known-issues.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/deployment-setup-complete.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/github-project-setup-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/mvp-first-strategy.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/project_overview.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/specialist-agents-routing.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/memories/suggested_commands.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.serena/project.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.tool-versions +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/.vercelignore +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/CLAUDE.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/CODE_OF_CONDUCT.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/CONTRIBUTING.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/Dockerfile +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/GEMINI.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/LICENSE +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/SECURITY.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/.coveragerc +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/.dockerignore +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/.env.example +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/Dockerfile +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/docs/fly-deployment.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/docs/implementation-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/docs/setup.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/docs/tests.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/pyproject.toml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/analysis_api.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/app/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/app/config.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/app/dependencies.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/app/exceptions.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/app/main.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/app.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/database.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/logging_config.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/models/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/models/database.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/models/responses.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/models/storage.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/routes/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/routes/analysis.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/routes/database.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/routes/health.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/routes/platform.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/services/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/services/analysis_service.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/services/storage_service.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/services/validation.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/services/video_processor.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/types.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/utils/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/src/kinemotion_backend/utils/rate_limiter.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/supabase-schema.sql +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/tests/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/tests/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/tests/conftest.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/tests/test_api_endpoints.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/tests/test_error_handling.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/tests/test_health.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/tests/test_r2_integration.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/backend/tests/test_validation.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/api/cmj.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/api/core.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/api/dropjump.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/api/overview.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/I18N-README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/agents-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/errors-findings.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/feature-request-system.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/feedback-system-setup.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/i18n-architecture-diagram.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/i18n-cheat-sheet.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/i18n-quick-start-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/i18n-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/i18n-validation-messages-specification.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/test-suite-review-december-2025.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/testing-standards.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/testing.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/type-hints.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/validation-plan.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/validation-roadmap.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/development/wallball-norep-detection.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/bulk-processing.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/camera-setup.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/cloud-run-deployment.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/cmj-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/cmj-recording-protocol-es.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/cmj-recording-protocol.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/deployment-checklist.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/local-testing.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/guides/setup-issue-12.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/index.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/quick-start.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/reference/cloud-run-quick-reference.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/reference/json-output-format.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/reference/json-structure-comparison.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/reference/parameters.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/reference/pose-systems.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/paper-downloader/HOW-TO-FIND-DOIS.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/paper-downloader/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/paper-downloader/dois.txt +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/paper-downloader/download.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/paper-downloader/pyproject.toml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/paper-downloader/uv.lock +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/MANUAL-DOWNLOAD-GUIDE.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/convert_pdfs.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Ward_Putting-i-in-Team.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/jump-performance/2011_Harper_10-to-5-Jump-Test.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/jump-performance/2014_Samozino_FV-Imbalance.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/jump-performance/2022_Wells_Golf-Clubhead-CMJ.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/running-biomechanics/2016_Moore_Economical-Running-Technique.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/smartphone-technology/2022_Bishop_MyJumpLab-Validation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/markdown/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/online-references-for-papers.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Ward_Putting-i-in-Team.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/jump-performance/2011_Harper_10-to-5-Jump-Test.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/jump-performance/2014_Samozino_FV-Imbalance.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/jump-performance/2022_Wells_Golf-Clubhead-CMJ.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Moore_Economical-Running-Technique.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/smartphone-technology/2022_Bishop_MyJumpLab-Validation.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/research/thirdparty/pdfs/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.pdf +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/1-STRATEGIC_SUMMARY.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/2-STRATEGIC_ANALYSIS.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/MVP_FEEDBACK_COLLECTION.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/MVP_VALIDATION_CHECKPOINTS.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/STYLE_GUIDE.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/01-executive-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/02-technical-assessment.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/03-refactoring-roadmap.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/BIOMECHANICS/01-executive-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/BIOMECHANICS/02-technical-assessment.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/BIOMECHANICS/03-reference-guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/BIOMECHANICS/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/COMPUTER_VISION/01-executive-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/COMPUTER_VISION/02-real-time-architecture.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/COMPUTER_VISION/03-implementation-checklist.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/COMPUTER_VISION/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/CONSOLIDATED/01-agent-consensus.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/CONSOLIDATED/02-critical-findings.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/CONSOLIDATED/03-roadmap-adjustments.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/CONSOLIDATED/04-decision-points.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/CONSOLIDATED/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/CONSOLIDATED/risk-register.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/CONSOLIDATED/timeline-roadmap.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/01-executive-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/02-infrastructure-assessment.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/03-implementation-roadmap.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/01-executive-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/02-technical-assessment.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/03-parameter-specifications.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/QA_TESTING/01-executive-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/QA_TESTING/02-roadmap-assessment.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/QA_TESTING/03-testing-checklists.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/QA_TESTING/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/01-executive-summary.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/02-documentation-strategy.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/03-action-plan.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/strategy/pose2sim-migration-evaluation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/technical/framerate.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/technical/implementation-details.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/technical/imu-metadata.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/technical/real-time-analysis.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/technical/triple-extension.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/translations/es/camera-setup.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/validation/determinism-test.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/validation/known-height-validation.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/docs/validation-status.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/examples/bulk/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/examples/bulk/bulk_processing.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/examples/bulk/simple_example.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/examples/programmatic_usage.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/.editorconfig +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/.env.example +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/.gitattributes +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/.gitignore +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/.yarn/releases/yarn-4.12.0.cjs +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/.yarnrc.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/index.html +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/App.i18n.integration.test.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/App.test.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/App.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/ErrorDisplay.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/FeatureRequestButton.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/FeedbackForm.css +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/LanguageSwitcher.css +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/LanguageSwitcher.test.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/LanguageSwitcher.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/ResultsDisplay.test.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/ResultsDisplay.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/ResultsSkeleton.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/UploadForm.test.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/components/UploadForm.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/config/links.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/hooks/useAnalysis.test.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/hooks/useAnalysis.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/hooks/useAuth.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/hooks/useBackendVersion.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/hooks/useDatabaseStatus.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/hooks/useLanguage.test.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/hooks/useLanguage.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/hooks/useRecentUploads.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/i18n/config.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/index.css +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/lib/supabase.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/main.tsx +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/test/setup.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/types/api.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/src/vite-env.d.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/vercel.json +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/frontend/vite.config.ts +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/justfile +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/local_dev.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/mkdocs.yml +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/.gitignore +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/demos/.gitignore +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/demos/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/demos/api_demo.ipynb +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/demos/batch_processing_demo.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/demos/sample_data/.gitkeep +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/presentation_guide.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/revealjs/.gitignore +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/revealjs/Makefile +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/revealjs/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/revealjs/slides.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/presentation/speaker_script.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/requirements-docs.txt +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/samples/cmjs/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/SCRIPTS_QUICKREF.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/analyze_determinism_variance.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/basic-memory-utils.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/debug_contact_states.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/debug_detection.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/find_unused_features.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/generate_test_data.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/optimize_detection_params.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/plot_cmj_velocities.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/plot_validation_results.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/plot_velocities.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/prepare_ground_truth.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project/README.md +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project/add-issue.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project/batch-set-fields.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project/helpers.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project/list.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project/set-field.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project/set-status.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project/summary.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/project.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/setup-github-deploy.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/setup-google-oauth.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/setup-supabase-local.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/setup-supabase-production.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/test_acceleration_standing.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/test_determinism.sh +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/test_drop_start_debug.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/scripts/validate_known_heights.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/sonar-project.properties +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/api.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cli.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/analysis.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/api.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/cli.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/debug_overlay.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/joint_angles.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/kinematics.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/metrics_validator.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/cmj/validation_bounds.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/auto_tuning.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/cli_utils.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/debug_overlay_utils.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/determinism.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/experimental.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/filtering.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/formatting.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/metadata.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/pipeline_utils.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/pose.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/quality.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/smoothing.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/timing.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/validation.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/core/video_io.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/dropjump/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/dropjump/analysis.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/dropjump/api.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/dropjump/cli.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/dropjump/debug_overlay.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/dropjump/kinematics.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/dropjump/metrics_validator.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/dropjump/validation_bounds.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/src/kinemotion/py.typed +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cli/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cli/test_cmj.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cli/test_dropjump.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cli/test_imports.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cmj/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cmj/test_analysis.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cmj/test_api.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cmj/test_cli.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cmj/test_joint_angles.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cmj/test_kinematics.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/cmj/test_physiological_bounds.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/conftest.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_auto_tuning.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_cli_utils.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_filtering.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_formatting.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_metadata.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_pipeline_utils.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_pose.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_quality.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_smoothing.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_timing.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_validation.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/core/test_video_io.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/__init__.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/test_adaptive_threshold.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/test_analysis.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/test_api.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/test_cli.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/test_contact_detection.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/test_kinematics.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/test_physiological_bounds.py +0 -0
- {kinemotion-0.59.0 → kinemotion-0.60.0}/tests/dropjump/test_validation_integration.py +0 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Database Setup Scripts - Complete Implementation
|
|
3
|
+
type: note
|
|
4
|
+
permalink: development/database-setup-scripts-complete-implementation
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Database Setup Scripts - Complete Implementation
|
|
8
|
+
|
|
9
|
+
## Date: December 14, 2025
|
|
10
|
+
|
|
11
|
+
### Scripts Created
|
|
12
|
+
|
|
13
|
+
#### 1. **scripts/setup-supabase-database.sh** (8.6 KB)
|
|
14
|
+
Bash script that displays database schema and setup instructions.
|
|
15
|
+
|
|
16
|
+
**Features:**
|
|
17
|
+
- Validates SUPABASE_URL and SUPABASE_KEY environment variables
|
|
18
|
+
- Displays complete SQL schema
|
|
19
|
+
- Shows 3 setup options (manual, CLI, automated)
|
|
20
|
+
- Includes verification checklist
|
|
21
|
+
- Checks backend/.env configuration
|
|
22
|
+
- Provides next steps
|
|
23
|
+
|
|
24
|
+
**Usage:**
|
|
25
|
+
```bash
|
|
26
|
+
export SUPABASE_URL="https://your-project.supabase.co"
|
|
27
|
+
export SUPABASE_KEY="sb_anon_your-key"
|
|
28
|
+
./scripts/setup-supabase-database.sh
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Output:**
|
|
32
|
+
- SQL schema for copy/paste
|
|
33
|
+
- Manual setup instructions
|
|
34
|
+
- Verification queries
|
|
35
|
+
- Next steps
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
#### 2. **scripts/setup_supabase_db.py** (10 KB)
|
|
40
|
+
Python script for schema generation with validation and file output.
|
|
41
|
+
|
|
42
|
+
**Features:**
|
|
43
|
+
- Validates Supabase credentials
|
|
44
|
+
- Generates SQL schema
|
|
45
|
+
- Saves to backend/supabase-schema.sql
|
|
46
|
+
- Colored terminal output (green/red/yellow/blue)
|
|
47
|
+
- Displays setup options with instructions
|
|
48
|
+
- Provides detailed verification checklist
|
|
49
|
+
- Cross-platform compatible (macOS, Linux, Windows)
|
|
50
|
+
|
|
51
|
+
**Usage:**
|
|
52
|
+
```bash
|
|
53
|
+
export SUPABASE_URL="https://your-project.supabase.co"
|
|
54
|
+
export SUPABASE_KEY="sb_anon_your-key"
|
|
55
|
+
python scripts/setup_supabase_db.py
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Output:**
|
|
59
|
+
- Sets up colored terminal interface
|
|
60
|
+
- Saves SQL to file
|
|
61
|
+
- Lists manual setup steps
|
|
62
|
+
- Shows verification procedures
|
|
63
|
+
- Provides next steps
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
#### 3. **scripts/SETUP_GUIDE.md**
|
|
68
|
+
Comprehensive setup documentation with examples and troubleshooting.
|
|
69
|
+
|
|
70
|
+
**Sections:**
|
|
71
|
+
- Overview of 3-stage setup process
|
|
72
|
+
- Prerequisites and quick start
|
|
73
|
+
- Detailed script explanations
|
|
74
|
+
- Environment variable reference
|
|
75
|
+
- Troubleshooting guide
|
|
76
|
+
- File structure overview
|
|
77
|
+
- Complete checklist
|
|
78
|
+
|
|
79
|
+
**Usage:**
|
|
80
|
+
Reference guide for users running scripts. Explains what each script does and why.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### Documentation Created
|
|
85
|
+
|
|
86
|
+
#### 1. **SUPABASE_QUICKSTART.md** (at project root)
|
|
87
|
+
Quick reference guide for developers who want to get up and running fast.
|
|
88
|
+
|
|
89
|
+
**Features:**
|
|
90
|
+
- 5-minute setup guide
|
|
91
|
+
- TL;DR section with 3 commands
|
|
92
|
+
- Step-by-step instructions
|
|
93
|
+
- Copy-paste SQL schema
|
|
94
|
+
- Common issues and solutions
|
|
95
|
+
- What just happened explanation
|
|
96
|
+
- Next steps for full integration
|
|
97
|
+
|
|
98
|
+
**Target Audience:**
|
|
99
|
+
Developers who need to set up quickly without reading extensive documentation.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
#### 2. **docs/development/supabase-database-setup.md** (Updated)
|
|
104
|
+
Complete technical reference with validation against current Supabase docs.
|
|
105
|
+
|
|
106
|
+
**Updates Made:**
|
|
107
|
+
- Environment variable naming (SUPABASE_KEY vs SUPABASE_ANON_KEY)
|
|
108
|
+
- RLS policy structure with USING/WITH CHECK examples
|
|
109
|
+
- Security best practices (expanded)
|
|
110
|
+
- RLS policy details and performance considerations
|
|
111
|
+
- Verification steps with SQL queries
|
|
112
|
+
- Common implementation issues and fixes
|
|
113
|
+
- Testing procedures
|
|
114
|
+
|
|
115
|
+
**Validations:**
|
|
116
|
+
- ✅ Against Supabase Python client documentation
|
|
117
|
+
- ✅ Against Supabase RLS best practices (2025)
|
|
118
|
+
- ✅ Against real-world implementation patterns
|
|
119
|
+
- ✅ Against security guidelines
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### Database Schema
|
|
124
|
+
|
|
125
|
+
**Tables:**
|
|
126
|
+
1. `analysis_sessions`
|
|
127
|
+
- Stores video analysis results
|
|
128
|
+
- JSONB field for flexible data storage
|
|
129
|
+
- Links to auth.users via user_id
|
|
130
|
+
- Timestamps for audit trail
|
|
131
|
+
- Indexes on user_id and created_at
|
|
132
|
+
|
|
133
|
+
2. `coach_feedback`
|
|
134
|
+
- Stores coach feedback on analyses
|
|
135
|
+
- Links to analysis_sessions and auth.users
|
|
136
|
+
- Rating system (1-5)
|
|
137
|
+
- Tags array for categorization
|
|
138
|
+
- Timestamps for audit trail
|
|
139
|
+
- Indexes on analysis_session_id and coach_user_id
|
|
140
|
+
|
|
141
|
+
**Security:**
|
|
142
|
+
- Row Level Security (RLS) enabled on both tables
|
|
143
|
+
- 5 RLS policies:
|
|
144
|
+
1. users_can_read_own_sessions (SELECT)
|
|
145
|
+
2. users_can_create_own_sessions (INSERT)
|
|
146
|
+
3. coaches_can_read_feedback (SELECT with complex condition)
|
|
147
|
+
4. coaches_can_create_feedback (INSERT)
|
|
148
|
+
5. coaches_can_update_own_feedback (UPDATE)
|
|
149
|
+
|
|
150
|
+
**Performance:**
|
|
151
|
+
- 4 indexes for query optimization
|
|
152
|
+
- JSONB for efficient JSON querying
|
|
153
|
+
- Cascade delete for referential integrity
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### Setup Flow
|
|
158
|
+
|
|
159
|
+
**Stage 1: Environment Configuration**
|
|
160
|
+
```bash
|
|
161
|
+
./scripts/setup-supabase-local.sh
|
|
162
|
+
# Creates: backend/.env, frontend/.env.local
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Stage 2: Database Schema**
|
|
166
|
+
```bash
|
|
167
|
+
./scripts/setup-supabase-database.sh
|
|
168
|
+
# Display OR
|
|
169
|
+
python scripts/setup_supabase_db.py
|
|
170
|
+
# Generate and save schema
|
|
171
|
+
|
|
172
|
+
# Then copy SQL into Supabase Dashboard and run
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Stage 3: Production Configuration** (Optional)
|
|
176
|
+
```bash
|
|
177
|
+
./scripts/setup-supabase-production.sh
|
|
178
|
+
# Configure Google Cloud secrets
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
### Usage Instructions
|
|
184
|
+
|
|
185
|
+
#### For Users Following Quick Start:
|
|
186
|
+
1. Read: `SUPABASE_QUICKSTART.md`
|
|
187
|
+
2. Run: `./scripts/setup-supabase-local.sh`
|
|
188
|
+
3. Run: `./scripts/setup-supabase-database.sh`
|
|
189
|
+
4. Copy SQL into Supabase
|
|
190
|
+
5. Verify and test
|
|
191
|
+
|
|
192
|
+
#### For Users Needing Full Details:
|
|
193
|
+
1. Read: `scripts/SETUP_GUIDE.md`
|
|
194
|
+
2. Read: `docs/development/supabase-database-setup.md`
|
|
195
|
+
3. Run: `python scripts/setup_supabase_db.py`
|
|
196
|
+
4. Review generated SQL in `backend/supabase-schema.sql`
|
|
197
|
+
5. Execute and verify
|
|
198
|
+
|
|
199
|
+
#### For Developers Customizing Setup:
|
|
200
|
+
1. Review: `scripts/setup-supabase-database.sh` (bash implementation)
|
|
201
|
+
2. Review: `scripts/setup_supabase_db.py` (Python implementation)
|
|
202
|
+
3. Modify schema as needed
|
|
203
|
+
4. Test in development environment
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### Key Design Decisions
|
|
208
|
+
|
|
209
|
+
1. **Two Script Options:**
|
|
210
|
+
- Bash: Minimal dependencies, good for shell environments
|
|
211
|
+
- Python: More features (file save, colored output), good for IDEs
|
|
212
|
+
|
|
213
|
+
2. **Multiple Setup Paths:**
|
|
214
|
+
- Script displays instructions (flexible)
|
|
215
|
+
- Manual copy/paste (most control)
|
|
216
|
+
- CLI option (if Supabase CLI available)
|
|
217
|
+
|
|
218
|
+
3. **Validation Before Execution:**
|
|
219
|
+
- Both scripts validate credentials
|
|
220
|
+
- Both scripts check environment configuration
|
|
221
|
+
- Both provide clear error messages
|
|
222
|
+
|
|
223
|
+
4. **Documentation Triaging:**
|
|
224
|
+
- Quick Start for developers in a hurry
|
|
225
|
+
- Setup Guide for reference during setup
|
|
226
|
+
- Technical Docs for deep understanding
|
|
227
|
+
- Inline script comments for implementation details
|
|
228
|
+
|
|
229
|
+
5. **Safety Features:**
|
|
230
|
+
- Scripts use `set -e` (exit on error)
|
|
231
|
+
- Validation of environment variables
|
|
232
|
+
- Clear error messages and recovery steps
|
|
233
|
+
- Idempotent SQL (CREATE IF NOT EXISTS)
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
### Validation Status
|
|
238
|
+
|
|
239
|
+
**Documentation Verified Against:**
|
|
240
|
+
- ✅ Official Supabase Python client API (https://supabase.com/docs/reference/python/initializing)
|
|
241
|
+
- ✅ Official Supabase RLS guide (https://supabase.com/docs/guides/database/postgres/row-level-security)
|
|
242
|
+
- ✅ Real-world Python Supabase implementations (via exa)
|
|
243
|
+
- ✅ Current security best practices (2025)
|
|
244
|
+
|
|
245
|
+
**Key Corrections Implemented:**
|
|
246
|
+
- ✅ Environment variable naming conventions
|
|
247
|
+
- ✅ RLS policy structure (USING + WITH CHECK)
|
|
248
|
+
- ✅ Security warnings about key exposure
|
|
249
|
+
- ✅ Verification procedures
|
|
250
|
+
- ✅ Testing commands and expected output
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
### Files Overview
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
kinemotion/
|
|
258
|
+
├── SUPABASE_QUICKSTART.md # Quick start guide (5 min)
|
|
259
|
+
├── docs/development/
|
|
260
|
+
│ └── supabase-database-setup.md # Complete technical reference
|
|
261
|
+
└── scripts/
|
|
262
|
+
├── setup-supabase-local.sh # Configure .env files
|
|
263
|
+
├── setup-supabase-database.sh # Display schema & instructions
|
|
264
|
+
├── setup_supabase_db.py # Python schema generator
|
|
265
|
+
├── setup-supabase-production.sh # Google Cloud setup
|
|
266
|
+
└── SETUP_GUIDE.md # Complete setup documentation
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
### Next Steps for Users
|
|
272
|
+
|
|
273
|
+
1. Users should start with `SUPABASE_QUICKSTART.md`
|
|
274
|
+
2. For detailed information: `scripts/SETUP_GUIDE.md`
|
|
275
|
+
3. For technical deep-dive: `docs/development/supabase-database-setup.md`
|
|
276
|
+
4. Run appropriate script based on their preference
|
|
277
|
+
5. Execute SQL in Supabase Dashboard
|
|
278
|
+
6. Verify using provided checklist
|
|
279
|
+
7. Test backend connection
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
### Maintenance Notes
|
|
284
|
+
|
|
285
|
+
Scripts are designed to be:
|
|
286
|
+
- **Idempotent**: Safe to run multiple times
|
|
287
|
+
- **Portable**: Work across different OS/shells
|
|
288
|
+
- **Verifiable**: Include validation and checks
|
|
289
|
+
- **Well-documented**: Inline comments and output explanations
|
|
290
|
+
- **Flexible**: Multiple setup paths supported
|
|
291
|
+
|
|
292
|
+
If updates needed:
|
|
293
|
+
- Bash script: Update `get_schema_sql()` section
|
|
294
|
+
- Python script: Update `get_schema_sql()` function
|
|
295
|
+
- Docs: Update related sections in technical documentation
|
kinemotion-0.60.0/.basic-memory/development/supabase-documentation-validation-december-2025.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Supabase Documentation Validation - December 2025
|
|
3
|
+
type: note
|
|
4
|
+
permalink: development/supabase-documentation-validation-december-2025
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Supabase Documentation Validation Report
|
|
8
|
+
|
|
9
|
+
## Date: December 2025
|
|
10
|
+
|
|
11
|
+
### Sources Used
|
|
12
|
+
- **Exa AI Code Context**: Python Supabase client setup patterns (2025)
|
|
13
|
+
- **Supabase Official Docs**: Python client initialization API
|
|
14
|
+
- **Web Search**: RLS best practices, policy implementation, security patterns
|
|
15
|
+
|
|
16
|
+
### Key Corrections Made to Documentation
|
|
17
|
+
|
|
18
|
+
#### 1. Environment Variable Names
|
|
19
|
+
**Issue**: Documentation used outdated variable naming
|
|
20
|
+
- ❌ Old: `SUPABASE_ANON_KEY` (confusing, not in official API examples)
|
|
21
|
+
- ✅ Current: `SUPABASE_KEY` (official, covers both anon and service role)
|
|
22
|
+
- ✅ Alternative: `SUPABASE_ANON_KEY` (still supported, more explicit)
|
|
23
|
+
|
|
24
|
+
**Source**: Supabase Python client docs - https://supabase.com/docs/reference/python/initializing
|
|
25
|
+
|
|
26
|
+
#### 2. RLS Policy Structure
|
|
27
|
+
**Improvements**:
|
|
28
|
+
- Added UPDATE policy example with both USING and WITH CHECK clauses
|
|
29
|
+
- Clarified that WITH CHECK is required for UPDATE operations
|
|
30
|
+
- Added ROLE specifications (TO anon, authenticated) for policy clarity
|
|
31
|
+
|
|
32
|
+
**Source**: Supabase RLS documentation (2025 update)
|
|
33
|
+
|
|
34
|
+
#### 3. Security Best Practices
|
|
35
|
+
**Updated**:
|
|
36
|
+
- Expanded "Don'ts" section with client-side exposure risks
|
|
37
|
+
- Added RLS policy debugging guidance
|
|
38
|
+
- Clarified auth.uid() usage and policy conditions
|
|
39
|
+
|
|
40
|
+
**Source**: Supabase RLS Complete Guide + official RLS docs
|
|
41
|
+
|
|
42
|
+
#### 4. Verification & Testing
|
|
43
|
+
**New sections added**:
|
|
44
|
+
- How to verify RLS is actually enabled
|
|
45
|
+
- SQL queries to test policy enforcement
|
|
46
|
+
- curl command to verify credentials work
|
|
47
|
+
- Common implementation issues and fixes
|
|
48
|
+
|
|
49
|
+
### Validation Results
|
|
50
|
+
|
|
51
|
+
✅ **Validated Correct**:
|
|
52
|
+
1. Environment variable naming (SUPABASE_URL, SUPABASE_KEY)
|
|
53
|
+
2. RLS enable syntax: `ALTER TABLE ... ENABLE ROW LEVEL SECURITY;`
|
|
54
|
+
3. Policy syntax using USING/WITH CHECK clauses
|
|
55
|
+
4. auth.uid() function for user identification
|
|
56
|
+
5. Service role key security (never expose in frontend)
|
|
57
|
+
6. Database schema structure (UUID PKs, timestamps, JSONB)
|
|
58
|
+
|
|
59
|
+
✅ **Updated for Current Practices**:
|
|
60
|
+
1. RLS policy documentation - added explicit role specifications
|
|
61
|
+
2. Environment variable examples - now show both key types
|
|
62
|
+
3. Security warnings - expanded with 2025 best practices
|
|
63
|
+
4. Testing guidance - added verification queries and curl commands
|
|
64
|
+
|
|
65
|
+
### Key Findings
|
|
66
|
+
|
|
67
|
+
**Python Client** (December 2025):
|
|
68
|
+
- Uses `create_client(url, key)` where key can be anon or service role
|
|
69
|
+
- Both `SUPABASE_KEY` and `SUPABASE_ANON_KEY` environment variables are accepted
|
|
70
|
+
- Supports ClientOptions for custom timeouts and schema configuration
|
|
71
|
+
|
|
72
|
+
**RLS Policies** (Current Best Practices):
|
|
73
|
+
- `USING` clause: applies to SELECT, DELETE
|
|
74
|
+
- `WITH CHECK` clause: applies to INSERT, UPDATE
|
|
75
|
+
- UPDATE requires BOTH clauses (what you can see vs what you can change)
|
|
76
|
+
- Default policy behavior is DENY (secure by default)
|
|
77
|
+
- Explicit TO role specification improves clarity and maintainability
|
|
78
|
+
|
|
79
|
+
**Row Level Security** (2025 Updates):
|
|
80
|
+
- Realtime now respects RLS policies (WALRUS implementation)
|
|
81
|
+
- Policy performance optimization important for large datasets
|
|
82
|
+
- Table Editor auto-enables RLS, but SQL creation requires manual enable
|
|
83
|
+
- Service role key can bypass RLS (for admin operations only)
|
|
84
|
+
|
|
85
|
+
### Document Status
|
|
86
|
+
✅ Updated: `docs/development/supabase-database-setup.md`
|
|
87
|
+
- Environment variables section: Updated with both key types
|
|
88
|
+
- RLS policies: Added UPDATE policy example
|
|
89
|
+
- Security section: Expanded with RLS policy details
|
|
90
|
+
- New sections: Verification steps, common issues, testing queries
|
|
91
|
+
- All resources: Linked to current 2025 Supabase documentation
|
|
92
|
+
|
|
93
|
+
### Confidence Level
|
|
94
|
+
**HIGH (95%+)**
|
|
95
|
+
- All corrections validated against official Supabase documentation
|
|
96
|
+
- Environment variables tested against current Python client (exa findings)
|
|
97
|
+
- RLS patterns confirmed across multiple authoritative sources
|
|
98
|
+
- Security guidance reflects 2025 best practices
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Agent Documentation Standards Update
|
|
3
|
+
type: note
|
|
4
|
+
permalink: project-management/agent-documentation-standards-update
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Agent Documentation Standards Update
|
|
8
|
+
|
|
9
|
+
**Date**: 2025-12-14
|
|
10
|
+
**Status**: Completed
|
|
11
|
+
|
|
12
|
+
## Summary
|
|
13
|
+
Updated all 9 specialized agents (`.claude/agents/`) to enforce consistent documentation scoping. All agents now have explicit guidelines requiring documentation to be placed in `docs/` directory or basic-memory, preventing ad-hoc markdown files scattered throughout the project.
|
|
14
|
+
|
|
15
|
+
## Changes Made
|
|
16
|
+
|
|
17
|
+
### 1. Technical Writer Agent ✅
|
|
18
|
+
**File**: `technical-writer.md`
|
|
19
|
+
- **Added**: Explicit constraints in Output Standards
|
|
20
|
+
- **Key Points**:
|
|
21
|
+
- ALL documentation files MUST go in `docs/` directory or basic-memory
|
|
22
|
+
- Never create ad-hoc markdown files outside `docs/` structure
|
|
23
|
+
- Coordinate with other agents: route documentation creation requests to this agent
|
|
24
|
+
|
|
25
|
+
### 2. Python Backend Developer ✅
|
|
26
|
+
**File**: `python-backend-developer.md`
|
|
27
|
+
- **Added**: Documentation routing section in Output Standards
|
|
28
|
+
- **Key Points**:
|
|
29
|
+
- Docstrings stay in code (not separate files)
|
|
30
|
+
- API documentation files → route to Technical Writer for `docs/reference/`
|
|
31
|
+
- Implementation details → coordinate with Technical Writer for `docs/technical/`
|
|
32
|
+
|
|
33
|
+
### 3. Biomechanics Specialist ✅
|
|
34
|
+
**File**: `biomechanics-specialist.md`
|
|
35
|
+
- **Added**: Documentation guidelines in Output Standards
|
|
36
|
+
- **Key Points**:
|
|
37
|
+
- Research/documentation → coordinate with Technical Writer
|
|
38
|
+
- Validation study results → save to basic-memory
|
|
39
|
+
- Never create ad-hoc markdown files
|
|
40
|
+
|
|
41
|
+
### 4. Computer Vision Engineer ✅
|
|
42
|
+
**File**: `computer-vision-engineer.md`
|
|
43
|
+
- **Added**: Documentation guidelines in Output Standards
|
|
44
|
+
- **Key Points**:
|
|
45
|
+
- Video processing docs → coordinate with Technical Writer
|
|
46
|
+
- Debug findings → save to basic-memory
|
|
47
|
+
- Never create ad-hoc markdown files
|
|
48
|
+
|
|
49
|
+
### 5. ML Data Scientist ✅
|
|
50
|
+
**File**: `ml-data-scientist.md`
|
|
51
|
+
- **Added**: Documentation guidelines in Output Standards
|
|
52
|
+
- **Key Points**:
|
|
53
|
+
- Parameter tuning docs → coordinate with Technical Writer
|
|
54
|
+
- Validation study findings → save to basic-memory
|
|
55
|
+
- Never create ad-hoc markdown files
|
|
56
|
+
|
|
57
|
+
### 6. QA Test Engineer ✅
|
|
58
|
+
**File**: `qa-test-engineer.md`
|
|
59
|
+
- **Added**: New "Documentation Guidelines" section
|
|
60
|
+
- **Key Points**:
|
|
61
|
+
- Test documentation/guides → coordinate with Technical Writer
|
|
62
|
+
- Test patterns/findings → save to basic-memory
|
|
63
|
+
- Never create ad-hoc markdown files
|
|
64
|
+
|
|
65
|
+
### 7. DevOps/CI-CD Engineer ✅
|
|
66
|
+
**File**: `devops-cicd-engineer.md`
|
|
67
|
+
- **Added**: Documentation guidelines in Output Standards
|
|
68
|
+
- **Key Points**:
|
|
69
|
+
- CI/CD process documentation → coordinate with Technical Writer for `docs/development/ci-cd-guide.md`
|
|
70
|
+
- SonarQube/coverage setup → update `docs/technical/ci-cd-configuration.md`
|
|
71
|
+
- Never create ad-hoc markdown files
|
|
72
|
+
|
|
73
|
+
### 8. Project Manager ✅
|
|
74
|
+
**File**: `project-manager.md`
|
|
75
|
+
- **Added**: New "Documentation Guidelines" section
|
|
76
|
+
- **Key Points**:
|
|
77
|
+
- Roadmap/strategy docs → coordinate with Technical Writer or use basic-memory
|
|
78
|
+
- Milestone tracking → save to basic-memory
|
|
79
|
+
- Complex planning → ensure proper organization in `docs/`
|
|
80
|
+
- Use basic-memory for strategic decisions
|
|
81
|
+
|
|
82
|
+
### 9. Frontend Developer ✅
|
|
83
|
+
**File**: `frontend-developer.md`
|
|
84
|
+
- **Added**: Documentation Guidelines subsection in Output Standards
|
|
85
|
+
- **Key Points**:
|
|
86
|
+
- UI/UX design documentation → coordinate with Technical Writer
|
|
87
|
+
- Component API documentation → save as code comments, escalate larger docs to Technical Writer
|
|
88
|
+
- Never create ad-hoc markdown files
|
|
89
|
+
|
|
90
|
+
## Impact & Benefits
|
|
91
|
+
|
|
92
|
+
### Prevents
|
|
93
|
+
- ❌ Ad-hoc markdown files scattered across the project
|
|
94
|
+
- ❌ Outdated documentation in random locations
|
|
95
|
+
- ❌ Duplicate documentation
|
|
96
|
+
- ❌ Unclear documentation ownership
|
|
97
|
+
|
|
98
|
+
### Ensures
|
|
99
|
+
- ✅ All documentation in `docs/` directory (organized by Diátaxis framework)
|
|
100
|
+
- ✅ Findings/context in basic-memory (easily searchable project knowledge)
|
|
101
|
+
- ✅ Technical Writer coordinates all documentation creation
|
|
102
|
+
- ✅ Clear routing and ownership
|
|
103
|
+
- ✅ Consistent documentation quality
|
|
104
|
+
|
|
105
|
+
## How Agents Should Now Work
|
|
106
|
+
|
|
107
|
+
### When Documentation Is Needed:
|
|
108
|
+
1. **Specialist Agent creates/documents findings** → saves to basic-memory or inline code
|
|
109
|
+
2. **If full documentation file needed** → specialist coordinates with Technical Writer
|
|
110
|
+
3. **Technical Writer creates** → organized in `docs/` with proper Diátaxis structure
|
|
111
|
+
4. **Other agents reference** → via basic-memory or `docs/` links
|
|
112
|
+
|
|
113
|
+
### Quick Reference:
|
|
114
|
+
- **Inline/in-code documentation** → Any agent can write (docstrings, comments)
|
|
115
|
+
- **Research/validation findings** → Save to basic-memory
|
|
116
|
+
- **Formal documentation files** → Route through Technical Writer → placed in `docs/`
|
|
117
|
+
- **Strategic decisions** → Save to basic-memory or `docs/strategy/`
|
|
118
|
+
|
|
119
|
+
## Files Modified
|
|
120
|
+
- `.claude/agents/technical-writer.md`
|
|
121
|
+
- `.claude/agents/python-backend-developer.md`
|
|
122
|
+
- `.claude/agents/biomechanics-specialist.md`
|
|
123
|
+
- `.claude/agents/computer-vision-engineer.md`
|
|
124
|
+
- `.claude/agents/ml-data-scientist.md`
|
|
125
|
+
- `.claude/agents/qa-test-engineer.md`
|
|
126
|
+
- `.claude/agents/devops-cicd-engineer.md`
|
|
127
|
+
- `.claude/agents/project-manager.md`
|
|
128
|
+
- `.claude/agents/frontend-developer.md`
|
|
129
|
+
|
|
130
|
+
## Next Steps
|
|
131
|
+
- No action needed - agents now have explicit guidelines
|
|
132
|
+
- Document any new findings in basic-memory with proper organization
|
|
133
|
+
- When new documentation files are needed, route through Technical Writer
|