boost-skill-cli 1.0.452__tar.gz → 1.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (713) hide show
  1. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/CLAUDE.md +27 -2
  2. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/PKG-INFO +24 -7
  3. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/README.md +23 -6
  4. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/_version.py +2 -2
  5. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/cli.py +6 -5
  6. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/configuration.py +105 -1
  7. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/pkg.py +3 -1
  8. boost_skill_cli-1.1.0/boost_cli/core/gitutil.py +300 -0
  9. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/paths.py +20 -0
  10. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/store.py +11 -1
  11. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_skill_cli.egg-info/PKG-INFO +24 -7
  12. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_skill_cli.egg-info/SOURCES.txt +5 -0
  13. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel.html +1 -1
  14. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/commands.html +17 -2
  15. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/index.html +4 -3
  16. boost_skill_cli-1.1.0/docs/roadmap/items/taps-check-out-freight-they-never-index.md +112 -0
  17. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap.html +109 -1
  18. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_pkg.py +3 -2
  19. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_everyday_loop.py +1 -1
  20. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/smoke.sh +1 -0
  21. boost_skill_cli-1.1.0/tests/unit/test_clean_internal_cache.py +108 -0
  22. boost_skill_cli-1.1.0/tests/unit/test_compact.py +175 -0
  23. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_errors_and_cli_table.py +6 -6
  24. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_gitutil.py +42 -3
  25. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_gitutil_lfs.py +4 -1
  26. boost_skill_cli-1.1.0/tests/unit/test_gitutil_sparse.py +293 -0
  27. boost_skill_cli-1.1.0/tests/unit/test_store_materialize.py +110 -0
  28. boost_skill_cli-1.0.452/boost_cli/core/gitutil.py +0 -134
  29. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.gitattributes +0 -0
  30. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.gitignore +0 -0
  31. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.gitleaks.toml +0 -0
  32. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.htmlvalidate.json +0 -0
  33. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.lighthouserc.json +0 -0
  34. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.lycheeignore +0 -0
  35. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.markdownlint-cli2.jsonc +0 -0
  36. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.pre-commit-config.yaml +0 -0
  37. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.stylelintrc.json +0 -0
  38. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.vale/styles/boost/Terminology.yml +0 -0
  39. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  40. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/.vale.ini +0 -0
  41. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/CODE_OF_CONDUCT.md +0 -0
  42. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/CONTRIBUTING.md +0 -0
  43. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/LICENSE +0 -0
  44. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/MANIFEST.in +0 -0
  45. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/Makefile +0 -0
  46. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/SECURITY.md +0 -0
  47. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost +0 -0
  48. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/__init__.py +0 -0
  49. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/__main__.py +0 -0
  50. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/cliparse.py +0 -0
  51. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/__init__.py +0 -0
  52. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/_common.py +0 -0
  53. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/bmad.py +0 -0
  54. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/discovery.py +0 -0
  55. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/hooks.py +0 -0
  56. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/info.py +0 -0
  57. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/intelligence.py +0 -0
  58. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/quality.py +0 -0
  59. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/run.py +0 -0
  60. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/safety.py +0 -0
  61. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/taps.py +0 -0
  62. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/commands/team.py +0 -0
  63. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/__init__.py +0 -0
  64. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/adapters.py +0 -0
  65. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/agents.py +0 -0
  66. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/ai.py +0 -0
  67. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/bmad.py +0 -0
  68. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/bootstrap.py +0 -0
  69. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/builtin.py +0 -0
  70. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/capabilities.py +0 -0
  71. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/catalog.py +0 -0
  72. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/catalogbundle.py +0 -0
  73. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/chat.py +0 -0
  74. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/claude_settings.py +0 -0
  75. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/complete.py +0 -0
  76. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/config.py +0 -0
  77. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/dense.py +0 -0
  78. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/ed25519.py +0 -0
  79. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/embed.py +0 -0
  80. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/faithfulness.py +0 -0
  81. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/frontmatter.py +0 -0
  82. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/imperative.py +0 -0
  83. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/injectscan.py +0 -0
  84. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/installscan.py +0 -0
  85. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/integrity.py +0 -0
  86. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/journal.py +0 -0
  87. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/localembed.py +0 -0
  88. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/lockfile.py +0 -0
  89. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/logs.py +0 -0
  90. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/mcp.py +0 -0
  91. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/mcpdecl.py +0 -0
  92. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/mcphost.py +0 -0
  93. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/minisign.py +0 -0
  94. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/nethttp.py +0 -0
  95. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/output.py +0 -0
  96. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/policy.py +0 -0
  97. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/projectlock.py +0 -0
  98. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/provenance.py +0 -0
  99. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/rag.py +0 -0
  100. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/registry.py +0 -0
  101. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/resolve.py +0 -0
  102. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/rules.py +0 -0
  103. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/scopes.py +0 -0
  104. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/secretscan.py +0 -0
  105. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/selfupdate.py +0 -0
  106. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/serve.py +0 -0
  107. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/stackprobe.py +0 -0
  108. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/staleness.py +0 -0
  109. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/trustaudit.py +0 -0
  110. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/typosquat.py +0 -0
  111. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/updatediff.py +0 -0
  112. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/util.py +0 -0
  113. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/core/workflows.py +0 -0
  114. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/data/registries.json +0 -0
  115. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/data/rules/boost-first.mdc +0 -0
  116. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/errors.py +0 -0
  117. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_cli/spin.py +0 -0
  118. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_langchain/__init__.py +0 -0
  119. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_langchain/_compat.py +0 -0
  120. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_langchain/graph.py +0 -0
  121. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_langchain/loader.py +0 -0
  122. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_langchain/py.typed +0 -0
  123. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_langchain/retriever.py +0 -0
  124. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  125. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  126. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_skill_cli.egg-info/requires.txt +0 -0
  127. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/boost_skill_cli.egg-info/top_level.txt +0 -0
  128. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/codecov.yml +0 -0
  129. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/.claude/settings.local.json +0 -0
  130. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/DEBUGGING.md +0 -0
  131. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/adapters.html +0 -0
  132. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/architecture/README.md +0 -0
  133. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/architecture/c4-components-core.md +0 -0
  134. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/architecture/c4-containers.md +0 -0
  135. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/architecture/c4-context.md +0 -0
  136. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/architecture/c4-dynamic-install.md +0 -0
  137. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/gifs/distill.gif +0 -0
  138. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/gifs/doctor.gif +0 -0
  139. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/gifs/explain.gif +0 -0
  140. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/gifs/hooks.gif +0 -0
  141. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/gifs/install.gif +0 -0
  142. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/gifs/pulse.gif +0 -0
  143. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/gifs/search.gif +0 -0
  144. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/gifs/tap.gif +0 -0
  145. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/tapes/distill.tape +0 -0
  146. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/tapes/doctor.tape +0 -0
  147. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/tapes/explain.tape +0 -0
  148. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/tapes/hooks.tape +0 -0
  149. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/tapes/install.tape +0 -0
  150. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/tapes/pulse.tape +0 -0
  151. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/tapes/search.tape +0 -0
  152. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/carousel/tapes/tap.tape +0 -0
  153. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/chat.html +0 -0
  154. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/demo-index.json +0 -0
  155. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/demo.gif +0 -0
  156. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/demo.html +0 -0
  157. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/demo.tape +0 -0
  158. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/design-roadmap.html +0 -0
  159. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/eval-latest.json +0 -0
  160. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/eval.html +0 -0
  161. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/langchain.html +0 -0
  162. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/mcp-hub.html +0 -0
  163. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/rag-architecture.md +0 -0
  164. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D01.md +0 -0
  165. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D02.md +0 -0
  166. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D03.md +0 -0
  167. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D04.md +0 -0
  168. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D05.md +0 -0
  169. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D06.md +0 -0
  170. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D07.md +0 -0
  171. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D08.md +0 -0
  172. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D09.md +0 -0
  173. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D10.md +0 -0
  174. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D11.md +0 -0
  175. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D12.md +0 -0
  176. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D13.md +0 -0
  177. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D14.md +0 -0
  178. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D15.md +0 -0
  179. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D16.md +0 -0
  180. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D17.md +0 -0
  181. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D18.md +0 -0
  182. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D19.md +0 -0
  183. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D20.md +0 -0
  184. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D21.md +0 -0
  185. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D22.md +0 -0
  186. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D23.md +0 -0
  187. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D24.md +0 -0
  188. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D25.md +0 -0
  189. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/BOOST-D26.md +0 -0
  190. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  191. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  192. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  193. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  194. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  195. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  196. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  197. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  198. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  199. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  200. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  201. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  202. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  203. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/boost-first-rule.md +0 -0
  204. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  205. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  206. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  207. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  208. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  209. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  210. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  211. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  212. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  213. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  214. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  215. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  216. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  217. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  218. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  219. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  220. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/command-carousel-page.md +0 -0
  221. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  222. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  223. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  224. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  225. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  226. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  227. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  228. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  229. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  230. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  231. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  232. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  233. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  234. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  235. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  236. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  237. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  238. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  239. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  240. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  241. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  242. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  243. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  244. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  245. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  246. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  247. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  248. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  249. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  250. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  251. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  252. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  253. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  254. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  255. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  256. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  257. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  258. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  259. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  260. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  261. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  262. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  263. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  264. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  265. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  266. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/github-community-health-files.md +0 -0
  267. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  268. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  269. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  270. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  271. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  272. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  273. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  274. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  275. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  276. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  277. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  278. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  279. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  280. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  281. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  282. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  283. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  284. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  285. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  286. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  287. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  288. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  289. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  290. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  291. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  292. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  293. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  294. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  295. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  296. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  297. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  298. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  299. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  300. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  301. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  302. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  303. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  304. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  305. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  306. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  307. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  308. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  309. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  310. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  311. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  312. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  313. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  314. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  315. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  316. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  317. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  318. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  319. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  320. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  321. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  322. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  323. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  324. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  325. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  326. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  327. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  328. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  329. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  330. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  331. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  332. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  333. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  334. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  335. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  336. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  337. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  338. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  339. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  340. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  341. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  342. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  343. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  344. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  345. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  346. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  347. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  348. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  349. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  350. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  351. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  352. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  353. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  354. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  355. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  356. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  357. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  358. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  359. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  360. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  361. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  362. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  363. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  364. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  365. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  366. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  367. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  368. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  369. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  370. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  371. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  372. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  373. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  374. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  375. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  376. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  377. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  378. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  379. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  380. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  381. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  382. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  383. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  384. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  385. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  386. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  387. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  388. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  389. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  390. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  391. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  392. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  393. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  394. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  395. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  396. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  397. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  398. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  399. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  400. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  401. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  402. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  403. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  404. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  405. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  406. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  407. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  408. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  409. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  410. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  411. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  412. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  413. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  414. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  415. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  416. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  417. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  418. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  419. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  420. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  421. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  422. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  423. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  424. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  425. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  426. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  427. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  428. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  429. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  430. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  431. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  432. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  433. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  434. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  435. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/workspace-scope-install.md +0 -0
  436. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/zip-strict-audit.md +0 -0
  437. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  438. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  439. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/eslint.config.mjs +0 -0
  440. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/README.md +0 -0
  441. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/__init__.py +0 -0
  442. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/baseline.json +0 -0
  443. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/faithfulness.py +0 -0
  444. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/golden_set.json +0 -0
  445. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/make_corpus.py +0 -0
  446. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/make_golden.py +0 -0
  447. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/metrics.py +0 -0
  448. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/publish_golden_dataset.py +0 -0
  449. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/evals/run_evals.py +0 -0
  450. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/examples/README.md +0 -0
  451. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/examples/adapt-demo.sh +0 -0
  452. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/examples/boost-run-prototype.sh +0 -0
  453. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/index.html +0 -0
  454. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/noxfile.py +0 -0
  455. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/pyproject.toml +0 -0
  456. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/coverage-tools.in +0 -0
  457. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/coverage-tools.txt +0 -0
  458. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/lint-tools.in +0 -0
  459. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/lint-tools.txt +0 -0
  460. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/mutation-tools.in +0 -0
  461. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/mutation-tools.txt +0 -0
  462. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/platform-pins.lock +0 -0
  463. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/release-tools.in +0 -0
  464. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/release-tools.txt +0 -0
  465. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/test-tools.in +0 -0
  466. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/requirements/test-tools.txt +0 -0
  467. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/a11y_check.py +0 -0
  468. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/bench_cli.sh +0 -0
  469. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/build_command_reference.py +0 -0
  470. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/build_demo_index.py +0 -0
  471. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/build_registries.py +0 -0
  472. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/build_roadmap.py +0 -0
  473. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/build_scale_corpus.py +0 -0
  474. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/check_anchors.py +0 -0
  475. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/check_licenses.py +0 -0
  476. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/check_required_checks.py +0 -0
  477. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/ensure_eval_corpus.sh +0 -0
  478. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/eval_corpus.py +0 -0
  479. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/eval_explain.py +0 -0
  480. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/eval_gate.py +0 -0
  481. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/eval_recommend.py +0 -0
  482. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/eval_retrieval.py +0 -0
  483. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/eval_stats_summary.py +0 -0
  484. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/import_budget.py +0 -0
  485. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/lock_toolchain.py +0 -0
  486. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/measure_registry.py +0 -0
  487. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/mutation_gate.py +0 -0
  488. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/mutation_shards.py +0 -0
  489. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/mutation_weights.json +0 -0
  490. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/page_budget.py +0 -0
  491. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/perf_gate.py +0 -0
  492. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/post_deploy_smoke.py +0 -0
  493. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/publish_eval_json.py +0 -0
  494. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/release_guard.py +0 -0
  495. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/release_preflight.py +0 -0
  496. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/scripts/serve_docs.py +0 -0
  497. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/setup.cfg +0 -0
  498. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/sonar-project.properties +0 -0
  499. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/style/README.md +0 -0
  500. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/style/boost.css +0 -0
  501. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/style/boost.js +0 -0
  502. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/style/demo.html +0 -0
  503. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/adapt.feature +0 -0
  504. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/browse.feature +0 -0
  505. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/count.feature +0 -0
  506. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/discover.feature +0 -0
  507. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/doctor.feature +0 -0
  508. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/environment.py +0 -0
  509. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/explain.feature +0 -0
  510. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/index.feature +0 -0
  511. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/install.feature +0 -0
  512. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/list.feature +0 -0
  513. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/mcp.feature +0 -0
  514. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/search.feature +0 -0
  515. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/steps/cli_steps.py +0 -0
  516. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/steps/discovery_steps.py +0 -0
  517. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/steps/mcp_steps.py +0 -0
  518. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/bdd/features/steps/quality_steps.py +0 -0
  519. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/conftest.py +0 -0
  520. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/eval/baseline.json +0 -0
  521. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/eval/explain.jsonl +0 -0
  522. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/eval/golden-natural.jsonl +0 -0
  523. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/eval/golden.jsonl +0 -0
  524. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/eval/recommend.jsonl +0 -0
  525. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/eval/taps-scale.txt +0 -0
  526. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/eval/taps.txt +0 -0
  527. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_capabilities_policy.py +0 -0
  528. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_adapt.py +0 -0
  529. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_bmad.py +0 -0
  530. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_catalog.py +0 -0
  531. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_chat.py +0 -0
  532. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_configuration.py +0 -0
  533. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_discovery.py +0 -0
  534. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_hooks.py +0 -0
  535. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_info.py +0 -0
  536. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_intelligence.py +0 -0
  537. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_quality.py +0 -0
  538. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_taps.py +0 -0
  539. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_cli_team.py +0 -0
  540. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_integrity_enforce.py +0 -0
  541. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_kind_conformance.py +0 -0
  542. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_property_parsers.py +0 -0
  543. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_run.py +0 -0
  544. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_tap_signing.py +0 -0
  545. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/functional/test_workspace_scope.py +0 -0
  546. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/README.md +0 -0
  547. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  548. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  549. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  550. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  551. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  552. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  553. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  554. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  555. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  556. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  557. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  558. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  559. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  560. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  561. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  562. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  563. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  564. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  565. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  566. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  567. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/fuzz_frontmatter.py +0 -0
  568. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/fuzz/fuzz_registry.py +0 -0
  569. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/langchain/conftest.py +0 -0
  570. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/langchain/test_graph.py +0 -0
  571. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/langchain/test_loader.py +0 -0
  572. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/langchain/test_retriever.py +0 -0
  573. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/make_fixture.py +0 -0
  574. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/perf/test_benchmarks.py +0 -0
  575. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_a11y_check.py +0 -0
  576. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_action_pin_lockstep.py +0 -0
  577. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_adapters.py +0 -0
  578. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_adapters_multi.py +0 -0
  579. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_adapters_runner.py +0 -0
  580. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_agents.py +0 -0
  581. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_ai.py +0 -0
  582. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_bmad_core.py +0 -0
  583. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_boost_first_offer.py +0 -0
  584. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_bootstrap.py +0 -0
  585. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_builtin.py +0 -0
  586. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_capabilities.py +0 -0
  587. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_catalog.py +0 -0
  588. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_catalogbundle.py +0 -0
  589. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_chat.py +0 -0
  590. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_check_anchors.py +0 -0
  591. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_check_licenses.py +0 -0
  592. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_claude_settings.py +0 -0
  593. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_cliparse.py +0 -0
  594. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_codeql_analysis_key.py +0 -0
  595. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_command_reference_fresh.py +0 -0
  596. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_community_health_files.py +0 -0
  597. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_complete.py +0 -0
  598. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_config.py +0 -0
  599. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_content_dedupe.py +0 -0
  600. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_crash_redaction.py +0 -0
  601. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dedup_trust.py +0 -0
  602. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_demo_index.py +0 -0
  603. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dense.py +0 -0
  604. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dense_fallback.py +0 -0
  605. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dense_fix_hint.py +0 -0
  606. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dense_shard_real_schema.py +0 -0
  607. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  608. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dense_shards.py +0 -0
  609. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dense_status.py +0 -0
  610. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_dependabot_config.py +0 -0
  611. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_docs_pages_linked.py +0 -0
  612. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_docsite_chrome.py +0 -0
  613. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_ed25519.py +0 -0
  614. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_embed.py +0 -0
  615. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_embed_local.py +0 -0
  616. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_embed_truncated_response.py +0 -0
  617. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_entry_key.py +0 -0
  618. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_eval_baseline.py +0 -0
  619. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_eval_corpus.py +0 -0
  620. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_eval_faithfulness.py +0 -0
  621. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_eval_gate.py +0 -0
  622. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_eval_grading.py +0 -0
  623. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_eval_metrics.py +0 -0
  624. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_eval_stats_summary.py +0 -0
  625. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  626. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_faithfulness.py +0 -0
  627. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_frontmatter.py +0 -0
  628. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_fuzz_targets.py +0 -0
  629. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  630. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_gitleaks_config.py +0 -0
  631. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_imperative.py +0 -0
  632. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_import_budget.py +0 -0
  633. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_injectscan.py +0 -0
  634. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_install_permission_error.py +0 -0
  635. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_installscan.py +0 -0
  636. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_integrity.py +0 -0
  637. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_journal.py +0 -0
  638. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_langchain_packaging.py +0 -0
  639. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_link_ownership.py +0 -0
  640. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_localembed.py +0 -0
  641. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_localembed_e2e.py +0 -0
  642. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_lockfile.py +0 -0
  643. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_logs.py +0 -0
  644. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_marketing_counts.py +0 -0
  645. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_mcp.py +0 -0
  646. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_mcp_install_scan.py +0 -0
  647. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_mcpdecl.py +0 -0
  648. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_mcphost.py +0 -0
  649. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_measure_registry.py +0 -0
  650. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_minisign.py +0 -0
  651. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_mutation_hardening.py +0 -0
  652. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_mutation_shards.py +0 -0
  653. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_mutation_subfile_shards.py +0 -0
  654. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_mutmut_source_paths.py +0 -0
  655. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_nethttp.py +0 -0
  656. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_output.py +0 -0
  657. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_page_budget.py +0 -0
  658. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_paths.py +0 -0
  659. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_perf_gate.py +0 -0
  660. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_pkg_confusions.py +0 -0
  661. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_pkg_injection.py +0 -0
  662. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_pkg_secrets.py +0 -0
  663. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_platform_pins.py +0 -0
  664. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_policy.py +0 -0
  665. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_post_deploy_smoke.py +0 -0
  666. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_project_mcp_sidecar.py +0 -0
  667. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_projectlock.py +0 -0
  668. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_provenance.py +0 -0
  669. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_publish_golden_dataset.py +0 -0
  670. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_rag.py +0 -0
  671. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_rag_fusion.py +0 -0
  672. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_registries_fresh.py +0 -0
  673. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_registry.py +0 -0
  674. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_registry_categories.py +0 -0
  675. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_registry_control_chars.py +0 -0
  676. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_release_guard.py +0 -0
  677. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_release_preflight.py +0 -0
  678. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_required_checks.py +0 -0
  679. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_resolve.py +0 -0
  680. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_roadmap_fresh.py +0 -0
  681. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_rules.py +0 -0
  682. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_scale_corpus.py +0 -0
  683. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_scopes.py +0 -0
  684. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_secretscan.py +0 -0
  685. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_selfupdate.py +0 -0
  686. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_serve.py +0 -0
  687. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_serve_docs.py +0 -0
  688. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_shards_matrix.py +0 -0
  689. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_smoke_covers_every_command.py +0 -0
  690. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_spin.py +0 -0
  691. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_stackprobe.py +0 -0
  692. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_staleness.py +0 -0
  693. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_store.py +0 -0
  694. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_sync_blocked_links.py +0 -0
  695. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  696. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_token_parity.py +0 -0
  697. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_toolchain_lock.py +0 -0
  698. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_trustaudit.py +0 -0
  699. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_typosquat.py +0 -0
  700. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_updatediff.py +0 -0
  701. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_util.py +0 -0
  702. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_version.py +0 -0
  703. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_workflow_concurrency.py +0 -0
  704. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  705. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  706. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_workflow_timeouts.py +0 -0
  707. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_workflows.py +0 -0
  708. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  709. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/visual/a11y_check.mjs +0 -0
  710. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/visual/console_check.mjs +0 -0
  711. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/visual/package-lock.json +0 -0
  712. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/visual/package.json +0 -0
  713. {boost_skill_cli-1.0.452 → boost_skill_cli-1.1.0}/tests/visual/visual_check.mjs +0 -0
