ai-codeindex 0.23.0__tar.gz → 0.23.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.
Files changed (518) hide show
  1. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/workflows/ci.yml +7 -3
  2. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/project.yml +5 -0
  3. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/CHANGELOG.md +35 -0
  4. ai_codeindex-0.23.2/CLAUDE.md +186 -0
  5. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/Makefile +5 -4
  6. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/PKG-INFO +72 -31
  7. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/README.md +70 -30
  8. ai_codeindex-0.23.2/README_zh.md +478 -0
  9. ai_codeindex-0.23.2/RELEASE_NOTES_v0.23.1.md +28 -0
  10. ai_codeindex-0.23.2/RELEASE_NOTES_v0.23.2.md +20 -0
  11. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/git-hooks-integration.md +1 -0
  12. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/README.md +1 -1
  13. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/ROADMAP.md +2 -2
  14. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/pyproject.toml +16 -2
  15. ai_codeindex-0.23.2/scripts/hooks/hook-common.sh +121 -0
  16. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/README_AI.md +32 -37
  17. ai_codeindex-0.23.2/src/codeindex/claude_md.py +153 -0
  18. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli.py +6 -1
  19. ai_codeindex-0.23.2/src/codeindex/cli_claude_md.py +91 -0
  20. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_config.py +2 -2
  21. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_hooks.py +26 -60
  22. ai_codeindex-0.23.2/src/codeindex/hooks.py +13 -0
  23. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/init_wizard.py +5 -41
  24. ai_codeindex-0.23.2/src/codeindex/templates/claude_md_core.md +22 -0
  25. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/README_AI.md +54 -53
  26. ai_codeindex-0.23.2/tests/test_claude_md.py +216 -0
  27. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_claude_md_injection.py +7 -11
  28. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_hooks.py +22 -2
  29. ai_codeindex-0.23.2/tests/test_hooks.py +23 -0
  30. ai_codeindex-0.23.2/tests/test_hooks_integration.py +125 -0
  31. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_init_wizard_bdd.py +2 -2
  32. ai_codeindex-0.23.0/CLAUDE.md +0 -805
  33. ai_codeindex-0.23.0/src/codeindex/hooks.py +0 -180
  34. ai_codeindex-0.23.0/src/codeindex/templates/claude_md_core.md +0 -129
  35. ai_codeindex-0.23.0/tests/test_hooks.py +0 -218
  36. ai_codeindex-0.23.0/tests/test_hooks_integration.py +0 -144
  37. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.claude/skills/mo-arch/SKILL.md +0 -0
  38. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.claude/skills/mo-hooks/SKILL.md +0 -0
  39. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.claude/skills/mo-index/SKILL.md +0 -0
  40. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.editorconfig +0 -0
  41. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  42. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  43. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/enhancement.md +0 -0
  44. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/epic.md +0 -0
  45. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  46. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.github/workflows/publish.yml +0 -0
  47. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.gitignore +0 -0
  48. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/.gitignore +0 -0
  49. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/design_philosophy.md +0 -0
  50. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/development_workflow.md +0 -0
  51. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/project_overview.md +0 -0
  52. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/release_automation.md +0 -0
  53. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/.serena/memories/suggested_commands.md +0 -0
  54. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/CODE_OF_CONDUCT.md +0 -0
  55. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/CONTRIBUTING.md +0 -0
  56. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/FOR_LOOMGRAPH.md +0 -0
  57. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/LICENSE +0 -0
  58. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/PROJECT_SYMBOLS.md +0 -0
  59. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/README_AI.md +0 -0
  60. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.12.1.md +0 -0
  61. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.14.0.md +0 -0
  62. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.15.0.md +0 -0
  63. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.17.0.md +0 -0
  64. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.17.2.md +0 -0
  65. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.17.3.md +0 -0
  66. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.18.0.md +0 -0
  67. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.19.0.md +0 -0
  68. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/RELEASE_NOTES_v0.20.0.md +0 -0
  69. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/SECURITY.md +0 -0
  70. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/DOCS_REORGANIZATION_PLAN.md +0 -0
  71. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/README.md +0 -0
  72. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/adr/001-use-tree-sitter-for-parsing.md +0 -0
  73. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/adr/002-external-ai-cli-integration.md +0 -0
  74. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/adr/003-add-swift-objc-support.md +0 -0
  75. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/adr/004-automatic-claude-md-update.md +0 -0
  76. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design/document-aggregation.md +0 -0
  77. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design/initial-design.md +0 -0
  78. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design/kiss-universal-description.md +0 -0
  79. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design/parallel-strategy.md +0 -0
  80. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/architecture/design-philosophy.md +0 -0
  81. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/planning/BRANCH_STATUS.md +0 -0
  82. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/planning/IMPROVEMENT_PLAN.md +0 -0
  83. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/project-index/PROJECT_INDEX.md +0 -0
  84. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/project-index/PROJECT_INDEX_KISS.md +0 -0
  85. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/project-index/PROJECT_INDEX_TEST.md +0 -0
  86. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/releases/RELEASE_v0.7.0_COMPLETE.md +0 -0
  87. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/releases/RELEASE_v0.7.0_STATUS.md +0 -0
  88. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DEVELOPMENT_PLAN_SUMMARY.md +0 -0
  89. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DOCUMENTATION_REORGANIZATION.md +0 -0
  90. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DOCUMENTATION_REVIEW.md +0 -0
  91. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DOCUMENTATION_SUMMARY.md +0 -0
  92. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/archive/summaries/DOCUMENTATION_UPDATE_SUMMARY.md +0 -0
  93. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/QUICK_START_RELEASE.md +0 -0
  94. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/cleanup-complete-summary.md +0 -0
  95. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/git-hooks-async-mode.md +0 -0
  96. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/git-hooks-design-analysis.md +0 -0
  97. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/git-hooks-venv-fix-2026-02-07.md +0 -0
  98. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/gitflow-workflow.md +0 -0
  99. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/github-issue-quick-reference.md +0 -0
  100. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/QUICK_START.md +0 -0
  101. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/README.md +0 -0
  102. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/ai-enhancement-issues.md +0 -0
  103. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/ai-enhancement-ultimate-solution.md +0 -0
  104. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/php-parser.md +0 -0
  105. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/symbol-overload-detection.md +0 -0
  106. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/tech-debt-detection.md +0 -0
  107. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/improvements/tiered-ai-enhancement-strategy.md +0 -0
  108. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/issue-cleanup-log.md +0 -0
  109. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/multi-language-support-workflow.md +0 -0
  110. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/path-fix-impact-analysis-2026-02-08.md +0 -0
  111. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/phase1-cleanup-report.md +0 -0
  112. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/phase2-cleanup-report.md +0 -0
  113. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/phase3-cleanup-report.md +0 -0
  114. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/pypi-release-guide.md +0 -0
  115. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/release-workflow.md +0 -0
  116. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/requirements-workflow.md +0 -0
  117. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/root-directory-analysis.md +0 -0
  118. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/setup.md +0 -0
  119. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/test-architecture.md +0 -0
  120. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/windows-bugs-analysis-2026-02-08.md +0 -0
  121. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/windows-encoding-fix-summary.md +0 -0
  122. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/windows-path-analysis-2026-02-08.md +0 -0
  123. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/development/windows-path-fix-summary-2026-02-08.md +0 -0
  124. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/README.md +0 -0
  125. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/before-after/README.md +0 -0
  126. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/case-studies/php-payment-project.md +0 -0
  127. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/epic12-story12.1-validation.md +0 -0
  128. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/framework.md +0 -0
  129. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/loomgraph-efficiency-comparison.md +0 -0
  130. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/evaluation/php-project-validation.md +0 -0
  131. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/advanced-usage.md +0 -0
  132. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/claude-code-integration.md +0 -0
  133. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/configuration.md +0 -0
  134. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/contributing.md +0 -0
  135. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/getting-started.md +0 -0
  136. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/json-output-integration.md +0 -0
  137. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/guides/loomgraph-integration.md +0 -0
  138. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/internal/git-commit-guide.md +0 -0
  139. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/internal/package-naming.md +0 -0
  140. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/internal/pypi-quickstart.md +0 -0
  141. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/migration/epic18_retrospective.md +0 -0
  142. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/migration/python_migration_report.md +0 -0
  143. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/migration/python_test_analysis.md +0 -0
  144. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/IMPLEMENTATION_GUIDE.md +0 -0
  145. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/PLANNING_COMPLETE.md +0 -0
  146. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/ROADMAP-update-proposal.md +0 -0
  147. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/active/epic22-multi-agent-onboarding.md +0 -0
  148. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic-json-output/plan.md +0 -0
  149. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic10-loomgraph-integration/part1-python-plan.md +0 -0
  150. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic10-loomgraph-integration/part2-php-plan.md +0 -0
  151. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic10-loomgraph-integration/part3-java/plan.md +0 -0
  152. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-call-relationships/design-decisions.md +0 -0
  153. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-call-relationships/discussion.md +0 -0
  154. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-call-relationships/plan.md +0 -0
  155. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-completion-report.md +0 -0
  156. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-final-summary.md +0 -0
  157. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-story11.1-completion.md +0 -0
  158. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic11-story11.3-completion.md +0 -0
  159. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic12-single-file-parse/epic12-development-checklist.md +0 -0
  160. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic12-single-file-parse/epic12-single-file-parse.md +0 -0
  161. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic12-single-file-parse/epic12-task-summary.md +0 -0
  162. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic13-parser-refactoring/epic13-parser-refactoring.md +0 -0
  163. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic13-parser-refactoring/epic13-progress.md +0 -0
  164. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic15-user-onboarding/plan.md +0 -0
  165. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic16-test-suite-refactoring/plan.md +0 -0
  166. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic16-test-suite-refactoring/summary.md +0 -0
  167. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic18-test-migration/TODO.md +0 -0
  168. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic18-test-migration/plan.md +0 -0
  169. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic19-cli-ux-restructuring/TODO.md +0 -0
  170. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic19-cli-ux-restructuring/plan.md +0 -0
  171. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic2-adaptive-symbols/plan.md +0 -0
  172. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic2-adaptive-symbols/validation-report.md +0 -0
  173. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic23-swift-objc-support/epic23-slock-app-validation.md +0 -0
  174. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic23-swift-objc-support/epic23-tech-debt-validation.md +0 -0
  175. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic23-swift-objc-support/plan.md +0 -0
  176. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic3-ai-enhancement/optimization.md +0 -0
  177. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic3-ai-enhancement/refactoring-analysis.md +0 -0
  178. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic3-ai-enhancement/removal-notes.md +0 -0
  179. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/plan.md +0 -0
  180. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/story-4.3-cli-split.md +0 -0
  181. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/story-4.4-validation.md +0 -0
  182. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/story-4.4.5-kiss-validation.md +0 -0
  183. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic4-refactoring/story-4.4.5-kiss.md +0 -0
  184. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic6-framework-routes/git-hooks-ux.md +0 -0
  185. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic6-framework-routes/plan.md +0 -0
  186. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_CURRENT_STATUS.md +0 -0
  187. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_DESIGN_PHILOSOPHY_RETHINK.md +0 -0
  188. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_GREEN_COMPLETE.md +0 -0
  189. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_JAVA_ROADMAP.md +0 -0
  190. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_PERFORMANCE_CORRECTION.md +0 -0
  191. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_REFACTOR_COMPLETE.md +0 -0
  192. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_STORY_7.1.2-7.1.4_DESIGN.md +0 -0
  193. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_STORY_7.1.4_PERFORMANCE_RETHINK.md +0 -0
  194. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/EPIC7_TEST_STRATEGY.md +0 -0
  195. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/plan.md +0 -0
  196. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic7-java-support/story-breakdown.md +0 -0
  197. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/epic9-docstring-extraction/plan.md +0 -0
  198. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/sprints/sprint-1/DAILY_LOG.md +0 -0
  199. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/sprints/sprint-1/STARTED.txt +0 -0
  200. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/ROADMAP_UPDATE_v0.6.0.md +0 -0
  201. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/development-history-stats.md +0 -0
  202. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/development-roadmap-2026-q1-q2.md +0 -0
  203. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/improvement-plan-archive.md +0 -0
  204. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/improvement-proposals.md +0 -0
  205. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/improvement-roadmap.md +0 -0
  206. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/phase1-agile-plan.md +0 -0
  207. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/phase1-quick-start.md +0 -0
  208. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/phase1-story-cards.md +0 -0
  209. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/phase1-story-planning-epic5.md +0 -0
  210. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.1.0-v0.3.1/v0.4.0-execution-plan.md +0 -0
  211. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/completed/v0.18.0-enriched-overview/story.md +0 -0
  212. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/deferred/epic5-intelligent-branch/plan.md +0 -0
  213. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/deferred/epic5-intelligent-branch/summary.md +0 -0
  214. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/deferred/epic6-multiagent-orchestrator.md +0 -0
  215. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/executive-summary.md +0 -0
  216. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/roadmap/2025-Q1.md +0 -0
  217. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/planning/roadmap/dependency-graph-update.md +0 -0
  218. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/project-cleanup-plan.md +0 -0
  219. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/README.md +0 -0
  220. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.10.0.md +0 -0
  221. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.12.0.md +0 -0
  222. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.2.0.md +0 -0
  223. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.3.0.md +0 -0
  224. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.3.1.md +0 -0
  225. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.3.2.md +0 -0
  226. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.4.0.md +0 -0
  227. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.5.0-beta1.md +0 -0
  228. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.7.0.md +0 -0
  229. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.8.0.md +0 -0
  230. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/docs/releases/RELEASE_NOTES_v0.9.0.md +0 -0
  231. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/CLAUDE.md.php-project +0 -0
  232. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/CLAUDE.md.template +0 -0
  233. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/README.md +0 -0
  234. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/README_AI.md +0 -0
  235. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/ai-integration-guide.md +0 -0
  236. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/README_AI.md +0 -0
  237. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/template/README.md +0 -0
  238. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/template/README_AI.md +0 -0
  239. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/template/test_template_extractor.py +0 -0
  240. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/frameworks/template/yourframework_extractor.py +0 -0
  241. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/loomgraph_output.json +0 -0
  242. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/loomgraph_php_output.json +0 -0
  243. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/loomgraph_sample.php +0 -0
  244. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/loomgraph_sample.py +0 -0
  245. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/parse_integration_example.sh +0 -0
  246. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/examples/print_env.py +0 -0
  247. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/hooks/README.md +0 -0
  248. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/hooks/templates/post-commit-update-logic.sh +0 -0
  249. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/hooks/templates/post-commit-v4 +0 -0
  250. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/swift-objc-support-analysis.md +0 -0
  251. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/swift-poc-summary.md +0 -0
  252. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/tech-debt-codeindex-v2.md +0 -0
  253. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/tech-debt-codeindex.md +0 -0
  254. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/tech-debt-loomgraph-v2.md +0 -0
  255. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/tech-debt-loomgraph.md +0 -0
  256. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/reports/workflow-comparison.md +0 -0
  257. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/README.md +0 -0
  258. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/README_AI.md +0 -0
  259. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/bump_version.sh +0 -0
  260. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/check_docs_release.py +0 -0
  261. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/check_version_consistency.py +0 -0
  262. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/close-epic9-issues.sh +0 -0
  263. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/diagnose_ai_failures.py +0 -0
  264. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/hooks/pre-push +0 -0
  265. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/legacy/PROJECT_INDEX.json +0 -0
  266. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/legacy/README.md +0 -0
  267. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/legacy/hierarchical_strategy.py +0 -0
  268. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/release.sh +0 -0
  269. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/test_hook_e2e.sh +0 -0
  270. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validate_php_project.py +0 -0
  271. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validate_real_projects.py +0 -0
  272. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validation/baselines/.gitkeep +0 -0
  273. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validation/baselines/baseline_v0.17.3_20260214_025335.json +0 -0
  274. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validation/projects.yaml +0 -0
  275. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/scripts/validation/reports/.gitkeep +0 -0
  276. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/README.md +0 -0
  277. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/create.sh +0 -0
  278. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/install.sh +0 -0
  279. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/src/mo-arch/SKILL.md +0 -0
  280. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/skills/src/mo-index/SKILL.md +0 -0
  281. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/README_AI.md +0 -0
  282. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/__init__.py +0 -0
  283. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/adaptive_config.py +0 -0
  284. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/adaptive_selector.py +0 -0
  285. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/ai_helper.py +0 -0
  286. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_common.py +0 -0
  287. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_config_commands.py +0 -0
  288. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_docs.py +0 -0
  289. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_parse.py +0 -0
  290. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_scan.py +0 -0
  291. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_symbols.py +0 -0
  292. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/cli_tech_debt.py +0 -0
  293. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/config.py +0 -0
  294. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/config_help.py +0 -0
  295. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/directory_tree.py +0 -0
  296. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/docstring_processor.py +0 -0
  297. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/enricher.py +0 -0
  298. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/errors.py +0 -0
  299. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/extractors/README_AI.md +0 -0
  300. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/extractors/__init__.py +0 -0
  301. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/extractors/spring.py +0 -0
  302. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/extractors/thinkphp.py +0 -0
  303. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/file_classifier.py +0 -0
  304. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/framework_detect.py +0 -0
  305. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/hierarchical.py +0 -0
  306. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/incremental.py +0 -0
  307. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/invoker.py +0 -0
  308. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/objc_association.py +0 -0
  309. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parallel.py +0 -0
  310. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parser.py +0 -0
  311. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/README_AI.md +0 -0
  312. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/__init__.py +0 -0
  313. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/base.py +0 -0
  314. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/__init__.py +0 -0
  315. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/calls.py +0 -0
  316. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/imports.py +0 -0
  317. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/inheritance.py +0 -0
  318. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java/symbols.py +0 -0
  319. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/java_parser.py +0 -0
  320. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/__init__.py +0 -0
  321. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/calls.py +0 -0
  322. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/imports.py +0 -0
  323. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/inheritance.py +0 -0
  324. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/objc/symbols.py +0 -0
  325. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/__init__.py +0 -0
  326. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/calls.py +0 -0
  327. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/imports.py +0 -0
  328. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/inheritance.py +0 -0
  329. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/php/symbols.py +0 -0
  330. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/__init__.py +0 -0
  331. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/calls.py +0 -0
  332. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/imports.py +0 -0
  333. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/inheritance.py +0 -0
  334. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/python/symbols.py +0 -0
  335. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/__init__.py +0 -0
  336. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/calls.py +0 -0
  337. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/imports.py +0 -0
  338. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/inheritance.py +0 -0
  339. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/swift/symbols.py +0 -0
  340. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/__init__.py +0 -0
  341. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/calls.py +0 -0
  342. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/imports.py +0 -0
  343. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/inheritance.py +0 -0
  344. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/typescript/symbols.py +0 -0
  345. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/parsers/utils.py +0 -0
  346. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/route_extractor.py +0 -0
  347. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/route_registry.py +0 -0
  348. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/scanner.py +0 -0
  349. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/semantic_extractor.py +0 -0
  350. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/skill_helpers.py +0 -0
  351. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/smart_writer.py +0 -0
  352. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/symbol_index.py +0 -0
  353. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/symbol_scorer.py +0 -0
  354. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/tech_debt.py +0 -0
  355. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/tech_debt_formatters.py +0 -0
  356. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/templates/__init__.py +0 -0
  357. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/test_smells.py +0 -0
  358. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writer.py +0 -0
  359. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/__init__.py +0 -0
  360. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/core.py +0 -0
  361. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/detailed_generator.py +0 -0
  362. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/navigation_generator.py +0 -0
  363. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/overview_generator.py +0 -0
  364. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/src/codeindex/writers/utils.py +0 -0
  365. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/generator.py +0 -0
  366. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/scripts/analyze_legacy_tests.py +0 -0
  367. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/scripts/compare_coverage.py +0 -0
  368. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/scripts/compare_test_results.py +0 -0
  369. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/specs/java.yaml +0 -0
  370. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/specs/php.yaml +0 -0
  371. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/specs/python.yaml +0 -0
  372. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/test_generator/templates/inheritance_test.py.j2 +0 -0
  373. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/__init__.py +0 -0
  374. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/conftest.py +0 -0
  375. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/README_AI.md +0 -0
  376. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/__init__.py +0 -0
  377. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/test_spring.py +0 -0
  378. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/test_thinkphp.py +0 -0
  379. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/extractors/test_thinkphp_description.py +0 -0
  380. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/README.md +0 -0
  381. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/cli_scan_defaults.feature +0 -0
  382. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/help_system.feature +0 -0
  383. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/init_wizard.feature +0 -0
  384. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/symbol_overload_detection.feature +0 -0
  385. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/tech_debt_detection.feature +0 -0
  386. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/features/tech_debt_reporting.feature +0 -0
  387. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/Controller.php +0 -0
  388. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/Service.java +0 -0
  389. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/Simple.java +0 -0
  390. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/broken.py +0 -0
  391. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/complete.py +0 -0
  392. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/service.ts +0 -0
  393. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/simple.php +0 -0
  394. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/simple.py +0 -0
  395. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/cli_parse/unsupported.txt +0 -0
  396. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/enum.java +0 -0
  397. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/generics.java +0 -0
  398. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/imports.java +0 -0
  399. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/interface.java +0 -0
  400. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/record.java +0 -0
  401. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/sealed_class.java +0 -0
  402. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/simple_class.java +0 -0
  403. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/Application.java +0 -0
  404. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/User.java +0 -0
  405. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/UserController.java +0 -0
  406. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/UserRepository.java +0 -0
  407. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring/UserService.java +0 -0
  408. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/java/spring_controller.java +0 -0
  409. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/typescript/app.js +0 -0
  410. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/typescript/component.tsx +0 -0
  411. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/fixtures/typescript/service.ts +0 -0
  412. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/README.md +0 -0
  413. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchical_test/level1/file1.py +0 -0
  414. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchical_test/level1/level2a/file2.py +0 -0
  415. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchical_test/level1/level2a/level3/file4.py +0 -0
  416. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchical_test/level1/level2b/file3.py +0 -0
  417. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/legacy/test_hierarchy_simple.py +0 -0
  418. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_adaptive_config.py +0 -0
  419. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_adaptive_selector.py +0 -0
  420. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_ai_helper.py +0 -0
  421. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_backward_compatibility.py +0 -0
  422. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_call_integration.py +0 -0
  423. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_debt_scan.py +0 -0
  424. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_docstring_options.py +0 -0
  425. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_json.py +0 -0
  426. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_parse.py +0 -0
  427. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_scan_defaults_bdd.py +0 -0
  428. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_cli_tech_debt.py +0 -0
  429. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_config_adaptive.py +0 -0
  430. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_dataclass_structure.py +0 -0
  431. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_directory_tree.py +0 -0
  432. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_docstring_config.py +0 -0
  433. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_docstring_processor.py +0 -0
  434. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_enricher.py +0 -0
  435. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_enricher_integration.py +0 -0
  436. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_error_handling.py +0 -0
  437. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_file_classifier.py +0 -0
  438. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_help_system_bdd.py +0 -0
  439. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_hook_post_commit.py +0 -0
  440. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_hooks_config.py +0 -0
  441. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_integration_swift_objc.py +0 -0
  442. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_annotations.py +0 -0
  443. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_calls.py +0 -0
  444. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_edge_cases.py +0 -0
  445. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_error_recovery.py +0 -0
  446. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_generic_bounds.py +0 -0
  447. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_inheritance.py +0 -0
  448. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_lambda.py +0 -0
  449. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_lombok.py +0 -0
  450. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_module.py +0 -0
  451. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_parser.py +0 -0
  452. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_spring.py +0 -0
  453. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_java_throws.py +0 -0
  454. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_json_output.py +0 -0
  455. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_lazy_loading.py +0 -0
  456. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_loomgraph_integration.py +0 -0
  457. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_objc_association_utils.py +0 -0
  458. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parallel_scan.py +0 -0
  459. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser.py +0 -0
  460. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_detection.py +0 -0
  461. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_objc_association.py +0 -0
  462. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_objc_basic.py +0 -0
  463. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_objc_bridging.py +0 -0
  464. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_objc_categories.py +0 -0
  465. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_docstrings.py +0 -0
  466. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_extensions.py +0 -0
  467. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_generics.py +0 -0
  468. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_inheritance.py +0 -0
  469. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_integration.py +0 -0
  470. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_poc.py +0 -0
  471. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_properties.py +0 -0
  472. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_property_wrappers.py +0 -0
  473. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_protocols.py +0 -0
  474. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_parser_swift_signatures.py +0 -0
  475. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_calls.py +0 -0
  476. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_comment_extraction.py +0 -0
  477. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_docstring_extraction.py +0 -0
  478. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_import_alias.py +0 -0
  479. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_inheritance.py +0 -0
  480. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_php_loomgraph_integration.py +0 -0
  481. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_project_index_semantic.py +0 -0
  482. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_python_calls.py +0 -0
  483. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_python_docstring_description.py +0 -0
  484. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_python_import_alias.py +0 -0
  485. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_python_inheritance.py +0 -0
  486. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_extractor.py +0 -0
  487. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_info.py +0 -0
  488. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_registry.py +0 -0
  489. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_table_description.py +0 -0
  490. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_route_table_display.py +0 -0
  491. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_scanall_auto_ai.py +0 -0
  492. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_scanner_passthrough.py +0 -0
  493. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_semantic_extractor.py +0 -0
  494. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_skill_helpers.py +0 -0
  495. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer.py +0 -0
  496. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_adaptive.py +0 -0
  497. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_docstring.py +0 -0
  498. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_enriched.py +0 -0
  499. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_integration.py +0 -0
  500. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_smart_writer_semantic.py +0 -0
  501. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_story_4_4_integration.py +0 -0
  502. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_symbol_overload.py +0 -0
  503. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_symbol_scorer.py +0 -0
  504. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_bdd.py +0 -0
  505. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_detector.py +0 -0
  506. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_formatters.py +0 -0
  507. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_ios.py +0 -0
  508. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_java.py +0 -0
  509. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_tech_debt_reporter.py +0 -0
  510. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_test_smells.py +0 -0
  511. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_thinkphp_route_extractor.py +0 -0
  512. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_typescript_integration.py +0 -0
  513. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_typescript_parser.py +0 -0
  514. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/test_windows_path_optimization.py +0 -0
  515. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/writers/__init__.py +0 -0
  516. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/writers/test_generators.py +0 -0
  517. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/tests/writers/test_utils.py +0 -0
  518. {ai_codeindex-0.23.0 → ai_codeindex-0.23.2}/uv.lock +0 -0
