ai-codeindex 0.22.2__tar.gz → 0.23.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.claude/skills/mo-hooks/SKILL.md +24 -5
  2. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.claude/skills/mo-index/SKILL.md +10 -7
  3. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/project.yml +5 -0
  4. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/CHANGELOG.md +56 -0
  5. ai_codeindex-0.23.1/CLAUDE.md +186 -0
  6. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/PKG-INFO +73 -27
  7. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/README.md +72 -26
  8. ai_codeindex-0.23.1/README_zh.md +478 -0
  9. ai_codeindex-0.23.1/RELEASE_NOTES_v0.23.1.md +28 -0
  10. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/advanced-usage.md +13 -8
  11. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/getting-started.md +6 -3
  12. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/git-hooks-integration.md +43 -23
  13. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/README.md +1 -1
  14. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/ROADMAP.md +2 -2
  15. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/pyproject.toml +1 -1
  16. ai_codeindex-0.23.1/src/codeindex/README_AI.md +1685 -0
  17. ai_codeindex-0.23.1/src/codeindex/claude_md.py +153 -0
  18. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli.py +6 -1
  19. ai_codeindex-0.23.1/src/codeindex/cli_claude_md.py +91 -0
  20. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_config.py +2 -2
  21. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_hooks.py +109 -103
  22. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_scan.py +148 -13
  23. ai_codeindex-0.23.1/src/codeindex/enricher.py +182 -0
  24. ai_codeindex-0.23.1/src/codeindex/hooks.py +13 -0
  25. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/init_wizard.py +5 -41
  26. ai_codeindex-0.23.1/src/codeindex/templates/claude_md_core.md +22 -0
  27. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/utils.py +8 -0
  28. ai_codeindex-0.23.1/tests/README_AI.md +1551 -0
  29. ai_codeindex-0.23.1/tests/test_claude_md.py +216 -0
  30. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_claude_md_injection.py +7 -11
  31. ai_codeindex-0.23.1/tests/test_enricher.py +208 -0
  32. ai_codeindex-0.23.1/tests/test_enricher_integration.py +96 -0
  33. ai_codeindex-0.23.1/tests/test_hook_post_commit.py +108 -0
  34. ai_codeindex-0.23.1/tests/test_hooks.py +23 -0
  35. ai_codeindex-0.23.1/tests/test_hooks_integration.py +125 -0
  36. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_init_wizard_bdd.py +2 -2
  37. ai_codeindex-0.23.1/tests/test_scanall_auto_ai.py +165 -0
  38. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/writers/test_utils.py +50 -0
  39. ai_codeindex-0.22.2/CLAUDE.md +0 -805
  40. ai_codeindex-0.22.2/src/codeindex/README_AI.md +0 -261
  41. ai_codeindex-0.22.2/src/codeindex/hooks.py +0 -180
  42. ai_codeindex-0.22.2/src/codeindex/templates/claude_md_core.md +0 -120
  43. ai_codeindex-0.22.2/tests/README_AI.md +0 -264
  44. ai_codeindex-0.22.2/tests/test_hooks.py +0 -218
  45. ai_codeindex-0.22.2/tests/test_hooks_integration.py +0 -144
  46. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.claude/skills/mo-arch/SKILL.md +0 -0
  47. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.editorconfig +0 -0
  48. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  49. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  50. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/enhancement.md +0 -0
  51. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/epic.md +0 -0
  52. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  53. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/workflows/ci.yml +0 -0
  54. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/workflows/publish.yml +0 -0
  55. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.gitignore +0 -0
  56. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/.gitignore +0 -0
  57. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/design_philosophy.md +0 -0
  58. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/development_workflow.md +0 -0
  59. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/project_overview.md +0 -0
  60. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/release_automation.md +0 -0
  61. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/suggested_commands.md +0 -0
  62. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/CODE_OF_CONDUCT.md +0 -0
  63. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/CONTRIBUTING.md +0 -0
  64. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/FOR_LOOMGRAPH.md +0 -0
  65. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/LICENSE +0 -0
  66. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/Makefile +0 -0
  67. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/PROJECT_SYMBOLS.md +0 -0
  68. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/README_AI.md +0 -0
  69. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.12.1.md +0 -0
  70. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.14.0.md +0 -0
  71. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.15.0.md +0 -0
  72. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.17.0.md +0 -0
  73. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.17.2.md +0 -0
  74. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.17.3.md +0 -0
  75. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.18.0.md +0 -0
  76. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.19.0.md +0 -0
  77. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.20.0.md +0 -0
  78. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/SECURITY.md +0 -0
  79. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/DOCS_REORGANIZATION_PLAN.md +0 -0
  80. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/README.md +0 -0
  81. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/adr/001-use-tree-sitter-for-parsing.md +0 -0
  82. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/adr/002-external-ai-cli-integration.md +0 -0
  83. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/adr/003-add-swift-objc-support.md +0 -0
  84. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/adr/004-automatic-claude-md-update.md +0 -0
  85. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design/document-aggregation.md +0 -0
  86. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design/initial-design.md +0 -0
  87. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design/kiss-universal-description.md +0 -0
  88. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design/parallel-strategy.md +0 -0
  89. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design-philosophy.md +0 -0
  90. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/planning/BRANCH_STATUS.md +0 -0
  91. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/planning/IMPROVEMENT_PLAN.md +0 -0
  92. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/project-index/PROJECT_INDEX.md +0 -0
  93. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/project-index/PROJECT_INDEX_KISS.md +0 -0
  94. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/project-index/PROJECT_INDEX_TEST.md +0 -0
  95. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/releases/RELEASE_v0.7.0_COMPLETE.md +0 -0
  96. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/releases/RELEASE_v0.7.0_STATUS.md +0 -0
  97. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DEVELOPMENT_PLAN_SUMMARY.md +0 -0
  98. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DOCUMENTATION_REORGANIZATION.md +0 -0
  99. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DOCUMENTATION_REVIEW.md +0 -0
  100. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DOCUMENTATION_SUMMARY.md +0 -0
  101. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DOCUMENTATION_UPDATE_SUMMARY.md +0 -0
  102. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/QUICK_START_RELEASE.md +0 -0
  103. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/cleanup-complete-summary.md +0 -0
  104. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/git-hooks-async-mode.md +0 -0
  105. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/git-hooks-design-analysis.md +0 -0
  106. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/git-hooks-venv-fix-2026-02-07.md +0 -0
  107. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/gitflow-workflow.md +0 -0
  108. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/github-issue-quick-reference.md +0 -0
  109. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/QUICK_START.md +0 -0
  110. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/README.md +0 -0
  111. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/ai-enhancement-issues.md +0 -0
  112. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/ai-enhancement-ultimate-solution.md +0 -0
  113. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/php-parser.md +0 -0
  114. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/symbol-overload-detection.md +0 -0
  115. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/tech-debt-detection.md +0 -0
  116. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/tiered-ai-enhancement-strategy.md +0 -0
  117. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/issue-cleanup-log.md +0 -0
  118. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/multi-language-support-workflow.md +0 -0
  119. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/path-fix-impact-analysis-2026-02-08.md +0 -0
  120. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/phase1-cleanup-report.md +0 -0
  121. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/phase2-cleanup-report.md +0 -0
  122. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/phase3-cleanup-report.md +0 -0
  123. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/pypi-release-guide.md +0 -0
  124. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/release-workflow.md +0 -0
  125. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/requirements-workflow.md +0 -0
  126. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/root-directory-analysis.md +0 -0
  127. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/setup.md +0 -0
  128. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/test-architecture.md +0 -0
  129. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/windows-bugs-analysis-2026-02-08.md +0 -0
  130. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/windows-encoding-fix-summary.md +0 -0
  131. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/windows-path-analysis-2026-02-08.md +0 -0
  132. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/windows-path-fix-summary-2026-02-08.md +0 -0
  133. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/README.md +0 -0
  134. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/before-after/README.md +0 -0
  135. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/case-studies/php-payment-project.md +0 -0
  136. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/epic12-story12.1-validation.md +0 -0
  137. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/framework.md +0 -0
  138. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/loomgraph-efficiency-comparison.md +0 -0
  139. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/php-project-validation.md +0 -0
  140. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/claude-code-integration.md +0 -0
  141. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/configuration.md +0 -0
  142. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/contributing.md +0 -0
  143. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/json-output-integration.md +0 -0
  144. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/loomgraph-integration.md +0 -0
  145. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/internal/git-commit-guide.md +0 -0
  146. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/internal/package-naming.md +0 -0
  147. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/internal/pypi-quickstart.md +0 -0
  148. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/migration/epic18_retrospective.md +0 -0
  149. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/migration/python_migration_report.md +0 -0
  150. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/migration/python_test_analysis.md +0 -0
  151. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/IMPLEMENTATION_GUIDE.md +0 -0
  152. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/PLANNING_COMPLETE.md +0 -0
  153. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/ROADMAP-update-proposal.md +0 -0
  154. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/active/epic22-multi-agent-onboarding.md +0 -0
  155. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic-json-output/plan.md +0 -0
  156. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic10-loomgraph-integration/part1-python-plan.md +0 -0
  157. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic10-loomgraph-integration/part2-php-plan.md +0 -0
  158. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic10-loomgraph-integration/part3-java/plan.md +0 -0
  159. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-call-relationships/design-decisions.md +0 -0
  160. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-call-relationships/discussion.md +0 -0
  161. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-call-relationships/plan.md +0 -0
  162. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-completion-report.md +0 -0
  163. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-final-summary.md +0 -0
  164. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-story11.1-completion.md +0 -0
  165. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-story11.3-completion.md +0 -0
  166. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic12-single-file-parse/epic12-development-checklist.md +0 -0
  167. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic12-single-file-parse/epic12-single-file-parse.md +0 -0
  168. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic12-single-file-parse/epic12-task-summary.md +0 -0
  169. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic13-parser-refactoring/epic13-parser-refactoring.md +0 -0
  170. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic13-parser-refactoring/epic13-progress.md +0 -0
  171. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic15-user-onboarding/plan.md +0 -0
  172. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic16-test-suite-refactoring/plan.md +0 -0
  173. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic16-test-suite-refactoring/summary.md +0 -0
  174. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic18-test-migration/TODO.md +0 -0
  175. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic18-test-migration/plan.md +0 -0
  176. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic19-cli-ux-restructuring/TODO.md +0 -0
  177. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic19-cli-ux-restructuring/plan.md +0 -0
  178. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic2-adaptive-symbols/plan.md +0 -0
  179. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic2-adaptive-symbols/validation-report.md +0 -0
  180. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic23-swift-objc-support/epic23-slock-app-validation.md +0 -0
  181. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic23-swift-objc-support/epic23-tech-debt-validation.md +0 -0
  182. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic23-swift-objc-support/plan.md +0 -0
  183. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic3-ai-enhancement/optimization.md +0 -0
  184. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic3-ai-enhancement/refactoring-analysis.md +0 -0
  185. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic3-ai-enhancement/removal-notes.md +0 -0
  186. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/plan.md +0 -0
  187. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/story-4.3-cli-split.md +0 -0
  188. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/story-4.4-validation.md +0 -0
  189. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/story-4.4.5-kiss-validation.md +0 -0
  190. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/story-4.4.5-kiss.md +0 -0
  191. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic6-framework-routes/git-hooks-ux.md +0 -0
  192. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic6-framework-routes/plan.md +0 -0
  193. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_CURRENT_STATUS.md +0 -0
  194. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_DESIGN_PHILOSOPHY_RETHINK.md +0 -0
  195. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_GREEN_COMPLETE.md +0 -0
  196. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_JAVA_ROADMAP.md +0 -0
  197. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_PERFORMANCE_CORRECTION.md +0 -0
  198. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_REFACTOR_COMPLETE.md +0 -0
  199. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_STORY_7.1.2-7.1.4_DESIGN.md +0 -0
  200. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_STORY_7.1.4_PERFORMANCE_RETHINK.md +0 -0
  201. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_TEST_STRATEGY.md +0 -0
  202. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/plan.md +0 -0
  203. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/story-breakdown.md +0 -0
  204. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic9-docstring-extraction/plan.md +0 -0
  205. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/sprints/sprint-1/DAILY_LOG.md +0 -0
  206. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/sprints/sprint-1/STARTED.txt +0 -0
  207. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/ROADMAP_UPDATE_v0.6.0.md +0 -0
  208. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/development-history-stats.md +0 -0
  209. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/development-roadmap-2026-q1-q2.md +0 -0
  210. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/improvement-plan-archive.md +0 -0
  211. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/improvement-proposals.md +0 -0
  212. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/improvement-roadmap.md +0 -0
  213. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/phase1-agile-plan.md +0 -0
  214. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/phase1-quick-start.md +0 -0
  215. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/phase1-story-cards.md +0 -0
  216. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/phase1-story-planning-epic5.md +0 -0
  217. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/v0.4.0-execution-plan.md +0 -0
  218. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.18.0-enriched-overview/story.md +0 -0
  219. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/deferred/epic5-intelligent-branch/plan.md +0 -0
  220. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/deferred/epic5-intelligent-branch/summary.md +0 -0
  221. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/deferred/epic6-multiagent-orchestrator.md +0 -0
  222. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/executive-summary.md +0 -0
  223. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/roadmap/2025-Q1.md +0 -0
  224. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/roadmap/dependency-graph-update.md +0 -0
  225. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/project-cleanup-plan.md +0 -0
  226. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/README.md +0 -0
  227. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.10.0.md +0 -0
  228. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.12.0.md +0 -0
  229. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.2.0.md +0 -0
  230. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.3.0.md +0 -0
  231. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.3.1.md +0 -0
  232. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.3.2.md +0 -0
  233. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.4.0.md +0 -0
  234. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.5.0-beta1.md +0 -0
  235. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.7.0.md +0 -0
  236. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.8.0.md +0 -0
  237. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.9.0.md +0 -0
  238. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/CLAUDE.md.php-project +0 -0
  239. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/CLAUDE.md.template +0 -0
  240. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/README.md +0 -0
  241. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/README_AI.md +0 -0
  242. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/ai-integration-guide.md +0 -0
  243. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/README_AI.md +0 -0
  244. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/template/README.md +0 -0
  245. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/template/README_AI.md +0 -0
  246. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/template/test_template_extractor.py +0 -0
  247. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/template/yourframework_extractor.py +0 -0
  248. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/loomgraph_output.json +0 -0
  249. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/loomgraph_php_output.json +0 -0
  250. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/loomgraph_sample.php +0 -0
  251. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/loomgraph_sample.py +0 -0
  252. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/parse_integration_example.sh +0 -0
  253. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/print_env.py +0 -0
  254. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/hooks/README.md +0 -0
  255. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/hooks/templates/post-commit-update-logic.sh +0 -0
  256. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/hooks/templates/post-commit-v4 +0 -0
  257. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/swift-objc-support-analysis.md +0 -0
  258. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/swift-poc-summary.md +0 -0
  259. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/tech-debt-codeindex-v2.md +0 -0
  260. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/tech-debt-codeindex.md +0 -0
  261. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/tech-debt-loomgraph-v2.md +0 -0
  262. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/tech-debt-loomgraph.md +0 -0
  263. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/workflow-comparison.md +0 -0
  264. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/README.md +0 -0
  265. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/README_AI.md +0 -0
  266. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/bump_version.sh +0 -0
  267. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/check_docs_release.py +0 -0
  268. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/check_version_consistency.py +0 -0
  269. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/close-epic9-issues.sh +0 -0
  270. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/diagnose_ai_failures.py +0 -0
  271. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/hooks/pre-push +0 -0
  272. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/legacy/PROJECT_INDEX.json +0 -0
  273. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/legacy/README.md +0 -0
  274. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/legacy/hierarchical_strategy.py +0 -0
  275. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/release.sh +0 -0
  276. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/test_hook_e2e.sh +0 -0
  277. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validate_php_project.py +0 -0
  278. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validate_real_projects.py +0 -0
  279. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validation/baselines/.gitkeep +0 -0
  280. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validation/baselines/baseline_v0.17.3_20260214_025335.json +0 -0
  281. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validation/projects.yaml +0 -0
  282. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validation/reports/.gitkeep +0 -0
  283. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/README.md +0 -0
  284. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/create.sh +0 -0
  285. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/install.sh +0 -0
  286. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/src/mo-arch/SKILL.md +0 -0
  287. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/src/mo-index/SKILL.md +0 -0
  288. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/README_AI.md +0 -0
  289. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/__init__.py +0 -0
  290. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/adaptive_config.py +0 -0
  291. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/adaptive_selector.py +0 -0
  292. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/ai_helper.py +0 -0
  293. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_common.py +0 -0
  294. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_config_commands.py +0 -0
  295. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_docs.py +0 -0
  296. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_parse.py +0 -0
  297. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_symbols.py +0 -0
  298. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_tech_debt.py +0 -0
  299. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/config.py +0 -0
  300. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/config_help.py +0 -0
  301. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/directory_tree.py +0 -0
  302. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/docstring_processor.py +0 -0
  303. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/errors.py +0 -0
  304. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/extractors/README_AI.md +0 -0
  305. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/extractors/__init__.py +0 -0
  306. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/extractors/spring.py +0 -0
  307. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/extractors/thinkphp.py +0 -0
  308. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/file_classifier.py +0 -0
  309. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/framework_detect.py +0 -0
  310. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/hierarchical.py +0 -0
  311. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/incremental.py +0 -0
  312. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/invoker.py +0 -0
  313. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/objc_association.py +0 -0
  314. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parallel.py +0 -0
  315. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parser.py +0 -0
  316. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/README_AI.md +0 -0
  317. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/__init__.py +0 -0
  318. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/base.py +0 -0
  319. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/__init__.py +0 -0
  320. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/calls.py +0 -0
  321. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/imports.py +0 -0
  322. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/inheritance.py +0 -0
  323. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/symbols.py +0 -0
  324. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java_parser.py +0 -0
  325. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/__init__.py +0 -0
  326. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/calls.py +0 -0
  327. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/imports.py +0 -0
  328. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/inheritance.py +0 -0
  329. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/symbols.py +0 -0
  330. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/__init__.py +0 -0
  331. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/calls.py +0 -0
  332. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/imports.py +0 -0
  333. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/inheritance.py +0 -0
  334. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/symbols.py +0 -0
  335. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/__init__.py +0 -0
  336. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/calls.py +0 -0
  337. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/imports.py +0 -0
  338. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/inheritance.py +0 -0
  339. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/symbols.py +0 -0
  340. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/__init__.py +0 -0
  341. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/calls.py +0 -0
  342. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/imports.py +0 -0
  343. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/inheritance.py +0 -0
  344. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/symbols.py +0 -0
  345. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/__init__.py +0 -0
  346. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/calls.py +0 -0
  347. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/imports.py +0 -0
  348. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/inheritance.py +0 -0
  349. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/symbols.py +0 -0
  350. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/utils.py +0 -0
  351. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/route_extractor.py +0 -0
  352. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/route_registry.py +0 -0
  353. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/scanner.py +0 -0
  354. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/semantic_extractor.py +0 -0
  355. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/skill_helpers.py +0 -0
  356. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/smart_writer.py +0 -0
  357. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/symbol_index.py +0 -0
  358. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/symbol_scorer.py +0 -0
  359. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/tech_debt.py +0 -0
  360. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/tech_debt_formatters.py +0 -0
  361. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/templates/__init__.py +0 -0
  362. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/test_smells.py +0 -0
  363. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writer.py +0 -0
  364. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/__init__.py +0 -0
  365. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/core.py +0 -0
  366. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/detailed_generator.py +0 -0
  367. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/navigation_generator.py +0 -0
  368. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/overview_generator.py +0 -0
  369. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/generator.py +0 -0
  370. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/scripts/analyze_legacy_tests.py +0 -0
  371. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/scripts/compare_coverage.py +0 -0
  372. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/scripts/compare_test_results.py +0 -0
  373. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/specs/java.yaml +0 -0
  374. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/specs/php.yaml +0 -0
  375. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/specs/python.yaml +0 -0
  376. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/templates/inheritance_test.py.j2 +0 -0
  377. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/__init__.py +0 -0
  378. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/conftest.py +0 -0
  379. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/README_AI.md +0 -0
  380. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/__init__.py +0 -0
  381. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/test_spring.py +0 -0
  382. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/test_thinkphp.py +0 -0
  383. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/test_thinkphp_description.py +0 -0
  384. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/README.md +0 -0
  385. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/cli_scan_defaults.feature +0 -0
  386. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/help_system.feature +0 -0
  387. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/init_wizard.feature +0 -0
  388. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/symbol_overload_detection.feature +0 -0
  389. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/tech_debt_detection.feature +0 -0
  390. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/tech_debt_reporting.feature +0 -0
  391. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/Controller.php +0 -0
  392. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/Service.java +0 -0
  393. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/Simple.java +0 -0
  394. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/broken.py +0 -0
  395. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/complete.py +0 -0
  396. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/service.ts +0 -0
  397. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/simple.php +0 -0
  398. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/simple.py +0 -0
  399. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/unsupported.txt +0 -0
  400. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/enum.java +0 -0
  401. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/generics.java +0 -0
  402. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/imports.java +0 -0
  403. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/interface.java +0 -0
  404. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/record.java +0 -0
  405. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/sealed_class.java +0 -0
  406. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/simple_class.java +0 -0
  407. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/Application.java +0 -0
  408. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/User.java +0 -0
  409. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/UserController.java +0 -0
  410. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/UserRepository.java +0 -0
  411. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/UserService.java +0 -0
  412. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring_controller.java +0 -0
  413. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/typescript/app.js +0 -0
  414. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/typescript/component.tsx +0 -0
  415. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/typescript/service.ts +0 -0
  416. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/README.md +0 -0
  417. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchical_test/level1/file1.py +0 -0
  418. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchical_test/level1/level2a/file2.py +0 -0
  419. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchical_test/level1/level2a/level3/file4.py +0 -0
  420. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchical_test/level1/level2b/file3.py +0 -0
  421. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchy_simple.py +0 -0
  422. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_adaptive_config.py +0 -0
  423. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_adaptive_selector.py +0 -0
  424. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_ai_helper.py +0 -0
  425. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_backward_compatibility.py +0 -0
  426. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_call_integration.py +0 -0
  427. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_debt_scan.py +0 -0
  428. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_docstring_options.py +0 -0
  429. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_hooks.py +0 -0
  430. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_json.py +0 -0
  431. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_parse.py +0 -0
  432. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_scan_defaults_bdd.py +0 -0
  433. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_tech_debt.py +0 -0
  434. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_config_adaptive.py +0 -0
  435. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_dataclass_structure.py +0 -0
  436. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_directory_tree.py +0 -0
  437. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_docstring_config.py +0 -0
  438. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_docstring_processor.py +0 -0
  439. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_error_handling.py +0 -0
  440. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_file_classifier.py +0 -0
  441. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_help_system_bdd.py +0 -0
  442. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_hooks_config.py +0 -0
  443. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_integration_swift_objc.py +0 -0
  444. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_annotations.py +0 -0
  445. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_calls.py +0 -0
  446. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_edge_cases.py +0 -0
  447. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_error_recovery.py +0 -0
  448. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_generic_bounds.py +0 -0
  449. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_inheritance.py +0 -0
  450. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_lambda.py +0 -0
  451. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_lombok.py +0 -0
  452. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_module.py +0 -0
  453. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_parser.py +0 -0
  454. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_spring.py +0 -0
  455. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_throws.py +0 -0
  456. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_json_output.py +0 -0
  457. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_lazy_loading.py +0 -0
  458. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_loomgraph_integration.py +0 -0
  459. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_objc_association_utils.py +0 -0
  460. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parallel_scan.py +0 -0
  461. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser.py +0 -0
  462. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_detection.py +0 -0
  463. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_objc_association.py +0 -0
  464. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_objc_basic.py +0 -0
  465. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_objc_bridging.py +0 -0
  466. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_objc_categories.py +0 -0
  467. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_docstrings.py +0 -0
  468. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_extensions.py +0 -0
  469. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_generics.py +0 -0
  470. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_inheritance.py +0 -0
  471. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_integration.py +0 -0
  472. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_poc.py +0 -0
  473. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_properties.py +0 -0
  474. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_property_wrappers.py +0 -0
  475. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_protocols.py +0 -0
  476. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_signatures.py +0 -0
  477. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_calls.py +0 -0
  478. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_comment_extraction.py +0 -0
  479. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_docstring_extraction.py +0 -0
  480. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_import_alias.py +0 -0
  481. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_inheritance.py +0 -0
  482. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_loomgraph_integration.py +0 -0
  483. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_project_index_semantic.py +0 -0
  484. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_python_calls.py +0 -0
  485. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_python_docstring_description.py +0 -0
  486. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_python_import_alias.py +0 -0
  487. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_python_inheritance.py +0 -0
  488. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_extractor.py +0 -0
  489. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_info.py +0 -0
  490. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_registry.py +0 -0
  491. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_table_description.py +0 -0
  492. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_table_display.py +0 -0
  493. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_scanner_passthrough.py +0 -0
  494. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_semantic_extractor.py +0 -0
  495. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_skill_helpers.py +0 -0
  496. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer.py +0 -0
  497. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_adaptive.py +0 -0
  498. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_docstring.py +0 -0
  499. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_enriched.py +0 -0
  500. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_integration.py +0 -0
  501. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_semantic.py +0 -0
  502. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_story_4_4_integration.py +0 -0
  503. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_symbol_overload.py +0 -0
  504. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_symbol_scorer.py +0 -0
  505. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_bdd.py +0 -0
  506. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_detector.py +0 -0
  507. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_formatters.py +0 -0
  508. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_ios.py +0 -0
  509. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_java.py +0 -0
  510. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_reporter.py +0 -0
  511. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_test_smells.py +0 -0
  512. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_thinkphp_route_extractor.py +0 -0
  513. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_typescript_integration.py +0 -0
  514. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_typescript_parser.py +0 -0
  515. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_windows_path_optimization.py +0 -0
  516. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/writers/__init__.py +0 -0
  517. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/writers/test_generators.py +0 -0
  518. {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/uv.lock +0 -0
@@ -9,13 +9,21 @@ Set up Git hooks so README_AI.md files automatically update when code changes ar
9
9
 
10
10
  ## How It Works
11
11
 
12
+ **Architecture**: Thin wrapper shell script → Python logic (auto-upgradeable via pip)
13
+
12
14
  When a developer commits code changes:
13
- 1. **post-commit hook** detects which directories were affected
14
- 2. `codeindex affected --json` analyzes the change scope
15
- 3. `codeindex scan` regenerates README_AI.md for affected directories
16
- 4. Updated README_AI.md files are auto-committed
15
+ 1. Shell wrapper skips doc-only commits (loop guard), activates venv
16
+ 2. Delegates to `codeindex hooks run post-commit` (Python)
17
+ 3. `codeindex affected --json` analyzes the change scope
18
+ 4. `codeindex scan` regenerates structural README_AI.md for affected directories
19
+ 5. Updated README_AI.md files are auto-committed
20
+
21
+ **Key**: Hook only updates structural content. AI blockquote descriptions
22
+ (module purpose) are not regenerated per-commit — run `codeindex scan-all`
23
+ to refresh those.
17
24
 
18
- This keeps documentation always in sync with code — zero manual effort.
25
+ **Upgrade**: `pip install --upgrade ai-codeindex` auto-updates hook logic.
26
+ No need to reinstall hooks after package upgrade.
19
27
 
20
28
  ## Prerequisites
21
29
 
@@ -137,6 +145,16 @@ codeindex hooks uninstall post-commit
137
145
  codeindex hooks uninstall --all
138
146
  ```
139
147
 
148
+ ## Upgrading Hooks
149
+
150
+ ```bash
151
+ # Usually NOT needed — pip upgrade auto-updates Python logic
152
+ pip install --upgrade ai-codeindex
153
+
154
+ # Only if release notes say "reinstall hooks":
155
+ codeindex hooks install post-commit --force
156
+ ```
157
+
140
158
  ## Troubleshooting
141
159
 
142
160
  | Problem | Solution |
@@ -146,6 +164,7 @@ codeindex hooks uninstall --all
146
164
  | Hook too slow | Set `mode: async` in .codeindex.yaml hooks config |
147
165
  | Want manual control | Set `mode: prompt` — shows notification, you decide when to update |
148
166
  | Virtual env not found | Ensure `.venv/` or `venv/` exists at project root |
167
+ | Old hook with AI prompts | Run `codeindex hooks install post-commit --force` to upgrade to thin wrapper |
149
168
 
150
169
  ## Advanced: CLAUDE.md Integration
151
170
 
@@ -43,19 +43,21 @@ codeindex list-dirs
43
43
 
44
44
  ### Step 4: Index Directories
45
45
 
46
- **All directories (recommended - structural documentation, works immediately):**
46
+ **All directories (recommended):**
47
47
  ```bash
48
+ # When ai_command is configured, automatically includes AI enrichment (Phase 2)
48
49
  codeindex scan-all
50
+
51
+ # Disable AI enrichment
52
+ codeindex scan-all --no-ai
49
53
  ```
50
54
 
51
55
  **Single directory:**
52
56
  ```bash
53
57
  codeindex scan ./src/module
54
- ```
55
58
 
56
- **AI-enhanced mode (requires ai_command in config):**
57
- ```bash
58
- codeindex scan-all --ai
59
+ # Full AI-generated README for a single directory (requires --ai)
60
+ codeindex scan ./src/module --ai
59
61
  codeindex scan ./src/module --ai --dry-run # Preview AI prompt
60
62
  ```
61
63
 
@@ -110,8 +112,9 @@ Done! Your project is now indexed:
110
112
 
111
113
  | Mode | Command | Description |
112
114
  |------|---------|-------------|
113
- | Structural (default) | `codeindex scan-all` | Fast, no AI needed, works immediately |
114
- | AI-enhanced | `codeindex scan-all --ai` | Richer docs, requires ai_command config |
115
+ | Auto (default) | `codeindex scan-all` | Structural + AI enrichment if ai_command configured |
116
+ | No AI | `codeindex scan-all --no-ai` | Structural only, skip AI enrichment |
117
+ | Single dir AI | `codeindex scan ./dir --ai` | Full AI-generated README for one directory |
115
118
 
116
119
  ## Configuration Reference
117
120
 
@@ -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,62 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.23.1] - 2026-03-15
11
+
12
+ ### Added
13
+
14
+ - **`codeindex claude-md update/status` CLI commands**: Manage codeindex section in project CLAUDE.md with version tracking.
15
+ - **Startup version-outdated hint**: Every `codeindex` CLI invocation checks if CLAUDE.md section is outdated and prints a reminder.
16
+ - **Unified `claude_md.py` module**: Single source of truth for CLAUDE.md injection, replacing fragmented hooks.py + init_wizard.py logic.
17
+
18
+ ### Changed
19
+
20
+ - **CLAUDE.md template simplified**: 130 lines → 22 lines. Removed hardcoded paths, language support table, and verbose configuration examples.
21
+ - **Unified marker format**: `<!-- codeindex:start v{version} -->` with backward compatibility for old markers without version.
22
+ - **`init_wizard.py` injection**: Now delegates to `claude_md.py` module instead of inline template.
23
+
24
+ ### Fixed
25
+
26
+ - **Dead code cleanup**: Removed `hooks.py` `post_install_update_guide()` (181 lines) that was never wired to pip entry points.
27
+ - **Dead import fix**: `cli_config.py` referenced non-existent `install_hooks` from `hooks.py`, now uses correct `install_hook` from `cli_hooks.py`.
28
+
29
+ ## [0.23.0] - 2026-03-12
30
+
31
+ ### Added
32
+
33
+ - **AI-Enhanced Module Descriptions** (Epic #25, Stories 25.1–25.3): Redefine `--ai` mode from full AI takeover to structural + AI micro-enhancement.
34
+ - **Blockquote description support**: `extract_module_description()` now reads `> description` as Strategy 0 (highest priority)
35
+ - **AI enrichment module** (`src/codeindex/enricher.py`): Generates one-line functional descriptions per module using symbol names + file names
36
+ - **Concise prompt design**: ~200-400 tokens per directory, ≤30 char output, 10-20x cheaper than old `--ai` mode
37
+ - **Batch AI calls**: Groups multiple directories per AI invocation to reduce overhead
38
+ - **scan-all auto-AI**: Automatically enables Phase 2 AI enrichment when `ai_command` is configured (no `--ai` flag needed)
39
+ - **`--no-ai` opt-out**: Explicitly disable AI enrichment for structural-only output
40
+ - **`--ai` / `--no-ai` mutual exclusion**: Clear error when both flags are used
41
+
42
+ - **Post-commit hook thin wrapper** (Issue #30 fix): Redesigned hook architecture for maintainability.
43
+ - **Thin shell wrapper** (~30 lines): Only handles loop guard + venv activation
44
+ - **Python logic** via `codeindex hooks run post-commit`: All business logic in upgradeable Python
45
+ - **Upgrade path**: `pip install --upgrade ai-codeindex` auto-updates hook behavior (no reinstall needed)
46
+ - **No custom AI prompts**: Uses `codeindex scan` pipeline, eliminating commit changelog noise
47
+
48
+ ### Fixed
49
+
50
+ - **AI mode commit changelog noise** (#30): Post-commit hook no longer injects git diff into custom AI prompts. Uses standard `codeindex scan` pipeline instead.
51
+ - **Enricher prompt accuracy**: Improved from "20 chars/brief" to "30 chars/concise" for better description quality.
52
+
53
+ ### Changed
54
+
55
+ - **`--no-ai` flag**: Changed from hidden/deprecated to active opt-out flag for scan-all.
56
+ - **Post-commit hook generation**: `_generate_post_commit_script()` now generates thin wrapper delegating to Python.
57
+ - **Documentation**: All hook and scan-all docs rewritten for AI CLI agent readers.
58
+
59
+ ### Technical Details
60
+
61
+ - **New module**: `src/codeindex/enricher.py` — AI enrichment with `enrich_directory()` and `_enrich_directories_with_ai()`
62
+ - **New CLI subcommand**: `codeindex hooks run post-commit` — Python-side post-commit logic
63
+ - **New tests**: 15 tests (7 scan-all auto-AI + 8 post-commit hook)
64
+ - **Total tests**: 1532 passed
65
+
10
66
  ## [0.22.2] - 2026-03-08
11
67
 
12
68
  ### 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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ai-codeindex
3
- Version: 0.22.2
3
+ Version: 0.23.1
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
@@ -56,14 +56,16 @@ Description-Content-Type: text/markdown
56
56
 
57
57
  # codeindex
58
58
 
59
+ [🇬🇧 English](README.md) | [🇨🇳 中文](README_zh.md)
60
+
59
61
  [![PyPI version](https://badge.fury.io/py/ai-codeindex.svg)](https://badge.fury.io/py/ai-codeindex)
60
62
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
61
63
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
62
64
  [![Tests](https://github.com/dreamlx/codeindex/workflows/Tests/badge.svg)](https://github.com/dreamlx/codeindex/actions)
63
65
 
64
- **Enterprise-grade Code Intelligence Platform — Multi-language AST parser for AI-assisted development, code quality analysis, and knowledge graph integration.**
66
+ **Enterprise-grade Code Intelligence Platform — Make AI agents understand your codebase through semantic navigation, not grep.**
65
67
 
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.
68
+ 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
69
 
68
70
  **🏢 Enterprise Ready**: ✅ Intranet compatible ✅ Self-contained ✅ Version stable ✅ Data sovereignty
69
71
 
@@ -75,18 +77,28 @@ codeindex extracts symbols, inheritance relationships, call graphs, and imports
75
77
 
76
78
  ## Features
77
79
 
80
+ ### Core: Code Understanding for AI Agents
81
+
82
+ - **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**.
83
+ - **Smart indexing** — Tiered documentation (overview → navigation → detailed) optimized for AI agents, ≤50KB per file
84
+ - **Auto-AI enrichment** — When `ai_command` is configured, `scan-all` automatically enables AI module descriptions. Use `--no-ai` to opt out
85
+ - **Auto-update hooks** — Post-commit hook automatically regenerates README_AI.md for changed directories. Thin wrapper pattern: `pip upgrade` auto-updates hook logic
86
+
87
+ ### Parsing & Analysis
88
+
78
89
  - **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
90
  - **Call relationship extraction** — Function/method call graphs across Python, Java, PHP, TypeScript, JavaScript
83
91
  - **Inheritance extraction** — Class hierarchy and interface relationships
84
92
  - **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
93
+ - **Technical debt analysis** — Detect large files, god classes, symbol overload, test smells
94
+ - **Single file parse** — `codeindex parse <file>` with JSON output for tool integration
95
+ - **Structured JSON output** — `--output json` for CI/CD, knowledge graphs, and downstream tools
96
+
97
+ ### Developer Experience
98
+
87
99
  - **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)
100
+ - **CLAUDE.md injection** — `codeindex init` auto-configures Claude Code integration
101
+ - **Auto-update guide** — Post-install hook automatically updates `~/.claude/CLAUDE.md` after `pip upgrade`
90
102
  - **Template-based test generation** — YAML + Jinja2 for rapid language support (88–91% time savings)
91
103
  - **Parallel scanning** — Concurrent directory processing with configurable workers
92
104
 
@@ -101,18 +113,19 @@ codeindex extracts symbols, inheritance relationships, call graphs, and imports
101
113
  ```bash
102
114
  # Enterprise developer workflow
103
115
  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
116
+ codeindex init # Configure project
117
+ codeindex scan-all # Structural + AI descriptions (auto)
118
+ # AI agent reads README_AI.md sees module purposes → navigates directly
119
+ # No grep needed for code discovery
107
120
  codeindex tech-debt src/ --output review.md # Code quality analysis
108
121
  ```
109
122
 
110
123
  **Why enterprises choose codeindex**:
124
+ - ✅ **Semantic navigation** — AI agents understand module purposes from README_AI.md hierarchy
111
125
  - ✅ **Intranet compatible** — no external dependencies, fully offline
112
126
  - ✅ **Self-contained** — no upstream MCP servers required
113
127
  - ✅ **Version stable** — enterprise-controlled release cycle
114
128
  - ✅ **Data sovereignty** — code never leaves internal network
115
- - ✅ **Customizable** — extensible for internal languages/frameworks
116
129
 
117
130
  ---
118
131
 
@@ -142,18 +155,18 @@ Without codeindex, LoomGraph cannot function. See [LoomGraph Integration Guide](
142
155
 
143
156
  **With Serena MCP**: For individual developers using Claude Code + Serena MCP, codeindex provides **complementary value**:
144
157
 
158
+ - **codeindex** (build-time): Semantic architecture map (README_AI.md with module descriptions) + quality analysis
145
159
  - **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
160
 
148
161
  ```bash
149
162
  # Personal developer workflow
150
163
  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
164
+ codeindex scan-all # Structural + AI descriptions (auto)
165
+ codeindex hooks install post-commit # Auto-update on commit
166
+ # Claude Code reads README_AI.md → understands module purpose → uses Serena for details
154
167
  ```
155
168
 
156
- **Relationship**: codeindex and Serena are **not competitors** but **complementary tools** — codeindex provides the "map," Serena provides the "GPS navigation."
169
+ **Relationship**: codeindex provides the "map with labels," Serena provides the "GPS navigation."
157
170
 
158
171
  ---
159
172
 
@@ -210,14 +223,19 @@ This creates:
210
223
  ### 2. Scan Your Codebase
211
224
 
212
225
  ```bash
213
- # Scan all directories (structural documentation, no AI needed)
226
+ # Scan all directories
227
+ # When ai_command is configured → auto Phase 1 (structural) + Phase 2 (AI descriptions)
228
+ # Without ai_command → Phase 1 only (structural)
214
229
  codeindex scan-all
215
230
 
231
+ # Structural only (skip AI enrichment)
232
+ codeindex scan-all --no-ai
233
+
216
234
  # Scan a single directory
217
235
  codeindex scan ./src/auth
218
236
 
219
- # AI-enhanced documentation (requires ai_command in config)
220
- codeindex scan-all --ai
237
+ # Full AI-generated README for a single directory
238
+ codeindex scan ./src/auth --ai
221
239
 
222
240
  # Preview AI prompt without executing
223
241
  codeindex scan ./src/auth --ai --dry-run
@@ -382,17 +400,45 @@ codeindex debt-scan ./src --format json
382
400
 
383
401
  ## How It Works
384
402
 
385
- ### Standalone Mode
403
+ ### Two-Phase Pipeline (v0.23.0)
386
404
 
387
405
  ```
388
- Directory Scanner → Parser (tree-sitter) → Smart Writer → README_AI.md
406
+ Phase 1 (Structural):
407
+ Directory → Scanner → Parser (tree-sitter) → SmartWriter → README_AI.md
408
+
409
+ Phase 2 (AI Enrichment, automatic when ai_command configured):
410
+ README_AI.md → symbol names + file names → AI → one-line description → blockquote injection
389
411
  ```
390
412
 
413
+ **Phase 1: Structural generation** (always runs)
391
414
  1. **Scanner** — walks directories, filters by config patterns
392
415
  2. **Parser** — extracts symbols (classes, functions, imports, calls, inheritance) via tree-sitter
393
- 3. **Smart Writer** — generates tiered documentation with size limits (≤50KB)
416
+ 3. **SmartWriter** — generates tiered documentation with size limits (≤50KB)
394
417
  4. **Output** — `README_AI.md` optimized for AI consumption, or JSON for tool integration
395
418
 
419
+ **Phase 2: AI enrichment** (auto-enabled when `ai_command` configured)
420
+ - Generates a one-line functional description for each non-leaf module
421
+ - Writes as blockquote: `> 会员等级管理、积分兑换、权益卡券`
422
+ - ~200-400 tokens per directory, 10-20x cheaper than full AI generation
423
+ - Parent directories read child descriptions for hierarchical navigation
424
+
425
+ ### Before vs After: Code Navigation
426
+
427
+ ```
428
+ Before (structural only):
429
+ └── Application/
430
+ ├── Vip/ — 48 files | 386 symbols ← AI agent cannot determine purpose
431
+ ├── Pay/ — 23 files | 178 symbols
432
+ └── SmallProgramApi/ — 31 files | 245 symbols
433
+
434
+ After (structural + AI enrichment):
435
+ └── Application/
436
+ ├── Vip/ — 会员等级管理、积分兑换、权益卡券 | 48 files
437
+ ├── Pay/ — 支付网关(支付宝/微信/退款) | 23 files
438
+ └── SmallProgramApi/ — 小程序端API(登录、头像、商品) | 31 files
439
+ ↑ AI agent can navigate directly
440
+ ```
441
+
396
442
  ### Three-Repo Architecture (Enterprise Knowledge Graph)
397
443
 
398
444
  ```
@@ -484,14 +530,14 @@ See [Release Automation Guide](docs/development/QUICK_START_RELEASE.md) for deta
484
530
 
485
531
  ## Roadmap
486
532
 
487
- **Current version**: v0.22.2
533
+ **Current version**: v0.23.1
488
534
 
489
535
  **Recent milestones**:
536
+ - v0.23.0 — **AI-Enhanced Module Descriptions**: two-phase pipeline, auto-AI enrichment, post-commit thin wrapper
490
537
  - v0.22.2 — Auto-update CLAUDE.md on `pip upgrade`, `/codeindex-update-guide` skill
491
538
  - v0.22.0 — Unified tech-debt + test smells analysis
492
539
  - v0.21.0 — Swift & Objective-C language support
493
540
  - v0.19.0 — TypeScript/JavaScript support with call extraction
494
- - v0.17.0 — CLAUDE.md injection via `codeindex init`
495
541
 
496
542
  **Next**:
497
543
  - Framework routes expansion: Express, Laravel, FastAPI, Django (Epic 17)