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.
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.claude/skills/mo-hooks/SKILL.md +24 -5
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.claude/skills/mo-index/SKILL.md +10 -7
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/project.yml +5 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/CHANGELOG.md +56 -0
- ai_codeindex-0.23.1/CLAUDE.md +186 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/PKG-INFO +73 -27
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/README.md +72 -26
- ai_codeindex-0.23.1/README_zh.md +478 -0
- ai_codeindex-0.23.1/RELEASE_NOTES_v0.23.1.md +28 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/advanced-usage.md +13 -8
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/getting-started.md +6 -3
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/git-hooks-integration.md +43 -23
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/README.md +1 -1
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/ROADMAP.md +2 -2
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/pyproject.toml +1 -1
- ai_codeindex-0.23.1/src/codeindex/README_AI.md +1685 -0
- ai_codeindex-0.23.1/src/codeindex/claude_md.py +153 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli.py +6 -1
- ai_codeindex-0.23.1/src/codeindex/cli_claude_md.py +91 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_config.py +2 -2
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_hooks.py +109 -103
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_scan.py +148 -13
- ai_codeindex-0.23.1/src/codeindex/enricher.py +182 -0
- ai_codeindex-0.23.1/src/codeindex/hooks.py +13 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/init_wizard.py +5 -41
- ai_codeindex-0.23.1/src/codeindex/templates/claude_md_core.md +22 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/utils.py +8 -0
- ai_codeindex-0.23.1/tests/README_AI.md +1551 -0
- ai_codeindex-0.23.1/tests/test_claude_md.py +216 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_claude_md_injection.py +7 -11
- ai_codeindex-0.23.1/tests/test_enricher.py +208 -0
- ai_codeindex-0.23.1/tests/test_enricher_integration.py +96 -0
- ai_codeindex-0.23.1/tests/test_hook_post_commit.py +108 -0
- ai_codeindex-0.23.1/tests/test_hooks.py +23 -0
- ai_codeindex-0.23.1/tests/test_hooks_integration.py +125 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_init_wizard_bdd.py +2 -2
- ai_codeindex-0.23.1/tests/test_scanall_auto_ai.py +165 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/writers/test_utils.py +50 -0
- ai_codeindex-0.22.2/CLAUDE.md +0 -805
- ai_codeindex-0.22.2/src/codeindex/README_AI.md +0 -261
- ai_codeindex-0.22.2/src/codeindex/hooks.py +0 -180
- ai_codeindex-0.22.2/src/codeindex/templates/claude_md_core.md +0 -120
- ai_codeindex-0.22.2/tests/README_AI.md +0 -264
- ai_codeindex-0.22.2/tests/test_hooks.py +0 -218
- ai_codeindex-0.22.2/tests/test_hooks_integration.py +0 -144
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.claude/skills/mo-arch/SKILL.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.editorconfig +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/bug.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/enhancement.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/epic.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/workflows/ci.yml +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.github/workflows/publish.yml +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.gitignore +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/.gitignore +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/design_philosophy.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/development_workflow.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/project_overview.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/release_automation.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/.serena/memories/suggested_commands.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/CODE_OF_CONDUCT.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/CONTRIBUTING.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/FOR_LOOMGRAPH.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/LICENSE +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/Makefile +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/PROJECT_SYMBOLS.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.12.1.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.14.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.15.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.17.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.17.2.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.17.3.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.18.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.19.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/RELEASE_NOTES_v0.20.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/SECURITY.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/DOCS_REORGANIZATION_PLAN.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/adr/001-use-tree-sitter-for-parsing.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/adr/002-external-ai-cli-integration.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/adr/003-add-swift-objc-support.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/adr/004-automatic-claude-md-update.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design/document-aggregation.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design/initial-design.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design/kiss-universal-description.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design/parallel-strategy.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/architecture/design-philosophy.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/planning/BRANCH_STATUS.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/planning/IMPROVEMENT_PLAN.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/project-index/PROJECT_INDEX.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/project-index/PROJECT_INDEX_KISS.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/project-index/PROJECT_INDEX_TEST.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/releases/RELEASE_v0.7.0_COMPLETE.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/releases/RELEASE_v0.7.0_STATUS.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DEVELOPMENT_PLAN_SUMMARY.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DOCUMENTATION_REORGANIZATION.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DOCUMENTATION_REVIEW.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DOCUMENTATION_SUMMARY.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/archive/summaries/DOCUMENTATION_UPDATE_SUMMARY.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/QUICK_START_RELEASE.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/cleanup-complete-summary.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/git-hooks-async-mode.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/git-hooks-design-analysis.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/git-hooks-venv-fix-2026-02-07.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/gitflow-workflow.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/github-issue-quick-reference.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/QUICK_START.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/ai-enhancement-issues.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/ai-enhancement-ultimate-solution.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/php-parser.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/symbol-overload-detection.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/tech-debt-detection.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/improvements/tiered-ai-enhancement-strategy.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/issue-cleanup-log.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/multi-language-support-workflow.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/path-fix-impact-analysis-2026-02-08.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/phase1-cleanup-report.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/phase2-cleanup-report.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/phase3-cleanup-report.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/pypi-release-guide.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/release-workflow.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/requirements-workflow.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/root-directory-analysis.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/setup.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/test-architecture.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/windows-bugs-analysis-2026-02-08.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/windows-encoding-fix-summary.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/windows-path-analysis-2026-02-08.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/development/windows-path-fix-summary-2026-02-08.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/before-after/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/case-studies/php-payment-project.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/epic12-story12.1-validation.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/framework.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/loomgraph-efficiency-comparison.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/evaluation/php-project-validation.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/claude-code-integration.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/configuration.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/contributing.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/json-output-integration.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/guides/loomgraph-integration.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/internal/git-commit-guide.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/internal/package-naming.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/internal/pypi-quickstart.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/migration/epic18_retrospective.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/migration/python_migration_report.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/migration/python_test_analysis.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/IMPLEMENTATION_GUIDE.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/PLANNING_COMPLETE.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/ROADMAP-update-proposal.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/active/epic22-multi-agent-onboarding.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic-json-output/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic10-loomgraph-integration/part1-python-plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic10-loomgraph-integration/part2-php-plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic10-loomgraph-integration/part3-java/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-call-relationships/design-decisions.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-call-relationships/discussion.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-call-relationships/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-completion-report.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-final-summary.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-story11.1-completion.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic11-story11.3-completion.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic12-single-file-parse/epic12-development-checklist.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic12-single-file-parse/epic12-single-file-parse.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic12-single-file-parse/epic12-task-summary.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic13-parser-refactoring/epic13-parser-refactoring.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic13-parser-refactoring/epic13-progress.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic15-user-onboarding/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic16-test-suite-refactoring/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic16-test-suite-refactoring/summary.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic18-test-migration/TODO.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic18-test-migration/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic19-cli-ux-restructuring/TODO.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic19-cli-ux-restructuring/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic2-adaptive-symbols/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic2-adaptive-symbols/validation-report.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic23-swift-objc-support/epic23-slock-app-validation.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic23-swift-objc-support/epic23-tech-debt-validation.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic23-swift-objc-support/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic3-ai-enhancement/optimization.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic3-ai-enhancement/refactoring-analysis.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic3-ai-enhancement/removal-notes.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/story-4.3-cli-split.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/story-4.4-validation.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/story-4.4.5-kiss-validation.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic4-refactoring/story-4.4.5-kiss.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic6-framework-routes/git-hooks-ux.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic6-framework-routes/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_CURRENT_STATUS.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_DESIGN_PHILOSOPHY_RETHINK.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_GREEN_COMPLETE.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_JAVA_ROADMAP.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_PERFORMANCE_CORRECTION.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_REFACTOR_COMPLETE.md +0 -0
- {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
- {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
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/EPIC7_TEST_STRATEGY.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic7-java-support/story-breakdown.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/epic9-docstring-extraction/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/sprints/sprint-1/DAILY_LOG.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/sprints/sprint-1/STARTED.txt +0 -0
- {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
- {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
- {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
- {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
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/improvement-proposals.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.1.0-v0.3.1/improvement-roadmap.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/completed/v0.18.0-enriched-overview/story.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/deferred/epic5-intelligent-branch/plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/deferred/epic5-intelligent-branch/summary.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/deferred/epic6-multiagent-orchestrator.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/executive-summary.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/roadmap/2025-Q1.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/planning/roadmap/dependency-graph-update.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/project-cleanup-plan.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.10.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.12.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.2.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.3.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.3.1.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.3.2.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.4.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.5.0-beta1.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.7.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.8.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/docs/releases/RELEASE_NOTES_v0.9.0.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/CLAUDE.md.php-project +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/CLAUDE.md.template +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/ai-integration-guide.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/template/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/template/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/template/test_template_extractor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/frameworks/template/yourframework_extractor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/loomgraph_output.json +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/loomgraph_php_output.json +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/loomgraph_sample.php +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/loomgraph_sample.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/parse_integration_example.sh +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/examples/print_env.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/hooks/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/hooks/templates/post-commit-update-logic.sh +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/hooks/templates/post-commit-v4 +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/swift-objc-support-analysis.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/swift-poc-summary.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/tech-debt-codeindex-v2.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/tech-debt-codeindex.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/tech-debt-loomgraph-v2.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/tech-debt-loomgraph.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/reports/workflow-comparison.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/bump_version.sh +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/check_docs_release.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/check_version_consistency.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/close-epic9-issues.sh +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/diagnose_ai_failures.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/hooks/pre-push +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/legacy/PROJECT_INDEX.json +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/legacy/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/legacy/hierarchical_strategy.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/release.sh +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/test_hook_e2e.sh +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validate_php_project.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validate_real_projects.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validation/baselines/.gitkeep +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validation/baselines/baseline_v0.17.3_20260214_025335.json +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validation/projects.yaml +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/scripts/validation/reports/.gitkeep +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/create.sh +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/install.sh +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/src/mo-arch/SKILL.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/skills/src/mo-index/SKILL.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/adaptive_config.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/adaptive_selector.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/ai_helper.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_common.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_config_commands.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_docs.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_parse.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_symbols.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/cli_tech_debt.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/config.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/config_help.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/directory_tree.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/docstring_processor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/errors.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/extractors/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/extractors/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/extractors/spring.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/extractors/thinkphp.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/file_classifier.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/framework_detect.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/hierarchical.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/incremental.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/invoker.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/objc_association.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parallel.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parser.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/base.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/imports.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java/symbols.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/java_parser.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/imports.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/objc/symbols.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/imports.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/php/symbols.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/imports.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/python/symbols.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/imports.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/swift/symbols.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/imports.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/typescript/symbols.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/parsers/utils.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/route_extractor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/route_registry.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/scanner.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/semantic_extractor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/skill_helpers.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/smart_writer.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/symbol_index.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/symbol_scorer.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/tech_debt.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/tech_debt_formatters.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/templates/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/test_smells.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writer.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/core.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/detailed_generator.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/navigation_generator.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/src/codeindex/writers/overview_generator.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/generator.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/scripts/analyze_legacy_tests.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/scripts/compare_coverage.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/scripts/compare_test_results.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/specs/java.yaml +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/specs/php.yaml +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/specs/python.yaml +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/test_generator/templates/inheritance_test.py.j2 +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/conftest.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/README_AI.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/test_spring.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/test_thinkphp.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/extractors/test_thinkphp_description.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/cli_scan_defaults.feature +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/help_system.feature +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/init_wizard.feature +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/symbol_overload_detection.feature +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/tech_debt_detection.feature +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/features/tech_debt_reporting.feature +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/Controller.php +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/Service.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/Simple.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/broken.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/complete.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/service.ts +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/simple.php +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/simple.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/cli_parse/unsupported.txt +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/enum.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/generics.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/imports.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/interface.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/record.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/sealed_class.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/simple_class.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/Application.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/User.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/UserController.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/UserRepository.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring/UserService.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/java/spring_controller.java +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/typescript/app.js +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/typescript/component.tsx +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/fixtures/typescript/service.ts +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/README.md +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchical_test/level1/file1.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchical_test/level1/level2a/file2.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchical_test/level1/level2a/level3/file4.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchical_test/level1/level2b/file3.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/legacy/test_hierarchy_simple.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_adaptive_config.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_adaptive_selector.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_ai_helper.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_backward_compatibility.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_call_integration.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_debt_scan.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_docstring_options.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_hooks.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_json.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_parse.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_scan_defaults_bdd.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_cli_tech_debt.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_config_adaptive.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_dataclass_structure.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_directory_tree.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_docstring_config.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_docstring_processor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_error_handling.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_file_classifier.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_help_system_bdd.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_hooks_config.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_integration_swift_objc.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_annotations.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_edge_cases.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_error_recovery.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_generic_bounds.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_lambda.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_lombok.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_module.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_parser.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_spring.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_java_throws.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_json_output.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_lazy_loading.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_loomgraph_integration.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_objc_association_utils.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parallel_scan.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_detection.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_objc_association.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_objc_basic.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_objc_bridging.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_objc_categories.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_docstrings.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_extensions.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_generics.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_integration.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_poc.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_properties.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_property_wrappers.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_protocols.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_parser_swift_signatures.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_comment_extraction.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_docstring_extraction.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_import_alias.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_php_loomgraph_integration.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_project_index_semantic.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_python_calls.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_python_docstring_description.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_python_import_alias.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_python_inheritance.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_extractor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_info.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_registry.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_table_description.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_route_table_display.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_scanner_passthrough.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_semantic_extractor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_skill_helpers.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_adaptive.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_docstring.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_enriched.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_integration.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_smart_writer_semantic.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_story_4_4_integration.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_symbol_overload.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_symbol_scorer.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_bdd.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_detector.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_formatters.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_ios.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_java.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_tech_debt_reporter.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_test_smells.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_thinkphp_route_extractor.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_typescript_integration.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_typescript_parser.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/test_windows_path_optimization.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/writers/__init__.py +0 -0
- {ai_codeindex-0.22.2 → ai_codeindex-0.23.1}/tests/writers/test_generators.py +0 -0
- {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.
|
|
14
|
-
2.
|
|
15
|
-
3. `codeindex
|
|
16
|
-
4.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
57
|
-
|
|
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
|
-
|
|
|
114
|
-
| AI
|
|
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.
|
|
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
|
[](https://badge.fury.io/py/ai-codeindex)
|
|
60
62
|
[](https://www.python.org/downloads/)
|
|
61
63
|
[](https://opensource.org/licenses/MIT)
|
|
62
64
|
[](https://github.com/dreamlx/codeindex/actions)
|
|
63
65
|
|
|
64
|
-
**Enterprise-grade Code Intelligence Platform —
|
|
66
|
+
**Enterprise-grade Code Intelligence Platform — Make AI agents understand your codebase through semantic navigation, not grep.**
|
|
65
67
|
|
|
66
|
-
codeindex
|
|
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
|
-
- **
|
|
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
|
|
89
|
-
- **Auto-update guide** — Post-install hook automatically updates `~/.claude/CLAUDE.md` after `pip upgrade`
|
|
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
|
|
105
|
-
#
|
|
106
|
-
#
|
|
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
|
|
152
|
-
|
|
153
|
-
|
|
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
|
|
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
|
|
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-
|
|
220
|
-
codeindex scan
|
|
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
|
-
###
|
|
403
|
+
### Two-Phase Pipeline (v0.23.0)
|
|
386
404
|
|
|
387
405
|
```
|
|
388
|
-
|
|
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. **
|
|
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.
|
|
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)
|