@@ -41,7 +41,7 @@ jobs:
41
41
 
42
42
  - name: Run tests with coverage
43
43
  run: |
44
- pytest -v --cov=src/codeindex --cov-report=term-missing --cov-report=xml
44
+ pytest -v --cov=src/codeindex --cov-report=term-missing --cov-report=xml --cov-fail-under=78
45
45
 
46
46
  - name: Upload coverage to Codecov (Ubuntu Python 3.11 only)
47
47
  if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
@@ -60,12 +60,16 @@ jobs:
60
60
  with:
61
61
  python-version: '3.11'
62
62
 
63
- - name: Install ruff
64
- run: pip install ruff
63
+ - name: Install lint tools
64
+ run: pip install ruff mypy
65
65
 
66
66
  - name: Run ruff check
67
67
  run: ruff check src/ tests/ test_generator/
68
68
 
69
+ - name: Run mypy type check (informational)
70
+ run: mypy src/codeindex/parser.py src/codeindex/scanner.py src/codeindex/config.py
71
+ continue-on-error: true
72
+
69
73
  build-check:
70
74
  runs-on: ubuntu-latest
71
75
  steps:
@@ -123,3 +123,8 @@ language_backend:
123
123
  # list of regex patterns which, when matched, mark a memory entry as read‑only.
