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.
Files changed (442) hide show
  1. codebase_index-2.0.0/.claude/skills/codebase-index/.skill_version +1 -0
  2. {codebase_index-1.8.0/.codex → codebase_index-2.0.0/.claude}/skills/codebase-index/SKILL.md +32 -10
  3. {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude/skills/codebase-index/references/commands.md +15 -0
  4. codebase_index-2.0.0/.claude/skills/codebase-index/references/memory.md +49 -0
  5. {codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.claude}/skills/codebase-index/references/response-contract.md +12 -1
  6. {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude/skills/codebase-index/scripts/cbx +1 -1
  7. {codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.claude}/skills/codebase-index/scripts/cbx.ps1 +1 -1
  8. {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude-plugin/plugin.json +1 -1
  9. codebase_index-2.0.0/.codex/skills/codebase-index/.skill_version +1 -0
  10. {codebase_index-1.8.0/skill → codebase_index-2.0.0/.codex/skills/codebase-index}/SKILL.md +32 -10
  11. {codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.codex}/skills/codebase-index/references/commands.md +15 -0
  12. codebase_index-2.0.0/.codex/skills/codebase-index/references/memory.md +49 -0
  13. {codebase_index-1.8.0/.claude → codebase_index-2.0.0/.codex}/skills/codebase-index/references/response-contract.md +12 -1
  14. {codebase_index-1.8.0/.opencode → codebase_index-2.0.0/.codex}/skills/codebase-index/scripts/cbx +1 -1
  15. {codebase_index-1.8.0 → codebase_index-2.0.0}/.codex/skills/codebase-index/scripts/cbx.ps1 +1 -1
  16. codebase_index-2.0.0/.gitattributes +16 -0
  17. codebase_index-2.0.0/.github/ISSUE_TEMPLATE/benchmark_report.yml +62 -0
  18. codebase_index-2.0.0/.github/ISSUE_TEMPLATE/bug_report.yml +74 -0
  19. codebase_index-2.0.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
  20. codebase_index-2.0.0/.github/ISSUE_TEMPLATE/feature_request.yml +50 -0
  21. codebase_index-2.0.0/.github/ISSUE_TEMPLATE/language_support.yml +48 -0
  22. codebase_index-2.0.0/.github/PULL_REQUEST_TEMPLATE.md +21 -0
  23. codebase_index-2.0.0/.github/SUPPORT.md +25 -0
  24. codebase_index-2.0.0/.github/labels.yml +63 -0
  25. {codebase_index-1.8.0 → codebase_index-2.0.0}/.github/workflows/ci.yml +21 -0
  26. {codebase_index-1.8.0 → codebase_index-2.0.0}/.github/workflows/release.yml +14 -0
  27. {codebase_index-1.8.0 → codebase_index-2.0.0}/.gitignore +2 -0
  28. codebase_index-2.0.0/.opencode/skills/codebase-index/.skill_version +1 -0
  29. {codebase_index-1.8.0 → codebase_index-2.0.0}/.opencode/skills/codebase-index/SKILL.md +32 -10
  30. {codebase_index-1.8.0/.codex → codebase_index-2.0.0/.opencode}/skills/codebase-index/references/commands.md +15 -0
  31. codebase_index-2.0.0/.opencode/skills/codebase-index/references/memory.md +49 -0
  32. {codebase_index-1.8.0/skill → codebase_index-2.0.0/.opencode/skills/codebase-index}/references/response-contract.md +12 -1
  33. {codebase_index-1.8.0/.codex → codebase_index-2.0.0/.opencode}/skills/codebase-index/scripts/cbx +1 -1
  34. {codebase_index-1.8.0/.claude → codebase_index-2.0.0/.opencode}/skills/codebase-index/scripts/cbx.ps1 +1 -1
  35. {codebase_index-1.8.0 → codebase_index-2.0.0}/AGENTS.md +9 -4
  36. {codebase_index-1.8.0 → codebase_index-2.0.0}/CHANGELOG.md +356 -1
  37. codebase_index-2.0.0/CONTRIBUTING.md +120 -0
  38. codebase_index-2.0.0/PKG-INFO +315 -0
  39. codebase_index-2.0.0/README.md +265 -0
  40. codebase_index-2.0.0/ROADMAP.md +34 -0
  41. codebase_index-2.0.0/SECURITY.md +73 -0
  42. codebase_index-2.0.0/assets/architecture.svg +96 -0
  43. codebase_index-2.0.0/assets/benchmark.svg +98 -0
  44. codebase_index-2.0.0/assets/demo-terminal.svg +49 -0
  45. {codebase_index-1.8.0 → codebase_index-2.0.0}/bin/cbx +1 -1
  46. {codebase_index-1.8.0 → codebase_index-2.0.0}/bin/cbx.ps1 +1 -1
  47. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/ARCHITECTURE.md +20 -13
  48. codebase_index-2.0.0/docs/BENCHMARKS.md +245 -0
  49. codebase_index-2.0.0/docs/COMMUNITY_AUDIT.md +262 -0
  50. codebase_index-2.0.0/docs/COMMUNITY_LAUNCH.md +281 -0
  51. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/COMPARISON.md +19 -19
  52. codebase_index-2.0.0/docs/DATABASE_SCHEMA.md +6 -0
  53. codebase_index-2.0.0/docs/DEMO.md +103 -0
  54. codebase_index-2.0.0/docs/DEVELOPMENT.md +236 -0
  55. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/FAQ.md +39 -29
  56. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/INSTALLATION.md +22 -19
  57. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/MCP.md +18 -5
  58. codebase_index-2.0.0/docs/MEMORY.md +107 -0
  59. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/QUICKSTART.md +41 -30
  60. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/RELEASE_CHECKLIST.md +27 -18
  61. codebase_index-2.0.0/docs/RETRIEVAL.md +340 -0
  62. codebase_index-2.0.0/docs/RETRIEVAL_PIPELINE.md +5 -0
  63. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/ROADMAP.md +14 -2
  64. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/SCHEMA.md +17 -4
  65. codebase_index-2.0.0/docs/SECURITY.md +7 -0
  66. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/SECURITY_MODEL.md +34 -19
  67. codebase_index-2.0.0/docs/demo.tape +29 -0
  68. codebase_index-2.0.0/docs/installer.md +238 -0
  69. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m9-release.md +1 -1
  70. codebase_index-2.0.0/docs/superpowers/specs/2026-09-10-evidence-memory-design.md +365 -0
  71. {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/config.example.json +4 -1
  72. codebase_index-2.0.0/examples/demo/EXPECTED_OUTPUT.md +187 -0
  73. codebase_index-2.0.0/examples/demo/README.md +53 -0
  74. codebase_index-2.0.0/examples/demo/run_demo.ps1 +42 -0
  75. codebase_index-2.0.0/examples/demo/run_demo.sh +53 -0
  76. {codebase_index-1.8.0 → codebase_index-2.0.0}/pyproject.toml +3 -2
  77. {codebase_index-1.8.0 → codebase_index-2.0.0}/requirements.lock +1 -1
  78. codebase_index-2.0.0/research/2.0-audit.md +175 -0
  79. codebase_index-2.0.0/research/README.md +125 -0
  80. codebase_index-2.0.0/research/architecture.md +185 -0
  81. codebase_index-2.0.0/research/build_indexes.py +68 -0
  82. codebase_index-2.0.0/research/data/.gitignore +8 -0
  83. codebase_index-2.0.0/research/diagnose_accretion.py +141 -0
  84. codebase_index-2.0.0/research/diagnose_calibration.py +59 -0
  85. codebase_index-2.0.0/research/diagnose_slots.py +118 -0
  86. codebase_index-2.0.0/research/diagnose_structure.py +293 -0
  87. codebase_index-2.0.0/research/experiment_memory.py +162 -0
  88. codebase_index-2.0.0/research/experiments.md +313 -0
  89. codebase_index-2.0.0/research/fit_gate.py +68 -0
  90. codebase_index-2.0.0/research/fit_weights.py +185 -0
  91. codebase_index-2.0.0/research/hypotheses.md +284 -0
  92. codebase_index-2.0.0/research/novelty.md +98 -0
  93. codebase_index-2.0.0/research/nucleus/__init__.py +6 -0
  94. codebase_index-2.0.0/research/nucleus/baselines.py +313 -0
  95. codebase_index-2.0.0/research/nucleus/evalrun.py +382 -0
  96. codebase_index-2.0.0/research/nucleus/memory.py +161 -0
  97. codebase_index-2.0.0/research/nucleus/relations.py +355 -0
  98. codebase_index-2.0.0/research/nucleus/search.py +508 -0
  99. codebase_index-2.0.0/research/related-work.md +250 -0
  100. codebase_index-2.0.0/research/selection.md +95 -0
  101. codebase_index-2.0.0/research/test_nucleus.py +129 -0
  102. codebase_index-2.0.0/scripts/apply_labels.sh +19 -0
  103. codebase_index-2.0.0/scripts/check_links.py +92 -0
  104. codebase_index-2.0.0/scripts/check_versions.py +101 -0
  105. {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/gen_assets.py +0 -111
  106. codebase_index-2.0.0/scripts/gen_benchmark_chart.py +119 -0
  107. codebase_index-2.0.0/scripts/gen_terminal_svg.py +149 -0
  108. codebase_index-2.0.0/scripts/release_notes.py +113 -0
  109. {codebase_index-1.8.0/.claude/skills/codebase-index → codebase_index-2.0.0/skill}/SKILL.md +32 -10
  110. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/references/commands.md +15 -0
  111. codebase_index-2.0.0/skill/references/memory.md +49 -0
  112. {codebase_index-1.8.0/.codex/skills/codebase-index → codebase_index-2.0.0/skill}/references/response-contract.md +12 -1
  113. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/cbx +1 -1
  114. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/cbx.ps1 +1 -1
  115. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/doctor.py +2 -2
  116. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/smoke_test.py +0 -1
  117. codebase_index-2.0.0/skills/codebase-index/SKILL.md +111 -0
  118. codebase_index-2.0.0/skills/codebase-index/references/commands.md +88 -0
  119. codebase_index-2.0.0/skills/codebase-index/references/memory.md +49 -0
  120. codebase_index-2.0.0/skills/codebase-index/references/response-contract.md +93 -0
  121. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/__init__.py +1 -1
  122. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/cli.py +152 -9
  123. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/config.py +15 -0
  124. codebase_index-2.0.0/src/codebase_index/discovery/gates.py +117 -0
  125. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/discovery/walker.py +26 -20
  126. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/doctor.py +38 -0
  127. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/mcp/server.py +74 -19
  128. codebase_index-2.0.0/src/codebase_index/memory/__init__.py +5 -0
  129. codebase_index-2.0.0/src/codebase_index/memory/identity.py +181 -0
  130. codebase_index-2.0.0/src/codebase_index/memory/session.py +230 -0
  131. codebase_index-2.0.0/src/codebase_index/memory/store.py +435 -0
  132. codebase_index-2.0.0/src/codebase_index/memory/validate.py +150 -0
  133. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/output/markdown.py +52 -2
  134. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/diversity.py +91 -20
  135. codebase_index-2.0.0/src/codebase_index/retrieval/features.py +119 -0
  136. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/fusion.py +38 -0
  137. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/pipeline.py +86 -8
  138. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/priors.py +18 -2
  139. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/rerank.py +26 -2
  140. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/searchers.py +30 -8
  141. codebase_index-2.0.0/src/codebase_index/retrieval/tuning.py +228 -0
  142. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/scaffold.py +12 -4
  143. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/service.py +204 -18
  144. codebase_index-2.0.0/src/codebase_index/skill_template/SKILL.md +111 -0
  145. codebase_index-2.0.0/src/codebase_index/skill_template/references/commands.md +88 -0
  146. codebase_index-2.0.0/src/codebase_index/skill_template/references/memory.md +49 -0
  147. codebase_index-2.0.0/src/codebase_index/skill_template/references/response-contract.md +93 -0
  148. codebase_index-2.0.0/src/codebase_index/skill_template/scripts/cbx +25 -0
  149. codebase_index-2.0.0/src/codebase_index/skill_template/scripts/cbx.ps1 +28 -0
  150. codebase_index-2.0.0/tests/__init__.py +0 -0
  151. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_honest_RESULTS.md +6 -0
  152. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_public_RESULTS.md +4 -3
  153. codebase_index-2.0.0/tests/eval/README.md +166 -0
  154. codebase_index-2.0.0/tests/eval/baselines.py +443 -0
  155. codebase_index-2.0.0/tests/eval/gen_queries.py +257 -0
  156. codebase_index-2.0.0/tests/eval/harness.py +485 -0
  157. codebase_index-2.0.0/tests/eval/memory_eval.py +660 -0
  158. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/eval/metrics.py +110 -0
  159. codebase_index-2.0.0/tests/eval/queries/self_repo_git.yml +627 -0
  160. codebase_index-2.0.0/tests/eval/results/1.10.0-perf.json +14 -0
  161. codebase_index-2.0.0/tests/eval/results/1.10.0-retrieval-8corpus.txt +58 -0
  162. codebase_index-2.0.0/tests/eval/results/2026-09-04-public-baselines.json +14501 -0
  163. codebase_index-2.0.0/tests/eval/results/2026-09-04-public-baselines.md +104 -0
  164. codebase_index-2.0.0/tests/eval/results/2026-09-14-evidence-memory.json +960 -0
  165. codebase_index-2.0.0/tests/eval/results/2026-09-14-evidence-memory.md +19 -0
  166. codebase_index-2.0.0/tests/eval/run_baselines.py +348 -0
  167. codebase_index-2.0.0/tests/eval/run_eval.py +201 -0
  168. codebase_index-2.0.0/tests/fixtures/index-1.10.0/index.sqlite +0 -0
  169. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_healthcheck.json +4 -0
  170. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_index_stats.json +4 -0
  171. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/stats.json +4 -0
  172. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_discovery.py +24 -0
  173. codebase_index-2.0.0/tests/test_diversity.py +120 -0
  174. codebase_index-2.0.0/tests/test_eval_baselines.py +68 -0
  175. codebase_index-2.0.0/tests/test_fusion.py +145 -0
  176. codebase_index-2.0.0/tests/test_gen_queries.py +167 -0
  177. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_mcp_golden.py +5 -7
  178. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_mcp_server.py +33 -7
  179. codebase_index-2.0.0/tests/test_memory_eval_smoke.py +119 -0
  180. codebase_index-2.0.0/tests/test_memory_identity.py +156 -0
  181. codebase_index-2.0.0/tests/test_memory_lifecycle.py +232 -0
  182. codebase_index-2.0.0/tests/test_memory_session.py +293 -0
  183. codebase_index-2.0.0/tests/test_memory_stale_context.py +124 -0
  184. codebase_index-2.0.0/tests/test_memory_store.py +208 -0
  185. codebase_index-2.0.0/tests/test_memory_surfaces.py +197 -0
  186. codebase_index-2.0.0/tests/test_memory_validate.py +210 -0
  187. codebase_index-2.0.0/tests/test_migration_1x.py +104 -0
  188. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_packaging.py +2 -2
  189. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_plugin_wrappers.py +24 -0
  190. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_priors.py +9 -1
  191. codebase_index-2.0.0/tests/test_ranking_features.py +263 -0
  192. codebase_index-2.0.0/tests/test_read_cap.py +61 -0
  193. codebase_index-2.0.0/tests/test_release_scripts.py +172 -0
  194. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_symbol_ranking.py +76 -0
  195. codebase_index-2.0.0/tests/test_tuning_contract.py +165 -0
  196. codebase_index-1.8.0/.claude/skills/codebase-index/.skill_version +0 -1
  197. codebase_index-1.8.0/.codex/skills/codebase-index/.skill_version +0 -1
  198. codebase_index-1.8.0/.gitattributes +0 -7
  199. codebase_index-1.8.0/.github/FUNDING.yml +0 -8
  200. codebase_index-1.8.0/.github/ISSUE_TEMPLATE/bug_report.yml +0 -74
  201. codebase_index-1.8.0/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  202. codebase_index-1.8.0/.github/PULL_REQUEST_TEMPLATE.md +0 -38
  203. codebase_index-1.8.0/.opencode/skills/codebase-index/.skill_version +0 -1
  204. codebase_index-1.8.0/CONTRIBUTING.md +0 -162
  205. codebase_index-1.8.0/PKG-INFO +0 -375
  206. codebase_index-1.8.0/README.md +0 -325
  207. codebase_index-1.8.0/ROADMAP.md +0 -112
  208. codebase_index-1.8.0/SECURITY.md +0 -51
  209. codebase_index-1.8.0/assets/demo.png +0 -0
  210. codebase_index-1.8.0/docs/BENCHMARKS.md +0 -115
  211. codebase_index-1.8.0/docs/DATABASE_SCHEMA.md +0 -185
  212. codebase_index-1.8.0/docs/RETRIEVAL.md +0 -180
  213. codebase_index-1.8.0/docs/RETRIEVAL_PIPELINE.md +0 -170
  214. codebase_index-1.8.0/docs/SECURITY.md +0 -119
  215. codebase_index-1.8.0/docs/SEO.md +0 -196
  216. codebase_index-1.8.0/docs/installer.md +0 -239
  217. codebase_index-1.8.0/examples/demo-project/README.md +0 -55
  218. codebase_index-1.8.0/skills/codebase-index/SKILL.md +0 -89
  219. codebase_index-1.8.0/skills/codebase-index/references/commands.md +0 -73
  220. codebase_index-1.8.0/skills/codebase-index/references/response-contract.md +0 -82
  221. codebase_index-1.8.0/src/codebase_index/retrieval/tuning.py +0 -106
  222. codebase_index-1.8.0/src/codebase_index/skill_template/SKILL.md +0 -89
  223. codebase_index-1.8.0/src/codebase_index/skill_template/references/commands.md +0 -73
  224. codebase_index-1.8.0/src/codebase_index/skill_template/references/response-contract.md +0 -82
  225. codebase_index-1.8.0/src/codebase_index/skill_template/scripts/cbx +0 -25
  226. codebase_index-1.8.0/src/codebase_index/skill_template/scripts/cbx.ps1 +0 -28
  227. codebase_index-1.8.0/tests/eval/harness.py +0 -257
  228. codebase_index-1.8.0/tests/eval/run_eval.py +0 -104
  229. codebase_index-1.8.0/tests/test_diversity.py +0 -49
  230. codebase_index-1.8.0/tests/test_fusion.py +0 -66
  231. {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude/skills/codebase-index/examples/hooks/settings.json +0 -0
  232. {codebase_index-1.8.0 → codebase_index-2.0.0}/.claude-plugin/marketplace.json +0 -0
  233. {codebase_index-1.8.0 → codebase_index-2.0.0}/.codex/skills/codebase-index/examples/hooks/settings.json +0 -0
  234. {codebase_index-1.8.0 → codebase_index-2.0.0}/.editorconfig +0 -0
  235. {codebase_index-1.8.0 → codebase_index-2.0.0}/.github/ISSUE_TEMPLATE/skill_listing_request.yml +0 -0
  236. {codebase_index-1.8.0 → codebase_index-2.0.0}/.opencode/agents/codebase-index.md +0 -0
  237. {codebase_index-1.8.0 → codebase_index-2.0.0}/.opencode/commands/codebase-index.md +0 -0
  238. {codebase_index-1.8.0 → codebase_index-2.0.0}/.opencode/skills/codebase-index/examples/hooks/settings.json +0 -0
  239. {codebase_index-1.8.0 → codebase_index-2.0.0}/CODE_OF_CONDUCT.md +0 -0
  240. {codebase_index-1.8.0 → codebase_index-2.0.0}/LICENSE +0 -0
  241. {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/claude.ps1 +0 -0
  242. {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/claude.sh +0 -0
  243. {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/codex.ps1 +0 -0
  244. {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/codex.sh +0 -0
  245. {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/opencode.ps1 +0 -0
  246. {codebase_index-1.8.0 → codebase_index-2.0.0}/adapters/opencode.sh +0 -0
  247. {codebase_index-1.8.0 → codebase_index-2.0.0}/assets/mark.png +0 -0
  248. {codebase_index-1.8.0 → codebase_index-2.0.0}/assets/social-preview.png +0 -0
  249. {codebase_index-1.8.0 → codebase_index-2.0.0}/bin/codebase-index +0 -0
  250. {codebase_index-1.8.0 → codebase_index-2.0.0}/bin/codebase-index.ps1 +0 -0
  251. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/LANGUAGES.md +0 -0
  252. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/PRODUCT_UPGRADE_PLAN.md +0 -0
  253. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/SKILL_DESIGN.md +0 -0
  254. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-benchmark-index-improvements.md +0 -0
  255. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-generalize-skill-research-discipline.md +0 -0
  256. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m1-storage-discovery.md +0 -0
  257. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m2-fts-lexical.md +0 -0
  258. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m3-treesitter-symbols.md +0 -0
  259. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m4-hybrid-search.md +0 -0
  260. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m5-graph-impact.md +0 -0
  261. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m6-embeddings-vector.md +0 -0
  262. {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
  263. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m7-skill-packaging.md +0 -0
  264. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-m8-hooks-watch.md +0 -0
  265. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-05-29-multilang-symbols-make-skill-win.md +0 -0
  266. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/plans/2026-06-24-snippet-skeletonization.md +0 -0
  267. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/specs/2026-05-29-plugin-one-command-install-design.md +0 -0
  268. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/specs/2026-06-14-typed-framework-edges-design.md +0 -0
  269. {codebase_index-1.8.0 → codebase_index-2.0.0}/docs/superpowers/specs/2026-06-24-snippet-skeletonization-design.md +0 -0
  270. {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/hooks/settings.json +0 -0
  271. {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/queries.md +0 -0
  272. {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/sample-queries.md +0 -0
  273. {codebase_index-1.8.0 → codebase_index-2.0.0}/examples/sample-retrieval-output.md +0 -0
  274. {codebase_index-1.8.0 → codebase_index-2.0.0}/hooks/hooks.json +0 -0
  275. {codebase_index-1.8.0 → codebase_index-2.0.0}/install.ps1 +0 -0
  276. {codebase_index-1.8.0 → codebase_index-2.0.0}/install.sh +0 -0
  277. {codebase_index-1.8.0 → codebase_index-2.0.0}/lib/common.ps1 +0 -0
  278. {codebase_index-1.8.0 → codebase_index-2.0.0}/lib/common.sh +0 -0
  279. {codebase_index-1.8.0/tests → codebase_index-2.0.0/research}/__init__.py +0 -0
  280. {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/bootstrap.ps1 +0 -0
  281. {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/bootstrap.sh +0 -0
  282. {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/release_smoke.py +0 -0
  283. {codebase_index-1.8.0 → codebase_index-2.0.0}/scripts/sync_skill_copies.py +0 -0
  284. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/examples/basic-usage.md +0 -0
  285. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/examples/claude-md-example.md +0 -0
  286. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/examples/hooks-example.json +0 -0
  287. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/bootstrap.py +0 -0
  288. {codebase_index-1.8.0 → codebase_index-2.0.0}/skill/scripts/install.py +0 -0
  289. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/__main__.py +0 -0
  290. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/discovery/__init__.py +0 -0
  291. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/discovery/classify.py +0 -0
  292. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/discovery/ignore.py +0 -0
  293. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/__init__.py +0 -0
  294. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/backend.py +0 -0
  295. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/external.py +0 -0
  296. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/local.py +0 -0
  297. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/embeddings/noop.py +0 -0
  298. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/__init__.py +0 -0
  299. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/analysis.py +0 -0
  300. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/builder.py +0 -0
  301. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/expand.py +0 -0
  302. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/export.py +0 -0
  303. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/navigate.py +0 -0
  304. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/graph/retrieval.py +0 -0
  305. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/indexer/__init__.py +0 -0
  306. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/indexer/doc_chunks.py +0 -0
  307. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/indexer/freshness.py +0 -0
  308. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/indexer/pipeline.py +0 -0
  309. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/mcp/__init__.py +0 -0
  310. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/models.py +0 -0
  311. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/output/__init__.py +0 -0
  312. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/output/json.py +0 -0
  313. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/output/redact.py +0 -0
  314. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/__init__.py +0 -0
  315. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/base.py +0 -0
  316. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/languages.py +0 -0
  317. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/line_chunker.py +0 -0
  318. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/symbol_chunks.py +0 -0
  319. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/parsers/treesitter.py +0 -0
  320. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/__init__.py +0 -0
  321. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/budget.py +0 -0
  322. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/fuzzy.py +0 -0
  323. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/intent.py +0 -0
  324. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/lexical.py +0 -0
  325. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/skeleton.py +0 -0
  326. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/retrieval/types.py +0 -0
  327. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/skill_template/examples/hooks/settings.json +0 -0
  328. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/skill_update.py +0 -0
  329. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/storage/__init__.py +0 -0
  330. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/storage/db.py +0 -0
  331. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/storage/repo.py +0 -0
  332. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/storage/schema.sql +0 -0
  333. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/watch/__init__.py +0 -0
  334. {codebase_index-1.8.0 → codebase_index-2.0.0}/src/codebase_index/watch/watcher.py +0 -0
  335. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_honest.py +0 -0
  336. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_honest_newtowny.txt +0 -0
  337. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_public.py +0 -0
  338. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/benchmark_real_repo.py +0 -0
  339. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/conftest.py +0 -0
  340. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/eval/__init__.py +0 -0
  341. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/eval/queries/self_repo.yml +0 -0
  342. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/README.md +0 -0
  343. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/expected_answers.yml +0 -0
  344. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/multilang/sample.go +0 -0
  345. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/multilang/sample.java +0 -0
  346. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/multilang/sample.rs +0 -0
  347. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/.env +0 -0
  348. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/.gitignore +0 -0
  349. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/huge.json +0 -0
  350. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/logo.png +0 -0
  351. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/node_modules/leftpad/index.js +0 -0
  352. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/secrets.pem +0 -0
  353. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/src/api/service.py +0 -0
  354. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/src/auth/token.py +0 -0
  355. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/src/models/user.py +0 -0
  356. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/src/schema.generated.ts +0 -0
  357. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/fixtures/sample_repo/web/app.ts +0 -0
  358. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/architecture.json +0 -0
  359. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/describe_refresh.json +0 -0
  360. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/explain_auth.json +0 -0
  361. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/impact_user_model.json +0 -0
  362. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_architecture.json +0 -0
  363. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_describe_symbol.json +0 -0
  364. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_explain_code.json +0 -0
  365. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_find_refs.json +0 -0
  366. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_find_symbol.json +0 -0
  367. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_impact_of.json +0 -0
  368. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_impact_of_diff.json +0 -0
  369. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_path_between.json +0 -0
  370. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/mcp_search_code.json +0 -0
  371. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/path_renew_to_token.json +0 -0
  372. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/refs_refresh_access_token.json +0 -0
  373. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/search_token.json +0 -0
  374. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden/symbol_user.json +0 -0
  375. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/golden_utils.py +0 -0
  376. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/installer/smoke.ps1 +0 -0
  377. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/installer/smoke.sh +0 -0
  378. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_analysis.py +0 -0
  379. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_benchmark_comparison.py +0 -0
  380. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_bootstrap.py +0 -0
  381. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_budget.py +0 -0
  382. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_chunker.py +0 -0
  383. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_classify.py +0 -0
  384. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_clean_cli.py +0 -0
  385. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_cli.py +0 -0
  386. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_cli_golden.py +0 -0
  387. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_config.py +0 -0
  388. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_diff_impact.py +0 -0
  389. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_doc_chunks.py +0 -0
  390. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_doctor.py +0 -0
  391. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_embeddings_backend.py +0 -0
  392. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_embeddings_external.py +0 -0
  393. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_embeddings_local.py +0 -0
  394. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_freshness.py +0 -0
  395. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_fuzzy.py +0 -0
  396. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_graph.py +0 -0
  397. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_graph_coverage.py +0 -0
  398. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_graph_export_cli.py +0 -0
  399. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_graph_retrieval.py +0 -0
  400. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_hooks_merge.py +0 -0
  401. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_hybrid_ranking.py +0 -0
  402. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_ignore.py +0 -0
  403. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_impact_cli.py +0 -0
  404. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_impact_decay.py +0 -0
  405. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_index_cli.py +0 -0
  406. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_init_cli.py +0 -0
  407. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_intent.py +0 -0
  408. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_languages.py +0 -0
  409. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_lexical.py +0 -0
  410. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_multilang_symbols.py +0 -0
  411. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_navigate.py +0 -0
  412. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_output.py +0 -0
  413. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_parse_guardrails.py +0 -0
  414. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_perf_smoke.py +0 -0
  415. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_pipeline.py +0 -0
  416. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_pipeline_search.py +0 -0
  417. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_pipeline_vectors.py +0 -0
  418. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_plugin_manifest.py +0 -0
  419. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_plugin_skill_parity.py +0 -0
  420. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_public_benchmark.py +0 -0
  421. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_quality_benchmark.py +0 -0
  422. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_redact.py +0 -0
  423. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_repo_search.py +0 -0
  424. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_rerank.py +0 -0
  425. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_retrieval_types.py +0 -0
  426. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_scaffold.py +0 -0
  427. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_search_cli.py +0 -0
  428. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_searchers.py +0 -0
  429. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_seeded_index.py +0 -0
  430. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_service.py +0 -0
  431. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_skeleton.py +0 -0
  432. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_skill_update.py +0 -0
  433. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_storage.py +0 -0
  434. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_symbol_cli.py +0 -0
  435. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_symbol_refs.py +0 -0
  436. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_sync_skill_copies.py +0 -0
  437. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_treesitter.py +0 -0
  438. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_update.py +0 -0
  439. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_update_cli.py +0 -0
  440. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_vector_search.py +0 -0
  441. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_vectors_storage.py +0 -0
  442. {codebase_index-1.8.0 → codebase_index-2.0.0}/tests/test_watcher.py +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. Run the best-matching command with `--json`.
42
- 2. Check `index` before trusting the payload:
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
- 3. Start with ranks 1–3. Read only `recommended_reads` line ranges.
48
- 4. Trace one additional hop only when the question requires behavior,
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
- 5. Answer with `file:line` evidence and state uncertainty explicitly.
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.
@@ -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": "1.8.0",
6
+ "version": "2.0.0",
7
7
  "author": {
8
8
  "name": "codebase-index contributors"
9
9
  },
@@ -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. Run the best-matching command with `--json`.
42
- 2. Check `index` before trusting the payload:
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
- 3. Start with ranks 1–3. Read only `recommended_reads` line ranges.
48
- 4. Trace one additional hop only when the question requires behavior,
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
- 5. Answer with `file:line` evidence and state uncertainty explicitly.
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.
@@ -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