boost-skill-cli 1.2.103__tar.gz → 1.2.105__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 (1016) hide show
  1. {boost_skill_cli-1.2.103/boost_skill_cli.egg-info → boost_skill_cli-1.2.105}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  4. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/SOURCES.txt +45 -0
  5. boost_skill_cli-1.2.105/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +49 -0
  6. boost_skill_cli-1.2.105/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +59 -0
  7. boost_skill_cli-1.2.105/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +49 -0
  8. boost_skill_cli-1.2.105/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +53 -0
  9. boost_skill_cli-1.2.105/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +57 -0
  10. boost_skill_cli-1.2.105/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +59 -0
  11. boost_skill_cli-1.2.105/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +53 -0
  12. boost_skill_cli-1.2.105/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +48 -0
  13. boost_skill_cli-1.2.105/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +49 -0
  14. boost_skill_cli-1.2.105/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +50 -0
  15. boost_skill_cli-1.2.105/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +52 -0
  16. boost_skill_cli-1.2.105/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +55 -0
  17. boost_skill_cli-1.2.105/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +57 -0
  18. boost_skill_cli-1.2.105/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +41 -0
  19. boost_skill_cli-1.2.105/docs/roadmap/items/explain-outline-has-no-cap.md +56 -0
  20. boost_skill_cli-1.2.105/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +50 -0
  21. boost_skill_cli-1.2.105/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +57 -0
  22. boost_skill_cli-1.2.105/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +49 -0
  23. boost_skill_cli-1.2.105/docs/roadmap/items/mcp-install-description-omits-antigravity.md +54 -0
  24. boost_skill_cli-1.2.105/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +53 -0
  25. boost_skill_cli-1.2.105/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +55 -0
  26. boost_skill_cli-1.2.105/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +57 -0
  27. boost_skill_cli-1.2.105/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +49 -0
  28. boost_skill_cli-1.2.105/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +54 -0
  29. boost_skill_cli-1.2.105/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +50 -0
  30. boost_skill_cli-1.2.105/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +48 -0
  31. boost_skill_cli-1.2.105/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +56 -0
  32. boost_skill_cli-1.2.105/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +45 -0
  33. boost_skill_cli-1.2.105/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +48 -0
  34. boost_skill_cli-1.2.105/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +54 -0
  35. boost_skill_cli-1.2.105/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +42 -0
  36. boost_skill_cli-1.2.105/docs/roadmap/items/roadmap-boards-advertise-python-39.md +47 -0
  37. boost_skill_cli-1.2.105/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +48 -0
  38. boost_skill_cli-1.2.105/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +49 -0
  39. boost_skill_cli-1.2.105/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +53 -0
  40. boost_skill_cli-1.2.105/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +54 -0
  41. boost_skill_cli-1.2.105/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +58 -0
  42. boost_skill_cli-1.2.105/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +49 -0
  43. boost_skill_cli-1.2.105/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +39 -0
  44. boost_skill_cli-1.2.105/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +50 -0
  45. boost_skill_cli-1.2.105/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +64 -0
  46. boost_skill_cli-1.2.105/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +50 -0
  47. boost_skill_cli-1.2.105/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +55 -0
  48. boost_skill_cli-1.2.105/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +52 -0
  49. boost_skill_cli-1.2.105/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +54 -0
  50. boost_skill_cli-1.2.105/docs/roadmap.html +9102 -0
  51. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/build_roadmap.py +42 -22
  52. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/page_budget.py +16 -10
  53. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_roadmap_fresh.py +41 -33
  54. boost_skill_cli-1.2.103/docs/roadmap.html +0 -17166
  55. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.gitattributes +0 -0
  56. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.gitignore +0 -0
  57. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.gitleaks.toml +0 -0
  58. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.htmlvalidate.json +0 -0
  59. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.lighthouserc.json +0 -0
  60. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.lycheeignore +0 -0
  61. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.markdownlint-cli2.jsonc +0 -0
  62. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.pre-commit-config.yaml +0 -0
  63. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.stylelintrc.json +0 -0
  64. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.vale/styles/boost/AIWriting.yml +0 -0
  65. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.vale/styles/boost/Terminology.yml +0 -0
  66. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  67. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/.vale.ini +0 -0
  68. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/CLAUDE.md +0 -0
  69. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/CODE_OF_CONDUCT.md +0 -0
  70. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/CONTRIBUTING.md +0 -0
  71. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/DCO +0 -0
  72. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/GOVERNANCE.md +0 -0
  73. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/LICENSE +0 -0
  74. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/MAINTAINERS.md +0 -0
  75. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/MANIFEST.in +0 -0
  76. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/Makefile +0 -0
  77. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/README.md +0 -0
  78. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/SECURITY.md +0 -0
  79. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/SUPPORT.md +0 -0
  80. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost +0 -0
  81. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/__init__.py +0 -0
  82. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/__main__.py +0 -0
  83. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/cli.py +0 -0
  84. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/cliparse.py +0 -0
  85. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/__init__.py +0 -0
  86. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/_common.py +0 -0
  87. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/bmad.py +0 -0
  88. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/configuration.py +0 -0
  89. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/discovery.py +0 -0
  90. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/hooks.py +0 -0
  91. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/info.py +0 -0
  92. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/intelligence.py +0 -0
  93. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/pkg.py +0 -0
  94. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/quality.py +0 -0
  95. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/quickstart.py +0 -0
  96. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/run.py +0 -0
  97. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/safety.py +0 -0
  98. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/taps.py +0 -0
  99. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/commands/team.py +0 -0
  100. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/__init__.py +0 -0
  101. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/adapters.py +0 -0
  102. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/agents.py +0 -0
  103. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/ai.py +0 -0
  104. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/aihost.py +0 -0
  105. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/archive.py +0 -0
  106. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/bmad.py +0 -0
  107. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/bootstrap.py +0 -0
  108. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/browse.py +0 -0
  109. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/builtin.py +0 -0
  110. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/capabilities.py +0 -0
  111. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/catalog.py +0 -0
  112. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/catalogbundle.py +0 -0
  113. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/chat.py +0 -0
  114. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/claude_settings.py +0 -0
  115. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/cohort.py +0 -0
  116. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/complete.py +0 -0
  117. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/config.py +0 -0
  118. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/dense.py +0 -0
  119. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/deps.py +0 -0
  120. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/discovery.py +0 -0
  121. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/ed25519.py +0 -0
  122. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/embed.py +0 -0
  123. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/faithfulness.py +0 -0
  124. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/frontmatter.py +0 -0
  125. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/gitutil.py +0 -0
  126. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/hookhost.py +0 -0
  127. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/imperative.py +0 -0
  128. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/injectscan.py +0 -0
  129. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/installscan.py +0 -0
  130. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/integrity.py +0 -0
  131. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/journal.py +0 -0
  132. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/jsonstate.py +0 -0
  133. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/localembed.py +0 -0
  134. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/lockfile.py +0 -0
  135. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/logs.py +0 -0
  136. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/mcp.py +0 -0
  137. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/mcpdecl.py +0 -0
  138. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/mcphost.py +0 -0
  139. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/minisign.py +0 -0
  140. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/nethttp.py +0 -0
  141. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/output.py +0 -0
  142. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/paths.py +0 -0
  143. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/policy.py +0 -0
  144. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/projectlock.py +0 -0
  145. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/provenance.py +0 -0
  146. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/rag.py +0 -0
  147. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/registry.py +0 -0
  148. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/resolve.py +0 -0
  149. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/rules.py +0 -0
  150. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/scopes.py +0 -0
  151. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/secretscan.py +0 -0
  152. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/selfupdate.py +0 -0
  153. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/serve.py +0 -0
  154. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/shards.py +0 -0
  155. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/stackprobe.py +0 -0
  156. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/staleness.py +0 -0
  157. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/store.py +0 -0
  158. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/trustaudit.py +0 -0
  159. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/typedvalue.py +0 -0
  160. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/typosquat.py +0 -0
  161. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/updatediff.py +0 -0
  162. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/util.py +0 -0
  163. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/core/workflows.py +0 -0
  164. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/data/registries.json +0 -0
  165. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/data/rules/boost-first.mdc +0 -0
  166. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/errors.py +0 -0
  167. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_cli/spin.py +0 -0
  168. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_langchain/__init__.py +0 -0
  169. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_langchain/_compat.py +0 -0
  170. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_langchain/graph.py +0 -0
  171. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_langchain/loader.py +0 -0
  172. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_langchain/py.typed +0 -0
  173. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_langchain/retriever.py +0 -0
  174. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  175. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  176. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/requires.txt +0 -0
  177. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/top_level.txt +0 -0
  178. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/codecov.yml +0 -0
  179. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/.claude/settings.local.json +0 -0
  180. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/DEBUGGING.md +0 -0
  181. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/adapters.html +0 -0
  182. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/architecture/README.md +0 -0
  183. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/architecture/c4-components-core.md +0 -0
  184. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/architecture/c4-containers.md +0 -0
  185. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/architecture/c4-context.md +0 -0
  186. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/architecture/c4-dynamic-install.md +0 -0
  187. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/bmad.md +0 -0
  188. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/gifs/distill.gif +0 -0
  189. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/gifs/doctor.gif +0 -0
  190. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/gifs/explain.gif +0 -0
  191. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/gifs/hooks.gif +0 -0
  192. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/gifs/install.gif +0 -0
  193. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/gifs/pulse.gif +0 -0
  194. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/gifs/search.gif +0 -0
  195. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/gifs/tap.gif +0 -0
  196. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/tapes/distill.tape +0 -0
  197. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/tapes/doctor.tape +0 -0
  198. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/tapes/explain.tape +0 -0
  199. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/tapes/hooks.tape +0 -0
  200. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/tapes/install.tape +0 -0
  201. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/tapes/pulse.tape +0 -0
  202. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/tapes/search.tape +0 -0
  203. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel/tapes/tap.tape +0 -0
  204. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/carousel.html +0 -0
  205. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/chat.html +0 -0
  206. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/code-review.md +0 -0
  207. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/commands.html +0 -0
  208. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/commit-audit.md +0 -0
  209. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/demo-index.json +0 -0
  210. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/demo.gif +0 -0
  211. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/demo.html +0 -0
  212. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/demo.tape +0 -0
  213. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/dependencies.md +0 -0
  214. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/design-roadmap.html +0 -0
  215. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/eval-latest.json +0 -0
  216. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/eval.html +0 -0
  217. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/index.html +0 -0
  218. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/langchain.html +0 -0
  219. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/mcp-hub.html +0 -0
  220. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/openssf-badge.md +0 -0
  221. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/openssf-playbook.md +0 -0
  222. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/rag-architecture.md +0 -0
  223. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D01.md +0 -0
  224. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D02.md +0 -0
  225. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D03.md +0 -0
  226. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D04.md +0 -0
  227. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D05.md +0 -0
  228. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D06.md +0 -0
  229. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D07.md +0 -0
  230. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D08.md +0 -0
  231. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D09.md +0 -0
  232. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D10.md +0 -0
  233. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D11.md +0 -0
  234. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D12.md +0 -0
  235. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D13.md +0 -0
  236. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D14.md +0 -0
  237. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D15.md +0 -0
  238. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D16.md +0 -0
  239. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D17.md +0 -0
  240. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D18.md +0 -0
  241. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D19.md +0 -0
  242. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D20.md +0 -0
  243. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D21.md +0 -0
  244. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D22.md +0 -0
  245. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D23.md +0 -0
  246. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D24.md +0 -0
  247. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D25.md +0 -0
  248. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D26.md +0 -0
  249. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D27.md +0 -0
  250. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  251. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  252. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  253. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  254. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  255. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  256. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  257. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  258. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  259. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  260. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  261. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  262. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  263. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  264. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  265. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-attest-findings.md +0 -0
  266. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-audit-findings.md +0 -0
  267. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  268. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-browse-findings.md +0 -0
  269. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  270. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  271. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  272. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  273. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-chat-findings.md +0 -0
  274. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  275. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  276. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  277. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-completions-findings.md +0 -0
  278. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-config-findings.md +0 -0
  279. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  280. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-context-findings.md +0 -0
  281. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  282. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  283. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-create-findings.md +0 -0
  284. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  285. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-deps-findings.md +0 -0
  286. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-discover-findings.md +0 -0
  287. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  288. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  289. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-drift-findings.md +0 -0
  290. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  291. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-edit-findings.md +0 -0
  292. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  293. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-explain-findings.md +0 -0
  294. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-export-findings.md +0 -0
  295. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  296. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  297. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  298. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  299. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  300. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-health-findings.md +0 -0
  301. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  302. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  303. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-import-findings.md +0 -0
  304. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-index-findings.md +0 -0
  305. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  306. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  307. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-install-findings.md +0 -0
  308. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  309. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  310. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-lint-findings.md +0 -0
  311. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-log-findings.md +0 -0
  312. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  313. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  314. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  315. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  316. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  317. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  318. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  319. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  320. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  321. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  322. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  323. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-policy-findings.md +0 -0
  324. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-preview-findings.md +0 -0
  325. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-profile-findings.md +0 -0
  326. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  327. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  328. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  329. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  330. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  331. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  332. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  333. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  334. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  335. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-replay-findings.md +0 -0
  336. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-root-findings.md +0 -0
  337. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  338. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-run-findings.md +0 -0
  339. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  340. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-search-findings.md +0 -0
  341. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  342. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  343. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  344. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  345. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  346. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  347. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  348. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  349. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-sync-findings.md +0 -0
  350. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-tag-findings.md +0 -0
  351. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  352. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-tap-findings.md +0 -0
  353. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-taps-findings.md +0 -0
  354. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  355. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-test-findings.md +0 -0
  356. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-trust-findings.md +0 -0
  357. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  358. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  359. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-untap-findings.md +0 -0
  360. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-update-findings.md +0 -0
  361. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  362. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-verify-findings.md +0 -0
  363. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-who-findings.md +0 -0
  364. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  365. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  366. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  367. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  368. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  369. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  370. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/boost-first-rule.md +0 -0
  371. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  372. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  373. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/branch-current-gate.md +0 -0
  374. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  375. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  376. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  377. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  378. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  379. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  380. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  381. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  382. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  383. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  384. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  385. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  386. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  387. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  388. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  389. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  390. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  391. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/cli-command-audit.md +0 -0
  392. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  393. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  394. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  395. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  396. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/command-carousel-page.md +0 -0
  397. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  398. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  399. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  400. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  401. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  402. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  403. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  404. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  405. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  406. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  407. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  408. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  409. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  410. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  411. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  412. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  413. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  414. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  415. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  416. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  417. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  418. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  419. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  420. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  421. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  422. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  423. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  424. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  425. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  426. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  427. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  428. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  429. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  430. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  431. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  432. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  433. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  434. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  435. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  436. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  437. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  438. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  439. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  440. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  441. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  442. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  443. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  444. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  445. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  446. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  447. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  448. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  449. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  450. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  451. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  452. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/github-community-health-files.md +0 -0
  453. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  454. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  455. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  456. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  457. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  458. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  459. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  460. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  461. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  462. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  463. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  464. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  465. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  466. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  467. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  468. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  469. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  470. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  471. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  472. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  473. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  474. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  475. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  476. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  477. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  478. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  479. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  480. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  481. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  482. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  483. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  484. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  485. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  486. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  487. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  488. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  489. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  490. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  491. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  492. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  493. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  494. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  495. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  496. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  497. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  498. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  499. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  500. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  501. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  502. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  503. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  504. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  505. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  506. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  507. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  508. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  509. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  510. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  511. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  512. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  513. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  514. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  515. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  516. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  517. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  518. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  519. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  520. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  521. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  522. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  523. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  524. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  525. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  526. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  527. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  528. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  529. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  530. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  531. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  532. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/openssf-playbook.md +0 -0
  533. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/openssf-silver.md +0 -0
  534. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  535. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  536. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  537. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  538. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  539. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  540. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  541. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  542. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  543. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  544. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  545. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  546. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  547. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  548. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  549. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  550. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  551. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  552. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  553. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  554. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  555. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  556. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  557. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  558. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  559. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  560. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  561. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  562. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  563. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  564. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  565. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  566. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  567. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/relicence-apache-2.md +0 -0
  568. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  569. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  570. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  571. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  572. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  573. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  574. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  575. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  576. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  577. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  578. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  579. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  580. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  581. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  582. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  583. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  584. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  585. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  586. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  587. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  588. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  589. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  590. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  591. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  592. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  593. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  594. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  595. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  596. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  597. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  598. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  599. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  600. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  601. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  602. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  603. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  604. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  605. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  606. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  607. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  608. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  609. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  610. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  611. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  612. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  613. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  614. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  615. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  616. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  617. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  618. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  619. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  620. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  621. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  622. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  623. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  624. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  625. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  626. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  627. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  628. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  629. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  630. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  631. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  632. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  633. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  634. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  635. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  636. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  637. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  638. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  639. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  640. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  641. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  642. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  643. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  644. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  645. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  646. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  647. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  648. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  649. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  650. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  651. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/workspace-scope-install.md +0 -0
  652. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/zip-strict-audit.md +0 -0
  653. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  654. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  655. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/security-design.md +0 -0
  656. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/semantic-search.md +0 -0
  657. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  658. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/verifying-releases.md +0 -0
  659. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/vex/meta.md +0 -0
  660. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/vex/openvex.json +0 -0
  661. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  662. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  663. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  664. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  665. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/eslint.config.mjs +0 -0
  666. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/README.md +0 -0
  667. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/__init__.py +0 -0
  668. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/baseline.json +0 -0
  669. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/faithfulness.py +0 -0
  670. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/golden_set.json +0 -0
  671. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/make_corpus.py +0 -0
  672. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/make_golden.py +0 -0
  673. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/metrics.py +0 -0
  674. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/publish_golden_dataset.py +0 -0
  675. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/evals/run_evals.py +0 -0
  676. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/examples/README.md +0 -0
  677. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/examples/adapt-demo.sh +0 -0
  678. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/examples/boost-run-prototype.sh +0 -0
  679. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/index.html +0 -0
  680. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/noxfile.py +0 -0
  681. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/pyproject.toml +0 -0
  682. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/coverage-tools.in +0 -0
  683. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/coverage-tools.txt +0 -0
  684. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/lint-tools.in +0 -0
  685. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/lint-tools.txt +0 -0
  686. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/mutation-tools.in +0 -0
  687. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/mutation-tools.txt +0 -0
  688. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/platform-pins.lock +0 -0
  689. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/release-tools.in +0 -0
  690. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/release-tools.txt +0 -0
  691. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/test-tools.in +0 -0
  692. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/requirements/test-tools.txt +0 -0
  693. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/a11y_check.py +0 -0
  694. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/add_spdx_headers.py +0 -0
  695. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/bench_cli.sh +0 -0
  696. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/build_command_reference.py +0 -0
  697. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/build_demo_index.py +0 -0
  698. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/build_registries.py +0 -0
  699. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/build_scale_corpus.py +0 -0
  700. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/build_vex.py +0 -0
  701. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/check_anchors.py +0 -0
  702. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/check_branch_current.py +0 -0
  703. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/check_dco.py +0 -0
  704. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/check_licenses.py +0 -0
  705. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/check_reproducible.py +0 -0
  706. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/check_required_checks.py +0 -0
  707. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/ensure_eval_corpus.sh +0 -0
  708. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/eval_corpus.py +0 -0
  709. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/eval_explain.py +0 -0
  710. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/eval_gate.py +0 -0
  711. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/eval_recommend.py +0 -0
  712. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/eval_retrieval.py +0 -0
  713. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/eval_stats_summary.py +0 -0
  714. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/eval_tools.py +0 -0
  715. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/import_budget.py +0 -0
  716. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/lock_toolchain.py +0 -0
  717. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/measure_near_duplicate_bound.py +0 -0
  718. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/measure_registry.py +0 -0
  719. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/mutation_gate.py +0 -0
  720. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/mutation_shards.py +0 -0
  721. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/mutation_weights.json +0 -0
  722. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/normalize_sdist.py +0 -0
  723. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/perf_gate.py +0 -0
  724. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/post_deploy_smoke.py +0 -0
  725. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/publish_eval_json.py +0 -0
  726. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/publish_shards.py +0 -0
  727. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/release_guard.py +0 -0
  728. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/release_preflight.py +0 -0
  729. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/serve_docs.py +0 -0
  730. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/scripts/shard_plan.py +0 -0
  731. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/setup.cfg +0 -0
  732. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/sonar-project.properties +0 -0
  733. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/style/README.md +0 -0
  734. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/style/boost.css +0 -0
  735. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/style/boost.js +0 -0
  736. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/style/demo.html +0 -0
  737. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/adapt.feature +0 -0
  738. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/browse.feature +0 -0
  739. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/count.feature +0 -0
  740. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/discover.feature +0 -0
  741. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/doctor.feature +0 -0
  742. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/environment.py +0 -0
  743. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/explain.feature +0 -0
  744. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/index.feature +0 -0
  745. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/install.feature +0 -0
  746. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/list.feature +0 -0
  747. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/mcp.feature +0 -0
  748. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/search.feature +0 -0
  749. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/steps/cli_steps.py +0 -0
  750. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/steps/discovery_steps.py +0 -0
  751. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/steps/mcp_steps.py +0 -0
  752. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/bdd/features/steps/quality_steps.py +0 -0
  753. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/conftest.py +0 -0
  754. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/baseline.json +0 -0
  755. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/explain.jsonl +0 -0
  756. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  757. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/golden-natural.jsonl +0 -0
  758. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/golden.jsonl +0 -0
  759. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/recommend.jsonl +0 -0
  760. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/taps-scale.txt +0 -0
  761. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/taps.txt +0 -0
  762. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/eval/tool_calls.jsonl +0 -0
  763. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_bmad_all_hosts.py +0 -0
  764. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_capabilities_policy.py +0 -0
  765. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_adapt.py +0 -0
  766. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_bmad.py +0 -0
  767. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_catalog.py +0 -0
  768. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_chat.py +0 -0
  769. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_configuration.py +0 -0
  770. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_discovery.py +0 -0
  771. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_hooks.py +0 -0
  772. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_hooks_gemini.py +0 -0
  773. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_info.py +0 -0
  774. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_intelligence.py +0 -0
  775. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_pane_width.py +0 -0
  776. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_pkg.py +0 -0
  777. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_quality.py +0 -0
  778. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_quickstart.py +0 -0
  779. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_tap_pins.py +0 -0
  780. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_taps.py +0 -0
  781. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_cli_team.py +0 -0
  782. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_everyday_loop.py +0 -0
  783. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_integrity_enforce.py +0 -0
  784. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_kind_conformance.py +0 -0
  785. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_property_parsers.py +0 -0
  786. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_run.py +0 -0
  787. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_tap_signing.py +0 -0
  788. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/functional/test_workspace_scope.py +0 -0
  789. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/README.md +0 -0
  790. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  791. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  792. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  793. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  794. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  795. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  796. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  797. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  798. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  799. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  800. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  801. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  802. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  803. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  804. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  805. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  806. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  807. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  808. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  809. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  810. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  811. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  812. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  813. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/fuzz_frontmatter.py +0 -0
  814. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/fuzz/fuzz_registry.py +0 -0
  815. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/langchain/conftest.py +0 -0
  816. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/langchain/test_graph.py +0 -0
  817. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/langchain/test_loader.py +0 -0
  818. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/langchain/test_retriever.py +0 -0
  819. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/make_fixture.py +0 -0
  820. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/perf/test_benchmarks.py +0 -0
  821. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/smoke.sh +0 -0
  822. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_a11y_check.py +0 -0
  823. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_action_pin_lockstep.py +0 -0
  824. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_adapters.py +0 -0
  825. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_adapters_multi.py +0 -0
  826. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_adapters_runner.py +0 -0
  827. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_agents.py +0 -0
  828. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_ai.py +0 -0
  829. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_aihost.py +0 -0
  830. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_archive.py +0 -0
  831. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_bmad_core.py +0 -0
  832. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_boost_first_offer.py +0 -0
  833. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_bootstrap.py +0 -0
  834. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_bot_pr_dco.py +0 -0
  835. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_branch_current.py +0 -0
  836. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_browse.py +0 -0
  837. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_builtin.py +0 -0
  838. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_capabilities.py +0 -0
  839. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_catalog.py +0 -0
  840. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_catalogbundle.py +0 -0
  841. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_chat.py +0 -0
  842. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_check_anchors.py +0 -0
  843. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_check_dco.py +0 -0
  844. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_check_licenses.py +0 -0
  845. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_check_reproducible.py +0 -0
  846. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_claude_settings.py +0 -0
  847. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_clean_internal_cache.py +0 -0
  848. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_cli_update_shards.py +0 -0
  849. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_cliparse.py +0 -0
  850. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_codeql_analysis_key.py +0 -0
  851. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_cohort.py +0 -0
  852. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_command_reference_fresh.py +0 -0
  853. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_community_health_files.py +0 -0
  854. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_compact.py +0 -0
  855. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_complete.py +0 -0
  856. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_complete_rc_block.py +0 -0
  857. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_config.py +0 -0
  858. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_content_dedupe.py +0 -0
  859. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_content_identity.py +0 -0
  860. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_crash_redaction.py +0 -0
  861. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dedup_trust.py +0 -0
  862. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_demo_index.py +0 -0
  863. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense.py +0 -0
  864. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  865. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_embed_dedupe.py +0 -0
  866. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_entry_reuse.py +0 -0
  867. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_entry_vectors.py +0 -0
  868. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_fallback.py +0 -0
  869. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_fix_hint.py +0 -0
  870. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_progress.py +0 -0
  871. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_quantized.py +0 -0
  872. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_ready_order.py +0 -0
  873. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_shard_real_schema.py +0 -0
  874. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  875. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_shards.py +0 -0
  876. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_status.py +0 -0
  877. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_status_cheap.py +0 -0
  878. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dense_vector_dedupe.py +0 -0
  879. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_dependabot_config.py +0 -0
  880. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_deps.py +0 -0
  881. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_discovery.py +0 -0
  882. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_distill_merge.py +0 -0
  883. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_docs_pages_linked.py +0 -0
  884. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_docsite_chrome.py +0 -0
  885. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_doctor_output_polish.py +0 -0
  886. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_drift_hint.py +0 -0
  887. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_ed25519.py +0 -0
  888. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_embed.py +0 -0
  889. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_embed_local.py +0 -0
  890. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_embed_truncated_response.py +0 -0
  891. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_entry_key.py +0 -0
  892. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_errors_and_cli_table.py +0 -0
  893. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_baseline.py +0 -0
  894. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_corpus.py +0 -0
  895. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_faithfulness.py +0 -0
  896. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_gate.py +0 -0
  897. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_grading.py +0 -0
  898. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_metrics.py +0 -0
  899. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_stats_summary.py +0 -0
  900. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_tools.py +0 -0
  901. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_eval_tools_probe.py +0 -0
  902. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  903. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_faithfulness.py +0 -0
  904. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_frontmatter.py +0 -0
  905. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_fuzz_targets.py +0 -0
  906. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  907. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_gitleaks_config.py +0 -0
  908. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_gitutil.py +0 -0
  909. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_gitutil_lfs.py +0 -0
  910. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_gitutil_sparse.py +0 -0
  911. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_gstack_coexistence.py +0 -0
  912. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_hook_settings_hosts.py +0 -0
  913. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_hookhost.py +0 -0
  914. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_imperative.py +0 -0
  915. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_import_budget.py +0 -0
  916. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_injectscan.py +0 -0
  917. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_install_permission_error.py +0 -0
  918. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_installscan.py +0 -0
  919. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_integrity.py +0 -0
  920. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_journal.py +0 -0
  921. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_jsonstate.py +0 -0
  922. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_langchain_packaging.py +0 -0
  923. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_launcher_python_floor.py +0 -0
  924. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_link_ownership.py +0 -0
  925. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_localembed.py +0 -0
  926. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_localembed_e2e.py +0 -0
  927. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_lockfile.py +0 -0
  928. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_logs.py +0 -0
  929. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_marketing_counts.py +0 -0
  930. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mcp.py +0 -0
  931. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mcp_install_scan.py +0 -0
  932. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mcp_read.py +0 -0
  933. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mcpdecl.py +0 -0
  934. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mcphost.py +0 -0
  935. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_measure_registry.py +0 -0
  936. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_minisign.py +0 -0
  937. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mutation_hardening.py +0 -0
  938. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mutation_shards.py +0 -0
  939. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mutation_subfile_shards.py +0 -0
  940. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_mutmut_source_paths.py +0 -0
  941. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_near_duplicate_collapse.py +0 -0
  942. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_nethttp.py +0 -0
  943. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_normalize_sdist.py +0 -0
  944. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_output.py +0 -0
  945. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_page_budget.py +0 -0
  946. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_paths.py +0 -0
  947. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_perf_gate.py +0 -0
  948. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_pkg_confusions.py +0 -0
  949. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_pkg_injection.py +0 -0
  950. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_pkg_secrets.py +0 -0
  951. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_platform_pins.py +0 -0
  952. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_policy.py +0 -0
  953. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_post_deploy_smoke.py +0 -0
  954. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_project_mcp_sidecar.py +0 -0
  955. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_projectlock.py +0 -0
  956. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_provenance.py +0 -0
  957. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_publish_golden_dataset.py +0 -0
  958. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_rag.py +0 -0
  959. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_rag_fastpath.py +0 -0
  960. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_rag_fusion.py +0 -0
  961. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_registries_fresh.py +0 -0
  962. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_registry.py +0 -0
  963. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_registry_categories.py +0 -0
  964. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_registry_control_chars.py +0 -0
  965. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_registry_parallel.py +0 -0
  966. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_release_guard.py +0 -0
  967. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_release_preflight.py +0 -0
  968. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_required_checks.py +0 -0
  969. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_rerank_cache.py +0 -0
  970. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_resolve.py +0 -0
  971. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  972. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_rules.py +0 -0
  973. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_scale_corpus.py +0 -0
  974. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_schedule_plist.py +0 -0
  975. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_scopes.py +0 -0
  976. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_secretscan.py +0 -0
  977. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_selfupdate.py +0 -0
  978. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_serve.py +0 -0
  979. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_serve_docs.py +0 -0
  980. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_shard_plan.py +0 -0
  981. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_shards.py +0 -0
  982. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_shards_incremental.py +0 -0
  983. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_shards_ingest.py +0 -0
  984. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_shards_matrix.py +0 -0
  985. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_smoke_covers_every_command.py +0 -0
  986. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_spdx_headers.py +0 -0
  987. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_spin.py +0 -0
  988. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_stackprobe.py +0 -0
  989. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_staleness.py +0 -0
  990. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_store.py +0 -0
  991. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_store_materialize.py +0 -0
  992. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_sync_blocked_links.py +0 -0
  993. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  994. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_tap_pins.py +0 -0
  995. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_token_parity.py +0 -0
  996. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_toolchain_lock.py +0 -0
  997. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_trustaudit.py +0 -0
  998. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_typedvalue.py +0 -0
  999. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_typosquat.py +0 -0
  1000. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_updatediff.py +0 -0
  1001. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_util.py +0 -0
  1002. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_version.py +0 -0
  1003. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_version_tags.py +0 -0
  1004. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_vex.py +0 -0
  1005. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_visual_harness_flags.py +0 -0
  1006. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_workflow_concurrency.py +0 -0
  1007. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1008. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1009. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_workflow_timeouts.py +0 -0
  1010. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_workflows.py +0 -0
  1011. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1012. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/visual/a11y_check.mjs +0 -0
  1013. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/visual/console_check.mjs +0 -0
  1014. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/visual/package-lock.json +0 -0
  1015. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/visual/package.json +0 -0
  1016. {boost_skill_cli-1.2.103 → boost_skill_cli-1.2.105}/tests/visual/visual_check.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.103
