boost-skill-cli 1.2.30__tar.gz → 1.2.32__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 (1101) hide show
  1. boost_skill_cli-1.2.32/.vale/styles/config/vocabularies/boost/accept.txt +187 -0
  2. boost_skill_cli-1.2.32/CLAUDE.md +483 -0
  3. boost_skill_cli-1.2.32/CONTRIBUTING.md +278 -0
  4. boost_skill_cli-1.2.32/Makefile +253 -0
  5. boost_skill_cli-1.2.32/PKG-INFO +1327 -0
  6. boost_skill_cli-1.2.32/README.md +609 -0
  7. boost_skill_cli-1.2.32/boost +47 -0
  8. boost_skill_cli-1.2.32/boost_cli/__init__.py +35 -0
  9. boost_skill_cli-1.2.32/boost_cli/__main__.py +10 -0
  10. boost_skill_cli-1.2.32/boost_cli/_version.py +24 -0
  11. boost_skill_cli-1.2.32/boost_cli/cli.py +338 -0
  12. boost_skill_cli-1.2.32/boost_cli/cliparse.py +33 -0
  13. boost_skill_cli-1.2.32/boost_cli/commands/__init__.py +3 -0
  14. boost_skill_cli-1.2.32/boost_cli/commands/_common.py +80 -0
  15. boost_skill_cli-1.2.32/boost_cli/commands/bmad.py +581 -0
  16. boost_skill_cli-1.2.32/boost_cli/commands/configuration.py +1737 -0
  17. boost_skill_cli-1.2.32/boost_cli/commands/discovery.py +1674 -0
  18. boost_skill_cli-1.2.32/boost_cli/commands/hooks.py +158 -0
  19. boost_skill_cli-1.2.32/boost_cli/commands/info.py +1023 -0
  20. boost_skill_cli-1.2.32/boost_cli/commands/intelligence.py +1219 -0
  21. boost_skill_cli-1.2.32/boost_cli/commands/pkg.py +1606 -0
  22. boost_skill_cli-1.2.32/boost_cli/commands/quality.py +1317 -0
  23. boost_skill_cli-1.2.32/boost_cli/commands/run.py +118 -0
  24. boost_skill_cli-1.2.32/boost_cli/commands/safety.py +586 -0
  25. boost_skill_cli-1.2.32/boost_cli/commands/taps.py +385 -0
  26. boost_skill_cli-1.2.32/boost_cli/commands/team.py +750 -0
  27. boost_skill_cli-1.2.32/boost_cli/core/__init__.py +3 -0
  28. boost_skill_cli-1.2.32/boost_cli/core/adapters.py +561 -0
  29. boost_skill_cli-1.2.32/boost_cli/core/agents.py +81 -0
  30. boost_skill_cli-1.2.32/boost_cli/core/ai.py +161 -0
  31. boost_skill_cli-1.2.32/boost_cli/core/bmad.py +694 -0
  32. boost_skill_cli-1.2.32/boost_cli/core/bootstrap.py +137 -0
  33. boost_skill_cli-1.2.32/boost_cli/core/browse.py +648 -0
  34. boost_skill_cli-1.2.32/boost_cli/core/builtin.py +116 -0
  35. boost_skill_cli-1.2.32/boost_cli/core/capabilities.py +133 -0
  36. boost_skill_cli-1.2.32/boost_cli/core/catalog.py +662 -0
  37. boost_skill_cli-1.2.32/boost_cli/core/catalogbundle.py +267 -0
  38. boost_skill_cli-1.2.32/boost_cli/core/chat.py +395 -0
  39. boost_skill_cli-1.2.32/boost_cli/core/claude_settings.py +243 -0
  40. boost_skill_cli-1.2.32/boost_cli/core/complete.py +422 -0
  41. boost_skill_cli-1.2.32/boost_cli/core/config.py +228 -0
  42. boost_skill_cli-1.2.32/boost_cli/core/dense.py +972 -0
  43. boost_skill_cli-1.2.32/boost_cli/core/ed25519.py +131 -0
  44. boost_skill_cli-1.2.32/boost_cli/core/embed.py +287 -0
  45. boost_skill_cli-1.2.32/boost_cli/core/faithfulness.py +116 -0
  46. boost_skill_cli-1.2.32/boost_cli/core/frontmatter.py +178 -0
  47. boost_skill_cli-1.2.32/boost_cli/core/gitutil.py +302 -0
  48. boost_skill_cli-1.2.32/boost_cli/core/hookhost.py +242 -0
  49. boost_skill_cli-1.2.32/boost_cli/core/imperative.py +70 -0
  50. boost_skill_cli-1.2.32/boost_cli/core/injectscan.py +240 -0
  51. boost_skill_cli-1.2.32/boost_cli/core/installscan.py +115 -0
  52. boost_skill_cli-1.2.32/boost_cli/core/integrity.py +230 -0
  53. boost_skill_cli-1.2.32/boost_cli/core/journal.py +121 -0
  54. boost_skill_cli-1.2.32/boost_cli/core/localembed.py +246 -0
  55. boost_skill_cli-1.2.32/boost_cli/core/lockfile.py +254 -0
  56. boost_skill_cli-1.2.32/boost_cli/core/logs.py +354 -0
  57. boost_skill_cli-1.2.32/boost_cli/core/mcp.py +481 -0
  58. boost_skill_cli-1.2.32/boost_cli/core/mcpdecl.py +206 -0
  59. boost_skill_cli-1.2.32/boost_cli/core/mcphost.py +168 -0
  60. boost_skill_cli-1.2.32/boost_cli/core/minisign.py +127 -0
  61. boost_skill_cli-1.2.32/boost_cli/core/nethttp.py +69 -0
  62. boost_skill_cli-1.2.32/boost_cli/core/output.py +768 -0
  63. boost_skill_cli-1.2.32/boost_cli/core/paths.py +179 -0
  64. boost_skill_cli-1.2.32/boost_cli/core/policy.py +125 -0
  65. boost_skill_cli-1.2.32/boost_cli/core/projectlock.py +120 -0
  66. boost_skill_cli-1.2.32/boost_cli/core/provenance.py +163 -0
  67. boost_skill_cli-1.2.32/boost_cli/core/rag.py +1165 -0
  68. boost_skill_cli-1.2.32/boost_cli/core/registry.py +262 -0
  69. boost_skill_cli-1.2.32/boost_cli/core/resolve.py +138 -0
  70. boost_skill_cli-1.2.32/boost_cli/core/rules.py +174 -0
  71. boost_skill_cli-1.2.32/boost_cli/core/scopes.py +232 -0
  72. boost_skill_cli-1.2.32/boost_cli/core/secretscan.py +140 -0
  73. boost_skill_cli-1.2.32/boost_cli/core/selfupdate.py +270 -0
  74. boost_skill_cli-1.2.32/boost_cli/core/serve.py +949 -0
  75. boost_skill_cli-1.2.32/boost_cli/core/stackprobe.py +109 -0
  76. boost_skill_cli-1.2.32/boost_cli/core/staleness.py +77 -0
  77. boost_skill_cli-1.2.32/boost_cli/core/store.py +1653 -0
  78. boost_skill_cli-1.2.32/boost_cli/core/trustaudit.py +226 -0
  79. boost_skill_cli-1.2.32/boost_cli/core/typosquat.py +87 -0
  80. boost_skill_cli-1.2.32/boost_cli/core/updatediff.py +143 -0
  81. boost_skill_cli-1.2.32/boost_cli/core/util.py +316 -0
  82. boost_skill_cli-1.2.32/boost_cli/core/workflows.py +913 -0
  83. boost_skill_cli-1.2.32/boost_cli/errors.py +13 -0
  84. boost_skill_cli-1.2.32/boost_cli/spin.py +82 -0
  85. boost_skill_cli-1.2.32/boost_langchain/__init__.py +53 -0
  86. boost_skill_cli-1.2.32/boost_langchain/_compat.py +26 -0
  87. boost_skill_cli-1.2.32/boost_langchain/graph.py +101 -0
  88. boost_skill_cli-1.2.32/boost_langchain/loader.py +61 -0
  89. boost_skill_cli-1.2.32/boost_langchain/retriever.py +102 -0
  90. boost_skill_cli-1.2.32/boost_skill_cli.egg-info/PKG-INFO +1327 -0
  91. boost_skill_cli-1.2.32/boost_skill_cli.egg-info/SOURCES.txt +772 -0
  92. boost_skill_cli-1.2.32/docs/carousel.html +511 -0
  93. boost_skill_cli-1.2.32/docs/code-review.md +94 -0
  94. boost_skill_cli-1.2.32/docs/commands.html +1293 -0
  95. boost_skill_cli-1.2.32/docs/index.html +1223 -0
  96. boost_skill_cli-1.2.32/docs/openssf-badge.md +372 -0
  97. boost_skill_cli-1.2.32/docs/rag-architecture.md +309 -0
  98. boost_skill_cli-1.2.32/docs/roadmap/items/gemini-cli-agent-target.md +18 -0
  99. boost_skill_cli-1.2.32/docs/roadmap/items/gemini-duplicate-skill-discovery.md +67 -0
  100. boost_skill_cli-1.2.32/docs/roadmap/items/gemini-hooks-host-aware.md +41 -0
  101. boost_skill_cli-1.2.32/docs/roadmap/items/gemini-mcp-parity.md +40 -0
  102. boost_skill_cli-1.2.32/docs/roadmap/items/openssf-gold-ceiling.md +55 -0
  103. boost_skill_cli-1.2.32/docs/roadmap.html +11889 -0
  104. boost_skill_cli-1.2.32/docs/security-design.md +230 -0
  105. boost_skill_cli-1.2.32/docs/verifying-releases.md +146 -0
  106. boost_skill_cli-1.2.32/evals/__init__.py +8 -0
  107. boost_skill_cli-1.2.32/evals/faithfulness.py +384 -0
  108. boost_skill_cli-1.2.32/evals/make_corpus.py +719 -0
  109. boost_skill_cli-1.2.32/evals/make_golden.py +277 -0
  110. boost_skill_cli-1.2.32/evals/metrics.py +200 -0
  111. boost_skill_cli-1.2.32/evals/publish_golden_dataset.py +93 -0
  112. boost_skill_cli-1.2.32/evals/run_evals.py +348 -0
  113. boost_skill_cli-1.2.32/noxfile.py +82 -0
  114. boost_skill_cli-1.2.32/pyproject.toml +339 -0
  115. boost_skill_cli-1.2.32/scripts/a11y_check.py +306 -0
  116. boost_skill_cli-1.2.32/scripts/add_spdx_headers.py +99 -0
  117. boost_skill_cli-1.2.32/scripts/bench_cli.sh +29 -0
  118. boost_skill_cli-1.2.32/scripts/build_command_reference.py +411 -0
  119. boost_skill_cli-1.2.32/scripts/build_demo_index.py +76 -0
  120. boost_skill_cli-1.2.32/scripts/build_registries.py +805 -0
  121. boost_skill_cli-1.2.32/scripts/build_roadmap.py +447 -0
  122. boost_skill_cli-1.2.32/scripts/build_scale_corpus.py +252 -0
  123. boost_skill_cli-1.2.32/scripts/check_anchors.py +110 -0
  124. boost_skill_cli-1.2.32/scripts/check_dco.py +114 -0
  125. boost_skill_cli-1.2.32/scripts/check_licenses.py +119 -0
  126. boost_skill_cli-1.2.32/scripts/check_required_checks.py +496 -0
  127. boost_skill_cli-1.2.32/scripts/ensure_eval_corpus.sh +47 -0
  128. boost_skill_cli-1.2.32/scripts/eval_corpus.py +641 -0
  129. boost_skill_cli-1.2.32/scripts/eval_explain.py +225 -0
  130. boost_skill_cli-1.2.32/scripts/eval_gate.py +241 -0
  131. boost_skill_cli-1.2.32/scripts/eval_recommend.py +274 -0
  132. boost_skill_cli-1.2.32/scripts/eval_retrieval.py +796 -0
  133. boost_skill_cli-1.2.32/scripts/eval_stats_summary.py +84 -0
  134. boost_skill_cli-1.2.32/scripts/import_budget.py +157 -0
  135. boost_skill_cli-1.2.32/scripts/lock_toolchain.py +394 -0
  136. boost_skill_cli-1.2.32/scripts/measure_registry.py +142 -0
  137. boost_skill_cli-1.2.32/scripts/mutation_gate.py +62 -0
  138. boost_skill_cli-1.2.32/scripts/mutation_shards.py +835 -0
  139. boost_skill_cli-1.2.32/scripts/page_budget.py +209 -0
  140. boost_skill_cli-1.2.32/scripts/perf_gate.py +151 -0
  141. boost_skill_cli-1.2.32/scripts/post_deploy_smoke.py +206 -0
  142. boost_skill_cli-1.2.32/scripts/publish_eval_json.py +129 -0
  143. boost_skill_cli-1.2.32/scripts/release_guard.py +177 -0
  144. boost_skill_cli-1.2.32/scripts/release_preflight.py +181 -0
  145. boost_skill_cli-1.2.32/scripts/serve_docs.py +149 -0
  146. boost_skill_cli-1.2.32/setup.cfg +25 -0
  147. boost_skill_cli-1.2.32/tests/bdd/features/environment.py +75 -0
  148. boost_skill_cli-1.2.32/tests/bdd/features/steps/cli_steps.py +120 -0
  149. boost_skill_cli-1.2.32/tests/bdd/features/steps/discovery_steps.py +79 -0
  150. boost_skill_cli-1.2.32/tests/bdd/features/steps/mcp_steps.py +74 -0
  151. boost_skill_cli-1.2.32/tests/bdd/features/steps/quality_steps.py +14 -0
  152. boost_skill_cli-1.2.32/tests/conftest.py +250 -0
  153. boost_skill_cli-1.2.32/tests/functional/test_capabilities_policy.py +121 -0
  154. boost_skill_cli-1.2.32/tests/functional/test_cli_adapt.py +132 -0
  155. boost_skill_cli-1.2.32/tests/functional/test_cli_bmad.py +521 -0
  156. boost_skill_cli-1.2.32/tests/functional/test_cli_catalog.py +192 -0
  157. boost_skill_cli-1.2.32/tests/functional/test_cli_chat.py +110 -0
  158. boost_skill_cli-1.2.32/tests/functional/test_cli_configuration.py +1927 -0
  159. boost_skill_cli-1.2.32/tests/functional/test_cli_discovery.py +1781 -0
  160. boost_skill_cli-1.2.32/tests/functional/test_cli_hooks.py +60 -0
  161. boost_skill_cli-1.2.32/tests/functional/test_cli_hooks_gemini.py +105 -0
  162. boost_skill_cli-1.2.32/tests/functional/test_cli_info.py +742 -0
  163. boost_skill_cli-1.2.32/tests/functional/test_cli_intelligence.py +620 -0
  164. boost_skill_cli-1.2.32/tests/functional/test_cli_pane_width.py +139 -0
  165. boost_skill_cli-1.2.32/tests/functional/test_cli_pkg.py +1718 -0
  166. boost_skill_cli-1.2.32/tests/functional/test_cli_quality.py +969 -0
  167. boost_skill_cli-1.2.32/tests/functional/test_cli_taps.py +365 -0
  168. boost_skill_cli-1.2.32/tests/functional/test_cli_team.py +612 -0
  169. boost_skill_cli-1.2.32/tests/functional/test_everyday_loop.py +70 -0
  170. boost_skill_cli-1.2.32/tests/functional/test_integrity_enforce.py +98 -0
  171. boost_skill_cli-1.2.32/tests/functional/test_kind_conformance.py +225 -0
  172. boost_skill_cli-1.2.32/tests/functional/test_property_parsers.py +131 -0
  173. boost_skill_cli-1.2.32/tests/functional/test_run.py +67 -0
  174. boost_skill_cli-1.2.32/tests/functional/test_tap_signing.py +152 -0
  175. boost_skill_cli-1.2.32/tests/functional/test_workspace_scope.py +332 -0
  176. boost_skill_cli-1.2.32/tests/fuzz/fuzz_frontmatter.py +129 -0
  177. boost_skill_cli-1.2.32/tests/fuzz/fuzz_registry.py +123 -0
  178. boost_skill_cli-1.2.32/tests/langchain/conftest.py +75 -0
  179. boost_skill_cli-1.2.32/tests/langchain/test_graph.py +155 -0
  180. boost_skill_cli-1.2.32/tests/langchain/test_loader.py +76 -0
  181. boost_skill_cli-1.2.32/tests/langchain/test_retriever.py +181 -0
  182. boost_skill_cli-1.2.32/tests/make_fixture.py +150 -0
  183. boost_skill_cli-1.2.32/tests/perf/test_benchmarks.py +61 -0
  184. boost_skill_cli-1.2.32/tests/smoke.sh +265 -0
  185. boost_skill_cli-1.2.32/tests/unit/test_a11y_check.py +216 -0
  186. boost_skill_cli-1.2.32/tests/unit/test_action_pin_lockstep.py +292 -0
  187. boost_skill_cli-1.2.32/tests/unit/test_adapters.py +399 -0
  188. boost_skill_cli-1.2.32/tests/unit/test_adapters_multi.py +382 -0
  189. boost_skill_cli-1.2.32/tests/unit/test_adapters_runner.py +144 -0
  190. boost_skill_cli-1.2.32/tests/unit/test_agents.py +164 -0
  191. boost_skill_cli-1.2.32/tests/unit/test_ai.py +441 -0
  192. boost_skill_cli-1.2.32/tests/unit/test_bmad_core.py +596 -0
  193. boost_skill_cli-1.2.32/tests/unit/test_boost_first_offer.py +181 -0
  194. boost_skill_cli-1.2.32/tests/unit/test_bootstrap.py +284 -0
  195. boost_skill_cli-1.2.32/tests/unit/test_browse.py +1056 -0
  196. boost_skill_cli-1.2.32/tests/unit/test_builtin.py +409 -0
  197. boost_skill_cli-1.2.32/tests/unit/test_capabilities.py +92 -0
  198. boost_skill_cli-1.2.32/tests/unit/test_catalog.py +1133 -0
  199. boost_skill_cli-1.2.32/tests/unit/test_catalogbundle.py +407 -0
  200. boost_skill_cli-1.2.32/tests/unit/test_chat.py +386 -0
  201. boost_skill_cli-1.2.32/tests/unit/test_check_anchors.py +81 -0
  202. boost_skill_cli-1.2.32/tests/unit/test_check_dco.py +181 -0
  203. boost_skill_cli-1.2.32/tests/unit/test_check_licenses.py +174 -0
  204. boost_skill_cli-1.2.32/tests/unit/test_claude_settings.py +125 -0
  205. boost_skill_cli-1.2.32/tests/unit/test_clean_internal_cache.py +111 -0
  206. boost_skill_cli-1.2.32/tests/unit/test_cliparse.py +45 -0
  207. boost_skill_cli-1.2.32/tests/unit/test_codeql_analysis_key.py +97 -0
  208. boost_skill_cli-1.2.32/tests/unit/test_command_reference_fresh.py +76 -0
  209. boost_skill_cli-1.2.32/tests/unit/test_community_health_files.py +92 -0
  210. boost_skill_cli-1.2.32/tests/unit/test_compact.py +177 -0
  211. boost_skill_cli-1.2.32/tests/unit/test_complete.py +365 -0
  212. boost_skill_cli-1.2.32/tests/unit/test_complete_rc_block.py +369 -0
  213. boost_skill_cli-1.2.32/tests/unit/test_config.py +287 -0
  214. boost_skill_cli-1.2.32/tests/unit/test_content_dedupe.py +146 -0
  215. boost_skill_cli-1.2.32/tests/unit/test_content_identity.py +439 -0
  216. boost_skill_cli-1.2.32/tests/unit/test_crash_redaction.py +60 -0
  217. boost_skill_cli-1.2.32/tests/unit/test_dedup_trust.py +119 -0
  218. boost_skill_cli-1.2.32/tests/unit/test_demo_index.py +110 -0
  219. boost_skill_cli-1.2.32/tests/unit/test_dense.py +322 -0
  220. boost_skill_cli-1.2.32/tests/unit/test_dense_embed_dedupe.py +218 -0
  221. boost_skill_cli-1.2.32/tests/unit/test_dense_fallback.py +563 -0
  222. boost_skill_cli-1.2.32/tests/unit/test_dense_fix_hint.py +226 -0
  223. boost_skill_cli-1.2.32/tests/unit/test_dense_quantized.py +378 -0
  224. boost_skill_cli-1.2.32/tests/unit/test_dense_ready_order.py +42 -0
  225. boost_skill_cli-1.2.32/tests/unit/test_dense_shard_real_schema.py +157 -0
  226. boost_skill_cli-1.2.32/tests/unit/test_dense_shard_unreadable_vectors.py +111 -0
  227. boost_skill_cli-1.2.32/tests/unit/test_dense_shards.py +353 -0
  228. boost_skill_cli-1.2.32/tests/unit/test_dense_status.py +353 -0
  229. boost_skill_cli-1.2.32/tests/unit/test_dense_status_cheap.py +283 -0
  230. boost_skill_cli-1.2.32/tests/unit/test_dependabot_config.py +166 -0
  231. boost_skill_cli-1.2.32/tests/unit/test_docs_pages_linked.py +81 -0
  232. boost_skill_cli-1.2.32/tests/unit/test_docsite_chrome.py +286 -0
  233. boost_skill_cli-1.2.32/tests/unit/test_ed25519.py +97 -0
  234. boost_skill_cli-1.2.32/tests/unit/test_embed.py +218 -0
  235. boost_skill_cli-1.2.32/tests/unit/test_embed_local.py +266 -0
  236. boost_skill_cli-1.2.32/tests/unit/test_embed_truncated_response.py +70 -0
  237. boost_skill_cli-1.2.32/tests/unit/test_entry_key.py +105 -0
  238. boost_skill_cli-1.2.32/tests/unit/test_errors_and_cli_table.py +268 -0
  239. boost_skill_cli-1.2.32/tests/unit/test_eval_baseline.py +184 -0
  240. boost_skill_cli-1.2.32/tests/unit/test_eval_corpus.py +700 -0
  241. boost_skill_cli-1.2.32/tests/unit/test_eval_faithfulness.py +261 -0
  242. boost_skill_cli-1.2.32/tests/unit/test_eval_gate.py +196 -0
  243. boost_skill_cli-1.2.32/tests/unit/test_eval_grading.py +337 -0
  244. boost_skill_cli-1.2.32/tests/unit/test_eval_metrics.py +257 -0
  245. boost_skill_cli-1.2.32/tests/unit/test_eval_stats_summary.py +82 -0
  246. boost_skill_cli-1.2.32/tests/unit/test_failure_alerting_covers_unattended.py +178 -0
  247. boost_skill_cli-1.2.32/tests/unit/test_faithfulness.py +89 -0
  248. boost_skill_cli-1.2.32/tests/unit/test_frontmatter.py +331 -0
  249. boost_skill_cli-1.2.32/tests/unit/test_fuzz_targets.py +89 -0
  250. boost_skill_cli-1.2.32/tests/unit/test_gemini_agent_sanitize.py +1359 -0
  251. boost_skill_cli-1.2.32/tests/unit/test_gitleaks_config.py +61 -0
  252. boost_skill_cli-1.2.32/tests/unit/test_gitutil.py +350 -0
  253. boost_skill_cli-1.2.32/tests/unit/test_gitutil_lfs.py +72 -0
  254. boost_skill_cli-1.2.32/tests/unit/test_gitutil_sparse.py +295 -0
  255. boost_skill_cli-1.2.32/tests/unit/test_hook_settings_hosts.py +119 -0
  256. boost_skill_cli-1.2.32/tests/unit/test_hookhost.py +181 -0
  257. boost_skill_cli-1.2.32/tests/unit/test_imperative.py +103 -0
  258. boost_skill_cli-1.2.32/tests/unit/test_import_budget.py +137 -0
  259. boost_skill_cli-1.2.32/tests/unit/test_injectscan.py +284 -0
  260. boost_skill_cli-1.2.32/tests/unit/test_install_permission_error.py +58 -0
  261. boost_skill_cli-1.2.32/tests/unit/test_installscan.py +165 -0
  262. boost_skill_cli-1.2.32/tests/unit/test_integrity.py +231 -0
  263. boost_skill_cli-1.2.32/tests/unit/test_journal.py +281 -0
  264. boost_skill_cli-1.2.32/tests/unit/test_langchain_packaging.py +112 -0
  265. boost_skill_cli-1.2.32/tests/unit/test_link_ownership.py +110 -0
  266. boost_skill_cli-1.2.32/tests/unit/test_localembed.py +493 -0
  267. boost_skill_cli-1.2.32/tests/unit/test_localembed_e2e.py +172 -0
  268. boost_skill_cli-1.2.32/tests/unit/test_lockfile.py +276 -0
  269. boost_skill_cli-1.2.32/tests/unit/test_logs.py +615 -0
  270. boost_skill_cli-1.2.32/tests/unit/test_marketing_counts.py +93 -0
  271. boost_skill_cli-1.2.32/tests/unit/test_mcp.py +1159 -0
  272. boost_skill_cli-1.2.32/tests/unit/test_mcp_install_scan.py +108 -0
  273. boost_skill_cli-1.2.32/tests/unit/test_mcpdecl.py +357 -0
  274. boost_skill_cli-1.2.32/tests/unit/test_mcphost.py +197 -0
  275. boost_skill_cli-1.2.32/tests/unit/test_measure_registry.py +135 -0
  276. boost_skill_cli-1.2.32/tests/unit/test_minisign.py +157 -0
  277. boost_skill_cli-1.2.32/tests/unit/test_mutation_hardening.py +250 -0
  278. boost_skill_cli-1.2.32/tests/unit/test_mutation_shards.py +392 -0
  279. boost_skill_cli-1.2.32/tests/unit/test_mutation_subfile_shards.py +591 -0
  280. boost_skill_cli-1.2.32/tests/unit/test_mutmut_source_paths.py +144 -0
  281. boost_skill_cli-1.2.32/tests/unit/test_nethttp.py +122 -0
  282. boost_skill_cli-1.2.32/tests/unit/test_output.py +1521 -0
  283. boost_skill_cli-1.2.32/tests/unit/test_page_budget.py +173 -0
  284. boost_skill_cli-1.2.32/tests/unit/test_paths.py +170 -0
  285. boost_skill_cli-1.2.32/tests/unit/test_perf_gate.py +66 -0
  286. boost_skill_cli-1.2.32/tests/unit/test_pkg_confusions.py +47 -0
  287. boost_skill_cli-1.2.32/tests/unit/test_pkg_injection.py +61 -0
  288. boost_skill_cli-1.2.32/tests/unit/test_pkg_secrets.py +56 -0
  289. boost_skill_cli-1.2.32/tests/unit/test_platform_pins.py +387 -0
  290. boost_skill_cli-1.2.32/tests/unit/test_policy.py +230 -0
  291. boost_skill_cli-1.2.32/tests/unit/test_post_deploy_smoke.py +220 -0
  292. boost_skill_cli-1.2.32/tests/unit/test_project_mcp_sidecar.py +189 -0
  293. boost_skill_cli-1.2.32/tests/unit/test_projectlock.py +138 -0
  294. boost_skill_cli-1.2.32/tests/unit/test_provenance.py +128 -0
  295. boost_skill_cli-1.2.32/tests/unit/test_publish_golden_dataset.py +228 -0
  296. boost_skill_cli-1.2.32/tests/unit/test_rag.py +1535 -0
  297. boost_skill_cli-1.2.32/tests/unit/test_rag_fastpath.py +281 -0
  298. boost_skill_cli-1.2.32/tests/unit/test_rag_fusion.py +308 -0
  299. boost_skill_cli-1.2.32/tests/unit/test_registries_fresh.py +51 -0
  300. boost_skill_cli-1.2.32/tests/unit/test_registry.py +352 -0
  301. boost_skill_cli-1.2.32/tests/unit/test_registry_categories.py +389 -0
  302. boost_skill_cli-1.2.32/tests/unit/test_registry_control_chars.py +235 -0
  303. boost_skill_cli-1.2.32/tests/unit/test_release_guard.py +229 -0
  304. boost_skill_cli-1.2.32/tests/unit/test_release_preflight.py +210 -0
  305. boost_skill_cli-1.2.32/tests/unit/test_required_checks.py +529 -0
  306. boost_skill_cli-1.2.32/tests/unit/test_rerank_cache.py +130 -0
  307. boost_skill_cli-1.2.32/tests/unit/test_resolve.py +164 -0
  308. boost_skill_cli-1.2.32/tests/unit/test_roadmap_fresh.py +407 -0
  309. boost_skill_cli-1.2.32/tests/unit/test_rules.py +297 -0
  310. boost_skill_cli-1.2.32/tests/unit/test_scale_corpus.py +268 -0
  311. boost_skill_cli-1.2.32/tests/unit/test_scopes.py +325 -0
  312. boost_skill_cli-1.2.32/tests/unit/test_secretscan.py +156 -0
  313. boost_skill_cli-1.2.32/tests/unit/test_selfupdate.py +531 -0
  314. boost_skill_cli-1.2.32/tests/unit/test_serve.py +1135 -0
  315. boost_skill_cli-1.2.32/tests/unit/test_serve_docs.py +199 -0
  316. boost_skill_cli-1.2.32/tests/unit/test_shards_matrix.py +138 -0
  317. boost_skill_cli-1.2.32/tests/unit/test_smoke_covers_every_command.py +75 -0
  318. boost_skill_cli-1.2.32/tests/unit/test_spdx_headers.py +100 -0
  319. boost_skill_cli-1.2.32/tests/unit/test_spin.py +111 -0
  320. boost_skill_cli-1.2.32/tests/unit/test_stackprobe.py +117 -0
  321. boost_skill_cli-1.2.32/tests/unit/test_staleness.py +104 -0
  322. boost_skill_cli-1.2.32/tests/unit/test_store.py +2679 -0
  323. boost_skill_cli-1.2.32/tests/unit/test_store_materialize.py +112 -0
  324. boost_skill_cli-1.2.32/tests/unit/test_sync_blocked_links.py +130 -0
  325. boost_skill_cli-1.2.32/tests/unit/test_sync_repairs_gutted_skill.py +98 -0
  326. boost_skill_cli-1.2.32/tests/unit/test_token_parity.py +34 -0
  327. boost_skill_cli-1.2.32/tests/unit/test_toolchain_lock.py +336 -0
  328. boost_skill_cli-1.2.32/tests/unit/test_trustaudit.py +371 -0
  329. boost_skill_cli-1.2.32/tests/unit/test_typosquat.py +136 -0
  330. boost_skill_cli-1.2.32/tests/unit/test_updatediff.py +173 -0
  331. boost_skill_cli-1.2.32/tests/unit/test_util.py +663 -0
  332. boost_skill_cli-1.2.32/tests/unit/test_version.py +52 -0
  333. boost_skill_cli-1.2.32/tests/unit/test_visual_harness_flags.py +123 -0
  334. boost_skill_cli-1.2.32/tests/unit/test_workflow_concurrency.py +114 -0
  335. boost_skill_cli-1.2.32/tests/unit/test_workflow_concurrency_groups.py +146 -0
  336. boost_skill_cli-1.2.32/tests/unit/test_workflow_push_has_credentials.py +142 -0
  337. boost_skill_cli-1.2.32/tests/unit/test_workflow_timeouts.py +75 -0
  338. boost_skill_cli-1.2.32/tests/unit/test_workflows.py +299 -0
  339. boost_skill_cli-1.2.32/tests/unit/test_zizmor_ignores_still_anchor.py +120 -0
  340. boost_skill_cli-1.2.30/.vale/styles/config/vocabularies/boost/accept.txt +0 -180
  341. boost_skill_cli-1.2.30/CLAUDE.md +0 -420
  342. boost_skill_cli-1.2.30/CONTRIBUTING.md +0 -233
  343. boost_skill_cli-1.2.30/Makefile +0 -252
  344. boost_skill_cli-1.2.30/PKG-INFO +0 -1311
  345. boost_skill_cli-1.2.30/README.md +0 -593
  346. boost_skill_cli-1.2.30/boost +0 -45
  347. boost_skill_cli-1.2.30/boost_cli/__init__.py +0 -33
  348. boost_skill_cli-1.2.30/boost_cli/__main__.py +0 -8
  349. boost_skill_cli-1.2.30/boost_cli/_version.py +0 -24
  350. boost_skill_cli-1.2.30/boost_cli/cli.py +0 -336
  351. boost_skill_cli-1.2.30/boost_cli/cliparse.py +0 -31
  352. boost_skill_cli-1.2.30/boost_cli/commands/__init__.py +0 -0
  353. boost_skill_cli-1.2.30/boost_cli/commands/_common.py +0 -78
  354. boost_skill_cli-1.2.30/boost_cli/commands/bmad.py +0 -579
  355. boost_skill_cli-1.2.30/boost_cli/commands/configuration.py +0 -1725
  356. boost_skill_cli-1.2.30/boost_cli/commands/discovery.py +0 -1672
  357. boost_skill_cli-1.2.30/boost_cli/commands/hooks.py +0 -91
  358. boost_skill_cli-1.2.30/boost_cli/commands/info.py +0 -1021
  359. boost_skill_cli-1.2.30/boost_cli/commands/intelligence.py +0 -1217
  360. boost_skill_cli-1.2.30/boost_cli/commands/pkg.py +0 -1604
  361. boost_skill_cli-1.2.30/boost_cli/commands/quality.py +0 -1271
  362. boost_skill_cli-1.2.30/boost_cli/commands/run.py +0 -116
  363. boost_skill_cli-1.2.30/boost_cli/commands/safety.py +0 -584
  364. boost_skill_cli-1.2.30/boost_cli/commands/taps.py +0 -383
  365. boost_skill_cli-1.2.30/boost_cli/commands/team.py +0 -748
  366. boost_skill_cli-1.2.30/boost_cli/core/__init__.py +0 -0
  367. boost_skill_cli-1.2.30/boost_cli/core/adapters.py +0 -559
  368. boost_skill_cli-1.2.30/boost_cli/core/agents.py +0 -79
  369. boost_skill_cli-1.2.30/boost_cli/core/ai.py +0 -159
  370. boost_skill_cli-1.2.30/boost_cli/core/bmad.py +0 -692
  371. boost_skill_cli-1.2.30/boost_cli/core/bootstrap.py +0 -135
  372. boost_skill_cli-1.2.30/boost_cli/core/browse.py +0 -646
  373. boost_skill_cli-1.2.30/boost_cli/core/builtin.py +0 -114
  374. boost_skill_cli-1.2.30/boost_cli/core/capabilities.py +0 -131
  375. boost_skill_cli-1.2.30/boost_cli/core/catalog.py +0 -660
  376. boost_skill_cli-1.2.30/boost_cli/core/catalogbundle.py +0 -265
  377. boost_skill_cli-1.2.30/boost_cli/core/chat.py +0 -393
  378. boost_skill_cli-1.2.30/boost_cli/core/claude_settings.py +0 -200
  379. boost_skill_cli-1.2.30/boost_cli/core/complete.py +0 -420
  380. boost_skill_cli-1.2.30/boost_cli/core/config.py +0 -226
  381. boost_skill_cli-1.2.30/boost_cli/core/dense.py +0 -970
  382. boost_skill_cli-1.2.30/boost_cli/core/ed25519.py +0 -129
  383. boost_skill_cli-1.2.30/boost_cli/core/embed.py +0 -285
  384. boost_skill_cli-1.2.30/boost_cli/core/faithfulness.py +0 -114
  385. boost_skill_cli-1.2.30/boost_cli/core/frontmatter.py +0 -176
  386. boost_skill_cli-1.2.30/boost_cli/core/gitutil.py +0 -300
  387. boost_skill_cli-1.2.30/boost_cli/core/imperative.py +0 -68
  388. boost_skill_cli-1.2.30/boost_cli/core/injectscan.py +0 -238
  389. boost_skill_cli-1.2.30/boost_cli/core/installscan.py +0 -113
  390. boost_skill_cli-1.2.30/boost_cli/core/integrity.py +0 -228
  391. boost_skill_cli-1.2.30/boost_cli/core/journal.py +0 -119
  392. boost_skill_cli-1.2.30/boost_cli/core/localembed.py +0 -244
  393. boost_skill_cli-1.2.30/boost_cli/core/lockfile.py +0 -252
  394. boost_skill_cli-1.2.30/boost_cli/core/logs.py +0 -352
  395. boost_skill_cli-1.2.30/boost_cli/core/mcp.py +0 -479
  396. boost_skill_cli-1.2.30/boost_cli/core/mcpdecl.py +0 -204
  397. boost_skill_cli-1.2.30/boost_cli/core/mcphost.py +0 -147
  398. boost_skill_cli-1.2.30/boost_cli/core/minisign.py +0 -125
  399. boost_skill_cli-1.2.30/boost_cli/core/nethttp.py +0 -67
  400. boost_skill_cli-1.2.30/boost_cli/core/output.py +0 -766
  401. boost_skill_cli-1.2.30/boost_cli/core/paths.py +0 -177
  402. boost_skill_cli-1.2.30/boost_cli/core/policy.py +0 -123
  403. boost_skill_cli-1.2.30/boost_cli/core/projectlock.py +0 -118
  404. boost_skill_cli-1.2.30/boost_cli/core/provenance.py +0 -161
  405. boost_skill_cli-1.2.30/boost_cli/core/rag.py +0 -1163
  406. boost_skill_cli-1.2.30/boost_cli/core/registry.py +0 -260
  407. boost_skill_cli-1.2.30/boost_cli/core/resolve.py +0 -136
  408. boost_skill_cli-1.2.30/boost_cli/core/rules.py +0 -172
  409. boost_skill_cli-1.2.30/boost_cli/core/scopes.py +0 -230
  410. boost_skill_cli-1.2.30/boost_cli/core/secretscan.py +0 -138
  411. boost_skill_cli-1.2.30/boost_cli/core/selfupdate.py +0 -268
  412. boost_skill_cli-1.2.30/boost_cli/core/serve.py +0 -947
  413. boost_skill_cli-1.2.30/boost_cli/core/stackprobe.py +0 -107
  414. boost_skill_cli-1.2.30/boost_cli/core/staleness.py +0 -75
  415. boost_skill_cli-1.2.30/boost_cli/core/store.py +0 -1543
  416. boost_skill_cli-1.2.30/boost_cli/core/trustaudit.py +0 -224
  417. boost_skill_cli-1.2.30/boost_cli/core/typosquat.py +0 -85
  418. boost_skill_cli-1.2.30/boost_cli/core/updatediff.py +0 -141
  419. boost_skill_cli-1.2.30/boost_cli/core/util.py +0 -314
  420. boost_skill_cli-1.2.30/boost_cli/core/workflows.py +0 -911
  421. boost_skill_cli-1.2.30/boost_cli/errors.py +0 -11
  422. boost_skill_cli-1.2.30/boost_cli/spin.py +0 -80
  423. boost_skill_cli-1.2.30/boost_langchain/__init__.py +0 -51
  424. boost_skill_cli-1.2.30/boost_langchain/_compat.py +0 -24
  425. boost_skill_cli-1.2.30/boost_langchain/graph.py +0 -99
  426. boost_skill_cli-1.2.30/boost_langchain/loader.py +0 -59
  427. boost_skill_cli-1.2.30/boost_langchain/retriever.py +0 -100
  428. boost_skill_cli-1.2.30/boost_skill_cli.egg-info/PKG-INFO +0 -1311
  429. boost_skill_cli-1.2.30/boost_skill_cli.egg-info/SOURCES.txt +0 -761
  430. boost_skill_cli-1.2.30/docs/carousel.html +0 -509
  431. boost_skill_cli-1.2.30/docs/commands.html +0 -1290
  432. boost_skill_cli-1.2.30/docs/index.html +0 -1223
  433. boost_skill_cli-1.2.30/docs/openssf-badge.md +0 -270
  434. boost_skill_cli-1.2.30/docs/rag-architecture.md +0 -309
  435. boost_skill_cli-1.2.30/docs/roadmap/items/gemini-cli-agent-target.md +0 -16
  436. boost_skill_cli-1.2.30/docs/roadmap.html +0 -11700
  437. boost_skill_cli-1.2.30/docs/security-design.md +0 -191
  438. boost_skill_cli-1.2.30/docs/verifying-releases.md +0 -101
  439. boost_skill_cli-1.2.30/evals/__init__.py +0 -6
  440. boost_skill_cli-1.2.30/evals/faithfulness.py +0 -382
  441. boost_skill_cli-1.2.30/evals/make_corpus.py +0 -717
  442. boost_skill_cli-1.2.30/evals/make_golden.py +0 -275
  443. boost_skill_cli-1.2.30/evals/metrics.py +0 -198
  444. boost_skill_cli-1.2.30/evals/publish_golden_dataset.py +0 -91
  445. boost_skill_cli-1.2.30/evals/run_evals.py +0 -346
  446. boost_skill_cli-1.2.30/noxfile.py +0 -80
  447. boost_skill_cli-1.2.30/pyproject.toml +0 -331
  448. boost_skill_cli-1.2.30/scripts/a11y_check.py +0 -304
  449. boost_skill_cli-1.2.30/scripts/bench_cli.sh +0 -27
  450. boost_skill_cli-1.2.30/scripts/build_command_reference.py +0 -409
  451. boost_skill_cli-1.2.30/scripts/build_demo_index.py +0 -74
  452. boost_skill_cli-1.2.30/scripts/build_registries.py +0 -803
  453. boost_skill_cli-1.2.30/scripts/build_roadmap.py +0 -445
  454. boost_skill_cli-1.2.30/scripts/build_scale_corpus.py +0 -250
  455. boost_skill_cli-1.2.30/scripts/check_anchors.py +0 -108
  456. boost_skill_cli-1.2.30/scripts/check_dco.py +0 -112
  457. boost_skill_cli-1.2.30/scripts/check_licenses.py +0 -117
  458. boost_skill_cli-1.2.30/scripts/check_required_checks.py +0 -494
  459. boost_skill_cli-1.2.30/scripts/ensure_eval_corpus.sh +0 -45
  460. boost_skill_cli-1.2.30/scripts/eval_corpus.py +0 -639
  461. boost_skill_cli-1.2.30/scripts/eval_explain.py +0 -223
  462. boost_skill_cli-1.2.30/scripts/eval_gate.py +0 -239
  463. boost_skill_cli-1.2.30/scripts/eval_recommend.py +0 -272
  464. boost_skill_cli-1.2.30/scripts/eval_retrieval.py +0 -794
  465. boost_skill_cli-1.2.30/scripts/eval_stats_summary.py +0 -82
  466. boost_skill_cli-1.2.30/scripts/import_budget.py +0 -155
  467. boost_skill_cli-1.2.30/scripts/lock_toolchain.py +0 -392
  468. boost_skill_cli-1.2.30/scripts/measure_registry.py +0 -140
  469. boost_skill_cli-1.2.30/scripts/mutation_gate.py +0 -60
  470. boost_skill_cli-1.2.30/scripts/mutation_shards.py +0 -833
  471. boost_skill_cli-1.2.30/scripts/page_budget.py +0 -207
  472. boost_skill_cli-1.2.30/scripts/perf_gate.py +0 -149
  473. boost_skill_cli-1.2.30/scripts/post_deploy_smoke.py +0 -204
  474. boost_skill_cli-1.2.30/scripts/publish_eval_json.py +0 -127
  475. boost_skill_cli-1.2.30/scripts/release_guard.py +0 -175
  476. boost_skill_cli-1.2.30/scripts/release_preflight.py +0 -179
  477. boost_skill_cli-1.2.30/scripts/serve_docs.py +0 -147
  478. boost_skill_cli-1.2.30/setup.cfg +0 -24
  479. boost_skill_cli-1.2.30/tests/bdd/features/environment.py +0 -73
  480. boost_skill_cli-1.2.30/tests/bdd/features/steps/cli_steps.py +0 -118
  481. boost_skill_cli-1.2.30/tests/bdd/features/steps/discovery_steps.py +0 -77
  482. boost_skill_cli-1.2.30/tests/bdd/features/steps/mcp_steps.py +0 -72
  483. boost_skill_cli-1.2.30/tests/bdd/features/steps/quality_steps.py +0 -12
  484. boost_skill_cli-1.2.30/tests/conftest.py +0 -248
  485. boost_skill_cli-1.2.30/tests/functional/test_capabilities_policy.py +0 -119
  486. boost_skill_cli-1.2.30/tests/functional/test_cli_adapt.py +0 -130
  487. boost_skill_cli-1.2.30/tests/functional/test_cli_bmad.py +0 -519
  488. boost_skill_cli-1.2.30/tests/functional/test_cli_catalog.py +0 -190
  489. boost_skill_cli-1.2.30/tests/functional/test_cli_chat.py +0 -108
  490. boost_skill_cli-1.2.30/tests/functional/test_cli_configuration.py +0 -1925
  491. boost_skill_cli-1.2.30/tests/functional/test_cli_discovery.py +0 -1779
  492. boost_skill_cli-1.2.30/tests/functional/test_cli_hooks.py +0 -58
  493. boost_skill_cli-1.2.30/tests/functional/test_cli_info.py +0 -740
  494. boost_skill_cli-1.2.30/tests/functional/test_cli_intelligence.py +0 -618
  495. boost_skill_cli-1.2.30/tests/functional/test_cli_pane_width.py +0 -137
  496. boost_skill_cli-1.2.30/tests/functional/test_cli_pkg.py +0 -1716
  497. boost_skill_cli-1.2.30/tests/functional/test_cli_quality.py +0 -877
  498. boost_skill_cli-1.2.30/tests/functional/test_cli_taps.py +0 -363
  499. boost_skill_cli-1.2.30/tests/functional/test_cli_team.py +0 -610
  500. boost_skill_cli-1.2.30/tests/functional/test_everyday_loop.py +0 -68
  501. boost_skill_cli-1.2.30/tests/functional/test_integrity_enforce.py +0 -96
  502. boost_skill_cli-1.2.30/tests/functional/test_kind_conformance.py +0 -223
  503. boost_skill_cli-1.2.30/tests/functional/test_property_parsers.py +0 -129
  504. boost_skill_cli-1.2.30/tests/functional/test_run.py +0 -65
  505. boost_skill_cli-1.2.30/tests/functional/test_tap_signing.py +0 -150
  506. boost_skill_cli-1.2.30/tests/functional/test_workspace_scope.py +0 -330
  507. boost_skill_cli-1.2.30/tests/fuzz/fuzz_frontmatter.py +0 -127
  508. boost_skill_cli-1.2.30/tests/fuzz/fuzz_registry.py +0 -121
  509. boost_skill_cli-1.2.30/tests/langchain/conftest.py +0 -73
  510. boost_skill_cli-1.2.30/tests/langchain/test_graph.py +0 -153
  511. boost_skill_cli-1.2.30/tests/langchain/test_loader.py +0 -74
  512. boost_skill_cli-1.2.30/tests/langchain/test_retriever.py +0 -179
  513. boost_skill_cli-1.2.30/tests/make_fixture.py +0 -148
  514. boost_skill_cli-1.2.30/tests/perf/test_benchmarks.py +0 -59
  515. boost_skill_cli-1.2.30/tests/smoke.sh +0 -263
  516. boost_skill_cli-1.2.30/tests/unit/test_a11y_check.py +0 -214
  517. boost_skill_cli-1.2.30/tests/unit/test_action_pin_lockstep.py +0 -290
  518. boost_skill_cli-1.2.30/tests/unit/test_adapters.py +0 -397
  519. boost_skill_cli-1.2.30/tests/unit/test_adapters_multi.py +0 -380
  520. boost_skill_cli-1.2.30/tests/unit/test_adapters_runner.py +0 -142
  521. boost_skill_cli-1.2.30/tests/unit/test_agents.py +0 -162
  522. boost_skill_cli-1.2.30/tests/unit/test_ai.py +0 -439
  523. boost_skill_cli-1.2.30/tests/unit/test_bmad_core.py +0 -594
  524. boost_skill_cli-1.2.30/tests/unit/test_boost_first_offer.py +0 -179
  525. boost_skill_cli-1.2.30/tests/unit/test_bootstrap.py +0 -282
  526. boost_skill_cli-1.2.30/tests/unit/test_browse.py +0 -1054
  527. boost_skill_cli-1.2.30/tests/unit/test_builtin.py +0 -407
  528. boost_skill_cli-1.2.30/tests/unit/test_capabilities.py +0 -90
  529. boost_skill_cli-1.2.30/tests/unit/test_catalog.py +0 -1131
  530. boost_skill_cli-1.2.30/tests/unit/test_catalogbundle.py +0 -405
  531. boost_skill_cli-1.2.30/tests/unit/test_chat.py +0 -384
  532. boost_skill_cli-1.2.30/tests/unit/test_check_anchors.py +0 -79
  533. boost_skill_cli-1.2.30/tests/unit/test_check_dco.py +0 -179
  534. boost_skill_cli-1.2.30/tests/unit/test_check_licenses.py +0 -172
  535. boost_skill_cli-1.2.30/tests/unit/test_claude_settings.py +0 -123
  536. boost_skill_cli-1.2.30/tests/unit/test_clean_internal_cache.py +0 -109
  537. boost_skill_cli-1.2.30/tests/unit/test_cliparse.py +0 -43
  538. boost_skill_cli-1.2.30/tests/unit/test_codeql_analysis_key.py +0 -95
  539. boost_skill_cli-1.2.30/tests/unit/test_command_reference_fresh.py +0 -74
  540. boost_skill_cli-1.2.30/tests/unit/test_community_health_files.py +0 -90
  541. boost_skill_cli-1.2.30/tests/unit/test_compact.py +0 -175
  542. boost_skill_cli-1.2.30/tests/unit/test_complete.py +0 -363
  543. boost_skill_cli-1.2.30/tests/unit/test_complete_rc_block.py +0 -367
  544. boost_skill_cli-1.2.30/tests/unit/test_config.py +0 -285
  545. boost_skill_cli-1.2.30/tests/unit/test_content_dedupe.py +0 -144
  546. boost_skill_cli-1.2.30/tests/unit/test_content_identity.py +0 -437
  547. boost_skill_cli-1.2.30/tests/unit/test_crash_redaction.py +0 -58
  548. boost_skill_cli-1.2.30/tests/unit/test_dedup_trust.py +0 -117
  549. boost_skill_cli-1.2.30/tests/unit/test_demo_index.py +0 -108
  550. boost_skill_cli-1.2.30/tests/unit/test_dense.py +0 -320
  551. boost_skill_cli-1.2.30/tests/unit/test_dense_embed_dedupe.py +0 -216
  552. boost_skill_cli-1.2.30/tests/unit/test_dense_fallback.py +0 -561
  553. boost_skill_cli-1.2.30/tests/unit/test_dense_fix_hint.py +0 -224
  554. boost_skill_cli-1.2.30/tests/unit/test_dense_quantized.py +0 -376
  555. boost_skill_cli-1.2.30/tests/unit/test_dense_ready_order.py +0 -40
  556. boost_skill_cli-1.2.30/tests/unit/test_dense_shard_real_schema.py +0 -155
  557. boost_skill_cli-1.2.30/tests/unit/test_dense_shard_unreadable_vectors.py +0 -109
  558. boost_skill_cli-1.2.30/tests/unit/test_dense_shards.py +0 -351
  559. boost_skill_cli-1.2.30/tests/unit/test_dense_status.py +0 -351
  560. boost_skill_cli-1.2.30/tests/unit/test_dense_status_cheap.py +0 -281
  561. boost_skill_cli-1.2.30/tests/unit/test_dependabot_config.py +0 -164
  562. boost_skill_cli-1.2.30/tests/unit/test_docs_pages_linked.py +0 -79
  563. boost_skill_cli-1.2.30/tests/unit/test_docsite_chrome.py +0 -284
  564. boost_skill_cli-1.2.30/tests/unit/test_ed25519.py +0 -95
  565. boost_skill_cli-1.2.30/tests/unit/test_embed.py +0 -216
  566. boost_skill_cli-1.2.30/tests/unit/test_embed_local.py +0 -264
  567. boost_skill_cli-1.2.30/tests/unit/test_embed_truncated_response.py +0 -68
  568. boost_skill_cli-1.2.30/tests/unit/test_entry_key.py +0 -103
  569. boost_skill_cli-1.2.30/tests/unit/test_errors_and_cli_table.py +0 -266
  570. boost_skill_cli-1.2.30/tests/unit/test_eval_baseline.py +0 -182
  571. boost_skill_cli-1.2.30/tests/unit/test_eval_corpus.py +0 -698
  572. boost_skill_cli-1.2.30/tests/unit/test_eval_faithfulness.py +0 -259
  573. boost_skill_cli-1.2.30/tests/unit/test_eval_gate.py +0 -194
  574. boost_skill_cli-1.2.30/tests/unit/test_eval_grading.py +0 -335
  575. boost_skill_cli-1.2.30/tests/unit/test_eval_metrics.py +0 -255
  576. boost_skill_cli-1.2.30/tests/unit/test_eval_stats_summary.py +0 -80
  577. boost_skill_cli-1.2.30/tests/unit/test_failure_alerting_covers_unattended.py +0 -176
  578. boost_skill_cli-1.2.30/tests/unit/test_faithfulness.py +0 -87
  579. boost_skill_cli-1.2.30/tests/unit/test_frontmatter.py +0 -329
  580. boost_skill_cli-1.2.30/tests/unit/test_fuzz_targets.py +0 -87
  581. boost_skill_cli-1.2.30/tests/unit/test_gemini_agent_sanitize.py +0 -1357
  582. boost_skill_cli-1.2.30/tests/unit/test_gitleaks_config.py +0 -59
  583. boost_skill_cli-1.2.30/tests/unit/test_gitutil.py +0 -348
  584. boost_skill_cli-1.2.30/tests/unit/test_gitutil_lfs.py +0 -70
  585. boost_skill_cli-1.2.30/tests/unit/test_gitutil_sparse.py +0 -293
  586. boost_skill_cli-1.2.30/tests/unit/test_imperative.py +0 -101
  587. boost_skill_cli-1.2.30/tests/unit/test_import_budget.py +0 -135
  588. boost_skill_cli-1.2.30/tests/unit/test_injectscan.py +0 -282
  589. boost_skill_cli-1.2.30/tests/unit/test_install_permission_error.py +0 -56
  590. boost_skill_cli-1.2.30/tests/unit/test_installscan.py +0 -163
  591. boost_skill_cli-1.2.30/tests/unit/test_integrity.py +0 -229
  592. boost_skill_cli-1.2.30/tests/unit/test_journal.py +0 -279
  593. boost_skill_cli-1.2.30/tests/unit/test_langchain_packaging.py +0 -110
  594. boost_skill_cli-1.2.30/tests/unit/test_link_ownership.py +0 -108
  595. boost_skill_cli-1.2.30/tests/unit/test_localembed.py +0 -491
  596. boost_skill_cli-1.2.30/tests/unit/test_localembed_e2e.py +0 -170
  597. boost_skill_cli-1.2.30/tests/unit/test_lockfile.py +0 -274
  598. boost_skill_cli-1.2.30/tests/unit/test_logs.py +0 -613
  599. boost_skill_cli-1.2.30/tests/unit/test_marketing_counts.py +0 -91
  600. boost_skill_cli-1.2.30/tests/unit/test_mcp.py +0 -1105
  601. boost_skill_cli-1.2.30/tests/unit/test_mcp_install_scan.py +0 -106
  602. boost_skill_cli-1.2.30/tests/unit/test_mcpdecl.py +0 -355
  603. boost_skill_cli-1.2.30/tests/unit/test_mcphost.py +0 -189
  604. boost_skill_cli-1.2.30/tests/unit/test_measure_registry.py +0 -133
  605. boost_skill_cli-1.2.30/tests/unit/test_minisign.py +0 -155
  606. boost_skill_cli-1.2.30/tests/unit/test_mutation_hardening.py +0 -248
  607. boost_skill_cli-1.2.30/tests/unit/test_mutation_shards.py +0 -390
  608. boost_skill_cli-1.2.30/tests/unit/test_mutation_subfile_shards.py +0 -589
  609. boost_skill_cli-1.2.30/tests/unit/test_mutmut_source_paths.py +0 -142
  610. boost_skill_cli-1.2.30/tests/unit/test_nethttp.py +0 -120
  611. boost_skill_cli-1.2.30/tests/unit/test_output.py +0 -1519
  612. boost_skill_cli-1.2.30/tests/unit/test_page_budget.py +0 -171
  613. boost_skill_cli-1.2.30/tests/unit/test_paths.py +0 -168
  614. boost_skill_cli-1.2.30/tests/unit/test_perf_gate.py +0 -64
  615. boost_skill_cli-1.2.30/tests/unit/test_pkg_confusions.py +0 -45
  616. boost_skill_cli-1.2.30/tests/unit/test_pkg_injection.py +0 -59
  617. boost_skill_cli-1.2.30/tests/unit/test_pkg_secrets.py +0 -54
  618. boost_skill_cli-1.2.30/tests/unit/test_platform_pins.py +0 -385
  619. boost_skill_cli-1.2.30/tests/unit/test_policy.py +0 -228
  620. boost_skill_cli-1.2.30/tests/unit/test_post_deploy_smoke.py +0 -218
  621. boost_skill_cli-1.2.30/tests/unit/test_project_mcp_sidecar.py +0 -187
  622. boost_skill_cli-1.2.30/tests/unit/test_projectlock.py +0 -136
  623. boost_skill_cli-1.2.30/tests/unit/test_provenance.py +0 -126
  624. boost_skill_cli-1.2.30/tests/unit/test_publish_golden_dataset.py +0 -226
  625. boost_skill_cli-1.2.30/tests/unit/test_rag.py +0 -1533
  626. boost_skill_cli-1.2.30/tests/unit/test_rag_fastpath.py +0 -279
  627. boost_skill_cli-1.2.30/tests/unit/test_rag_fusion.py +0 -306
  628. boost_skill_cli-1.2.30/tests/unit/test_registries_fresh.py +0 -49
  629. boost_skill_cli-1.2.30/tests/unit/test_registry.py +0 -350
  630. boost_skill_cli-1.2.30/tests/unit/test_registry_categories.py +0 -387
  631. boost_skill_cli-1.2.30/tests/unit/test_registry_control_chars.py +0 -233
  632. boost_skill_cli-1.2.30/tests/unit/test_release_guard.py +0 -227
  633. boost_skill_cli-1.2.30/tests/unit/test_release_preflight.py +0 -208
  634. boost_skill_cli-1.2.30/tests/unit/test_required_checks.py +0 -527
  635. boost_skill_cli-1.2.30/tests/unit/test_rerank_cache.py +0 -128
  636. boost_skill_cli-1.2.30/tests/unit/test_resolve.py +0 -162
  637. boost_skill_cli-1.2.30/tests/unit/test_roadmap_fresh.py +0 -405
  638. boost_skill_cli-1.2.30/tests/unit/test_rules.py +0 -295
  639. boost_skill_cli-1.2.30/tests/unit/test_scale_corpus.py +0 -266
  640. boost_skill_cli-1.2.30/tests/unit/test_scopes.py +0 -323
  641. boost_skill_cli-1.2.30/tests/unit/test_secretscan.py +0 -154
  642. boost_skill_cli-1.2.30/tests/unit/test_selfupdate.py +0 -529
  643. boost_skill_cli-1.2.30/tests/unit/test_serve.py +0 -1133
  644. boost_skill_cli-1.2.30/tests/unit/test_serve_docs.py +0 -197
  645. boost_skill_cli-1.2.30/tests/unit/test_shards_matrix.py +0 -136
  646. boost_skill_cli-1.2.30/tests/unit/test_smoke_covers_every_command.py +0 -73
  647. boost_skill_cli-1.2.30/tests/unit/test_spin.py +0 -109
  648. boost_skill_cli-1.2.30/tests/unit/test_stackprobe.py +0 -115
  649. boost_skill_cli-1.2.30/tests/unit/test_staleness.py +0 -102
  650. boost_skill_cli-1.2.30/tests/unit/test_store.py +0 -2487
  651. boost_skill_cli-1.2.30/tests/unit/test_store_materialize.py +0 -110
  652. boost_skill_cli-1.2.30/tests/unit/test_sync_blocked_links.py +0 -128
  653. boost_skill_cli-1.2.30/tests/unit/test_sync_repairs_gutted_skill.py +0 -96
  654. boost_skill_cli-1.2.30/tests/unit/test_token_parity.py +0 -32
  655. boost_skill_cli-1.2.30/tests/unit/test_toolchain_lock.py +0 -334
  656. boost_skill_cli-1.2.30/tests/unit/test_trustaudit.py +0 -369
  657. boost_skill_cli-1.2.30/tests/unit/test_typosquat.py +0 -134
  658. boost_skill_cli-1.2.30/tests/unit/test_updatediff.py +0 -171
  659. boost_skill_cli-1.2.30/tests/unit/test_util.py +0 -661
  660. boost_skill_cli-1.2.30/tests/unit/test_version.py +0 -50
  661. boost_skill_cli-1.2.30/tests/unit/test_visual_harness_flags.py +0 -121
  662. boost_skill_cli-1.2.30/tests/unit/test_workflow_concurrency.py +0 -112
  663. boost_skill_cli-1.2.30/tests/unit/test_workflow_concurrency_groups.py +0 -144
  664. boost_skill_cli-1.2.30/tests/unit/test_workflow_push_has_credentials.py +0 -140
  665. boost_skill_cli-1.2.30/tests/unit/test_workflow_timeouts.py +0 -73
  666. boost_skill_cli-1.2.30/tests/unit/test_workflows.py +0 -297
  667. boost_skill_cli-1.2.30/tests/unit/test_zizmor_ignores_still_anchor.py +0 -118
  668. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.gitattributes +0 -0
  669. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.gitignore +0 -0
  670. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.gitleaks.toml +0 -0
  671. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.htmlvalidate.json +0 -0
  672. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.lighthouserc.json +0 -0
  673. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.lycheeignore +0 -0
  674. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.markdownlint-cli2.jsonc +0 -0
  675. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.pre-commit-config.yaml +0 -0
  676. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.stylelintrc.json +0 -0
  677. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.vale/styles/boost/AIWriting.yml +0 -0
  678. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.vale/styles/boost/Terminology.yml +0 -0
  679. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/.vale.ini +0 -0
  680. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/CODE_OF_CONDUCT.md +0 -0
  681. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/DCO +0 -0
  682. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/GOVERNANCE.md +0 -0
  683. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/LICENSE +0 -0
  684. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/MAINTAINERS.md +0 -0
  685. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/MANIFEST.in +0 -0
  686. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/SECURITY.md +0 -0
  687. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/SUPPORT.md +0 -0
  688. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/boost_cli/data/registries.json +0 -0
  689. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/boost_cli/data/rules/boost-first.mdc +0 -0
  690. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/boost_langchain/py.typed +0 -0
  691. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  692. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  693. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/boost_skill_cli.egg-info/requires.txt +0 -0
  694. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/boost_skill_cli.egg-info/top_level.txt +0 -0
  695. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/codecov.yml +0 -0
  696. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/.claude/settings.local.json +0 -0
  697. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/DEBUGGING.md +0 -0
  698. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/adapters.html +0 -0
  699. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/architecture/README.md +0 -0
  700. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/architecture/c4-components-core.md +0 -0
  701. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/architecture/c4-containers.md +0 -0
  702. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/architecture/c4-context.md +0 -0
  703. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/architecture/c4-dynamic-install.md +0 -0
  704. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/gifs/distill.gif +0 -0
  705. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/gifs/doctor.gif +0 -0
  706. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/gifs/explain.gif +0 -0
  707. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/gifs/hooks.gif +0 -0
  708. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/gifs/install.gif +0 -0
  709. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/gifs/pulse.gif +0 -0
  710. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/gifs/search.gif +0 -0
  711. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/gifs/tap.gif +0 -0
  712. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/tapes/distill.tape +0 -0
  713. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/tapes/doctor.tape +0 -0
  714. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/tapes/explain.tape +0 -0
  715. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/tapes/hooks.tape +0 -0
  716. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/tapes/install.tape +0 -0
  717. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/tapes/pulse.tape +0 -0
  718. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/tapes/search.tape +0 -0
  719. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/carousel/tapes/tap.tape +0 -0
  720. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/chat.html +0 -0
  721. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/commit-audit.md +0 -0
  722. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/demo-index.json +0 -0
  723. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/demo.gif +0 -0
  724. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/demo.html +0 -0
  725. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/demo.tape +0 -0
  726. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/dependencies.md +0 -0
  727. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/design-roadmap.html +0 -0
  728. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/eval-latest.json +0 -0
  729. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/eval.html +0 -0
  730. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/langchain.html +0 -0
  731. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/mcp-hub.html +0 -0
  732. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/openssf-playbook.md +0 -0
  733. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D01.md +0 -0
  734. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D02.md +0 -0
  735. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D03.md +0 -0
  736. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D04.md +0 -0
  737. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D05.md +0 -0
  738. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D06.md +0 -0
  739. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D07.md +0 -0
  740. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D08.md +0 -0
  741. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D09.md +0 -0
  742. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D10.md +0 -0
  743. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D11.md +0 -0
  744. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D12.md +0 -0
  745. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D13.md +0 -0
  746. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D14.md +0 -0
  747. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D15.md +0 -0
  748. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D16.md +0 -0
  749. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D17.md +0 -0
  750. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D18.md +0 -0
  751. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D19.md +0 -0
  752. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D20.md +0 -0
  753. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D21.md +0 -0
  754. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D22.md +0 -0
  755. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D23.md +0 -0
  756. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D24.md +0 -0
  757. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D25.md +0 -0
  758. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/BOOST-D26.md +0 -0
  759. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  760. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  761. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  762. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  763. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  764. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  765. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  766. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  767. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  768. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  769. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  770. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  771. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  772. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  773. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/boost-first-rule.md +0 -0
  774. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  775. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  776. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  777. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  778. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  779. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  780. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  781. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  782. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  783. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  784. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  785. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  786. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  787. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  788. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  789. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  790. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  791. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  792. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  793. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  794. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/command-carousel-page.md +0 -0
  795. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  796. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  797. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  798. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  799. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  800. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  801. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  802. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  803. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  804. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  805. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  806. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  807. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  808. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  809. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  810. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  811. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  812. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  813. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  814. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  815. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  816. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  817. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  818. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  819. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  820. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  821. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  822. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  823. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  824. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  825. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  826. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  827. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  828. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  829. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  830. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  831. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  832. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  833. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  834. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  835. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  836. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  837. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  838. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  839. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  840. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  841. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/github-community-health-files.md +0 -0
  842. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  843. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  844. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  845. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  846. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  847. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  848. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  849. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  850. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  851. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  852. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  853. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  854. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  855. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  856. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  857. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  858. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  859. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  860. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  861. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  862. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  863. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  864. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  865. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  866. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  867. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  868. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  869. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  870. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  871. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  872. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  873. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  874. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  875. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  876. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  877. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  878. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  879. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  880. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  881. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  882. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  883. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  884. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  885. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  886. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  887. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  888. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  889. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  890. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  891. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  892. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  893. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  894. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  895. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  896. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  897. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  898. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  899. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  900. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  901. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  902. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  903. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  904. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  905. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  906. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  907. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  908. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  909. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  910. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  911. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  912. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  913. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  914. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  915. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  916. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/openssf-playbook.md +0 -0
  917. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/openssf-silver.md +0 -0
  918. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  919. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  920. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  921. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  922. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  923. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  924. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  925. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  926. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  927. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  928. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  929. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  930. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  931. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  932. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  933. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  934. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  935. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  936. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  937. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  938. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  939. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  940. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  941. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  942. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  943. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  944. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  945. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  946. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  947. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  948. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  949. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  950. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  951. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  952. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  953. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  954. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  955. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  956. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  957. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  958. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  959. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  960. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  961. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  962. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  963. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  964. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  965. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  966. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  967. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  968. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  969. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  970. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  971. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  972. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  973. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  974. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  975. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  976. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  977. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  978. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  979. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  980. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  981. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  982. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  983. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  984. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  985. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  986. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  987. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  988. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  989. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  990. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  991. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  992. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  993. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  994. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  995. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  996. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  997. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  998. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  999. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  1000. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  1001. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  1002. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  1003. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  1004. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  1005. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  1006. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  1007. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  1008. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  1009. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  1010. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  1011. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  1012. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  1013. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  1014. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  1015. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  1016. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  1017. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  1018. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  1019. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  1020. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  1021. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  1022. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  1023. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  1024. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  1025. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/workspace-scope-install.md +0 -0
  1026. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/zip-strict-audit.md +0 -0
  1027. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  1028. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  1029. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  1030. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/eslint.config.mjs +0 -0
  1031. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/evals/README.md +0 -0
  1032. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/evals/baseline.json +0 -0
  1033. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/evals/golden_set.json +0 -0
  1034. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/examples/README.md +0 -0
  1035. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/examples/adapt-demo.sh +0 -0
  1036. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/examples/boost-run-prototype.sh +0 -0
  1037. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/index.html +0 -0
  1038. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/coverage-tools.in +0 -0
  1039. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/coverage-tools.txt +0 -0
  1040. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/lint-tools.in +0 -0
  1041. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/lint-tools.txt +0 -0
  1042. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/mutation-tools.in +0 -0
  1043. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/mutation-tools.txt +0 -0
  1044. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/platform-pins.lock +0 -0
  1045. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/release-tools.in +0 -0
  1046. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/release-tools.txt +0 -0
  1047. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/test-tools.in +0 -0
  1048. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/requirements/test-tools.txt +0 -0
  1049. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/scripts/mutation_weights.json +0 -0
  1050. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/sonar-project.properties +0 -0
  1051. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/style/README.md +0 -0
  1052. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/style/boost.css +0 -0
  1053. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/style/boost.js +0 -0
  1054. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/style/demo.html +0 -0
  1055. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/adapt.feature +0 -0
  1056. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/browse.feature +0 -0
  1057. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/count.feature +0 -0
  1058. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/discover.feature +0 -0
  1059. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/doctor.feature +0 -0
  1060. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/explain.feature +0 -0
  1061. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/index.feature +0 -0
  1062. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/install.feature +0 -0
  1063. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/list.feature +0 -0
  1064. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/mcp.feature +0 -0
  1065. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/bdd/features/search.feature +0 -0
  1066. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/eval/baseline.json +0 -0
  1067. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/eval/explain.jsonl +0 -0
  1068. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/eval/golden-natural.jsonl +0 -0
  1069. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/eval/golden.jsonl +0 -0
  1070. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/eval/recommend.jsonl +0 -0
  1071. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/eval/taps-scale.txt +0 -0
  1072. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/eval/taps.txt +0 -0
  1073. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/README.md +0 -0
  1074. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  1075. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  1076. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  1077. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  1078. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  1079. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  1080. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  1081. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  1082. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  1083. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  1084. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  1085. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  1086. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  1087. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  1088. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  1089. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  1090. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  1091. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  1092. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  1093. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  1094. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  1095. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  1096. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  1097. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/visual/a11y_check.mjs +0 -0
  1098. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/visual/console_check.mjs +0 -0
  1099. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/visual/package-lock.json +0 -0
  1100. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/visual/package.json +0 -0
  1101. {boost_skill_cli-1.2.30 → boost_skill_cli-1.2.32}/tests/visual/visual_check.mjs +0 -0
