kinemotion 0.58.0__tar.gz → 0.59.1__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.

Files changed (573) hide show
  1. kinemotion-0.59.1/.basic-memory/development/i18n-implementation-plan-for-validation-messages.md +102 -0
  2. kinemotion-0.59.1/.basic-memory/project-management/i18n-documentation-cleanup-completed.md +102 -0
  3. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/settings.local.json +6 -2
  4. {kinemotion-0.58.0 → kinemotion-0.59.1}/.gitignore +1 -0
  5. {kinemotion-0.58.0 → kinemotion-0.59.1}/CHANGELOG.md +12 -0
  6. {kinemotion-0.58.0 → kinemotion-0.59.1}/PKG-INFO +1 -1
  7. kinemotion-0.59.1/docs/development/I18N-README.md +327 -0
  8. kinemotion-0.59.1/docs/development/i18n-architecture-diagram.md +455 -0
  9. kinemotion-0.59.1/docs/development/i18n-cheat-sheet.md +379 -0
  10. kinemotion-0.59.1/docs/development/i18n-quick-start-guide.md +753 -0
  11. kinemotion-0.59.1/docs/development/i18n-summary.md +343 -0
  12. kinemotion-0.59.1/docs/development/i18n-validation-messages-specification.md +819 -0
  13. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/package.json +3 -1
  14. kinemotion-0.59.1/frontend/src/App.i18n.integration.test.tsx +211 -0
  15. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/App.tsx +9 -5
  16. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ErrorDisplay.tsx +13 -9
  17. kinemotion-0.59.1/frontend/src/components/LanguageSwitcher.css +43 -0
  18. kinemotion-0.59.1/frontend/src/components/LanguageSwitcher.test.tsx +169 -0
  19. kinemotion-0.59.1/frontend/src/components/LanguageSwitcher.tsx +31 -0
  20. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ResultsDisplay.tsx +37 -35
  21. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/UploadForm.test.tsx +2 -2
  22. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/UploadForm.tsx +16 -14
  23. kinemotion-0.59.1/frontend/src/hooks/useLanguage.test.ts +186 -0
  24. kinemotion-0.59.1/frontend/src/hooks/useLanguage.ts +35 -0
  25. kinemotion-0.59.1/frontend/src/i18n/config.ts +44 -0
  26. kinemotion-0.59.1/frontend/src/i18n/locales/en/translation.json +186 -0
  27. kinemotion-0.59.1/frontend/src/i18n/locales/es/translation.json +186 -0
  28. kinemotion-0.59.1/frontend/src/i18n/locales/fr/translation.json +186 -0
  29. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/main.tsx +1 -0
  30. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/test/setup.ts +25 -0
  31. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/yarn.lock +46 -1
  32. {kinemotion-0.58.0 → kinemotion-0.59.1}/pyproject.toml +2 -2
  33. {kinemotion-0.58.0 → kinemotion-0.59.1}/uv.lock +1 -1
  34. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/README.md +0 -0
  35. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/api/api-reference-quick-commands.md +0 -0
  36. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/api/cloud-run-cpu-specifications-investigation.md +0 -0
  37. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/api/supabase-authentication-setup-guide.md +0 -0
  38. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/auth-provider-comparison-december-2025.md +0 -0
  39. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/auth-providers-comparison-december-2025.md +0 -0
  40. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-authentication-quick-start.md +0 -0
  41. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-authentication-setup-guide.md +0 -0
  42. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-authentication-technical-guide.md +0 -0
  43. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-google-oauth-setup-guide.md +0 -0
  44. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-production-setup-guide.md +0 -0
  45. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-quick-start-guide.md +0 -0
  46. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/camera-angle-empirical-validation-results-45-superior-for-media-pipe.md +0 -0
  47. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/camera-perspective-analysis-45deg-vs-lateral.md +0 -0
  48. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/cmj-landing-detection-window-validation.md +0 -0
  49. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/cmj-physiological-bounds-for-validation.md +0 -0
  50. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/cmj-validation-implementation-complete.md +0 -0
  51. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/drop-jump-vs-cmj-key-differences.md +0 -0
  52. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/technical-implementation-45deg-perspective-correction.md +0 -0
  53. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/codebase-architecture-overview.md +0 -0
  54. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/validation-architecture-visual-hierarchy-after-refactoring.md +0 -0
  55. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/validation-code-duplication-evidence.md +0 -0
  56. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/validation-module-architecture-analysis.md +0 -0
  57. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/validation-refactoring-complete-architecture-improvement.md +0 -0
  58. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/automated-deployment-setup-git-hub-actions-with-workload-identity-federation.md +0 -0
  59. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/backend-repository-split-migration-guide.md +0 -0
  60. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/backend-repository-split-step-by-step-execution-guide.md +0 -0
  61. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/cloud-run-security-least-privilege-service-account-setup.md +0 -0
  62. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/cors-and-memory-issues-production-debugging-guide.md +0 -0
  63. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/current-kinemotion-architecture-correct-deployment-setup.md +0 -0
  64. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/frontend-repository-split-migration-guide.md +0 -0
  65. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/frontend-repository-split-step-by-step-execution-guide.md +0 -0
  66. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/production-deployment-guide-vercel-google-cloud-run.md +0 -0
  67. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/quick-deployment-commands-vercel-and-cloud-run.md +0 -0
  68. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/vercel-monorepo-deployment-best-practice.md +0 -0
  69. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/athlete-pose3d-and-cross-platform-determinism-investigation-complete.md +0 -0
  70. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/athlete-pose3d-final-strategy-accuracy-and-robustness.md +0 -0
  71. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/athlete-pose3d-media-pipe-enhancement-plan.md +0 -0
  72. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/athlete-pose3d-phase-1-implementation-complete.md +0 -0
  73. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-authentication-and-logging-status.md +0 -0
  74. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-code-coverage-analysis.md +0 -0
  75. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-code-duplication-analysis.md +0 -0
  76. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-granular-logging-implementation.md +0 -0
  77. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-kinemotion-decoupling-strategy.md +0 -0
  78. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-sonar-cloud-integration-status.md +0 -0
  79. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/basic-memory-naming-hook-analysis.md +0 -0
  80. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/ci-caching-issue-investigation-deep-squat-test-failure.md +0 -0
  81. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/ci-vs-local-test-failure-investigation.md +0 -0
  82. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/claude-code-hook-configuration.md +0 -0
  83. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/cmj-phase-detection-testing-gap-analysis.md +0 -0
  84. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/commit-review-r2-video-storage-migration-fe74d1f.md +0 -0
  85. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/comprehensive-timing-instrumentation.md +0 -0
  86. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/cross-platform-determinism-analysis-final-results.md +0 -0
  87. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/development-standards-quality-gates.md +0 -0
  88. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/drop-jump-detection-complete-fix-all-metrics-within-target.md +0 -0
  89. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/drop-jump-detection-failure-analysis-per-video-breakdown.md +0 -0
  90. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/drop-jump-fix-drop-start-successful-landing-and-takeoff-remain.md +0 -0
  91. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/fast-api-app.py Refactoring Plan - Modular Architecture.md +0 -0
  92. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/fast-api-refactoring-completion-summary.md +0 -0
  93. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/feature-request-system-configuration.md +0 -0
  94. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/follow-up-improvements-to-r2-video-storage-migration.md +0 -0
  95. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/frontend-dependencies-analysis-nov-2025.md +0 -0
  96. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/google-oauth-setup-script-final-review-production-ready.md +0 -0
  97. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/google-oauth-setup-script-review-issues-and-recommendations.md +0 -0
  98. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/hook-complete-audit-summary.md +0 -0
  99. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/hook-configuration-audit.md +0 -0
  100. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/hook-quick-reference.md +0 -0
  101. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/keyboard-interrupt-test-suite-failure-analysis.md +0 -0
  102. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/model-import-conflict-resolution-fast-api-refactoring.md +0 -0
  103. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/non-deterministic-analysis-root-cause-and-solution.md +0 -0
  104. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/optimal-timing-implementation-summary.md +0 -0
  105. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/p0-p1-p2-test-suite-fixes-final-report.md +0 -0
  106. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/pose-detection-baseline-evaluation-results.md +0 -0
  107. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/pose-detection-optimization-complete-success-summary.md +0 -0
  108. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/pose-detection-parameter-optimization-framework.md +0 -0
  109. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/structured-logging-implementation-complete.md +0 -0
  110. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/structured-logging-implementation.md +0 -0
  111. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/supabase-dashboard-navigation-december-2025.md +0 -0
  112. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/supabase-database-integration-setup.md +0 -0
  113. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-coverage-asymmetry-analysis-cmj-vs-drop-jump.md +0 -0
  114. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-coverage-equivalence-achievement-summary.md +0 -0
  115. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-suite-comprehensive-review-december-2025.md +0 -0
  116. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-suite-comprehensive-review-structure-and-gaps.md +0 -0
  117. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-suite-p0-p1-p2-fixes-complete-report.md +0 -0
  118. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-suite-p0-p1-p2-fixes-progress-report.md +0 -0
  119. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/unused-and-experimental-features-strategy.md +0 -0
  120. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/unused-code-detection-prompt-template.md +0 -0
  121. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/unused-code-identification-and-decorator-application-december-2025.md +0 -0
  122. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/unused-code-verification-final-pass-december-2025.md +0 -0
  123. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/using-multiple-mcp-reasoning-servers-simultaneously.md +0 -0
  124. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/velocity-threshold-empirical-validation-study.md +0 -0
  125. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/vercel-authentication-options-for-user-id-tracking.md +0 -0
  126. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/documentation-audit-december-2025.md +0 -0
  127. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/issue-12-mvp-scaffolding-complete.md +0 -0
  128. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/issue-12-unblocked-tasks-breakdown.md +0 -0
  129. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/issue-12-use-real-metrics-now.md +0 -0
  130. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/kinemotion-project-setup-complete.md +0 -0
  131. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/kinemotion-supabase-production-configuration.md +0 -0
  132. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/mcp-sequential-thinking-alternatives-analysis.md +0 -0
  133. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/performance-optimization-pose-tracker-pool-timing-instrumentation-complete.md +0 -0
  134. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/project-state-summary-december-2025.md +0 -0
  135. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/specialized-subagents-routing-guide.md +0 -0
  136. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/supabase-setup-instructions-for-kinemotion.md +0 -0
  137. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/version-mismatch-analysis-kinemotion-0370-vs-0300.md +0 -0
  138. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/deployment-decision-analysis-for-kinemotion.md +0 -0
  139. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/mvp-feedback-collection-plan.md +0 -0
  140. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/mvp-first-strategic-direction.md +0 -0
  141. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/mvp-validation-checkpoints.md +0 -0
  142. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/pose2sim-migration-evaluation-and-strategy.md +0 -0
  143. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/strategic-priority-tasks-current-roadmap.md +0 -0
  144. {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/third-party-auth-providers-with-free-tiers-december-2025.md +0 -0
  145. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/biomechanics-specialist.md +0 -0
  146. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/computer-vision-engineer.md +0 -0
  147. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/devops-cicd-engineer.md +0 -0
  148. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/frontend-developer.md +0 -0
  149. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/ml-data-scientist.md +0 -0
  150. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/project-manager.md +0 -0
  151. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/python-backend-developer.md +0 -0
  152. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/qa-test-engineer.md +0 -0
  153. {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/technical-writer.md +0 -0
  154. {kinemotion-0.58.0 → kinemotion-0.59.1}/.cursor/mcp.json +0 -0
  155. {kinemotion-0.58.0 → kinemotion-0.59.1}/.dockerignore +0 -0
  156. {kinemotion-0.58.0 → kinemotion-0.59.1}/.envrc +0 -0
  157. {kinemotion-0.58.0 → kinemotion-0.59.1}/.gitattributes +0 -0
  158. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  159. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  160. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  161. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/dependabot.yml +0 -0
  162. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/pull_request_template.md +0 -0
  163. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/workflows/deploy-backend.yml +0 -0
  164. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/workflows/docs.yml +0 -0
  165. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/workflows/release.yml +0 -0
  166. {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/workflows/test.yml +0 -0
  167. {kinemotion-0.58.0 → kinemotion-0.59.1}/.mcp.json +0 -0
  168. {kinemotion-0.58.0 → kinemotion-0.59.1}/.pre-commit-config.yaml +0 -0
  169. {kinemotion-0.58.0 → kinemotion-0.59.1}/.readthedocs.yml +0 -0
  170. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/.gitignore +0 -0
  171. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/backend-cors-fastapi-middleware-order.md +0 -0
  172. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/camera-perspective-validation-study.md +0 -0
  173. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/code_style_and_conventions.md +0 -0
  174. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/current-project-architecture.md +0 -0
  175. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/deployment-checklist-and-known-issues.md +0 -0
  176. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/deployment-setup-complete.md +0 -0
  177. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/github-project-setup-summary.md +0 -0
  178. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/mvp-first-strategy.md +0 -0
  179. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/mvp-roadmap-and-priorities.md +0 -0
  180. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/project_overview.md +0 -0
  181. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/specialist-agents-routing.md +0 -0
  182. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/suggested_commands.md +0 -0
  183. {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/project.yml +0 -0
  184. {kinemotion-0.58.0 → kinemotion-0.59.1}/.tool-versions +0 -0
  185. {kinemotion-0.58.0 → kinemotion-0.59.1}/.vercelignore +0 -0
  186. {kinemotion-0.58.0 → kinemotion-0.59.1}/CLAUDE.md +0 -0
  187. {kinemotion-0.58.0 → kinemotion-0.59.1}/CODE_OF_CONDUCT.md +0 -0
  188. {kinemotion-0.58.0 → kinemotion-0.59.1}/CONTRIBUTING.md +0 -0
  189. {kinemotion-0.58.0 → kinemotion-0.59.1}/Dockerfile +0 -0
  190. {kinemotion-0.58.0 → kinemotion-0.59.1}/GEMINI.md +0 -0
  191. {kinemotion-0.58.0 → kinemotion-0.59.1}/LICENSE +0 -0
  192. {kinemotion-0.58.0 → kinemotion-0.59.1}/README.md +0 -0
  193. {kinemotion-0.58.0 → kinemotion-0.59.1}/SECURITY.md +0 -0
  194. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/.coveragerc +0 -0
  195. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/.dockerignore +0 -0
  196. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/.env.example +0 -0
  197. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/Dockerfile +0 -0
  198. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/README.md +0 -0
  199. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/docs/fly-deployment.md +0 -0
  200. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/docs/implementation-summary.md +0 -0
  201. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/docs/setup.md +0 -0
  202. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/docs/tests.md +0 -0
  203. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/pyproject.toml +0 -0
  204. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/__init__.py +0 -0
  205. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/analysis_api.py +0 -0
  206. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/__init__.py +0 -0
  207. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/config.py +0 -0
  208. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/dependencies.py +0 -0
  209. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/exceptions.py +0 -0
  210. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/main.py +0 -0
  211. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app.py +0 -0
  212. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/auth.py +0 -0
  213. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/database.py +0 -0
  214. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/logging_config.py +0 -0
  215. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/middleware.py +0 -0
  216. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/models/__init__.py +0 -0
  217. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/models/database.py +0 -0
  218. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/models/responses.py +0 -0
  219. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/models/storage.py +0 -0
  220. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/__init__.py +0 -0
  221. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/analysis.py +0 -0
  222. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/database.py +0 -0
  223. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/health.py +0 -0
  224. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/platform.py +0 -0
  225. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/__init__.py +0 -0
  226. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/analysis_service.py +0 -0
  227. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/storage_service.py +0 -0
  228. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/validation.py +0 -0
  229. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/video_processor.py +0 -0
  230. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/types.py +0 -0
  231. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/utils/__init__.py +0 -0
  232. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/utils/rate_limiter.py +0 -0
  233. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/supabase-schema.sql +0 -0
  234. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/README.md +0 -0
  235. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/__init__.py +0 -0
  236. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/conftest.py +0 -0
  237. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_api_endpoints.py +0 -0
  238. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_error_handling.py +0 -0
  239. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_health.py +0 -0
  240. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_r2_integration.py +0 -0
  241. {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_validation.py +0 -0
  242. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/README.md +0 -0
  243. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/api/cmj.md +0 -0
  244. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/api/core.md +0 -0
  245. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/api/dropjump.md +0 -0
  246. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/api/overview.md +0 -0
  247. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/agents-guide.md +0 -0
  248. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/errors-findings.md +0 -0
  249. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/feature-request-system.md +0 -0
  250. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/feedback-system-setup.md +0 -0
  251. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/test-suite-review-december-2025.md +0 -0
  252. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/testing-standards.md +0 -0
  253. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/testing.md +0 -0
  254. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/type-hints.md +0 -0
  255. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/validation-plan.md +0 -0
  256. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/validation-roadmap.md +0 -0
  257. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/wallball-norep-detection.md +0 -0
  258. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/bulk-processing.md +0 -0
  259. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/camera-setup.md +0 -0
  260. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/cloud-run-deployment.md +0 -0
  261. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/cmj-guide.md +0 -0
  262. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/cmj-recording-protocol-es.md +0 -0
  263. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/cmj-recording-protocol.md +0 -0
  264. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/deployment-checklist.md +0 -0
  265. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/local-testing.md +0 -0
  266. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/setup-issue-12.md +0 -0
  267. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/index.md +0 -0
  268. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/quick-start.md +0 -0
  269. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/cloud-run-quick-reference.md +0 -0
  270. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/json-output-format.md +0 -0
  271. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/json-structure-comparison.md +0 -0
  272. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/parameters.md +0 -0
  273. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/pose-systems.md +0 -0
  274. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/HOW-TO-FIND-DOIS.md +0 -0
  275. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/README.md +0 -0
  276. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/dois.txt +0 -0
  277. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/download.py +0 -0
  278. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/pyproject.toml +0 -0
  279. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/uv.lock +0 -0
  280. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
  281. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/MANUAL-DOWNLOAD-GUIDE.md +0 -0
  282. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/README.md +0 -0
  283. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/convert_pdfs.py +0 -0
  284. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.md +0 -0
  285. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.md +0 -0
  286. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.md +0 -0
  287. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.md +0 -0
  288. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Ward_Putting-i-in-Team.md +0 -0
  289. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.md +0 -0
  290. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.md +0 -0
  291. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.md +0 -0
  292. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.md +0 -0
  293. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.md +0 -0
  294. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.md +0 -0
  295. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.md +0 -0
  296. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.md +0 -0
  297. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.md +0 -0
  298. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.md +0 -0
  299. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.md +0 -0
  300. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.md +0 -0
  301. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.md +0 -0
  302. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2011_Harper_10-to-5-Jump-Test.md +0 -0
  303. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.md +0 -0
  304. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2014_Samozino_FV-Imbalance.md +0 -0
  305. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.md +0 -0
  306. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.md +0 -0
  307. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.md +0 -0
  308. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2022_Wells_Golf-Clubhead-CMJ.md +0 -0
  309. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.md +0 -0
  310. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.md +0 -0
  311. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.md +0 -0
  312. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2016_Moore_Economical-Running-Technique.md +0 -0
  313. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.md +0 -0
  314. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.md +0 -0
  315. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.md +0 -0
  316. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.md +0 -0
  317. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.md +0 -0
  318. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/smartphone-technology/2022_Bishop_MyJumpLab-Validation.md +0 -0
  319. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.md +0 -0
  320. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.md +0 -0
  321. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.md +0 -0
  322. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.md +0 -0
  323. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.md +0 -0
  324. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.md +0 -0
  325. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/online-references-for-papers.md +0 -0
  326. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.pdf +0 -0
  327. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.pdf +0 -0
  328. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.pdf +0 -0
  329. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.pdf +0 -0
  330. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Ward_Putting-i-in-Team.pdf +0 -0
  331. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.pdf +0 -0
  332. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.pdf +0 -0
  333. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.pdf +0 -0
  334. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.pdf +0 -0
  335. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.pdf +0 -0
  336. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.pdf +0 -0
  337. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.pdf +0 -0
  338. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.pdf +0 -0
  339. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.pdf +0 -0
  340. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.pdf +0 -0
  341. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.pdf +0 -0
  342. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.pdf +0 -0
  343. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.pdf +0 -0
  344. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2011_Harper_10-to-5-Jump-Test.pdf +0 -0
  345. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.pdf +0 -0
  346. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2014_Samozino_FV-Imbalance.pdf +0 -0
  347. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.pdf +0 -0
  348. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.pdf +0 -0
  349. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.pdf +0 -0
  350. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2022_Wells_Golf-Clubhead-CMJ.pdf +0 -0
  351. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.pdf +0 -0
  352. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.pdf +0 -0
  353. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.pdf +0 -0
  354. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Moore_Economical-Running-Technique.pdf +0 -0
  355. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.pdf +0 -0
  356. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.pdf +0 -0
  357. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.pdf +0 -0
  358. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.pdf +0 -0
  359. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.pdf +0 -0
  360. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/smartphone-technology/2022_Bishop_MyJumpLab-Validation.pdf +0 -0
  361. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.pdf +0 -0
  362. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.pdf +0 -0
  363. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.pdf +0 -0
  364. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.pdf +0 -0
  365. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.pdf +0 -0
  366. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.pdf +0 -0
  367. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/1-STRATEGIC_SUMMARY.md +0 -0
  368. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/2-STRATEGIC_ANALYSIS.md +0 -0
  369. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/MVP_FEEDBACK_COLLECTION.md +0 -0
  370. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/MVP_VALIDATION_CHECKPOINTS.md +0 -0
  371. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/README.md +0 -0
  372. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/STYLE_GUIDE.md +0 -0
  373. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/01-executive-summary.md +0 -0
  374. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/02-technical-assessment.md +0 -0
  375. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/03-refactoring-roadmap.md +0 -0
  376. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/README.md +0 -0
  377. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BIOMECHANICS/01-executive-summary.md +0 -0
  378. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BIOMECHANICS/02-technical-assessment.md +0 -0
  379. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BIOMECHANICS/03-reference-guide.md +0 -0
  380. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BIOMECHANICS/README.md +0 -0
  381. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/COMPUTER_VISION/01-executive-summary.md +0 -0
  382. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/COMPUTER_VISION/02-real-time-architecture.md +0 -0
  383. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/COMPUTER_VISION/03-implementation-checklist.md +0 -0
  384. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/COMPUTER_VISION/README.md +0 -0
  385. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/01-agent-consensus.md +0 -0
  386. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/02-critical-findings.md +0 -0
  387. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/03-roadmap-adjustments.md +0 -0
  388. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/04-decision-points.md +0 -0
  389. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/README.md +0 -0
  390. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/risk-register.md +0 -0
  391. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/timeline-roadmap.md +0 -0
  392. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/DEVOPS_CI_CD/01-executive-summary.md +0 -0
  393. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/DEVOPS_CI_CD/02-infrastructure-assessment.md +0 -0
  394. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/DEVOPS_CI_CD/03-implementation-roadmap.md +0 -0
  395. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/DEVOPS_CI_CD/README.md +0 -0
  396. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/01-executive-summary.md +0 -0
  397. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/02-technical-assessment.md +0 -0
  398. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/03-parameter-specifications.md +0 -0
  399. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/README.md +0 -0
  400. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/QA_TESTING/01-executive-summary.md +0 -0
  401. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/QA_TESTING/02-roadmap-assessment.md +0 -0
  402. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/QA_TESTING/03-testing-checklists.md +0 -0
  403. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/QA_TESTING/README.md +0 -0
  404. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/TECHNICAL_WRITING/01-executive-summary.md +0 -0
  405. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/TECHNICAL_WRITING/02-documentation-strategy.md +0 -0
  406. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/TECHNICAL_WRITING/03-action-plan.md +0 -0
  407. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/TECHNICAL_WRITING/README.md +0 -0
  408. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/pose2sim-migration-evaluation.md +0 -0
  409. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/framerate.md +0 -0
  410. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/implementation-details.md +0 -0
  411. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/imu-metadata.md +0 -0
  412. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/real-time-analysis.md +0 -0
  413. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/triple-extension.md +0 -0
  414. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/translations/es/camera-setup.md +0 -0
  415. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/validation/determinism-test.md +0 -0
  416. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/validation/known-height-validation.md +0 -0
  417. {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/validation-status.md +0 -0
  418. {kinemotion-0.58.0 → kinemotion-0.59.1}/examples/bulk/README.md +0 -0
  419. {kinemotion-0.58.0 → kinemotion-0.59.1}/examples/bulk/bulk_processing.py +0 -0
  420. {kinemotion-0.58.0 → kinemotion-0.59.1}/examples/bulk/simple_example.py +0 -0
  421. {kinemotion-0.58.0 → kinemotion-0.59.1}/examples/programmatic_usage.py +0 -0
  422. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.editorconfig +0 -0
  423. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.env.example +0 -0
  424. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.gitattributes +0 -0
  425. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.gitignore +0 -0
  426. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.yarn/releases/yarn-4.12.0.cjs +0 -0
  427. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.yarnrc.yml +0 -0
  428. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/README.md +0 -0
  429. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/index.html +0 -0
  430. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/App.test.tsx +0 -0
  431. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/Auth.tsx +0 -0
  432. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ErrorBoundary.tsx +0 -0
  433. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/FeatureRequestButton.tsx +0 -0
  434. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/FeedbackForm.css +0 -0
  435. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/FeedbackForm.tsx +0 -0
  436. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/LoadingSpinner.tsx +0 -0
  437. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/RecentUploads.tsx +0 -0
  438. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ResultsDisplay.test.tsx +0 -0
  439. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ResultsSkeleton.tsx +0 -0
  440. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/config/links.ts +0 -0
  441. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useAnalysis.test.ts +0 -0
  442. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useAnalysis.ts +0 -0
  443. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useAuth.ts +0 -0
  444. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useBackendVersion.ts +0 -0
  445. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useDatabaseStatus.ts +0 -0
  446. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useRecentUploads.ts +0 -0
  447. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/index.css +0 -0
  448. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/lib/supabase.ts +0 -0
  449. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/types/api.ts +0 -0
  450. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/vite-env.d.ts +0 -0
  451. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/vercel.json +0 -0
  452. {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/vite.config.ts +0 -0
  453. {kinemotion-0.58.0 → kinemotion-0.59.1}/justfile +0 -0
  454. {kinemotion-0.58.0 → kinemotion-0.59.1}/local_dev.sh +0 -0
  455. {kinemotion-0.58.0 → kinemotion-0.59.1}/mkdocs.yml +0 -0
  456. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/.gitignore +0 -0
  457. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/README.md +0 -0
  458. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/.gitignore +0 -0
  459. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/README.md +0 -0
  460. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/api_demo.ipynb +0 -0
  461. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/batch_processing_demo.py +0 -0
  462. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/sample_data/.gitkeep +0 -0
  463. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/presentation_guide.md +0 -0
  464. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/revealjs/.gitignore +0 -0
  465. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/revealjs/Makefile +0 -0
  466. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/revealjs/README.md +0 -0
  467. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/revealjs/slides.md +0 -0
  468. {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/speaker_script.md +0 -0
  469. {kinemotion-0.58.0 → kinemotion-0.59.1}/requirements-docs.txt +0 -0
  470. {kinemotion-0.58.0 → kinemotion-0.59.1}/samples/cmjs/README.md +0 -0
  471. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/README.md +0 -0
  472. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/SCRIPTS_QUICKREF.md +0 -0
  473. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/analyze_determinism_variance.py +0 -0
  474. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/basic-memory-utils.sh +0 -0
  475. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/debug_contact_states.py +0 -0
  476. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/debug_detection.py +0 -0
  477. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/find_unused_features.py +0 -0
  478. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/generate_test_data.py +0 -0
  479. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/optimize_detection_params.py +0 -0
  480. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/plot_cmj_velocities.py +0 -0
  481. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/plot_validation_results.py +0 -0
  482. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/plot_velocities.py +0 -0
  483. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/prepare_ground_truth.py +0 -0
  484. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/README.md +0 -0
  485. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/add-issue.sh +0 -0
  486. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/batch-set-fields.sh +0 -0
  487. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/helpers.sh +0 -0
  488. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/list.sh +0 -0
  489. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/set-field.sh +0 -0
  490. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/set-status.sh +0 -0
  491. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/summary.sh +0 -0
  492. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project.sh +0 -0
  493. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/setup-github-deploy.sh +0 -0
  494. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/setup-google-oauth.sh +0 -0
  495. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/setup-supabase-local.sh +0 -0
  496. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/setup-supabase-production.sh +0 -0
  497. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/test_acceleration_standing.py +0 -0
  498. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/test_determinism.sh +0 -0
  499. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/test_drop_start_debug.py +0 -0
  500. {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/validate_known_heights.py +0 -0
  501. {kinemotion-0.58.0 → kinemotion-0.59.1}/sonar-project.properties +0 -0
  502. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/__init__.py +0 -0
  503. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/api.py +0 -0
  504. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cli.py +0 -0
  505. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/__init__.py +0 -0
  506. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/analysis.py +0 -0
  507. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/api.py +0 -0
  508. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/cli.py +0 -0
  509. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/debug_overlay.py +0 -0
  510. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/joint_angles.py +0 -0
  511. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/kinematics.py +0 -0
  512. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/metrics_validator.py +0 -0
  513. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/validation_bounds.py +0 -0
  514. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/__init__.py +0 -0
  515. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/auto_tuning.py +0 -0
  516. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/cli_utils.py +0 -0
  517. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/debug_overlay_utils.py +0 -0
  518. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/determinism.py +0 -0
  519. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/experimental.py +0 -0
  520. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/filtering.py +0 -0
  521. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/formatting.py +0 -0
  522. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/metadata.py +0 -0
  523. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/pipeline_utils.py +0 -0
  524. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/pose.py +0 -0
  525. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/quality.py +0 -0
  526. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/smoothing.py +0 -0
  527. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/timing.py +0 -0
  528. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/validation.py +0 -0
  529. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/video_io.py +0 -0
  530. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/__init__.py +0 -0
  531. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/analysis.py +0 -0
  532. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/api.py +0 -0
  533. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/cli.py +0 -0
  534. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/debug_overlay.py +0 -0
  535. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/kinematics.py +0 -0
  536. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/metrics_validator.py +0 -0
  537. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/validation_bounds.py +0 -0
  538. {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/py.typed +0 -0
  539. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/__init__.py +0 -0
  540. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cli/__init__.py +0 -0
  541. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cli/test_cmj.py +0 -0
  542. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cli/test_dropjump.py +0 -0
  543. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cli/test_imports.py +0 -0
  544. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/__init__.py +0 -0
  545. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_analysis.py +0 -0
  546. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_api.py +0 -0
  547. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_cli.py +0 -0
  548. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_joint_angles.py +0 -0
  549. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_kinematics.py +0 -0
  550. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_physiological_bounds.py +0 -0
  551. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/conftest.py +0 -0
  552. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/__init__.py +0 -0
  553. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_auto_tuning.py +0 -0
  554. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_cli_utils.py +0 -0
  555. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_filtering.py +0 -0
  556. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_formatting.py +0 -0
  557. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_metadata.py +0 -0
  558. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_pipeline_utils.py +0 -0
  559. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_pose.py +0 -0
  560. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_quality.py +0 -0
  561. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_smoothing.py +0 -0
  562. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_timing.py +0 -0
  563. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_validation.py +0 -0
  564. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_video_io.py +0 -0
  565. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/__init__.py +0 -0
  566. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_adaptive_threshold.py +0 -0
  567. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_analysis.py +0 -0
  568. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_api.py +0 -0
  569. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_cli.py +0 -0
  570. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_contact_detection.py +0 -0
  571. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_kinematics.py +0 -0
  572. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_physiological_bounds.py +0 -0
  573. {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_validation_integration.py +0 -0
@@ -0,0 +1,102 @@
1
+ ---
2
+ title: i18n Implementation Plan for Validation Messages
3
+ type: note
4
+ permalink: development/i18n-implementation-plan-for-validation-messages
5
+ ---
6
+
7
+ # Internationalization (i18n) Implementation Plan for Validation Messages
8
+
9
+ ## Executive Summary
10
+
11
+ Implementing i18n for validation messages in the Kinemotion backend using **Option B: Structured Data + Frontend Translation** approach. This decouples the backend from translation logic and aligns with REST API best practices.
12
+
13
+ ## Current State Analysis
14
+
15
+ ### Validator Structure
16
+ - **Location**: `src/kinemotion/cmj/metrics_validator.py` and `src/kinemotion/dropjump/metrics_validator.py`
17
+ - **ValidationResult Flow**:
18
+ 1. Validators generate formatted messages: `"Flight time 0.600s within expected range for recreational"`
19
+ 2. Messages stored in `ValidationIssue` objects with metric, value, bounds, severity
20
+ 3. Sent to frontend via `CMJMetrics.validation_result` → `to_dict()`
21
+
22
+ ### Current Message Examples
23
+ ```python
24
+ # ERROR
25
+ result.add_error("flight_time", f"Flight time {flight_time:.3f}s below frame rate resolution limit")
26
+
27
+ # WARNING
28
+ result.add_warning("flight_time", f"Flight time {flight_time:.3f}s outside typical range [{min:.3f}-{max:.3f}]s for {profile}")
29
+
30
+ # INFO
31
+ result.add_info("flight_time", f"Flight time {flight_time:.3f}s within expected range for {profile}")
32
+ ```
33
+
34
+ ### Metrics with Validation Messages
35
+ **CMJ Validator** (16 validation methods):
36
+ - Multiple validation checks generating 30+ message variants
37
+
38
+ **Drop Jump Validator** (6 validation methods):
39
+ - Multiple validation checks generating 15+ message variants
40
+
41
+ ## Design: Structured Data Approach (Option B)
42
+
43
+ ### Why This Approach?
44
+ - Decouples backend from translation logic
45
+ - Stable API contract (language-independent)
46
+ - Frontend-only updates for new languages
47
+ - Follows REST API best practices
48
+ - Separates concerns: backend = validation logic, frontend = presentation/translation
49
+
50
+ ## New Validation Response Structure
51
+
52
+ **After (Proposed)**:
53
+ ```json
54
+ {
55
+ "status": "PASS_WITH_WARNINGS",
56
+ "issues": [
57
+ {
58
+ "severity": "warning",
59
+ "metric": "flight_time",
60
+ "message_key": "validation.flight_time.outside_range",
61
+ "value": 0.600,
62
+ "bounds": [0.400, 0.500],
63
+ "context": {
64
+ "min": 0.400,
65
+ "max": 0.500,
66
+ "profile": "recreational",
67
+ "unit": "s"
68
+ }
69
+ }
70
+ ],
71
+ "athlete_profile": "recreational"
72
+ }
73
+ ```
74
+
75
+ ## Message Key Naming Convention
76
+
77
+ Pattern: `validation.[metric].[condition]`
78
+
79
+ Examples:
80
+ - `validation.flight_time.within_range` - Value in expected range (INFO)
81
+ - `validation.flight_time.outside_range` - Value outside but physically possible (WARNING)
82
+ - `validation.flight_time.below_minimum` - Below frame rate resolution (ERROR)
83
+ - `validation.jump_height.no_jump` - Essentially no jump detected (ERROR)
84
+
85
+ ## Implementation Summary
86
+
87
+ ### Phase 1: Backend Changes
88
+ 1. Add `message_key` and `context` fields to `ValidationIssue`
89
+ 2. Update `add_error()`, `add_warning()`, `add_info()` methods
90
+ 3. Update all 22 validation methods in both validators
91
+ 4. Update `to_dict()` serialization
92
+
93
+ ### Phase 2: Frontend Changes
94
+ 1. Create translation files (en, es, fr, de, ja, etc.)
95
+ 2. Implement i18next or react-intl
96
+ 3. Update ValidationIssue component to use message_key + context
97
+ 4. Add language selection UI
98
+
99
+ ### Phase 3: Backward Compatibility
100
+ - Keep `message` field for old clients
101
+ - Message_key is optional
102
+ - Gradual migration over 2-3 releases
@@ -0,0 +1,102 @@
1
+ ---
2
+ title: i18n Documentation Cleanup - Completed
3
+ type: note
4
+ permalink: project-management/i18n-documentation-cleanup-completed
5
+ ---
6
+
7
+ # i18n Documentation Cleanup - Completed ✅
8
+
9
+ **Date**: December 14, 2024
10
+ **Status**: Complete with all tests passing (70/70)
11
+
12
+ ## What Was Cleaned Up
13
+
14
+ ### 1. Deleted Redundant Files (11 files)
15
+ **From frontend/ directory:**
16
+ - `I18N_ARCHITECTURE.md`
17
+ - `I18N_IMPLEMENTATION_GUIDE.md`
18
+ - `I18N_QUICK_START.md`
19
+ - `I18N_SUMMARY.md`
20
+ - `I18N_TESTING_GUIDE.md`
21
+ - `I18N-FEATURE-COMPLETE.md`
22
+ - `I18N-SETUP-COMPLETE.md`
23
+ - `I18N-TESTS-SUMMARY.md`
24
+ - `README_I18N.md`
25
+
26
+ **From project root:**
27
+ - `I18N_DELIVERABLES.md`
28
+ - `I18N_IMPLEMENTATION_SUMMARY.txt`
29
+
30
+ **Reason**: These were documentation artifacts from the implementation process. Information is redundant with actual code and source of truth.
31
+
32
+ ### 2. Retained & Clarified Documentation (6 files)
33
+ **Location**: `docs/development/i18n-*.md`
34
+
35
+ All files relate to **v0.60.0 future work** - backend internationalization of validation messages:
36
+ - `I18N-README.md` (updated with forward-looking notice)
37
+ - `i18n-summary.md`
38
+ - `i18n-quick-start-guide.md`
39
+ - `i18n-cheat-sheet.md`
40
+ - `i18n-architecture-diagram.md`
41
+ - `i18n-validation-messages-specification.md`
42
+
43
+ **Update Made**: Added warning header to `I18N-README.md` clarifying:
44
+ - These docs are for **v0.60.0 roadmap work** (backend message i18n)
45
+ - Current implementation (v0.58.0) frontend UI i18n is in actual source code
46
+ - Users should refer to `frontend/` components for current implementation
47
+
48
+ ### 3. Basic Memory Documentation
49
+ **Location**: `.basic-memory/development/i18n-implementation-plan-for-validation-messages.md`
50
+
51
+ This is properly placed and serves as internal reference material.
52
+
53
+ ## Current State
54
+
55
+ ### Frontend i18n (COMPLETED - v0.58.0)
56
+ ✅ Implementation files:
57
+ - `src/i18n/config.ts`
58
+ - `src/hooks/useLanguage.ts` & tests
59
+ - `src/components/LanguageSwitcher.tsx` & tests
60
+ - `src/i18n/locales/` - Translation files (en, es, fr)
61
+
62
+ ✅ All 70 tests passing:
63
+ - 7 test files
64
+ - 70 test functions
65
+ - Components, hooks, and integration tests
66
+
67
+ ### Backend i18n (PLANNED - v0.60.0)
68
+ 📋 Documentation in `docs/development/i18n-*.md`:
69
+ - Complete specification for adding i18n support to validation messages
70
+ - Step-by-step implementation guide
71
+ - Architecture diagrams
72
+ - Testing strategy
73
+
74
+ ## Verification Results
75
+
76
+ ```
77
+ Test Files 7 passed (7)
78
+ Tests 70 passed (70)
79
+ No broken imports or references
80
+ All existing tests unaffected
81
+ ```
82
+
83
+ ## Best Practices Applied
84
+
85
+ 1. **Single Source of Truth**: Documentation in `docs/` for future work, implementation in source code
86
+ 2. **Clear Separation**: Frontend (current) vs Backend (future) clearly distinguished
87
+ 3. **Reduced Clutter**: Removed process artifacts, kept reference material
88
+ 4. **Proper Organization**: Future work docs properly indexed with clear reading guides
89
+
90
+ ## Final Adjustments
91
+
92
+ ✅ Removed specific version references from future-work docs:
93
+ - Changed "v0.60.0" to generic descriptions ("minor version bump", "future release")
94
+ - Updated migration timeline to use phases instead of version numbers
95
+ - Changed deployment steps to use placeholders instead of specific tags
96
+ - This allows the docs to remain accurate regardless of when the feature is implemented
97
+
98
+ ## Next Steps
99
+
100
+ - When implementing backend i18n, follow guides in `docs/development/i18n-*.md`
101
+ - Update basic memory with progress on backend implementation
102
+ - Docs are version-agnostic and ready for future use
@@ -1,5 +1,9 @@
1
1
  {
2
2
  "includeCoAuthoredBy": false,
3
+ "attribution": {
4
+ "commit": "",
5
+ "pr": ""
6
+ },
3
7
  "permissions": {
4
8
  "allow": [
5
9
  "Bash(cat:*)",
@@ -22,7 +26,7 @@
22
26
  "WebFetch(domain:docs.sonarsource.com)",
23
27
  "WebFetch(domain:github.com)",
24
28
  "WebFetch(domain:pypi.org)",
25
- "WebFetch(domain:raw.githubusercontent.com)"
29
+ "WebFetch(domain:raw.githubusercontent.com)",
26
30
  "WebFetch(domain:realpython.com)",
27
31
  "WebFetch(domain:sonarcloud.io)",
28
32
  "WebFetch(domain:www.pyopensci.org)",
@@ -68,7 +72,7 @@
68
72
  "mcp__sonarqube__search_sonar_issues_in_projects",
69
73
  "mcp__sonarqube__show_rule",
70
74
  "mcp__web-search__freebird_fetch",
71
- "mcp__web-search__freebird_search",
75
+ "mcp__web-search__freebird_search"
72
76
  ]
73
77
  },
74
78
  "enableAllProjectMcpServers": true
@@ -59,6 +59,7 @@ coverage.xml
59
59
  !pyproject.toml
60
60
  !vercel.json
61
61
  !frontend/package.json
62
+ !frontend/src/i18n/locales/**/*.json
62
63
 
63
64
  # Documentation build output
64
65
  site/
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  <!-- version list -->
9
9
 
10
+ ## kinemotion-v0.59.1 (2025-12-15)
11
+
12
+ ### Fix
13
+
14
+ - add missing i18n translation JSON files to git
15
+
16
+ ## kinemotion-v0.59.0 (2025-12-15)
17
+
18
+ ### Feat
19
+
20
+ - add comprehensive frontend i18n support with 3 languages
21
+
10
22
  ## kinemotion-v0.58.0 (2025-12-14)
11
23
 
12
24
  ### Feat
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.58.0
3
+ Version: 0.59.1
4
4
  Summary: Video-based kinematic analysis for athletic performance
5
5
  Project-URL: Homepage, https://github.com/feniix/kinemotion
6
6
  Project-URL: Repository, https://github.com/feniix/kinemotion
@@ -0,0 +1,327 @@
1
+ # Internationalization (i18n) Implementation Guide
2
+
3
+ **⚠️ IMPORTANT**: This guide covers **future work** - internationalization of backend validation messages.
4
+
5
+ **Currently Completed**: Frontend UI i18n for user-facing strings (English, Spanish, French). See `frontend/` components for current implementation.
6
+
7
+ ______________________________________________________________________
8
+
9
+ ## Document Index
10
+
11
+ This documentation is for implementing **backend validation message i18n** (future roadmap item).
12
+
13
+ ### 1. **Summary** - Start Here
14
+
15
+ 📄 **File**: `i18n-summary.md`
16
+
17
+ **What to read**: Executive overview, implementation scope, timeline
18
+ **Time to read**: 10 minutes
19
+ **Key sections**:
20
+
21
+ - Why Option B (Structured Data) is recommended
22
+ - What gets implemented (backend + frontend)
23
+ - Implementation scope and effort estimate
24
+ - JSON response example
25
+ - Backward compatibility guarantee
26
+
27
+ **Best for**: Understanding the overall approach and getting buy-in from stakeholders
28
+
29
+ ______________________________________________________________________
30
+
31
+ ### 2. **Specification** - Complete Technical Reference
32
+
33
+ 📄 **File**: `i18n-validation-messages-specification.md`
34
+
35
+ **What to read**: Detailed technical specs, data models, implementation details
36
+ **Time to read**: 30-45 minutes
37
+ **Key sections**:
38
+
39
+ - Architecture decision rationale (Option A vs B)
40
+ - Data model changes (ValidationIssue, ValidationResult)
41
+ - Message key naming convention
42
+ - Backend implementation (step-by-step code changes)
43
+ - Frontend implementation (i18next setup, components)
44
+ - Testing strategy with code examples
45
+ - Migration checklist
46
+ - Complete message key reference
47
+
48
+ **Best for**: Developers implementing the feature, code reviewers, QA engineers
49
+
50
+ ______________________________________________________________________
51
+
52
+ ### 3. **Quick Start Guide** - Step-by-Step Implementation
53
+
54
+ 📄 **File**: `i18n-quick-start-guide.md`
55
+
56
+ **What to read**: Actionable implementation steps, code templates
57
+ **Time to read**: 20-30 minutes for overview, reference during implementation
58
+ **Key sections**:
59
+
60
+ - Phase 1: Backend implementation (6 steps)
61
+ - Phase 2: Frontend implementation (5 steps)
62
+ - Phase 3: Integration testing
63
+ - Detailed code examples for each step
64
+ - Testing code snippets
65
+ - Implementation checklist
66
+ - Deployment steps
67
+ - Rollback plan
68
+
69
+ **Best for**: Developers actually implementing the feature (use as a guide)
70
+
71
+ ______________________________________________________________________
72
+
73
+ ### 4. **Architecture Diagram** - Visual Guide
74
+
75
+ 📄 **File**: `i18n-architecture-diagram.md`
76
+
77
+ **What to read**: Visual representations of data flow, component architecture
78
+ **Time to read**: 15-20 minutes
79
+ **Key sections**:
80
+
81
+ - Data flow from video upload to rendered UI
82
+ - Component architecture diagram
83
+ - Message key resolution flow
84
+ - Message key namespace structure
85
+ - Backward compatibility timeline
86
+ - Language auto-detection strategy
87
+ - Testing strategy matrix
88
+
89
+ **Best for**: Understanding how components interact, architectural decisions, planning
90
+
91
+ ______________________________________________________________________
92
+
93
+ ### 5. **Cheat Sheet** - Quick Reference
94
+
95
+ 📄 **File**: `i18n-cheat-sheet.md`
96
+
97
+ **What to read**: Quick reference during implementation
98
+ **Time to read**: 5-10 minutes (for quick lookup)
99
+ **Key sections**:
100
+
101
+ - Quick reference code snippets
102
+ - Message key patterns
103
+ - JSON response fields
104
+ - Translation template placeholders
105
+ - Code changes summary
106
+ - Time estimates
107
+ - Common mistakes to avoid
108
+ - Validation checklist
109
+
110
+ **Best for**: Developers implementing the feature (bookmark and print!)
111
+
112
+ ______________________________________________________________________
113
+
114
+ ## Reading Recommendations
115
+
116
+ ### For Developers
117
+
118
+ 1. Start with **Summary** (10 min) - understand the approach
119
+ 1. Read **Quick Start Guide** (30 min) - get implementation steps
120
+ 1. Keep **Cheat Sheet** open during implementation (reference as needed)
121
+ 1. Reference **Specification** (30 min) - for detailed info on specific changes
122
+
123
+ ### For Project Managers
124
+
125
+ 1. Start with **Summary** (10 min) - understand scope and timeline
126
+ 1. Review **Quick Start Guide** checklist (5 min) - track progress
127
+
128
+ ### For QA/Testing Engineers
129
+
130
+ 1. Start with **Summary** (10 min) - understand the feature
131
+ 1. Read **Specification** testing strategy section (10 min) - understand test approach
132
+ 1. Reference **Quick Start Guide** testing section (10 min) - test code examples
133
+ 1. Use **Cheat Sheet** validation checklist (5 min) - test execution
134
+
135
+ ### For Code Reviewers
136
+
137
+ 1. Read **Summary** (10 min) - understand the approach
138
+ 1. Read **Specification** sections 1-2 (15 min) - understand data model changes
139
+ 1. Reference **Specification** code implementation sections (as needed)
140
+ 1. Use **Cheat Sheet** common mistakes (5 min) - what to look for
141
+
142
+ ### For Architects/Decision Makers
143
+
144
+ 1. Read **Summary** (10 min)
145
+ 1. Review **Architecture Diagram** (15 min)
146
+ 1. Check **Backward Compatibility** section (5 min)
147
+
148
+ ______________________________________________________________________
149
+
150
+ ## Key Facts at a Glance
151
+
152
+ | Aspect | Detail |
153
+ | ------------------- | ------------------------------------------------------- |
154
+ | **Approach** | Option B: Structured Data + Frontend Translation |
155
+ | **Breaking Change** | No - Fully backward compatible |
156
+ | **New Version** | v0.60.0 (minor version bump) |
157
+ | **Effort** | 14-20 hours (backend 4-6h, frontend 6-8h, testing 4-6h) |
158
+ | **Files to Change** | 5 backend + 10 frontend files |
159
+ | **Message Keys** | ~45-50 (organized by metric) |
160
+ | **Languages** | 5 (en, es, fr, de, ja) |
161
+ | **Tests** | 10-20 new tests (backend + frontend) |
162
+ | **Backward Compat** | Yes - message field still works |
163
+
164
+ ______________________________________________________________________
165
+
166
+ ## Implementation Checklist
167
+
168
+ ### Before Starting
169
+
170
+ - [ ] Read Summary (i18n-summary.md)
171
+ - [ ] Read Quick Start Guide (i18n-quick-start-guide.md)
172
+ - [ ] Print Cheat Sheet (i18n-cheat-sheet.md)
173
+ - [ ] Review Architecture (i18n-architecture-diagram.md)
174
+
175
+ ### Phase 1: Backend
176
+
177
+ - [ ] Update ValidationIssue dataclass
178
+ - [ ] Update add_error/add_warning/add_info methods
179
+ - [ ] Update CMJ validator (16 methods)
180
+ - [ ] Update Drop Jump validator (6 methods)
181
+ - [ ] Update serialization (to_dict)
182
+ - [ ] Add backend tests
183
+ - [ ] Run full test suite
184
+ - [ ] Verify backward compatibility
185
+
186
+ ### Phase 2: Frontend
187
+
188
+ - [ ] Create translation files (5 languages)
189
+ - [ ] Install i18next + react-i18next
190
+ - [ ] Setup i18next configuration
191
+ - [ ] Update ValidationIssue component
192
+ - [ ] Add language selector (optional)
193
+ - [ ] Add frontend tests
194
+ - [ ] Run linting and type checks
195
+
196
+ ### Phase 3: Integration
197
+
198
+ - [ ] Run E2E tests
199
+ - [ ] Test all languages
200
+ - [ ] Verify number formatting
201
+ - [ ] Test language switching
202
+ - [ ] Test URL parameters
203
+ - [ ] Test localStorage persistence
204
+ - [ ] Verify message key completeness
205
+
206
+ ### Pre-Release
207
+
208
+ - [ ] All tests passing (620+ backend, frontend tests)
209
+ - [ ] No type errors (pyright strict)
210
+ - [ ] No linting errors (ruff)
211
+ - [ ] Code review complete
212
+ - [ ] Documentation updated
213
+ - [ ] CHANGELOG updated
214
+
215
+ ______________________________________________________________________
216
+
217
+ ## FAQ
218
+
219
+ **Q: Why Option B (Structured Data) instead of Option A (Backend Translation)?**
220
+ A: See Summary section "Why This Approach?" - better separation of concerns, scalability, maintainability.
221
+
222
+ **Q: Is this a breaking change?**
223
+ A: No. The `message` field continues to work. This is backward compatible.
224
+
225
+ **Q: How long does implementation take?**
226
+ A: 14-20 hours total (backend 4-6h, frontend 6-8h, testing 4-6h).
227
+
228
+ **Q: What if I only want to support 2 languages?**
229
+ A: Just create 2 translation files. The system is flexible.
230
+
231
+ **Q: Do I need to update every validator method?**
232
+ A: Yes. All 22 validation methods should be updated for consistency.
233
+
234
+ **Q: Can I implement this incrementally?**
235
+ A: Yes. Phase 1 (backend) can be deployed as v0.60.0 with both message and message_key fields. Phase 2 (frontend) can be deployed separately.
236
+
237
+ **Q: What happens to old clients?**
238
+ A: They continue using the `message` field, which is still populated. No issues.
239
+
240
+ **Q: How do I test this locally?**
241
+ A: See Quick Start Guide section on testing.
242
+
243
+ **Q: When should I do this?**
244
+ A: Recommended for v0.60.0 release (after MVP validation).
245
+
246
+ ______________________________________________________________________
247
+
248
+ ## Document Sizes
249
+
250
+ | Document | Pages | Read Time |
251
+ | ---------------------------- | ------ | --------------- |
252
+ | i18n-summary.md | 10 | 10 min |
253
+ | i18n-specification.md | 20 | 30-45 min |
254
+ | i18n-quick-start-guide.md | 15 | 20-30 min |
255
+ | i18n-architecture-diagram.md | 12 | 15-20 min |
256
+ | i18n-cheat-sheet.md | 8 | 5-10 min |
257
+ | **Total** | **65** | **1.5-2 hours** |
258
+
259
+ ______________________________________________________________________
260
+
261
+ ## Implementation Timeline
262
+
263
+ ```
264
+ Week 1 (Backend Implementation)
265
+ ├─ Day 1: Update core validation.py
266
+ ├─ Day 2: Update CMJ validator
267
+ ├─ Day 3: Update Drop Jump validator
268
+ ├─ Day 4: Serialization + testing
269
+ └─ Day 5: Code review + fixes
270
+
271
+ Week 2 (Frontend Implementation)
272
+ ├─ Day 1: Create translation files
273
+ ├─ Day 2: Setup i18next
274
+ ├─ Day 3: Update components
275
+ ├─ Day 4: Testing + fixes
276
+ └─ Day 5: Integration testing
277
+
278
+ Week 3 (QA & Release)
279
+ ├─ Day 1-2: Full testing cycle
280
+ ├─ Day 3: Documentation
281
+ ├─ Day 4: Code review
282
+ └─ Day 5: Release (v0.60.0)
283
+ ```
284
+
285
+ ______________________________________________________________________
286
+
287
+ ## Key Contacts
288
+
289
+ - **Architecture Questions**: See i18n-architecture-diagram.md
290
+ - **Implementation Help**: See i18n-quick-start-guide.md
291
+ - **Detailed Specs**: See i18n-validation-messages-specification.md
292
+ - **Quick Reference**: See i18n-cheat-sheet.md
293
+
294
+ ______________________________________________________________________
295
+
296
+ ## Version History
297
+
298
+ | Version | Date | Changes |
299
+ | ------- | ---------- | --------------------- |
300
+ | 1.0 | 2024-12-14 | Initial specification |
301
+
302
+ ______________________________________________________________________
303
+
304
+ ## Related Documentation
305
+
306
+ - **Project Roadmap**: `docs/strategy/MVP_VALIDATION_CHECKPOINTS.md`
307
+ - **Testing Guide**: `docs/development/testing.md`
308
+ - **Type Hints Guide**: `docs/development/type-hints.md`
309
+ - **Agents Guide**: `docs/development/agents-guide.md`
310
+
311
+ ______________________________________________________________________
312
+
313
+ ## Next Steps
314
+
315
+ 1. **Read Summary** (10 minutes)
316
+ 1. **Share with team** for feedback
317
+ 1. **Create feature branch**: `feat/i18n-validation-messages`
318
+ 1. **Follow Quick Start Guide** for implementation
319
+ 1. **Track progress** using implementation checklist above
320
+ 1. **Request code review** following specification
321
+ 1. **Deploy to production** as v0.60.0
322
+
323
+ ______________________________________________________________________
324
+
325
+ **Status**: ✅ Complete
326
+ **Last Updated**: 2024-12-14
327
+ **Maintained By**: Kinemotion Development Team