124
124
  # Extends the list from the global configuration, merging the two lists.
125
125
  read_only_memory_patterns: []
126
+
127
+ # line ending convention to use when writing source files.
128
+ # Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default)
129
+ # This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings.
130
+ line_ending:
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.23.2] - 2026-04-14
11
+
12
+ ### Changed
13
+
14
+ - **Hook shebangs**: `#!/bin/zsh` → `#!/usr/bin/env bash` for cross-platform portability.
15
+ - **Unified hook install**: `make install-hooks` now delegates to `codeindex hooks install --all`.
16
+ - **Post-commit logging**: stderr redirected to `~/.codeindex/hooks/post-commit.log` instead of `/dev/null`.
17
+ - **Debug detection**: Replaced ~50 lines of regex-based L2 check with ruff `T201`/`T100` rules.
18
+
19
+ ### Added
20
+
21
+ - **`hook-common.sh` versioned**: Added to `scripts/hooks/` and auto-copied on `codeindex hooks install`.
22
+ - **mypy**: Added as dev dependency with baseline config; CI runs informational type check on core modules.
23
+ - **Coverage gate**: CI enforces `--cov-fail-under=78` to prevent coverage regression.
24
+ - **`make typecheck`**: New Makefile target for mypy on core modules.
25
+
26
+ ## [0.23.1] - 2026-03-15
27
+
28
+ ### Added
29
+
30
+ - **`codeindex claude-md update/status` CLI commands**: Manage codeindex section in project CLAUDE.md with version tracking.
31
+ - **Startup version-outdated hint**: Every `codeindex` CLI invocation checks if CLAUDE.md section is outdated and prints a reminder.
32
+ - **Unified `claude_md.py` module**: Single source of truth for CLAUDE.md injection, replacing fragmented hooks.py + init_wizard.py logic.
33
+
34
+ ### Changed
35
+
36
+ - **CLAUDE.md template simplified**: 130 lines → 22 lines. Removed hardcoded paths, language support table, and verbose configuration examples.
37
+ - **Unified marker format**: `<!-- codeindex:start v{version} -->` with backward compatibility for old markers without version.
38
+ - **`init_wizard.py` injection**: Now delegates to `claude_md.py` module instead of inline template.
39
+
40
+ ### Fixed
41
+
42
+ - **Dead code cleanup**: Removed `hooks.py` `post_install_update_guide()` (181 lines) that was never wired to pip entry points.
43
+ - **Dead import fix**: `cli_config.py` referenced non-existent `install_hooks` from `hooks.py`, now uses correct `install_hook` from `cli_hooks.py`.
44
+
10
45
  ## [0.23.0] - 2026-03-12