3
+ Version: 1.2.105
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.2.103'
22
- __version_tuple__ = version_tuple = (1, 2, 103)
21
+ __version__ = version = '1.2.105'
22
+ __version_tuple__ = version_tuple = (1, 2, 105)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.103
3
+ Version: 1.2.105
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -321,6 +321,8 @@ docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-sa
321
321
  docs/roadmap/items/audit-verify-findings.md
322
322
  docs/roadmap/items/audit-who-findings.md
323
323
  docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md
324
+ docs/roadmap/items/bare-boost-never-names-an-entry-point.md
325
+ docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md
324
326
  docs/roadmap/items/bm25-has-no-stemming.md
325
327
  docs/roadmap/items/bm25-index-is-one-json-blob.md
326
328
  docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md
@@ -359,6 +361,8 @@ docs/roadmap/items/completions-install-could-eat-your-rc-file.md
359
361
  docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md
360
362
  docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md
361
363
  docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md
364
+ docs/roadmap/items/corpus-refresh-updates-data-not-prose.md
365
+ docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md
362
366
  docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md
363
367
  docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md
364
368
  docs/roadmap/items/crash-listing-branch-untested.md
@@ -368,6 +372,9 @@ docs/roadmap/items/delay-true-defeats-the-log-suppress.md
368
372
  docs/roadmap/items/demo-cannot-open-its-own-pr.md
