codebase-index 1.8.0__tar.gz → 2.0.0__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.
- codebase_index-2.0.0/.claude/skills/codebase-index/.skill_version +1 -0
- {codebase_index-1.8.0/.codex → codebase_index-2.0.0/.claude}/skills/codebase-index/SKILL.md +32 -10
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude/skills/codebase-index/references/commands.md +15 -0
- codebase_index-2.0.0/.claude/skills/codebase-index/references/memory.md +49 -0
- {codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.claude}/skills/codebase-index/references/response-contract.md +12 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude/skills/codebase-index/scripts/cbx +1 -1
- {codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.claude}/skills/codebase-index/scripts/cbx.ps1 +1 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude-plugin/plugin.json +1 -1
- codebase_index-2.0.0/.codex/skills/codebase-index/.skill_version +1 -0
- {codebase_index-1.8.0/skill → codebase_index-2.0.0/.codex/skills/codebase-index}/SKILL.md +32 -10
- {codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.codex}/skills/codebase-index/references/commands.md +15 -0
- codebase_index-2.0.0/.codex/skills/codebase-index/references/memory.md +49 -0
- {codebase_index-1.8.0/.claude → codebase_index-2.0.0/.codex}/skills/codebase-index/references/response-contract.md +12 -1
- {codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.codex}/skills/codebase-index/scripts/cbx +1 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.codex/skills/codebase-index/scripts/cbx.ps1 +1 -1
- codebase_index-2.0.0/.gitattributes +16 -0
- codebase_index-2.0.0/.github/ISSUE_TEMPLATE/benchmark_report.yml +62 -0
- codebase_index-2.0.0/.github/ISSUE_TEMPLATE/bug_report.yml +74 -0
- codebase_index-2.0.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- codebase_index-2.0.0/.github/ISSUE_TEMPLATE/feature_request.yml +50 -0
- codebase_index-2.0.0/.github/ISSUE_TEMPLATE/language_support.yml +48 -0
- codebase_index-2.0.0/.github/PULL_REQUEST_TEMPLATE.md +21 -0
- codebase_index-2.0.0/.github/SUPPORT.md +25 -0
- codebase_index-2.0.0/.github/labels.yml +63 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.github/workflows/ci.yml +21 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.github/workflows/release.yml +14 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.gitignore +2 -0
- codebase_index-2.0.0/.opencode/skills/codebase-index/.skill_version +1 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.opencode/skills/codebase-index/SKILL.md +32 -10
- {codebase_index-1.8.0/.codex → codebase_index-2.0.0/.opencode}/skills/codebase-index/references/commands.md +15 -0
- codebase_index-2.0.0/.opencode/skills/codebase-index/references/memory.md +49 -0
- {codebase_index-1.8.0/skill → codebase_index-2.0.0/.opencode/skills/codebase-index}/references/response-contract.md +12 -1
- {codebase_index-1.8.0/.codex → codebase_index-2.0.0/.opencode}/skills/codebase-index/scripts/cbx +1 -1
- {codebase_index-1.8.0/.claude → codebase_index-2.0.0/.opencode}/skills/codebase-index/scripts/cbx.ps1 +1 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/AGENTS.md +9 -4
- {codebase_index-1.8.0 → codebase_index-2.0.0}/CHANGELOG.md +356 -1
- codebase_index-2.0.0/CONTRIBUTING.md +120 -0
- codebase_index-2.0.0/PKG-INFO +315 -0
- codebase_index-2.0.0/README.md +265 -0
- codebase_index-2.0.0/ROADMAP.md +34 -0
- codebase_index-2.0.0/SECURITY.md +73 -0
- codebase_index-2.0.0/assets/architecture.svg +96 -0
- codebase_index-2.0.0/assets/benchmark.svg +98 -0
- codebase_index-2.0.0/assets/demo-terminal.svg +49 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/bin/cbx +1 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/bin/cbx.ps1 +1 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/ARCHITECTURE.md +20 -13
- codebase_index-2.0.0/docs/BENCHMARKS.md +245 -0
- codebase_index-2.0.0/docs/COMMUNITY_AUDIT.md +262 -0
- codebase_index-2.0.0/docs/COMMUNITY_LAUNCH.md +281 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/COMPARISON.md +19 -19
- codebase_index-2.0.0/docs/DATABASE_SCHEMA.md +6 -0
- codebase_index-2.0.0/docs/DEMO.md +103 -0
- codebase_index-2.0.0/docs/DEVELOPMENT.md +236 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/FAQ.md +39 -29
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/INSTALLATION.md +22 -19
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/MCP.md +18 -5
- codebase_index-2.0.0/docs/MEMORY.md +107 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/QUICKSTART.md +41 -30
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/RELEASE_CHECKLIST.md +27 -18
- codebase_index-2.0.0/docs/RETRIEVAL.md +340 -0
- codebase_index-2.0.0/docs/RETRIEVAL_PIPELINE.md +5 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/ROADMAP.md +14 -2
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/SCHEMA.md +17 -4
- codebase_index-2.0.0/docs/SECURITY.md +7 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/SECURITY_MODEL.md +34 -19
- codebase_index-2.0.0/docs/demo.tape +29 -0
- codebase_index-2.0.0/docs/installer.md +238 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m9-release.md +1 -1
- codebase_index-2.0.0/docs/superpowers/specs/2026-09-10-evidence-memory-design.md +365 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/config.example.json +4 -1
- codebase_index-2.0.0/examples/demo/EXPECTED_OUTPUT.md +187 -0
- codebase_index-2.0.0/examples/demo/README.md +53 -0
- codebase_index-2.0.0/examples/demo/run_demo.ps1 +42 -0
- codebase_index-2.0.0/examples/demo/run_demo.sh +53 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/pyproject.toml +3 -2
- {codebase_index-1.8.0 → codebase_index-2.0.0}/requirements.lock +1 -1
- codebase_index-2.0.0/research/2.0-audit.md +175 -0
- codebase_index-2.0.0/research/README.md +125 -0
- codebase_index-2.0.0/research/architecture.md +185 -0
- codebase_index-2.0.0/research/build_indexes.py +68 -0
- codebase_index-2.0.0/research/data/.gitignore +8 -0
- codebase_index-2.0.0/research/diagnose_accretion.py +141 -0
- codebase_index-2.0.0/research/diagnose_calibration.py +59 -0
- codebase_index-2.0.0/research/diagnose_slots.py +118 -0
- codebase_index-2.0.0/research/diagnose_structure.py +293 -0
- codebase_index-2.0.0/research/experiment_memory.py +162 -0
- codebase_index-2.0.0/research/experiments.md +313 -0
- codebase_index-2.0.0/research/fit_gate.py +68 -0
- codebase_index-2.0.0/research/fit_weights.py +185 -0
- codebase_index-2.0.0/research/hypotheses.md +284 -0
- codebase_index-2.0.0/research/novelty.md +98 -0
- codebase_index-2.0.0/research/nucleus/__init__.py +6 -0
- codebase_index-2.0.0/research/nucleus/baselines.py +313 -0
- codebase_index-2.0.0/research/nucleus/evalrun.py +382 -0
- codebase_index-2.0.0/research/nucleus/memory.py +161 -0
- codebase_index-2.0.0/research/nucleus/relations.py +355 -0
- codebase_index-2.0.0/research/nucleus/search.py +508 -0
- codebase_index-2.0.0/research/related-work.md +250 -0
- codebase_index-2.0.0/research/selection.md +95 -0
- codebase_index-2.0.0/research/test_nucleus.py +129 -0
- codebase_index-2.0.0/scripts/apply_labels.sh +19 -0
- codebase_index-2.0.0/scripts/check_links.py +92 -0
- codebase_index-2.0.0/scripts/check_versions.py +101 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/gen_assets.py +0 -111
- codebase_index-2.0.0/scripts/gen_benchmark_chart.py +119 -0
- codebase_index-2.0.0/scripts/gen_terminal_svg.py +149 -0
- codebase_index-2.0.0/scripts/release_notes.py +113 -0
- {codebase_index-1.8.0/.claude/skills/codebase-index → codebase_index-2.0.0/skill}/SKILL.md +32 -10
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/references/commands.md +15 -0
- codebase_index-2.0.0/skill/references/memory.md +49 -0
- {codebase_index-1.8.0/.codex/skills/codebase-index → codebase_index-2.0.0/skill}/references/response-contract.md +12 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/cbx +1 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/cbx.ps1 +1 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/doctor.py +2 -2
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/smoke_test.py +0 -1
- codebase_index-2.0.0/skills/codebase-index/SKILL.md +111 -0
- codebase_index-2.0.0/skills/codebase-index/references/commands.md +88 -0
- codebase_index-2.0.0/skills/codebase-index/references/memory.md +49 -0
- codebase_index-2.0.0/skills/codebase-index/references/response-contract.md +93 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/__init__.py +1 -1
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/cli.py +152 -9
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/config.py +15 -0
- codebase_index-2.0.0/src/codebase_index/discovery/gates.py +117 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/discovery/walker.py +26 -20
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/doctor.py +38 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/mcp/server.py +74 -19
- codebase_index-2.0.0/src/codebase_index/memory/__init__.py +5 -0
- codebase_index-2.0.0/src/codebase_index/memory/identity.py +181 -0
- codebase_index-2.0.0/src/codebase_index/memory/session.py +230 -0
- codebase_index-2.0.0/src/codebase_index/memory/store.py +435 -0
- codebase_index-2.0.0/src/codebase_index/memory/validate.py +150 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/output/markdown.py +52 -2
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/diversity.py +91 -20
- codebase_index-2.0.0/src/codebase_index/retrieval/features.py +119 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/fusion.py +38 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/pipeline.py +86 -8
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/priors.py +18 -2
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/rerank.py +26 -2
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/searchers.py +30 -8
- codebase_index-2.0.0/src/codebase_index/retrieval/tuning.py +228 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/scaffold.py +12 -4
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/service.py +204 -18
- codebase_index-2.0.0/src/codebase_index/skill_template/SKILL.md +111 -0
- codebase_index-2.0.0/src/codebase_index/skill_template/references/commands.md +88 -0
- codebase_index-2.0.0/src/codebase_index/skill_template/references/memory.md +49 -0
- codebase_index-2.0.0/src/codebase_index/skill_template/references/response-contract.md +93 -0
- codebase_index-2.0.0/src/codebase_index/skill_template/scripts/cbx +25 -0
- codebase_index-2.0.0/src/codebase_index/skill_template/scripts/cbx.ps1 +28 -0
- codebase_index-2.0.0/tests/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_honest_RESULTS.md +6 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_public_RESULTS.md +4 -3
- codebase_index-2.0.0/tests/eval/README.md +166 -0
- codebase_index-2.0.0/tests/eval/baselines.py +443 -0
- codebase_index-2.0.0/tests/eval/gen_queries.py +257 -0
- codebase_index-2.0.0/tests/eval/harness.py +485 -0
- codebase_index-2.0.0/tests/eval/memory_eval.py +660 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/eval/metrics.py +110 -0
- codebase_index-2.0.0/tests/eval/queries/self_repo_git.yml +627 -0
- codebase_index-2.0.0/tests/eval/results/1.10.0-perf.json +14 -0
- codebase_index-2.0.0/tests/eval/results/1.10.0-retrieval-8corpus.txt +58 -0
- codebase_index-2.0.0/tests/eval/results/2026-09-04-public-baselines.json +14501 -0
- codebase_index-2.0.0/tests/eval/results/2026-09-04-public-baselines.md +104 -0
- codebase_index-2.0.0/tests/eval/results/2026-09-14-evidence-memory.json +960 -0
- codebase_index-2.0.0/tests/eval/results/2026-09-14-evidence-memory.md +19 -0
- codebase_index-2.0.0/tests/eval/run_baselines.py +348 -0
- codebase_index-2.0.0/tests/eval/run_eval.py +201 -0
- codebase_index-2.0.0/tests/fixtures/index-1.10.0/index.sqlite +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_healthcheck.json +4 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_index_stats.json +4 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/stats.json +4 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_discovery.py +24 -0
- codebase_index-2.0.0/tests/test_diversity.py +120 -0
- codebase_index-2.0.0/tests/test_eval_baselines.py +68 -0
- codebase_index-2.0.0/tests/test_fusion.py +145 -0
- codebase_index-2.0.0/tests/test_gen_queries.py +167 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_mcp_golden.py +5 -7
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_mcp_server.py +33 -7
- codebase_index-2.0.0/tests/test_memory_eval_smoke.py +119 -0
- codebase_index-2.0.0/tests/test_memory_identity.py +156 -0
- codebase_index-2.0.0/tests/test_memory_lifecycle.py +232 -0
- codebase_index-2.0.0/tests/test_memory_session.py +293 -0
- codebase_index-2.0.0/tests/test_memory_stale_context.py +124 -0
- codebase_index-2.0.0/tests/test_memory_store.py +208 -0
- codebase_index-2.0.0/tests/test_memory_surfaces.py +197 -0
- codebase_index-2.0.0/tests/test_memory_validate.py +210 -0
- codebase_index-2.0.0/tests/test_migration_1x.py +104 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_packaging.py +2 -2
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_plugin_wrappers.py +24 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_priors.py +9 -1
- codebase_index-2.0.0/tests/test_ranking_features.py +263 -0
- codebase_index-2.0.0/tests/test_read_cap.py +61 -0
- codebase_index-2.0.0/tests/test_release_scripts.py +172 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_symbol_ranking.py +76 -0
- codebase_index-2.0.0/tests/test_tuning_contract.py +165 -0
- codebase_index-1.8.0/.claude/skills/codebase-index/.skill_version +0 -1
- codebase_index-1.8.0/.codex/skills/codebase-index/.skill_version +0 -1
- codebase_index-1.8.0/.gitattributes +0 -7
- codebase_index-1.8.0/.github/FUNDING.yml +0 -8
- codebase_index-1.8.0/.github/ISSUE_TEMPLATE/bug_report.yml +0 -74
- codebase_index-1.8.0/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
- codebase_index-1.8.0/.github/PULL_REQUEST_TEMPLATE.md +0 -38
- codebase_index-1.8.0/.opencode/skills/codebase-index/.skill_version +0 -1
- codebase_index-1.8.0/CONTRIBUTING.md +0 -162
- codebase_index-1.8.0/PKG-INFO +0 -375
- codebase_index-1.8.0/README.md +0 -325
- codebase_index-1.8.0/ROADMAP.md +0 -112
- codebase_index-1.8.0/SECURITY.md +0 -51
- codebase_index-1.8.0/assets/demo.png +0 -0
- codebase_index-1.8.0/docs/BENCHMARKS.md +0 -115
- codebase_index-1.8.0/docs/DATABASE_SCHEMA.md +0 -185
- codebase_index-1.8.0/docs/RETRIEVAL.md +0 -180
- codebase_index-1.8.0/docs/RETRIEVAL_PIPELINE.md +0 -170
- codebase_index-1.8.0/docs/SECURITY.md +0 -119
- codebase_index-1.8.0/docs/SEO.md +0 -196
- codebase_index-1.8.0/docs/installer.md +0 -239
- codebase_index-1.8.0/examples/demo-project/README.md +0 -55
- codebase_index-1.8.0/skills/codebase-index/SKILL.md +0 -89
- codebase_index-1.8.0/skills/codebase-index/references/commands.md +0 -73
- codebase_index-1.8.0/skills/codebase-index/references/response-contract.md +0 -82
- codebase_index-1.8.0/src/codebase_index/retrieval/tuning.py +0 -106
- codebase_index-1.8.0/src/codebase_index/skill_template/SKILL.md +0 -89
- codebase_index-1.8.0/src/codebase_index/skill_template/references/commands.md +0 -73
- codebase_index-1.8.0/src/codebase_index/skill_template/references/response-contract.md +0 -82
- codebase_index-1.8.0/src/codebase_index/skill_template/scripts/cbx +0 -25
- codebase_index-1.8.0/src/codebase_index/skill_template/scripts/cbx.ps1 +0 -28
- codebase_index-1.8.0/tests/eval/harness.py +0 -257
- codebase_index-1.8.0/tests/eval/run_eval.py +0 -104
- codebase_index-1.8.0/tests/test_diversity.py +0 -49
- codebase_index-1.8.0/tests/test_fusion.py +0 -66
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude/skills/codebase-index/examples/hooks/settings.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude-plugin/marketplace.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.codex/skills/codebase-index/examples/hooks/settings.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.editorconfig +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.github/ISSUE_TEMPLATE/skill_listing_request.yml +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.opencode/agents/codebase-index.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.opencode/commands/codebase-index.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/.opencode/skills/codebase-index/examples/hooks/settings.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/CODE_OF_CONDUCT.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/LICENSE +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/claude.ps1 +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/claude.sh +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/codex.ps1 +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/codex.sh +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/opencode.ps1 +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/opencode.sh +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/assets/mark.png +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/assets/social-preview.png +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/bin/codebase-index +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/bin/codebase-index.ps1 +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/LANGUAGES.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/PRODUCT_UPGRADE_PLAN.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/SKILL_DESIGN.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-benchmark-index-improvements.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-generalize-skill-research-discipline.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m1-storage-discovery.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m2-fts-lexical.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m3-treesitter-symbols.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m4-hybrid-search.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m5-graph-impact.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m6-embeddings-vector.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m7-5-plugin-one-command-install.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m7-skill-packaging.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m8-hooks-watch.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-multilang-symbols-make-skill-win.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-06-24-snippet-skeletonization.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/specs/2026-05-29-plugin-one-command-install-design.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/specs/2026-06-14-typed-framework-edges-design.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/specs/2026-06-24-snippet-skeletonization-design.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/hooks/settings.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/queries.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/sample-queries.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/sample-retrieval-output.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/hooks/hooks.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/install.ps1 +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/install.sh +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/lib/common.ps1 +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/lib/common.sh +0 -0
- {codebase_index-1.8.0/tests → codebase_index-2.0.0/research}/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/bootstrap.ps1 +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/bootstrap.sh +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/release_smoke.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/sync_skill_copies.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/examples/basic-usage.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/examples/claude-md-example.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/examples/hooks-example.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/bootstrap.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/install.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/__main__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/discovery/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/discovery/classify.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/discovery/ignore.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/backend.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/external.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/local.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/noop.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/analysis.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/builder.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/expand.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/export.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/navigate.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/retrieval.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/indexer/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/indexer/doc_chunks.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/indexer/freshness.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/indexer/pipeline.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/mcp/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/models.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/output/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/output/json.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/output/redact.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/base.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/languages.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/line_chunker.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/symbol_chunks.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/treesitter.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/budget.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/fuzzy.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/intent.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/lexical.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/skeleton.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/types.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/skill_template/examples/hooks/settings.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/skill_update.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/storage/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/storage/db.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/storage/repo.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/storage/schema.sql +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/watch/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/watch/watcher.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_honest.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_honest_newtowny.txt +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_public.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_real_repo.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/conftest.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/eval/__init__.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/eval/queries/self_repo.yml +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/README.md +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/expected_answers.yml +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/multilang/sample.go +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/multilang/sample.java +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/multilang/sample.rs +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/.env +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/.gitignore +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/huge.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/logo.png +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/node_modules/leftpad/index.js +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/secrets.pem +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/src/api/service.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/src/auth/token.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/src/models/user.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/src/schema.generated.ts +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/web/app.ts +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/architecture.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/describe_refresh.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/explain_auth.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/impact_user_model.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_architecture.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_describe_symbol.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_explain_code.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_find_refs.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_find_symbol.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_impact_of.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_impact_of_diff.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_path_between.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_search_code.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/path_renew_to_token.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/refs_refresh_access_token.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/search_token.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/symbol_user.json +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden_utils.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/installer/smoke.ps1 +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/installer/smoke.sh +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_analysis.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_benchmark_comparison.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_bootstrap.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_budget.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_chunker.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_classify.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_clean_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_cli_golden.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_config.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_diff_impact.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_doc_chunks.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_doctor.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_embeddings_backend.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_embeddings_external.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_embeddings_local.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_freshness.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_fuzzy.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_graph.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_graph_coverage.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_graph_export_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_graph_retrieval.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_hooks_merge.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_hybrid_ranking.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_ignore.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_impact_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_impact_decay.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_index_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_init_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_intent.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_languages.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_lexical.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_multilang_symbols.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_navigate.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_output.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_parse_guardrails.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_perf_smoke.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_pipeline.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_pipeline_search.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_pipeline_vectors.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_plugin_manifest.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_plugin_skill_parity.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_public_benchmark.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_quality_benchmark.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_redact.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_repo_search.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_rerank.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_retrieval_types.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_scaffold.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_search_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_searchers.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_seeded_index.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_service.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_skeleton.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_skill_update.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_storage.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_symbol_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_symbol_refs.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_sync_skill_copies.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_treesitter.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_update.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_update_cli.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_vector_search.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_vectors_storage.py +0 -0
- {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_watcher.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.0.0
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: codebase-index
|
|
3
|
-
description: Use before answering repository questions about architecture, implementation, symbols, references, dependencies, refactoring impact, data flow, or bugs. Query the local hybrid index first so the agent reads only evidence-bearing file:line ranges instead of scanning the repository.
|
|
4
|
-
allowed-tools: Bash(codebase-index search *), Bash(codebase-index explain *), Bash(codebase-index architecture *), Bash(codebase-index symbol *), Bash(codebase-index refs *), Bash(codebase-index impact *), Bash(codebase-index diff-impact *), Bash(codebase-index path *), Bash(codebase-index describe *), Bash(codebase-index graph *), Bash(codebase-index stats *), Bash(codebase-index doctor *), Bash(codebase-index update *), Bash(codebase-index index *), Bash(cbx *), Read, Grep, Glob
|
|
3
|
+
description: Use before answering repository questions about architecture, implementation, symbols, references, dependencies, refactoring impact, data flow, or bugs. Query the local hybrid index first so the agent reads only evidence-bearing file:line ranges instead of scanning the repository, and verify evidence gathered earlier before relying on it.
|
|
4
|
+
allowed-tools: Bash(codebase-index search *), Bash(codebase-index explain *), Bash(codebase-index architecture *), Bash(codebase-index symbol *), Bash(codebase-index refs *), Bash(codebase-index impact *), Bash(codebase-index diff-impact *), Bash(codebase-index path *), Bash(codebase-index describe *), Bash(codebase-index verify *), Bash(codebase-index graph *), Bash(codebase-index stats *), Bash(codebase-index doctor *), Bash(codebase-index update *), Bash(codebase-index index *), Bash(cbx *), Read, Grep, Glob
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Codebase Index
|
|
8
8
|
|
|
9
9
|
Use the local index before reading repository files.
|
|
10
10
|
|
|
11
|
-
The operating principle is **Find → Trace → Predict**:
|
|
11
|
+
The operating principle is **Find → Trace → Verify → Predict**:
|
|
12
12
|
|
|
13
13
|
- **Find** the implementation with ranked retrieval.
|
|
14
14
|
- **Trace** behavior through definitions, callers, dependencies, and paths.
|
|
15
|
+
- **Verify** that evidence you already hold is still true before relying on it.
|
|
15
16
|
- **Predict** change impact while preserving an explicit evidence trail.
|
|
16
17
|
|
|
17
18
|
## Route the question
|
|
18
19
|
|
|
19
20
|
| Intent | Command |
|
|
20
21
|
|---|---|
|
|
21
|
-
| Where is X implemented? | `codebase-index search "X" --json` |
|
|
22
|
-
| How does X work? | `codebase-index explain "X" --json` |
|
|
22
|
+
| Where is X implemented? | `codebase-index search "X" --session <tag> --json` |
|
|
23
|
+
| How does X work? | `codebase-index explain "X" --session <tag> --json` |
|
|
23
24
|
| What is this codebase? | `codebase-index architecture --json` |
|
|
24
25
|
| Find a named symbol | `codebase-index symbol "X" --json` |
|
|
25
26
|
| Who calls or references X? | `codebase-index refs "X" --json` |
|
|
@@ -27,6 +28,7 @@ The operating principle is **Find → Trace → Predict**:
|
|
|
27
28
|
| What does my current diff affect? | `codebase-index diff-impact --json` |
|
|
28
29
|
| How are X and Y connected? | `codebase-index path "X" "Y" --json` |
|
|
29
30
|
| Describe X and its neighborhood | `codebase-index describe "X" --json` |
|
|
31
|
+
| Is what I read earlier still true? | `codebase-index verify --session <tag> --json` |
|
|
30
32
|
| Produce a human graph | `codebase-index graph "X" --output <path>` |
|
|
31
33
|
|
|
32
34
|
Use `search --mode symbol` for exact symbol work, `--mode fts` for text and
|
|
@@ -38,21 +40,41 @@ or routing remain unclear.
|
|
|
38
40
|
|
|
39
41
|
## Evidence protocol
|
|
40
42
|
|
|
41
|
-
1.
|
|
42
|
-
|
|
43
|
+
1. Pick one session tag for this conversation (for example `auth-fix-1`) and
|
|
44
|
+
pass `--session <tag>` to every `search` and `explain`.
|
|
45
|
+
2. Run the best-matching command with `--json`.
|
|
46
|
+
3. Check `index` before trusting the payload:
|
|
43
47
|
- missing → run `codebase-index index`, then repeat;
|
|
44
48
|
- stale with fewer than 20 changed files → run `codebase-index update`;
|
|
45
49
|
- stale with 20 or more changed files → run `codebase-index index`;
|
|
46
50
|
- fresh → continue.
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
4. Start with ranks 1–3. Read only `recommended_reads` line ranges.
|
|
52
|
+
5. Trace one additional hop only when the question requires behavior,
|
|
49
53
|
ownership, or impact.
|
|
50
|
-
|
|
54
|
+
6. Before answering or editing from evidence gathered earlier in the task, run
|
|
55
|
+
`codebase-index verify --session <tag> --json` and reread anything whose
|
|
56
|
+
state is not `valid` or `relocated`.
|
|
57
|
+
7. Answer with `file:line` evidence and state uncertainty explicitly.
|
|
51
58
|
|
|
52
59
|
Do not open whole files when a line range is available. A snippet may already
|
|
53
60
|
be sufficient. `skeletonized: true` means the response intentionally folded
|
|
54
61
|
unrelated body lines; read the supplied range when the missing body matters.
|
|
55
62
|
|
|
63
|
+
## Evidence memory
|
|
64
|
+
|
|
65
|
+
- `reused: true` with `snippet: null` — this session already received that
|
|
66
|
+
exact text and its source is unchanged. Use your earlier copy; if you can no
|
|
67
|
+
longer see it, Read the range.
|
|
68
|
+
- `memory.invalidated` — evidence this session received has changed since.
|
|
69
|
+
Treat your earlier copy as wrong and reread before relying on it.
|
|
70
|
+
- `stale: true` — the index is older than the file. Run `codebase-index update`
|
|
71
|
+
or Read the range.
|
|
72
|
+
- A tag belongs to one context. Never give it to a subagent or another
|
|
73
|
+
conversation. Start a new tag after the context is cleared or compacted, or
|
|
74
|
+
whenever earlier snippets are no longer visible to you.
|
|
75
|
+
|
|
76
|
+
Verdict states and citing evidence in notes: [references/memory.md](references/memory.md).
|
|
77
|
+
|
|
56
78
|
## Confidence contract
|
|
57
79
|
|
|
58
80
|
- **high** — answer from the indexed evidence.
|
{codebase_index-1.8.0 → codebase_index-2.0.0}/.claude/skills/codebase-index/references/commands.md
RENAMED
|
@@ -17,6 +17,9 @@ Useful search options:
|
|
|
17
17
|
- `--offset <pagination offset>`
|
|
18
18
|
- `--raw` to disable snippet skeletonization
|
|
19
19
|
- `--no-fallback` to suppress fallback suggestions
|
|
20
|
+
- `--session <tag>` to name this conversation's context: unchanged evidence it
|
|
21
|
+
already received comes back as `reused: true` without the snippet, and
|
|
22
|
+
evidence that changed is listed under `memory.invalidated`
|
|
20
23
|
|
|
21
24
|
`explain` uses the HOW_IT_WORKS intent and a larger default token budget. Prefer
|
|
22
25
|
it over repeatedly rewording a broad search.
|
|
@@ -49,6 +52,18 @@ codebase-index graph "<target>" --direction both --depth 2 --output graph.html
|
|
|
49
52
|
For headless work, use `--output`; do not use `--open`. Exports also support
|
|
50
53
|
`--format graphml|dot|neo4j`.
|
|
51
54
|
|
|
55
|
+
## Evidence
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
codebase-index verify --session <tag> --json
|
|
59
|
+
codebase-index verify "<path:start-end@hash>" ... --json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- `verify` is read-only and needs no index: it checks evidence against the
|
|
63
|
+
working tree. `all_valid` is true only when every checked span still holds.
|
|
64
|
+
- `--strict` exits 1 when anything is invalid (useful in scripts).
|
|
65
|
+
- See [memory.md](memory.md) for verdict states and when to reread.
|
|
66
|
+
|
|
52
67
|
## Index health
|
|
53
68
|
|
|
54
69
|
```bash
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Evidence Memory
|
|
2
|
+
|
|
3
|
+
Load this when you use `--session`, when a packet contains `reused`, `stale` or
|
|
4
|
+
`memory`, or when you want to cite evidence for later.
|
|
5
|
+
|
|
6
|
+
## What is guaranteed
|
|
7
|
+
|
|
8
|
+
Evidence is identified by the exact bytes of a file span. `reused: true` is set
|
|
9
|
+
only when this session already received the same text — or the whole span —
|
|
10
|
+
and those bytes are unchanged now. Nothing is decided by query similarity, and
|
|
11
|
+
memory stores no source text.
|
|
12
|
+
|
|
13
|
+
## Verdict states
|
|
14
|
+
|
|
15
|
+
| state | still true? | do this |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `valid` | yes | use it |
|
|
18
|
+
| `relocated` | yes — identical content moved inside the file | use it; cite the new lines |
|
|
19
|
+
| `changed` | no | reread the range before relying on it |
|
|
20
|
+
| `ambiguous` | no — identical content now occurs more than once | reread |
|
|
21
|
+
| `deleted` | no — file gone; a rename or move counts as deleted | search again |
|
|
22
|
+
| `excluded` | no — now ignored or secret-like | do not read it |
|
|
23
|
+
| `unreadable` | no | search again |
|
|
24
|
+
|
|
25
|
+
## Reread even when evidence is valid
|
|
26
|
+
|
|
27
|
+
- You are about to edit and need the exact current text.
|
|
28
|
+
- The earlier snippet was a skeleton or a signature and you need the body.
|
|
29
|
+
- Your context was cleared or compacted, or you cannot see the earlier snippet.
|
|
30
|
+
- A tool output was truncated.
|
|
31
|
+
|
|
32
|
+
## Citing evidence across conversations
|
|
33
|
+
|
|
34
|
+
`codebase-index verify --session <tag> --json` lists everything the session
|
|
35
|
+
received as `path:start-end@hash` references. Keep the references next to the
|
|
36
|
+
conclusions they support in notes or handoffs:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
Refunds are capped at the invoice total [billing/refund.py:3-4@3f9a2c1b7d4e8a90]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Later, from any agent, check them before trusting the note:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
codebase-index verify "billing/refund.py:3-4@3f9a2c1b7d4e8a90" --json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`all_valid: true` means every cited span still holds exactly. Otherwise reread
|
|
49
|
+
the invalid spans and re-derive the conclusion; do not patch the old one.
|
|
@@ -16,9 +16,20 @@ Each result can contain:
|
|
|
16
16
|
- `snippet`
|
|
17
17
|
- `skeletonized`
|
|
18
18
|
- `elided_lines`
|
|
19
|
+
- `stale` — only when the index text no longer matches the file
|
|
20
|
+
- `reused` — only with `--session`, when `snippet` was withheld because this
|
|
21
|
+
session already received that exact text from unchanged source
|
|
19
22
|
|
|
20
23
|
`recommended_reads` is the read plan. Start with its first one to three entries
|
|
21
|
-
and use exact line ranges.
|
|
24
|
+
and use exact line ranges. An entry with `truncated: true` was capped at the
|
|
25
|
+
definition head (`max_read_lines`, default 120); `line_end_full` gives the real
|
|
26
|
+
extent. Read the capped range first and continue only when the head is not
|
|
27
|
+
enough.
|
|
28
|
+
|
|
29
|
+
With `--session`, the packet also carries `memory`: `session`, `reused`,
|
|
30
|
+
`tokens_saved`, and `invalidated` — references to evidence the session received
|
|
31
|
+
that has since changed. `available: false` means nothing was withheld. See
|
|
32
|
+
[memory.md](memory.md).
|
|
22
33
|
|
|
23
34
|
`pagination.has_more` and `pagination.next_offset` indicate additional results.
|
|
24
35
|
Prefer a more specific command or a larger token budget before paging.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# - Whitelists subcommands so the skill can never invoke destructive ones (clean/init/watch).
|
|
5
5
|
set -euo pipefail
|
|
6
6
|
|
|
7
|
-
ALLOWED="search explain architecture symbol refs impact diff-impact path describe graph stats doctor update index"
|
|
7
|
+
ALLOWED="search explain architecture symbol refs impact diff-impact path describe verify graph stats doctor update index"
|
|
8
8
|
|
|
9
9
|
sub="${1:-}"
|
|
10
10
|
case " $ALLOWED " in
|
|
@@ -10,7 +10,7 @@ param(
|
|
|
10
10
|
$ErrorActionPreference = "Stop"
|
|
11
11
|
$allowed = @(
|
|
12
12
|
"search", "explain", "architecture", "symbol", "refs", "impact", "diff-impact",
|
|
13
|
-
"path", "describe", "graph", "stats", "doctor", "update", "index"
|
|
13
|
+
"path", "describe", "verify", "graph", "stats", "doctor", "update", "index"
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
if ($allowed -notcontains $Subcommand) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "codebase-index",
|
|
4
4
|
"displayName": "Codebase Index",
|
|
5
5
|
"description": "Give Claude a precise local map of your codebase: find implementations, trace behavior, and predict change impact with file-line evidence.",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "2.0.0",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "codebase-index contributors"
|
|
9
9
|
},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.0.0
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: codebase-index
|
|
3
|
-
description: Use before answering repository questions about architecture, implementation, symbols, references, dependencies, refactoring impact, data flow, or bugs. Query the local hybrid index first so the agent reads only evidence-bearing file:line ranges instead of scanning the repository.
|
|
4
|
-
allowed-tools: Bash(codebase-index search *), Bash(codebase-index explain *), Bash(codebase-index architecture *), Bash(codebase-index symbol *), Bash(codebase-index refs *), Bash(codebase-index impact *), Bash(codebase-index diff-impact *), Bash(codebase-index path *), Bash(codebase-index describe *), Bash(codebase-index graph *), Bash(codebase-index stats *), Bash(codebase-index doctor *), Bash(codebase-index update *), Bash(codebase-index index *), Bash(cbx *), Read, Grep, Glob
|
|
3
|
+
description: Use before answering repository questions about architecture, implementation, symbols, references, dependencies, refactoring impact, data flow, or bugs. Query the local hybrid index first so the agent reads only evidence-bearing file:line ranges instead of scanning the repository, and verify evidence gathered earlier before relying on it.
|
|
4
|
+
allowed-tools: Bash(codebase-index search *), Bash(codebase-index explain *), Bash(codebase-index architecture *), Bash(codebase-index symbol *), Bash(codebase-index refs *), Bash(codebase-index impact *), Bash(codebase-index diff-impact *), Bash(codebase-index path *), Bash(codebase-index describe *), Bash(codebase-index verify *), Bash(codebase-index graph *), Bash(codebase-index stats *), Bash(codebase-index doctor *), Bash(codebase-index update *), Bash(codebase-index index *), Bash(cbx *), Read, Grep, Glob
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Codebase Index
|
|
8
8
|
|
|
9
9
|
Use the local index before reading repository files.
|
|
10
10
|
|
|
11
|
-
The operating principle is **Find → Trace → Predict**:
|
|
11
|
+
The operating principle is **Find → Trace → Verify → Predict**:
|
|
12
12
|
|
|
13
13
|
- **Find** the implementation with ranked retrieval.
|
|
14
14
|
- **Trace** behavior through definitions, callers, dependencies, and paths.
|
|
15
|
+
- **Verify** that evidence you already hold is still true before relying on it.
|
|
15
16
|
- **Predict** change impact while preserving an explicit evidence trail.
|
|
16
17
|
|
|
17
18
|
## Route the question
|
|
18
19
|
|
|
19
20
|
| Intent | Command |
|
|
20
21
|
|---|---|
|
|
21
|
-
| Where is X implemented? | `codebase-index search "X" --json` |
|
|
22
|
-
| How does X work? | `codebase-index explain "X" --json` |
|
|
22
|
+
| Where is X implemented? | `codebase-index search "X" --session <tag> --json` |
|
|
23
|
+
| How does X work? | `codebase-index explain "X" --session <tag> --json` |
|
|
23
24
|
| What is this codebase? | `codebase-index architecture --json` |
|
|
24
25
|
| Find a named symbol | `codebase-index symbol "X" --json` |
|
|
25
26
|
| Who calls or references X? | `codebase-index refs "X" --json` |
|
|
@@ -27,6 +28,7 @@ The operating principle is **Find → Trace → Predict**:
|
|
|
27
28
|
| What does my current diff affect? | `codebase-index diff-impact --json` |
|
|
28
29
|
| How are X and Y connected? | `codebase-index path "X" "Y" --json` |
|
|
29
30
|
| Describe X and its neighborhood | `codebase-index describe "X" --json` |
|
|
31
|
+
| Is what I read earlier still true? | `codebase-index verify --session <tag> --json` |
|
|
30
32
|
| Produce a human graph | `codebase-index graph "X" --output <path>` |
|
|
31
33
|
|
|
32
34
|
Use `search --mode symbol` for exact symbol work, `--mode fts` for text and
|
|
@@ -38,21 +40,41 @@ or routing remain unclear.
|
|
|
38
40
|
|
|
39
41
|
## Evidence protocol
|
|
40
42
|
|
|
41
|
-
1.
|
|
42
|
-
|
|
43
|
+
1. Pick one session tag for this conversation (for example `auth-fix-1`) and
|
|
44
|
+
pass `--session <tag>` to every `search` and `explain`.
|
|
45
|
+
2. Run the best-matching command with `--json`.
|
|
46
|
+
3. Check `index` before trusting the payload:
|
|
43
47
|
- missing → run `codebase-index index`, then repeat;
|
|
44
48
|
- stale with fewer than 20 changed files → run `codebase-index update`;
|
|
45
49
|
- stale with 20 or more changed files → run `codebase-index index`;
|
|
46
50
|
- fresh → continue.
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
4. Start with ranks 1–3. Read only `recommended_reads` line ranges.
|
|
52
|
+
5. Trace one additional hop only when the question requires behavior,
|
|
49
53
|
ownership, or impact.
|
|
50
|
-
|
|
54
|
+
6. Before answering or editing from evidence gathered earlier in the task, run
|
|
55
|
+
`codebase-index verify --session <tag> --json` and reread anything whose
|
|
56
|
+
state is not `valid` or `relocated`.
|
|
57
|
+
7. Answer with `file:line` evidence and state uncertainty explicitly.
|
|
51
58
|
|
|
52
59
|
Do not open whole files when a line range is available. A snippet may already
|
|
53
60
|
be sufficient. `skeletonized: true` means the response intentionally folded
|
|
54
61
|
unrelated body lines; read the supplied range when the missing body matters.
|
|
55
62
|
|
|
63
|
+
## Evidence memory
|
|
64
|
+
|
|
65
|
+
- `reused: true` with `snippet: null` — this session already received that
|
|
66
|
+
exact text and its source is unchanged. Use your earlier copy; if you can no
|
|
67
|
+
longer see it, Read the range.
|
|
68
|
+
- `memory.invalidated` — evidence this session received has changed since.
|
|
69
|
+
Treat your earlier copy as wrong and reread before relying on it.
|
|
70
|
+
- `stale: true` — the index is older than the file. Run `codebase-index update`
|
|
71
|
+
or Read the range.
|
|
72
|
+
- A tag belongs to one context. Never give it to a subagent or another
|
|
73
|
+
conversation. Start a new tag after the context is cleared or compacted, or
|
|
74
|
+
whenever earlier snippets are no longer visible to you.
|
|
75
|
+
|
|
76
|
+
Verdict states and citing evidence in notes: [references/memory.md](references/memory.md).
|
|
77
|
+
|
|
56
78
|
## Confidence contract
|
|
57
79
|
|
|
58
80
|
- **high** — answer from the indexed evidence.
|
|
@@ -17,6 +17,9 @@ Useful search options:
|
|
|
17
17
|
- `--offset <pagination offset>`
|
|
18
18
|
- `--raw` to disable snippet skeletonization
|
|
19
19
|
- `--no-fallback` to suppress fallback suggestions
|
|
20
|
+
- `--session <tag>` to name this conversation's context: unchanged evidence it
|
|
21
|
+
already received comes back as `reused: true` without the snippet, and
|
|
22
|
+
evidence that changed is listed under `memory.invalidated`
|
|
20
23
|
|
|
21
24
|
`explain` uses the HOW_IT_WORKS intent and a larger default token budget. Prefer
|
|
22
25
|
it over repeatedly rewording a broad search.
|
|
@@ -49,6 +52,18 @@ codebase-index graph "<target>" --direction both --depth 2 --output graph.html
|
|
|
49
52
|
For headless work, use `--output`; do not use `--open`. Exports also support
|
|
50
53
|
`--format graphml|dot|neo4j`.
|
|
51
54
|
|
|
55
|
+
## Evidence
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
codebase-index verify --session <tag> --json
|
|
59
|
+
codebase-index verify "<path:start-end@hash>" ... --json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- `verify` is read-only and needs no index: it checks evidence against the
|
|
63
|
+
working tree. `all_valid` is true only when every checked span still holds.
|
|
64
|
+
- `--strict` exits 1 when anything is invalid (useful in scripts).
|
|
65
|
+
- See [memory.md](memory.md) for verdict states and when to reread.
|
|
66
|
+
|
|
52
67
|
## Index health
|
|
53
68
|
|
|
54
69
|
```bash
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Evidence Memory
|
|
2
|
+
|
|
3
|
+
Load this when you use `--session`, when a packet contains `reused`, `stale` or
|
|
4
|
+
`memory`, or when you want to cite evidence for later.
|
|
5
|
+
|
|
6
|
+
## What is guaranteed
|
|
7
|
+
|
|
8
|
+
Evidence is identified by the exact bytes of a file span. `reused: true` is set
|
|
9
|
+
only when this session already received the same text — or the whole span —
|
|
10
|
+
and those bytes are unchanged now. Nothing is decided by query similarity, and
|
|
11
|
+
memory stores no source text.
|
|
12
|
+
|
|
13
|
+
## Verdict states
|
|
14
|
+
|
|
15
|
+
| state | still true? | do this |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `valid` | yes | use it |
|
|
18
|
+
| `relocated` | yes — identical content moved inside the file | use it; cite the new lines |
|
|
19
|
+
| `changed` | no | reread the range before relying on it |
|
|
20
|
+
| `ambiguous` | no — identical content now occurs more than once | reread |
|
|
21
|
+
| `deleted` | no — file gone; a rename or move counts as deleted | search again |
|
|
22
|
+
| `excluded` | no — now ignored or secret-like | do not read it |
|
|
23
|
+
| `unreadable` | no | search again |
|
|
24
|
+
|
|
25
|
+
## Reread even when evidence is valid
|
|
26
|
+
|
|
27
|
+
- You are about to edit and need the exact current text.
|
|
28
|
+
- The earlier snippet was a skeleton or a signature and you need the body.
|
|
29
|
+
- Your context was cleared or compacted, or you cannot see the earlier snippet.
|
|
30
|
+
- A tool output was truncated.
|
|
31
|
+
|
|
32
|
+
## Citing evidence across conversations
|
|
33
|
+
|
|
34
|
+
`codebase-index verify --session <tag> --json` lists everything the session
|
|
35
|
+
received as `path:start-end@hash` references. Keep the references next to the
|
|
36
|
+
conclusions they support in notes or handoffs:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
Refunds are capped at the invoice total [billing/refund.py:3-4@3f9a2c1b7d4e8a90]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Later, from any agent, check them before trusting the note:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
codebase-index verify "billing/refund.py:3-4@3f9a2c1b7d4e8a90" --json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`all_valid: true` means every cited span still holds exactly. Otherwise reread
|
|
49
|
+
the invalid spans and re-derive the conclusion; do not patch the old one.
|
|
@@ -16,9 +16,20 @@ Each result can contain:
|
|
|
16
16
|
- `snippet`
|
|
17
17
|
- `skeletonized`
|
|
18
18
|
- `elided_lines`
|
|
19
|
+
- `stale` — only when the index text no longer matches the file
|
|
20
|
+
- `reused` — only with `--session`, when `snippet` was withheld because this
|
|
21
|
+
session already received that exact text from unchanged source
|
|
19
22
|
|
|
20
23
|
`recommended_reads` is the read plan. Start with its first one to three entries
|
|
21
|
-
and use exact line ranges.
|
|
24
|
+
and use exact line ranges. An entry with `truncated: true` was capped at the
|
|
25
|
+
definition head (`max_read_lines`, default 120); `line_end_full` gives the real
|
|
26
|
+
extent. Read the capped range first and continue only when the head is not
|
|
27
|
+
enough.
|
|
28
|
+
|
|
29
|
+
With `--session`, the packet also carries `memory`: `session`, `reused`,
|
|
30
|
+
`tokens_saved`, and `invalidated` — references to evidence the session received
|
|
31
|
+
that has since changed. `available: false` means nothing was withheld. See
|
|
32
|
+
[memory.md](memory.md).
|
|
22
33
|
|
|
23
34
|
`pagination.has_more` and `pagination.next_offset` indicate additional results.
|
|
24
35
|
Prefer a more specific command or a larger token budget before paging.
|
{codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.codex}/skills/codebase-index/scripts/cbx
RENAMED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# - Whitelists subcommands so the skill can never invoke destructive ones (clean/init/watch).
|
|
5
5
|
set -euo pipefail
|
|
6
6
|
|
|
7
|
-
ALLOWED="search explain architecture symbol refs impact diff-impact path describe graph stats doctor update index"
|
|
7
|
+
ALLOWED="search explain architecture symbol refs impact diff-impact path describe verify graph stats doctor update index"
|
|
8
8
|
|
|
9
9
|
sub="${1:-}"
|
|
10
10
|
case " $ALLOWED " in
|
|
@@ -10,7 +10,7 @@ param(
|
|
|
10
10
|
$ErrorActionPreference = "Stop"
|
|
11
11
|
$allowed = @(
|
|
12
12
|
"search", "explain", "architecture", "symbol", "refs", "impact", "diff-impact",
|
|
13
|
-
"path", "describe", "graph", "stats", "doctor", "update", "index"
|
|
13
|
+
"path", "describe", "verify", "graph", "stats", "doctor", "update", "index"
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
if ($allowed -notcontains $Subcommand) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Скрипты-инсталляторы должны иметь LF, иначе ломаются на macOS/Linux
|
|
2
|
+
# (shebang "#!/usr/bin/env sh\r" недопустим). PowerShell-файлы — тоже LF для единообразия.
|
|
3
|
+
*.sh text eol=lf
|
|
4
|
+
*.ps1 text eol=lf
|
|
5
|
+
*.py text eol=lf
|
|
6
|
+
# cbx — POSIX-скрипт без расширения; CRLF в worktree ломает shebang при копировании
|
|
7
|
+
cbx text eol=lf
|
|
8
|
+
# .skill_version хранит ровно "<version>\n"; scripts/sync_skill_copies.py пишет и
|
|
9
|
+
# сравнивает байты, поэтому при core.autocrlf=true git подставлял CRLF в worktree и
|
|
10
|
+
# test_real_repo_is_in_sync падал на любом свежем клоне под Windows.
|
|
11
|
+
.skill_version text eol=lf
|
|
12
|
+
# sample_repo сравнивается побайтно: tests/fixtures/index-1.10.0/index.sqlite хранит sha256
|
|
13
|
+
# её файлов. Файлы без правила (web/app.ts) git под Windows с core.autocrlf=true отдавал
|
|
14
|
+
# с CRLF, под Linux/macOS с LF, и update на CI переиндексировал файл. -text отключает
|
|
15
|
+
# любую конверсию: в рабочем дереве те же байты, что в репозитории, на любой ОС.
|
|
16
|
+
tests/fixtures/sample_repo/** -text
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: Benchmark report
|
|
2
|
+
description: Share a reproduced, failed, or new benchmark run (good or bad numbers both welcome)
|
|
3
|
+
title: "[Benchmark]: "
|
|
4
|
+
labels: ["benchmark"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Independent runs are how this project keeps its numbers honest. Unflattering results are as useful as flattering ones.
|
|
10
|
+
|
|
11
|
+
- type: dropdown
|
|
12
|
+
id: kind
|
|
13
|
+
attributes:
|
|
14
|
+
label: What did you run?
|
|
15
|
+
options:
|
|
16
|
+
- tests/eval/run_eval.py (retrieval eval, own corpus)
|
|
17
|
+
- tests/eval/run_eval.py (shipped query sets)
|
|
18
|
+
- tests/benchmark_public.py (synthetic suite)
|
|
19
|
+
- tests/benchmark_honest.py (index vs rg+window)
|
|
20
|
+
- Something else (describe below)
|
|
21
|
+
validations:
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- type: input
|
|
25
|
+
id: version
|
|
26
|
+
attributes:
|
|
27
|
+
label: codebase-index version / commit
|
|
28
|
+
placeholder: "1.9.0 or git SHA"
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
|
|
32
|
+
- type: input
|
|
33
|
+
id: corpus
|
|
34
|
+
attributes:
|
|
35
|
+
label: Corpus
|
|
36
|
+
description: Public repository URL + commit SHA, or language / size if private.
|
|
37
|
+
placeholder: "https://github.com/pallets/flask @ d318b68 — Python, ~18k LOC"
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: command
|
|
43
|
+
attributes:
|
|
44
|
+
label: Exact commands
|
|
45
|
+
render: shell
|
|
46
|
+
validations:
|
|
47
|
+
required: true
|
|
48
|
+
|
|
49
|
+
- type: textarea
|
|
50
|
+
id: results
|
|
51
|
+
attributes:
|
|
52
|
+
label: Results table / raw output
|
|
53
|
+
description: Paste the pooled table and significance rows as printed. Attach the JSON if large.
|
|
54
|
+
render: markdown
|
|
55
|
+
validations:
|
|
56
|
+
required: true
|
|
57
|
+
|
|
58
|
+
- type: textarea
|
|
59
|
+
id: notes
|
|
60
|
+
attributes:
|
|
61
|
+
label: Observations
|
|
62
|
+
description: Anything surprising, queries that failed, or where the baseline beat the index.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Something is wrong, crashes, or returns the wrong result
|
|
3
|
+
title: "[Bug]: "
|
|
4
|
+
labels: ["bug", "triage"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks. A reproducible report gets fixed fastest. Do not paste real secrets — the tool redacts snippets, your logs may not.
|
|
10
|
+
|
|
11
|
+
- type: input
|
|
12
|
+
id: version
|
|
13
|
+
attributes:
|
|
14
|
+
label: codebase-index version
|
|
15
|
+
description: "`pip show codebase-index` (there is no --version flag)"
|
|
16
|
+
placeholder: "1.9.0"
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- type: input
|
|
21
|
+
id: env
|
|
22
|
+
attributes:
|
|
23
|
+
label: Python and OS
|
|
24
|
+
placeholder: "Python 3.12.3 · macOS 14.4 / Ubuntu 24.04 / Windows 11"
|
|
25
|
+
validations:
|
|
26
|
+
required: true
|
|
27
|
+
|
|
28
|
+
- type: dropdown
|
|
29
|
+
id: surface
|
|
30
|
+
attributes:
|
|
31
|
+
label: Surface
|
|
32
|
+
options:
|
|
33
|
+
- CLI
|
|
34
|
+
- Claude Code skill / plugin
|
|
35
|
+
- Codex CLI
|
|
36
|
+
- OpenCode
|
|
37
|
+
- MCP server
|
|
38
|
+
- Installer scripts
|
|
39
|
+
- Other
|
|
40
|
+
validations:
|
|
41
|
+
required: true
|
|
42
|
+
|
|
43
|
+
- type: textarea
|
|
44
|
+
id: what-happened
|
|
45
|
+
attributes:
|
|
46
|
+
label: What happened, and what did you expect?
|
|
47
|
+
placeholder: |
|
|
48
|
+
Ran `codebase-index refs open_session --json` on <repo>. Expected the call in ctx.py; got an empty list with coverage.partial=false.
|
|
49
|
+
validations:
|
|
50
|
+
required: true
|
|
51
|
+
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: repro
|
|
54
|
+
attributes:
|
|
55
|
+
label: Steps to reproduce
|
|
56
|
+
description: Ideally against a public repository or a tiny snippet we can index.
|
|
57
|
+
placeholder: |
|
|
58
|
+
1. git clone https://github.com/... && cd ...
|
|
59
|
+
2. codebase-index index
|
|
60
|
+
3. codebase-index search "..." --json
|
|
61
|
+
validations:
|
|
62
|
+
required: true
|
|
63
|
+
|
|
64
|
+
- type: textarea
|
|
65
|
+
id: doctor
|
|
66
|
+
attributes:
|
|
67
|
+
label: "`codebase-index doctor` output"
|
|
68
|
+
render: shell
|
|
69
|
+
|
|
70
|
+
- type: textarea
|
|
71
|
+
id: logs
|
|
72
|
+
attributes:
|
|
73
|
+
label: Relevant output (`--json` where applicable) or traceback
|
|
74
|
+
render: shell
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Questions and ideas
|
|
4
|
+
url: https://github.com/denfry/codebase-index/discussions
|
|
5
|
+
about: Ask how to use the tool, discuss design, or share what you built with it.
|
|
6
|
+
- name: Security vulnerability
|
|
7
|
+
url: https://github.com/denfry/codebase-index/security/advisories/new
|
|
8
|
+
about: Report privately. Please do not open a public issue (see SECURITY.md).
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Propose an improvement or a new capability
|
|
3
|
+
title: "[Feature]: "
|
|
4
|
+
labels: ["enhancement", "triage"]
|
|
5
|
+
body:
|
|
6
|
+
- type: textarea
|
|
7
|
+
id: problem
|
|
8
|
+
attributes:
|
|
9
|
+
label: Problem
|
|
10
|
+
description: What are you trying to do with your agent that the tool makes hard today?
|
|
11
|
+
placeholder: "When I ask Claude Code about ..., codebase-index returns ..., so the agent ends up reading ..."
|
|
12
|
+
validations:
|
|
13
|
+
required: true
|
|
14
|
+
|
|
15
|
+
- type: textarea
|
|
16
|
+
id: proposal
|
|
17
|
+
attributes:
|
|
18
|
+
label: Proposal
|
|
19
|
+
description: What should happen instead? A CLI example or a sketch of the JSON is ideal.
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
- type: dropdown
|
|
24
|
+
id: area
|
|
25
|
+
attributes:
|
|
26
|
+
label: Area
|
|
27
|
+
options:
|
|
28
|
+
- Retrieval quality (ranking, fusion, budget)
|
|
29
|
+
- Graph extraction (edges, impact, paths)
|
|
30
|
+
- Language support
|
|
31
|
+
- Indexing (discovery, parsing, freshness)
|
|
32
|
+
- CLI / output format
|
|
33
|
+
- MCP server
|
|
34
|
+
- Claude Code / Codex / OpenCode integration
|
|
35
|
+
- Benchmarks / evaluation
|
|
36
|
+
- Documentation
|
|
37
|
+
- Other
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: evidence
|
|
43
|
+
attributes:
|
|
44
|
+
label: How would we know it worked?
|
|
45
|
+
description: Retrieval changes need a measurable effect (see tests/eval). A query and the file you expected is enough to start.
|
|
46
|
+
|
|
47
|
+
- type: textarea
|
|
48
|
+
id: alternatives
|
|
49
|
+
attributes:
|
|
50
|
+
label: Alternatives or workarounds you tried
|