@@ -140,6 +140,31 @@ line coverage. Target `boost_cli/core` behavior with assertions, not just import
140
140
  (`chain-of-thought-design`, `guardrail-design`), so it is `ai`, not `ui`.
141
141
  `tests/unit/test_registry_categories.py::TestDesignDomain` pins both
142
142
  directions.
143
+ - **A tap clone holds Markdown and nothing else.** Taps clone
144
+ `--filter=blob:none --sparse` with a cone covering exactly what
145
+ `catalog.scan_dir` opens (`gitutil.SPARSE_PATTERNS`, pinned against catalog's
146
+ own constants by `tests/unit/test_gitutil_sparse.py` — `gitutil` can't
147
+ import `catalog`, `catalog` imports `gitutil`). 458 taps held 12 GB to index
148
+ 1.9 GB of Markdown; `Shopify/agent-skills` was 611 MB for its 30 SKILL.md
149
+ files and is 11 MB under the cone, with a byte-identical catalog. So
150
+ **anything reading a tap's real files must go through
151
+ `store.source_dir_for`**, which calls
152
+ `gitutil.materialize` first — a skill's own `scripts/`/`assets/` sit outside
153
+ the cone, and `_copy_skill` is a `copytree` that would copy the half of the
154
+ directory that exists and report success. Use `sparse-checkout add`, never
155
+ `set`: `set` replaces the pattern list and un-fetches every skill materialized
156
+ before it. `boost import` clones `sparse=False` — it reads the whole repo.
157
+ `boost compact` narrows clones that predate this (offline; measured 177 MB →
158
+ 93 MB), and must `update-index --refresh` first, because git silently declines
159
+ to remove a path whose stat data looks dirty and otherwise reports success
160
+ having changed nothing.
161
+ - **`~/.boost/cache/` holds boost's own indexes, not just tap catalogs.**
162
+ `paths.INTERNAL_CACHE_FILES` names them. `boost clean` sweeps `cache/*.json`
163
+ whose stem is not a configured tap, which described `rag_index.json` and
164
+ `discovery.json` perfectly — it deleted the BM25 index on every run, and
165
+ rebuilding it re-parses every tap catalog on the machine (~71k items). A new
166
+ derived artifact goes in that set or `tests/unit/test_clean_internal_cache.py`
167
+ fails.
143
168
  - **Sandbox tests via env, and export separately.** boost state lives under
