kinemotion 0.32.0__tar.gz → 0.32.2__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.32.0 → kinemotion-0.32.2}/.basic-memory/deployment/vercel-monorepo-deployment-best-practice.md +1 -1
- kinemotion-0.32.2/.basic-memory/development/basic-memory-naming-hook-analysis.md +148 -0
- kinemotion-0.32.2/.basic-memory/development/claude-code-hook-configuration.md +343 -0
- kinemotion-0.32.2/.basic-memory/development/frontend-dependencies-analysis-nov-2025.md +186 -0
- kinemotion-0.32.2/.basic-memory/development/hook-complete-audit-summary.md +284 -0
- kinemotion-0.32.2/.basic-memory/development/hook-configuration-audit.md +260 -0
- kinemotion-0.32.2/.basic-memory/development/hook-quick-reference.md +281 -0
- kinemotion-0.32.2/.basic-memory/development/using-multiple-mcp-reasoning-servers-simultaneously.md +304 -0
- kinemotion-0.32.2/.basic-memory/project-management/mcp-sequential-thinking-alternatives-analysis.md +233 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/strategy/deployment-decision-analysis-for-kinemotion.md +5 -5
- kinemotion-0.32.2/.claude/hooks/fix-basic-memory-names.sh +116 -0
- kinemotion-0.32.2/.claude/settings.local.json +82 -0
- kinemotion-0.32.2/.cursor/mcp.json +42 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.gitignore +11 -4
- kinemotion-0.32.2/.mcp.json +62 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.pre-commit-config.yaml +3 -0
- kinemotion-0.32.2/.vercelignore +1 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/CHANGELOG.md +65 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/PKG-INFO +1 -1
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/src/kinemotion_backend/app.py +10 -4
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/.gitignore +2 -0
- kinemotion-0.32.2/frontend/.yarn/releases/yarn-4.12.0.cjs +942 -0
- kinemotion-0.32.2/frontend/.yarnrc.yml +7 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/hooks/useAnalysis.ts +6 -2
- {kinemotion-0.32.0 → kinemotion-0.32.2}/pyproject.toml +1 -1
- {kinemotion-0.32.0 → kinemotion-0.32.2}/uv.lock +1 -1
- kinemotion-0.32.0/.claude/hooks/fix-basic-memory-names.sh +0 -50
- kinemotion-0.32.0/frontend/.pnp.loader.mjs +0 -2126
- kinemotion-0.32.0/frontend/.yarn/install-state.gz +0 -0
- kinemotion-0.32.0/frontend/.yarnrc.yml +0 -7
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/api/api-reference-quick-commands.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/biomechanics/camera-perspective-analysis-45deg-vs-lateral.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/biomechanics/cmj-landing-detection-window-validation.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/biomechanics/cmj-physiological-bounds-for-validation.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/biomechanics/cmj-validation-implementation-complete.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/biomechanics/drop-jump-vs-cmj-key-differences.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/biomechanics/technical-implementation-45deg-perspective-correction.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/codebase/codebase-architecture-overview.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/development/ci-caching-issue-investigation-deep-squat-test-failure.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/development/ci-vs-local-test-failure-investigation.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/development/cmj-phase-detection-testing-gap-analysis.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/development/development-standards-quality-gates.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/project-management/issue-12-mvp-scaffolding-complete.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/project-management/issue-12-unblocked-tasks-breakdown.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/project-management/issue-12-use-real-metrics-now.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/project-management/kinemotion-project-setup-complete.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/project-management/specialized-subagents-routing-guide.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/strategy/mvp-feedback-collection-plan.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/strategy/mvp-first-strategic-direction.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/strategy/mvp-validation-checkpoints.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.basic-memory/strategy/strategic-priority-tasks-current-roadmap.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/biomechanics-specialist.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/computer-vision-engineer.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/devops-cicd-engineer.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/frontend-developer.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/ml-data-scientist.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/project-manager.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/python-backend-developer.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/qa-test-engineer.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.claude/agents/technical-writer.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.dockerignore +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.gitattributes +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/dependabot.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/pull_request_template.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/workflows/deploy.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/workflows/docs.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/workflows/release.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/workflows/security.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.github/workflows/test.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.readthedocs.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/.gitignore +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/memories/camera-perspective-validation-study.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/memories/code_style_and_conventions.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/memories/github-project-setup-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/memories/mvp-first-strategy.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/memories/project_overview.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/memories/specialist-agents-routing.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/memories/suggested_commands.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.serena/project.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/.tool-versions +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/CLAUDE.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/CODE_OF_CONDUCT.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/CONTRIBUTING.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/Dockerfile +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/GEMINI.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/LICENSE +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/SECURITY.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/.dockerignore +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/.env.example +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/Dockerfile +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/docs/fly-deployment.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/docs/implementation-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/docs/setup.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/docs/tests.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/fly.toml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/pyproject.toml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/src/kinemotion_backend/__init__.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/tests/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/tests/__init__.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/tests/conftest.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/tests/test_api_endpoints.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/tests/test_error_handling.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/tests/test_health.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/tests/test_r2_integration.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/tests/test_validation.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/backend/uv.lock +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/api/cmj.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/api/core.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/api/dropjump.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/api/overview.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/development/agents-guide.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/development/errors-findings.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/development/testing.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/development/type-hints.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/development/validation-plan.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/development/validation-roadmap.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/development/wallball-norep-detection.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/bulk-processing.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/camera-setup.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/cloud-run-deployment.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/cmj-guide.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/cmj-recording-protocol-es.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/cmj-recording-protocol.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/deployment-checklist.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/local-testing.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/guides/setup-issue-12.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/index.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/quick-start.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/reference/cloud-run-quick-reference.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/reference/json-output-format.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/reference/json-structure-comparison.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/reference/parameters.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/reference/pose-systems.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/paper-downloader/HOW-TO-FIND-DOIS.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/paper-downloader/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/paper-downloader/dois.txt +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/paper-downloader/download.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/paper-downloader/pyproject.toml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/paper-downloader/uv.lock +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/MANUAL-DOWNLOAD-GUIDE.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/convert_pdfs.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Ward_Putting-i-in-Team.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/jump-performance/2011_Harper_10-to-5-Jump-Test.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/jump-performance/2014_Samozino_FV-Imbalance.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/jump-performance/2022_Wells_Golf-Clubhead-CMJ.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/running-biomechanics/2016_Moore_Economical-Running-Technique.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/smartphone-technology/2022_Bishop_MyJumpLab-Validation.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/markdown/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/online-references-for-papers.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Ward_Putting-i-in-Team.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/jump-performance/2011_Harper_10-to-5-Jump-Test.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/jump-performance/2014_Samozino_FV-Imbalance.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/jump-performance/2022_Wells_Golf-Clubhead-CMJ.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Moore_Economical-Running-Technique.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/smartphone-technology/2022_Bishop_MyJumpLab-Validation.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/research/thirdparty/pdfs/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.pdf +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/1-STRATEGIC_SUMMARY.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/2-STRATEGIC_ANALYSIS.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/MVP_FEEDBACK_COLLECTION.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/MVP_VALIDATION_CHECKPOINTS.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/STYLE_GUIDE.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/01-executive-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/02-technical-assessment.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/03-refactoring-roadmap.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/BIOMECHANICS/01-executive-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/BIOMECHANICS/02-technical-assessment.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/BIOMECHANICS/03-reference-guide.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/BIOMECHANICS/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/COMPUTER_VISION/01-executive-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/COMPUTER_VISION/02-real-time-architecture.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/COMPUTER_VISION/03-implementation-checklist.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/COMPUTER_VISION/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/CONSOLIDATED/01-agent-consensus.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/CONSOLIDATED/02-critical-findings.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/CONSOLIDATED/03-roadmap-adjustments.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/CONSOLIDATED/04-decision-points.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/CONSOLIDATED/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/CONSOLIDATED/risk-register.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/CONSOLIDATED/timeline-roadmap.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/DEVOPS_CI_CD/01-executive-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/DEVOPS_CI_CD/02-infrastructure-assessment.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/DEVOPS_CI_CD/03-implementation-roadmap.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/DEVOPS_CI_CD/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/01-executive-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/02-technical-assessment.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/03-parameter-specifications.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/QA_TESTING/01-executive-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/QA_TESTING/02-roadmap-assessment.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/QA_TESTING/03-testing-checklists.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/QA_TESTING/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/TECHNICAL_WRITING/01-executive-summary.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/TECHNICAL_WRITING/02-documentation-strategy.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/TECHNICAL_WRITING/03-action-plan.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/strategy/agent-assessments/TECHNICAL_WRITING/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/technical/framerate.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/technical/implementation-details.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/technical/imu-metadata.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/technical/real-time-analysis.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/technical/triple-extension.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/translations/es/camera-setup.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/validation/determinism-test.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/validation/known-height-validation.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/docs/validation-status.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/examples/bulk/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/examples/bulk/bulk_processing.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/examples/bulk/simple_example.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/examples/programmatic_usage.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/.editorconfig +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/.env.example +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/.gitattributes +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/index.html +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/package.json +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/App.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/components/ErrorBoundary.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/components/ErrorDisplay.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/components/LoadingSpinner.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/components/RecentUploads.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/components/ResultsDisplay.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/components/ResultsSkeleton.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/components/UploadForm.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/hooks/useRecentUploads.ts +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/index.css +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/main.tsx +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/types/api.ts +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/src/vite-env.d.ts +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2/frontend}/vercel.json +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/vite.config.ts +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/frontend/yarn.lock +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/justfile +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/local_dev.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/mkdocs.yml +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/.gitignore +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/demos/.gitignore +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/demos/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/demos/api_demo.ipynb +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/demos/batch_processing_demo.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/demos/sample_data/.gitkeep +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/presentation_guide.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/revealjs/.gitignore +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/revealjs/Makefile +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/revealjs/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/revealjs/slides.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/presentation/speaker_script.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/requirements-docs.txt +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/samples/cmjs/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/SCRIPTS_QUICKREF.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/analyze_determinism_variance.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/basic-memory-utils.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/generate_test_data.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/plot_validation_results.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project/README.md +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project/add-issue.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project/batch-set-fields.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project/helpers.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project/list.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project/set-field.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project/set-status.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project/summary.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/project.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/test_determinism.sh +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/scripts/validate_known_heights.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/sonar-project.properties +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/__init__.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/api.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/cli.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/cmj/__init__.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/cmj/analysis.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/cmj/cli.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/cmj/debug_overlay.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/cmj/joint_angles.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/cmj/kinematics.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/__init__.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/auto_tuning.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/cli_utils.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/cmj_metrics_validator.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/cmj_validation_bounds.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/debug_overlay_utils.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/dropjump_metrics_validator.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/dropjump_validation_bounds.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/filtering.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/formatting.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/metadata.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/pose.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/quality.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/smoothing.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/core/video_io.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/dropjump/__init__.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/dropjump/analysis.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/dropjump/cli.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/dropjump/debug_overlay.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/dropjump/kinematics.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/src/kinemotion/py.typed +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/__init__.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/core/test_quality.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_adaptive_threshold.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_api.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_aspect_ratio.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_cli_cmj.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_cli_dropjump.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_cli_imports.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_cmj_analysis.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_cmj_joint_angles.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_cmj_kinematics.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_cmj_physiological_bounds.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_com_estimation.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_contact_detection.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_dropjump_validation_integration.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_filtering.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_formatting.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_joint_angles.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_kinematics.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_polyorder.py +0 -0
- {kinemotion-0.32.0 → kinemotion-0.32.2}/tests/test_video_io.py +0 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Basic Memory Naming Hook Analysis and Fix
|
|
3
|
+
type: note
|
|
4
|
+
permalink: development/basic-memory-naming-hook-analysis
|
|
5
|
+
tags:
|
|
6
|
+
- development
|
|
7
|
+
- tooling
|
|
8
|
+
- naming-conventions
|
|
9
|
+
- hook
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Basic Memory Naming Hook Analysis and Fix
|
|
13
|
+
|
|
14
|
+
## Issue Identified
|
|
15
|
+
|
|
16
|
+
The hook script `/.claude/hooks/fix-basic-memory-names.sh` was not properly converting filenames to kebab-case when creating `.basic-memory/` notes. Files were being created with concatenated names like:
|
|
17
|
+
|
|
18
|
+
❌ `frontenddependenciesanalysisnov2025.md`
|
|
19
|
+
|
|
20
|
+
Instead of:
|
|
21
|
+
|
|
22
|
+
✅ `frontend-dependencies-analysis-nov-2025.md`
|
|
23
|
+
|
|
24
|
+
## Root Cause Analysis
|
|
25
|
+
|
|
26
|
+
The hook script had **two distinct problems**:
|
|
27
|
+
|
|
28
|
+
### 1. **Original Function Logic Flaw**
|
|
29
|
+
The `to_kebab_case()` function wasn't handling word boundaries correctly:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# OLD (broken)
|
|
33
|
+
sed 's/[[:space:]]\+/-/g' | # Convert spaces to hyphens
|
|
34
|
+
tr '[:upper:]' '[:lower:]' | # Convert to lowercase
|
|
35
|
+
sed 's/[^a-z0-9-]//g' # Remove non-alphanumeric (except hyphens)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Problem**: Without camelCase handling, "Frontend Dependencies" → "frontend dependencies" → "frontenddependencies" (spaces already removed, can't convert to hyphens)
|
|
39
|
+
|
|
40
|
+
### 2. **Files Created Without Separators**
|
|
41
|
+
More critically: When files are **created without word separators** (spaces, underscores, camelCase), the hook cannot reverse-engineer word boundaries. For example:
|
|
42
|
+
- Input: `frontenddependenciesanalysisnov2025` (no separators)
|
|
43
|
+
- Function output: `frontenddependenciesanalysisnov2025` (no way to know where word breaks are)
|
|
44
|
+
|
|
45
|
+
**This is a limitation of any text-based kebab-case conversion function** - it requires existing word boundaries to work with.
|
|
46
|
+
|
|
47
|
+
## Solution Implemented
|
|
48
|
+
|
|
49
|
+
### 1. **Enhanced Kebab-Case Function**
|
|
50
|
+
Added camelCase handling to the conversion function:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
to_kebab_case() {
|
|
54
|
+
echo "$1" | \
|
|
55
|
+
sed 's/[[:space:]]\+/-/g' | # Spaces → hyphens
|
|
56
|
+
sed 's/\([a-z]\)\([A-Z]\)/\1-\2/g' | # camelCase → kebab-case
|
|
57
|
+
tr '[:upper:]' '[:lower:]' | # All lowercase
|
|
58
|
+
sed 's/[^a-z0-9-]//g' | # Remove non-alphanumeric
|
|
59
|
+
sed 's/-\+/-/g' # Collapse multiple hyphens
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Now handles:
|
|
64
|
+
- ✅ `"Frontend Dependencies Analysis"` → `frontend-dependencies-analysis`
|
|
65
|
+
- ✅ `"CMJPhysiologicalBounds"` → `cmj-physiological-bounds`
|
|
66
|
+
- ✅ `"Test-File-Name"` → `test-file-name`
|
|
67
|
+
|
|
68
|
+
### 2. **Fixed Bash Syntax Error**
|
|
69
|
+
**Critical bug found:** The original script used `local` keyword outside of function scope, which caused "can only be used in a function" errors.
|
|
70
|
+
|
|
71
|
+
**Fixed by:** Removing `local` keyword from script-level variables. Variables are now declared without `local`:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# BEFORE (broken)
|
|
75
|
+
dir=$(dirname "$file") # ❌ Inside while loop, not a function
|
|
76
|
+
basename=$(basename "$file")
|
|
77
|
+
|
|
78
|
+
# AFTER (fixed)
|
|
79
|
+
dir=$(dirname "$file") # ✅ Works correctly now
|
|
80
|
+
basename=$(basename "$file")
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 3. **Detection for Concatenated Filenames**
|
|
84
|
+
Added logic to detect and warn about files with no word separators:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Check if the new_name is significantly shorter (indicates concatenation)
|
|
88
|
+
original_len=${#basename}
|
|
89
|
+
new_len=${#new_name}
|
|
90
|
+
if [ $((original_len - new_len)) -gt 5 ]; then
|
|
91
|
+
echo "⚠️ Cannot auto-fix: $basename (no word separators detected)"
|
|
92
|
+
echo " → Please rename manually to follow kebab-case"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Now the hook will:
|
|
96
|
+
- ✅ Auto-fix: `"Frontend Dependencies Analysis.md"` → `frontend-dependencies-analysis.md`
|
|
97
|
+
- ✅ Auto-fix: `"CMJPhysiologicalBounds.md"` → `cmj-physiological-bounds.md`
|
|
98
|
+
- ⚠️ Warn about: `"frontenddependenciesanalysisnov2025.md"` (needs manual rename)
|
|
99
|
+
|
|
100
|
+
### 4. **Manual File Fix**
|
|
101
|
+
Fixed the existing incorrectly-named file:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# BEFORE
|
|
105
|
+
.basic-memory/development/frontenddependenciesanalysisnov2025.md
|
|
106
|
+
|
|
107
|
+
# AFTER
|
|
108
|
+
.basic-memory/development/frontend-dependencies-analysis-nov-2025.md
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 5. **Comprehensive Summary Output**
|
|
112
|
+
The hook now provides clear feedback:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
✅ Fixed 26 basic-memory filename(s) to kebab-case
|
|
116
|
+
⚠️ Found X file(s) that need manual renaming
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## How to Prevent Future Issues
|
|
120
|
+
|
|
121
|
+
When creating new `.basic-memory/` notes, ensure that **naming functions already use word separators**:
|
|
122
|
+
|
|
123
|
+
### ✅ GOOD: Uses spaces (or camelCase)
|
|
124
|
+
```markdown
|
|
125
|
+
write_note("Frontend Dependencies Analysis Nov 2025", "...", "development")
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### ❌ AVOID: Concatenated without separators
|
|
129
|
+
```markdown
|
|
130
|
+
write_note("FrontendDependenciesAnalysisNov2025", "...", "development")
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Hook Behavior Summary
|
|
134
|
+
|
|
135
|
+
The hook now:
|
|
136
|
+
|
|
137
|
+
1. **Scans** all `.basic-memory/**/*.md` files
|
|
138
|
+
2. **Attempts auto-fix** for files with word separators (spaces, camelCase, etc.)
|
|
139
|
+
3. **Warns** about files with no detectable word boundaries
|
|
140
|
+
4. **Git stages** all changes automatically
|
|
141
|
+
5. **Outputs summary** of what was fixed or needs attention
|
|
142
|
+
|
|
143
|
+
**Trigger**: Runs after user prompts (when using Claude Code hooks)
|
|
144
|
+
|
|
145
|
+
## Files Updated
|
|
146
|
+
|
|
147
|
+
- ✅ `.claude/hooks/fix-basic-memory-names.sh` - Enhanced conversion logic + detection
|
|
148
|
+
- ✅ `.basic-memory/development/frontend-dependencies-analysis-nov-2025.md` - Renamed from concatenated version
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Claude Code Hook Configuration - best-basic-memory-names
|
|
3
|
+
type: note
|
|
4
|
+
permalink: development/claude-code-hook-configuration
|
|
5
|
+
tags:
|
|
6
|
+
- development
|
|
7
|
+
- tooling
|
|
8
|
+
- hooks
|
|
9
|
+
- claude-code
|
|
10
|
+
- automation
|
|
11
|
+
- naming-conventions
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Claude Code Hook Configuration: fix-basic-memory-names
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
This document describes the complete configuration of the `fix-basic-memory-names` hook, which automatically normalizes `.basic-memory/` filenames to follow kebab-case naming conventions.
|
|
19
|
+
|
|
20
|
+
**Hook Type:** `UserPromptSubmit`
|
|
21
|
+
**Script:** `.claude/hooks/fix-basic-memory-names.sh`
|
|
22
|
+
**Configuration File:** `.claude/settings.local.json`
|
|
23
|
+
|
|
24
|
+
## Why This Matters
|
|
25
|
+
|
|
26
|
+
The `.basic-memory/` directory stores project knowledge, and filename consistency is critical for:
|
|
27
|
+
- **Predictability**: Easy to guess and find notes
|
|
28
|
+
- **URL safety**: Kebab-case works in URLs and permalinks
|
|
29
|
+
- **Tool compatibility**: MCP basic-memory functions require consistent naming
|
|
30
|
+
- **Git history**: Consistent naming reduces merge conflicts
|
|
31
|
+
|
|
32
|
+
## Hook Configuration
|
|
33
|
+
|
|
34
|
+
### Hook Registration
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"hooks": {
|
|
39
|
+
"UserPromptSubmit": [
|
|
40
|
+
{
|
|
41
|
+
"hooks": [
|
|
42
|
+
{
|
|
43
|
+
"type": "command",
|
|
44
|
+
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/fix-basic-memory-names.sh",
|
|
45
|
+
"statusMessage": "Normalizing basic-memory filenames to kebab-case...",
|
|
46
|
+
"timeout": 30000
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Location:** `.claude/settings.local.json` (lines 3-17)
|
|
56
|
+
|
|
57
|
+
### Configuration Details
|
|
58
|
+
|
|
59
|
+
| Field | Value | Purpose |
|
|
60
|
+
|-------|-------|---------|
|
|
61
|
+
| **Hook Type** | `UserPromptSubmit` | Runs when user submits a prompt, before Claude processes it |
|
|
62
|
+
| **Script Path** | `$CLAUDE_PROJECT_DIR/.claude/hooks/fix-basic-memory-names.sh` | Absolute reference to hook script (expandable) |
|
|
63
|
+
| **Status Message** | "Normalizing basic-memory filenames to kebab-case..." | User-visible feedback during execution |
|
|
64
|
+
| **Timeout** | 30000 ms (30s) | Reasonable for file I/O operations across many files |
|
|
65
|
+
|
|
66
|
+
## Script Implementation
|
|
67
|
+
|
|
68
|
+
### Entry Point
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
#!/bin/bash
|
|
72
|
+
set -euo pipefail
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Why `set -euo pipefail`?**
|
|
76
|
+
- `set -e` - Exit immediately if any command fails
|
|
77
|
+
- `set -u` - Error on undefined variables
|
|
78
|
+
- `set -o pipefail` - Pipe fails if any command in chain fails
|
|
79
|
+
- Makes script robust and fail-fast
|
|
80
|
+
|
|
81
|
+
### Error Handling
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
handle_error() {
|
|
85
|
+
local line_num=$1
|
|
86
|
+
echo "❌ Hook error on line $line_num" >&2
|
|
87
|
+
exit 1
|
|
88
|
+
}
|
|
89
|
+
trap 'handle_error $LINENO' ERR
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Features:**
|
|
93
|
+
- Catches errors and reports exact line number
|
|
94
|
+
- Outputs to stderr (standard for errors)
|
|
95
|
+
- Exits cleanly with error code 1
|
|
96
|
+
- Claude Code recognizes this and blocks operations if needed
|
|
97
|
+
|
|
98
|
+
### Debug Logging
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
DEBUG="${DEBUG:-0}"
|
|
102
|
+
debug_log() {
|
|
103
|
+
if [ "$DEBUG" = "1" ]; then
|
|
104
|
+
echo "[DEBUG] $*" >&2
|
|
105
|
+
fi
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Usage:**
|
|
110
|
+
```bash
|
|
111
|
+
# Enable debug logging when testing
|
|
112
|
+
DEBUG=1 bash .claude/hooks/fix-basic-memory-names.sh
|
|
113
|
+
|
|
114
|
+
# Normal execution (no debug output)
|
|
115
|
+
bash .claude/hooks/fix-basic-memory-names.sh
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Kebab-Case Conversion
|
|
119
|
+
|
|
120
|
+
The `to_kebab_case()` function handles:
|
|
121
|
+
|
|
122
|
+
1. **Spaces** → hyphens: `"Frontend Dependencies"` → `"frontend-dependencies"`
|
|
123
|
+
2. **camelCase** → kebab-case: `"CMJPhysiologicalBounds"` → `"cmj-physiological-bounds"`
|
|
124
|
+
3. **Mixed separators**: `"Test-File-Name"` → `"test-file-name"`
|
|
125
|
+
4. **Multiple hyphens**: Collapse to single hyphen
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
to_kebab_case() {
|
|
129
|
+
echo "$1" | \
|
|
130
|
+
sed 's/[[:space:]]\+/-/g' | # Spaces → hyphens
|
|
131
|
+
sed 's/\([a-z]\)\([A-Z]\)/\1-\2/g' | # camelCase → kebab-case
|
|
132
|
+
tr '[:upper:]' '[:lower:]' | # All lowercase
|
|
133
|
+
sed 's/[^a-z0-9-]//g' | # Remove non-alphanumeric (except hyphens)
|
|
134
|
+
sed 's/-\+/-/g' # Collapse multiple hyphens
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### File Processing Loop
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
while IFS= read -r file; do
|
|
142
|
+
# ... validation ...
|
|
143
|
+
dir=$(dirname "$file")
|
|
144
|
+
basename=$(basename "$file")
|
|
145
|
+
new_name=$(to_kebab_case "${basename%.md}")
|
|
146
|
+
new_path="${dir}/${new_name}.md"
|
|
147
|
+
|
|
148
|
+
if [ "$file" != "$new_path" ]; then
|
|
149
|
+
# Check for concatenation (no word separators)
|
|
150
|
+
original_len=${#basename}
|
|
151
|
+
new_len=${#new_name}
|
|
152
|
+
|
|
153
|
+
if [ $((original_len - new_len)) -gt 5 ]; then
|
|
154
|
+
# ⚠️ Cannot auto-fix - warn user
|
|
155
|
+
else
|
|
156
|
+
# ✅ Auto-fix with git staging
|
|
157
|
+
git rm --cached "$file" 2>/dev/null || true
|
|
158
|
+
mv "$file" "$new_path"
|
|
159
|
+
git add "$new_path" 2>/dev/null || true
|
|
160
|
+
fi
|
|
161
|
+
fi
|
|
162
|
+
done < <(find .basic-memory -name "*.md" -type f 2>/dev/null || true)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Key behaviors:**
|
|
166
|
+
- Safely iterates with `IFS= read -r` (handles spaces/special chars)
|
|
167
|
+
- Detects concatenated filenames (no separators) and warns instead of mangling
|
|
168
|
+
- Stages git operations immediately for clean commit history
|
|
169
|
+
- Continues on find errors (|| true)
|
|
170
|
+
|
|
171
|
+
### Exit Codes
|
|
172
|
+
|
|
173
|
+
| Code | Meaning | Action |
|
|
174
|
+
|------|---------|--------|
|
|
175
|
+
| 0 | Success | Hook completed, files may have been fixed |
|
|
176
|
+
| 1 | Error | Hook encountered errors, Claude Code may block |
|
|
177
|
+
|
|
178
|
+
## Best Practices Applied
|
|
179
|
+
|
|
180
|
+
### 1. Script Initialization
|
|
181
|
+
✅ Shebang: `#!/bin/bash` (portable)
|
|
182
|
+
✅ Error handling: `set -euo pipefail` with trap
|
|
183
|
+
✅ Documented: Comments for each section
|
|
184
|
+
|
|
185
|
+
### 2. Security
|
|
186
|
+
✅ No recursive eval or backticks
|
|
187
|
+
✅ Quoted variables: `"$var"` not $var
|
|
188
|
+
✅ Minimal git operations (rm/add only)
|
|
189
|
+
|
|
190
|
+
### 3. User Feedback
|
|
191
|
+
✅ Status messages for each outcome
|
|
192
|
+
✅ Debug logging for troubleshooting
|
|
193
|
+
✅ Clear warnings for manual intervention
|
|
194
|
+
|
|
195
|
+
### 4. Reliability
|
|
196
|
+
✅ Timeout protection: 30s limit in config
|
|
197
|
+
✅ Error recovery: Continues on transient failures
|
|
198
|
+
✅ Atomic operations: Git staging prevents corruption
|
|
199
|
+
|
|
200
|
+
## Troubleshooting
|
|
201
|
+
|
|
202
|
+
### Hook Not Running
|
|
203
|
+
|
|
204
|
+
**Check 1: Script Executable?**
|
|
205
|
+
```bash
|
|
206
|
+
ls -la .claude/hooks/fix-basic-memory-names.sh
|
|
207
|
+
# Should show: -rwx--x--x (755 permissions)
|
|
208
|
+
chmod +x .claude/hooks/fix-basic-memory-names.sh # Fix if needed
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Check 2: Configuration Correct?**
|
|
212
|
+
```bash
|
|
213
|
+
# View hook configuration
|
|
214
|
+
cat .claude/settings.local.json | grep -A 5 "UserPromptSubmit"
|
|
215
|
+
|
|
216
|
+
# Should see reference to fix-basic-memory-names.sh
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Check 3: Enable Debug Logging**
|
|
220
|
+
```bash
|
|
221
|
+
# Test hook directly
|
|
222
|
+
cd /project/root
|
|
223
|
+
DEBUG=1 bash .claude/hooks/fix-basic-memory-names.sh
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Files Not Being Renamed
|
|
227
|
+
|
|
228
|
+
**Likely causes:**
|
|
229
|
+
1. Files already have correct names (no changes needed)
|
|
230
|
+
2. Files have no word separators (concatenated) - hook warns instead
|
|
231
|
+
3. Git operations failing (check permissions)
|
|
232
|
+
|
|
233
|
+
**Debug:**
|
|
234
|
+
```bash
|
|
235
|
+
DEBUG=1 bash .claude/hooks/fix-basic-memory-names.sh
|
|
236
|
+
# Look for "[DEBUG]" output lines showing what was checked
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Timeout Errors
|
|
240
|
+
|
|
241
|
+
If hook times out (> 30s):
|
|
242
|
+
- Increase timeout in settings.json: `"timeout": 60000`
|
|
243
|
+
- Check if find is slow: `time find .basic-memory -name "*.md"`
|
|
244
|
+
- If needed, exclude large directories with `! -path "*/.git/*"`
|
|
245
|
+
|
|
246
|
+
## Testing the Hook
|
|
247
|
+
|
|
248
|
+
### Manual Test
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
cd /Users/feniix/src/personal/cursor/dropjump-claude
|
|
252
|
+
|
|
253
|
+
# Test with debug output
|
|
254
|
+
DEBUG=1 bash .claude/hooks/fix-basic-memory-names.sh
|
|
255
|
+
|
|
256
|
+
# Expected output:
|
|
257
|
+
# [DEBUG] Starting basic-memory filename normalization
|
|
258
|
+
# [DEBUG] Scan complete: fixed=0 warned=0 errors=0
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Create Test File
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# Create a test file with bad naming
|
|
265
|
+
touch .basic-memory/development/TestBadNaming.md
|
|
266
|
+
|
|
267
|
+
# Run hook
|
|
268
|
+
bash .claude/hooks/fix-basic-memory-names.sh
|
|
269
|
+
|
|
270
|
+
# Check result
|
|
271
|
+
ls .basic-memory/development/ | grep -i test
|
|
272
|
+
# Should show: test-bad-naming.md
|
|
273
|
+
|
|
274
|
+
# Clean up
|
|
275
|
+
rm .basic-memory/development/test-bad-naming.md
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## Integration with Claude Code
|
|
279
|
+
|
|
280
|
+
### How It Works in Claude Code
|
|
281
|
+
|
|
282
|
+
1. **User submits prompt** → Hook triggered
|
|
283
|
+
2. **Hook scans** `.basic-memory/*.md` files
|
|
284
|
+
3. **For each file:**
|
|
285
|
+
- Compare current vs. kebab-case name
|
|
286
|
+
- If different AND has word separators → Auto-fix
|
|
287
|
+
- If different AND NO word separators → Warn user
|
|
288
|
+
4. **Git staging** happens automatically
|
|
289
|
+
5. **Hook exits** with status code (0=success, 1=error)
|
|
290
|
+
|
|
291
|
+
### Performance Impact
|
|
292
|
+
|
|
293
|
+
- **Overhead**: ~50-200ms per prompt (depends on file count)
|
|
294
|
+
- **Files scanned**: All `.basic-memory/**/*.md` (~30-40 files typically)
|
|
295
|
+
- **Operations**: Quick stat checks + optional git operations
|
|
296
|
+
|
|
297
|
+
## Related Files
|
|
298
|
+
|
|
299
|
+
- **Hook Script**: `.claude/hooks/fix-basic-memory-names.sh`
|
|
300
|
+
- **Configuration**: `.claude/settings.local.json`
|
|
301
|
+
- **Analysis Document**: `.basic-memory/development/basic-memory-naming-hook-analysis.md`
|
|
302
|
+
- **Official Docs**: https://docs.claude.com/en/docs/claude-code/hooks-guide
|
|
303
|
+
|
|
304
|
+
## References
|
|
305
|
+
|
|
306
|
+
### Claude Code Hooks Guide
|
|
307
|
+
https://docs.claude.com/en/docs/claude-code/hooks-guide
|
|
308
|
+
|
|
309
|
+
### Key Sections
|
|
310
|
+
- Hook Events Overview - explains UserPromptSubmit and others
|
|
311
|
+
- Code Formatting Hook - example of PostToolUse hook
|
|
312
|
+
- File Protection Hook - example of using jq for input parsing
|
|
313
|
+
|
|
314
|
+
### Bash Best Practices
|
|
315
|
+
- `set -euo pipefail` - Standard for robust scripts
|
|
316
|
+
- `trap 'cleanup' EXIT` - Cleanup pattern
|
|
317
|
+
- Error handling with `$?` - Exit code checking
|
|
318
|
+
|
|
319
|
+
## Maintenance
|
|
320
|
+
|
|
321
|
+
### When to Update
|
|
322
|
+
|
|
323
|
+
| Scenario | Action |
|
|
324
|
+
|----------|--------|
|
|
325
|
+
| Add new `.basic-memory/` folder | Hook automatically covers (uses find) |
|
|
326
|
+
| Change kebab-case rules | Update `to_kebab_case()` function |
|
|
327
|
+
| Adjust timeout | Edit `settings.local.json` timeout value |
|
|
328
|
+
| Add debug capability | Already supported (DEBUG=1) |
|
|
329
|
+
|
|
330
|
+
### Version History
|
|
331
|
+
|
|
332
|
+
- **v1.0** - Initial implementation with camelCase support
|
|
333
|
+
- **v1.1** - Added debug logging and error handling
|
|
334
|
+
- **v1.2** - Added detection for concatenated filenames (no auto-fix)
|
|
335
|
+
- **v2.0** - Proper configuration in settings.json with timeout
|
|
336
|
+
|
|
337
|
+
## Future Improvements
|
|
338
|
+
|
|
339
|
+
- [ ] Check for duplicate files after renaming
|
|
340
|
+
- [ ] Support for other file types (.json, .yml)
|
|
341
|
+
- [ ] Logging to file for audit trail
|
|
342
|
+
- [ ] Integration with Git pre-commit hook
|
|
343
|
+
- [ ] Webhook notifications on changes
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Frontend Dependencies Analysis Nov 2025
|
|
3
|
+
type: note
|
|
4
|
+
permalink: development/frontend-dependencies-analysis-nov-2025-1
|
|
5
|
+
tags:
|
|
6
|
+
- frontend
|
|
7
|
+
- dependencies
|
|
8
|
+
- vite
|
|
9
|
+
- react
|
|
10
|
+
- typescript
|
|
11
|
+
- devops
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Frontend Dependencies Analysis - November 2025
|
|
15
|
+
|
|
16
|
+
## Current State
|
|
17
|
+
- React: ^18.3.1 (April 2024)
|
|
18
|
+
- Vite: ^5.1.0 (January 2024)
|
|
19
|
+
- TypeScript: ^5.3.3 (November 2023)
|
|
20
|
+
- Terser: ^5.31.0 (just added - GOOD)
|
|
21
|
+
- @vitejs/plugin-react: ^4.3.0
|
|
22
|
+
- @types packages: vary from 18.3.0 to 20.11.0
|
|
23
|
+
|
|
24
|
+
## Latest Available Versions
|
|
25
|
+
|
|
26
|
+
### React Ecosystem
|
|
27
|
+
- **React Latest**: 19.2.0 (October 2025) - mature, 1+ year stable
|
|
28
|
+
- **React 18 Latest**: 18.3.1 (April 2024) - still maintained, zero CVEs
|
|
29
|
+
- **React DOM Latest**: 19.2.0 or 18.3.1
|
|
30
|
+
- **@types/react Latest**: 18.3.3 (for React 18)
|
|
31
|
+
- **@types/react-dom Latest**: 18.3.0 (for React 18)
|
|
32
|
+
|
|
33
|
+
### Build Tools
|
|
34
|
+
- **Vite Latest**: 6.3+ (November 2025) - production-ready since Dec 2024
|
|
35
|
+
- **Vite 5 Latest**: 5.4.1 (still maintained)
|
|
36
|
+
- **@vitejs/plugin-react Latest**: 4.3.x (works with both Vite 5 & 6)
|
|
37
|
+
- **TypeScript Latest**: 5.9.x (December 2024)
|
|
38
|
+
|
|
39
|
+
### Code Quality
|
|
40
|
+
- **Terser Latest**: 5.31.0+ (current, good)
|
|
41
|
+
- **@types/node Latest**: 20.12.x (safe patch bump from 20.11.0)
|
|
42
|
+
|
|
43
|
+
## Codebase Compatibility Assessment
|
|
44
|
+
|
|
45
|
+
### React 19 Readiness: ✅ READY
|
|
46
|
+
The codebase is **already React 19 compatible**:
|
|
47
|
+
- Using `React.createRoot()` (modern API) ✓
|
|
48
|
+
- Using modern hooks (useState, useEffect, useContext) ✓
|
|
49
|
+
- No PropTypes (using TypeScript instead) ✓
|
|
50
|
+
- No string refs or legacy APIs ✓
|
|
51
|
+
- No findDOMNode usage ✓
|
|
52
|
+
- Proper Error Boundary implementation ✓
|
|
53
|
+
- Using React.StrictMode ✓
|
|
54
|
+
|
|
55
|
+
### Vite 6 Readiness: ✅ READY
|
|
56
|
+
Simple SPA configuration is backward compatible:
|
|
57
|
+
- Minimal vite.config.ts (no advanced features) ✓
|
|
58
|
+
- Using @vitejs/plugin-react (stable in both v5 & v6) ✓
|
|
59
|
+
- No SSR configuration ✓
|
|
60
|
+
- Standard TypeScript config ✓
|
|
61
|
+
|
|
62
|
+
## MVP Deployment Recommendation
|
|
63
|
+
|
|
64
|
+
### TIER 1: IMMEDIATE UPGRADES (Safe, Zero Risk)
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"typescript": "^5.9.3",
|
|
68
|
+
"@types/node": "^20.12.0",
|
|
69
|
+
"@types/react": "^18.3.3",
|
|
70
|
+
"@types/react-dom": "^18.3.0",
|
|
71
|
+
"terser": "^5.31.0"
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
**Rationale**: All safe minor/patch updates, no breaking changes, better TypeScript strict mode compliance
|
|
75
|
+
|
|
76
|
+
### TIER 2: OPTIONAL (Very Low Risk)
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"vite": "^5.4.1"
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
**Rationale**: Stay on Vite 5 (fully maintained), get latest v5 features without major refactor
|
|
83
|
+
|
|
84
|
+
### TIER 3: POST-MVP (After Validation)
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"react": "^19.2.0",
|
|
88
|
+
"react-dom": "^19.2.0",
|
|
89
|
+
"vite": "^6.3.0"
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
**Rationale**: After MVP validation, upgrade to latest stable versions with new capabilities
|
|
93
|
+
|
|
94
|
+
## Breaking Changes Analysis
|
|
95
|
+
|
|
96
|
+
### React 18 → 19
|
|
97
|
+
**If upgrading later:**
|
|
98
|
+
- Removed: ReactDOM.render (we use createRoot ✓)
|
|
99
|
+
- Removed: PropTypes (we use TypeScript ✓)
|
|
100
|
+
- Removed: Legacy Context API (not used ✓)
|
|
101
|
+
- Changed: Error handling via window.reportError
|
|
102
|
+
- No changes needed to current codebase
|
|
103
|
+
|
|
104
|
+
### Vite 5 → 6
|
|
105
|
+
**If upgrading later:**
|
|
106
|
+
- Environment API changes (internal only, backward compatible)
|
|
107
|
+
- Default browser target updated (baseline-widely-available)
|
|
108
|
+
- Removed: Sass legacy API (not used)
|
|
109
|
+
- Node.js requirement: 20.19+ / 22.12+ (already compatible)
|
|
110
|
+
- Config remains unchanged for simple SPAs
|
|
111
|
+
|
|
112
|
+
### TypeScript 5.3 → 5.9
|
|
113
|
+
- **No breaking changes** in our strict mode config
|
|
114
|
+
- Better type inference
|
|
115
|
+
- Enhanced strict mode features
|
|
116
|
+
- All updates are safe
|
|
117
|
+
|
|
118
|
+
## Security Status
|
|
119
|
+
- React 18.3.1: ✓ No known CVEs
|
|
120
|
+
- React 19.2.0: ✓ No known CVEs
|
|
121
|
+
- Vite 5.4.1: ✓ No known CVEs
|
|
122
|
+
- Vite 6.3+: ✓ No known CVEs
|
|
123
|
+
- TypeScript 5.9: ✓ No known CVEs
|
|
124
|
+
- Terser 5.31.0: ✓ No known CVEs
|
|
125
|
+
|
|
126
|
+
## Vercel Deployment Readiness
|
|
127
|
+
- ✓ Vite officially supported on Vercel
|
|
128
|
+
- ✓ React + TypeScript recommended stack
|
|
129
|
+
- ✓ Current vite.config.ts compatible
|
|
130
|
+
- ✓ tsconfig.json properly configured
|
|
131
|
+
- ✓ Node.js support: 18+ (Vercel provides)
|
|
132
|
+
|
|
133
|
+
## Recommended Action Plan
|
|
134
|
+
|
|
135
|
+
1. **Week 1 (MVP)**: Update TIER 1 packages only
|
|
136
|
+
- Run `yarn upgrade typescript @types/node @types/react @types/react-dom`
|
|
137
|
+
- Verify build: `yarn build`
|
|
138
|
+
- Deploy to Vercel
|
|
139
|
+
|
|
140
|
+
2. **Week 2-4 (Post-MVP)**: Evaluate Vite upgrade
|
|
141
|
+
- Test Vite 5.4.1
|
|
142
|
+
- Profile build times
|
|
143
|
+
- Monitor user feedback
|
|
144
|
+
|
|
145
|
+
3. **Month 2 (Post-MVP Validation)**: Plan major upgrades
|
|
146
|
+
- React 18 → 19 migration (if benefits justify)
|
|
147
|
+
- Vite 5 → 6 migration (for new tooling features)
|
|
148
|
+
- Systematic testing and rollback plan
|
|
149
|
+
|
|
150
|
+
## Package.json Recommendation (MVP Ready)
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"name": "kinemotion-frontend",
|
|
155
|
+
"private": true,
|
|
156
|
+
"version": "0.1.0",
|
|
157
|
+
"type": "module",
|
|
158
|
+
"packageManager": "yarn@4.12.0",
|
|
159
|
+
"scripts": {
|
|
160
|
+
"dev": "vite",
|
|
161
|
+
"build": "tsc && vite build",
|
|
162
|
+
"preview": "vite preview",
|
|
163
|
+
"type-check": "tsc --noEmit"
|
|
164
|
+
},
|
|
165
|
+
"dependencies": {
|
|
166
|
+
"react": "^18.3.1",
|
|
167
|
+
"react-dom": "^18.3.1"
|
|
168
|
+
},
|
|
169
|
+
"devDependencies": {
|
|
170
|
+
"@types/node": "^20.12.0",
|
|
171
|
+
"@types/react": "^18.3.3",
|
|
172
|
+
"@types/react-dom": "^18.3.0",
|
|
173
|
+
"@vitejs/plugin-react": "^4.3.0",
|
|
174
|
+
"terser": "^5.31.0",
|
|
175
|
+
"typescript": "^5.9.3",
|
|
176
|
+
"vite": "^5.4.1"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Next Steps
|
|
182
|
+
1. Update package.json with TIER 1 changes
|
|
183
|
+
2. Run `yarn install`
|
|
184
|
+
3. Run `yarn build` and `yarn type-check`
|
|
185
|
+
4. Deploy to Vercel
|
|
186
|
+
5. Schedule post-MVP evaluation for TIER 2 & 3 upgrades
|