369
373
  docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md
370
374
  docs/roadmap/items/demo-workflow-cancels-other-prs.md
375
+ docs/roadmap/items/dense-kill-switch-has-no-reason-state.md
376
+ docs/roadmap/items/dense-no-key-guard-is-unreachable.md
377
+ docs/roadmap/items/dense-ready-but-embedder-cannot-run.md
371
378
  docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md
372
379
  docs/roadmap/items/dense-reindex-reuses-whole-taps.md
373
380
  docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md
@@ -382,18 +389,26 @@ docs/roadmap/items/discover-searches-github-not-a-stale-sample.md
382
389
  docs/roadmap/items/docsite-chrome-and-content-audit.md
383
390
  docs/roadmap/items/docstring-coverage-interrogate.md
384
391
  docs/roadmap/items/doctor-checks-rules-and-workflows.md
392
+ docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md
385
393
  docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md
386
394
  docs/roadmap/items/efficiency-registries-ponytail-caveman.md
387
395
  docs/roadmap/items/end-of-options-guard-on-git-commands.md
396
+ docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md
388
397
  docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md
389
398
  docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md
399
+ docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md
400
+ docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md
390
401
  docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md
391
402
  docs/roadmap/items/eval-corpus-is-one-strangers-repo.md