11
46
 
12
47
  ### Added
@@ -0,0 +1,186 @@
1
+ # CLAUDE.md
2
+
3
+ **For**: Claude Code working with this repository
4
+ **Version**: v0.23.1
5
+
6
+ ---
7
+
8
+ ## Part 1: Understanding & Navigating
9
+
10
+ ### Code Navigation Priority
11
+
12
+ 1. `/README_AI.md` → Project overview
13
+ 2. Serena `find_symbol()` → Precise symbol location
14
+ 3. `/src/codeindex/README_AI.md` → Core module details
15
+ 4. Serena `find_referencing_symbols()` → Call relationships
16
+
17
+ ### Key Files
18
+
19
+ | File | Purpose |
20
+ |------|---------|
21
+ | `README_AI.md` | AI-generated directory docs |
22
+ | `PROJECT_SYMBOLS.md` | Global symbol index |
23
+ | `.codeindex.yaml` | Scan configuration |
24
+ | `CHANGELOG.md` | Version history |
25
+ | `docs/planning/*.md` | Epic/Story design decisions |
26
+ | `docs/architecture/design-philosophy.md` | Core design principles |
27
+
28
+ ### Serena MCP Quick Reference
29
+
30
+ ```python
31
+ find_symbol(name_path_pattern="SmartWriter/write_readme")
32
+ find_referencing_symbols(name_path="calculate_limit", relative_path="src/codeindex/adaptive_selector.py")
33
+ get_symbols_overview(relative_path="src/codeindex/parser.py", depth=1)
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Part 2: Development Workflow
39
+
40
+ ### Virtual Environment (REQUIRED)
41
+
42
+ ```bash
43
+ source .venv/bin/activate
44
+ which python3 # Must show .venv path
45
+ pip install -e ".[dev,all]"
46
+ ```
47
+
48
+ Without venv: pip fails (PEP 668), pre-push hooks fail (`ModuleNotFoundError`), `make release` fails.
49
+
50
+ ### Quick Start Commands
51
+
52
+ ```bash
53
+ # Development
54
+ pytest -v # Run tests
55
+ ruff check src/ # Lint
56
+ pytest --cov=src/codeindex # Coverage
57
+
58
+ # codeindex usage
59
+ codeindex scan-all --fallback # Generate all indexes
60
+ codeindex parse src/myfile.py # Parse single file
61
+ codeindex symbols # Global symbol index
62
+ codeindex tech-debt ./src # Code quality analysis
63
+ codeindex hooks status # Git hooks status
64
+ ```
65
+
66
+ ### Commit Message Format
67
+
68
+ ```
69
+ feat(scope): add new feature
70
+ fix(scope): fix bug
71
+ docs(scope): update documentation
72
+ test(scope): add tests
73
+ refactor(scope): refactor code
74
+ ```
75
+
76
+ ### Documentation Update Rules
77
+
78
+ | Change Type | Documents to Update |
79
+ |-------------|---------------------|
80
+ | New feature | CHANGELOG.md, README.md, relevant README_AI.md |
81
+ | Bug fix | CHANGELOG.md |
82
+ | Config change | .codeindex.yaml example, CHANGELOG.md |
83
+ | Major release | CHANGELOG.md, RELEASE_NOTES_vX.X.X.md |
84
+
85
+ After code changes: `codeindex scan-all --fallback`
86
+
87
+ ### Epic Completion Workflow
88
+
89
+ 1. Update `docs/planning/ROADMAP.md` (version + epic status)
90
+ 2. Archive: `docs/planning/active/ → docs/planning/completed/`
91
+ 3. Update `docs/planning/README.md` index
92
+
93
+ ---
94
+
95
+ ## Part 2.5: Design Philosophy
96
+
97
+ Read `docs/architecture/design-philosophy.md` when:
98
+ - Adding new language support
99
+ - Implementing features involving ParseResult
100
+ - Making architectural decisions (AI vs programmatic, parallelization)
101
+
102
+ **Core principles**:
103
+ - We extract structure (What), AI understands semantics (Why)
104
+ - 3 layers: Structure Extraction (tree-sitter) → Automated Analysis → AI Enhancement
105
+ - AI invocation is the bottleneck (99%), not parsing
106
+ - ThreadPool for all languages (I/O bound)
107
+
108
+ ---
109
+
110
+ ## Part 3: Architecture Reference
111
+
112
+ ### Three-Repo Architecture
113
+
114
+ > codeindex **sees** (AST parsing), LoomGraph **thinks** (pipeline + skills), LightRAG **remembers** (storage + retrieval)
115
+
116
+ | Repo | Role | Local Path |
117
+ |------|------|------------|
118
+ | **codeindex** | AST parsing, Symbol/Call/Inheritance extraction | `/Users/dreamlinx/Projects/codeindex` |
119
+ | **LoomGraph** | Pipeline dispatch, Embedding, CLI/Skill | `/Users/dreamlinx/Projects/LoomGraph` |
120
+ | **LightRAG** | Graph storage, vector retrieval | `/Users/dreamlinx/Projects/LightRAG` |
121
+
122
+ Data flow: `codeindex scan` → ParseResult → `LoomGraph embed/inject` → LightRAG API → PostgreSQL
123
+
124
+ ### Core Pipeline
125
+
126
+ ```
127
+ Directory → Scanner → [files] → Parser (tree-sitter) → [ParseResult]
128
+ → SmartWriter → Writer → Invoker (AI CLI) → README_AI.md
129
+ ```
130
+
131
+ ### Key Data Types
132
+
133
+ - `ScanResult`: path, files, subdirs
134
+ - `ParseResult`: path, symbols, imports, module_docstring, error
135
+ - `Symbol`: name, kind, signature, docstring, line_start, line_end
136
+ - `Import`: module, names, is_from
137
+ - `Config`: Loaded from `.codeindex.yaml`
138
+
139
+ ### Configuration
140
+
141
+ ```yaml
142
+ version: 1
143
+ ai_command: 'claude -p "{prompt}" --allowedTools "Read"'
144
+ include: [src/]
145
+ exclude: ["**/__pycache__/**"]
146
+ languages: [python, php, java, typescript, javascript, swift, objc]
147
+ output_file: README_AI.md
148
+
149
+ symbols:
150
+ adaptive_symbols:
151
+ enabled: true
152
+ ```
153
+
154
+ Full config: `examples/.codeindex.yaml` | Help: `codeindex config explain <param>`
155
+
156
+ ---
157
+
158
+ ## Part 4: Extension Development
159
+
160
+ ### Adding Language/Framework Support
161
+
162
+ 1. Write tests: `tests/extractors/test_myframework.py`
163
+ 2. Implement: `src/codeindex/extractors/myframework.py`
164
+ 3. Auto-registered via `extractors/__init__.py`
165
+
166
+ Reference: `src/codeindex/extractors/thinkphp.py`
167
+
168
+ ### Git Hooks
169
+
170
+ - pre-commit: lint + debug checks
171
+ - post-commit: auto README updates
172
+ - pre-push: test validation
173
+
174
+ Management: `codeindex hooks install/uninstall/status`
175
+ Guide: `docs/guides/git-hooks-integration.md`
176
+
177
+ ---
178
+
179
+ ## Common Mistakes
180
+
181
+ 1. **Directly modify README_AI.md** → It gets overwritten. Modify source docstrings instead.
182
+ 2. **Skip tests** → TDD required. Write tests first.
183
+ 3. **Glob/Grep for exploration** → Use Serena MCP tools.
184
+ 4. **Ignore README_AI.md** → Always read it first.
185
+ 5. **Commit to develop/master directly** → Use feature branches.
186
+ 6. **Forget venv** → Always `source .venv/bin/activate` first.
@@ -39,11 +39,9 @@ install: ## Install package in editable mode
39
39
  install-dev: ## Install with dev dependencies
40
40
  pip install -e ".[dev,all]"
41
41
 
42
- install-hooks: ## Install Git hooks (pre-commit, pre-push)
42
+ install-hooks: ## Install Git hooks via codeindex CLI
43
43
  @echo "$(CYAN)Installing Git hooks...$(RESET)"
44
- @mkdir -p .git/hooks
45
- @cp scripts/hooks/pre-push .git/hooks/pre-push
46
- @chmod +x .git/hooks/pre-push
44
+ @codeindex hooks install --all --force
47
45
  @echo "$(GREEN)✓ Git hooks installed$(RESET)"
48
46
 
49
47
  # ============================================================================
@@ -65,6 +63,9 @@ lint: ## Run linter (ruff)
65
63
  lint-fix: ## Auto-fix linting issues
66
64
  ruff check --fix src/ tests/
67
65
 
66
+ typecheck: ## Run mypy type check on core modules
67
+ mypy src/codeindex/parser.py src/codeindex/scanner.py src/codeindex/config.py
68
+
68
69
  format: ## Format code with ruff
69
70
  ruff format src/ tests/
70
71
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ai-codeindex
3
- Version: 0.23.0
3
+ Version: 0.23.2
4
4
  Summary: AI-native code indexing tool for large codebases
5
5
  Project-URL: Homepage, https://github.com/dreamlx/codeindex
6
6
  Project-URL: Documentation, https://github.com/dreamlx/codeindex
@@ -32,6 +32,7 @@ Requires-Dist: tree-sitter-python>=0.21; extra == 'all'
32
32
  Requires-Dist: tree-sitter-swift>=0.0.1; extra == 'all'
33
33
  Requires-Dist: tree-sitter-typescript>=0.23.2; extra == 'all'
34
34
  Provides-Extra: dev
35
+ Requires-Dist: mypy>=1.0; extra == 'dev'
35
36
  Requires-Dist: pytest-bdd>=7.0; extra == 'dev'
36
37
  Requires-Dist: pytest-cov>=4.0; extra == 'dev'
37
38
  Requires-Dist: pytest>=7.0; extra == 'dev'
@@ -56,14 +57,16 @@ Description-Content-Type: text/markdown
56
57
 
57
58
  # codeindex
58
59
 
60
+ [🇬🇧 English](README.md) | [🇨🇳 中文](README_zh.md)
61
+
59
62
  [![PyPI version](https://badge.fury.io/py/ai-codeindex.svg)](https://badge.fury.io/py/ai-codeindex)
60
63
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
61
64
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
62
65
  [![Tests](https://github.com/dreamlx/codeindex/workflows/Tests/badge.svg)](https://github.com/dreamlx/codeindex/actions)
63
66
 
64
- **Enterprise-grade Code Intelligence Platform — Multi-language AST parser for AI-assisted development, code quality analysis, and knowledge graph integration.**
67
+ **Enterprise-grade Code Intelligence Platform — Make AI agents understand your codebase through semantic navigation, not grep.**
65
68
 
66
- codeindex extracts symbols, inheritance relationships, call graphs, and imports from Python, PHP, Java, TypeScript, JavaScript, Swift, and Objective-C using tree-sitter. Designed for **enterprise environments** with intranet isolation, providing structured code data for AI tools, knowledge graphs, and code intelligence platforms.
69
+ codeindex generates AI-readable documentation with **two-phase pipeline**: structural indexing (AST parsing via tree-sitter) + AI-powered module descriptions. AI agents can browse README_AI.md hierarchy, see module purposes at a glance, and navigate directly to the right code — across Python, PHP, Java, TypeScript, JavaScript, Swift, and Objective-C. Designed for **enterprise environments** with intranet isolation.
67
70
 
68
71
  **🏢 Enterprise Ready**: ✅ Intranet compatible ✅ Self-contained ✅ Version stable ✅ Data sovereignty
69
72
 
@@ -75,18 +78,28 @@ codeindex extracts symbols, inheritance relationships, call graphs, and imports
75
78
 
76
79
  ## Features
77
80
 
81
+ ### Core: Code Understanding for AI Agents
82
+
83
+ - **Two-phase documentation pipeline** (v0.23.0) — Phase 1: structural README_AI.md via SmartWriter; Phase 2: AI generates one-line functional descriptions per module. AI agents can browse README_AI.md hierarchy and find the right module **without grep**.
84
+ - **Smart indexing** — Tiered documentation (overview → navigation → detailed) optimized for AI agents, ≤50KB per file
85
+ - **Auto-AI enrichment** — When `ai_command` is configured, `scan-all` automatically enables AI module descriptions. Use `--no-ai` to opt out
86
+ - **Auto-update hooks** — Post-commit hook automatically regenerates README_AI.md for changed directories. Thin wrapper pattern: `pip upgrade` auto-updates hook logic
87
+
88
+ ### Parsing & Analysis
89
+
78
90
  - **Multi-language AST parsing** — Python, PHP, Java, TypeScript, JavaScript, Swift, Objective-C via tree-sitter (Go, Rust, C# planned)
79
- - **AI-powered documentation** — Generate README files using Claude, GPT, or any AI CLI
80
- - **Single file parse** — `codeindex parse <file>` with JSON output for tool integration
81
- - **Structured JSON output** — `--output json` for CI/CD, knowledge graphs, and downstream tools
82
91
  - **Call relationship extraction** — Function/method call graphs across Python, Java, PHP, TypeScript, JavaScript
83
92
  - **Inheritance extraction** — Class hierarchy and interface relationships
84
93
  - **Framework route extraction** — ThinkPHP and Spring Boot route tables (more planned)
85
- - **Technical debt analysis** — Detect large files, god classes, symbol overload
86
- - **Smart indexing** — Tiered documentation (overview navigation detailed) optimized for AI agents
94
+ - **Technical debt analysis** — Detect large files, god classes, symbol overload, test smells
95
+ - **Single file parse** — `codeindex parse <file>` with JSON output for tool integration
96
+ - **Structured JSON output** — `--output json` for CI/CD, knowledge graphs, and downstream tools
97
+
98
+ ### Developer Experience
99
+
87
100
  - **Adaptive symbol extraction** — Dynamic 5–150 symbols per file based on size
88
- - **CLAUDE.md injection** — `codeindex init` auto-configures Claude Code integration (v0.17.0)
89
- - **Auto-update guide** — Post-install hook automatically updates `~/.claude/CLAUDE.md` after `pip upgrade` (v0.22.2)
101
+ - **CLAUDE.md injection** — `codeindex init` auto-configures Claude Code integration
102
+ - **Auto-update guide** — Post-install hook automatically updates `~/.claude/CLAUDE.md` after `pip upgrade`
90
103
  - **Template-based test generation** — YAML + Jinja2 for rapid language support (88–91% time savings)
91
104
  - **Parallel scanning** — Concurrent directory processing with configurable workers
92
105
 
@@ -101,18 +114,19 @@ codeindex extracts symbols, inheritance relationships, call graphs, and imports
101
114
  ```bash
