boost-skill-cli 1.0.340__tar.gz → 1.0.342__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 (581) hide show
  1. {boost_skill_cli-1.0.340/boost_skill_cli.egg-info → boost_skill_cli-1.0.342}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  4. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +53 -0
  5. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap.html +54 -1
  6. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_dense_shards.py +76 -1
  7. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.gitattributes +0 -0
  8. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.gitignore +0 -0
  9. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.gitleaks.toml +0 -0
  10. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.htmlvalidate.json +0 -0
  11. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.lighthouserc.json +0 -0
  12. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.lycheeignore +0 -0
  13. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.markdownlint-cli2.jsonc +0 -0
  14. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.pre-commit-config.yaml +0 -0
  15. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.stylelintrc.json +0 -0
  16. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.vale/styles/boost/Terminology.yml +0 -0
  17. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  18. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/.vale.ini +0 -0
  19. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/CLAUDE.md +0 -0
  20. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/CODE_OF_CONDUCT.md +0 -0
  21. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/CONTRIBUTING.md +0 -0
  22. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/LICENSE +0 -0
  23. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/MANIFEST.in +0 -0
  24. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/Makefile +0 -0
  25. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/README.md +0 -0
  26. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/SECURITY.md +0 -0
  27. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost +0 -0
  28. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/__init__.py +0 -0
  29. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/__main__.py +0 -0
  30. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/cli.py +0 -0
  31. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/cliparse.py +0 -0
  32. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/__init__.py +0 -0
  33. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/_common.py +0 -0
  34. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/bmad.py +0 -0
  35. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/configuration.py +0 -0
  36. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/discovery.py +0 -0
  37. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/hooks.py +0 -0
  38. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/info.py +0 -0
  39. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/intelligence.py +0 -0
  40. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/pkg.py +0 -0
  41. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/quality.py +0 -0
  42. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/run.py +0 -0
  43. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/safety.py +0 -0
  44. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/taps.py +0 -0
  45. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/commands/team.py +0 -0
  46. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/__init__.py +0 -0
  47. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/adapters.py +0 -0
  48. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/agents.py +0 -0
  49. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/ai.py +0 -0
  50. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/capabilities.py +0 -0
  51. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/catalog.py +0 -0
  52. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/claude_settings.py +0 -0
  53. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/config.py +0 -0
  54. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/dense.py +0 -0
  55. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/ed25519.py +0 -0
  56. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/embed.py +0 -0
  57. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/faithfulness.py +0 -0
  58. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/frontmatter.py +0 -0
  59. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/gitutil.py +0 -0
  60. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/imperative.py +0 -0
  61. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/injectscan.py +0 -0
  62. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/installscan.py +0 -0
  63. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/integrity.py +0 -0
  64. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/journal.py +0 -0
  65. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/localembed.py +0 -0
  66. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/lockfile.py +0 -0
  67. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/logs.py +0 -0
  68. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/mcp.py +0 -0
  69. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/mcpdecl.py +0 -0
  70. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/mcphost.py +0 -0
  71. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/minisign.py +0 -0
  72. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/nethttp.py +0 -0
  73. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/output.py +0 -0
  74. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/paths.py +0 -0
  75. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/policy.py +0 -0
  76. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/projectlock.py +0 -0
  77. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/provenance.py +0 -0
  78. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/rag.py +0 -0
  79. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/registry.py +0 -0
  80. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/resolve.py +0 -0
  81. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/rules.py +0 -0
  82. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/scopes.py +0 -0
  83. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/secretscan.py +0 -0
  84. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/selfupdate.py +0 -0
  85. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/serve.py +0 -0
  86. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/stackprobe.py +0 -0
  87. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/staleness.py +0 -0
  88. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/store.py +0 -0
  89. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/trustaudit.py +0 -0
  90. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/typosquat.py +0 -0
  91. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/updatediff.py +0 -0
  92. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/util.py +0 -0
  93. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/core/workflows.py +0 -0
  94. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/data/registries.json +0 -0
  95. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/errors.py +0 -0
  96. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_cli/spin.py +0 -0
  97. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
  98. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  99. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  100. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_skill_cli.egg-info/requires.txt +0 -0
  101. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/boost_skill_cli.egg-info/top_level.txt +0 -0
  102. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/codecov.yml +0 -0
  103. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/.claude/settings.local.json +0 -0
  104. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/DEBUGGING.md +0 -0
  105. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/adapters.html +0 -0
  106. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/architecture/README.md +0 -0
  107. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/architecture/c4-components-core.md +0 -0
  108. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/architecture/c4-containers.md +0 -0
  109. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/architecture/c4-context.md +0 -0
  110. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/architecture/c4-dynamic-install.md +0 -0
  111. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/gifs/distill.gif +0 -0
  112. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/gifs/doctor.gif +0 -0
  113. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/gifs/explain.gif +0 -0
  114. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/gifs/hooks.gif +0 -0
  115. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/gifs/install.gif +0 -0
  116. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/gifs/pulse.gif +0 -0
  117. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/gifs/search.gif +0 -0
  118. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/gifs/tap.gif +0 -0
  119. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/tapes/distill.tape +0 -0
  120. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/tapes/doctor.tape +0 -0
  121. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/tapes/explain.tape +0 -0
  122. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/tapes/hooks.tape +0 -0
  123. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/tapes/install.tape +0 -0
  124. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/tapes/pulse.tape +0 -0
  125. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/tapes/search.tape +0 -0
  126. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel/tapes/tap.tape +0 -0
  127. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/carousel.html +0 -0
  128. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/commands.html +0 -0
  129. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/demo.gif +0 -0
  130. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/demo.tape +0 -0
  131. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/design-roadmap.html +0 -0
  132. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/eval.html +0 -0
  133. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/index.html +0 -0
  134. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/mcp-hub.html +0 -0
  135. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/rag-architecture.md +0 -0
  136. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D01.md +0 -0
  137. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D02.md +0 -0
  138. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D03.md +0 -0
  139. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D04.md +0 -0
  140. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D05.md +0 -0
  141. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D06.md +0 -0
  142. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D07.md +0 -0
  143. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D08.md +0 -0
  144. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D09.md +0 -0
  145. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D10.md +0 -0
  146. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D11.md +0 -0
  147. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D12.md +0 -0
  148. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D13.md +0 -0
  149. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D14.md +0 -0
  150. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D15.md +0 -0
  151. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D16.md +0 -0
  152. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D17.md +0 -0
  153. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D18.md +0 -0
  154. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D19.md +0 -0
  155. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D20.md +0 -0
  156. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D21.md +0 -0
  157. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D22.md +0 -0
  158. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D23.md +0 -0
  159. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D24.md +0 -0
  160. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D25.md +0 -0
  161. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/BOOST-D26.md +0 -0
  162. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  163. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  164. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  165. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  166. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  167. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  168. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  169. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  170. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  171. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  172. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  173. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  174. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  175. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  176. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  177. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  178. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  179. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  180. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  181. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  182. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  183. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  184. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  185. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/command-carousel-page.md +0 -0
  186. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  187. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  188. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  189. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  190. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  191. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  192. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  193. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  194. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  195. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  196. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  197. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  198. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  199. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  200. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  201. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  202. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  203. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  204. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  205. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  206. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  207. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  208. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  209. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  210. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  211. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  212. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  213. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  214. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  215. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/github-community-health-files.md +0 -0
  216. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  217. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  218. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  219. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  220. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  221. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  222. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  223. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  224. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  225. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  226. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  227. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  228. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  229. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  230. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  231. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  232. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  233. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  234. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  235. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  236. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  237. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  238. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  239. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  240. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  241. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  242. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  243. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  244. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  245. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  246. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  247. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  248. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  249. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  250. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  251. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  252. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  253. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  254. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  255. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  256. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  257. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  258. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  259. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  260. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  261. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  262. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  263. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  264. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  265. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  266. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  267. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  268. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  269. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  270. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  271. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  272. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  273. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  274. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  275. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  276. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  277. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  278. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  279. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  280. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  281. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  282. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  283. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  284. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  285. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  286. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  287. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  288. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  289. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  290. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  291. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  292. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  293. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  294. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  295. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  296. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  297. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  298. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  299. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  300. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  301. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  302. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  303. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  304. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  305. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  306. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  307. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  308. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  309. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  310. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  311. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  312. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  313. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  314. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  315. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  316. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  317. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  318. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  319. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  320. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  321. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  322. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  323. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  324. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  325. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  326. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  327. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  328. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  329. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  330. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  331. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  332. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  333. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  334. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  335. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  336. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  337. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  338. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  339. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  340. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  341. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  342. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  343. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  344. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  345. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  346. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  347. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  348. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  349. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  350. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/workspace-scope-install.md +0 -0
  351. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  352. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/eslint.config.mjs +0 -0
  353. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/README.md +0 -0
  354. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/__init__.py +0 -0
  355. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/baseline.json +0 -0
  356. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/faithfulness.py +0 -0
  357. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/golden_set.json +0 -0
  358. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/make_corpus.py +0 -0
  359. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/make_golden.py +0 -0
  360. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/metrics.py +0 -0
  361. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/evals/run_evals.py +0 -0
  362. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/examples/README.md +0 -0
  363. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/examples/adapt-demo.sh +0 -0
  364. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/examples/boost-run-prototype.sh +0 -0
  365. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/index.html +0 -0
  366. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/noxfile.py +0 -0
  367. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/pyproject.toml +0 -0
  368. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/coverage-tools.in +0 -0
  369. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/coverage-tools.txt +0 -0
  370. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/lint-tools.in +0 -0
  371. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/lint-tools.txt +0 -0
  372. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/mutation-tools.in +0 -0
  373. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/mutation-tools.txt +0 -0
  374. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/platform-pins.lock +0 -0
  375. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/release-tools.in +0 -0
  376. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/release-tools.txt +0 -0
  377. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/test-tools.in +0 -0
  378. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/requirements/test-tools.txt +0 -0
  379. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/a11y_check.py +0 -0
  380. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/bench_cli.sh +0 -0
  381. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/build_command_reference.py +0 -0
  382. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/build_registries.py +0 -0
  383. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/build_roadmap.py +0 -0
  384. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/check_anchors.py +0 -0
  385. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/check_licenses.py +0 -0
  386. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/check_required_checks.py +0 -0
  387. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/ensure_eval_corpus.sh +0 -0
  388. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/eval_explain.py +0 -0
  389. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/eval_gate.py +0 -0
  390. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/eval_recommend.py +0 -0
  391. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/eval_retrieval.py +0 -0
  392. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/eval_stats_summary.py +0 -0
  393. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/import_budget.py +0 -0
  394. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/lock_toolchain.py +0 -0
  395. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/mutation_gate.py +0 -0
  396. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/mutation_shards.py +0 -0
  397. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/mutation_weights.json +0 -0
  398. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/perf_gate.py +0 -0
  399. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/post_deploy_smoke.py +0 -0
  400. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/release_guard.py +0 -0
  401. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/scripts/release_preflight.py +0 -0
  402. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/setup.cfg +0 -0
  403. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/sonar-project.properties +0 -0
  404. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/style/README.md +0 -0
  405. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/style/boost.css +0 -0
  406. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/style/boost.js +0 -0
  407. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/style/demo.html +0 -0
  408. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/adapt.feature +0 -0
  409. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/browse.feature +0 -0
  410. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/count.feature +0 -0
  411. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/discover.feature +0 -0
  412. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/doctor.feature +0 -0
  413. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/environment.py +0 -0
  414. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/explain.feature +0 -0
  415. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/index.feature +0 -0
  416. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/install.feature +0 -0
  417. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/list.feature +0 -0
  418. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/mcp.feature +0 -0
  419. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/search.feature +0 -0
  420. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/steps/cli_steps.py +0 -0
  421. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/steps/discovery_steps.py +0 -0
  422. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/steps/mcp_steps.py +0 -0
  423. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/bdd/features/steps/quality_steps.py +0 -0
  424. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/conftest.py +0 -0
  425. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/eval/baseline.json +0 -0
  426. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/eval/explain.jsonl +0 -0
  427. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/eval/golden-natural.jsonl +0 -0
  428. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/eval/golden.jsonl +0 -0
  429. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/eval/recommend.jsonl +0 -0
  430. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/eval/taps.txt +0 -0
  431. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_capabilities_policy.py +0 -0
  432. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_adapt.py +0 -0
  433. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_bmad.py +0 -0
  434. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_configuration.py +0 -0
  435. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_discovery.py +0 -0
  436. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_hooks.py +0 -0
  437. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_info.py +0 -0
  438. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_intelligence.py +0 -0
  439. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_pkg.py +0 -0
  440. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_quality.py +0 -0
  441. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_taps.py +0 -0
  442. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_cli_team.py +0 -0
  443. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_everyday_loop.py +0 -0
  444. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_integrity_enforce.py +0 -0
  445. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_property_parsers.py +0 -0
  446. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_run.py +0 -0
  447. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_tap_signing.py +0 -0
  448. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/functional/test_workspace_scope.py +0 -0
  449. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/README.md +0 -0
  450. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  451. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  452. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  453. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  454. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  455. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  456. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  457. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  458. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  459. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  460. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  461. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  462. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  463. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  464. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  465. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  466. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  467. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  468. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  469. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  470. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/fuzz_frontmatter.py +0 -0
  471. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/fuzz/fuzz_registry.py +0 -0
  472. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/make_fixture.py +0 -0
  473. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/perf/test_benchmarks.py +0 -0
  474. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/smoke.sh +0 -0
  475. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_a11y_check.py +0 -0
  476. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_adapters.py +0 -0
  477. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_adapters_multi.py +0 -0
  478. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_adapters_runner.py +0 -0
  479. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_agents.py +0 -0
  480. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_ai.py +0 -0
  481. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_capabilities.py +0 -0
  482. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_catalog.py +0 -0
  483. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_check_anchors.py +0 -0
  484. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_check_licenses.py +0 -0
  485. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_claude_settings.py +0 -0
  486. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_cliparse.py +0 -0
  487. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_codeql_analysis_key.py +0 -0
  488. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_command_reference_fresh.py +0 -0
  489. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_community_health_files.py +0 -0
  490. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_config.py +0 -0
  491. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_content_dedupe.py +0 -0
  492. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_dedup_trust.py +0 -0
  493. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_dense.py +0 -0
  494. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_dense_fallback.py +0 -0
  495. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_dense_fix_hint.py +0 -0
  496. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_dense_status.py +0 -0
  497. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_dependabot_config.py +0 -0
  498. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_docs_pages_linked.py +0 -0
  499. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_docsite_chrome.py +0 -0
  500. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_ed25519.py +0 -0
  501. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_embed.py +0 -0
  502. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_embed_local.py +0 -0
  503. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_entry_key.py +0 -0
  504. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_errors_and_cli_table.py +0 -0
  505. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_eval_baseline.py +0 -0
  506. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_eval_faithfulness.py +0 -0
  507. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_eval_gate.py +0 -0
  508. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_eval_metrics.py +0 -0
  509. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_eval_stats_summary.py +0 -0
  510. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_faithfulness.py +0 -0
  511. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_frontmatter.py +0 -0
  512. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_fuzz_targets.py +0 -0
  513. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_gitleaks_config.py +0 -0
  514. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_gitutil.py +0 -0
  515. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_imperative.py +0 -0
  516. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_import_budget.py +0 -0
  517. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_injectscan.py +0 -0
  518. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_installscan.py +0 -0
  519. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_integrity.py +0 -0
  520. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_journal.py +0 -0
  521. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_localembed.py +0 -0
  522. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_localembed_e2e.py +0 -0
  523. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_lockfile.py +0 -0
  524. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_logs.py +0 -0
  525. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_marketing_counts.py +0 -0
  526. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_mcp.py +0 -0
  527. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_mcp_install_scan.py +0 -0
  528. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_mcpdecl.py +0 -0
  529. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_mcphost.py +0 -0
  530. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_minisign.py +0 -0
  531. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_mutation_hardening.py +0 -0
  532. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_mutation_shards.py +0 -0
  533. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_mutation_subfile_shards.py +0 -0
  534. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_mutmut_source_paths.py +0 -0
  535. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_nethttp.py +0 -0
  536. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_output.py +0 -0
  537. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_paths.py +0 -0
  538. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_perf_gate.py +0 -0
  539. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_pkg_confusions.py +0 -0
  540. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_pkg_injection.py +0 -0
  541. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_pkg_secrets.py +0 -0
  542. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_platform_pins.py +0 -0
  543. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_policy.py +0 -0
  544. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_post_deploy_smoke.py +0 -0
  545. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_project_mcp_sidecar.py +0 -0
  546. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_projectlock.py +0 -0
  547. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_provenance.py +0 -0
  548. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_rag.py +0 -0
  549. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_rag_fusion.py +0 -0
  550. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_registries_fresh.py +0 -0
  551. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_registry.py +0 -0
  552. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_registry_categories.py +0 -0
  553. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_release_guard.py +0 -0
  554. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_release_preflight.py +0 -0
  555. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_required_checks.py +0 -0
  556. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_resolve.py +0 -0
  557. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_roadmap_fresh.py +0 -0
  558. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_rules.py +0 -0
  559. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_scopes.py +0 -0
  560. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_secretscan.py +0 -0
  561. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_selfupdate.py +0 -0
  562. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_serve.py +0 -0
  563. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_spin.py +0 -0
  564. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_stackprobe.py +0 -0
  565. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_staleness.py +0 -0
  566. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_store.py +0 -0
  567. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_token_parity.py +0 -0
  568. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_toolchain_lock.py +0 -0
  569. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_trustaudit.py +0 -0
  570. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_typosquat.py +0 -0
  571. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_updatediff.py +0 -0
  572. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_util.py +0 -0
  573. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_version.py +0 -0
  574. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_workflow_concurrency.py +0 -0
  575. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_workflow_timeouts.py +0 -0
  576. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/unit/test_workflows.py +0 -0
  577. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/visual/a11y_check.mjs +0 -0
  578. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/visual/console_check.mjs +0 -0
  579. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/visual/package-lock.json +0 -0
  580. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/tests/visual/package.json +0 -0
  581. {boost_skill_cli-1.0.340 → boost_skill_cli-1.0.342}/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.0.340