392
403
  docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md
393
404
  docs/roadmap/items/eval-corpus-was-not-actually-pinned.md
394
405
  docs/roadmap/items/eval-deduped-ranked-lists-by-name.md
406
+ docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md
407
+ docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md
395
408
  docs/roadmap/items/eval-stats-could-never-publish.md
409
+ docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md
396
410
  docs/roadmap/items/expanded-card-bodies-overflow.md
411
+ docs/roadmap/items/explain-outline-has-no-cap.md
397
412
  docs/roadmap/items/extension-free-tests-core-dense-py.md
398
413
  docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md
399
414
  docs/roadmap/items/finish-mutation-hardening-across-core.md
@@ -403,6 +418,8 @@ docs/roadmap/items/framework-adapter-langgraph.md
403
418
  docs/roadmap/items/framework-adapter-multi-agent.md
404
419
  docs/roadmap/items/framework-adapters-boost-adapt.md
405
420
  docs/roadmap/items/frontmatter-scalar-over-coercion.md
421
+ docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md
422
+ docs/roadmap/items/gated-golden-set-has-zero-exemplars.md
406
423
  docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md
407
424
  docs/roadmap/items/gemini-cli-agent-target.md
408
425
  docs/roadmap/items/gemini-duplicate-skill-discovery.md
@@ -416,6 +433,7 @@ docs/roadmap/items/gstack-tap-first-then-coexistence.md
416
433
  docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md
417
434
  docs/roadmap/items/heal-deleted-links-it-never-made.md
418
435
  docs/roadmap/items/html-validation-html-validate.md
436
+ docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md
419
437
  docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md
420
438
  docs/roadmap/items/install-docs-never-mentioned-upgrading.md
421
439
  docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md
@@ -457,14 +475,17 @@ docs/roadmap/items/mcp-aware-skills.md
457
475
  docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md
458
476
  docs/roadmap/items/mcp-check-skills-before-starting-a-task.md
459
477
  docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md
478
+ docs/roadmap/items/mcp-install-description-omits-antigravity.md
460
479
  docs/roadmap/items/mcp-install-skips-the-injection-scan.md
461
480
  docs/roadmap/items/mcp-launch-objc-fork-safety.md
462
481
  docs/roadmap/items/mcp-one-benefit-nameable-task.md
463
482
  docs/roadmap/items/mcp-register-names-server-before-env.md
464
483
  docs/roadmap/items/mcp-search-before-reinventing.md
484
+ docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md
465
485
  docs/roadmap/items/mcp-search-cost-was-understated.md
466
486
  docs/roadmap/items/mcp-search-hid-which-ranking-ran.md
467
487
  docs/roadmap/items/mcp-servers-ignore-install-scope.md
488
+ docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md
468
489
  docs/roadmap/items/mcp-startup-self-harden-fork-safety.md
469
490
  docs/roadmap/items/mcp-zero-setup-and-three-kinds.md
470
491
  docs/roadmap/items/memoize-config-load-in-process.md
@@ -492,6 +513,7 @@ docs/roadmap/items/openssf-playbook.md
492
513
  docs/roadmap/items/openssf-silver.md
493
514
  docs/roadmap/items/osps-baseline-levels.md
494
515
  docs/roadmap/items/package-metadata-validation-twine-check-friends.md
516
+ docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md
495
517
  docs/roadmap/items/patch-coverage-gate-diff-cover.md
496
518
  docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md
497
519
  docs/roadmap/items/pathlib-exists-is-not-total.md
@@ -516,10 +538,18 @@ docs/roadmap/items/published-shards-have-no-consumer.md
516
538
  docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md
517
539
  docs/roadmap/items/python-floor-moves-to-312.md
518
540
  docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md
541
+ docs/roadmap/items/quickstart-drops-incompatible-shard-status.md
542
+ docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md
543
+ docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md
544
+ docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md
519
545
  docs/roadmap/items/ragas-unpin-when-upstream-ships.md
520
546
  docs/roadmap/items/ranx-significance-monitor.md
547
+ docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md
548
+ docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md
521
549
  docs/roadmap/items/readme-prune-and-search-guide.md
550
+ docs/roadmap/items/recommend-recomputes-its-columns-per-row.md
522
551
  docs/roadmap/items/reconcile-the-theme-drift.md
552
+ docs/roadmap/items/refresh-strands-the-natural-set-baseline.md
523
553
  docs/roadmap/items/refresh-the-marketing-surface.md
524
554
  docs/roadmap/items/rel-time-tests-race-the-wall-clock.md
525
555
  docs/roadmap/items/release-verifies-the-wrong-commit.md
@@ -527,9 +557,11 @@ docs/roadmap/items/relicence-apache-2.md
527
557
  docs/roadmap/items/reproducible-release-artifacts.md
528
558
  docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md
529
559
  docs/roadmap/items/required-checks-config-drift.md
560
+ docs/roadmap/items/required-eval-gate-still-grades-by-name.md
530
561
  docs/roadmap/items/resolve-vendored-duplicate-copies.md
531
562
  docs/roadmap/items/retrieval-quality-eval-harness.md
532
563
  docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md
564
+ docs/roadmap/items/roadmap-boards-advertise-python-39.md
533
565
  docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md