144
169
  `HOME`/`BOOST_HOME`; tests point them at a tempdir. In zsh, one-line chains
145
170
  like `export A=$(...) B=$A/x` leave `B` broken — use separate `export`
@@ -233,7 +258,7 @@ for both — edit items, run `build_roadmap.py`, never touch the HTML by hand.
233
258
  ## Architecture
234
259
 
235
260
  **CLI dispatch.** `boost_cli/cli.py` holds `COMMANDS`, the single
236
- source-of-truth list of `(name, group, module, summary)` for all 79 commands.
261
+ source-of-truth list of `(name, group, module, summary)` for all 80 commands.
237
262
  Each command is implemented as `def cmd_<name_with_underscores>(argv) -> int`
238
263
  inside `boost_cli/commands/<module>.py`, and `_dispatch` imports that module
239
264
  lazily on invocation — so `boost --help` stays instant and command modules are
@@ -254,7 +279,7 @@ in `boost_cli/core/paths.py`, which is what makes `HOME=<tempdir>` sandboxing
254
279
  work in tests and the dev loop:
255
280
 
256
281
  ```text
257
- ~/.boost/repos/ shallow git clones of tapped registries
282
+ ~/.boost/repos/ blobless, sparse git clones of tapped registries
258
283
  ~/.boost/cache/ JSON catalogs built from SKILL.md/rule/workflow frontmatter
259
284
  ~/.boost/logs/ rotating diagnostic log + crash reports
260
285
  ~/.boost/state/ pins, tags, policy, profiles, pulse feed, snapshots
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.452
3
+ Version: 1.1.0
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -908,13 +908,30 @@ whichever agents you've got — all of it tracked in a lock file so state
908
908
  stays reproducible.
909
909
 
910
910
  ```text
