boost-skill-cli 1.2.131__tar.gz → 1.2.132__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 (1058) hide show
  1. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.lighthouserc.json +1 -1
  2. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/CLAUDE.md +28 -6
  3. {boost_skill_cli-1.2.131/boost_skill_cli.egg-info → boost_skill_cli-1.2.132}/PKG-INFO +4 -4
  4. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/README.md +3 -3
  5. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/_version.py +2 -2
  6. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/cli.py +31 -1
  7. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/configuration.py +23 -3
  8. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/discovery.py +14 -4
  9. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/info.py +12 -1
  10. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/pkg.py +16 -4
  11. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/quality.py +95 -9
  12. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/quickstart.py +32 -6
  13. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/taps.py +39 -6
  14. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/catalog.py +30 -3
  15. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/config.py +55 -0
  16. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/dense.py +30 -5
  17. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/mcp.py +13 -2
  18. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/output.py +154 -10
  19. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/rag.py +36 -4
  20. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/registry.py +38 -0
  21. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/store.py +30 -6
  22. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132/boost_skill_cli.egg-info}/PKG-INFO +4 -4
  23. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/SOURCES.txt +8 -0
  24. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/commands.html +4 -3
  25. boost_skill_cli-1.2.132/docs/demo.gif +0 -0
  26. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/index.html +4 -4
  27. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +3 -3
  28. boost_skill_cli-1.2.132/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +32 -0
  29. boost_skill_cli-1.2.132/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +22 -0
  30. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +3 -3
  31. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +4 -4
  32. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +3 -3
  33. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/explain-outline-has-no-cap.md +3 -3
  34. boost_skill_cli-1.2.132/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +20 -0
  35. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +3 -3
  36. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +5 -3
  37. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +3 -3
  38. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +3 -3
  39. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +3 -3
  40. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +3 -3
  41. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +3 -3
  42. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +3 -3
  43. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +3 -3
  44. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +3 -3
  45. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +3 -3
  46. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +3 -3
  47. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +3 -3
  48. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +3 -3
  49. boost_skill_cli-1.2.132/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +40 -0
  50. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap.html +126 -738
  51. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/ensure_eval_corpus.sh +28 -3
  52. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_corpus.py +41 -1
  53. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_retrieval.py +121 -3
  54. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_tools.py +174 -23
  55. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_discovery.py +67 -0
  56. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_hooks.py +20 -0
  57. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_info.py +68 -0
  58. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_quality.py +162 -4
  59. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_quickstart.py +59 -0
  60. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/smoke.sh +19 -1
  61. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_catalog.py +84 -0
  62. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_config.py +32 -0
  63. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_fix_hint.py +43 -2
  64. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_status.py +92 -4
  65. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_corpus.py +215 -5
  66. boost_skill_cli-1.2.132/tests/unit/test_eval_corpus_bodies.py +499 -0
  67. boost_skill_cli-1.2.132/tests/unit/test_eval_tools.py +738 -0
  68. boost_skill_cli-1.2.132/tests/unit/test_first_run_pointer.py +274 -0
  69. boost_skill_cli-1.2.132/tests/unit/test_lighthouse_budgets.py +109 -0
  70. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_marketing_counts.py +159 -0
  71. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcp.py +39 -0
  72. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_output.py +129 -5
  73. boost_skill_cli-1.2.132/tests/unit/test_output_table_drop.py +396 -0
  74. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rag.py +64 -1
  75. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_roadmap_fresh.py +31 -0
  76. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_spdx_headers.py +25 -0
  77. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_store.py +32 -0
  78. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_store_materialize.py +93 -0
  79. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_tap_pins.py +33 -0
  80. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/a11y_check.mjs +4 -0
  81. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/package-lock.json +8 -8
  82. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/package.json +1 -1
  83. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/visual_check.mjs +5 -0
  84. boost_skill_cli-1.2.131/docs/demo.gif +0 -0
  85. boost_skill_cli-1.2.131/tests/unit/test_eval_tools.py +0 -378
  86. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.gitattributes +0 -0
  87. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.gitignore +0 -0
  88. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.gitleaks.toml +0 -0
  89. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.htmlvalidate.json +0 -0
  90. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.lycheeignore +0 -0
  91. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.markdownlint-cli2.jsonc +0 -0
  92. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.pre-commit-config.yaml +0 -0
  93. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.stylelintrc.json +0 -0
  94. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.vale/styles/boost/AIWriting.yml +0 -0
  95. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.vale/styles/boost/Terminology.yml +0 -0
  96. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  97. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.vale.ini +0 -0
  98. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/CODE_OF_CONDUCT.md +0 -0
  99. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/CONTRIBUTING.md +0 -0
  100. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/DCO +0 -0
  101. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/GOVERNANCE.md +0 -0
  102. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/LICENSE +0 -0
  103. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/MAINTAINERS.md +0 -0
  104. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/MANIFEST.in +0 -0
  105. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/Makefile +0 -0
  106. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/SECURITY.md +0 -0
  107. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/SUPPORT.md +0 -0
  108. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost +0 -0
  109. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/__init__.py +0 -0
  110. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/__main__.py +0 -0
  111. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/cliparse.py +0 -0
  112. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/__init__.py +0 -0
  113. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/_common.py +0 -0
  114. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/bmad.py +0 -0
  115. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/hooks.py +0 -0
  116. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/intelligence.py +0 -0
  117. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/run.py +0 -0
  118. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/safety.py +0 -0
  119. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/team.py +0 -0
  120. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/__init__.py +0 -0
  121. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/adapters.py +0 -0
  122. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/agents.py +0 -0
  123. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/ai.py +0 -0
  124. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/aihost.py +0 -0
  125. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/archive.py +0 -0
  126. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/bmad.py +0 -0
  127. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/bootstrap.py +0 -0
  128. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/browse.py +0 -0
  129. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/builtin.py +0 -0
  130. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/capabilities.py +0 -0
  131. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/catalogbundle.py +0 -0
  132. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/chat.py +0 -0
  133. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/claude_settings.py +0 -0
  134. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/cohort.py +0 -0
  135. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/complete.py +0 -0
  136. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/deps.py +0 -0
  137. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/discovery.py +0 -0
  138. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/ed25519.py +0 -0
  139. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/embed.py +0 -0
  140. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/faithfulness.py +0 -0
  141. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/frontmatter.py +0 -0
  142. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/gitutil.py +0 -0
  143. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/hookhost.py +0 -0
  144. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/imperative.py +0 -0
  145. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/injectscan.py +0 -0
  146. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/installscan.py +0 -0
  147. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/integrity.py +0 -0
  148. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/journal.py +0 -0
  149. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/jsonstate.py +0 -0
  150. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/localembed.py +0 -0
  151. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/lockfile.py +0 -0
  152. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/logs.py +0 -0
  153. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/mcpdecl.py +0 -0
  154. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/mcphost.py +0 -0
  155. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/minisign.py +0 -0
  156. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/nethttp.py +0 -0
  157. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/paths.py +0 -0
  158. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/policy.py +0 -0
  159. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/projectlock.py +0 -0
  160. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/provenance.py +0 -0
  161. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/report.py +0 -0
  162. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/resolve.py +0 -0
  163. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/rules.py +0 -0
  164. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/scopes.py +0 -0
  165. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/secretscan.py +0 -0
  166. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/selfupdate.py +0 -0
  167. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/serve.py +0 -0
  168. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/shards.py +0 -0
  169. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/stackprobe.py +0 -0
  170. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/staleness.py +0 -0
  171. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/trustaudit.py +0 -0
  172. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/typedvalue.py +0 -0
  173. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/typosquat.py +0 -0
  174. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/updatediff.py +0 -0
  175. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/util.py +0 -0
  176. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/workflows.py +0 -0
  177. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/data/registries.json +0 -0
  178. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/data/rules/boost-first.mdc +0 -0
  179. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/errors.py +0 -0
  180. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/spin.py +0 -0
  181. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/__init__.py +0 -0
  182. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/_compat.py +0 -0
  183. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/graph.py +0 -0
  184. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/loader.py +0 -0
  185. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/py.typed +0 -0
  186. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/retriever.py +0 -0
  187. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  188. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  189. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/requires.txt +0 -0
  190. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/top_level.txt +0 -0
  191. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/codecov.yml +0 -0
  192. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/.claude/settings.local.json +0 -0
  193. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/DEBUGGING.md +0 -0
  194. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/adapters.html +0 -0
  195. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/README.md +0 -0
  196. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/c4-components-core.md +0 -0
  197. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/c4-containers.md +0 -0
  198. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/c4-context.md +0 -0
  199. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/c4-dynamic-install.md +0 -0
  200. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/bmad.md +0 -0
  201. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/distill.gif +0 -0
  202. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/doctor.gif +0 -0
  203. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/explain.gif +0 -0
  204. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/hooks.gif +0 -0
  205. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/install.gif +0 -0
  206. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/pulse.gif +0 -0
  207. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/search.gif +0 -0
  208. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/tap.gif +0 -0
  209. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/distill.tape +0 -0
  210. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/doctor.tape +0 -0
  211. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/explain.tape +0 -0
  212. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/hooks.tape +0 -0
  213. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/install.tape +0 -0
  214. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/pulse.tape +0 -0
  215. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/search.tape +0 -0
  216. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/tap.tape +0 -0
  217. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel.html +0 -0
  218. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/chat.html +0 -0
  219. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/code-review.md +0 -0
  220. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/commit-audit.md +0 -0
  221. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/demo-index.json +0 -0
  222. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/demo.html +0 -0
  223. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/demo.tape +0 -0
  224. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/dependencies.md +0 -0
  225. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/design-roadmap.html +0 -0
  226. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/eval-latest.json +0 -0
  227. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/eval.html +0 -0
  228. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/langchain.html +0 -0
  229. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/mcp-hub.html +0 -0
  230. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/openssf-badge.md +0 -0
  231. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/openssf-playbook.md +0 -0
  232. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/rag-architecture.md +0 -0
  233. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D01.md +0 -0
  234. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D02.md +0 -0
  235. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D03.md +0 -0
  236. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D04.md +0 -0
  237. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D05.md +0 -0
  238. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D06.md +0 -0
  239. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D07.md +0 -0
  240. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D08.md +0 -0
  241. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D09.md +0 -0
  242. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D10.md +0 -0
  243. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D11.md +0 -0
  244. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D12.md +0 -0
  245. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D13.md +0 -0
  246. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D14.md +0 -0
  247. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D15.md +0 -0
  248. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D16.md +0 -0
  249. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D17.md +0 -0
  250. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D18.md +0 -0
  251. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D19.md +0 -0
  252. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D20.md +0 -0
  253. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D21.md +0 -0
  254. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D22.md +0 -0
  255. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D23.md +0 -0
  256. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D24.md +0 -0
  257. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D25.md +0 -0
  258. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D26.md +0 -0
  259. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D27.md +0 -0
  260. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  261. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  262. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  263. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  264. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  265. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  266. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  267. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  268. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  269. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  270. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  271. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  272. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  273. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  274. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  275. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  276. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-attest-findings.md +0 -0
  277. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-audit-findings.md +0 -0
  278. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  279. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-browse-findings.md +0 -0
  280. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  281. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  282. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  283. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  284. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-chat-findings.md +0 -0
  285. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  286. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  287. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  288. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-completions-findings.md +0 -0
  289. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-config-findings.md +0 -0
  290. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  291. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-context-findings.md +0 -0
  292. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  293. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  294. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-create-findings.md +0 -0
  295. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  296. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-deps-findings.md +0 -0
  297. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-discover-findings.md +0 -0
  298. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  299. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  300. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-drift-findings.md +0 -0
  301. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  302. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-edit-findings.md +0 -0
  303. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  304. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-explain-findings.md +0 -0
  305. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-export-findings.md +0 -0
  306. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  307. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  308. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  309. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  310. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  311. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-health-findings.md +0 -0
  312. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  313. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  314. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-import-findings.md +0 -0
  315. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-index-findings.md +0 -0
  316. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  317. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  318. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-install-findings.md +0 -0
  319. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  320. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  321. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-lint-findings.md +0 -0
  322. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-log-findings.md +0 -0
  323. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  324. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  325. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  326. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  327. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  328. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  329. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  330. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  331. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  332. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  333. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  334. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-policy-findings.md +0 -0
  335. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-preview-findings.md +0 -0
  336. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-profile-findings.md +0 -0
  337. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  338. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  339. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  340. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  341. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  342. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  343. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  344. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  345. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  346. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-replay-findings.md +0 -0
  347. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-root-findings.md +0 -0
  348. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  349. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-run-findings.md +0 -0
  350. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  351. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-search-findings.md +0 -0
  352. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  353. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  354. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  355. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  356. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  357. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  358. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  359. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  360. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-sync-findings.md +0 -0
  361. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-tag-findings.md +0 -0
  362. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  363. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-tap-findings.md +0 -0
  364. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-taps-findings.md +0 -0
  365. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  366. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-test-findings.md +0 -0
  367. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-trust-findings.md +0 -0
  368. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  369. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  370. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-untap-findings.md +0 -0
  371. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-update-findings.md +0 -0
  372. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  373. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-verify-findings.md +0 -0
  374. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-who-findings.md +0 -0
  375. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  376. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  377. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  378. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  379. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  380. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  381. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  382. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  383. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  384. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  385. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  386. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  387. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  388. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  389. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  390. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/boost-first-rule.md +0 -0
  391. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  392. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  393. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/branch-current-gate.md +0 -0
  394. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  395. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  396. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  397. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  398. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  399. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  400. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  401. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  402. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  403. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  404. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  405. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  406. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  407. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  408. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  409. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  410. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  411. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cli-command-audit.md +0 -0
  412. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  413. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  414. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  415. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  416. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/command-carousel-page.md +0 -0
  417. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  418. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  419. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  420. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  421. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  422. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  423. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  424. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  425. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  426. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  427. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  428. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  429. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  430. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  431. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  432. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  433. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  434. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  435. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  436. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  437. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  438. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  439. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  440. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  441. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  442. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  443. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  444. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  445. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  446. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  447. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  448. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  449. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  450. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  451. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  452. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  453. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  454. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  455. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  456. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  457. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  458. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  459. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  460. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  461. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  462. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  463. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  464. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  465. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  466. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  467. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  468. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  469. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  470. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  471. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  472. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  473. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  474. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  475. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  476. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  477. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  478. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  479. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  480. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  481. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  482. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  483. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  484. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  485. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/github-community-health-files.md +0 -0
  486. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  487. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  488. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  489. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  490. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  491. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  492. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  493. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  494. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  495. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  496. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  497. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  498. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  499. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  500. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  501. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  502. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  503. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  504. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  505. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  506. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  507. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  508. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  509. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  510. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  511. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  512. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  513. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  514. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  515. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  516. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  517. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  518. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  519. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  520. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  521. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  522. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  523. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  524. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  525. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  526. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  527. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  528. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  529. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  530. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  531. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  532. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  533. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  534. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  535. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  536. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  537. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  538. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  539. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  540. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  541. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  542. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  543. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  544. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  545. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  546. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  547. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  548. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  549. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  550. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  551. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  552. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  553. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  554. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  555. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  556. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  557. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  558. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  559. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  560. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  561. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  562. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  563. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  564. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  565. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  566. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  567. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  568. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/openssf-playbook.md +0 -0
  569. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/openssf-silver.md +0 -0
  570. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  571. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  572. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  573. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  574. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  575. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  576. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  577. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  578. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  579. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  580. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  581. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  582. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  583. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  584. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  585. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  586. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  587. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  588. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  589. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  590. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  591. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  592. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  593. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  594. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  595. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  596. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  597. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  598. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  599. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  600. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  601. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  602. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  603. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  604. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  605. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  606. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  607. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  608. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  609. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  610. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  611. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/relicence-apache-2.md +0 -0
  612. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  613. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  614. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  615. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  616. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  617. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  618. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  619. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  620. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  621. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  622. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  623. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  624. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  625. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  626. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  627. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  628. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  629. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  630. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  631. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  632. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  633. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  634. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  635. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  636. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  637. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  638. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  639. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  640. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  641. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  642. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  643. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  644. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  645. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  646. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  647. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  648. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  649. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  650. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  651. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  652. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  653. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  654. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  655. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  656. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  657. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  658. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  659. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  660. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  661. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  662. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  663. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  664. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  665. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  666. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  667. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  668. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  669. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  670. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  671. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  672. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  673. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  674. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  675. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  676. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  677. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  678. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  679. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  680. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  681. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  682. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  683. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  684. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  685. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  686. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  687. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  688. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  689. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  690. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  691. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  692. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  693. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  694. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  695. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  696. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  697. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  698. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  699. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  700. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  701. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  702. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  703. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  704. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  705. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/workspace-scope-install.md +0 -0
  706. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/zip-strict-audit.md +0 -0
  707. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  708. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  709. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/security-design.md +0 -0
  710. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/semantic-search.md +0 -0
  711. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  712. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/verifying-releases.md +0 -0
  713. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/meta.md +0 -0
  714. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/openvex.json +0 -0
  715. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  716. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  717. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  718. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  719. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/eslint.config.mjs +0 -0
  720. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/README.md +0 -0
  721. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/__init__.py +0 -0
  722. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/baseline.json +0 -0
  723. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/faithfulness.py +0 -0
  724. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/golden_set.json +0 -0
  725. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/make_corpus.py +0 -0
  726. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/make_golden.py +0 -0
  727. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/metrics.py +0 -0
  728. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/publish_golden_dataset.py +0 -0
  729. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/run_evals.py +0 -0
  730. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/examples/README.md +0 -0
  731. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/examples/adapt-demo.sh +0 -0
  732. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/examples/boost-run-prototype.sh +0 -0
  733. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/index.html +0 -0
  734. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/noxfile.py +0 -0
  735. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/pyproject.toml +0 -0
  736. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/coverage-tools.in +0 -0
  737. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/coverage-tools.txt +0 -0
  738. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/lint-tools.in +0 -0
  739. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/lint-tools.txt +0 -0
  740. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/mutation-tools.in +0 -0
  741. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/mutation-tools.txt +0 -0
  742. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/platform-pins.lock +0 -0
  743. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/release-tools.in +0 -0
  744. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/release-tools.txt +0 -0
  745. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/test-tools.in +0 -0
  746. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/test-tools.txt +0 -0
  747. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/a11y_check.py +0 -0
  748. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/add_spdx_headers.py +0 -0
  749. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/bench_cli.sh +0 -0
  750. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_command_reference.py +0 -0
  751. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_demo_index.py +0 -0
  752. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_registries.py +0 -0
  753. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_roadmap.py +0 -0
  754. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_scale_corpus.py +0 -0
  755. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_vex.py +0 -0
  756. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_anchors.py +0 -0
  757. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_branch_current.py +0 -0
  758. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_dco.py +0 -0
  759. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_licenses.py +0 -0
  760. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_reproducible.py +0 -0
  761. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_required_checks.py +0 -0
  762. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_explain.py +0 -0
  763. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_gate.py +0 -0
  764. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_recommend.py +0 -0
  765. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_stats_summary.py +0 -0
  766. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/import_budget.py +0 -0
  767. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/lock_toolchain.py +0 -0
  768. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/measure_near_duplicate_bound.py +0 -0
  769. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/measure_registry.py +0 -0
  770. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/mutation_gate.py +0 -0
  771. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/mutation_shards.py +0 -0
  772. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/mutation_weights.json +0 -0
  773. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/normalize_sdist.py +0 -0
  774. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/page_budget.py +0 -0
  775. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/perf_gate.py +0 -0
  776. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/post_deploy_smoke.py +0 -0
  777. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/publish_eval_json.py +0 -0
  778. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/publish_shards.py +0 -0
  779. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/release_guard.py +0 -0
  780. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/release_preflight.py +0 -0
  781. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/serve_docs.py +0 -0
  782. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/shard_plan.py +0 -0
  783. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/setup.cfg +0 -0
  784. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/sonar-project.properties +0 -0
  785. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/style/README.md +0 -0
  786. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/style/boost.css +0 -0
  787. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/style/boost.js +0 -0
  788. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/style/demo.html +0 -0
  789. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/adapt.feature +0 -0
  790. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/browse.feature +0 -0
  791. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/count.feature +0 -0
  792. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/discover.feature +0 -0
  793. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/doctor.feature +0 -0
  794. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/environment.py +0 -0
  795. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/explain.feature +0 -0
  796. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/index.feature +0 -0
  797. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/install.feature +0 -0
  798. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/list.feature +0 -0
  799. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/mcp.feature +0 -0
  800. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/search.feature +0 -0
  801. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/steps/cli_steps.py +0 -0
  802. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/steps/discovery_steps.py +0 -0
  803. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/steps/mcp_steps.py +0 -0
  804. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/steps/quality_steps.py +0 -0
  805. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/conftest.py +0 -0
  806. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/baseline.json +0 -0
  807. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/explain.jsonl +0 -0
  808. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  809. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/golden-natural.jsonl +0 -0
  810. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/golden.jsonl +0 -0
  811. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/recommend.jsonl +0 -0
  812. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/taps-scale.txt +0 -0
  813. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/taps.txt +0 -0
  814. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/tool_calls.jsonl +0 -0
  815. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  816. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_bmad_all_hosts.py +0 -0
  817. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_bmad_personas_scope.py +0 -0
  818. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_capabilities_policy.py +0 -0
  819. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_adapt.py +0 -0
  820. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_bmad.py +0 -0
  821. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_catalog.py +0 -0
  822. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_chat.py +0 -0
  823. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_configuration.py +0 -0
  824. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_hooks_gemini.py +0 -0
  825. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_intelligence.py +0 -0
  826. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_json_reports.py +0 -0
  827. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_pane_width.py +0 -0
  828. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_pkg.py +0 -0
  829. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_tap_pins.py +0 -0
  830. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_taps.py +0 -0
  831. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_team.py +0 -0
  832. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  833. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  834. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_everyday_loop.py +0 -0
  835. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_integrity_enforce.py +0 -0
  836. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_kind_conformance.py +0 -0
  837. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_property_parsers.py +0 -0
  838. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_recommend_because_is_true.py +0 -0
  839. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_reports_match_reality.py +0 -0
  840. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_run.py +0 -0
  841. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_tap_signing.py +0 -0
  842. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_workspace_scope.py +0 -0
  843. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/README.md +0 -0
  844. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  845. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  846. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  847. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  848. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  849. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  850. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  851. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  852. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  853. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  854. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  855. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  856. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  857. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  858. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  859. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  860. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  861. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  862. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  863. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  864. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  865. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  866. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  867. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/fuzz_frontmatter.py +0 -0
  868. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/fuzz_registry.py +0 -0
  869. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/langchain/conftest.py +0 -0
  870. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/langchain/test_graph.py +0 -0
  871. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/langchain/test_loader.py +0 -0
  872. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/langchain/test_retriever.py +0 -0
  873. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/make_fixture.py +0 -0
  874. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/perf/test_benchmarks.py +0 -0
  875. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  876. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_a11y_check.py +0 -0
  877. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_action_pin_lockstep.py +0 -0
  878. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_adapters.py +0 -0
  879. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_adapters_multi.py +0 -0
  880. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_adapters_runner.py +0 -0
  881. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_agents.py +0 -0
  882. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_ai.py +0 -0
  883. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_aihost.py +0 -0
  884. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_archive.py +0 -0
  885. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_bmad_core.py +0 -0
  886. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_boost_first_offer.py +0 -0
  887. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_bootstrap.py +0 -0
  888. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_bot_pr_dco.py +0 -0
  889. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_branch_current.py +0 -0
  890. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_browse.py +0 -0
  891. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_builtin.py +0 -0
  892. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_capabilities.py +0 -0
  893. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_catalog_keyword_words.py +0 -0
  894. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_catalogbundle.py +0 -0
  895. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_chat.py +0 -0
  896. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_check_anchors.py +0 -0
  897. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_check_dco.py +0 -0
  898. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_check_licenses.py +0 -0
  899. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_check_reproducible.py +0 -0
  900. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_claude_settings.py +0 -0
  901. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_clean_internal_cache.py +0 -0
  902. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_cli_update_shards.py +0 -0
  903. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_cliparse.py +0 -0
  904. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_codeql_analysis_key.py +0 -0
  905. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_cohort.py +0 -0
  906. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_command_reference_fresh.py +0 -0
  907. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_community_health_files.py +0 -0
  908. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_compact.py +0 -0
  909. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_complete.py +0 -0
  910. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_complete_rc_block.py +0 -0
  911. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_content_dedupe.py +0 -0
  912. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_content_identity.py +0 -0
  913. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  914. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_crash_redaction.py +0 -0
  915. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dedup_trust.py +0 -0
  916. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_demo_index.py +0 -0
  917. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense.py +0 -0
  918. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  919. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_embed_dedupe.py +0 -0
  920. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_entry_reuse.py +0 -0
  921. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_entry_vectors.py +0 -0
  922. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_fallback.py +0 -0
  923. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_progress.py +0 -0
  924. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_quantized.py +0 -0
  925. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_ready_order.py +0 -0
  926. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_shard_real_schema.py +0 -0
  927. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  928. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_shards.py +0 -0
  929. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_status_cheap.py +0 -0
  930. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_vector_dedupe.py +0 -0
  931. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dependabot_config.py +0 -0
  932. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_deps.py +0 -0
  933. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_discovery.py +0 -0
  934. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_distill_merge.py +0 -0
  935. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_docs_pages_linked.py +0 -0
  936. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_docsite_chrome.py +0 -0
  937. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_doctor_output_polish.py +0 -0
  938. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_drift_hint.py +0 -0
  939. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_ed25519.py +0 -0
  940. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_embed.py +0 -0
  941. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_embed_local.py +0 -0
  942. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_embed_truncated_response.py +0 -0
  943. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_entry_key.py +0 -0
  944. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_errors_and_cli_table.py +0 -0
  945. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_baseline.py +0 -0
  946. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_faithfulness.py +0 -0
  947. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_gate.py +0 -0
  948. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_grading.py +0 -0
  949. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_metrics.py +0 -0
  950. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_stats_summary.py +0 -0
  951. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_tools_probe.py +0 -0
  952. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  953. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_faithfulness.py +0 -0
  954. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_frontmatter.py +0 -0
  955. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_fuzz_targets.py +0 -0
  956. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  957. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gitleaks_config.py +0 -0
  958. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gitutil.py +0 -0
  959. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gitutil_lfs.py +0 -0
  960. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gitutil_sparse.py +0 -0
  961. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gstack_coexistence.py +0 -0
  962. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_hook_settings_hosts.py +0 -0
  963. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_hookhost.py +0 -0
  964. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_imperative.py +0 -0
  965. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_import_budget.py +0 -0
  966. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_injectscan.py +0 -0
  967. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_install_permission_error.py +0 -0
  968. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_installscan.py +0 -0
  969. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_integrity.py +0 -0
  970. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_journal.py +0 -0
  971. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_jsonstate.py +0 -0
  972. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_langchain_packaging.py +0 -0
  973. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_launcher_python_floor.py +0 -0
  974. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_link_ownership.py +0 -0
  975. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_localembed.py +0 -0
  976. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_localembed_e2e.py +0 -0
  977. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_lockfile.py +0 -0
  978. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_logs.py +0 -0
  979. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcp_install_scan.py +0 -0
  980. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcp_read.py +0 -0
  981. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcpdecl.py +0 -0
  982. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcphost.py +0 -0
  983. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_measure_registry.py +0 -0
  984. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_minisign.py +0 -0
  985. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mutation_hardening.py +0 -0
  986. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mutation_shards.py +0 -0
  987. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mutation_subfile_shards.py +0 -0
  988. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mutmut_source_paths.py +0 -0
  989. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_near_duplicate_collapse.py +0 -0
  990. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_nethttp.py +0 -0
  991. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_normalize_sdist.py +0 -0
  992. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_page_budget.py +0 -0
  993. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_paths.py +0 -0
  994. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_perf_gate.py +0 -0
  995. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_pkg_confusions.py +0 -0
  996. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_pkg_injection.py +0 -0
  997. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_pkg_secrets.py +0 -0
  998. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_platform_pins.py +0 -0
  999. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_policy.py +0 -0
  1000. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_post_deploy_smoke.py +0 -0
  1001. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_project_mcp_sidecar.py +0 -0
  1002. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_projectlock.py +0 -0
  1003. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_provenance.py +0 -0
  1004. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_publish_golden_dataset.py +0 -0
  1005. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rag_completeness.py +0 -0
  1006. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rag_fastpath.py +0 -0
  1007. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rag_fusion.py +0 -0
  1008. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registries_fresh.py +0 -0
  1009. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registry.py +0 -0
  1010. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registry_categories.py +0 -0
  1011. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registry_control_chars.py +0 -0
  1012. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registry_parallel.py +0 -0
  1013. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_release_guard.py +0 -0
  1014. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_release_preflight.py +0 -0
  1015. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_report.py +0 -0
  1016. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_required_checks.py +0 -0
  1017. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rerank_cache.py +0 -0
  1018. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_resolve.py +0 -0
  1019. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1020. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rules.py +0 -0
  1021. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_scale_corpus.py +0 -0
  1022. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_schedule_plist.py +0 -0
  1023. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_scopes.py +0 -0
  1024. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_secretscan.py +0 -0
  1025. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_selfupdate.py +0 -0
  1026. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_serve.py +0 -0
  1027. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_serve_docs.py +0 -0
  1028. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shard_plan.py +0 -0
  1029. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shards.py +0 -0
  1030. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shards_incremental.py +0 -0
  1031. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shards_ingest.py +0 -0
  1032. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shards_matrix.py +0 -0
  1033. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1034. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_spin.py +0 -0
  1035. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_stackprobe.py +0 -0
  1036. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_staleness.py +0 -0
  1037. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_sync_blocked_links.py +0 -0
  1038. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_sync_lost_lock.py +0 -0
  1039. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1040. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_token_parity.py +0 -0
  1041. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_toolchain_lock.py +0 -0
  1042. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_trustaudit.py +0 -0
  1043. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_typedvalue.py +0 -0
  1044. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_typosquat.py +0 -0
  1045. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_updatediff.py +0 -0
  1046. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_util.py +0 -0
  1047. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_version.py +0 -0
  1048. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_version_tags.py +0 -0
  1049. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_vex.py +0 -0
  1050. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_visual_harness_capture.py +0 -0
  1051. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_visual_harness_flags.py +0 -0
  1052. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflow_concurrency.py +0 -0
  1053. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1054. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1055. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflow_timeouts.py +0 -0
  1056. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflows.py +0 -0
  1057. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1058. {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/console_check.mjs +0 -0
@@ -28,7 +28,7 @@
28
28
  "matchingUrlPattern": "roadmap\\.html$",
29
29
  "aggregationMethod": "median-run",
30
30
  "assertions": {
31
- "categories:performance": ["error", { "minScore": 0.8 }],
31
+ "categories:performance": ["error", { "minScore": 0.75 }],
32
32
  "categories:accessibility": ["error", { "minScore": 0.95 }],
33
33
  "categories:best-practices": ["error", { "minScore": 0.9 }],
34
34
  "categories:seo": ["error", { "minScore": 0.95 }]
@@ -116,7 +116,20 @@ opt-in evals stay out of `check` and all degrade cleanly:
116
116
  avoid. Rates carry a Wilson interval over N runs and floors are judged
117
117
  against the bound, not the point estimate: at 3/3 the normal approximation
118
118
  claims [1.00, 1.00] and would let a wording regression hide behind one lucky
119
- run. Drives a real host, so it is opt-in, out of `check`, and degrades
119
+ run. A bound judged that way needs **enough N to be reachable**, and the
120
+ ceiling half is where that bites: at k=0 the Wilson upper bound is
121
+ z²/(n+z²), a function of N alone, so at the old `--runs 1` default a
122
+ flawless host was told it FAILED (0.3244 against a 0.20 ceiling, which no
123
+ sample below n=16 can clear). `--runs` defaults to 3, `min_n_for_ceiling` computes the
124
+ minimum for any ceiling, and a sample below it reports INCONCLUSIVE with its
125
+ own exit code (2) rather than a red that says nothing about the host —
126
+ unless its Wilson *lower* bound is already over the ceiling. Too small to
127
+ pass is not too small to fail: a conclusive red below the minimum is still a
128
+ red (exit 1), and a no-call half with no observations at all is
129
+ INCONCLUSIVE, never a pass. The
130
+ ceiling is 0.25 so one slip in 24 passes and two do not — a zero-tolerance
131
+ half beside a floor that absorbs four misses is not the same measurement
132
+ twice. Drives a real host, so it is opt-in, out of `check`, and degrades
120
133
  cleanly when `claude` is not on `PATH`.
121
134
 
122
135
  The `[eval]` extra (`pip install -e '.[eval]'`) carries `ranx` + `ragas`; nothing
@@ -295,8 +308,11 @@ line coverage. Target `boost_cli/core` behavior with assertions, not just import
295
308
  `noxfile.py` opens with `# Copyright the boost contributors.` and
296
309
  `# SPDX-License-Identifier: Apache-2.0`. Run
297
310
  `python3 scripts/add_spdx_headers.py` (idempotent) — the file list and the
298
- expression live there, so changing the licence expression is one edit rather
299
- than hundreds. Separately, `prose-lint.yml` names the Markdown files vale checks
311
+ expression live there (`SPDX_ID`), so changing the licence is one edit
312
+ rather than hundreds, and `tests/unit/test_spdx_headers.py` pins this
313
+ paragraph to that constant: #587 moved the tree off `GPL-3.0-only` and left
314
+ this sentence naming the old expression for every agent that read it since.
315
+ Separately, `prose-lint.yml` names the Markdown files vale checks
300
316
  **explicitly**: a new doc that is not added to that list is never linted, and
301
317
  `make lint` will not tell you.
302
318
 
@@ -608,9 +624,15 @@ upgrade rather than the entry fee. When both engines are built, `retrieve_any`
608
624
  fuses them with reciprocal rank fusion (`rag.rrf_fuse`, `RRF_K = 60`) and
609
625
  reports `hybrid RRF`; it degrades to whichever single engine is ready, and to
610
626
  BM25 alone otherwise. `dense.status()` names which of the three links (extra,
611
- backend, built store) is missing, and `dense.fix_hint()` maps that to the one
612
- next action — both `boost doctor` and `boost search` read that same table, so
613
- they can't give contradictory advice.
627
+ backend, built store) is missing — or `disabled`, a fourth state that is no
628
+ missing link at all but the `BOOST_NO_EMBED` kill switch, which sits **first**
629
+ in the ladder (`embed.provider()` reads it before any key, so every other
630
+ remedy is a measured no-op under it) and is excluded from `degraded`, so a
631
+ deliberate opt-out never moves doctor's exit code. `dense.fix_hint()` maps
632
+ whichever state it is to the one next action — `boost doctor`, `boost search`,
633
+ the MCP `SEARCH ENGINE` line and both shard surfaces (`reindex --fetch-shards`,
634
+ `update --shards`) all read that same table, so they can't give contradictory
635
+ advice.
614
636
 
615
637
  **The dense store ranks twice, and `vec0` is why.** `sqlite-vec` has no ANN
616
638
  index: a float32 `MATCH` scores *every* vector in the store, which on a real
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.131
3
+ Version: 1.2.132
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -62,9 +62,9 @@ Antigravity CLI (`agy`) is wired up the same way: skills link into
62
62
 
63
63
  ```bash
64
64
  pipx install boost-skill-cli
65
- boost quickstart # taps the 7 starter registries, loads prebuilt vectors
66
- boost search tdd # keyword + semantic, fused
67
- boost install tdd-workflow # → every agent, version-pinned, one lock file
65
+ boost quickstart # taps the 7 starter registries, builds the index
66
+ boost search tdd # ranked by full-content BM25
67
+ boost install test-driven-development # → every agent, version-pinned, one lock file
68
68
  ```
69
69
 
70
70
  (No `pipx` yet? macOS ships neither it nor a new enough Python — run the
@@ -20,9 +20,9 @@ Antigravity CLI (`agy`) is wired up the same way: skills link into
20
20
 
21
21
  ```bash
22
22
  pipx install boost-skill-cli
23
- boost quickstart # taps the 7 starter registries, loads prebuilt vectors
24
- boost search tdd # keyword + semantic, fused
25
- boost install tdd-workflow # → every agent, version-pinned, one lock file
23
+ boost quickstart # taps the 7 starter registries, builds the index
24
+ boost search tdd # ranked by full-content BM25
25
+ boost install test-driven-development # → every agent, version-pinned, one lock file
26
26
  ```
27
27
 
28
28
  (No `pipx` yet? macOS ships neither it nor a new enough Python — run the
@@ -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.131'
22
- __version_tuple__ = version_tuple = (1, 2, 131)
21
+ __version__ = version = '1.2.132'
22
+ __version_tuple__ = version_tuple = (1, 2, 132)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -118,7 +118,7 @@ COMMANDS = [
118
118
  ("health", "chk", "quality", "Dashboard of skill-environment health"),
119
119
  ("trust", "chk", "quality", "Manage signing keys & verify tap provenance"),
120
120
  # Configuration (13)
121
- ("quickstart", "cfg", "quickstart", "Tap the starter registries and load prebuilt vectors"),
121
+ ("quickstart", "cfg", "quickstart", "Tap the starter registries and index them for search"),
122
122
  ("config", "cfg", "configuration", "Display or modify boost configuration"),
123
123
  ("clean", "cfg", "configuration", "Clear stale caches & broken symlinks"),
124
124
  ("compact", "cfg", "configuration", "Shrink tap clones to the files boost indexes"),
@@ -199,6 +199,7 @@ def print_help() -> None:
199
199
  print(out.c(
200
200
  "Options: -V/--version -v/--verbose --debug -q/--quiet",
201
201
  out.DIM))
202
+ _print_first_run_line(cols)
202
203
 
203
204
  width = max(len(n) for n, _, _, _ in COMMANDS)
204
205
  for idx, (gkey, (_icon, title, desc)) in enumerate(GROUPS.items()):
@@ -223,6 +224,35 @@ def print_help() -> None:
223
224
  print(out.c("%d commands · %d groups" % (len(COMMANDS), len(GROUPS)), out.DIM))
224
225
 
225
226
 
227
+ def _print_first_run_line(cols: int) -> None:
228
+ """Name where setup lives, but only on a machine that has none.
229
+
230
+ This screen read no state at all, so it was byte-for-byte identical on a
231
+ virgin machine and a working one, and a newcomer met 81 commands with
232
+ `quickstart` sitting at line 80, in the same dim body type as the other 80.
233
+ The pointer is one line, it appears only while `config.first_run()` holds,
234
+ and it disappears the moment there is a tap: a permanent banner would be
235
+ noise for every user past their first minute, which is the reason there
236
+ wasn't one.
237
+
238
+ Asked of `config`, which help has already loaded for its log level, so the
239
+ question costs `boost --help` no module it was not importing anyway. Any
240
+ failure is swallowed — a broken config must cost the user a hint, never
241
+ their help screen.
242
+ """
243
+ with contextlib.suppress(Exception):
244
+ from .core import config
245
+ if not config.first_run():
246
+ return
247
+ print()
248
+ # Wrap, then colour: `out.role` brackets its argument with a start code
249
+ # and a reset, so colouring first and splitting after leaves line one
250
+ # unterminated. The backtick span stays one atomic token, because a
251
+ # `boost quickstart` folded across two lines is not copy-pasteable.
252
+ for line in out.wrap(config.FIRST_RUN_HINT, max(cols, 20)):
253
+ print(out.role(line, "muted"))
254
+
255
+
226
256
  def print_command_help(name: str) -> int:
227
257
  # `main`'s own aliases (-h/--help, -V/--version/version, help itself)
228
258
  # never appear in COMMANDS, so `boost help --help` used to fall straight
@@ -1538,6 +1538,10 @@ def _tool_install(args: dict):
1538
1538
  lines.append("quality score: %d/100" % res.score)
1539
1539
  if res.conflicts:
1540
1540
  lines.append("conflicts (left in place): %s" % ", ".join(res.conflicts))
1541
+ if res.unwritable:
1542
+ lines.append("not linked, directory not writable: %s — ask the user to "
1543
+ "`chmod u+w` it, then `boost sync`"
1544
+ % ", ".join(res.unwritable))
1541
1545
  # The same prompt-injection and secret scan `boost install` runs. This path
1542
1546
  # needs it more, not less: nobody is watching a terminal here, and the skill
1543
1547
  # was chosen and installed by an agent acting on its own. The install still
@@ -1591,7 +1595,16 @@ def _tool_doctor(args: dict):
1591
1595
  # Additive, deliberately: an untapped machine can ALSO have a broken
1592
1596
  # materialization, and folding the two into one branch would hide the
1593
1597
  # issue count behind the setup note.
1594
- if not taps:
1598
+ # With config.json unreadable the tap list reads as DEFAULTS' empty one,
1599
+ # and the note below would send the agent to re-tap the defaults over the
1600
+ # user's real list — the fix CLI `boost doctor` now names instead.
1601
+ cfg_err = config.check()
1602
+ if cfg_err:
1603
+ total += 1
1604
+ lines.append("%s — boost is running on defaults, so the user's taps are "
1605
+ "not listed; ask the user to repair the file or re-add "
1606
+ "their taps (run `boost doctor` for details)" % cfg_err)
1607
+ elif not taps:
1595
1608
  # Same command, same order, as mcp.no_results: an agent that calls
1596
1609
  # both tools in one session must not see the recommendation flipped
1597
1610
  # and read it as two different fixes. `boost tap --defaults` leads
@@ -1603,7 +1616,7 @@ def _tool_doctor(args: dict):
1603
1616
  if total == 0:
1604
1617
  if taps:
1605
1618
  lines.append("healthy — no issues found")
1606
- elif mat_issues:
1619
+ elif mat_issues or cfg_err:
1607
1620
  lines.append("%d issue(s) — run `boost doctor` for details" % total)
1608
1621
  else:
1609
1622
  lines.append("%d issue(s) — run `boost sync` to fix" % issues)
@@ -1684,7 +1697,14 @@ REGISTRY.register(
1684
1697
  "Coming back empty is a real answer too, not a "
1685
1698
  "wasted turn: it means build it yourself, now knowing nothing already "
1686
1699
  "covers it — and on a machine with nothing tapped yet it says so and names "
1687
- "the one command that fixes it, rather than reporting a miss.",
1700
+ "the one command that fixes it, rather than reporting a miss. "
1701
+ # The bound, verbatim from `mcp.INSTRUCTIONS`: six of its seven
1702
+ # load-bearing elements were already duplicated into this description and
1703
+ # the seventh — the one that says when not to call — was in none of the
1704
+ # seven. On a Gemini-family host the description is the only boost text
1705
+ # reliably in context, so what shipped there was every persuasive element
1706
+ # and none of the restraint.
1707
+ + mcp.SKIP_IT,
1688
1708
  {"type": "object",
1689
1709
  "properties": {"query": {"type": "string",
1690
1710
  "description": "what you are trying to do, in "
@@ -233,18 +233,25 @@ def cmd_search(argv):
233
233
  installed: set[str] = set()
234
234
  with contextlib.suppress(Exception):
235
235
  installed = set(store.installed())
236
- top = max((s for _e, s in shown), default=0) or 1
236
+ # The meter reads across the whole shown page, so its fractions are one
237
+ # screen-wide decision rather than a per-row division — see
238
+ # out.relevance_fractions for why the top score alone cannot say it.
239
+ fracs = out.relevance_fractions([s for _e, s in shown])
237
240
  # One column plan for the whole screen (name, kind, tap, description with
238
241
  # a stated drop order), one assembler per row — both pure and unit-tested
239
242
  # in core.output, so this loop only feeds and prints.
240
- lay = out.search_layout(out.term_width(),
243
+ # Against the *pane*: a pipe has none, and planning for `term_width()`'s
244
+ # assumed 80 dropped the TAP column (it needs 84), so `boost search x |
245
+ # grep owner/repo` found nothing the same search shows on a wide pane.
246
+ # No pane (None) plans nothing to fit — see `search_layout`.
247
+ lay = out.search_layout(out.pane_width(),
241
248
  [e["name"] for e, _ in shown],
242
249
  [str(e.get("kind") or "skill") for e, _ in shown],
243
250
  [str(e.get("tap") or "") for e, _ in shown])
244
- for e, sc in shown:
251
+ for (e, _sc), frac in zip(shown, fracs, strict=True):
245
252
  out.info(out.format_search_row(
246
253
  e["name"], e.get("description") or "",
247
- str(e.get("kind") or "skill"), str(e.get("tap") or ""), sc / top,
254
+ str(e.get("kind") or "skill"), str(e.get("tap") or ""), frac,
248
255
  curated=bool(e.get("curated")),
249
256
  installed=e["name"] in installed, lay=lay))
250
257
  if hit_cap:
@@ -1983,6 +1990,9 @@ def cmd_browse(argv):
1983
1990
  + ", ".join(agents.display_name(a) for a in res.linked))
1984
1991
  for conflict in res.conflicts:
1985
1992
  out.warn("conflict: %s exists and is not a symlink" % _tilde(conflict))
1993
+ for adir in res.unwritable:
1994
+ out.warn("not linked: %s is not writable — `chmod u+w %s`, then "
1995
+ "`boost sync`" % (_tilde(adir), _tilde(adir)))
1986
1996
  return 0
1987
1997
 
1988
1998
 
@@ -769,6 +769,13 @@ def cmd_preview(argv):
769
769
  _FAITHFULNESS_MIN_KEY = "ai.explain_faithfulness_min"
770
770
  _FAITHFULNESS_DEFAULT = 0.5
771
771
 
772
+ # The heuristic explain's outline is a summary, not a reprint of the file.
773
+ # Uncapped it printed 521 lines for one catalog entry, while "Key rules:" in
774
+ # the same function stopped at 12. 25 is the line the audit measured against:
775
+ # the median entry (16 headings) prints unchanged, and the ~28% over it get a
776
+ # counted "… and N more headings" instead of a wall.
777
+ _OUTLINE_CAP = 25
778
+
772
779
 
773
780
  def _faithfulness_threshold() -> float:
774
781
  """The minimum faithfulness score an AI explanation must clear (config-tunable).
@@ -841,8 +848,12 @@ def cmd_explain(argv):
841
848
  if headings:
842
849
  print()
843
850
  out.info(out.c("Outline:", out.BOLD))
844
- for hashes, title in headings:
851
+ for hashes, title in headings[:_OUTLINE_CAP]:
845
852
  out.info(" " * len(hashes) + title)
853
+ if len(headings) > _OUTLINE_CAP:
854
+ more = len(headings) - _OUTLINE_CAP
855
+ out.info(out.role(" … and %d more heading%s"
856
+ % (more, "" if more == 1 else "s"), "muted"))
846
857
  rules, seen = [], set()
847
858
  for line in body.splitlines():
848
859
  stripped = re.sub(r"^\s*(?:[-*]|\d+\.)\s+", "", line).strip()
@@ -260,12 +260,23 @@ def _report_result(res: store.InstallResult, no_mcp: bool = False) -> None:
260
260
  % " · ".join(agents.display_name(a) for a in res.native))
261
261
  for path in res.conflicts:
262
262
  out.warn("not linked: %s exists and is not managed by boost" % _tilde(path))
263
+ _warn_unwritable(res)
263
264
  out.ok("lock updated (.skill-lock.json)")
264
265
  _warn_injection(res)
265
266
  _warn_secrets(res)
266
267
  _offer_mcp(res, no_mcp=no_mcp)
267
268
 
268
269
 
270
+ def _warn_unwritable(res) -> None:
271
+ """Name the remedy for each agent skills dir an install could not link
272
+ into — every path that installs, reinstall and update included, so none
273
+ reports success over a link it silently skipped."""
274
+ for adir in res.unwritable:
275
+ out.warn("not linked: %s is not writable — `chmod u+w %s`, then "
276
+ "`boost sync` adds the link" % (_tilde(adir), _tilde(adir)),
277
+ wrap=True)
278
+
279
+
269
280
  def _boostfile_text(skills: dict[str, dict], via: str = "boost bundle dump") -> str:
270
281
  """Render lock entries as a Boostfile (taps first, then sorted skills)."""
271
282
  lines = ["# Boostfile — generated by %s" % via]
@@ -1159,7 +1170,7 @@ def cmd_update(argv: list[str]) -> int:
1159
1170
  "--yes` to apply" % name)
1160
1171
  continue
1161
1172
  try:
1162
- store.install(entry, force=True)
1173
+ _warn_unwritable(store.install(entry, force=True))
1163
1174
  except BoostError as err:
1164
1175
  out.warn("%s: %s" % (name, err.message))
1165
1176
  continue
@@ -1245,8 +1256,9 @@ def cmd_reinstall(argv: list[str]) -> int:
1245
1256
  if warning:
1246
1257
  out.warn(warning)
1247
1258
  try:
1248
- store.install(entry, force=True,
1249
- scope=lk.get("scope", "user"), base=lk.get("base"))
1259
+ _warn_unwritable(store.install(
1260
+ entry, force=True,
1261
+ scope=lk.get("scope", "user"), base=lk.get("base")))
1250
1262
  except BoostError as err:
1251
1263
  out.warn("%s: %s" % (name, err.message))
1252
1264
  failed += 1
@@ -1288,7 +1300,7 @@ def cmd_reinstall(argv: list[str]) -> int:
1288
1300
  if warning:
1289
1301
  out.warn(warning)
1290
1302
  try:
1291
- store.install(entry, force=True)
1303
+ _warn_unwritable(store.install(entry, force=True))
1292
1304
  except BoostError as err:
1293
1305
  out.warn("%s: %s" % (name, err.message))
1294
1306
  failed += 1
@@ -27,6 +27,7 @@ from ..core import (
27
27
  catalog,
28
28
  claude_settings,
29
29
  complete,
30
+ config,
30
31
  frontmatter,
31
32
  gitutil,
32
33
  imperative,
@@ -412,6 +413,20 @@ def cmd_doctor(argv):
412
413
  bad("git", "git not found on PATH — install git")
413
414
  paths.ensure_dirs() # create silently; never a failure
414
415
 
416
+ # A corrupt config.json reads as DEFAULTS, so the tap list below comes
417
+ # back empty and the verdict used to be "ready to set up", exit 0, on a
418
+ # machine whose clones were all still on disk. Say what was lost instead.
419
+ cfg_err = config.check()
420
+ if cfg_err:
421
+ clones = config.unlisted_clones()
422
+ bad("config", "%s — boost is running on defaults, so %s. Repair the "
423
+ "file, or re-add your taps; the next write moves the bad file "
424
+ "to config.json.corrupt" % (cfg_err, (
425
+ "the %d tap clone%s on disk %s not listed" % (
426
+ len(clones), _s(len(clones)),
427
+ "is" if len(clones) == 1 else "are"))
428
+ if clones else "no taps or settings are read"), wrap=True)
429
+
415
430
  taps = registry.list_taps()
416
431
  tap_ok = 0
417
432
  for tap in taps:
@@ -422,9 +437,21 @@ def cmd_doctor(argv):
422
437
  % (tap.name, tap.name))
423
438
  else:
424
439
  tap_ok += 1
440
+ # A cache dir boost cannot write leaves every command rescanning its taps
441
+ # and warning that it could not keep the result (catalog.rebuild_tap), so
442
+ # "cloned & cached" below would be the one line on the screen claiming
443
+ # otherwise.
444
+ cache_writable = (not paths.cache_dir().is_dir()
445
+ or os.access(paths.cache_dir(), os.W_OK))
446
+ if taps and not cache_writable:
447
+ bad("cache", "%s is not writable — every command rescans its taps and "
448
+ "cannot keep the result; make it writable"
449
+ % _tilde(paths.cache_dir()), wrap=True)
425
450
  if taps and tap_ok == len(taps):
426
- rep.ok("taps", "%d tap%s cloned & cached" % (len(taps), _s(len(taps))))
427
- elif not taps:
451
+ rep.ok("taps", "%d tap%s cloned%s" % (len(taps), _s(len(taps)),
452
+ " & cached" if cache_writable
453
+ else ""))
454
+ elif not taps and not cfg_err:
428
455
  # `boost tap --defaults` leads, and it is the same command in the same
429
456
  # order that `boost search`'s error, `mcp.no_results` and the MCP
430
457
  # `boost_doctor` tool all name. A user who hits two of these surfaces
@@ -660,9 +687,16 @@ def cmd_doctor(argv):
660
687
  % (dup.name, agents.display_name(dup.agent), _tilde(dup.path),
661
688
  _tilde(dup.target)), wrap=True)
662
689
 
663
- for adir in enabled.values():
690
+ # Linking agents only: a native-store agent's skills dir (Gemini's) is
691
+ # never written, so its permissions are not boost's problem and `boost
692
+ # sync` could not act on them.
693
+ for adir in agents.linking_agents().values():
664
694
  if adir.is_dir() and not os.access(str(adir), os.W_OK):
665
- bad("agent-dir", "agent dir %s is not writable" % _tilde(adir))
695
+ # A next action, like the log line below it: without one this was
696
+ # the only issue doctor names that nothing can act on.
697
+ bad("agent-dir", "agent dir %s is not writable — `chmod u+w %s`, "
698
+ "then `boost sync` relinks what it missed"
699
+ % (_tilde(adir), _tilde(adir)), wrap=True)
666
700
 
667
701
  rotation = journal.rotation_healthy()
668
702
  if not rotation:
@@ -798,6 +832,27 @@ def _report_search_engine(rep) -> None:
798
832
  hint=fix, wrap=True)
799
833
  return
800
834
 
835
+ if st["reason"] == "disabled":
836
+ # A deliberate opt-out, not a fault, so it stays a note and doctor
837
+ # stays green: BOOST_NO_EMBED is documented as the hard kill switch,
838
+ # and the CI job that sets it is the one caller that most needs a
839
+ # zero exit code. Say the vectors are still there, because the user
840
+ # who turned it off is the user deciding whether to turn it back on.
841
+ held = ""
842
+ if st["store_exists"] and st["chunks"]:
843
+ # "still on disk", not "intact": the switch shadows every rung
844
+ # below it, so a store that is *also* stale (version/model/dim
845
+ # changed) reaches this line too, and unsetting the switch would
846
+ # turn it red rather than green. Say what is measured — the
847
+ # vectors were not discarded — and let the next status say more.
848
+ held = (" — the %d-chunk vector store is still on disk"
849
+ % st["chunks"])
850
+ rep.note("search-engine",
851
+ "semantic search off by BOOST_NO_EMBED — using the "
852
+ "full-content BM25 engine%s (%s)" % (held, fix),
853
+ hint=fix, wrap=True)
854
+ return
855
+
801
856
  rep.note("search-engine",
802
857
  "semantic search not configured — using the full-content BM25 "
803
858
  "engine (%s)" % fix, hint=fix, wrap=True)
@@ -1139,18 +1194,26 @@ def cmd_heal(argv):
1139
1194
  out.warn("%s is no longer a symlink into the store — left alone"
1140
1195
  % _tilde(dup.path))
1141
1196
 
1197
+ # A dir that exists and refuses writes. A MISSING one is not stuck: the
1198
+ # real run creates it above, so a preview that called it unwritable would
1199
+ # exit 1 where the run it previews exits 0.
1200
+ cache_dir = paths.cache_dir()
1201
+ cache_stuck = cache_dir.is_dir() and not os.access(cache_dir, os.W_OK)
1142
1202
  for tap in registry.list_taps():
1143
1203
  if not tap.is_cloned:
1144
1204
  out.warn("tap %s not cloned — skipped (run `boost update`)" % tap.name)
1145
1205
  continue
1146
1206
  had_cache = tap.cache_file.exists()
1147
1207
  if dry:
1148
- if not had_cache:
1208
+ if not had_cache and not cache_stuck:
1149
1209
  out.info("would rebuild catalog cache for %s" % tap.name)
1150
1210
  actions.append("cache %s" % tap.name)
1151
1211
  else:
1152
1212
  catalog.rebuild_tap(tap)
1153
- if not had_cache:
1213
+ # rebuild_tap survives a cache it cannot write and warns; claiming
1214
+ # the rebuild under that warning would certify a file that is
1215
+ # still missing, and every later run would claim it again.
1216
+ if not had_cache and tap.cache_file.exists():
1154
1217
  out.ok("rebuilt catalog cache for %s" % tap.name)
1155
1218
  actions.append("cache %s" % tap.name)
1156
1219
 
@@ -1164,15 +1227,38 @@ def cmd_heal(argv):
1164
1227
  out.ok("journal rotation scheduled (next write rotates)")
1165
1228
  actions.append("rotate")
1166
1229
 
1167
- if not actions:
1230
+ # Not repairable from here — the tap list is the user's, not derivable —
1231
+ # and never covered by an all-clear: with it unreadable, every check
1232
+ # above ran against DEFAULTS.
1233
+ cfg_err = config.check()
1234
+ if cfg_err:
1235
+ out.warn("%s — heal cannot repair it: boost is running on defaults "
1236
+ "until the file is fixed or your taps are re-added"
1237
+ % cfg_err, wrap=True)
1238
+ # Permissions are the user's to change, not heal's; but a dir heal saw and
1239
+ # cannot fix must not sit under an all-clear.
1240
+ stuck = [adir for adir in agents.linking_agents().values()
1241
+ if adir.is_dir() and not os.access(str(adir), os.W_OK)]
1242
+ for adir in stuck:
1243
+ out.warn("agent dir %s is not writable — heal does not change "
1244
+ "permissions; run `chmod u+w %s`, then `boost sync`"
1245
+ % (_tilde(adir), _tilde(adir)), wrap=True)
1246
+ # The same rule for the cache dir doctor flags: heal cannot make it
1247
+ # writable, so it must not answer "nothing to heal" beneath the problem.
1248
+ if registry.list_taps() and cache_stuck:
1249
+ stuck.append(cache_dir)
1250
+ out.warn("%s is not writable — heal does not change permissions; "
1251
+ "run `chmod u+w %s`" % (_tilde(cache_dir), _tilde(cache_dir)),
1252
+ wrap=True)
1253
+ if not actions and not stuck and not cfg_err:
1168
1254
  # A duplicate this run declined to prune is something `heal` saw, can
1169
1255
  # fix, and deliberately left. A bare "nothing to heal" printed under
1170
1256
  # the line offering the flag contradicts it.
1171
1257
  out.ok("nothing to heal automatically"
1172
1258
  if declined_duplicates else "nothing to heal")
1173
- elif not dry:
1259
+ if actions and not dry:
1174
1260
  journal.log("heal", "%d actions" % len(actions))
1175
- return 0
1261
+ return 1 if cfg_err or stuck else 0
1176
1262
 
1177
1263
 
1178
1264
  def cmd_conflict(argv):
@@ -135,6 +135,18 @@ def _report(results: list[dict]) -> None:
135
135
  "`boost reindex --dense`")
136
136
 
137
137
 
138
+ def _muted(msg: str) -> None:
139
+ """An indented muted line, wrapped to the pane.
140
+
141
+ Wrap first, colour each line after: `out.role` brackets its argument with
142
+ a start code and a reset, so colouring first and folding after leaves
143
+ line 1 unterminated and the rest unstyled (CLAUDE.md's wrap rule). `- 2`
144
+ pays for the indent `out.info` adds.
145
+ """
146
+ for line in out.wrap(msg, max(out.term_width() - 2, 20)):
147
+ out.info(out.role(line, "muted"))
148
+
149
+
138
150
  def cmd_quickstart(argv) -> int:
139
151
  """boost quickstart [--catalog] [--no-vectors] [--dry-run]"""
140
152
  p = cliparse.parser(
@@ -161,7 +173,15 @@ def cmd_quickstart(argv) -> int:
161
173
  manifest = shards.fetch_manifest()
162
174
  pins = shards.rows(manifest)
163
175
  except BoostError as exc:
164
- out.warn("no published shards: %s" % exc.message)
176
+ # "no published shards" named the wrong cause — the project's
177
+ # shards are fine; this machine could not read the manifest (a
178
+ # proxy, a dropped connection, a BOOST_SHARD_MANIFEST typo, an
179
+ # air-gapped mirror). And the hint was the actionable half: every
180
+ # transport-shaped failure raised here carries one.
181
+ out.warn("could not read the shard manifest: %s" % exc.message,
182
+ wrap=True)
183
+ if exc.hint:
184
+ _muted(exc.hint)
165
185
  manifest = None
166
186
 
167
187
  selection = _selection(args.catalog)
@@ -184,12 +204,11 @@ def cmd_quickstart(argv) -> int:
184
204
  "\"boost-skill-cli[rag]\"` — keyword search works "
185
205
  "without it", wrap=True)
186
206
  elif manifest is None:
187
- out.info(out.role("(0 because the shard manifest could not be "
188
- "read — keyword search is unaffected)",
189
- "muted"), wrap=True)
207
+ _muted("(0 because the shard manifest could not be read — "
208
+ "keyword search is unaffected)")
190
209
  else:
191
- out.info(out.role("(0 because none of these registries have a "
192
- "published shard yet)", "muted"), wrap=True)
210
+ _muted("(0 because none of these registries have a "
211
+ "published shard yet)")
193
212
  return 0
194
213
 
195
214
  with spin.Spinner("building the keyword index"):
@@ -215,6 +234,13 @@ def cmd_quickstart(argv) -> int:
215
234
  out.info("semantic search needs the extra: "
216
235
  "`pipx inject boost-skill-cli \"boost-skill-cli[rag]\"`, "
217
236
  "then `boost quickstart` again")
237
+ elif want_vectors:
238
+ # The whole vector step was skipped, and the only word about it was a
239
+ # warning many screens back. Without this the run ends "✓ ready" as
240
+ # though vectors had been imported.
241
+ _muted("no vectors imported — the shard manifest could not be read; "
242
+ "`boost update --shards` retries it, and `boost reindex "
243
+ "--dense` builds them locally")
218
244
 
219
245
  complete.refresh_names()
220
246
  out.ok("ready — try `boost search brainstorming`")