@@ -0,0 +1,187 @@
1
+ ABM
2
+ agentic
3
+ Algolia
4
+ allowlist
5
+ allowlisted
6
+ argparse
7
+ Arize
8
+ ASan
9
+ Attio
10
+ Autofix
11
+ autofix
12
+ Backfilling
13
+ backfilling
14
+ backport
15
+ backported
16
+ backtick
17
+ backticks
18
+ Bagisto
19
+ basename
20
+ basenames
21
+ bestpractices
22
+ bmad
23
+ bookended
24
+ Camunda
25
+ CI's
26
+ CLIs
27
+ Codecov
28
+ codespell
29
+ ColdIQ
30
+ config
31
+ configs
32
+ CPython
33
+ CRM
34
+ cyclomatic
35
+ Dependabot
36
+ deps
37
+ deserialization
38
+ Dev
39
+ DigitalOcean
40
+ docsite
41
+ docstring
42
+ dotdir
43
+ dotdirs
44
+ dotfiles
45
+ DSPy
46
+ else's
47
+ env
48
+ eval
49
+ evals
50
+ freemium
51
+ frontmatter
52
+ fuzzer
53
+ GEO
54
+ GIF
55
+ gitignored
56
+ gitleaks
57
+ GitOps
58
+ glassmorphic
59
+ Grafana
60
+ GTM
61
+ gzip
62
+ gzipped
63
+ hardcode
64
+ Helm
65
+ hotspots
66
+ Huashu
67
+ HubSpot
68
+ idempotently
69
+ JetBrains
70
+ jonnyeclectic
71
+ jonnyeclectic's
72
+ Kotlin
73
+ langchain
74
+ Langfuse
75
+ LeadMagic
76
+ libFuzzer
77
+ libsodium
78
+ lookups
79
+ lowercasing
80
+ Magento
81
+ maintainer's
82
+ mcp
83
+ mergeable
84
+ minisign
85
+ misconfiguration
86
+ mitigations
87
+ MLflow
88
+ mtime
89
+ mtimes
90
+ mutmut
91
+ mypy
92
+ nonces
93
+ npm
94
+ onboards
95
+ OpenShift
96
+ OpenSSF
97
+ overclaiming
98
+ Pinecone
99
+ pipx
100
+ plaintext
101
+ prehash
102
+ PrestaShop
103
+ Pulumi
104
+ pytest
105
+ Qdrant
106
+ Quarkus
107
+ rebased
108
+ reimplement
109
+ reimplemented
110
+ reimplements
111
+ reindex
112
+ repo
113
+ repo's
114
+ repos
115
+ Rerank
116
+ rerank
117
+ reranking
118
+ rescan
119
+ rescanned
120
+ rescans
121
+ RevOps
122
+ ruleset
123
+ Rulesets
124
+ rulesets
125
+ Salesforce
126
+ Saltzer
127
+ sandboxed
128
+ sandboxing
129
+ scrollbar
130
+ sdist
131
+ SEO
132
+ setuptools
133
+ SHAs
134
+ Shopify
135
+ Sigstore
136
+ Snyk
137
+ SonarCloud
138
+ stderr
139
+ Stdlib
140
+ stdlib
141
+ stdout
142
+ stemmer
143
+ stemming
144
+ subagents
145
+ subcommand
146
+ subprocess
147
+ tappable
148
+ teardown
149
+ tempdir
150
+ textarea
151
+ toggleable
152
+ Tokenization
153
+ tokenization
154
+ toolchain
155
+ toolkits
156
+ traceback
157
+ tracebacks
158
+ triaged
159
+ triages
160
+ typosquat
161
+ typosquatted
162
+ unkilled
163
+ unlinking
164
+ unpatched
165
+ unregister
166
+ unremediated
167
+ unstaged
168
+ untap
169
+ untrusted
170
+ uv
171
+ Vaadin
172
+ Valgrind
173
+ vendored
174
+ vendoring
175
+ venv
176
+ venvs
177
+ VHS
178
+ vLLM
179
+ Weaviate
180
+ webfont
181
+ WooCommerce
182
+ wordmark
183
+ worktree
184
+ worktrees
185
+ Zapier
186
+ zizmor
187
+ zsh
@@ -0,0 +1,483 @@
1
+ # CLAUDE.md — working rules for the boost workspace
2
+
3
+ boost is a "Homebrew for AI coding skills": a Python CLI (`boost_cli`) that finds,
4
+ installs, and governs the skill/rule/workflow files that AI coding agents run on.
5
+ Package name on PyPI is `boost-skill-cli`; the command is `boost`.
6
+
7
+ ## Common commands
8
+
9
+ ```bash
10
+ make venv # .venv from the hash-pinned requirements/*.txt
11
+ .venv/bin/pytest tests/unit/test_catalog.py -q # one test file
12
+ .venv/bin/pytest tests/unit/test_catalog.py::test_scan_dir -q # one test
13
+ .venv/bin/pytest tests/functional -q -k install # functional tests matching "install"
14
+ make lint # the whole static tier — read the recipe, it is long
15
+ make test # unit + functional with 90% coverage gate
16
+ make check # the full required gate — see table below
17
+
18
+ # run boost itself against a disposable HOME (never your real ~/.boost):
19
+ export HOME=/tmp/boost-sandbox && mkdir -p $HOME
20
+ python3 tests/make_fixture.py /tmp/fixture-tap
21
+ ./boost tap /tmp/fixture-tap
22
+ ./boost install brainstorming
23
+ ./boost doctor
24
+ ```
25
+
26
+ `make venv` installs from `requirements/*.txt`, which are hash-pinned and are the
27
+ same files CI installs (`scripts/lock_toolchain.py --check` gates them against
28
+ drift) — so a dev venv and a runner resolve to identical bytes. Don't `pip
29
+ install` a lint or test tool by hand; add it to the right requirements file and
30
+ regenerate the lock, or `make lint` passes for you and fails in CI.
31
+
32
+ The functional/unit `sandbox` fixture (`tests/conftest.py`) also sets
33
+ `BOOST_NO_AI=1` and `BOOST_ASSUME_YES=1` so tests are deterministic and never
34
+ block on a confirm prompt or a real AI call — override explicitly in a test
35
+ that means to exercise the AI or confirmation path.
36
+
37
+ ## The one gate that matters
38
+
39
+ Before calling any change done, run the full gate:
40
+
41
+ ```bash
42
+ make check # == lint eval test smoke mutation
43
+ ```
44
+
45
+ It is five gates and **all must pass**:
46
+
47
+ | Gate | Command | Threshold |
48
+ |------------|------------------------------------------------|-----------|
49
+ | `lint` | `ruff check boost_cli tests` + `mypy` | zero errors |
50
+ | `eval` | `ensure_eval_corpus.sh` + `eval_retrieval.py --build -k 10` with four floors | BM25 recall@k **≥ 0.78**, hit@1 ≥ 0.40, MRR ≥ 0.52, nDCG@k ≥ 0.58 |
51
+ | `test` | `pytest tests/unit tests/functional --cov` | **90%** coverage (`fail_under = 90`, `branch = true`) |
52
+ | `smoke` | `bash tests/smoke.sh` | 0 failed |
53
+ | `mutation` | `python3 scripts/mutation_gate.py --run --min 80` | **80%** of `boost_cli/core` mutants killed |
54
+
55
+ The `eval` gate is the Tier 1 retrieval-quality check: it runs boost's RAG
56
+ engines over the golden set (`tests/eval/golden.jsonl`) and floors **four**
57
+ metrics on BM25 — recall@k, hit@1, MRR and nDCG@k. Flooring recall alone was a
58
+ hole rather than a simplification: a ranker that finds the right answer every
59
+ time and never ranks it first scores recall@10 1.000 with hit@1 0.000, and
60
+ passed. The golden set grades real catalog items **by name**, so it needs a
61
+ corpus: `scripts/ensure_eval_corpus.sh` first taps the pinned repo list in
62
+ `tests/eval/taps.txt` (the minimal set covering all golden targets — `boost tap
63
+ --defaults` is NOT enough, it omits every rule/workflow repo). The list is
64
+ **twenty** repos: the first six cover every golden target, the rest exist so the
65
+ corpus is a realistic size. That matters more than it sounds — over the six
66
+ alone (743 entries) BM25 scores 0.978 / 0.791 / 0.854 / 0.882, and over the
67
+ twenty (10,152) it scores **0.852 / 0.473 / 0.605 / 0.657** on the same golden
68
+ set, so three of the four old floors fail once the corpus stops being tiny.
69
+
70
+ **The ranked list de-duplicates on the content hash, not the name.** A grade key
71
+ decides both relevance and identity, and keying identity on the name collapsed
72
+ 13 different skills called `code-reviewer` into one rank slot — crediting the
73
+ ranker with a compression that existed only in the scoring code, and worth about
74
+ one query of recall@10. That is where the old "recall is 1.000" folklore came
75
+ from; the six-repo corpus measures 0.978 once mirrors collapse and homonyms do
76
+ not. Relevance is still decided by name (or by content class when a golden row
77
+ pins an `exemplar`), so the sets can migrate a row at a time.
78
+
79
+ Each floor sits ~10% under its measured value — loose enough that upstream drift
80
+ can't flake the build, tight enough to catch a collapse. Regression-vs-baseline
81
+ stays relaxed (`--regression-eps 1`), so the absolute floors are the real gate.
82
+
83
+ **Every row of `taps.txt` pins a commit SHA**, and `scripts/eval_corpus.py`
84
+ checks each clone out at it — the corpus is 10,152 entries, of which one
85
+ third-party repo is 6,309 (62%), so an unpinned list left a required check
86
+ hostage to someone else's push. CI and `make eval` must invoke the gate with
87
+ identical floors; `tests/unit/test_eval_corpus.py` fails the build if they
88
+ diverge, which they had (CI floored recall alone at 0.85 against a measured
89
+ 0.863 — a buffer of 1.15 queries out of 91 — and applied none of the other
90
+ three). Moving a pin means regenerating the baseline; the file says how.
91
+
92
+ **Baselines are keyed by query set** (`name@content-digest`), so one file holds
93
+ both `golden.jsonl` and `golden-natural.jsonl` without either overwriting the
94
+ other. Before that, running the natural-language set printed eight confident
95
+ "REGRESSION vs baseline" lines that were only the gap between two different
96
+ question sets. Add `--floor NAME=VALUE` (repeatable) to gate any metric; a
97
+ misspelled metric name is a hard error rather than a silently skipped floor.
98
+ Edit `taps.txt` → regenerate `tests/eval/baseline.json`. It runs in CI's
99
+ `lint` job (pure-stdlib BM25, no `ANTHROPIC_API_KEY`; needs network to tap). The
100
+ opt-in evals stay out of `check` and all degrade cleanly:
101
+
102
+ - `make eval-ai` / `eval-rec` — key-gated LLM evals (Tier 2a rerank / 2b recommend).
103
+ - `make eval-stats` — Tier 1b `ranx` paired-t-test between engines (`--stats`).
104
+ - `make eval-explain` — Tier 2c `ragas` faithfulness for `boost explain`; needs
105
+ the `[eval]` extra **and** a judge key (`OPENAI_API_KEY`, or `ANTHROPIC_API_KEY`
106
+ with `langchain-anthropic`) plus boost AI to generate the explanations.
107
+
108
+ The `[eval]` extra (`pip install -e '.[eval]'`) carries `ranx` + `ragas`; nothing
109
+ in it is ever imported by the CLI or the required gate. It pins the langchain 0.3
110
+ stack because ragas 0.2.x breaks against langchain ≥1.0 — an isolated cost of the
111
+ ragas dependency.
112
+
113
+ New/changed core logic needs tests that both cover it *and* kill mutants —
114
+ untested code counts as unkilled mutants, so the mutation gate fails even at 80%
115
+ line coverage. Target `boost_cli/core` behavior with assertions, not just imports.
116
+
117
+ ## Non-obvious rules
118
+
119
+ - **`boost_cli/data/registries.json` is GENERATED — never hand-edit it.** The
120
+ source of truth is `scripts/build_registries.py` (the `SKILLS` / `RULES` /
121
+ `WORKFLOWS` tuples). Edit those, then regenerate:
122
+ `python3 scripts/build_registries.py`. Each row is
123
+ `(owner/repo, category, focus, est_items, confidence)`. Add awesome-list repos
124
+ to `LIST_ONLY` so item-count math stays honest. Verify a repo is real
125
+ (`gh api repos/<owner/repo>`) before adding it.
126
+ - **`est_items` is measured, and `len(scan_dir(repo))` is not the measurement.**
127
+ Run `python3 scripts/measure_registry.py <clone>`; it hashes each item's body
128
+ with the frontmatter dropped and agent dotdir tokens normalized, so one skill
129
+ rendered into `.claude/`, `.cursor/`, `.gemini/`, … counts once. Registries
130
+ increasingly ship a copy per agent: a raw walk of `pbakaus/impeccable` finds
131
+ 40 items for the 9 it has, and `Owl-Listener/ai-design-skills` shipped as 80
132
+ for years because `claude-plugin/<pack>/commands/x.md` and
133
+ `commands/<pack>/x.md` were counted as two commands.
134
+ `measure_registry.py --self-check ~/.boost/repos` re-derives committed counts
135
+ from local clones, so the convention stays falsifiable.
136
+ - **Category comes from the names of the items a repo ships, not its README or
137
+ its own name.** `bergside/awesome-design-skills` reads like an index and is a
138
+ 67-item visual-style corpus (`brutalism`, `claymorphism`, `bento`);
139
+ `Owl-Listener/ai-design-skills` reads like design and is prompt/agent design
140
+ (`chain-of-thought-design`, `guardrail-design`), so it is `ai`, not `ui`.
141
+ `tests/unit/test_registry_categories.py::TestDesignDomain` pins both
142
+ directions.
143
+ - **A tap clone holds Markdown and nothing else.** Taps clone
144
+ `--filter=blob:none --sparse` with a cone covering exactly what
145
+ `catalog.scan_dir` opens (`gitutil.SPARSE_PATTERNS`, pinned against catalog's
146
+ own constants by `tests/unit/test_gitutil_sparse.py` — `gitutil` can't
147
+ import `catalog`, `catalog` imports `gitutil`). 458 taps held 12 GB to index
148
+ 1.9 GB of Markdown; `Shopify/agent-skills` was 611 MB for its 30 SKILL.md
149
+ files and is 11 MB under the cone, with a byte-identical catalog. So
150
+ **anything reading a tap's real files must go through
151
+ `store.source_dir_for`**, which calls
152
+ `gitutil.materialize` first — a skill's own `scripts/`/`assets/` sit outside
153
+ the cone, and `_copy_skill` is a `copytree` that would copy the half of the
154
+ directory that exists and report success. Use `sparse-checkout add`, never
155
+ `set`: `set` replaces the pattern list and un-fetches every skill materialized
156
+ before it. `boost import` clones `sparse=False` — it reads the whole repo.
157
+ `boost compact` narrows clones that predate this (offline; measured 177 MB →
158
+ 93 MB), and must `update-index --refresh` first, because git silently declines
159
+ to remove a path whose stat data looks dirty and otherwise reports success
160
+ having changed nothing.
161
+ - **`~/.boost/cache/` holds boost's own indexes, not just tap catalogs.**
162
+ `paths.INTERNAL_CACHE_FILES` names them. `boost clean` sweeps `cache/*.json`
163
+ whose stem is not a configured tap, which described `rag_index.json` and
164
+ `discovery.json` perfectly — it deleted the BM25 index on every run, and
165
+ rebuilding it re-parses every tap catalog on the machine (~71k items). A new
166
+ derived artifact goes in that set or `tests/unit/test_clean_internal_cache.py`
167
+ fails.
168
+ - **Sandbox tests via env, and export separately.** boost state lives under
169
+ `HOME`/`BOOST_HOME`; tests point them at a tempdir. In zsh, one-line chains
170
+ like `export A=$(...) B=$A/x` leave `B` broken — use separate `export`
171
+ statements.
172
+ - **Versioning is setuptools-scm from git tags.** There is no `__version__`
173
+ constant and `boost_cli/_version.py` is generated + gitignored. Don't hardcode
174
+ or assert exact versions; version tests are shape-only (`^boost \S+$`). The
175
+ publish workflow filename must stay `publish.yml` (PyPI Trusted Publisher
176
+ matches on it).
177
+ - **Target Python ≥ 3.12** (`requires-python = ">=3.12"`). Structural pattern
178
+ matching and runtime `X | Y` unions are now legal. The `typing.List` → `list`
179
+ sweep is **done**: UP006/UP035/UP045 are selected, not ignored, and report zero
180
+ violations. (This entry described the sweep as deferred long after it landed —
181
+ measure before trusting a "not done yet" note.) `UP031` printf-formatting *is*
182
+ still ignored, and deliberately: it is an unsafe fix over ~1,000 call sites in
183
+ `boost_cli` alone. Write new code in the modern style; don't bulk-rewrite old
184
+ code in an unrelated PR.
185
+ - **A catalog entry has two identities, and they are not interchangeable.**
186
+ *Row* identity is `(tap, skill_md)` (`rag.entry_key`) — which file, in which
187
+ tap. *Content* identity is `entry["content"]`, a truncated sha256 of
188
+ `name + "\n" + description + "\n" + body` stamped by `catalog._content_digest`
189
+ at scan time. Use the row key to address a row and the digest to ask whether
190
+ two rows are the same thing. The digest must stay byte-identical to what
191
+ `rag.read_body` assembles — `tests/unit/test_content_identity.py` pins the
192
+ parity, because a digest that drifts keeps *looking* right while clustering
193
+ nothing. Name-based keys are wrong at both layers: over 60,047 real entries,
194
+ hashing the body alone merges 259 clusters spanning different names, and
195
+ name+description over-collapses 3,383 clusters of genuinely different prose.
196
+ Consumers must degrade cleanly when `content` is absent (a cache written
197
+ before `CACHE_FORMAT`, or a synthesised entry) — and must never treat two
198
+ absences as a match.
199
+ - **The tap cache is versioned; bump `catalog.CACHE_FORMAT` to backfill.** It is
200
+ how a new entry field reaches 460 caches on a real machine without a re-tap:
201
+ `load_tap` rescans a stale cache *when the clone is still there*, and serves
202
+ the stale entries as-is when it is not. Never make a stale cache an error —
203
+ that trades a missing field for a missing catalogue.
204
+ - **Three item kinds, one scanner.** `core/catalog.scan_dir` indexes `skill`
205
+ (SKILL.md), `rule` (.mdc/.cursorrules/.windsurfrules/.clinerules), and
206
+ `workflow` (commands/agents/workflows Markdown). **All three install**, and
207
+ each honors `scope`: `store.install` dispatches to `_install_rule` /
208
+ `_install_workflow` and only raises for a kind outside those three. They land
209
+ in different places, which is the part to get right — a skill is copied into
210
+ the canonical store and symlinked out, a rule is materialised into each
211
+ agent's context file (`rules.CONTEXT_FILES`, e.g. `~/.claude/CLAUDE.md`), and
212
+ a workflow is rendered per agent (TOML for Gemini, see
213
+ `workflows.TOML_COMMAND_AGENTS`). Installing a rule therefore edits a file the
214
+ user reads every session — treat it as more invasive than a skill, not less.
215
+ - **A long line is either chrome or data, and only chrome may be wrapped.**
216
+ `out.wrap()` folds prose to the pane, and the emitters take it opt-in —
217
+ `warn`/`info`/`dim`/`kv` accept `wrap=True` and each pays for its own prefix,
218
+ so continuations align under the message rather than folding to column zero.
219
+ It is opt-in because always-on wrapping would fold the lines that must stay
220
+ long: `pulse`'s `source=` paths and `fingerprint`'s 64-character hash are the
221
+ information the line exists to carry, and a hash split across two lines
222
+ cannot be compared by eye. **A backtick span is one atomic token**, spaces
223
+ and all — `doctor` and `search` both interpolate `dense.fix_hint()`, whose
224
+ answers end in `pip install 'boost-skill-cli[rag]'`, and a wrap that splits
225
+ that hands the user a command which does not run. A token wider than the pane
226
+ overflows whole rather than breaking. Wrap *before* adding color: `out.role`
227
+ brackets its argument with a start code and a reset, so coloring first and
228
+ splitting after leaves line one unterminated and line two plain. And
229
+ budget the emitter's own indent — wrapping to the full `term_width()` and
230
+ then letting `out.info` add two spaces is what put `boost search`'s hint one
231
+ column past the pane it had just been fitted to.
232
+
233
+ - **A new source file needs the licence header, and a new prose file needs
234
+ adding to the vale list.** Every `.py`/`.sh` under `boost_cli`,
235
+ `boost_langchain`, `evals`, `scripts`, `tests` plus `./boost` and
236
+ `noxfile.py` opens with `# Copyright the boost contributors.` and
237
+ `# SPDX-License-Identifier: GPL-3.0-only`. Run
238
+ `python3 scripts/add_spdx_headers.py` (idempotent) — the file list and the
239
+ expression live there, so changing `-only` to `-or-later` is one edit rather
240
+ than 314. Separately, `prose-lint.yml` names the Markdown files vale checks
241
+ **explicitly**: a new doc that is not added to that list is never linted, and
242
+ `make lint` will not tell you.
243
+
244
+ - **Sub-actions of one action repo move in lockstep.** `github/codeql-action/{init,
245
+ analyze,upload-sarif}` and `actions/cache{,/save,/restore}` are each *one repo at
246
+ one commit*, but Dependabot tracks one `uses:` path as one dependency and raises a
247
+ PR per sub-action — none of which can be merged on its own (`init` stamps its
248
+ version into the config and `analyze` rejects another release's). `.github/
249
+ dependabot.yml` groups them so a release arrives as one PR;
250
+ `tests/unit/test_action_pin_lockstep.py` fails the build if a split lands anyway,
251
+ and is parametrised over the families the workflows use, so a new multi-path
252
+ action must be grouped before it passes. Bump all of a family's pins together, to
253
+ the **peeled** commit SHA (`git ls-remote … 'refs/tags/vX.Y.Z^{}'`) or zizmor's
254
+ `ref-version-mismatch` fails the PR.
255
+
256
+ ## Parallel work & concurrent loops
257
+
258
+ More than one agent (or `/loop` session) may be working this repo at once. To
259
+ keep them from clobbering each other:
260
+
261
+ - **Never edit a checkout that has someone else's branch checked out.** The user
262
+ works live in `~/boost`; long-running loops use a separate `git worktree`
263
+ (e.g. `~/boost-loop`, which needs its **own** `.venv` because mutmut wants an
264
+ editable `pip install -e .` pointed at that tree). Run `git worktree list` and
265
+ `git status` before touching a tree — staged or unstaged changes mean another
266
+ agent is mid-edit there, so pick a different worktree.
267
+ - **Branch off `origin/main`, one topic per branch.** `git fetch origin main`
268
+ then `git checkout -B loop/<topic> origin/main`. Keep changes additive and
269
+ file-scoped so parallel branches merge without conflicts.
270
+ - **Coordinate through PRs, not the working tree.** `gh pr merge` is server-side
271
+ and won't touch anyone's local checkout. Before committing a file, inspect
272
+ `git status` / `git diff` — if another session has it staged or dirty, leave
273
+ it to that owner rather than committing over their in-flight work.
274
+ - **Every merge to `main` cuts a PyPI release.** Land one coherent change per PR,
275
+ never merge onto a red release, and after merging confirm the publish workflow
276
+ goes green — not just the PR checks.
277
+
278
+ ### The roadmap is data-driven — add items, never hand-edit the HTML
279
+
280
+ `docs/roadmap.html` is **generated** from one file per item under
281
+ `docs/roadmap/items/*.md` by `scripts/build_roadmap.py` (this is what stopped the
282
+ roadmap being the repo's #1 merge-conflict source). To add or change a card:
283
+
284
+ 1. Create/edit `docs/roadmap/items/<id>.md` — a Markdown-with-frontmatter file
285
+ (`id, board: code, section, status, category, complexity, impact, wow, note,
286
+ order, owner, pr, title` + the card body after the `---`).
287
+ 2. Run `python3 scripts/build_roadmap.py` (or `make generate`) and commit both
288
+ the item file and the regenerated HTML. Counters ("Loop finds" etc.) are
289
+ **computed** — never hand-type them.
290
+
291
+ Never hand-edit the `<article>` cards or snapshot counters in `docs/roadmap.html`:
292
+ CI's `build_roadmap.py --check` and `tests/unit/test_roadmap_fresh.py` fail on
293
+ drift. Two loops adding two items now touch two *different files* → clean merge.
294
+
295
+ **Claiming an item (so two loops never pick the same one):** set `status:` and
296
+ `owner: loop/<topic>` in that item's file on your branch and open the PR. Two
297
+ loops claiming *different* items edit different files (no conflict); two loops
298
+ claiming the *same* item edit the same small file, so the second merge conflicts —
299
+ the intended "already claimed" signal, first-to-merge wins.
300
+
301
+ Both boards are data-driven: `docs/roadmap.html` from `board: code` items and
302
+ `docs/design-roadmap.html` from `board: design` items (track/impact/wow, rendered
303
+ into the per-track sections; the filter JS and counters are computed). Same rule
304
+ for both — edit items, run `build_roadmap.py`, never touch the HTML by hand.
305
+
306
+ ## Architecture
307
+
308
+ **CLI dispatch.** `boost_cli/cli.py` holds `COMMANDS`, the single
309
+ source-of-truth list of `(name, group, module, summary)` for all 80 commands.
310
+ Each command is implemented as `def cmd_<name_with_underscores>(argv) -> int`
311
+ inside `boost_cli/commands/<module>.py`, and `_dispatch` imports that module
312
+ lazily on invocation — so `boost --help` stays instant and command modules are
313
+ decoupled from each other. To add a command: add a row to `COMMANDS`, add the
314
+ `cmd_*` function to the named module, and it's live. `docs/commands.html` is
315
+ **generated** from `COMMANDS` by `scripts/build_command_reference.py`, so a new
316
+ row means regenerating it (`make generate`) or the `--check` gate fails.
317
+
318
+ **commands/ vs core/.** `boost_cli/commands/` is thin CLI glue — argument
319
+ parsing, output formatting, calling into `core/`. `boost_cli/core/` is the
320
+ actual engine (catalog scanning, install/link logic, the lock file, registries,
321
+ search) and is what the mutation gate targets — put behavior there, not in
322
+ the command layer, so it's covered by both the unit suite and mutation
323
+ testing.
324
+
325
+ **Storage layout**, all resolved at call time from `$HOME` (or `$BOOST_HOME`)
326
+ in `boost_cli/core/paths.py`, which is what makes `HOME=<tempdir>` sandboxing
327
+ work in tests and the dev loop:
328
+
329
+ ```text
330
+ ~/.boost/repos/ blobless, sparse git clones of tapped registries
331
+ ~/.boost/cache/ JSON catalogs built from SKILL.md/rule/workflow frontmatter
332
+ ~/.boost/logs/ rotating diagnostic log + crash reports
333
+ ~/.boost/state/ pins, tags, policy, profiles, pulse feed, snapshots
334
+ ~/.boost/config.json
335
+ ~/.agents/skills/ canonical store — single source of truth for installed skills
336
+ ~/.agents/skills/.skill-lock.json v3 lock file
337
+ ~/.claude/skills/ ~/.windsurf/skills/ ~/.cursor/skills/ symlinked out from the canonical store
338
+ ~/.gemini/ rules (GEMINI.md) + workflows only — see below
339
+ ```
340
+
341
+ **Four agent targets, but only three get symlinks.** Gemini CLI implements the
342
+ Agent Skills standard and discovers `~/.agents/skills` — the canonical store —
343
+ *directly*, so it is configured with `links_skills: false`. Linking into
344
+ `~/.gemini/skills` too would put one skill in two of its discovery tiers, where
345
+ the `.agents` alias out-ranks whatever we linked, costing the user a "Skill
346
+ conflict detected" line per skill per session and buying nothing. Consequences
347
+ for code you write:
348
+
349
+ - Iterate `agents.linking_agents()` for anything symlink-shaped (link, unlink,
350
+ stale-link sweeps, coverage counts). `agents.enabled_agents()` is still right
351
+ for rules and workflows, which materialize into `~/.gemini/` like any other
352
+ agent's dotdir. `agents.native_store_agents()` is the complement, for reporting.
353
+ - **Boost not linking there does not mean nothing else does**, and the warning
354
+ costs the user the same either way. `store.duplicate_discovery()` walks
355
+ `native_store_agents()` for entries that resolve back into the canonical
356
+ store — one skill in two of that agent's discovery tiers, whoever wrote it.
357
+ On a real machine 24 of the 25 entries in `~/.gemini/skills` led to
358
+ `~/.claude/skills` directories boost does not manage, and one resolved into
359
+ the store, so the test is **topology, not ownership**: a sweep of "boost's
360
+ stale links" would have deleted two dozen files belonging to another tool.
361
+ `boost doctor` counts each hit as an issue; `boost heal` names them and
362
+ removes nothing; `boost heal --prune-duplicates` removes them, re-checking at
363
+ the point of deletion that the entry is still a symlink still resolving into
364
+ the store. A real directory is never touched.
365
+ - **`points_into_store` and `resolves_into_store` answer different questions.**
366
+ The first reads one `readlink()` because it judges *broken* links, where
367
+ there is nothing to resolve. The second follows the whole chain, because the
368
+ live shape is `~/.gemini/skills/x -> ../../.claude/skills/x -> the store` and
369
+ one hop lands in another agent's dir. It resolves **both sides**: on macOS a
370
+ `$HOME` under `/var/folders` resolves to `/private/var/...`, so resolving
371
+ only the target compares a real path against a nominal one and never matches.
372
+ - Per-agent *formats* differ and are pure functions in `core/`: `rules.CONTEXT_FILES`
373
+ maps an agent with no rules dir to its context file (`claude-code` → CLAUDE.md /
374
+ CLAUDE.local.md, `gemini` → GEMINI.md for both scopes), and
375
+ `workflows.TOML_COMMAND_AGENTS` marks agents whose slash commands are TOML.
376
+ Gemini's `commands/` slot is `.toml` (`workflows.render_gemini_command`); its
377
+ `agents/` slot stays verbatim Markdown. Getting that backwards produces a file
378
+ the agent silently never loads.
379
+ - `core/mcphost.py` holds the per-host `mcp add`/`remove` grammar. Claude and
380
+ Gemini disagree on name position, the `--` separator, and whether unregister
381
+ needs an explicit scope — all three verified against the real CLIs and pinned
382
+ by `tests/unit/test_mcphost.py`. Don't "simplify" them into one shape.
383
+ - **`core/hookhost.py` is the same idea for hooks, and two hosts have them.**
384
+ `boost hooks` writes Claude Code's `~/.claude/settings.json` (the default,
385
+ unchanged) or, behind `--host gemini`, the `~/.gemini/settings.json` that
386
+ Gemini CLI reads;
387
+ `core/claude_settings.py` takes `host=` throughout and asks the table for the
388
+ differences. The `hooks` key and the `{matcher, hooks: [{type, command,
389
+ timeout}]}` block shape are *identical* between them, which is exactly what
390
+ makes the three real differences easy to ship wrong:
391
+ - **`timeout` units.** Claude's is **seconds**; Gemini's is **milliseconds**
392
+ (`DEFAULT_HOOK_TIMEOUT = 6e4`, fed straight to `setTimeout`). Callers pass
393
+ seconds and `hookhost.hook_entry` converts, so boost's `--timeout 10` is ten
394
+ seconds on both. Gemini's own `hooks migrate --from-claude` copies the number
395
+ verbatim, which turns a 10-second Claude hook into a 10-**millisecond**
396
+ Gemini one; don't copy that.
397
+ - **Event names.** Only `SessionStart`, `SessionEnd` and `Notification` are
398
+ spelled alike. `CLAUDE_TO_GEMINI` maps all ten Claude events explicitly and
399
+ `tests/unit/test_hookhost.py` fails if one is missing. `SubagentStop` and
400
+ `SubagentStart` map to **`None`** — Gemini has no sub-agents, so boost
401
+ refuses the hook and says why. (The upstream `EVENT_MAPPING` means to fold
402
+ them into `AfterAgent` but keys `SubAgentStop`, a spelling Claude never
403
+ emits, so `migrate` writes an event Gemini can never fire.)
404
+ - **The `name` field.** Gemini's hook config takes one — it is what
405
+ `/hooks panel` shows and `/hooks enable <name>` targets — and Claude's does
406
+ not. The `# boost:<name>` command marker stays the ownership mechanism for
407
+ both; `name` is added on top for Gemini, never instead.
408
+ A `matcher` is **not** translated: `boost hooks add` is not porting a config,
409
+ so it stays host-native — for a Gemini tool event it is a regular expression
410
+ over *Gemini* tool names like `run_shell_command`, and for a lifecycle event
411
+ it is an exact string. All of this was established against Gemini CLI
412
+ 0.57.0's own bundle — the `docs/hooks/` it ships, the `HookEventName` list and
413
+ `EVENT_MAPPING` in the bundled JS, and an observed `migrate` run — and those
414
+ sources are named at the top of `hookhost.py` so the next person can re-check
415
+ them against a newer release.
416
+
417
+ `core/catalog.scan_dir` walks a tap's clone and classifies each file into one
418
+ of the three item kinds (see Non-obvious rules above); `core/store.py` owns
419
+ install, uninstall and sync — copying into the canonical store, symlinking into
420
+ each agent's skills dir, and updating the lock file.
421
+
422
+ **Search has two engines**, both in `core/`: `rag.py` is the always-on,
423
+ zero-dependency BM25 engine (full-content index, auto-builds on first
424
+ search — this is what the required `eval` gate floors at recall@k ≥ 0.78).
425
+ `dense.py` is optional dense/vector retrieval behind the `[rag]` extra —
426
+ **no API key required**: `embed.py` tries Voyage, then OpenAI, then a local
427
+ `BAAI/bge-small-en-v1.5` that ships with the extra, so a key is a quality
428
+ upgrade rather than the entry fee. When both engines are built, `retrieve_any`
429
+ fuses them with reciprocal rank fusion (`rag.rrf_fuse`, `RRF_K = 60`) and
430
+ reports `hybrid RRF`; it degrades to whichever single engine is ready, and to
431
+ BM25 alone otherwise. `dense.status()` names which of the three links (extra,
432
+ backend, built store) is missing, and `dense.fix_hint()` maps that to the one
433
+ next action — both `boost doctor` and `boost search` read that same table, so
434
+ they can't give contradictory advice.
435
+
436
+ **The dense store ranks twice, and `vec0` is why.** `sqlite-vec` has no ANN
437
+ index: a float32 `MATCH` scores *every* vector in the store, which on a real
438
+ 750,416-chunk / 1024-d install is 3.08 GB and **28.2 s per query** — it was ~85%
439
+ of a 33.9 s `boost search`. So a query runs a coarse pass over
440
+ `vec_chunks_bin` (binary-quantized, one bit per dimension — 114 MB, Hamming) and
441
+ re-ranks the top `RESCORE_POOL` (2048) on their exact float32 vectors from
442
+ `vec_raw`. Measured: **28.2 s → 1.05 s at recall@60 = 1.000** — the same rows in
443
+ the same order. Both stages are required: the binary pass alone recovers 0.667
444
+ of the true top 60, so deleting the rescore as an "optimization" is a quality
445
+ regression, and `tests/unit/test_dense_quantized.py` fails if it goes.
446
+ `vec_raw` is an ordinary rowid-keyed table on purpose — `id IN (...)` against a
447
+ vec0 table plans as a full scan (256 point lookups measured 3.2 s), so the
448
+ rescore would cost more than the thing it replaced.
449
+
450
+ Consequences for code you write here:
451
+
452
+ - **`dim` must be a multiple of 8** for `bit[N]`, so `_quantizable()` gates the
453
+ layout and a non-conforming width keeps the old float32 `vec_chunks`. The
454
+ toy 3-d fixtures elsewhere in the suite are what keep that fallback covered;
455
+ `tests/unit/test_dense_quantized.py` uses 8-d.
456
+ - **`dense.quantize()` migrates in place and re-embeds nothing** — it re-encodes
457
+ vectors already on disk. It counts rows into `vec_raw` and refuses to drop
458
+ `vec_chunks` unless the copy is complete, because re-embedding 750k chunks is
459
+ a bill, not an inconvenience. `boost reindex --dense` runs it; `boost doctor`
460
+ names a ready-but-unquantized store. **It costs disk**: a plain table pays
461
+ overflow-page overhead on 4 KB blobs that vec0's packed storage does not, so
462
+ the measured trade is **3.40 GB → 3.87 GB (+14%), in 1360 s**, peaking at
463
+ ~2× while both copies coexist. Don't describe it as size-neutral — an earlier
464
+ draft of this section did, from prediction rather than measurement.
465
+ - **Nothing on the search path may count `chunks`.** `SELECT COUNT(*)` scans the
466
+ `chunks_tap` covering index — 8,419 pages / 34.5 MB, measured 1.94 s — and
467
+ both `ready()` and `status()` did it on every search, the latter only to word
468
+ one muted hint. The total now comes from `meta["chunks"]`, emptiness from a
469
+ `LIMIT 1` probe, and the scan only when `status(count=True)` asks. A store
470
+ that never recorded a total reports `chunks: None`, **not 0**: `fix_hint`
471
+ reads a zero as an unfinished install and would send that user to the one
472
+ remedy that re-embeds everything.
473
+
474
+ `core/ai.py` wraps the opt-in LLM-assisted paths (`search --smart`, `explain`, `distill`, `infer`,
475
+ `absorb`, `evolve`, `simulate`, …), shelling out to the `claude` CLI or
476
+ `ANTHROPIC_API_KEY` when available and degrading to heuristics when not.
477
+
478
+ ## Layout
479
+
480
+ - `boost_cli/data/` — shipped catalog data (generated) · `scripts/` — build/gate tooling
481
+ - `tests/unit`, `tests/functional`, `tests/smoke.sh` — the three test tiers
482
+ - `docs/` — `index.html` (visual guide), `commands.html` (every flag, generated), `DEBUGGING.md`; `roadmap.html` is generated from `docs/roadmap/items/*.md` (see above)
483
+ BE BRIEF