911
- GitHub registries ──boost update──▶ ~/.boost/repos/ (shallow clones)
911
+ GitHub registries ──boost update──▶ ~/.boost/repos/ (blobless sparse clones)
912
912
  ~/.boost/cache/ (JSON catalogs)
913
913
  ──boost install─▶ ~/.agents/skills/ (canonical store)
914
914
  .skill-lock.json (v3 lock file)
915
915
  ────symlinks───▶ ~/.claude/skills/ ~/.windsurf/skills/ ~/.cursor/skills/
916
916
  ```
917
917
 
918
+ A tap clone holds **only the files boost indexes** — `SKILL.md`, workflow
919
+ Markdown, and rule files. Everything else a registry ships (`node_modules`,
920
+ binary assets, bundled JS) is neither downloaded nor checked out, because the
921
+ catalog is built from Markdown and nothing else. `Shopify/agent-skills` is
922
+ 611 MB as a normal clone and 11 MB as a tap, and produces an identical catalog.
923
+ When a skill you install owns its own `scripts/` or `assets/`, those are fetched
924
+ on demand at install time, so nothing is missing from what lands in the store.
925
+
926
+ If you tapped heavily before this landed, `boost compact` narrows the clones you
927
+ already have — offline, no re-clone, no loss of search coverage:
928
+
929
+ ```bash
930
+ boost compact --dry-run # what it would reclaim
931
+ boost compact # narrow every clone in place
932
+ boost compact --reclone # also drop already-downloaded git objects (needs network)
933
+ ```
934
+
918
935
  Gemini CLI is the one agent that needs no symlink: it implements the
919
936
  [Agent Skills](https://agentskills.io) standard and discovers `~/.agents/skills`
920
937
  — boost's canonical store — directly. Linking into `~/.gemini/skills` as well
@@ -971,7 +988,7 @@ boost doctor # sanity check: broken links, lock drift, stale taps
971
988
  boost bundle dump > Boostfile # everyone else runs: boost bundle install
972
989
  ```