534
566
  docs/roadmap/items/roadmap-page-weight-grows-without-bound.md
535
567
  docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md
@@ -548,7 +580,13 @@ docs/roadmap/items/scheduled-toolchain-lock-regeneration.md
548
580
  docs/roadmap/items/scorecard-findings-triage.md
549
581
  docs/roadmap/items/scripts-under-the-lint-gate.md
550
582
  docs/roadmap/items/search-and-browse-visual-refresh.md
583
+ docs/roadmap/items/search-caps-the-two-copyable-identifiers.md
584
+ docs/roadmap/items/search-drops-symbol-language-queries-silently.md
585
+ docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md
586
+ docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md
551
587
  docs/roadmap/items/search-never-notices-a-new-tap.md
588
+ docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md
589
+ docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md
552
590
  docs/roadmap/items/second-type-checker-pyright.md
553
591
  docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md
554
592
  docs/roadmap/items/secret-scanning-gitleaks-push-protection.md
@@ -568,22 +606,27 @@ docs/roadmap/items/single-imperative-rule-extractor.md
568
606
  docs/roadmap/items/single-tech-stack-prober.md
569
607
  docs/roadmap/items/smart-rerank-pays-per-novel-query.md
570
608
  docs/roadmap/items/split-oversized-command-modules.md
609
+ docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md
610
+ docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md
571
611
  docs/roadmap/items/startup-and-import-time-budget-x-importtime.md
572
612
  docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md
573
613
  docs/roadmap/items/structured-json-log-output-mode.md
574
614
  docs/roadmap/items/supply-chain-posture-openssf-scorecard.md
615
+ docs/roadmap/items/surface-dehyphenation-rationale-is-false.md
575
616
  docs/roadmap/items/surface-every-docs-page-from-the-guide.md
576
617
  docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md
577
618
  docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md
578
619
  docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md
579
620
  docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md
580
621
  docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md
622
+ docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md
581
623
  docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md
582
624
  docs/roadmap/items/taps-check-out-freight-they-never-index.md
583
625
  docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md
584
626
  docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md
585
627
  docs/roadmap/items/the-shard-job-that-could-not-finish.md
586
628
  docs/roadmap/items/theme-asset-linting-stylelint-eslint.md
629
+ docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md
587
630
  docs/roadmap/items/tool-call-eval-tier.md
588
631
  docs/roadmap/items/two-ci-controls-that-could-not-act.md
589
632
  docs/roadmap/items/two-crashes-that-should-have-been-messages.md
@@ -591,8 +634,10 @@ docs/roadmap/items/typo-detection-codespell.md
591
634
  docs/roadmap/items/typosquat-and-name-confusion-detection.md
592
635
  docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md
593
636
  docs/roadmap/items/uninstall-has-no-confirmation-prompt.md
637
+ docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md
594
638
  docs/roadmap/items/untrack-generated-build-noise.md
595
639
  docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md
640
+ docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md
596
641
  docs/roadmap/items/update-advertises-a-flag-it-rejects.md
597
642
  docs/roadmap/items/update-diff-before-apply.md