102
115
  # Enterprise developer workflow
103
116
  git clone <internal-repo>
104
- codeindex scan-all --fallback # Generate complete index
105
- # Read README_AI.md for architecture understanding
106
- # Check PROJECT_SYMBOLS.md for symbol lookup
117
+ codeindex init # Configure project
118
+ codeindex scan-all # Structural + AI descriptions (auto)
119
+ # AI agent reads README_AI.md sees module purposes → navigates directly
120
+ # No grep needed for code discovery
107
121
  codeindex tech-debt src/ --output review.md # Code quality analysis
108
122
  ```
109
123
 
110
124
  **Why enterprises choose codeindex**:
125
+ - ✅ **Semantic navigation** — AI agents understand module purposes from README_AI.md hierarchy
111
126
  - ✅ **Intranet compatible** — no external dependencies, fully offline
112
127
  - ✅ **Self-contained** — no upstream MCP servers required
113
128
  - ✅ **Version stable** — enterprise-controlled release cycle
114
129
  - ✅ **Data sovereignty** — code never leaves internal network
115
- - ✅ **Customizable** — extensible for internal languages/frameworks
116
130
 
117
131
  ---
118
132
 
@@ -142,18 +156,18 @@ Without codeindex, LoomGraph cannot function. See [LoomGraph Integration Guide](
142
156
 
143
157
  **With Serena MCP**: For individual developers using Claude Code + Serena MCP, codeindex provides **complementary value**:
144
158
 
159
+ - **codeindex** (build-time): Semantic architecture map (README_AI.md with module descriptions) + quality analysis
145
160
  - **Serena** (real-time): Precise symbol navigation (`find_symbol`, `find_referencing_symbols`)
146
- - **codeindex** (build-time): Architecture overview (README_AI.md) + quality analysis (tech-debt)
147
161
 
148
162
  ```bash