973
990
 
974
- ## 79 commands, organized into 8 groups
991
+ ## 80 commands, organized into 8 groups
975
992
 
976
993
  `boost --help` prints the full grouped command list; for a visual tour see
977
994
  [`docs/index.html`](docs/index.html), and for every flag of every command see
@@ -986,10 +1003,10 @@ install path — see [`docs/architecture/`](docs/architecture/README.md).
986
1003
  | **Package Management** | install · uninstall · sync · update · reinstall · bundle · import · pin · unpin · snapshot · export · adapt · run |
987
1004
  | **Discovery & Search** | search · reindex · discover · recommend · browse · index · trending · stats · count |
988
1005
  | **Skill Information** | list · info · cat · edit · preview · explain · log · home · deps · tag |
989
- | **Registry (Taps)** | tap · untap · taps · outdated |
990
- | **Intelligence** | distill · simulate · infer · absorb · evolve · context · focus · impact |
1006
+ | **Registry (Taps)** | tap · untap · taps · outdated · catalog |
1007
+ | **Intelligence** | chat · distill · simulate · infer · absorb · evolve · context · focus · impact |
991
1008
  | **Quality & Health** | doctor · lint · audit · verify · drift · test · fingerprint · quarantine · decay · heal · conflict · changelog · attest · health · trust |
