boost-skill-cli 1.2.132__tar.gz → 1.2.133__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 (1064) hide show
  1. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/CLAUDE.md +15 -12
  2. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/Makefile +15 -9
  3. {boost_skill_cli-1.2.132/boost_skill_cli.egg-info → boost_skill_cli-1.2.133}/PKG-INFO +11 -4
  4. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/README.md +10 -3
  5. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/_version.py +2 -2
  6. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/configuration.py +153 -82
  7. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/hooks.py +7 -2
  8. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/info.py +6 -6
  9. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/quality.py +13 -9
  10. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/quickstart.py +40 -11
  11. boost_skill_cli-1.2.133/boost_cli/core/bootstrap.py +302 -0
  12. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/catalog.py +13 -7
  13. boost_skill_cli-1.2.133/boost_cli/core/compact.py +186 -0
  14. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/complete.py +47 -10
  15. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/config.py +34 -13
  16. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/jsonstate.py +12 -3
  17. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/lockfile.py +23 -29
  18. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/mcp.py +88 -15
  19. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/output.py +44 -23
  20. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/paths.py +11 -4
  21. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/policy.py +3 -11
  22. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/projectlock.py +3 -7
  23. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/rag.py +44 -17
  24. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/registry.py +13 -2
  25. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/store.py +197 -72
  26. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/util.py +56 -2
  27. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/data/rules/boost-first.mdc +11 -8
  28. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133/boost_skill_cli.egg-info}/PKG-INFO +11 -4
  29. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/SOURCES.txt +6 -0
  30. boost_skill_cli-1.2.133/docs/demo.gif +0 -0
  31. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/mcp-hub.html +7 -5
  32. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/rag-architecture.md +3 -2
  33. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +4 -4
  34. boost_skill_cli-1.2.133/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +26 -0
  35. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +3 -3
  36. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +12 -4
  37. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +6 -4
  38. boost_skill_cli-1.2.133/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +20 -0
  39. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +3 -3
  40. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +3 -3
  41. boost_skill_cli-1.2.133/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +20 -0
  42. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +3 -3
  43. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +3 -1
  44. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap.html +67 -201
  45. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_retrieval.py +14 -3
  46. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/conftest.py +6 -0
  47. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_configuration.py +43 -6
  48. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_discovery.py +80 -0
  49. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_hooks.py +84 -0
  50. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_info.py +32 -0
  51. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_quality.py +114 -0
  52. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_quickstart.py +327 -32
  53. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_taps.py +26 -0
  54. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_builtin.py +36 -3
  55. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_catalog.py +52 -1
  56. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_complete.py +128 -1
  57. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_config.py +74 -0
  58. boost_skill_cli-1.2.133/tests/unit/test_dry_run_parity.py +865 -0
  59. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_corpus.py +196 -25
  60. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_first_run_pointer.py +21 -1
  61. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_jsonstate.py +16 -0
  62. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_lockfile.py +44 -0
  63. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcp.py +163 -35
  64. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcp_read.py +13 -3
  65. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_output.py +82 -5
  66. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_output_table_drop.py +6 -4
  67. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_policy.py +8 -0
  68. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_projectlock.py +8 -0
  69. boost_skill_cli-1.2.133/tests/unit/test_quickstart_readiness.py +246 -0
  70. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rag.py +108 -1
  71. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registry.py +23 -0
  72. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_util.py +66 -0
  73. boost_skill_cli-1.2.132/boost_cli/core/bootstrap.py +0 -137
  74. boost_skill_cli-1.2.132/docs/demo.gif +0 -0
  75. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.gitattributes +0 -0
  76. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.gitignore +0 -0
  77. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.gitleaks.toml +0 -0
  78. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.htmlvalidate.json +0 -0
  79. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.lighthouserc.json +0 -0
  80. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.lycheeignore +0 -0
  81. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.markdownlint-cli2.jsonc +0 -0
  82. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.pre-commit-config.yaml +0 -0
  83. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.stylelintrc.json +0 -0
  84. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.vale/styles/boost/AIWriting.yml +0 -0
  85. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.vale/styles/boost/Terminology.yml +0 -0
  86. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  87. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.vale.ini +0 -0
  88. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/CODE_OF_CONDUCT.md +0 -0
  89. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/CONTRIBUTING.md +0 -0
  90. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/DCO +0 -0
  91. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/GOVERNANCE.md +0 -0
  92. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/LICENSE +0 -0
  93. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/MAINTAINERS.md +0 -0
  94. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/MANIFEST.in +0 -0
  95. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/SECURITY.md +0 -0
  96. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/SUPPORT.md +0 -0
  97. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost +0 -0
  98. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/__init__.py +0 -0
  99. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/__main__.py +0 -0
  100. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/cli.py +0 -0
  101. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/cliparse.py +0 -0
  102. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/__init__.py +0 -0
  103. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/_common.py +0 -0
  104. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/bmad.py +0 -0
  105. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/discovery.py +0 -0
  106. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/intelligence.py +0 -0
  107. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/pkg.py +0 -0
  108. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/run.py +0 -0
  109. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/safety.py +0 -0
  110. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/taps.py +0 -0
  111. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/team.py +0 -0
  112. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/__init__.py +0 -0
  113. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/adapters.py +0 -0
  114. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/agents.py +0 -0
  115. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/ai.py +0 -0
  116. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/aihost.py +0 -0
  117. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/archive.py +0 -0
  118. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/bmad.py +0 -0
  119. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/browse.py +0 -0
  120. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/builtin.py +0 -0
  121. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/capabilities.py +0 -0
  122. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/catalogbundle.py +0 -0
  123. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/chat.py +0 -0
  124. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/claude_settings.py +0 -0
  125. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/cohort.py +0 -0
  126. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/dense.py +0 -0
  127. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/deps.py +0 -0
  128. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/discovery.py +0 -0
  129. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/ed25519.py +0 -0
  130. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/embed.py +0 -0
  131. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/faithfulness.py +0 -0
  132. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/frontmatter.py +0 -0
  133. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/gitutil.py +0 -0
  134. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/hookhost.py +0 -0
  135. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/imperative.py +0 -0
  136. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/injectscan.py +0 -0
  137. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/installscan.py +0 -0
  138. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/integrity.py +0 -0
  139. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/journal.py +0 -0
  140. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/localembed.py +0 -0
  141. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/logs.py +0 -0
  142. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/mcpdecl.py +0 -0
  143. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/mcphost.py +0 -0
  144. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/minisign.py +0 -0
  145. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/nethttp.py +0 -0
  146. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/provenance.py +0 -0
  147. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/report.py +0 -0
  148. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/resolve.py +0 -0
  149. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/rules.py +0 -0
  150. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/scopes.py +0 -0
  151. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/secretscan.py +0 -0
  152. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/selfupdate.py +0 -0
  153. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/serve.py +0 -0
  154. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/shards.py +0 -0
  155. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/stackprobe.py +0 -0
  156. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/staleness.py +0 -0
  157. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/trustaudit.py +0 -0
  158. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/typedvalue.py +0 -0
  159. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/typosquat.py +0 -0
  160. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/updatediff.py +0 -0
  161. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/workflows.py +0 -0
  162. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/data/registries.json +0 -0
  163. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/errors.py +0 -0
  164. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/spin.py +0 -0
  165. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/__init__.py +0 -0
  166. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/_compat.py +0 -0
  167. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/graph.py +0 -0
  168. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/loader.py +0 -0
  169. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/py.typed +0 -0
  170. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/retriever.py +0 -0
  171. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  172. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  173. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/requires.txt +0 -0
  174. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/top_level.txt +0 -0
  175. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/codecov.yml +0 -0
  176. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/.claude/settings.local.json +0 -0
  177. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/DEBUGGING.md +0 -0
  178. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/adapters.html +0 -0
  179. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/README.md +0 -0
  180. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/c4-components-core.md +0 -0
  181. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/c4-containers.md +0 -0
  182. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/c4-context.md +0 -0
  183. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/c4-dynamic-install.md +0 -0
  184. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/bmad.md +0 -0
  185. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/distill.gif +0 -0
  186. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/doctor.gif +0 -0
  187. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/explain.gif +0 -0
  188. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/hooks.gif +0 -0
  189. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/install.gif +0 -0
  190. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/pulse.gif +0 -0
  191. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/search.gif +0 -0
  192. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/tap.gif +0 -0
  193. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/distill.tape +0 -0
  194. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/doctor.tape +0 -0
  195. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/explain.tape +0 -0
  196. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/hooks.tape +0 -0
  197. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/install.tape +0 -0
  198. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/pulse.tape +0 -0
  199. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/search.tape +0 -0
  200. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/tap.tape +0 -0
  201. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel.html +0 -0
  202. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/chat.html +0 -0
  203. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/code-review.md +0 -0
  204. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/commands.html +0 -0
  205. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/commit-audit.md +0 -0
  206. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/demo-index.json +0 -0
  207. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/demo.html +0 -0
  208. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/demo.tape +0 -0
  209. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/dependencies.md +0 -0
  210. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/design-roadmap.html +0 -0
  211. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/eval-latest.json +0 -0
  212. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/eval.html +0 -0
  213. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/index.html +0 -0
  214. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/langchain.html +0 -0
  215. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/openssf-badge.md +0 -0
  216. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/openssf-playbook.md +0 -0
  217. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D01.md +0 -0
  218. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D02.md +0 -0
  219. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D03.md +0 -0
  220. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D04.md +0 -0
  221. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D05.md +0 -0
  222. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D06.md +0 -0
  223. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D07.md +0 -0
  224. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D08.md +0 -0
  225. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D09.md +0 -0
  226. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D10.md +0 -0
  227. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D11.md +0 -0
  228. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D12.md +0 -0
  229. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D13.md +0 -0
  230. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D14.md +0 -0
  231. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D15.md +0 -0
  232. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D16.md +0 -0
  233. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D17.md +0 -0
  234. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D18.md +0 -0
  235. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D19.md +0 -0
  236. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D20.md +0 -0
  237. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D21.md +0 -0
  238. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D22.md +0 -0
  239. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D23.md +0 -0
  240. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D24.md +0 -0
  241. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D25.md +0 -0
  242. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D26.md +0 -0
  243. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D27.md +0 -0
  244. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  245. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  246. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  247. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  248. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  249. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  250. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  251. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  252. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  253. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  254. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  255. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  256. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  257. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  258. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  259. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  260. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-attest-findings.md +0 -0
  261. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-audit-findings.md +0 -0
  262. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  263. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-browse-findings.md +0 -0
  264. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  265. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  266. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  267. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  268. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-chat-findings.md +0 -0
  269. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  270. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  271. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  272. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-completions-findings.md +0 -0
  273. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-config-findings.md +0 -0
  274. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  275. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-context-findings.md +0 -0
  276. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  277. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  278. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-create-findings.md +0 -0
  279. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  280. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-deps-findings.md +0 -0
  281. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-discover-findings.md +0 -0
  282. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  283. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  284. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-drift-findings.md +0 -0
  285. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-edit-findings.md +0 -0
  286. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  287. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-explain-findings.md +0 -0
  288. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-export-findings.md +0 -0
  289. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  290. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  291. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  292. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  293. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  294. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-health-findings.md +0 -0
  295. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  296. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  297. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-import-findings.md +0 -0
  298. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-index-findings.md +0 -0
  299. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  300. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  301. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-install-findings.md +0 -0
  302. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  303. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  304. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-lint-findings.md +0 -0
  305. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-log-findings.md +0 -0
  306. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  307. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  308. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  309. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  310. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  311. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  312. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  313. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  314. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  315. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  316. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  317. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-policy-findings.md +0 -0
  318. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-preview-findings.md +0 -0
  319. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-profile-findings.md +0 -0
  320. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  321. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  322. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  323. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  324. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  325. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  326. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  327. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  328. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  329. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-replay-findings.md +0 -0
  330. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-root-findings.md +0 -0
  331. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  332. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-run-findings.md +0 -0
  333. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  334. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-search-findings.md +0 -0
  335. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  336. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  337. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  338. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  339. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  340. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  341. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  342. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  343. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-sync-findings.md +0 -0
  344. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-tag-findings.md +0 -0
  345. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  346. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-tap-findings.md +0 -0
  347. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-taps-findings.md +0 -0
  348. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  349. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-test-findings.md +0 -0
  350. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-trust-findings.md +0 -0
  351. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  352. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  353. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-untap-findings.md +0 -0
  354. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-update-findings.md +0 -0
  355. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  356. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-verify-findings.md +0 -0
  357. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-who-findings.md +0 -0
  358. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  359. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  360. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  361. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  362. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  363. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  364. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  365. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  366. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  367. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  368. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  369. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  370. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  371. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  372. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  373. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  374. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/boost-first-rule.md +0 -0
  375. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  376. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  377. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/branch-current-gate.md +0 -0
  378. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  379. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  380. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  381. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  382. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  383. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  384. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  385. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  386. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  387. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  388. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  389. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  390. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  391. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  392. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  393. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
  394. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  395. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  396. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cli-command-audit.md +0 -0
  397. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  398. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  399. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  400. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  401. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/command-carousel-page.md +0 -0
  402. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  403. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  404. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  405. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  406. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  407. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  408. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  409. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  410. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  411. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  412. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  413. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  414. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  415. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  416. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  417. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  418. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  419. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  420. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  421. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  422. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  423. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  424. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  425. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  426. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  427. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  428. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  429. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  430. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  431. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  432. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  433. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  434. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  435. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  436. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  437. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  438. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  439. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  440. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  441. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  442. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  443. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  444. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  445. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  446. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  447. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  448. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  449. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  450. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  451. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  452. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  453. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  454. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  455. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  456. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  457. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  458. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  459. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  460. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  461. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  462. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  463. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  464. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  465. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  466. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  467. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  468. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  469. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  470. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  471. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  472. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  473. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/github-community-health-files.md +0 -0
  474. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  475. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  476. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  477. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  478. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  479. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  480. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  481. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  482. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  483. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  484. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  485. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  486. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  487. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  488. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  489. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  490. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  491. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  492. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  493. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  494. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  495. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  496. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  497. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  498. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  499. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  500. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  501. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  502. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  503. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  504. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  505. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  506. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  507. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  508. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  509. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  510. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  511. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  512. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  513. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  514. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  515. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  516. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  517. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  518. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  519. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  520. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  521. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  522. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  523. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  524. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  525. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  526. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  527. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  528. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  529. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  530. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  531. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  532. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  533. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  534. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  535. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  536. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  537. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  538. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  539. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  540. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  541. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  542. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  543. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  544. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  545. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  546. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  547. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  548. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  549. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  550. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  551. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  552. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  553. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  554. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  555. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  556. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  557. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  558. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/openssf-playbook.md +0 -0
  559. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/openssf-silver.md +0 -0
  560. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  561. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  562. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  563. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  564. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  565. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  566. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  567. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  568. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  569. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  570. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  571. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  572. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  573. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  574. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  575. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  576. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  577. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  578. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  579. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  580. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  581. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  582. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  583. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  584. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  585. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  586. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  587. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  588. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  589. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  590. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  591. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  592. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  593. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  594. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  595. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  596. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  597. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  598. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  599. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  600. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  601. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  602. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  603. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/relicence-apache-2.md +0 -0
  604. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  605. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  606. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  607. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  608. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  609. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  610. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  611. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  612. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  613. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  614. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  615. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  616. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  617. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  618. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  619. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  620. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  621. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  622. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  623. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  624. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  625. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  626. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  627. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  628. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  629. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  630. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  631. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  632. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  633. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  634. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  635. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  636. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  637. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  638. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  639. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  640. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  641. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  642. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  643. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  644. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  645. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  646. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  647. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  648. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  649. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  650. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  651. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  652. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  653. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  654. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  655. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  656. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  657. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  658. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  659. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  660. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  661. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  662. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  663. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  664. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  665. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  666. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  667. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  668. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  669. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  670. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  671. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  672. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  673. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  674. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  675. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  676. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  677. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  678. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  679. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  680. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  681. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  682. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  683. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  684. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  685. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  686. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  687. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  688. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  689. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
  690. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  691. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  692. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  693. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  694. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  695. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  696. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  697. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  698. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  699. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  700. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  701. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  702. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  703. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  704. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/workspace-scope-install.md +0 -0
  705. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/zip-strict-audit.md +0 -0
  706. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  707. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  708. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/security-design.md +0 -0
  709. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/semantic-search.md +0 -0
  710. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  711. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/verifying-releases.md +0 -0
  712. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/meta.md +0 -0
  713. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/openvex.json +0 -0
  714. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  715. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  716. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  717. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  718. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/eslint.config.mjs +0 -0
  719. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/README.md +0 -0
  720. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/__init__.py +0 -0
  721. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/baseline.json +0 -0
  722. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/faithfulness.py +0 -0
  723. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/golden_set.json +0 -0
  724. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/make_corpus.py +0 -0
  725. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/make_golden.py +0 -0
  726. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/metrics.py +0 -0
  727. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/publish_golden_dataset.py +0 -0
  728. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/run_evals.py +0 -0
  729. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/examples/README.md +0 -0
  730. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/examples/adapt-demo.sh +0 -0
  731. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/examples/boost-run-prototype.sh +0 -0
  732. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/index.html +0 -0
  733. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/noxfile.py +0 -0
  734. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/pyproject.toml +0 -0
  735. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/coverage-tools.in +0 -0
  736. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/coverage-tools.txt +0 -0
  737. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/lint-tools.in +0 -0
  738. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/lint-tools.txt +0 -0
  739. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/mutation-tools.in +0 -0
  740. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/mutation-tools.txt +0 -0
  741. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/platform-pins.lock +0 -0
  742. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/release-tools.in +0 -0
  743. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/release-tools.txt +0 -0
  744. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/test-tools.in +0 -0
  745. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/test-tools.txt +0 -0
  746. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/a11y_check.py +0 -0
  747. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/add_spdx_headers.py +0 -0
  748. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/bench_cli.sh +0 -0
  749. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_command_reference.py +0 -0
  750. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_demo_index.py +0 -0
  751. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_registries.py +0 -0
  752. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_roadmap.py +0 -0
  753. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_scale_corpus.py +0 -0
  754. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_vex.py +0 -0
  755. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_anchors.py +0 -0
  756. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_branch_current.py +0 -0
  757. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_dco.py +0 -0
  758. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_licenses.py +0 -0
  759. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_reproducible.py +0 -0
  760. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_required_checks.py +0 -0
  761. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/ensure_eval_corpus.sh +0 -0
  762. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_corpus.py +0 -0
  763. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_explain.py +0 -0
  764. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_gate.py +0 -0
  765. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_recommend.py +0 -0
  766. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_stats_summary.py +0 -0
  767. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_tools.py +0 -0
  768. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/import_budget.py +0 -0
  769. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/lock_toolchain.py +0 -0
  770. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/measure_near_duplicate_bound.py +0 -0
  771. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/measure_registry.py +0 -0
  772. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/mutation_gate.py +0 -0
  773. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/mutation_shards.py +0 -0
  774. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/mutation_weights.json +0 -0
  775. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/normalize_sdist.py +0 -0
  776. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/page_budget.py +0 -0
  777. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/perf_gate.py +0 -0
  778. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/post_deploy_smoke.py +0 -0
  779. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/publish_eval_json.py +0 -0
  780. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/publish_shards.py +0 -0
  781. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/release_guard.py +0 -0
  782. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/release_preflight.py +0 -0
  783. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/serve_docs.py +0 -0
  784. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/shard_plan.py +0 -0
  785. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/setup.cfg +0 -0
  786. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/sonar-project.properties +0 -0
  787. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/style/README.md +0 -0
  788. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/style/boost.css +0 -0
  789. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/style/boost.js +0 -0
  790. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/style/demo.html +0 -0
  791. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/adapt.feature +0 -0
  792. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/browse.feature +0 -0
  793. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/count.feature +0 -0
  794. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/discover.feature +0 -0
  795. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/doctor.feature +0 -0
  796. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/environment.py +0 -0
  797. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/explain.feature +0 -0
  798. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/index.feature +0 -0
  799. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/install.feature +0 -0
  800. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/list.feature +0 -0
  801. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/mcp.feature +0 -0
  802. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/search.feature +0 -0
  803. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/steps/cli_steps.py +0 -0
  804. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/steps/discovery_steps.py +0 -0
  805. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/steps/mcp_steps.py +0 -0
  806. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/steps/quality_steps.py +0 -0
  807. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/baseline.json +0 -0
  808. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/explain.jsonl +0 -0
  809. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  810. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/golden-natural.jsonl +0 -0
  811. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/golden.jsonl +0 -0
  812. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/recommend.jsonl +0 -0
  813. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/taps-scale.txt +0 -0
  814. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/taps.txt +0 -0
  815. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/tool_calls.jsonl +0 -0
  816. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  817. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_bmad_all_hosts.py +0 -0
  818. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_bmad_personas_scope.py +0 -0
  819. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_capabilities_policy.py +0 -0
  820. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_adapt.py +0 -0
  821. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_bmad.py +0 -0
  822. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_catalog.py +0 -0
  823. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_chat.py +0 -0
  824. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_hooks_gemini.py +0 -0
  825. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_intelligence.py +0 -0
  826. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_json_reports.py +0 -0
  827. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_pane_width.py +0 -0
  828. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_pkg.py +0 -0
  829. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_tap_pins.py +0 -0
  830. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_team.py +0 -0
  831. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  832. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  833. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_everyday_loop.py +0 -0
  834. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_integrity_enforce.py +0 -0
  835. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_kind_conformance.py +0 -0
  836. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_property_parsers.py +0 -0
  837. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_recommend_because_is_true.py +0 -0
  838. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_reports_match_reality.py +0 -0
  839. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_run.py +0 -0
  840. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_tap_signing.py +0 -0
  841. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_workspace_scope.py +0 -0
  842. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/README.md +0 -0
  843. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  844. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  845. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  846. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  847. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  848. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  849. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  850. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  851. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  852. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  853. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  854. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  855. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  856. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  857. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  858. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  859. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  860. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  861. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  862. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  863. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  864. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  865. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  866. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/fuzz_frontmatter.py +0 -0
  867. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/fuzz_registry.py +0 -0
  868. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/langchain/conftest.py +0 -0
  869. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/langchain/test_graph.py +0 -0
  870. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/langchain/test_loader.py +0 -0
  871. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/langchain/test_retriever.py +0 -0
  872. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/make_fixture.py +0 -0
  873. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/perf/test_benchmarks.py +0 -0
  874. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/smoke.sh +0 -0
  875. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  876. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_a11y_check.py +0 -0
  877. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_action_pin_lockstep.py +0 -0
  878. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_adapters.py +0 -0
  879. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_adapters_multi.py +0 -0
  880. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_adapters_runner.py +0 -0
  881. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_agents.py +0 -0
  882. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_ai.py +0 -0
  883. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_aihost.py +0 -0
  884. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_archive.py +0 -0
  885. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_bmad_core.py +0 -0
  886. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_boost_first_offer.py +0 -0
  887. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_bootstrap.py +0 -0
  888. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_bot_pr_dco.py +0 -0
  889. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_branch_current.py +0 -0
  890. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_browse.py +0 -0
  891. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_capabilities.py +0 -0
  892. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_catalog_keyword_words.py +0 -0
  893. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_catalogbundle.py +0 -0
  894. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_chat.py +0 -0
  895. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_check_anchors.py +0 -0
  896. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_check_dco.py +0 -0
  897. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_check_licenses.py +0 -0
  898. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_check_reproducible.py +0 -0
  899. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_claude_settings.py +0 -0
  900. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_clean_internal_cache.py +0 -0
  901. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_cli_update_shards.py +0 -0
  902. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_cliparse.py +0 -0
  903. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_codeql_analysis_key.py +0 -0
  904. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_cohort.py +0 -0
  905. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_command_reference_fresh.py +0 -0
  906. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_community_health_files.py +0 -0
  907. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_compact.py +0 -0
  908. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_complete_rc_block.py +0 -0
  909. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_content_dedupe.py +0 -0
  910. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_content_identity.py +0 -0
  911. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  912. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_crash_redaction.py +0 -0
  913. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dedup_trust.py +0 -0
  914. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_demo_index.py +0 -0
  915. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense.py +0 -0
  916. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  917. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_embed_dedupe.py +0 -0
  918. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_entry_reuse.py +0 -0
  919. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_entry_vectors.py +0 -0
  920. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_fallback.py +0 -0
  921. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_fix_hint.py +0 -0
  922. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_progress.py +0 -0
  923. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_quantized.py +0 -0
  924. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_ready_order.py +0 -0
  925. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_shard_real_schema.py +0 -0
  926. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  927. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_shards.py +0 -0
  928. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_status.py +0 -0
  929. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_status_cheap.py +0 -0
  930. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_vector_dedupe.py +0 -0
  931. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dependabot_config.py +0 -0
  932. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_deps.py +0 -0
  933. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_discovery.py +0 -0
  934. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_distill_merge.py +0 -0
  935. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_docs_pages_linked.py +0 -0
  936. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_docsite_chrome.py +0 -0
  937. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_doctor_output_polish.py +0 -0
  938. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_drift_hint.py +0 -0
  939. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_ed25519.py +0 -0
  940. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_embed.py +0 -0
  941. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_embed_local.py +0 -0
  942. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_embed_truncated_response.py +0 -0
  943. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_entry_key.py +0 -0
  944. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_errors_and_cli_table.py +0 -0
  945. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_baseline.py +0 -0
  946. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_corpus_bodies.py +0 -0
  947. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_faithfulness.py +0 -0
  948. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_gate.py +0 -0
  949. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_grading.py +0 -0
  950. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_metrics.py +0 -0
  951. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_stats_summary.py +0 -0
  952. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_tools.py +0 -0
  953. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_tools_probe.py +0 -0
  954. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  955. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_faithfulness.py +0 -0
  956. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_frontmatter.py +0 -0
  957. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_fuzz_targets.py +0 -0
  958. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  959. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gitleaks_config.py +0 -0
  960. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gitutil.py +0 -0
  961. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gitutil_lfs.py +0 -0
  962. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gitutil_sparse.py +0 -0
  963. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gstack_coexistence.py +0 -0
  964. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_hook_settings_hosts.py +0 -0
  965. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_hookhost.py +0 -0
  966. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_imperative.py +0 -0
  967. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_import_budget.py +0 -0
  968. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_injectscan.py +0 -0
  969. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_install_permission_error.py +0 -0
  970. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_installscan.py +0 -0
  971. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_integrity.py +0 -0
  972. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_journal.py +0 -0
  973. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_langchain_packaging.py +0 -0
  974. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_launcher_python_floor.py +0 -0
  975. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_lighthouse_budgets.py +0 -0
  976. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_link_ownership.py +0 -0
  977. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_localembed.py +0 -0
  978. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_localembed_e2e.py +0 -0
  979. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_logs.py +0 -0
  980. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_marketing_counts.py +0 -0
  981. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcp_install_scan.py +0 -0
  982. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcpdecl.py +0 -0
  983. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcphost.py +0 -0
  984. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_measure_registry.py +0 -0
  985. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_minisign.py +0 -0
  986. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mutation_hardening.py +0 -0
  987. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mutation_shards.py +0 -0
  988. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mutation_subfile_shards.py +0 -0
  989. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mutmut_source_paths.py +0 -0
  990. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_near_duplicate_collapse.py +0 -0
  991. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_nethttp.py +0 -0
  992. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_normalize_sdist.py +0 -0
  993. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_page_budget.py +0 -0
  994. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_paths.py +0 -0
  995. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_perf_gate.py +0 -0
  996. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_pkg_confusions.py +0 -0
  997. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_pkg_injection.py +0 -0
  998. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_pkg_secrets.py +0 -0
  999. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_platform_pins.py +0 -0
  1000. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_post_deploy_smoke.py +0 -0
  1001. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_project_mcp_sidecar.py +0 -0
  1002. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_provenance.py +0 -0
  1003. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_publish_golden_dataset.py +0 -0
  1004. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rag_completeness.py +0 -0
  1005. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rag_fastpath.py +0 -0
  1006. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rag_fusion.py +0 -0
  1007. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registries_fresh.py +0 -0
  1008. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registry_categories.py +0 -0
  1009. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registry_control_chars.py +0 -0
  1010. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registry_parallel.py +0 -0
  1011. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_release_guard.py +0 -0
  1012. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_release_preflight.py +0 -0
  1013. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_report.py +0 -0
  1014. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_required_checks.py +0 -0
  1015. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rerank_cache.py +0 -0
  1016. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_resolve.py +0 -0
  1017. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1018. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_roadmap_fresh.py +0 -0
  1019. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rules.py +0 -0
  1020. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_scale_corpus.py +0 -0
  1021. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_schedule_plist.py +0 -0
  1022. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_scopes.py +0 -0
  1023. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_secretscan.py +0 -0
  1024. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_selfupdate.py +0 -0
  1025. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_serve.py +0 -0
  1026. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_serve_docs.py +0 -0
  1027. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shard_plan.py +0 -0
  1028. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shards.py +0 -0
  1029. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shards_incremental.py +0 -0
  1030. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shards_ingest.py +0 -0
  1031. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shards_matrix.py +0 -0
  1032. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1033. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_spdx_headers.py +0 -0
  1034. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_spin.py +0 -0
  1035. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_stackprobe.py +0 -0
  1036. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_staleness.py +0 -0
  1037. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_store.py +0 -0
  1038. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_store_materialize.py +0 -0
  1039. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_sync_blocked_links.py +0 -0
  1040. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_sync_lost_lock.py +0 -0
  1041. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1042. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_tap_pins.py +0 -0
  1043. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_token_parity.py +0 -0
  1044. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_toolchain_lock.py +0 -0
  1045. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_trustaudit.py +0 -0
  1046. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_typedvalue.py +0 -0
  1047. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_typosquat.py +0 -0
  1048. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_updatediff.py +0 -0
  1049. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_version.py +0 -0
  1050. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_version_tags.py +0 -0
  1051. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_vex.py +0 -0
  1052. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_visual_harness_capture.py +0 -0
  1053. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_visual_harness_flags.py +0 -0
  1054. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflow_concurrency.py +0 -0
  1055. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1056. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1057. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflow_timeouts.py +0 -0
  1058. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflows.py +0 -0
  1059. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1060. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/a11y_check.mjs +0 -0
  1061. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/console_check.mjs +0 -0
  1062. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/package-lock.json +0 -0
  1063. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/package.json +0 -0
  1064. {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/visual_check.mjs +0 -0
@@ -63,31 +63,34 @@ corpus: `scripts/ensure_eval_corpus.sh` first taps the pinned repo list in
63
63
  --defaults` is NOT enough, it omits every rule/workflow repo). The list is
64
64
  **twenty** repos: the first six cover every golden target, the rest exist so the
65
65
  corpus is a realistic size. That matters more than it sounds — over the six
66
- alone (743 entries) BM25 scores 0.978 / 0.791 / 0.854 / 0.882, and over the
67
- twenty (10,152) it scores **0.852 / 0.473 / 0.605 / 0.657** on the same golden
68
- set, so three of the four old floors fail once the corpus stops being tiny.
66
+ alone (921 entries at the current pins) BM25 scores 0.989 / 0.769 / 0.848 /
67
+ 0.880, and over the twenty (10,731) it scores **0.841 / 0.484 / 0.607 / 0.655**
68
+ on the same golden set (what `tests/eval/baseline.json` records), so three of
69
+ the four old floors fail once the corpus stops being tiny.
69
70
 
70
71
  **The ranked list de-duplicates on the content hash, not the name.** A grade key
71
72
  decides both relevance and identity, and keying identity on the name collapsed
72
73
  13 different skills called `code-reviewer` into one rank slot — crediting the
73
74
  ranker with a compression that existed only in the scoring code, and worth about
74
75
  one query of recall@10. That is where the old "recall is 1.000" folklore came
75
- from; the six-repo corpus measures 0.978 once mirrors collapse and homonyms do
76
- not. Relevance is still decided by name (or by content class when a golden row
77
- pins an `exemplar`), so the sets can migrate a row at a time.
76
+ from; the six-repo corpus measured 0.978 at the pins of the time once mirrors
77
+ collapse and homonyms do not. Relevance is still decided by name (or by content
78
+ class when a golden row pins an `exemplar`), so the sets can migrate a row at a
79
+ time.
78
80
 
79
81
  Each floor sits ~10% under its measured value — loose enough that upstream drift
80
82
  can't flake the build, tight enough to catch a collapse. Regression-vs-baseline
81
83
  stays relaxed (`--regression-eps 1`), so the absolute floors are the real gate.
82
84
 
83
85
  **Every row of `taps.txt` pins a commit SHA**, and `scripts/eval_corpus.py`
84
- checks each clone out at it — the corpus is 10,152 entries, of which one
85
- third-party repo is 6,309 (62%), so an unpinned list left a required check
86
+ checks each clone out at it — the corpus is 10,731 entries, of which one
87
+ third-party repo is 6,634 (62%), so an unpinned list left a required check
86
88
  hostage to someone else's push. CI and `make eval` must invoke the gate with
87
- identical floors; `tests/unit/test_eval_corpus.py` fails the build if they
88
- diverge, which they had (CI floored recall alone at 0.85 against a measured
89
- 0.863 — a buffer of 1.15 queries out of 91 — and applied none of the other
90
- three). Moving a pin means regenerating the baseline; the file says how.
89
+ identical arguments, not just identical floors — `-k` decides what two of them
90
+ measure; `tests/unit/test_eval_corpus.py` parses both calls and fails the build
91
+ if they diverge, which they had (CI floored recall alone at 0.85 against a
92
+ measured 0.863 — a buffer of 1.15 queries out of 91 — and applied none of the
93
+ other three). Moving a pin means regenerating the baseline; the file says how.
91
94
 
92
95
  **Baselines are keyed by query set** (`name@content-digest`), so one file holds
93
96
  both `golden.jsonl` and `golden-natural.jsonl` without either overwriting the
@@ -122,15 +122,21 @@ dist-check:
122
122
  # 0.000 passed.
123
123
  #
124
124
  # The floors are calibrated against a TWENTY-tap corpus, not the six it used to
125
- # be. Over six repos BM25 scored 1.000 / 0.791 / 0.854 / 0.882; over twenty it
126
- # scores 0.863 / 0.473 / 0.607 / 0.662 on the same golden set. The second set is
127
- # what a real user sees, so flooring against the first was measuring the corpus
128
- # rather than the retrieval — three of the four old floors fail outright once
129
- # the corpus is realistic. Each floor now sits ~10% below its measured value:
130
- # loose enough that upstream repo drift cannot flake the build, tight enough
131
- # that a collapse fails it. Regression-vs-baseline stays relaxed
132
- # (--regression-eps 1) because the corpus tracks upstream HEAD rather than
133
- # pinned commits; the absolute floors are the real gate.
125
+ # be. Over the six (921 entries) BM25 scores 0.989 / 0.769 / 0.848 / 0.880;
126
+ # over twenty it scores 0.841 / 0.484 / 0.607 / 0.655 on the same golden set,
127
+ # which is what tests/eval/baseline.json records at the current pins. The
128
+ # second set is what a real user sees, so flooring against the first was
129
+ # measuring the corpus rather than the retrieval — three of the four old floors
130
+ # fail outright once the corpus is realistic. Each floor now sits ~10% below
131
+ # its measured value: loose enough that a query or two cannot flake the build,
132
+ # tight enough that a collapse fails it. Regression-vs-baseline stays relaxed
133
+ # (--regression-eps 1); the absolute floors are the real gate. (It was relaxed
134
+ # while the corpus tracked upstream HEAD. tests/eval/taps.txt pins a commit per
135
+ # row now, so that is no longer the reason.)
136
+ #
137
+ # ci.yml and eval-corpus-refresh.yml run this same eval_retrieval.py call.
138
+ # tests/unit/test_eval_corpus.py parses all three with the script's own parser
139
+ # and fails the build on any difference, -k and --golden included.
134
140
  eval:
135
141
  PYTHON=$(PY) BOOST_HOME=$(EVAL_HOME) bash scripts/ensure_eval_corpus.sh
136
142
  BOOST_HOME=$(EVAL_HOME) $(PY) scripts/eval_retrieval.py --build -k 10 \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.132
3
+ Version: 1.2.133
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -320,11 +320,18 @@ If you tapped heavily before this landed, `boost compact` narrows the clones you
320
320
  already have, offline and with no loss of search coverage:
321
321
 
322
322
  ```bash
323
- boost compact --dry-run # what it would reclaim
324
- boost compact # narrow every clone in place
325
- boost compact --reclone # also drop downloaded git objects (needs network)
323
+ boost compact --dry-run # what narrowing would reclaim
324
+ boost compact # narrow every clone in place
325
+ boost compact --reclone --dry-run # what a re-clone would remove first
326
+ boost compact --reclone # also drop downloaded git objects (needs network)
326
327
  ```
327
328
 
329
+ Narrowing removes only files git tracks. A file you dropped into a clone by
330
+ hand stays where it is, so `--dry-run` does not count it. `--reclone` deletes
331
+ the whole clone, so its preview does count those files, plus the `.git` it
332
+ drops. It gives no net figure, because the size of the fresh clone is up to
333
+ the remote.
334
+
328
335
  boost indexes three item kinds from the same registries, and they install to
329
336
  different places. A skill is copied into the canonical store and symlinked out.
330
337
  A rule is materialised into each agent's context file (`~/.claude/CLAUDE.md`,
@@ -278,11 +278,18 @@ If you tapped heavily before this landed, `boost compact` narrows the clones you
278
278
  already have, offline and with no loss of search coverage:
279
279
 
280
280
  ```bash
281
- boost compact --dry-run # what it would reclaim
282
- boost compact # narrow every clone in place
283
- boost compact --reclone # also drop downloaded git objects (needs network)
281
+ boost compact --dry-run # what narrowing would reclaim
282
+ boost compact # narrow every clone in place
283
+ boost compact --reclone --dry-run # what a re-clone would remove first
284
+ boost compact --reclone # also drop downloaded git objects (needs network)
284
285
  ```
285
286
 
287
+ Narrowing removes only files git tracks. A file you dropped into a clone by
288
+ hand stays where it is, so `--dry-run` does not count it. `--reclone` deletes
289
+ the whole clone, so its preview does count those files, plus the `.git` it
290
+ drops. It gives no net figure, because the size of the fresh clone is up to
291
+ the remote.
292
+
286
293
  boost indexes three item kinds from the same registries, and they install to
287
294
  different places. A skill is copied into the canonical store and symlinked out.
288
295
  A rule is materialised into each agent's context file (`~/.claude/CLAUDE.md`,
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.2.132'
22
- __version_tuple__ = version_tuple = (1, 2, 132)
21
+ __version__ = version = '1.2.133'
22
+ __version_tuple__ = version_tuple = (1, 2, 133)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -20,6 +20,7 @@ from pathlib import Path
20
20
  from .. import __version__, cliparse
21
21
  from ..core import (
22
22
  agents,
23
+ ai,
23
24
  bootstrap,
24
25
  builtin,
25
26
  catalog,
@@ -44,6 +45,9 @@ from ..core import (
44
45
  typedvalue,
45
46
  util,
46
47
  )
48
+ from ..core import (
49
+ compact as compactplan,
50
+ )
47
51
  from ..core import output as out
48
52
  from ..errors import BoostError
49
53
  from ._common import _s
@@ -284,34 +288,6 @@ def cmd_clean(argv) -> int:
284
288
  return 0
285
289
 
286
290
 
287
- def _freight_bytes(tap_path: Path, keep_dirs: list[str]) -> int:
288
- """Bytes that would leave `tap_path`'s working tree when the cone applies.
289
-
290
- Mirrors what `gitutil.SPARSE_PATTERNS` keeps rather than approximating it,
291
- so the dry run does not promise back the provenance files or the assets of
292
- an already-installed skill — both of which survive and neither of which is
293
- freed.
294
- """
295
- kept = tuple("%s/" % d.strip("/") for d in keep_dirs)
296
- total = 0
297
- for f in tap_path.rglob("*"):
298
- if not f.is_file():
299
- continue
300
- # Relative to the tap, never absolute: every clone lives *under*
301
- # ~/.boost, so testing the absolute parts for ".boost" excluded every
302
- # file in every tap and reported that nothing could be freed.
303
- rel = f.relative_to(tap_path)
304
- if ".git" in rel.parts or ".boost" in rel.parts:
305
- continue
306
- if (f.suffix.lower() in (".md", ".mdc")
307
- or f.name in catalog.RULE_FILENAMES):
308
- continue
309
- if kept and rel.as_posix().startswith(kept):
310
- continue
311
- total += f.stat().st_size
312
- return total
313
-
314
-
315
291
  # `boost doctor`'s wording for the same condition (quality.py), so the two
316
292
  # commands describe one missing clone in one sentence.
317
293
  _NOT_CLONED = "not cloned — run `boost update`"
@@ -365,20 +341,49 @@ def cmd_compact(argv) -> int:
365
341
  keep.setdefault(entry.get("tap", ""), []).append(entry["source_dir"])
366
342
 
367
343
  freed = 0
344
+ removed = 0 # bytes deleted before any re-download (reclone)
368
345
  changed = 0
369
346
  broken = 0 # cloned taps this run failed on
370
347
  for tap in taps:
371
348
  before = util.dir_size(tap.path)
372
349
  if args.dry_run:
373
- loose = _freight_bytes(tap.path, keep.get(tap.name, []))
374
- if loose:
350
+ try:
351
+ plan = compactplan.plan(tap.path, keep.get(tap.name, []),
352
+ reclone=args.reclone)
353
+ except BoostError as e:
354
+ # A clone git cannot read fails the real run at `narrow` one
355
+ # step later, so the preview reports it the same way rather
356
+ # than answering "nothing to free" for a tap it never read.
357
+ broken += 1
358
+ rows.append({"tap": tap.name, "error": str(e)})
359
+ out.warn("could not predict %s: %s" % (tap.name, e),
360
+ stream=sys.stderr if args.json else None)
361
+ continue
362
+ # `--reclone` does real work on every tap — it refreshes the clone
363
+ # and can move it back onto its pin — and the live run counts each
364
+ # one as changed for exactly that reason. A preview that went
365
+ # silent for a tap with no freight would under-report the run it
366
+ # is previewing.
367
+ if plan.removes or args.reclone:
375
368
  changed += 1
376
- freed += loose
377
- rows.append({"tap": tap.name, "bytes": loose,
378
- "before": before, "after": before - loose})
379
- if not args.json:
369
+ freed += plan.net or 0
370
+ removed += plan.removes
371
+ rows.append({"tap": tap.name, "bytes": plan.freight,
372
+ "git_bytes": plan.git_bytes,
373
+ "reclone": plan.reclone, "before": before,
374
+ # None, not a number: see compactplan.Plan.net —
375
+ # the re-download's size is the remote's answer.
376
+ "after": None if plan.reclone
377
+ else before - plan.freight})
378
+ if not args.json and plan.reclone:
379
+ out.info("would re-clone %s — removes %s of freight and "
380
+ "%s of git objects, then re-downloads a blobless "
381
+ "clone (final size set by the remote)"
382
+ % (tap.name, util.human_size(plan.freight),
383
+ util.human_size(plan.git_bytes)), wrap=True)
384
+ elif not args.json:
380
385
  out.info("would free %s from %s"
381
- % (util.human_size(loose), tap.name))
386
+ % (util.human_size(plan.freight), tap.name))
382
387
  continue
383
388
  try:
384
389
  if args.reclone:
@@ -444,10 +449,17 @@ def cmd_compact(argv) -> int:
444
449
  if args.dry_run:
445
450
  if args.json:
446
451
  print(json.dumps({"taps": rows, "count": changed, "bytes": freed,
452
+ "removes": removed, "reclone": args.reclone,
447
453
  "dry_run": True, "ok": not failed}, indent=2))
448
454
  return rc
449
- out.dim(" %d tap(s) · %s would be freed"
450
- % (changed, util.human_size(freed)))
455
+ if args.reclone:
456
+ # Deliberately not "would be freed": under `--reclone` that number
457
+ # is `removed` minus a re-download boost has not made yet.
458
+ out.dim(" %d tap(s) would be re-cloned · %s removed first"
459
+ % (changed, util.human_size(removed)))
460
+ else:
461
+ out.dim(" %d tap(s) · %s would be freed"
462
+ % (changed, util.human_size(freed)))
451
463
  return rc
452
464
  journal.log("compact", "%d taps" % changed, freed=util.human_size(freed))
453
465
  if args.json:
@@ -769,6 +781,11 @@ def cmd_policy(argv) -> int:
769
781
 
770
782
  _WORKFLOW_REL = ".github/workflows/boost-skill-inventory.yml"
771
783
  _TELEMETRY_REL = ".boost/telemetry.json"
784
+ # Named once: `--dry-run --pr` rehearses the branch the real run creates,
785
+ # and a preview naming a different branch is the defect it exists to fix.
786
+ _PR_BRANCH = "boost/onboard-skill-tracker"
787
+ # Lines of each file the preview shows before saying how many it hid.
788
+ _PREVIEW_LINES = 24
772
789
 
773
790
  _WORKFLOW_YML = """\
774
791
  # generated by `boost onboard` — publishes this repo's AI-skill inventory
@@ -797,6 +814,19 @@ jobs:
797
814
  """
798
815
 
799
816
 
817
+ def _onboard_unchanged(dest: Path, content: str) -> bool:
818
+ """True when `dest` already holds exactly `content`; the run skips it.
819
+
820
+ Shared with the dry run so the preview and the write agree on which files
821
+ the run leaves alone. An unreadable file counts as different, and the
822
+ real run asks before it overwrites one.
823
+ """
824
+ try:
825
+ return dest.read_text(encoding="utf-8") == content
826
+ except (OSError, UnicodeDecodeError):
827
+ return False
828
+
829
+
800
830
  def _write_onboard_file(dest: Path, content: str, force: bool) -> bool:
801
831
  """Write one generated onboard file; confirm first if it already exists.
802
832
 
@@ -813,11 +843,7 @@ def _write_onboard_file(dest: Path, content: str, force: bool) -> bool:
813
843
  dest.write_text(content, encoding="utf-8")
814
844
  out.ok("created %s" % _tilde(dest))
815
845
  return True
816
- try:
817
- unchanged = dest.read_text(encoding="utf-8") == content
818
- except (OSError, UnicodeDecodeError):
819
- unchanged = False # unreadable: treat as different and ask
820
- if unchanged:
846
+ if _onboard_unchanged(dest, content):
821
847
  # Re-running onboard regenerates the workflow byte-for-byte. Prompting
822
848
  # to overwrite a file with its own contents is noise, not safety.
823
849
  out.info("unchanged %s" % _tilde(dest))
@@ -882,17 +908,12 @@ def cmd_onboard(argv) -> int:
882
908
  json.dumps(lockfile.portable(lockfile.read()),
883
909
  indent=2, sort_keys=True) + "\n"))
884
910
 
885
- if args.dry_run:
886
- for rel, content in files:
887
- dest = repo / rel
888
- out.heading("would %s %s"
889
- % ("overwrite" if dest.exists() else "write",
890
- _tilde(dest)))
891
- for line in content.splitlines()[:24]:
892
- out.dim(" " + line)
893
- return 0
894
-
895
- if args.pr: # check preconditions FIRST so we never leave the repo mid-state
911
+ # Preconditions FIRST so a real run never leaves the repo mid-state — and
912
+ # *before* the dry-run return, because all three are read-only and a
913
+ # preview that skips them is the one shape of dry run that is worse than
914
+ # none: `--dry-run --pr` outside a git repository exited 0 with no plan and
915
+ # no failure, so the flag the user was rehearsing was never rehearsed.
916
+ if args.pr:
896
917
  if not gitutil.is_repo(repo):
897
918
  raise BoostError("%s is not a git repository" % _tilde(repo),
898
919
  hint="--pr needs a git checkout with a GitHub remote")
@@ -903,6 +924,34 @@ def cmd_onboard(argv) -> int:
903
924
  raise BoostError("the `gh` CLI is required for --pr",
904
925
  hint="brew install gh, or rerun without --pr")
905
926
 
927
+ if args.dry_run:
928
+ changes = 0
929
+ for rel, content in files:
930
+ dest = repo / rel
931
+ if dest.exists() and _onboard_unchanged(dest, content):
932
+ out.info("unchanged %s" % _tilde(dest))
933
+ continue
934
+ changes += 1
935
+ out.heading("would %s %s"
936
+ % ("overwrite" if dest.exists() else "write",
937
+ _tilde(dest)))
938
+ shown, hidden = util.head_lines(content, _PREVIEW_LINES)
939
+ for line in shown:
940
+ out.dim(" " + line)
941
+ if hidden:
942
+ # Say the preview was cut, and by how much. Without this the
943
+ # lock preview stopped mid-object and read as a malformed file
944
+ # rather than a shortened view of a well-formed one.
945
+ out.dim(" … %d more line%s"
946
+ % (hidden, "" if hidden == 1 else "s"))
947
+ if not changes:
948
+ # The real run's answer on this state, and it opens no PR.
949
+ out.info("nothing to do — %s already onboarded" % _tilde(repo))
950
+ elif args.pr:
951
+ out.info("would commit them on %s and run `gh pr create --fill`"
952
+ % _PR_BRANCH)
953
+ return 0
954
+
906
955
  written = [rel for rel, content in files
907
956
  if _write_onboard_file(repo / rel, content,
908
957
  args.force or args.yes)]
@@ -915,7 +964,7 @@ def cmd_onboard(argv) -> int:
915
964
  journal.log("onboard", _tilde(repo), pr=args.pr or None)
916
965
 
917
966
  if args.pr:
918
- branch = "boost/onboard-skill-tracker"
967
+ branch = _PR_BRANCH
919
968
  gitutil.run(["-C", str(repo), "checkout", "-b", branch])
920
969
  gitutil.run(["-C", str(repo), "add", *written])
921
970
  gitutil.run(["-C", str(repo), "commit", "-m",
@@ -1331,12 +1380,18 @@ REGISTRY = mcp.Registry()
1331
1380
  def _ranking_note(ranker: str) -> str:
1332
1381
  """One line naming the ranking that actually produced this order.
1333
1382
 
1334
- `boost_search`'s own description promises an LLM rerank and quotes what it
1335
- buys — the right skill first 95% of the time against 79% without. When no
1336
- AI is configured that rerank degrades to the retrieval order, and the reply
1337
- was byte-for-byte the shape of a reranked one: same ten lines, same
1338
- confidence, 79%. An agent acts on the top result because the description
1339
- told it to.
1383
+ `boost_search`'s description once promised an LLM rerank on every machine
1384
+ and quoted what it buys — the right skill first 95% of the time against 79%
1385
+ without. When no AI is configured that rerank degrades to the retrieval
1386
+ order, and the reply was byte-for-byte the shape of a reranked one: same
1387
+ ten lines, same confidence, 79%. An agent acts on the top result because
1388
+ the description told it to.
1389
+
1390
+ The description is now priced per machine (`mcp.search_cost`), so on a
1391
+ keyless one it already says the rerank is off. This line still matters on
1392
+ both: it is the per-call truth, and it covers a rerank that was available
1393
+ at connect time and failed on this call. So it names what did not run
1394
+ without claiming the description promised it.
1340
1395
 
1341
1396
  `rag.rerank` already computes the only thing that distinguishes the two
1342
1397
  cases, and its own comment says so — "the label is the only signal about
@@ -1344,10 +1399,9 @@ def _ranking_note(ranker: str) -> str:
1344
1399
  """
1345
1400
  if ranker == rag.LLM_RANKER:
1346
1401
  return "\n(ranked by %s)" % ranker
1347
- return ("\n(ranked by %s — the LLM rerank named in this tool's description "
1348
- "did NOT run, so this is a shortlist to read rather than a verdict "
1349
- "to act on. Configure ANTHROPIC_API_KEY or the `claude` CLI to "
1350
- "enable it.)" % ranker)
1402
+ return ("\n(ranked by %s — the LLM rerank did NOT run, so this is a "
1403
+ "shortlist to read rather than a verdict to act on. Configure "
1404
+ "ANTHROPIC_API_KEY or the `claude` CLI to enable it.)" % ranker)
1351
1405
 
1352
1406
 
1353
1407
  # The label for the pre-RAG fallback below. `_ranking_note` needs a name for
@@ -1487,8 +1541,9 @@ def _tool_read(args: dict):
1487
1541
  is worth adopting had one sentence written by whoever published it, and its
1488
1542
  only route to the actual steps was to install into the user's real
1489
1543
  ``~/.agents/skills`` and read it off disk. That inverts the surface's own
1490
- pitch — ``boost_search`` spends 10-15 s of rerank so the top result is worth
1491
- acting on, and then nothing let the agent look at it.
1544
+ pitch — where AI is configured ``boost_search`` spends 10-15 s of rerank so
1545
+ the top result is worth acting on, and then nothing let the agent look at
1546
+ it.
1492
1547
 
1493
1548
  The body is also the only thing separating a written skill from a generated
1494
1549
  stub, and the catalogue holds both: two ranked hits share the description
@@ -1656,8 +1711,7 @@ def _tool_discover_github(args: dict):
1656
1711
  # declarations are the only boost text reliably in context at the moment an
1657
1712
  # agent chooses a tool, so each one repeats the trigger, the cost and the
1658
1713
  # miss protocol rather than deferring to the server instructions.
1659
- REGISTRY.register(
1660
- "boost_search",
1714
+ _SEARCH_PITCH = (
1661
1715
  "Someone has probably solved this already — one call tells you. Searches "
1662
1716
  "every skill, rule and workflow in every registry you have tapped and "
1663
1717
  "returns ranked matches, one per line: name, a [rule] or [workflow] kind "
@@ -1689,22 +1743,40 @@ REGISTRY.register(
1689
1743
  "apart. Read-only where it counts: it "
1690
1744
  "installs nothing and touches nothing you are working on, though the first "
1691
1745
  "search builds a local index under ~/.boost. A hit commits you to nothing "
1692
- "either: take what fits, discard the rest, the task stays yours. It costs "
1693
- "10-15 seconds — an LLM reranks every match, which is what makes the top "
1694
- "result worth acting on rather than skimming. Worth budgeting for, not a "
1695
- "surprise — and only a novel search pays it: repeating an identical "
1696
- "search skips the LLM and answers from a local cache. "
1746
+ "either: take what fits, discard the rest, the task stays yours. "
1747
+ )
1748
+ _SEARCH_MISS = (
1697
1749
  "Coming back empty is a real answer too, not a "
1698
1750
  "wasted turn: it means build it yourself, now knowing nothing already "
1699
1751
  "covers it — and on a machine with nothing tapped yet it says so and names "
1700
1752
  "the one command that fixes it, rather than reporting a miss. "
1701
- # The bound, verbatim from `mcp.INSTRUCTIONS`: six of its seven
1753
+ # The bound, verbatim from the server instructions: six of their seven
1702
1754
  # load-bearing elements were already duplicated into this description and
1703
1755
  # the seventh — the one that says when not to call — was in none of the
1704
1756
  # seven. On a Gemini-family host the description is the only boost text
1705
1757
  # reliably in context, so what shipped there was every persuasive element
1706
1758
  # and none of the restraint.
1707
- + mcp.SKIP_IT,
1759
+ + mcp.SKIP_IT
1760
+ )
1761
+
1762
+
1763
+ def _search_description(ai_available: bool) -> str:
1764
+ """boost_search's description, priced for the machine the host connected to.
1765
+
1766
+ The cost clause is ``mcp.search_cost``, the same one the server
1767
+ instructions carry, so the two surfaces cannot disagree about the price.
1768
+ Registered as a callable so ``tools/list`` renders it when a host connects
1769
+ (``mcp.Registry.specs``), not when this module is imported.
1770
+ """
1771
+ return "%s%s %s" % (_SEARCH_PITCH, mcp.search_cost(ai_available),
1772
+ _SEARCH_MISS)
1773
+
1774
+
1775
+ REGISTRY.register(
1776
+ "boost_search",
1777
+ # A lambda rather than the function itself so `ai.available` is looked up
1778
+ # on each call — the predicate `rag.rerank` branches on.
1779
+ lambda: _search_description(ai.available()),
1708
1780
  {"type": "object",
1709
1781
  "properties": {"query": {"type": "string",
1710
1782
  "description": "what you are trying to do, in "
@@ -1724,7 +1796,7 @@ REGISTRY.register(
1724
1796
  "kind nothing here could have loaded. boost_search is what reads the "
1725
1797
  "registries themselves. "
1726
1798
  # The cost clause names its own mechanism. Gemini CLI never delivers
1727
- # server `instructions` in interactive mode, so INSTRUCTIONS' "boost_list
1799
+ # server `instructions` in interactive mode, so their "boost_list
1728
1800
  # is free, call it whenever" is absent on that host and this declaration
1729
1801
  # is the only place left to say it. "Instant" alone is a claim about the
1730
1802
  # clock that an agent has to take on trust; "a local file read rather
@@ -1777,8 +1849,8 @@ REGISTRY.register(
1777
1849
  "holds unfilled templates and stubs that echo their own name back, and "
1778
1850
  "those rank and render exactly like a procedure someone debugged. The body "
1779
1851
  "is the only thing that tells them apart. Read-only and offline — it "
1780
- "installs nothing, changes nothing, and unlike boost_search costs no "
1781
- "rerank, so it is fast. Long items are truncated at a stated character "
1852
+ "installs nothing, changes nothing, and never reranks, so it is fast. "
1853
+ "Long items are truncated at a stated character "
1782
1854
  "count and the reply says so and names the command that returns the rest; "
1783
1855
  "a body that arrives whole is whole.",
1784
1856
  {"type": "object",
@@ -1844,10 +1916,9 @@ REGISTRY.register(
1844
1916
  "description": "max repositories to return (default 20)"}}},
1845
1917
  _tool_discover_github)
1846
1918
 
1847
- # Back-compat shims: the JSON-RPC server and tests reference these names.
1848
- _MCP_TOOLS = REGISTRY.specs()
1849
-
1850
-
1919
+ # Back-compat shim: the functional tests reference this name. The `_MCP_TOOLS`
1920
+ # snapshot that sat beside it is gone — taken at import, it froze boost_search's
1921
+ # machine-dependent description under whatever state held then.
1851
1922
  def _mcp_tool(tool: str, args: dict):
1852
1923
  """Run one MCP tool -> (text, is_error). (None, _) for unknown tools.
1853
1924
 
@@ -88,11 +88,16 @@ def _list(scope, host, event=None, as_json=False) -> int:
88
88
  + (" for event '%s'" % event if event else ""))
89
89
  return 0
90
90
  out.table(
91
- [(r["host"], r["scope"], r["event"], r["name"], r["matcher"] or "-",
91
+ [(r["name"], r["host"], r["scope"], r["event"], r["matcher"] or "-",
92
92
  r["command"]) for r in rows],
93
- headers=("host", "scope", "event", "name", "matcher", "command"),
93
+ # `name` leads because a narrow pane drops columns right to left: it is
94
+ # what `hooks remove -n` takes, so it goes last, while `host` — the
95
+ # same word on every row — goes before it. Fourth, it went second.
96
+ headers=("name", "host", "scope", "event", "matcher", "command"),
94
97
  # A hook's command is what the user came to read — a clipped one
95
98
  # cannot be compared against what they registered, or copied back.
99
+ # Only it: protecting `name` too let the two outgrow the pane together
100
+ # with nothing left to drop.
96
101
  keep=("command",))
97
102
  return 0
98
103
 
@@ -201,11 +201,6 @@ def _skill_meta(name: str):
201
201
  return frontmatter.parse(_read(p))[0]
202
202
 
203
203
 
204
- def _file_count(d: Path) -> int:
205
- return sum(1 for p in Path(d).rglob("*")
206
- if p.is_file() and not any(part in util.IGNORED for part in p.parts))
207
-
208
-
209
204
  def _mark(installed: bool) -> str:
210
205
  return (out.role("✓ installed", "success") if installed
211
206
  else out.role("✗ not installed", "danger"))
@@ -498,7 +493,12 @@ def cmd_info(argv):
498
493
  score = size = files = None
499
494
  if skill_dir:
500
495
  score, _notes = util.score_skill(skill_dir)
501
- size, files = util.dir_size(skill_dir), _file_count(skill_dir)
496
+ # What an install will copy, not what the tap's tree occupies: links
497
+ # dereferenced (a skill a tap ships as links arrives as their
498
+ # targets) and IGNORED names skipped, one set for both numbers.
499
+ copied = util.copied_files(skill_dir)
500
+ size = sum(f.stat().st_size for f in copied)
501
+ files = len(copied)
502
502
 
503
503
  if args.json:
504
504
  print(json.dumps({
@@ -1116,12 +1116,15 @@ def cmd_heal(argv):
1116
1116
 
1117
1117
  # linking_agents, matching agents.ensure_agent_dirs below: a native-store
1118
1118
  # agent's skills dir is never written to, so it is not a missing directory.
1119
- wanted = [paths.boost_home(), paths.repos_dir(), paths.cache_dir(), paths.logs_dir(), paths.state_dir(), paths.snapshots_dir(), paths.lock_history_dir(), paths.profiles_dir(), paths.store_dir(), *list(agents.linking_agents().values())]
1119
+ wanted = [*paths.boost_dirs(), *agents.linking_agents().values()]
1120
1120
  missing = [d for d in wanted if not d.is_dir()]
1121
1121
  if missing:
1122
1122
  if dry:
1123
- out.info("would create %d missing director%s"
1124
- % (len(missing), "y" if len(missing) == 1 else "ies"))
1123
+ # Named, like every other repair heal previews: a bare count was
1124
+ # the one line that never said which paths get written — on a
1125
+ # fresh HOME, `~/.agents/skills` and each agent's skills dir.
1126
+ for d in missing:
1127
+ out.info("would create directory %s" % _tilde(d))
1125
1128
  else:
1126
1129
  paths.ensure_dirs()
1127
1130
  agents.ensure_agent_dirs()
@@ -1159,12 +1162,13 @@ def cmd_heal(argv):
1159
1162
  continue
1160
1163
  out.info("would remove stale link %s" % _tilde(p))
1161
1164
  actions.append("stale %s" % p)
1162
- for name in plan["missing_store"]:
1163
- out.info("would restore %s from its tap (or drop it from the lock)" % name)
1164
- actions.append("restore %s" % name)
1165
- for name in plan["unrecorded_store"]:
1166
- out.info("would re-record %s, which the lock file has lost" % name)
1167
- actions.append("re-record %s" % name)
1165
+ # The branch `sync_apply` will take, worded by the same planner it
1166
+ # uses: this said "would restore X from its tap (or drop it from the
1167
+ # lock)" where the live run reinstalls, and previewed no rule or
1168
+ # workflow repair at all.
1169
+ for msg in store.sync_preview(plan):
1170
+ out.info(msg.replace(str(paths.home()), "~"))
1171
+ actions.append(msg)
1168
1172
  else:
1169
1173
  for msg in store.sync_apply(plan):
1170
1174
  out.ok(msg.replace(str(paths.home()), "~"))