149
163
  # Personal developer workflow
150
164
  codeindex init # Setup CLAUDE.md integration
151
- codeindex scan-all --fallback # Generate architecture docs
152
- # Claude Code reads README_AI.md first, then uses Serena for precise navigation
153
- codeindex tech-debt src/ # Detect technical debt
165
+ codeindex scan-all # Structural + AI descriptions (auto)
166
+ codeindex hooks install post-commit # Auto-update on commit
167
+ # Claude Code reads README_AI.md → understands module purpose → uses Serena for details
154
168
  ```
155
169
 
156
- **Relationship**: codeindex and Serena are **not competitors** but **complementary tools** — codeindex provides the "map," Serena provides the "GPS navigation."
170
+ **Relationship**: codeindex provides the "map with labels," Serena provides the "GPS navigation."
157
171
 
158
172
  ---
159
173
 
@@ -210,18 +224,17 @@ This creates:
210
224
  ### 2. Scan Your Codebase
211
225
 
212
226
  ```bash
213
- # Scan all directories (structural documentation, no AI needed)
227
+ # Scan all directories
228
+ # When ai_command is configured → auto Phase 1 (structural) + Phase 2 (AI descriptions)
229
+ # Without ai_command → Phase 1 only (structural)
214
230
  codeindex scan-all