992
- | **Configuration** | config · clean · create · policy · onboard · completions · schedule · serve · mcp · hooks · bmad · self-update |
1009
+ | **Configuration** | config · clean · compact · create · policy · onboard · completions · schedule · serve · mcp · hooks · bmad · self-update |
993
1010
  | **Team & Collaboration** | cohort · profile · protocol · pulse · replay · who |
994
1011
 
995
1012
  The AI-assisted commands (`search --smart`, `explain`, `distill`, `infer`,
@@ -1185,7 +1202,7 @@ Four layers, all enforced (`make check` runs the full set; CI runs the same thin
1185
1202
 
1186
1203
  | Layer | What it does | Gate |
1187
1204
  |---|---|---|
1188
- | `make test` | pytest across `tests/unit/` (every core module) and `tests/functional/` (drives all 79 commands in-process against sandboxed homes) | **≥80% line coverage** of `boost_cli` (`fail_under` in pyproject.toml) |
1205
+ | `make test` | pytest across `tests/unit/` (every core module) and `tests/functional/` (drives all 80 commands in-process against sandboxed homes) | **≥80% line coverage** of `boost_cli` (`fail_under` in pyproject.toml) |
1189
1206
  | `make smoke` | `tests/smoke.sh` — 175 checks run through the actual `./boost` shim (`--online` also hits real registries) | all pass |
1190
1207
  | `make mutation` | [mutmut] mutates `boost_cli/core` (~9,900 mutants) and reruns the unit suite against each one | **≥80% killed** (`scripts/mutation_gate.py`) |
1191
1208
  | `make evals` | scores the search ranker on a graded golden set — recall@5/@10, MRR, nDCG@5/@10 | **metric floors + no statistically significant regression** (`scripts/eval_gate.py`) |
@@ -190,13 +190,30 @@ whichever agents you've got — all of it tracked in a lock file so state
190
190
  stays reproducible.
191
191
 
192
192
  ```text
193
- GitHub registries ──boost update──▶ ~/.boost/repos/ (shallow clones)
193
+ GitHub registries ──boost update──▶ ~/.boost/repos/ (blobless sparse clones)
194
194
  ~/.boost/cache/ (JSON catalogs)
195
195
  ──boost install─▶ ~/.agents/skills/ (canonical store)
196
196
  .skill-lock.json (v3 lock file)
197
197
  ────symlinks───▶ ~/.claude/skills/ ~/.windsurf/skills/ ~/.cursor/skills/
198
198
  ```
199
199
 
200
+ A tap clone holds **only the files boost indexes** — `SKILL.md`, workflow
201
+ Markdown, and rule files. Everything else a registry ships (`node_modules`,
202
+ binary assets, bundled JS) is neither downloaded nor checked out, because the
203
+ catalog is built from Markdown and nothing else. `Shopify/agent-skills` is
204
+ 611 MB as a normal clone and 11 MB as a tap, and produces an identical catalog.
205
+ When a skill you install owns its own `scripts/` or `assets/`, those are fetched
206
+ on demand at install time, so nothing is missing from what lands in the store.
207
+
208
+ If you tapped heavily before this landed, `boost compact` narrows the clones you
209
+ already have — offline, no re-clone, no loss of search coverage:
210
+
211
+ ```bash
212
+ boost compact --dry-run # what it would reclaim
213
+ boost compact # narrow every clone in place
214
+ boost compact --reclone # also drop already-downloaded git objects (needs network)
215
+ ```
216
+
200
217
  Gemini CLI is the one agent that needs no symlink: it implements the
201
218
  [Agent Skills](https://agentskills.io) standard and discovers `~/.agents/skills`
202
219
  — boost's canonical store — directly. Linking into `~/.gemini/skills` as well
@@ -253,7 +270,7 @@ boost doctor # sanity check: broken links, lock drift, stale taps
253
270
  boost bundle dump > Boostfile # everyone else runs: boost bundle install
254
271
  ```
255
272
 
256
- ## 79 commands, organized into 8 groups
273
+ ## 80 commands, organized into 8 groups
257
274
 
258
275
  `boost --help` prints the full grouped command list; for a visual tour see
259
276
  [`docs/index.html`](docs/index.html), and for every flag of every command see
@@ -268,10 +285,10 @@ install path — see [`docs/architecture/`](docs/architecture/README.md).
268
285
  | **Package Management** | install · uninstall · sync · update · reinstall · bundle · import · pin · unpin · snapshot · export · adapt · run |
269
286
  | **Discovery & Search** | search · reindex · discover · recommend · browse · index · trending · stats · count |
270
287
  | **Skill Information** | list · info · cat · edit · preview · explain · log · home · deps · tag |
271
- | **Registry (Taps)** | tap · untap · taps · outdated |
272
- | **Intelligence** | distill · simulate · infer · absorb · evolve · context · focus · impact |
288
+ | **Registry (Taps)** | tap · untap · taps · outdated · catalog |
289
+ | **Intelligence** | chat · distill · simulate · infer · absorb · evolve · context · focus · impact |
273
290
  | **Quality & Health** | doctor · lint · audit · verify · drift · test · fingerprint · quarantine · decay · heal · conflict · changelog · attest · health · trust |
274
- | **Configuration** | config · clean · create · policy · onboard · completions · schedule · serve · mcp · hooks · bmad · self-update |
291
+ | **Configuration** | config · clean · compact · create · policy · onboard · completions · schedule · serve · mcp · hooks · bmad · self-update |
275
292
  | **Team & Collaboration** | cohort · profile · protocol · pulse · replay · who |
276
293
 
277
294
  The AI-assisted commands (`search --smart`, `explain`, `distill`, `infer`,
@@ -467,7 +484,7 @@ Four layers, all enforced (`make check` runs the full set; CI runs the same thin
467
484
 
468
485
  | Layer | What it does | Gate |
469
486
  |---|---|---|
470
- | `make test` | pytest across `tests/unit/` (every core module) and `tests/functional/` (drives all 79 commands in-process against sandboxed homes) | **≥80% line coverage** of `boost_cli` (`fail_under` in pyproject.toml) |
487
+ | `make test` | pytest across `tests/unit/` (every core module) and `tests/functional/` (drives all 80 commands in-process against sandboxed homes) | **≥80% line coverage** of `boost_cli` (`fail_under` in pyproject.toml) |
471
488
  | `make smoke` | `tests/smoke.sh` — 175 checks run through the actual `./boost` shim (`--online` also hits real registries) | all pass |
472
489
  | `make mutation` | [mutmut] mutates `boost_cli/core` (~9,900 mutants) and reruns the unit suite against each one | **≥80% killed** (`scripts/mutation_gate.py`) |
473
490
  | `make evals` | scores the search ranker on a graded golden set — recall@5/@10, MRR, nDCG@5/@10 | **metric floors + no statistically significant regression** (`scripts/eval_gate.py`) |
@@ -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.452'
22
- __version_tuple__ = version_tuple = (1, 0, 452)
21
+ __version__ = version = '1.1.0'
22
+ __version_tuple__ = version_tuple = (1, 1, 0)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,4 +1,4 @@
1
- """boost CLI dispatcher — 78 commands across 8 groups.
1
+ """boost CLI dispatcher — 80 commands across 8 groups.
2
2
 
3
3
  Each command lives in boost_cli/commands/<module>.py as
4
4
  def cmd_<name_with_underscores>(argv: list[str]) -> int
@@ -47,7 +47,7 @@ GROUPS = {
47
47
  # (name, group, module, summary) — the single source of truth for the
48
48
  # command surface. docs/overview.html mirrors this list.
49
49
  COMMANDS = [
50
- # Package Management (14)
50
+ # Package Management (13)
51
51
  ("install", "pkg", "pkg", "Install a skill from a tap registry"),
52
52
  ("uninstall", "pkg", "pkg", "Remove an installed skill, rule, workflow, or config"),
53
53
  ("sync", "pkg", "pkg", "Reconcile installed skills & symlinks against the lock file"),
@@ -82,13 +82,13 @@ COMMANDS = [
82
82
  ("home", "info", "info", "Open a skill's GitHub page in the browser"),
83
83
  ("deps", "info", "info", "Show dependency & conflict relationships"),
84
84
  ("tag", "info", "info", "Custom labels for organizing skills"),
85
- # Registry (Taps) (4)
85
+ # Registry (Taps) (5)
86
86
  ("tap", "tap", "taps", "Add a GitHub repo as a skill registry"),
87
87
  ("untap", "tap", "taps", "Remove a registry tap"),
88
88
  ("taps", "tap", "taps", "List all configured registry taps"),
89
89
  ("outdated", "tap", "taps", "Show skills with available updates"),
90
90
  ("catalog", "tap", "taps", "Share the tapped catalogue so others skip the clone"),
91
- # Intelligence (8)
91
+ # Intelligence (9)
92
92
  ("chat", "ai", "intelligence", "Ask about skills in plain language (RAG-grounded)"),
93
93
  ("distill", "ai", "intelligence", "Merge multiple skills into one deduplicated skill"),
94
94
  ("simulate", "ai", "intelligence", "Preview how a skill would change Claude's behavior"),
@@ -114,9 +114,10 @@ COMMANDS = [
114
114
  ("attest", "chk", "safety", "Display/verify the install record for skills"),
115
115
  ("health", "chk", "quality", "Dashboard of skill-environment health"),
116
116
  ("trust", "chk", "quality", "Manage signing keys & verify tap provenance"),
117
- # Configuration (12)
117
+ # Configuration (13)
118
118
  ("config", "cfg", "configuration", "Display or modify boost configuration"),
119
119
  ("clean", "cfg", "configuration", "Clear stale caches & broken symlinks"),
120
+ ("compact", "cfg", "configuration", "Shrink tap clones to the files boost indexes"),
120
121
  ("create", "cfg", "configuration", "Scaffold a new skill from a template"),
121
122
  ("policy", "cfg", "configuration", "Manage & enforce skill governance policies"),
122
123
  ("onboard", "cfg", "configuration", "Add skill-tracker telemetry to a repo & open a PR"),
@@ -141,10 +141,14 @@ def cmd_clean(argv) -> int:
141
141
 
142
142
  configured = {t.safe_name for t in registry.list_taps()}
143
143
  if paths.cache_dir().is_dir():
144
+ # Skip boost's own derived artifacts. They live in the same directory and
145
+ # end in .json, but no tap is named `rag_index` or `discovery`, so the
146
+ # stem test alone called both stale and deleted them every run — see
147
+ # paths.INTERNAL_CACHE_FILES.
144
148
  items.extend(
145
149
  (f, "stale tap cache", f.stat().st_size)
146
150
  for f in sorted(paths.cache_dir().glob("*.json"))
147
- if f.stem not in configured
151
+ if f.stem not in configured and f.name not in paths.INTERNAL_CACHE_FILES
148
152
  )
149
153
 
150
154
  if paths.lock_history_dir().is_dir():
@@ -199,6 +203,106 @@ def cmd_clean(argv) -> int:
199
203
  return 0
200
204
 
201
205
 
206
+ def _freight_bytes(tap_path: Path, keep_dirs: list[str]) -> int:
207
+ """Bytes that would leave `tap_path`'s working tree when the cone applies.
208
+
209
+ Mirrors what `gitutil.SPARSE_PATTERNS` keeps rather than approximating it,
210
+ so the dry run does not promise back the provenance files or the assets of
211
+ an already-installed skill — both of which survive and neither of which is
212
+ freed.
213
+ """
214
+ kept = tuple("%s/" % d.strip("/") for d in keep_dirs)
215
+ total = 0
216
+ for f in tap_path.rglob("*"):
217
+ if not f.is_file():
218
+ continue
219
+ # Relative to the tap, never absolute: every clone lives *under*
220
+ # ~/.boost, so testing the absolute parts for ".boost" excluded every
221
+ # file in every tap and reported that nothing could be freed.
222
+ rel = f.relative_to(tap_path)
223
+ if ".git" in rel.parts or ".boost" in rel.parts:
224
+ continue
225
+ if (f.suffix.lower() in (".md", ".mdc")
226
+ or f.name in catalog.RULE_FILENAMES):
227
+ continue
228
+ if kept and rel.as_posix().startswith(kept):
229
+ continue
230
+ total += f.stat().st_size
231
+ return total
232
+
233
+
234
+ def cmd_compact(argv) -> int:
235
+ """boost compact [--dry-run] [--reclone] [TAP ...]"""
236
+ p = cliparse.parser(
237
+ prog="boost compact",
238
+ description="Shrink tap clones to the files boost indexes")
239
+ p.add_argument("tap", nargs="*",
240
+ help="taps to compact (default: all cloned taps)")
241
+ p.add_argument("--dry-run", action="store_true",
242
+ help="show what would be reclaimed without touching anything")
243
+ p.add_argument("--reclone", action="store_true",
244
+ help="re-clone blobless for the smallest result (needs network)")
245
+ args = p.parse_args(argv)
246
+
247
+ taps = [registry.get(n) for n in args.tap] if args.tap else registry.list_taps()
248
+ taps = [t for t in taps if t.is_cloned]
249
+ if not taps:
250
+ out.ok("no cloned taps to compact")
251
+ return 0
252
+
253
+ # source_dir keeps an installed skill's own assets on disk, so routine
254
+ # hashing (`outdated`, `doctor`) stays offline after the freight is gone.
255
+ keep: dict[str, list[str]] = {}
256
+ for section in lockfile.all_installed().values():
257
+ for entry in section.values():
258
+ if entry.get("source_dir"):
259
+ keep.setdefault(entry.get("tap", ""), []).append(entry["source_dir"])
260
+
261
+ freed = 0
262
+ changed = 0
263
+ for tap in taps:
264
+ before = util.dir_size(tap.path)
265
+ if args.dry_run:
266
+ loose = _freight_bytes(tap.path, keep.get(tap.name, []))
267
+ if loose:
268
+ changed += 1
269
+ freed += loose
270
+ out.info("would free %s from %s"
271
+ % (util.human_size(loose), tap.name))
272
+ continue
273
+ try:
274
+ if args.reclone:
275
+ util.rmtree(tap.path)
276
+ gitutil.clone_shallow(tap.url, tap.path)
277
+ else:
278
+ gitutil.narrow(tap.path)
279
+ for rel in keep.get(tap.name, []):
280
+ gitutil.materialize(tap.path, rel)
281
+ except BoostError as e:
282
+ out.warn("could not compact %s: %s" % (tap.name, e))
283
+ continue
284
+ after = util.dir_size(tap.path)
285
+ if after < before:
286
+ changed += 1
287
+ freed += before - after
288
+ out.info("%s %s → %s" % (tap.name, util.human_size(before),
289
+ util.human_size(after)))
290
+
291
+ if args.dry_run:
292
+ out.dim(" %d tap(s) · %s would be freed"
293
+ % (changed, util.human_size(freed)))
294
+ return 0
295
+ journal.log("compact", "%d taps" % changed, freed=util.human_size(freed))
296
+ if not changed:
297
+ out.ok("every tap is already compact")
298
+ return 0
299
+ out.ok("compacted %d tap(s) · %s freed" % (changed, util.human_size(freed)))
300
+ if not args.reclone:
301
+ out.dim(" `boost compact --reclone` also drops already-downloaded "
302
+ "git objects")
303
+ return 0
304
+
305
+
202
306
  # ---------------------------------------------------------------- create
203
307
 
204
308
  _CREATE_BODY = """# %(title)s
@@ -1193,7 +1193,9 @@ def cmd_import(argv: list[str]) -> int:
1193
1193
  tmp = Path(tempfile.mkdtemp(prefix="boost-import-"))
1194
1194
  root = tmp / "repo"
1195
1195
  out.info("cloning %s …" % args.source)
1196
- gitutil.clone_shallow(args.source, root)
1196
+ # Full checkout, not a tap's Markdown cone: import reads whatever the
1197
+ # repo ships and copies it verbatim, assets included.
1198
+ gitutil.clone_shallow(args.source, root, sparse=False)
1197
1199
  else:
1198
1200
  root = paths.expand(args.source)
1199
1201
  if not root.is_dir():