598
643
  docs/roadmap/items/update-refreshed-rules-without-a-gate.md
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: bare-boost-never-names-an-entry-point
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Onboarding · Bug
7
+ complexity: M
8
+ impact: Med
9
+ wow: 3
10
+ note: A newcomer's first screen is 103 lines of 81 commands that is byte-for-byte the same …
11
+ order: 241
12
+ owner:
13
+ pr:
14
+ title: Nothing boost prints ever names an entry point: bare <code>./boost</code> is byte-identical on a virgin machine and a working one, and the one command its failure-hints route you to is the only setup …
15
+ ---
16
+ <b>Measured.</b> Bare <code>./boost</code> is md5-identical (dd3c84b8d6510df1871bea5f1518fff4) on a machine with 0 taps and on the same machine with 7 taps and 1 installed skill, because <code>print_help</code> (cli.py:165-223) reads no state at all — and the command every newcomer-facing hint routes to, <code>boost tap --defaults</code>, produces exactly 7 lines whose last is a <code>✓ tapped …</code> row with no summary, while <code>boost install</code> through the same pipe closes with a framed "next: boost info brainstorming" box.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt;</code><br>
21
+ <code>export HOME=$TMPDIR/lens2-ep ; export BOOST_HOME=$HOME/.boost ; rm -rf "$HOME" ; mkdir -p "$HOME"</code><br>
22
+ <code># 1. the first screen: 103 lines, 81 commands, quickstart at line 80, no "start here"</code><br>
23
+ <code>./boost &gt; "$TMPDIR/h0.txt" 2&gt;&amp;1</code><br>
24
+ <code>wc -l &lt; "$TMPDIR/h0.txt" # 103</code><br>
25
+ <code>grep -n quickstart "$TMPDIR/h0.txt" # 80: quickstart Tap the starter registries...</code><br>
26
+ <code>grep -ci 'start here\|new to boost\|first, run\|get started' "$TMPDIR/h0.txt" # 0</code><br>
27
+ <code>head -4 "$TMPDIR/h0.txt"</code><br>
28
+ <code># 2. the only entry-point pointers are failure hints, and they name tap --defaults, never quickstart</code><br>
29
+ …
30
+
31
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
32
+
33
+ Three sentences in the claim are false as written; the underlying defect survives all three.
34
+
35
+ 1. "you must run a command that exits 1 to learn where setup lives" — WRONG. <code>boost doctor</code> exits <b>0</b> and carries the identical <code>boost tap --defaults</code> hint plus the verdict line "● ready to set up — tap a registry to make boost searchable". I measured DOCTOR_EXIT=0 (the claim's own evidence block also shows EXIT=0, contradicting its prose). The pointer is not gated behind a non-zero exit; it is gated behind running a diagnostic command, which is a weaker statement.
36
+
37
+ 2. "every CLI hint routes to <code>tap --defaults</code> … never mentions that quickstart exists" — OVERBROAD. Two user-facing hints do name <code>boost quickstart</code>: <code>boost_cli/commands/discovery.py:398</code> ("<code>boost quickstart</code> taps the defaults and fetches their vectors in one pass", raised by <code>reindex --fetch-shards</code>) and <code>boost_cli/commands/pkg.py:981</code> ("<code>boost quickstart</code> taps the starters and loads their vectors in one pass", raised by <code>update --shards</code>). Correct figures: ~15 source sites name <code>boost tap --defaults</code> vs 2 that name <code>boost quickstart</code>, and <b>0 of the newcomer-plausible surfaces</b> (search, doctor, taps, browse, list, catalogbundle, mcp, serve) name quickstart. The substantive routing gap is real; the words "every" and "never" are not.
38
+
39
+ 3.
40
+
41
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
42
+
43
+ Not carded — I re-checked independently over all 473 items. <code>audit-root-findings.md</code> (the bare-<code>boost</code> card) covers EPIPE exit 120, <code>help --help</code>/<code>help version</code> alias routing, and the launcher's 3.9 Python floor; its one <code>print_help</code> ask ("add one dim Options line under Usage") has shipped — I see the Options line. Nothing about state-awareness or a first-run pointer. <code>BOOST-D13</code> "Framed success summary with next step" is status:done, <code>ref: core/output.py:41 · commands/pkg.py</code>, and its body scopes itself to install/uninstall. <code>audit-tap-findings.md</code> (inflight, PR 772) is about path-shaped SPECs going to the network — zero hits for next/defaults/quickstart/summary. <code>audit-taps-findings.md</code> — zero hits for the same terms. <code>audit-quickstart-findings.md</code> covers unpinned-at-HEAD taps without <code>[rag]</code> and three divergent <code>[rag]</code> hint wordings, not routing.
44
+
45
+ Scope limits of my repro: - <code>boost quickstart</code>'s final line was verified by <b>source read</b> (<code>quickstart.py:220</code>, unconditional, immediately before <code>return 0</code>), not by running it — a live run fetches the shard manifest and would download vectors. I did not re-run the claim's <code>quickstart | tail -1</code> control. - <code>core/bootstrap.py</code> shows <code>boost mcp register</code> <b>auto-seeds</b> the catalog (taps the defaults unless <code>BOOST_NO_SEED</code>/<code>--no-seed</code>), and its docstring states "<code>boost mcp</code> is the only command a new user is told to run after installing". So an MCP-first newcomer is not stranded; this finding is specifically the <b>CLI-first</b> path.
46
+
47
+ <b>Why it is worth doing.</b> This is the whole first-value path and it costs a newcomer their first two commands. The productive path is 3 commands / 10.6s once you know it; the tool makes you discover it by failing. Worse, the two setup paths are not equivalent — README leads with <code>quickstart</code>, which pins taps to shard commits and can import prebuilt vectors, while every CLI hint routes to <code>tap --defaults</code>, which does neither and never mentions that quickstart exists. Both fixes are one line each: make <code>print_help</code> add a first-run line when <code>registry.list_taps()</code> is empty (it already resolves config at startup), and give the tap/registry success path the same next-step emitter <code>pkg.py</code> and <code>quickstart.py</code> already use.
48
+
49
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -0,0 +1,59 @@
1
+ ---
2
+ id: bm25-empty-tokenization-kills-catalog-fallback
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Quality · Retrieval eval
7
+ complexity: L
8
+ impact: High
9
+ wow: 4
10
+ note: rag.tokenize (rag.py:88-91) keeps only [a-z0-9] runs of length &gt;= 2, so "C++", "C#" a…
11
+ order: 200
12
+ owner:
13
+ pr:
14
+ title: A query made only of characters <code>tokenize</code> drops returns zero results, and the documented <code>catalog.search</code> fallback is unreachable — <code>boost search "C++"</code> finds nothing on a machine holding …
15
+ ---
16
+ <b>Measured.</b> On the developer's own 440-tap install — with no BOOST_HOME override, where <code>dense.status()</code> reports <code>ready: False, reason: 'provider-changed'</code> so the machine is on the always-on BM25 path — <code>rag.retrieve("C++")</code> returns <b>0</b> hits while <code>rag.retrieve("cpp")</code> returns <b>60</b>, and <code>retrieve_any</code> reports <code>(0, 'BM25 full-content')</code> rather than <code>None</code>, so the <code>catalog.search</code> fallback that finds 45 C++ items can never run.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt;</code><br>
21
+ <code>export BOOST_HOME=$TMPDIR/eval-home BOOST_NO_AI=1</code><br>
22
+ <code>./boost search "C++" --json # []</code><br>
23
+ <code>./boost search "C#" --json # []</code><br>
24
+ <code>./boost search "代码审查" --json # []</code><br>
25
+ <code>.venv/bin/python -c "</code><br>
26
+ <code>from boost_cli.core import rag, catalog</code><br>
27
+ <code>from boost_cli.commands import configuration as cfg</code><br>
28
+ <code>es = catalog.all_entries()</code><br>
29
+ <code>for q in ['C++','C#','代码审查']:</code><br>
30
+ <code> print(repr(q), 'tokenize=', rag.tokenize(q),</code><br>
31
+ <code> 'retrieve_any=', (lambda r:(len(r[0]), r[1]))(rag.retrieve_any(q)),</code><br>
32
+ <code> 'catalog.search=', len(catalog.search(q, es)),</code><br>
33
+ <code> [e['name'] for e,_ in catalog.search(q, es)[:3]])</code><br>
34
+ <code>print('rag.search(C++) -&gt;', (lambda r: 'None' if r is None else (len(r[0]), r[1]))(rag.search('C++', limit=10, smart=False)))</code><br>
35
+ …
36
+
37
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
38
+
39
+ The DEFECT reproduces exactly; five of the six cited anchors are wrong, and the drift pattern says the finder read an older tree.
40
+
41
+ - <code>rag.py:1288</code> (<code>elif bm25_hits is not None</code>) -&gt; actual <b>rag.py:1286</b> - <code>rag.py:1010-1012</code> (<code>if not terms: return []</code>) -&gt; actual <b>rag.py:1009-1011</b> (<code>terms = tokenize(query)</code> is 1009, <code>if not terms:</code> 1010, <code>return []</code> 1011) - <code>discovery.py:144</code> (<code>use_rag = rag.ensure()</code>) -&gt; actual <b>discovery.py:145</b> - <code>configuration.py:1266</code> (<code>rag.search(...)</code>) -&gt; actual <b>configuration.py:1321</b> (off by 55) - <code>configuration.py:1281</code> (<code>catalog.search(query)[:10]</code>) -&gt; actual <b>configuration.py:1336</b> (off by 55) - <code>not_carded_check</code>: "Read all 318 <code>^title:</code> lines from docs/roadmap/items/*.md" -&gt; actual <b>432</b> items, 432 title lines.
42
+
43
+ CORRECT as stated: <code>rag.py:88-91</code> for <code>tokenize</code>; <code>discovery.py:164</code> for <code>scored = catalog.search(query)</code>; 45 / 27 / 17 catalog.search counts; 42 entries with literal "c++" in name or description; 93 corpus files containing 代码审查; the MCP return <code>("no skills match 'C++'", False)</code>; and the absence of any <code>BOOST_NO_RAG</code> / <code>--no-rag</code> escape hatch.
44
+
45
+ The ~55-line configuration.py drift plus a title count off by 114 is not miscounting — the finder measured an older checkout.
46
+
47
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
48
+
49
+ SCOPE OF MY REPRO. All corpus counts (45 / 27 / 17 / 42 / 93 / 10,152) are from the shared 20-tap eval corpus at $TMPDIR/eval-home and must be labelled as such in the card — the finding says "the same machine", which reads as a real install. The datum that generalises is the one I took from the real 440-tap install (0 for <code>C++</code>, 60 for <code>cpp</code>).
50
+
51
+ SCOPE OF THE DEFECT — dense rescues it. <code>boost_cli/core/dense.py</code> contains no call to <code>tokenize</code> (it embeds the query string), so <code>retrieve_any</code> takes the <code>elif dense_hits:</code> branch and a machine with a *ready* dense store is NOT hit. The defect is confined to the always-on BM25-only path — every user without a built dense store, plus the MCP surface on such a machine. Note this kills the "invisible from a developer install" excuse the shipped <code>bm25-has-no-stemming</code> card leaned on: this repo's own machine is on that path right now because its dense store was built with <code>BAAI/bge-small-en-v1.5</code> and the configured provider is now <code>voyage</code>.
52
+
53
+ BLAST RADIUS IS WIDER THAN THE THREE NAMED QUERIES. Any query where *every* token is under 2 alphanumerics or non-Latin wipes out: <code>C++</code>, <code>C#</code>, <code>F#</code>, <code>R</code>, <code>C</code>, <code>how to</code>, <code>a the of</code>, <code>代码审查</code>, <code>日本語</code>. A multi-word query with one ordinary Latin word still works (<code>c++ memory safety</code> -&gt; 60 hits, with <code>c++</code> silently erased — that erasure is sibling finding 6's angle).
54
+
55
+ DO NOT WRITE "FALL BACK TO catalog.search" AS THE FIX. I measured the naive remedy and it is unsafe: <code>catalog.search('R')</code> returns <b>10,092 of 10,152</b> entries and <code>catalog.search('how to')</code> returns <b>6,229</b> — noise, not results.
56
+
57
+ <b>Why it is worth doing.</b> A user or agent asking for the most common name of a mainstream language is told the catalogue holds nothing and is sent to <code>boost discover</code> to search all of GitHub for <code>cpp-expert</code>, <code>cpp-reviewer</code> and <code>cpp-coding-standards</code> that are already on their disk — the exact symptom the shipped card <code>bm25-has-no-stemming</code> was written to kill, arriving through a different door. It is worse on the MCP surface, where <code>boost_search</code> answers an agent "no skills match 'C++'" and the agent has no second query to try.
58
+
59
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: corpus-refresh-updates-data-not-prose
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Quality · Retrieval eval
7
+ complexity: S
8
+ impact: Low
9
+ wow: 2
10
+ note: .github/workflows/eval-corpus-refresh.yml regenerates taps.txt's data rows and baseli…
11
+ order: 201
12
+ owner:
13
+ pr:
14
+ title: The monthly corpus refresh rewrote the pins and the baseline but left every documented number stale — taps.txt now contradicts its own header, and nothing checks it
15
+ ---
16
+ <b>Measured.</b> tests/eval/taps.txt contradicts itself inside one file: its header at line 25 states the corpus is "<b>10,152 entries</b>", while its own twenty data rows fifty lines below sum to 10,731 (<code>awk '!/^#/ &amp;&amp; NF {s+=$3} END {print s}'</code>), and an independent materialisation at exactly those pinned SHAs measures 10,731 entries across 20 taps with sickn33 at 61.8% - verified at HEAD 5ec7ed75.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt;</code><br>
21
+ <code>git show --stat cbc0a58b</code><br>
22
+ <code>grep -n '10,152\|6,309\|62.1\|1,616\|0.852' tests/eval/taps.txt scripts/eval_corpus.py CLAUDE.md Makefile .github/workflows/eval-scale.yml tests/unit/test_eval_corpus.py</code><br>
23
+ <code>sed -n '48,70p' tests/eval/taps.txt # data rows: sickn33 ... 6634, ECC ... 1621</code><br>
24
+ <code>awk '!/^#/ &amp;&amp; NF {s+=$3} END {print "pinned rows sum to", s}' tests/eval/taps.txt # -&gt; 10731</code><br>
25
+ <code>.venv/bin/python -c "import json;d=json.load(open('tests/eval/baseline.json'));print(json.dumps(d['sets']['golden.jsonl@a0617183f8c9']['engines']['BM25 full-content'],indent=1))"</code>
26
+
27
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
28
+
29
+ Only one statement in the finding is false, and it is narrow:
30
+
31
+ 1. "the same stale figures propagate to ... the Makefile" is WRONG. The Makefile contains no "10,152" (<code>grep -c '10,152' Makefile</code> -&gt; 0) and Makefile:126 quotes a DIFFERENT, older stale set: "0.863 / 0.473 / 0.607 / 0.662", which matches neither the pre-refresh baseline (0.8516/0.4725/0.6048/0.6575) nor the post-refresh one (0.8407/0.4835/0.6065/0.6552). Makefile:126 is stale prose, but it went stale before this refresh, not because of it. (Makefile:132-133 is separately stale in the other direction: it says the corpus "tracks upstream HEAD rather than pinned commits", untrue since #410 pinned it.) The card must not claim the refresh caused the Makefile drift.
32
+
33
+ 2. Under-count of call sites. The finding lists six files; there are at least four more quoting "10,152", one of which is ACTIVE rather than merely left behind: - scripts/build_scale_corpus.py:189 emits the literal string "# 10,152 entries and a real install carries ~71,655..." into tests/eval/taps-scale.txt on regeneration, so a build step re-writes the stale number. - scripts/build_scale_corpus.py:6, tests/eval/taps-scale.txt:11, tests/unit/test_scale_corpus.py:5. - Also scripts/eval_corpus.py:10 ("affaan-m/ECC alone is 1,616"), which the finding's line list omits.
34
+
35
+ 3.
36
+
37
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
38
+
39
+ SCOPE OF MY REPRO. I materialised the corpus at the shipped pins in my own disposable HOME (network reachable, 20 blobless sparse clones) and scored it with the exact <code>make eval</code> invocation, so the 10,731 / 61.8% / 76.9% / 0.841-0.484-0.607-0.655 figures are my own measurements, not the finder's. I did not touch the shared read-only eval-home except to read its caches; that corpus is still at the PRE-refresh pins (sickn33 @ d43065e) and totals 10,152 with sickn33 at 6,309 - which is what let me confirm both sides of the move rather than only the new one. My runs wrote nothing into the repo (<code>git status --short</code> shows only a peer session's four modified boost_cli/tests files, none under tests/eval/ or scripts/).
40
+
41
+ CORRECTED, not REFUTED, and the correction is small: sizes, shares, line numbers, the baseline match, the monthly cron and "no test covers it" all reproduced exactly. Only the Makefile attribution is wrong, plus an under-count of sites. Do not let CORRECTED read as doubt about the defect.
42
+
43
+ DO NOT list roadmap item bodies as stale. <code>eval-corpus-was-not-actually-pinned.md</code>, <code>eval-corpus-is-one-strangers-repo.md</code>, <code>eval-corpus-is-96x-smaller-than-a-real-install.md</code>, <code>BOOST-D12.md</code> and the CLI-audit cards all quote 10,152 / 6,309 / 0.852, but they are dated records of a measurement that was true when written. The live surfaces are the ones that must be fixed.
44
+
45
+ NOT A DUPLICATE, but cross-link it.
46
+
47
+ <b>Why it is worth doing.</b> taps.txt's header is the primary explanation of what the corpus is and why the floors sit where they do; it now states a size, a concentration and a four-metric score that its own data rows contradict, and CLAUDE.md repeats them as the project's ground truth. The next person reasoning about the corpus (or the next agent re-deriving the floors) reads numbers that are one refresh out of date, and the drift widens every month because the job that causes it is scheduled and nothing fails when the prose and the rows disagree.
48
+
49
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -0,0 +1,53 @@
1
+ ---
2
+ id: corrupt-config-reads-as-ready-to-set-up
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Onboarding · Bug
7
+ complexity: M
8
+ impact: Med
9
+ wow: 3
10
+ note: Doctor has no config-integrity check. When ~/.boost/config.json fails to parse, confi…
11
+ order: 202
12
+ owner:
13
+ pr:
14
+ title: With a corrupt config.json, doctor reports "no registries tapped" and verdicts "● ready to set up" exit 0 while search is dead; heal says "nothing to heal"
15
+ ---
16
+ <b>Measured.</b> With a corrupt <code>~/.boost/config.json</code> on a machine holding 1 tap clone (<code>repos/verify-30-fix</code>) and its catalog cache (<code>cache/verify-30-fix.json</code>), <code>boost doctor --json</code> returns <code>{"issues": 0, "ok": true, "verdict": "ready to set up — tap a registry to make boost searchable"}</code> with exit 0 and no corruption entry anywhere in its <code>checks</code> array, on the same machine where <code>boost search brainstorm</code> exits 1 with "no taps configured — nothing to search" — because the only notice of the corruption is emitted by <code>config.load()</code> before <code>report.Report</code> exists and is routed to stderr (<code>config.py:205-210</code>), so it can never be counted, never reach <code>--json</code>, and never reach <code>boost doctor &gt; health.log</code>.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt; || exit 1</code><br>
21
+ <code>export HOME=$TMPDIR/audit-doctor-verify3; export BOOST_HOME=$HOME/.boost; mkdir -p "$HOME"</code><br>
22
+ <code>python3 tests/make_fixture.py $TMPDIR/audit-doctor-fix3 &gt;/dev/null</code><br>
23
+ <code>./boost tap $TMPDIR/audit-doctor-fix3 &gt;/dev/null 2&gt;&amp;1</code><br>
24
+ <code>BOOST_ASSUME_YES=1 ./boost install brainstorming &gt;/dev/null 2&gt;&amp;1</code><br>
25
+ <code>printf '{"taps": [' &gt; "$BOOST_HOME/config.json"</code><br>
26
+ <code>ls -1 "$BOOST_HOME/repos" | wc -l # 1 clone still on disk</code><br>
27
+ <code>./boost doctor; echo "DOCTOR_EXIT=$?" # "no registries tapped" ... "● ready to set up", 0</code><br>
28
+ <code>./boost heal; echo "HEAL_EXIT=$?" # "✓ nothing to heal", 0</code><br>
29
+ <code>./boost search brainstorm; echo "SEARCH_EXIT=$?" # "no taps configured", 1</code>
30
+
31
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
32
+
33
+ The BEHAVIOUR is exactly as claimed. Every source citation in the finding is wrong.
34
+
35
+ 1. FILE PATH. The finding says "quality.py" with no directory and implies core. The file is <code>boost_cli/commands/quality.py</code>. There is no <code>boost_cli/core/quality.py</code> (<code>sed</code> on that path errors: No such file or directory).
36
+
37
+ 2. VERDICT BRANCH. Finding says <code>quality.py:744-750</code>. Actual: the block is lines <b>727-736</b>, with <code>if issues == 0 and not taps:</code> on line <b>728</b> and <code>rep.verdict(True, "ready to set up — tap a registry to make boost searchable")</code> on 729-730.
38
+
39
+ 3. ORPHANED-STORE-DIR CHECK. Finding says <code>quality.py:646-651</code>. Actual: <b>612-618</b> (<code>orphans = [c.name for c in sorted(root.iterdir()) ...]</code> at 613, <code>bad("orphans", ...)</code> at 617-618).
40
+
41
+ 4. These line numbers were never right. I checked HEAD, HEAD~1, HEAD~2, HEAD~3, HEAD~5 and HEAD~10 (verdict line 728/728/723/723/720/720; orphan line 617/617/614/614/611/611) and the three other copies in the tree (.claude/worktrees/bmad-autopilot: 631/537; build/lib: -/510; mutants/: the block is absent). Nothing anywhere has 744 or 646, so this is not stale line numbers from a recent move — it is a miscount.
42
+
43
+ 5. WORDING OF THE FINDING'S "printed above doctor's own heading".
44
+
45
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
46
+
47
+ SCOPE OF MY REPRO — do not let a card overstate it: - I measured <b>1 clone + 1 catalog cache</b> on disk against "0 taps synced". The finding's "a user who has been using boost for months" is extrapolation, not measured. State the disparity as "N clones on disk vs 0 taps reported" and cite N=1 as what was actually verified. - I did NOT test <code>boost tap --defaults</code> (needs network). The claim that following doctor's advice re-taps defaults over the real list is unverified; what IS verified is that any tap write quarantines the old file to <code>config.json.corrupt</code> first, so the list is recoverable. That mitigation is why Med holds rather than High. - Fixture-tap repro only; no claim about a starter/default registry set.
48
+
49
+ THREE ROADMAP PRECEDENTS — none is a duplicate, all must be cited by the author: - <code>docs/roadmap/items/audit-doctor-findings.md</code> (shipped, PR #656) fixed THIS EXACT CLASS — an "!" line that wears the issue glyph but is never counted, under a "● healthy" exit-0 verdict — but only for the crash-report notice. The config-corrupt warning is a second instance that fix did not reach, and is harder because it originates outside doctor's own code. - <code>docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md</code> (shipped, PR #674) is the lock-file sibling and ships the FIX PATTERN to copy: <code>lockfile.check()</code> returning ok/missing/corrupt instead of the empty skeleton <code>read()</code> collapses to, plus <code>store.has_content()</code> to tell a genuinely empty install from one whose record vanished.
50
+
51
+ <b>Why it is worth doing.</b> This is the worst wording doctor can choose for the state: a user who has been using boost for months is told they are a new user who has not set anything up yet, with a zero exit code, and the repair command agrees there is nothing wrong. Following the printed advice (<code>boost tap --defaults</code>) re-taps the defaults over their real registry list — recoverable only because a <code>.corrupt</code> sidecar happens to be written, which neither doctor nor heal mentions. Doctor already knows how to compare on-disk state against a record (the orphaned-store-dir check); the same comparison against <code>repos/</code> would turn this into one accurate line.
52
+
53
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: dense-kill-switch-has-no-reason-state
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Quality · Retrieval eval
7
+ complexity: M
8
+ impact: Med
9
+ wow: 3
10
+ note: embed.enabled() short-circuits provider() to None (embed.py:134), so BOOST_NO_EMBED=1…
11
+ order: 203
12
+ owner:
13
+ pr:
14
+ title: BOOST_NO_EMBED has no state in the reason ladder: doctor calls a deliberate kill switch a degraded fault (exit 1) and hands advice that is a measured no-op in both branches
15
+ ---
16
+ <b>Measured.</b> With <code>BOOST_NO_EMBED=1</code> and a 5-chunk voyage-4 store, <code>dense.fix_hint</code> tells the user "set the key it was built with: <code>export VOYAGE_API_KEY=...</code>"; exporting that key produces a byte-identical status (reason='no-key', degraded=True, ready=False) and the byte-identical hint — the kill switch is read in <code>provider()</code> before any key, so boost's own remedy is a measured no-op, on both <code>boost doctor</code> (exit 1) and <code>boost search</code>.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt;</code><br>
21
+ <code>export HOME=$TMPDIR/verify-dense-f3; export BOOST_HOME=$HOME/.boost; mkdir -p "$HOME"</code><br>
22
+ <code>unset VOYAGE_API_KEY OPENAI_API_KEY BOOST_NO_EMBED</code><br>
23
+ <code>python3 tests/make_fixture.py $TMPDIR/verify-dense-f3-fix &gt;/dev/null</code><br>
24
+ <code>./boost tap $TMPDIR/verify-dense-f3-fix &gt;/dev/null</code><br>
25
+ <code># ./boost is system python3 (no sqlite_vec) -&gt; reports no-backend. Use .venv below.</code><br>
26
+ <code>build () { # $1 provider $2 model $3 dim</code><br>
27
+ <code>.venv/bin/python - "$1" "$2" "$3" &lt;&lt;'PY'</code><br>
28
+ <code>import hashlib, sys; sys.path.insert(0, ".")</code><br>
29
+ <code>from boost_cli.core import catalog, dense, embed</code><br>
30
+ <code>P, M, DIM = sys.argv[1], sys.argv[2], int(sys.argv[3])</code><br>
31
+ <code>def fake(texts, input_type=None, timeout=60):</code><br>
32
+ <code> out = []</code><br>
33
+ <code> for t in texts:</code><br>
34
+ <code> h = hashlib.sha256(t.encode()).digest()</code><br>
35
+ …
36
+
37
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
38
+
39
+ Every card-worthy measurement is exact. Only citation ranges drift:
40
+
41
+ 1. "eight lines away in the same module" (why_it_matters) is FALSE as written and is the one non-trivial correction. <code>embed.fallback_note()</code> is in boost_cli/core/embed.py:170-179; the inert <code>_FIX</code> table is in boost_cli/core/dense.py:520-534. Different files, ~340 lines and one module apart. Do not put "eight lines away" on the card — it misstates where the fix lives. 2. "dense.py:513-516 states the invariant" -&gt; the quoted sentence spans dense.py:512-514 (512 is "# Why dense retrieval isn't serving...", 513 is "# Each names the ONE next action..."). 3. "<code>_FIX</code> (dense.py:522-533)" -&gt; <code>_FIX</code> is dense.py:520-534; the entries span 521-533. The 8-key count is correct. 4. "tests/unit/test_dense_status.py:100-101" -&gt; the comment and the <code>assert st["degraded"] is False</code> are at 101-102 (line 100 is <code>assert st["model"] is None</code>). 5. "embed.py:134" -&gt; the guard <code>if not enabled():</code> is 133 and <code>return None</code> is 134. Accurate enough as cited.
42
+
43
+ Confirmed exact: reason/degraded/built_provider in both branches; both hint strings verbatim; doctor rc=1; the fallback_note string; 8 <code>_FIX</code> keys; test_dense_status.py:264 and its lack of a store; 432 roadmap items; 0 BOOST_NO_EMBED hits in roadmap items; embed.py:32 kill-switch doc line.
44
+
45
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
46
+
47
+ 1. BLAST RADIUS IS TWO SURFACES, NOT ONE. The finding only measured <code>boost doctor</code>. I also measured <code>boost search</code> under the kill switch: it prints the same inert "set the key it was built with" line (both read the one <code>dense.fix_hint</code> table, by design — CLAUDE.md's "doctor and search cannot give contradictory advice" rule). The card should say both.
48
+
49
+ 2. AN EXISTING CARD PROPOSES A FIX THAT WOULD MAKE THIS WORSE. <code>docs/roadmap/items/audit-quickstart-findings.md</code> line 18 ("The <code>[rag]</code> install hint has three different wordings") proposes: "have <code>embed.fallback_note()</code> and both quickstart paths call <code>dense.fix_hint()</code>". Executed as written that deletes the only correct kill-switch sentence in the codebase (embed.py:178). This card's fix must go the other direction — add a <code>disabled</code> reason to the ladder in <code>status()</code> and give <code>_FIX</code> that key — or the two cards collide. This is not a duplicate (that card is about zsh-unsafe unquoted <code>pip install boost-skill-cli[rag]</code>, not the kill switch), but a card author must be told.
50
+
51
+ 3. THE ONLY ESCAPE IS DELETING THE VECTORS. I renamed the store away and <code>degraded</code> flipped to False (reason stays 'no-key' but <code>degraded = store_exists and reason is not None</code>). So the exit code is not literally unfixable — but the only remedy is discarding every vector the user paid to embed, and no hint mentions it. "red forever" in why_it_matters should be phrased as "red until you delete the store".
52
+
53
+ 4. PRECONDITION IS NARROW — do not overstate reach. You must have BUILT a dense store and THEN set the kill switch.
54
+
55
+ <b>Why it is worth doing.</b> <code>BOOST_NO_EMBED</code> is documented as a hard kill switch (embed.py:32) and is what a user or a CI job sets to opt out deliberately — including anyone who hits the previous two findings and wants to stop paying for a broken embedder. Doing so turns <code>boost doctor</code> red forever, which breaks it as a CI gate, and the only remedies boost offers are provably inert: reinstalling an installed package, or exporting a key the kill switch never reads. The correct sentence already exists eight lines away in the same module.
56
+
57
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CONFIRMED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -0,0 +1,59 @@
1
+ ---
2
+ id: dense-no-key-guard-is-unreachable
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Quality · Retrieval eval
7
+ complexity: L
8
+ impact: High
9
+ wow: 4
10
+ note: dense.status() checks prov is None before it looks at the store (dense.py:618-621), b…
11
+ order: 204
12
+ owner:
13
+ pr:
14
+ title: fix_hint's no-key guard has been unreachable since the day it was written; a missing API key now prescribes the full re-embed the guard exists to prevent
15
+ ---
16
+ <b>Measured.</b> On a complete <code>[rag]</code> extra with a voyage-4-built vector store and no API key exported, <code>dense.status()</code> returns <code>reason='provider-changed'</code> (not <code>no-key</code>), so all three status-passing surfaces print <code>rebuild it: \</code>boost reindex --dense --force\`<code> and </code>boost doctor<code> exits 1 — measured verbatim, including doctor's "live key is local; searches are using BM25" line — while the guard written to prevent exactly that (</code>21f28223<code>, #444) fires only under </code>BOOST_NO_EMBED=1` or a partial install, both confirmed by direct probe.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt;</code><br>
21
+ <code>export HOME=$TMPDIR/verify-dense-f1; export BOOST_HOME=$HOME/.boost; mkdir -p "$HOME"</code><br>
22
+ <code>unset VOYAGE_API_KEY OPENAI_API_KEY BOOST_NO_EMBED</code><br>
23
+ <code>python3 tests/make_fixture.py $TMPDIR/verify-dense-f1-fix &gt;/dev/null</code><br>
24
+ <code>./boost tap $TMPDIR/verify-dense-f1-fix &gt;/dev/null</code><br>
25
+ <code># NOTE: ./boost execs system python3, which has no sqlite_vec, so it always says</code><br>
26
+ <code># "no-backend". Every dense command below MUST run under .venv.</code><br>
27
+ <code>.venv/bin/python - &lt;&lt;'PY'</code><br>
28
+ <code>import hashlib, sys; sys.path.insert(0, ".")</code><br>
29
+ <code>from boost_cli.core import catalog, dense, embed</code><br>
30
+ <code>DIM = 1024</code><br>
31
+ <code>def fake(texts, input_type=None, timeout=60): # no network, no API spend</code><br>
32
+ <code> out = []</code><br>
33
+ <code> for t in texts:</code><br>
34
+ <code> h = hashlib.sha256(t.encode()).digest()</code><br>
35
+ …
36
+
37
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
38
+
39
+ The defect is real and reproduced verbatim, but five stated details are wrong:
40
+
41
+ 1. SOURCE ATTRIBUTION OF THE COST FIGURE. <code>why_it_matters</code> says "which CLAUDE.md prices at ~1.2 s per chunk on CPU". <code>grep -n 'per chunk\|1\.2 s' CLAUDE.md</code> returns nothing. The figure is real but lives in the roadmap: <code>docs/roadmap/items/keyless-semantic-search-for-everyone.md:298</code> ("4,431 s — 74 minutes, about 1.2 s per chunk") and <code>:308</code>, plus <code>the-shard-job-that-could-not-finish.md:17</code> and <code>keyless-dense-tier-local-static-embeddings.md:75</code>. Cite the roadmap, not CLAUDE.md.
42
+
43
+ 2. <code>quality.py:769</code> is wrong -&gt; the fix_hint call is <code>boost_cli/commands/quality.py:780</code> (<code>fix = dense.fix_hint(st["reason"], st)</code>). Line 769 sits inside the unrelated <code>search-quantization</code> warning.
44
+
45
+ 3. <code>pyproject.toml:55-57</code> is wrong -&gt; the three pins are at lines <b>56, 67 and 68</b> (<code>sqlite-vec&gt;=0.1.6</code>, <code>onnxruntime&gt;=1.17</code>, <code>tokenizers&gt;=0.15</code>), split by a 10-line comment justifying the fastembed rejection. They are in one extra, which is the load-bearing part, but the range is not 55-57.
46
+
47
+ 4. THE CAUSAL-ORDER COMMIT PAIR NAMES THE WRONG COMMIT FOR THE GUARD. <code>86163e03</code> (2026-07-31, #364) created <code>test_dense_fix_hint.py</code> <b>and the <code>_FIX</code> table</b>, but not the guard.
48
+
49
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
50
+
51
+ PRECONDITION — state it on the card so nobody reads it as unconditional. The misroute needs (a) a store built with an API provider, (b) the complete <code>[rag]</code> extra so <code>provider()</code> falls through to <code>local</code>, and (c) the key absent from the *process* environment. #444's own commit message documents that shape as recurring in the wild: "the shell exports one; the spawned server does not inherit it."
52
+
53
+ THE REAL MACHINE IS NOT CURRENTLY IN THE BUG STATE. <code>~/.boost/cache/rag_vectors.sqlite</code> reads provider="local", model="BAAI/bge-small-en-v1.5", dim=384 — so <code>provider()</code> matches <code>built_provider</code> and its reason is None. The 645,592-chunk / 1.20 GB / 440-tap figure is <b>cost-if-the-hint-is-followed</b>, not present harm. Do not let the card imply the machine is broken today. (The 750,416-chunk voyage-4 store in the #444 message and the test docstring is a past state of the same machine.)
54
+
55
+ THE MISDIAGNOSIS WAS REFUTABLE FROM THE SAME FILE. The <code>_FIX</code> comment — "This reason means 'no key AND no local backend', which in practice is a partial install or BOOST_NO_EMBED" — was already in <code>dense.py</code> from 86163e03 (07-31) when #444 (08-03) added a guard whose docstring asserts the opposite: "an unfinished install with no store and a complete install whose key merely went missing both land here." Two claims about <code>no-key</code>, 30 lines apart, that contradict each other.
56
+
57
+ <b>Why it is worth doing.</b> A user who opens a new shell without exporting their key is told by doctor, search and the MCP server to re-embed their whole store. On the real machine in this repo that is 645,592 chunks / 1.20 GB, which CLAUDE.md prices at ~1.2 s per chunk on CPU — hours of compute, or a real API bill — to fix a problem whose actual remedy is one <code>export</code>. The repo already decided this was unacceptable and wrote six tests plus a paragraph of docstring to prevent it; the guard has simply never been able to fire.
58
+
59
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>