215
231
 
232
+ # Structural only (skip AI enrichment)
233
+ codeindex scan-all --no-ai
234
+
216
235
  # Scan a single directory
217
236
  codeindex scan ./src/auth
218
237
 
219
- # When ai_command is configured, auto-enables AI module descriptions
220
- codeindex scan-all
221
-
222
- # Disable AI enrichment (structural only)
223
- codeindex scan-all --no-ai
224
-
225
238
  # Full AI-generated README for a single directory
226
239
  codeindex scan ./src/auth --ai
227
240
 
@@ -388,17 +401,45 @@ codeindex debt-scan ./src --format json
388
401
 
389
402
  ## How It Works
390
403
 
391
- ### Standalone Mode
404
+ ### Two-Phase Pipeline (v0.23.0)
392
405
 
393
406
  ```
394
- Directory Scanner → Parser (tree-sitter) → Smart Writer → README_AI.md
407
+ Phase 1 (Structural):
408
+ Directory → Scanner → Parser (tree-sitter) → SmartWriter → README_AI.md
409
+
410
+ Phase 2 (AI Enrichment, automatic when ai_command configured):
411
+ README_AI.md → symbol names + file names → AI → one-line description → blockquote injection
395
412
  ```
396
413
 
414
+ **Phase 1: Structural generation** (always runs)
397
415
  1. **Scanner** — walks directories, filters by config patterns