3
+ Version: 1.0.342
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -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.0.340'
22
- __version_tuple__ = version_tuple = (1, 0, 340)
21
+ __version__ = version = '1.0.342'
22
+ __version_tuple__ = version_tuple = (1, 0, 342)
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.0.340
3
+ Version: 1.0.342
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -331,3 +331,56 @@ both sides, and only the document half can be shipped ahead of time.
331
331
  <b>Still open in step 2:</b> the CI workflow that publishes shards as release artifacts, and the
332
332
  <code>boost tap</code> integration that fetches one automatically. Both are now plumbing on top of a
333
333
  verified mechanism rather than open questions. Steps 3 and 5 are untouched.
334
+
335
+ <b>Step 3 works, and it did not need new code &mdash; it needed proving.</b> Local delta top-up falls
336
+ out of the shard mechanism plus the commit-keyed reuse <code>build()</code> already had:
337
+ <code>import_shard</code> records the tap's commit in the same <code>meta.commits</code> map
338
+ <code>build()</code> consults, so an imported shard is indistinguishable from locally-built vectors
339
+ as far as reuse is concerned.
340
+
341
+ Measured end to end with a stubbed embedder, on a store holding an imported shard for
342
+ <code>anthropics/skills</code> plus a freshly tapped <code>Aaronontheweb/dotnet-cursor-rules</code>:
343
+ <b>158 chunks embedded &mdash; the new tap only &mdash; and the shard's 262 untouched</b>. The
344
+ resulting store is one coherent embedding space: 420 vectors, both taps' commits recorded, single
345
+ provider/model/dim. That is exactly the shape this step asks for &mdash; shards cover the popular
346
+ registries, the local model makes the long tail self-serve, and cost scales with what a user taps
347
+ rather than with the ecosystem.
348
+
349
+ Two tests now pin it, because the coupling is the kind that breaks silently: an import that forgot to
350
+ record the commit would still produce a <em>working</em> store, and the only symptom would be
351
+ re-embedding the shard's chunks on every later build &mdash; minutes of wasted CPU that nothing
352
+ reports.
353
+
354
+ <b>Steps 1, 2, 3, 4 and 6 are now done; step 5 (a hosted demo) is the remainder</b>, along with the
355
+ CI workflow that publishes shards as release artifacts, which is noted under step 2.
356
+
357
+ <b>Step 2's publishing half is shipped &mdash; <code>.github/workflows/shards.yml</code>.</b> Weekly
358
+ plus on-demand, it taps each registry, embeds it, exports a shard and uploads it as an artifact.
359
+
360
+ <b>It is deliberately not chained off release, and that is the load-bearing decision.</b>
361
+ <code>publish.yml</code> already sits at <code>ci &rarr; release &rarr; sbom</code>, GitHub's
362
+ documented three-level <code>workflow_run</code> limit; a fourth link would silently never fire.
363
+ <code>sbom.yml</code>'s header records exactly what that looks like in this repo &mdash; 253
364
+ releases, 0 runs, 0 assets, a control that appeared present and produced nothing. Shards are keyed on
365
+ a <em>registry's</em> commit anyway, not on a boost release, so coupling them to our version cadence
366
+ would be wrong even if the chain allowed it. Same reasoning for uploading artifacts rather than
367
+ release assets: attaching them to a release would re-publish unchanged vectors on every version bump.
368
+
369
+ <b>Scale drove the shape.</b> At the measured ~1.2&nbsp;s/chunk, the 20-tap corpus is ~3.4&nbsp;h
370
+ against the 6&nbsp;h job limit and the full 466-registry catalogue is far past it. So the workflow
371
+ fans out <b>one job per registry</b> (<code>fail-fast: false</code>, so one bad registry cannot lose
372
+ the others' work) rather than embedding everything in a single job.
373
+
374
+ <b>Two things were caught by testing the pieces locally rather than trusting the YAML.</b> The
375
+ matrix-planning step used <code>printf '%s\n' $repos</code>, which relies on word-splitting that does
376
+ not survive quoting: it produced a <b>one-entry matrix holding all twenty repos as a single
377
+ string</b> &mdash; one job attempting the entire corpus, straight past the job limit, and it would
378
+ have looked like a plausible timeout rather than a bug. Splitting in Python fixes it. The shard
379
+ validation step was also run against a real 262-chunk shard and against a provenance-stripped copy,
380
+ to confirm it accepts one and rejects the other; a shard missing <code>provider</code>,
381
+ <code>model</code>, <code>dim</code> or <code>commit</code> cannot be validated on import and would be
382
+ refused by every consumer, silently, forever.
383
+
384
+ <b>Unproven until it runs:</b> the workflow has never executed. The pieces are tested, the YAML
385
+ parses and the pinned action SHAs match the repo's existing ones, but the first real run is the first
386
+ end-to-end exercise. <b>Step 5 (a hosted demo) is now the only part of this epic left.</b>
@@ -918,7 +918,60 @@ both sides, and only the document half can be shipped ahead of time.
918
918
 
919
919
  <b>Still open in step 2:</b> the CI workflow that publishes shards as release artifacts, and the
920
920
  <code>boost tap</code> integration that fetches one automatically. Both are now plumbing on top of a
921
- verified mechanism rather than open questions. Steps 3 and 5 are untouched.</p>
921
+ verified mechanism rather than open questions. Steps 3 and 5 are untouched.
922
+
923
+ <b>Step 3 works, and it did not need new code &mdash; it needed proving.</b> Local delta top-up falls
924
+ out of the shard mechanism plus the commit-keyed reuse <code>build()</code> already had:
925
+ <code>import_shard</code> records the tap's commit in the same <code>meta.commits</code> map
926
+ <code>build()</code> consults, so an imported shard is indistinguishable from locally-built vectors
927
+ as far as reuse is concerned.
928
+
929
+ Measured end to end with a stubbed embedder, on a store holding an imported shard for
930
+ <code>anthropics/skills</code> plus a freshly tapped <code>Aaronontheweb/dotnet-cursor-rules</code>:
931
+ <b>158 chunks embedded &mdash; the new tap only &mdash; and the shard's 262 untouched</b>. The
932
+ resulting store is one coherent embedding space: 420 vectors, both taps' commits recorded, single
933
+ provider/model/dim. That is exactly the shape this step asks for &mdash; shards cover the popular
934
+ registries, the local model makes the long tail self-serve, and cost scales with what a user taps
935
+ rather than with the ecosystem.
936
+
937
+ Two tests now pin it, because the coupling is the kind that breaks silently: an import that forgot to
938
+ record the commit would still produce a <em>working</em> store, and the only symptom would be
939
+ re-embedding the shard's chunks on every later build &mdash; minutes of wasted CPU that nothing
940
+ reports.
941
+
942
+ <b>Steps 1, 2, 3, 4 and 6 are now done; step 5 (a hosted demo) is the remainder</b>, along with the
943
+ CI workflow that publishes shards as release artifacts, which is noted under step 2.
944
+
945
+ <b>Step 2's publishing half is shipped &mdash; <code>.github/workflows/shards.yml</code>.</b> Weekly
946
+ plus on-demand, it taps each registry, embeds it, exports a shard and uploads it as an artifact.
947
+
948
+ <b>It is deliberately not chained off release, and that is the load-bearing decision.</b>
949
+ <code>publish.yml</code> already sits at <code>ci &rarr; release &rarr; sbom</code>, GitHub's
950
+ documented three-level <code>workflow_run</code> limit; a fourth link would silently never fire.
951
+ <code>sbom.yml</code>'s header records exactly what that looks like in this repo &mdash; 253
952
+ releases, 0 runs, 0 assets, a control that appeared present and produced nothing. Shards are keyed on
953
+ a <em>registry's</em> commit anyway, not on a boost release, so coupling them to our version cadence
954
+ would be wrong even if the chain allowed it. Same reasoning for uploading artifacts rather than
955
+ release assets: attaching them to a release would re-publish unchanged vectors on every version bump.
956
+
957
+ <b>Scale drove the shape.</b> At the measured ~1.2&nbsp;s/chunk, the 20-tap corpus is ~3.4&nbsp;h
958
+ against the 6&nbsp;h job limit and the full 466-registry catalogue is far past it. So the workflow
959
+ fans out <b>one job per registry</b> (<code>fail-fast: false</code>, so one bad registry cannot lose
960
+ the others' work) rather than embedding everything in a single job.
961
+
962
+ <b>Two things were caught by testing the pieces locally rather than trusting the YAML.</b> The
963
+ matrix-planning step used <code>printf '%s\n' $repos</code>, which relies on word-splitting that does
964
+ not survive quoting: it produced a <b>one-entry matrix holding all twenty repos as a single
965
+ string</b> &mdash; one job attempting the entire corpus, straight past the job limit, and it would
966
+ have looked like a plausible timeout rather than a bug. Splitting in Python fixes it. The shard
967
+ validation step was also run against a real 262-chunk shard and against a provenance-stripped copy,
968
+ to confirm it accepts one and rejects the other; a shard missing <code>provider</code>,
969
+ <code>model</code>, <code>dim</code> or <code>commit</code> cannot be validated on import and would be
970
+ refused by every consumer, silently, forever.
971
+
972
+ <b>Unproven until it runs:</b> the workflow has never executed. The pieces are tested, the YAML
973
+ parses and the pinned action SHAs match the repo's existing ones, but the first real run is the first
974
+ end-to-end exercise. <b>Step 5 (a hosted demo) is now the only part of this epic left.</b></p>
922
975
  <div class="meta">
923
976
  <span class="m">Complexity <b>L</b></span>
924
977
  <span class="m hi">Impact <b>High</b></span>
@@ -96,7 +96,19 @@ def with_backend(monkeypatch):
96
96
  instead of exercising the check they are named for, which is how they
97
97
  passed locally and reddened three macOS legs plus the canary.
98
98
  """
99
- monkeypatch.setattr(dense, "_load", lambda: object())
99
+ class _FakeVec:
100
+ """Enough of sqlite_vec for the paths under test.
101
+
102
+ `serialize_float32` is real: tests that WRITE vectors reach it, and a
103
+ bare object() stub only survived while every test stopped at validation.
104
+ """
105
+
106
+ @staticmethod
107
+ def serialize_float32(vec):
108
+ import struct
109
+ return struct.pack("%df" % len(vec), *vec)
110
+
111
+ monkeypatch.setattr(dense, "_load", lambda: _FakeVec)
100
112
  monkeypatch.setattr(dense, "_connect",
101
113
  lambda: sqlite3.connect(str(dense.db_path())))
102
114
 
@@ -240,3 +252,66 @@ class TestWorksWithoutTheExtension:
240
252
  "commit": "c1", "chunks": []}
241
253
  ok, reason = dense.import_shard(shard, commit="c1")
242
254
  assert ok is False and "backend" in reason
255
+
256
+
257
+ class TestDeltaTopUp:
258
+ """An imported shard must make `build` skip that tap and embed only the rest.
259
+
260
+ This is step 3 of the keyless epic — "when a tap runs ahead of its published
261
+ shard, or is a registry CI has never seen, embed just those files on the
262
+ spot". It works because `import_shard` records the tap's commit in the same
263
+ `meta.commits` map that `build` consults, so a shard is indistinguishable
264
+ from locally-built vectors as far as reuse is concerned.
265
+
266
+ That coupling is easy to break silently: an import that forgot to record the
267
+ commit would still produce a working store, and the only symptom would be
268
+ re-embedding the shard's chunks on the next build — minutes of wasted CPU
269
+ that nothing reports. Hence a test.
270
+ """
271
+
272
+ def _tap_seen(self, monkeypatch, commits):
273
+ from boost_cli.core import rag
274
+ monkeypatch.setattr(rag, "_tap_commits", lambda: commits)
275
+ monkeypatch.setattr(rag, "_tap_paths", lambda: {})
276
+
277
+ def test_an_imported_shard_is_reused_not_re_embedded(self, sandbox,
278
+ with_backend,
279
+ monkeypatch):
280
+ from boost_cli.core import embed
281
+ _store(rows=(("a", "acme/skills"),))
282
+ embedded = []
283
+ monkeypatch.setattr(embed, "embed",
284
+ lambda texts, **kw: embedded.extend(texts) or
285
+ [[0.1, 0.2, 0.3] for _ in texts])
286
+ monkeypatch.setattr(embed, "available", lambda: True)
287
+ monkeypatch.setattr(embed, "dimension", lambda: 3)
288
+ monkeypatch.setattr(embed, "provider", lambda: "local")
289
+ monkeypatch.setattr(embed, "model", lambda: "bge")
290
+ self._tap_seen(monkeypatch, {"acme__skills": "c1"})
291
+ entries = [{"name": "a", "tap": "acme/skills", "kind": "skill",
292
+ "skill_md": "a/SKILL.md", "_body": "text", "description": ""}]
293
+ stats = dense.build(entries=entries, force=False)
294
+ assert stats is not None
295
+ assert "acme__skills" in stats["reused"]
296
+ assert embedded == [], "re-embedded a tap the shard already covered"
297
+
298
+ def test_a_tap_the_shard_does_not_cover_is_still_embedded(self, sandbox,
299
+ with_backend,
300
+ monkeypatch):
301
+ # The other half: shards cover the popular registries, the local model
302
+ # makes the long tail self-serve. If this regressed, an uncatalogued
303
+ # registry would be a dead end for a keyless user.
304
+ from boost_cli.core import embed
305
+ _store(rows=(("a", "acme/skills"),))
306
+ monkeypatch.setattr(embed, "embed",
307
+ lambda texts, **kw: [[0.1, 0.2, 0.3] for _ in texts])
308
+ monkeypatch.setattr(embed, "available", lambda: True)
309
+ monkeypatch.setattr(embed, "dimension", lambda: 3)
310
+ monkeypatch.setattr(embed, "provider", lambda: "local")
311
+ monkeypatch.setattr(embed, "model", lambda: "bge")
312
+ self._tap_seen(monkeypatch, {"acme__skills": "c1", "new__repo": "z9"})
313
+ entries = [{"name": "b", "tap": "new/repo", "kind": "skill",
314
+ "skill_md": "b/SKILL.md", "_body": "text", "description": ""}]
315
+ stats = dense.build(entries=entries, force=False)
316
+ assert stats is not None
317
+ assert "new/repo" in stats["reindexed"]