398
416
  2. **Parser** — extracts symbols (classes, functions, imports, calls, inheritance) via tree-sitter
399
- 3. **Smart Writer** — generates tiered documentation with size limits (≤50KB)
417
+ 3. **SmartWriter** — generates tiered documentation with size limits (≤50KB)
400
418
  4. **Output** — `README_AI.md` optimized for AI consumption, or JSON for tool integration
401
419
 
420
+ **Phase 2: AI enrichment** (auto-enabled when `ai_command` configured)
421
+ - Generates a one-line functional description for each non-leaf module
422
+ - Writes as blockquote: `> 会员等级管理、积分兑换、权益卡券`
423
+ - ~200-400 tokens per directory, 10-20x cheaper than full AI generation
424
+ - Parent directories read child descriptions for hierarchical navigation
425
+
426
+ ### Before vs After: Code Navigation
427
+
428
+ ```
429
+ Before (structural only):
430
+ └── Application/
431
+ ├── Vip/ — 48 files | 386 symbols ← AI agent cannot determine purpose
432
+ ├── Pay/ — 23 files | 178 symbols
433
+ └── SmallProgramApi/ — 31 files | 245 symbols
434
+
435
+ After (structural + AI enrichment):
436
+ └── Application/
437
+ ├── Vip/ — 会员等级管理、积分兑换、权益卡券 | 48 files
438
+ ├── Pay/ — 支付网关(支付宝/微信/退款) | 23 files
439
+ └── SmallProgramApi/ — 小程序端API(登录、头像、商品) | 31 files
440
+ ↑ AI agent can navigate directly
441
+ ```
442
+
402
443
  ### Three-Repo Architecture (Enterprise Knowledge Graph)
403
444
 
404
445
  ```
@@ -490,14 +531,14 @@ See [Release Automation Guide](docs/development/QUICK_START_RELEASE.md) for deta
490
531
 
491
532
  ## Roadmap
492
533
 
493
- **Current version**: v0.23.0
534
+ **Current version**: v0.23.2
494
535
 
495
536
  **Recent milestones**:
537
+ - v0.23.0 — **AI-Enhanced Module Descriptions**: two-phase pipeline, auto-AI enrichment, post-commit thin wrapper
496
538
  - v0.22.2 — Auto-update CLAUDE.md on `pip upgrade`, `/codeindex-update-guide` skill
497
539
  - v0.22.0 — Unified tech-debt + test smells analysis
498
540
  - v0.21.0 — Swift & Objective-C language support
499
541
  - v0.19.0 — TypeScript/JavaScript support with call extraction
500
- - v0.17.0 — CLAUDE.md injection via `codeindex init`
501
542
 
502
543
  **Next**:
503
544
  - Framework routes expansion: Express, Laravel, FastAPI, Django (Epic 17)