boost-skill-cli 1.2.129__tar.gz → 1.2.131__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 (1048) hide show
  1. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/CLAUDE.md +4 -4
  2. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/CONTRIBUTING.md +1 -1
  3. {boost_skill_cli-1.2.129/boost_skill_cli.egg-info → boost_skill_cli-1.2.131}/PKG-INFO +4 -3
  4. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/README.md +3 -2
  5. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/_version.py +2 -2
  6. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/discovery.py +15 -6
  7. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/quickstart.py +4 -4
  8. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131/boost_skill_cli.egg-info}/PKG-INFO +4 -3
  9. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/index.html +5 -5
  10. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/openssf-badge.md +2 -2
  11. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-root-findings.md +13 -3
  12. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +3 -3
  13. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +3 -3
  14. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +3 -3
  15. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +3 -3
  16. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap.html +10 -175
  17. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/security-design.md +1 -1
  18. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/semantic-search.md +3 -3
  19. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/shard_plan.py +2 -2
  20. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_discovery.py +13 -0
  21. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_pane_width.py +5 -0
  22. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_marketing_counts.py +21 -0
  23. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_spdx_headers.py +13 -0
  24. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.gitattributes +0 -0
  25. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.gitignore +0 -0
  26. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.gitleaks.toml +0 -0
  27. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.htmlvalidate.json +0 -0
  28. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.lighthouserc.json +0 -0
  29. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.lycheeignore +0 -0
  30. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.markdownlint-cli2.jsonc +0 -0
  31. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.pre-commit-config.yaml +0 -0
  32. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.stylelintrc.json +0 -0
  33. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.vale/styles/boost/AIWriting.yml +0 -0
  34. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.vale/styles/boost/Terminology.yml +0 -0
  35. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  36. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/.vale.ini +0 -0
  37. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/CODE_OF_CONDUCT.md +0 -0
  38. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/DCO +0 -0
  39. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/GOVERNANCE.md +0 -0
  40. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/LICENSE +0 -0
  41. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/MAINTAINERS.md +0 -0
  42. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/MANIFEST.in +0 -0
  43. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/Makefile +0 -0
  44. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/SECURITY.md +0 -0
  45. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/SUPPORT.md +0 -0
  46. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost +0 -0
  47. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/__init__.py +0 -0
  48. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/__main__.py +0 -0
  49. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/cli.py +0 -0
  50. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/cliparse.py +0 -0
  51. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/__init__.py +0 -0
  52. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/_common.py +0 -0
  53. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/bmad.py +0 -0
  54. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/configuration.py +0 -0
  55. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/hooks.py +0 -0
  56. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/info.py +0 -0
  57. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/intelligence.py +0 -0
  58. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/pkg.py +0 -0
  59. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/quality.py +0 -0
  60. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/run.py +0 -0
  61. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/safety.py +0 -0
  62. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/taps.py +0 -0
  63. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/commands/team.py +0 -0
  64. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/__init__.py +0 -0
  65. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/adapters.py +0 -0
  66. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/agents.py +0 -0
  67. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/ai.py +0 -0
  68. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/aihost.py +0 -0
  69. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/archive.py +0 -0
  70. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/bmad.py +0 -0
  71. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/bootstrap.py +0 -0
  72. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/browse.py +0 -0
  73. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/builtin.py +0 -0
  74. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/capabilities.py +0 -0
  75. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/catalog.py +0 -0
  76. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/catalogbundle.py +0 -0
  77. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/chat.py +0 -0
  78. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/claude_settings.py +0 -0
  79. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/cohort.py +0 -0
  80. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/complete.py +0 -0
  81. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/config.py +0 -0
  82. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/dense.py +0 -0
  83. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/deps.py +0 -0
  84. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/discovery.py +0 -0
  85. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/ed25519.py +0 -0
  86. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/embed.py +0 -0
  87. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/faithfulness.py +0 -0
  88. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/frontmatter.py +0 -0
  89. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/gitutil.py +0 -0
  90. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/hookhost.py +0 -0
  91. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/imperative.py +0 -0
  92. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/injectscan.py +0 -0
  93. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/installscan.py +0 -0
  94. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/integrity.py +0 -0
  95. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/journal.py +0 -0
  96. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/jsonstate.py +0 -0
  97. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/localembed.py +0 -0
  98. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/lockfile.py +0 -0
  99. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/logs.py +0 -0
  100. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/mcp.py +0 -0
  101. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/mcpdecl.py +0 -0
  102. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/mcphost.py +0 -0
  103. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/minisign.py +0 -0
  104. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/nethttp.py +0 -0
  105. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/output.py +0 -0
  106. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/paths.py +0 -0
  107. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/policy.py +0 -0
  108. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/projectlock.py +0 -0
  109. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/provenance.py +0 -0
  110. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/rag.py +0 -0
  111. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/registry.py +0 -0
  112. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/report.py +0 -0
  113. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/resolve.py +0 -0
  114. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/rules.py +0 -0
  115. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/scopes.py +0 -0
  116. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/secretscan.py +0 -0
  117. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/selfupdate.py +0 -0
  118. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/serve.py +0 -0
  119. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/shards.py +0 -0
  120. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/stackprobe.py +0 -0
  121. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/staleness.py +0 -0
  122. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/store.py +0 -0
  123. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/trustaudit.py +0 -0
  124. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/typedvalue.py +0 -0
  125. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/typosquat.py +0 -0
  126. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/updatediff.py +0 -0
  127. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/util.py +0 -0
  128. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/core/workflows.py +0 -0
  129. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/data/registries.json +0 -0
  130. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/data/rules/boost-first.mdc +0 -0
  131. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/errors.py +0 -0
  132. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_cli/spin.py +0 -0
  133. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_langchain/__init__.py +0 -0
  134. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_langchain/_compat.py +0 -0
  135. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_langchain/graph.py +0 -0
  136. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_langchain/loader.py +0 -0
  137. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_langchain/py.typed +0 -0
  138. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_langchain/retriever.py +0 -0
  139. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
  140. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  141. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  142. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/requires.txt +0 -0
  143. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/top_level.txt +0 -0
  144. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/codecov.yml +0 -0
  145. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/.claude/settings.local.json +0 -0
  146. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/DEBUGGING.md +0 -0
  147. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/adapters.html +0 -0
  148. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/architecture/README.md +0 -0
  149. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/architecture/c4-components-core.md +0 -0
  150. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/architecture/c4-containers.md +0 -0
  151. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/architecture/c4-context.md +0 -0
  152. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/architecture/c4-dynamic-install.md +0 -0
  153. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/bmad.md +0 -0
  154. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/gifs/distill.gif +0 -0
  155. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/gifs/doctor.gif +0 -0
  156. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/gifs/explain.gif +0 -0
  157. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/gifs/hooks.gif +0 -0
  158. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/gifs/install.gif +0 -0
  159. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/gifs/pulse.gif +0 -0
  160. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/gifs/search.gif +0 -0
  161. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/gifs/tap.gif +0 -0
  162. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/tapes/distill.tape +0 -0
  163. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/tapes/doctor.tape +0 -0
  164. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/tapes/explain.tape +0 -0
  165. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/tapes/hooks.tape +0 -0
  166. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/tapes/install.tape +0 -0
  167. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/tapes/pulse.tape +0 -0
  168. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/tapes/search.tape +0 -0
  169. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel/tapes/tap.tape +0 -0
  170. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/carousel.html +0 -0
  171. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/chat.html +0 -0
  172. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/code-review.md +0 -0
  173. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/commands.html +0 -0
  174. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/commit-audit.md +0 -0
  175. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/demo-index.json +0 -0
  176. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/demo.gif +0 -0
  177. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/demo.html +0 -0
  178. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/demo.tape +0 -0
  179. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/dependencies.md +0 -0
  180. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/design-roadmap.html +0 -0
  181. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/eval-latest.json +0 -0
  182. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/eval.html +0 -0
  183. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/langchain.html +0 -0
  184. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/mcp-hub.html +0 -0
  185. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/openssf-playbook.md +0 -0
  186. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/rag-architecture.md +0 -0
  187. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D01.md +0 -0
  188. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D02.md +0 -0
  189. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D03.md +0 -0
  190. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D04.md +0 -0
  191. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D05.md +0 -0
  192. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D06.md +0 -0
  193. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D07.md +0 -0
  194. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D08.md +0 -0
  195. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D09.md +0 -0
  196. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D10.md +0 -0
  197. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D11.md +0 -0
  198. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D12.md +0 -0
  199. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D13.md +0 -0
  200. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D14.md +0 -0
  201. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D15.md +0 -0
  202. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D16.md +0 -0
  203. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D17.md +0 -0
  204. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D18.md +0 -0
  205. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D19.md +0 -0
  206. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D20.md +0 -0
  207. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D21.md +0 -0
  208. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D22.md +0 -0
  209. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D23.md +0 -0
  210. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D24.md +0 -0
  211. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D25.md +0 -0
  212. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D26.md +0 -0
  213. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D27.md +0 -0
  214. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  215. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  216. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  217. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  218. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  219. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  220. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  221. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  222. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  223. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  224. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  225. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  226. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  227. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  228. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  229. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  230. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-attest-findings.md +0 -0
  231. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-audit-findings.md +0 -0
  232. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  233. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-browse-findings.md +0 -0
  234. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  235. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  236. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  237. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  238. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-chat-findings.md +0 -0
  239. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  240. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  241. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  242. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-completions-findings.md +0 -0
  243. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-config-findings.md +0 -0
  244. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  245. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-context-findings.md +0 -0
  246. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  247. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  248. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-create-findings.md +0 -0
  249. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  250. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-deps-findings.md +0 -0
  251. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-discover-findings.md +0 -0
  252. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  253. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  254. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-drift-findings.md +0 -0
  255. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  256. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-edit-findings.md +0 -0
  257. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  258. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-explain-findings.md +0 -0
  259. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-export-findings.md +0 -0
  260. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  261. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  262. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  263. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  264. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  265. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-health-findings.md +0 -0
  266. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  267. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  268. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-import-findings.md +0 -0
  269. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-index-findings.md +0 -0
  270. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  271. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  272. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-install-findings.md +0 -0
  273. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  274. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  275. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-lint-findings.md +0 -0
  276. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-log-findings.md +0 -0
  277. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  278. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  279. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  280. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  281. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  282. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  283. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  284. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  285. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  286. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  287. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  288. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-policy-findings.md +0 -0
  289. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-preview-findings.md +0 -0
  290. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-profile-findings.md +0 -0
  291. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  292. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  293. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  294. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  295. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  296. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  297. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  298. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  299. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  300. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-replay-findings.md +0 -0
  301. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  302. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-run-findings.md +0 -0
  303. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  304. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-search-findings.md +0 -0
  305. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  306. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  307. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  308. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  309. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  310. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  311. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  312. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-sync-findings.md +0 -0
  313. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-tag-findings.md +0 -0
  314. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  315. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-tap-findings.md +0 -0
  316. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-taps-findings.md +0 -0
  317. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  318. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-test-findings.md +0 -0
  319. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-trust-findings.md +0 -0
  320. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  321. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  322. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-untap-findings.md +0 -0
  323. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-update-findings.md +0 -0
  324. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  325. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-verify-findings.md +0 -0
  326. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-who-findings.md +0 -0
  327. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  328. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  329. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  330. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  331. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  332. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  333. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  334. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  335. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  336. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  337. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  338. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  339. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  340. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  341. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  342. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  343. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/boost-first-rule.md +0 -0
  344. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  345. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  346. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/branch-current-gate.md +0 -0
  347. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  348. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  349. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  350. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  351. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  352. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  353. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  354. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  355. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  356. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  357. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  358. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  359. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  360. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  361. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  362. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  363. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  364. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/cli-command-audit.md +0 -0
  365. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  366. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  367. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  368. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  369. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/command-carousel-page.md +0 -0
  370. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  371. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  372. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  373. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  374. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  375. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  376. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  377. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  378. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  379. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  380. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  381. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  382. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  383. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  384. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  385. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  386. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  387. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  388. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  389. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  390. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  391. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  392. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  393. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  394. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  395. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  396. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  397. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  398. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  399. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  400. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  401. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  402. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  403. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  404. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  405. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  406. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  407. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  408. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  409. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  410. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  411. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  412. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  413. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  414. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  415. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  416. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  417. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  418. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  419. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  420. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  421. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  422. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  423. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  424. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  425. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  426. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  427. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  428. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  429. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  430. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  431. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  432. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  433. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  434. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  435. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  436. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  437. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  438. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  439. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  440. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  441. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  442. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/github-community-health-files.md +0 -0
  443. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  444. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  445. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  446. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  447. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  448. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  449. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  450. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  451. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  452. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  453. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  454. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  455. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  456. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  457. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  458. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  459. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  460. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  461. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  462. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  463. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  464. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  465. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  466. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  467. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  468. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  469. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  470. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  471. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  472. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  473. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  474. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  475. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  476. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  477. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  478. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  479. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  480. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  481. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  482. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  483. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  484. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  485. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  486. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  487. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  488. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  489. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  490. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  491. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  492. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  493. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  494. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  495. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  496. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  497. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  498. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  499. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  500. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  501. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  502. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  503. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  504. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  505. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  506. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  507. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  508. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  509. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  510. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  511. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  512. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  513. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  514. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  515. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  516. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  517. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  518. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  519. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  520. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  521. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  522. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  523. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  524. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  525. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  526. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  527. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  528. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/openssf-playbook.md +0 -0
  529. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/openssf-silver.md +0 -0
  530. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  531. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  532. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  533. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  534. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  535. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  536. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  537. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  538. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  539. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  540. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  541. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  542. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  543. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  544. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  545. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  546. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  547. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  548. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  549. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  550. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  551. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  552. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  553. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  554. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  555. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  556. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  557. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  558. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  559. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  560. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  561. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  562. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  563. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  564. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  565. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  566. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  567. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  568. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  569. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  570. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  571. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  572. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  573. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/relicence-apache-2.md +0 -0
  574. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  575. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  576. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  577. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  578. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  579. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  580. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  581. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  582. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  583. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  584. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  585. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  586. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  587. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  588. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  589. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  590. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  591. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  592. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  593. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  594. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  595. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  596. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  597. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  598. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  599. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  600. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  601. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  602. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  603. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  604. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  605. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  606. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  607. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  608. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  609. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  610. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  611. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  612. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  613. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  614. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  615. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  616. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  617. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  618. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  619. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  620. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  621. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  622. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  623. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  624. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  625. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  626. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  627. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  628. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  629. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  630. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  631. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  632. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  633. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  634. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  635. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  636. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  637. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  638. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  639. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  640. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  641. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  642. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  643. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  644. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  645. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  646. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  647. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  648. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  649. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  650. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  651. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  652. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  653. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  654. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  655. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  656. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  657. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  658. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  659. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  660. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  661. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  662. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  663. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  664. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  665. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  666. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  667. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  668. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  669. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  670. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  671. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  672. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  673. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/workspace-scope-install.md +0 -0
  674. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/zip-strict-audit.md +0 -0
  675. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  676. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  677. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  678. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/verifying-releases.md +0 -0
  679. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/vex/meta.md +0 -0
  680. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/vex/openvex.json +0 -0
  681. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  682. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  683. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  684. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  685. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/eslint.config.mjs +0 -0
  686. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/README.md +0 -0
  687. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/__init__.py +0 -0
  688. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/baseline.json +0 -0
  689. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/faithfulness.py +0 -0
  690. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/golden_set.json +0 -0
  691. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/make_corpus.py +0 -0
  692. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/make_golden.py +0 -0
  693. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/metrics.py +0 -0
  694. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/publish_golden_dataset.py +0 -0
  695. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/evals/run_evals.py +0 -0
  696. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/examples/README.md +0 -0
  697. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/examples/adapt-demo.sh +0 -0
  698. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/examples/boost-run-prototype.sh +0 -0
  699. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/index.html +0 -0
  700. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/noxfile.py +0 -0
  701. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/pyproject.toml +0 -0
  702. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/coverage-tools.in +0 -0
  703. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/coverage-tools.txt +0 -0
  704. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/lint-tools.in +0 -0
  705. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/lint-tools.txt +0 -0
  706. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/mutation-tools.in +0 -0
  707. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/mutation-tools.txt +0 -0
  708. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/platform-pins.lock +0 -0
  709. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/release-tools.in +0 -0
  710. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/release-tools.txt +0 -0
  711. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/test-tools.in +0 -0
  712. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/requirements/test-tools.txt +0 -0
  713. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/a11y_check.py +0 -0
  714. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/add_spdx_headers.py +0 -0
  715. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/bench_cli.sh +0 -0
  716. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/build_command_reference.py +0 -0
  717. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/build_demo_index.py +0 -0
  718. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/build_registries.py +0 -0
  719. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/build_roadmap.py +0 -0
  720. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/build_scale_corpus.py +0 -0
  721. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/build_vex.py +0 -0
  722. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/check_anchors.py +0 -0
  723. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/check_branch_current.py +0 -0
  724. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/check_dco.py +0 -0
  725. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/check_licenses.py +0 -0
  726. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/check_reproducible.py +0 -0
  727. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/check_required_checks.py +0 -0
  728. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/ensure_eval_corpus.sh +0 -0
  729. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/eval_corpus.py +0 -0
  730. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/eval_explain.py +0 -0
  731. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/eval_gate.py +0 -0
  732. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/eval_recommend.py +0 -0
  733. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/eval_retrieval.py +0 -0
  734. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/eval_stats_summary.py +0 -0
  735. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/eval_tools.py +0 -0
  736. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/import_budget.py +0 -0
  737. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/lock_toolchain.py +0 -0
  738. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/measure_near_duplicate_bound.py +0 -0
  739. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/measure_registry.py +0 -0
  740. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/mutation_gate.py +0 -0
  741. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/mutation_shards.py +0 -0
  742. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/mutation_weights.json +0 -0
  743. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/normalize_sdist.py +0 -0
  744. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/page_budget.py +0 -0
  745. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/perf_gate.py +0 -0
  746. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/post_deploy_smoke.py +0 -0
  747. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/publish_eval_json.py +0 -0
  748. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/publish_shards.py +0 -0
  749. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/release_guard.py +0 -0
  750. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/release_preflight.py +0 -0
  751. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/scripts/serve_docs.py +0 -0
  752. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/setup.cfg +0 -0
  753. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/sonar-project.properties +0 -0
  754. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/style/README.md +0 -0
  755. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/style/boost.css +0 -0
  756. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/style/boost.js +0 -0
  757. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/style/demo.html +0 -0
  758. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/adapt.feature +0 -0
  759. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/browse.feature +0 -0
  760. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/count.feature +0 -0
  761. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/discover.feature +0 -0
  762. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/doctor.feature +0 -0
  763. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/environment.py +0 -0
  764. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/explain.feature +0 -0
  765. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/index.feature +0 -0
  766. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/install.feature +0 -0
  767. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/list.feature +0 -0
  768. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/mcp.feature +0 -0
  769. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/search.feature +0 -0
  770. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/steps/cli_steps.py +0 -0
  771. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/steps/discovery_steps.py +0 -0
  772. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/steps/mcp_steps.py +0 -0
  773. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/bdd/features/steps/quality_steps.py +0 -0
  774. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/conftest.py +0 -0
  775. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/baseline.json +0 -0
  776. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/explain.jsonl +0 -0
  777. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  778. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/golden-natural.jsonl +0 -0
  779. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/golden.jsonl +0 -0
  780. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/recommend.jsonl +0 -0
  781. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/taps-scale.txt +0 -0
  782. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/taps.txt +0 -0
  783. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/eval/tool_calls.jsonl +0 -0
  784. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  785. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_bmad_all_hosts.py +0 -0
  786. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_bmad_personas_scope.py +0 -0
  787. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_capabilities_policy.py +0 -0
  788. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_adapt.py +0 -0
  789. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_bmad.py +0 -0
  790. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_catalog.py +0 -0
  791. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_chat.py +0 -0
  792. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_configuration.py +0 -0
  793. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_hooks.py +0 -0
  794. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_hooks_gemini.py +0 -0
  795. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_info.py +0 -0
  796. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_intelligence.py +0 -0
  797. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_json_reports.py +0 -0
  798. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_pkg.py +0 -0
  799. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_quality.py +0 -0
  800. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_quickstart.py +0 -0
  801. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_tap_pins.py +0 -0
  802. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_taps.py +0 -0
  803. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_cli_team.py +0 -0
  804. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  805. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  806. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_everyday_loop.py +0 -0
  807. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_integrity_enforce.py +0 -0
  808. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_kind_conformance.py +0 -0
  809. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_property_parsers.py +0 -0
  810. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_recommend_because_is_true.py +0 -0
  811. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_reports_match_reality.py +0 -0
  812. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_run.py +0 -0
  813. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_tap_signing.py +0 -0
  814. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/functional/test_workspace_scope.py +0 -0
  815. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/README.md +0 -0
  816. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  817. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  818. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  819. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  820. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  821. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  822. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  823. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  824. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  825. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  826. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  827. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  828. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  829. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  830. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  831. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  832. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  833. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  834. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  835. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  836. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  837. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  838. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  839. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/fuzz_frontmatter.py +0 -0
  840. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/fuzz/fuzz_registry.py +0 -0
  841. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/langchain/conftest.py +0 -0
  842. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/langchain/test_graph.py +0 -0
  843. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/langchain/test_loader.py +0 -0
  844. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/langchain/test_retriever.py +0 -0
  845. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/make_fixture.py +0 -0
  846. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/perf/test_benchmarks.py +0 -0
  847. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/smoke.sh +0 -0
  848. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  849. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_a11y_check.py +0 -0
  850. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_action_pin_lockstep.py +0 -0
  851. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_adapters.py +0 -0
  852. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_adapters_multi.py +0 -0
  853. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_adapters_runner.py +0 -0
  854. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_agents.py +0 -0
  855. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_ai.py +0 -0
  856. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_aihost.py +0 -0
  857. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_archive.py +0 -0
  858. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_bmad_core.py +0 -0
  859. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_boost_first_offer.py +0 -0
  860. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_bootstrap.py +0 -0
  861. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_bot_pr_dco.py +0 -0
  862. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_branch_current.py +0 -0
  863. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_browse.py +0 -0
  864. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_builtin.py +0 -0
  865. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_capabilities.py +0 -0
  866. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_catalog.py +0 -0
  867. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_catalog_keyword_words.py +0 -0
  868. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_catalogbundle.py +0 -0
  869. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_chat.py +0 -0
  870. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_check_anchors.py +0 -0
  871. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_check_dco.py +0 -0
  872. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_check_licenses.py +0 -0
  873. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_check_reproducible.py +0 -0
  874. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_claude_settings.py +0 -0
  875. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_clean_internal_cache.py +0 -0
  876. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_cli_update_shards.py +0 -0
  877. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_cliparse.py +0 -0
  878. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_codeql_analysis_key.py +0 -0
  879. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_cohort.py +0 -0
  880. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_command_reference_fresh.py +0 -0
  881. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_community_health_files.py +0 -0
  882. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_compact.py +0 -0
  883. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_complete.py +0 -0
  884. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_complete_rc_block.py +0 -0
  885. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_config.py +0 -0
  886. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_content_dedupe.py +0 -0
  887. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_content_identity.py +0 -0
  888. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  889. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_crash_redaction.py +0 -0
  890. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dedup_trust.py +0 -0
  891. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_demo_index.py +0 -0
  892. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense.py +0 -0
  893. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  894. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_embed_dedupe.py +0 -0
  895. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_entry_reuse.py +0 -0
  896. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_entry_vectors.py +0 -0
  897. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_fallback.py +0 -0
  898. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_fix_hint.py +0 -0
  899. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_progress.py +0 -0
  900. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_quantized.py +0 -0
  901. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_ready_order.py +0 -0
  902. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_shard_real_schema.py +0 -0
  903. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  904. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_shards.py +0 -0
  905. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_status.py +0 -0
  906. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_status_cheap.py +0 -0
  907. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dense_vector_dedupe.py +0 -0
  908. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_dependabot_config.py +0 -0
  909. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_deps.py +0 -0
  910. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_discovery.py +0 -0
  911. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_distill_merge.py +0 -0
  912. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_docs_pages_linked.py +0 -0
  913. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_docsite_chrome.py +0 -0
  914. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_doctor_output_polish.py +0 -0
  915. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_drift_hint.py +0 -0
  916. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_ed25519.py +0 -0
  917. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_embed.py +0 -0
  918. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_embed_local.py +0 -0
  919. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_embed_truncated_response.py +0 -0
  920. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_entry_key.py +0 -0
  921. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_errors_and_cli_table.py +0 -0
  922. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_baseline.py +0 -0
  923. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_corpus.py +0 -0
  924. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_faithfulness.py +0 -0
  925. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_gate.py +0 -0
  926. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_grading.py +0 -0
  927. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_metrics.py +0 -0
  928. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_stats_summary.py +0 -0
  929. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_tools.py +0 -0
  930. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_eval_tools_probe.py +0 -0
  931. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  932. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_faithfulness.py +0 -0
  933. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_frontmatter.py +0 -0
  934. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_fuzz_targets.py +0 -0
  935. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  936. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_gitleaks_config.py +0 -0
  937. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_gitutil.py +0 -0
  938. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_gitutil_lfs.py +0 -0
  939. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_gitutil_sparse.py +0 -0
  940. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_gstack_coexistence.py +0 -0
  941. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_hook_settings_hosts.py +0 -0
  942. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_hookhost.py +0 -0
  943. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_imperative.py +0 -0
  944. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_import_budget.py +0 -0
  945. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_injectscan.py +0 -0
  946. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_install_permission_error.py +0 -0
  947. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_installscan.py +0 -0
  948. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_integrity.py +0 -0
  949. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_journal.py +0 -0
  950. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_jsonstate.py +0 -0
  951. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_langchain_packaging.py +0 -0
  952. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_launcher_python_floor.py +0 -0
  953. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_link_ownership.py +0 -0
  954. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_localembed.py +0 -0
  955. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_localembed_e2e.py +0 -0
  956. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_lockfile.py +0 -0
  957. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_logs.py +0 -0
  958. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mcp.py +0 -0
  959. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mcp_install_scan.py +0 -0
  960. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mcp_read.py +0 -0
  961. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mcpdecl.py +0 -0
  962. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mcphost.py +0 -0
  963. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_measure_registry.py +0 -0
  964. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_minisign.py +0 -0
  965. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mutation_hardening.py +0 -0
  966. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mutation_shards.py +0 -0
  967. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mutation_subfile_shards.py +0 -0
  968. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_mutmut_source_paths.py +0 -0
  969. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_near_duplicate_collapse.py +0 -0
  970. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_nethttp.py +0 -0
  971. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_normalize_sdist.py +0 -0
  972. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_output.py +0 -0
  973. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_page_budget.py +0 -0
  974. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_paths.py +0 -0
  975. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_perf_gate.py +0 -0
  976. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_pkg_confusions.py +0 -0
  977. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_pkg_injection.py +0 -0
  978. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_pkg_secrets.py +0 -0
  979. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_platform_pins.py +0 -0
  980. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_policy.py +0 -0
  981. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_post_deploy_smoke.py +0 -0
  982. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_project_mcp_sidecar.py +0 -0
  983. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_projectlock.py +0 -0
  984. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_provenance.py +0 -0
  985. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_publish_golden_dataset.py +0 -0
  986. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_rag.py +0 -0
  987. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_rag_completeness.py +0 -0
  988. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_rag_fastpath.py +0 -0
  989. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_rag_fusion.py +0 -0
  990. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_registries_fresh.py +0 -0
  991. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_registry.py +0 -0
  992. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_registry_categories.py +0 -0
  993. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_registry_control_chars.py +0 -0
  994. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_registry_parallel.py +0 -0
  995. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_release_guard.py +0 -0
  996. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_release_preflight.py +0 -0
  997. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_report.py +0 -0
  998. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_required_checks.py +0 -0
  999. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_rerank_cache.py +0 -0
  1000. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_resolve.py +0 -0
  1001. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1002. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_roadmap_fresh.py +0 -0
  1003. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_rules.py +0 -0
  1004. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_scale_corpus.py +0 -0
  1005. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_schedule_plist.py +0 -0
  1006. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_scopes.py +0 -0
  1007. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_secretscan.py +0 -0
  1008. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_selfupdate.py +0 -0
  1009. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_serve.py +0 -0
  1010. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_serve_docs.py +0 -0
  1011. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_shard_plan.py +0 -0
  1012. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_shards.py +0 -0
  1013. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_shards_incremental.py +0 -0
  1014. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_shards_ingest.py +0 -0
  1015. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_shards_matrix.py +0 -0
  1016. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1017. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_spin.py +0 -0
  1018. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_stackprobe.py +0 -0
  1019. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_staleness.py +0 -0
  1020. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_store.py +0 -0
  1021. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_store_materialize.py +0 -0
  1022. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_sync_blocked_links.py +0 -0
  1023. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_sync_lost_lock.py +0 -0
  1024. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1025. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_tap_pins.py +0 -0
  1026. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_token_parity.py +0 -0
  1027. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_toolchain_lock.py +0 -0
  1028. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_trustaudit.py +0 -0
  1029. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_typedvalue.py +0 -0
  1030. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_typosquat.py +0 -0
  1031. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_updatediff.py +0 -0
  1032. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_util.py +0 -0
  1033. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_version.py +0 -0
  1034. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_version_tags.py +0 -0
  1035. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_vex.py +0 -0
  1036. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_visual_harness_capture.py +0 -0
  1037. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_visual_harness_flags.py +0 -0
  1038. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_workflow_concurrency.py +0 -0
  1039. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1040. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1041. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_workflow_timeouts.py +0 -0
  1042. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_workflows.py +0 -0
  1043. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1044. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/visual/a11y_check.mjs +0 -0
  1045. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/visual/console_check.mjs +0 -0
  1046. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/visual/package-lock.json +0 -0
  1047. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/visual/package.json +0 -0
  1048. {boost_skill_cli-1.2.129 → boost_skill_cli-1.2.131}/tests/visual/visual_check.mjs +0 -0
@@ -293,10 +293,10 @@ line coverage. Target `boost_cli/core` behavior with assertions, not just import
293
293
  adding to the vale list.** Every `.py`/`.sh` under `boost_cli`,
294
294
  `boost_langchain`, `evals`, `scripts`, `tests` plus `./boost` and
295
295
  `noxfile.py` opens with `# Copyright the boost contributors.` and
296
- `# SPDX-License-Identifier: GPL-3.0-only`. Run
296
+ `# SPDX-License-Identifier: Apache-2.0`. Run
297
297
  `python3 scripts/add_spdx_headers.py` (idempotent) — the file list and the
298
- expression live there, so changing `-only` to `-or-later` is one edit rather
299
- than 314. Separately, `prose-lint.yml` names the Markdown files vale checks
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
300
300
  **explicitly**: a new doc that is not added to that list is never linted, and
301
301
  `make lint` will not tell you.
302
302
 
@@ -517,7 +517,7 @@ each agent's skills dir, and updating the lock file.
517
517
 
518
518
  - **The shard matrix is packed, not sliced, and 256 is a hard ceiling.**
519
519
  GitHub runs at most 256 matrix jobs per workflow, so `shards.yml` cannot take
520
- one job per registry once the scope is the 463-registry catalogue — the run
520
+ one job per registry once the scope is the ~460-registry catalogue — the run
521
521
  fails before a job starts. `scripts/shard_plan.py` bin-packs by the measured
522
522
  `est_items` (longest-processing-time-first), which matters because cost is
523
523
  uneven: the largest catalogued registry is 880 items against a median of 30,
@@ -191,7 +191,7 @@ form linked there, never a public issue.
191
191
  tests that actually kill your mutants.
192
192
  - **Every source file opens with a two-line header** —
193
193
  `# Copyright the boost contributors.` then
194
- `# SPDX-License-Identifier: GPL-3.0-only`, below any shebang.
194
+ `# SPDX-License-Identifier: Apache-2.0`, below any shebang.
195
195
  `python3 scripts/add_spdx_headers.py` stamps whatever is missing and is safe
196
196
  to re-run; `tests/unit/test_spdx_headers.py` fails the build for a new file
197
197
  without one.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.129
3
+ Version: 1.2.131
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -190,8 +190,9 @@ those vectors. Embedding is ~1.2 s/chunk on CPU — hours for a real corpus —
190
190
  and importing the same rows takes 0.12 s, so the difference between the two is
191
191
  the difference between semantic search being available and being reachable.
192
192
 
193
- Want everything? `boost quickstart --catalog` taps all 463 catalogued
194
- registries — 2 min 10 s now that clones run in parallel — and fetches vectors
193
+ Want everything? `boost quickstart --catalog` taps every catalogued
194
+ registrymeasured at 2 min 10 s for 463 of them, now that clones run in
195
+ parallel — and fetches vectors
195
196
  for every one that has a published shard.
196
197
 
197
198
  Already tapped? `boost reindex --fetch-shards` does the download half alone,
@@ -148,8 +148,9 @@ those vectors. Embedding is ~1.2 s/chunk on CPU — hours for a real corpus —
148
148
  and importing the same rows takes 0.12 s, so the difference between the two is
149
149
  the difference between semantic search being available and being reachable.
150
150
 
151
- Want everything? `boost quickstart --catalog` taps all 463 catalogued
152
- registries — 2 min 10 s now that clones run in parallel — and fetches vectors
151
+ Want everything? `boost quickstart --catalog` taps every catalogued
152
+ registrymeasured at 2 min 10 s for 463 of them, now that clones run in
153
+ parallel — and fetches vectors
153
154
  for every one that has a published shard.
154
155
 
155
156
  Already tapped? `boost reindex --fetch-shards` does the download half alone,
@@ -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.129'
22
- __version_tuple__ = version_tuple = (1, 2, 129)
21
+ __version__ = version = '1.2.131'
22
+ __version_tuple__ = version_tuple = (1, 2, 131)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -256,7 +256,12 @@ def cmd_search(argv):
256
256
  else:
257
257
  footer = ("%d match%s · ranked by %s"
258
258
  % (len(scored), "" if len(scored) == 1 else "es", ranker))
259
- out.info(out.role(footer, "muted"))
259
+ # Chrome, so fitted like the rows `search_layout` just fitted above it —
260
+ # the same wrap-then-colour as `_hint_semantic_search`. Emitted whole it
261
+ # measured 55 columns in a 40-column pane (the cap branch), and the
262
+ # pane-width gate only passed because its fixture returned one match.
263
+ for line in out.wrap(footer, max(out.term_width() - 2, 20)):
264
+ out.info(out.role(line, "muted"))
260
265
  if use_rag:
261
266
  _note_stem_expansions(query)
262
267
  _note_dropped_terms(dropped)
@@ -1151,13 +1156,17 @@ def cmd_recommend(argv):
1151
1156
  if used_curated_fallback:
1152
1157
  out.info("no stack-specific matches — curated picks instead:")
1153
1158
  width = min(max(len(r["entry"]["name"]) for r in shown), 32)
1154
- cols = out.term_width()
1155
- for r in shown:
1159
+ reasons = ["because: %s" % ", ".join(sorted(r["because"])) for r in shown]
1160
+ # One description width for every row, from the widest reason. Sized per
1161
+ # row from that row's own `because:` tag, the clip point swung 20 columns
1162
+ # between rows (34-54 at COLUMNS=100) and neither column lined up.
1163
+ desc_w = max(out.term_width() - 2 - width - 2
1164
+ - (max(map(len, reasons)) + 2), 8)
1165
+ for r, because in zip(shown, reasons, strict=True):
1156
1166
  e = r["entry"]
1157
- because = "because: %s" % ", ".join(sorted(r["because"]))
1158
- desc_w = max(cols - 2 - width - 2 - (len(because) + 2), 8)
1159
1167
  name_cell = out.role(out.truncate(e["name"], width).ljust(width), "accent")
1160
- out.info(name_cell + " " + out.truncate(e["description"] or "", desc_w)
1168
+ desc = out.truncate(e["description"] or "", desc_w)
1169
+ out.info(name_cell + " " + desc + " " * (desc_w - out.visible_len(desc))
1161
1170
  + " " + out.role(because, "muted"))
1162
1171
  if ai.available():
1163
1172
  picks = _ai_picks(stack, [r["entry"] for r in ranked[:20]])
@@ -36,9 +36,9 @@ def _selection(catalog_scope: bool) -> list[dict]:
36
36
  """The registries quickstart will tap: the seven defaults, or all of them.
37
37
 
38
38
  `--catalog` exists because "search everything" is a real ask and the two
39
- costs that used to make it unreasonable are gone: tapping 463 registries is
40
- 2 min 10 s now that clones run in parallel, and their vectors are a
41
- download rather than an hour of CPU.
39
+ costs that used to make it unreasonable are gone: tapping the whole
40
+ catalogue measured 2 min 10 s (463 registries) once clones ran in
41
+ parallel, and their vectors are a download rather than an hour of CPU.
42
42
  """
43
43
  if not catalog_scope:
44
44
  return [d.copy() for d in config.DEFAULT_TAPS]
@@ -62,7 +62,7 @@ def _tap_defaults(selection: list[dict], pins: dict[str, dict],
62
62
  if dry_run:
63
63
  existing = {t.name for t in registry.list_taps()}
64
64
  pending = [n for n in names if n not in existing]
65
- # Over 463 registries a line each is a wall of text, so past a handful
65
+ # Over the whole catalogue a line each is a wall of text, so past a handful
66
66
  # the dry run reports the shape instead of the list.
67
67
  if len(pending) > 12:
68
68
  out.info("would tap %d registries (%d pinned to a published "
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.129
3
+ Version: 1.2.131
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -190,8 +190,9 @@ those vectors. Embedding is ~1.2 s/chunk on CPU — hours for a real corpus —
190
190
  and importing the same rows takes 0.12 s, so the difference between the two is
191
191
  the difference between semantic search being available and being reachable.
192
192
 
193
- Want everything? `boost quickstart --catalog` taps all 463 catalogued
194
- registries — 2 min 10 s now that clones run in parallel — and fetches vectors
193
+ Want everything? `boost quickstart --catalog` taps every catalogued
194
+ registrymeasured at 2 min 10 s for 463 of them, now that clones run in
195
+ parallel — and fetches vectors
195
196
  for every one that has a published shard.
196
197
 
197
198
  Already tapped? `boost reindex --fetch-shards` does the download half alone,
@@ -658,7 +658,7 @@ facilitate structured divergent thinking:
658
658
  <div class="node src">
659
659
  <span class="tag">Source</span>
660
660
  <h3>GitHub registries</h3>
661
- <p>7 pre-tapped registries + a 10,000-skill discovery index</p>
661
+ <p>7 pre-tapped registries + live GitHub discovery</p>
662
662
  </div>
663
663
  </div>
664
664
  <div class="flow-arrow reveal">
@@ -874,8 +874,8 @@ facilitate structured divergent thinking:
874
874
  <p class="sec-sub">Boost ships pre-tapped to seven curated registries covering all three
875
875
  item kinds — skills, rules and workflows — and <code>boost mcp</code> taps them for you
876
876
  on a machine that has none. Beyond that,
877
- the curated catalog spans 100+ registries and <code>boost discover</code> indexes
878
- 10,000+ skills across GitHub. Tap your own team’s repo anytime.</p>
877
+ the curated catalog spans 100+ registries and <code>boost discover</code> searches
878
+ GitHub live for skill repositories you have not tapped. Tap your own team’s repo anytime.</p>
879
879
 
880
880
  <div class="reg-wrap reveal">
881
881
  <div class="reg-scroll">
@@ -937,7 +937,7 @@ facilitate structured divergent thinking:
937
937
  </div>
938
938
  </div>
939
939
  <p class="reg-note">Item counts (skills + rules + workflows) measured from the live repositories ·
940
- build the GitHub-wide index with <code>boost index</code>, browse it with <code>boost discover</code></p>
940
+ <code>boost discover &lt;query&gt;</code> searches GitHub live; <code>boost index</code> builds the offline index that bare <code>discover</code> and <code>--local</code> browse</p>
941
941
  </div>
942
942
  </section>
943
943
 
@@ -1009,7 +1009,7 @@ pipx inject boost-skill-cli <span class="yv">"boost-skill-cli[rag]"</span>
1009
1009
  <a href="#commands"><span class="name"><span class="v">boost</span> install brainstorming</span><p>Install into every agent</p></a>
1010
1010
  <a href="#commands"><span class="name"><span class="v">boost</span> recommend</span><p>Suggestions for your stack</p></a>
1011
1011
  <a href="#commands"><span class="name"><span class="v">boost</span> browse</span><p>Interactive TUI explorer</p></a>
1012
- <a href="#commands"><span class="name"><span class="v">boost</span> discover</span><p>Browse 10,000+ skills</p></a>
1012
+ <a href="#commands"><span class="name"><span class="v">boost</span> discover</span><p>Find untapped skills on GitHub</p></a>
1013
1013
  <a href="#commands"><span class="name"><span class="v">boost</span> doctor</span><p>Health check &amp; repair hints</p></a>
1014
1014
  </div>
1015
1015
  </div>
@@ -241,8 +241,8 @@ that sets response headers) and three are a recruiting problem.
241
241
 
242
242
  | Criterion | Cat. | Answer | Evidence |
243
243
  |---|---|---|---|
244
- | `copyright_per_file` | MUST | **Met** | Every source file opens with `# Copyright the boost contributors.` — 314 files across `boost_cli/`, `boost_langchain/`, `evals/`, `scripts/`, `tests/` and the two root files. [`scripts/add_spdx_headers.py`](https://github.com/jonnyeclectic/boost/blob/main/scripts/add_spdx_headers.py) stamps them idempotently and `tests/unit/test_spdx_headers.py` fails the build if a new file arrives without one. |
245
- | `license_per_file` | MUST | **Met** | The next line of every one of those files is `# SPDX-License-Identifier: GPL-3.0-only`. `-only` rather than `-or-later` because nothing in the repository grants "or any later version"; a test asserts that LICENSE still contains no such grant, so the expression cannot quietly become wrong. |
244
+ | `copyright_per_file` | MUST | **Met** | Every source file opens with `# Copyright the boost contributors.` — every `.py`/`.sh` file across `boost_cli/`, `boost_langchain/`, `evals/`, `scripts/`, `tests/` and the two root files. [`scripts/add_spdx_headers.py`](https://github.com/jonnyeclectic/boost/blob/main/scripts/add_spdx_headers.py) stamps them idempotently and `tests/unit/test_spdx_headers.py` fails the build if a new file arrives without one. |
245
+ | `license_per_file` | MUST | **Met** | The next line of every one of those files is `# SPDX-License-Identifier: Apache-2.0`, the licence LICENSE carries. `tests/unit/test_spdx_headers.py` fails the build on a file missing either line, and a second test pins CLAUDE.md's contributor rule to the same expression. |
246
246
  | `repo_distributed` | MUST | **Met** | git. |
247
247
  | `small_tasks` | SHOULD | **Met** | [CONTRIBUTING.md § Good first tasks](https://github.com/jonnyeclectic/boost/blob/main/CONTRIBUTING.md#good-first-tasks) names five standing starter tasks, each with the exact file to edit — adding a registry row, adding a retrieval golden-set query, teaching the prose linter a word, sharpening a command summary, covering an untested branch. They are standing tasks on purpose: a newcomer can start without waiting for an issue to be triaged. Specific one-off tasks carry the `good first issue` label. |
248
248
 
@@ -2,15 +2,15 @@
2
2
  id: audit-root-findings
3
3
  board: code
4
4
  section: dx
5
- status: planned
5
+ status: shipped
6
6
  category: CLI · Bug
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 1
10
10
  note: EPIPE exits 120 with stderr noise; `help version` suggests verify; launcher gates at 3.9
11
11
  order: 245
12
- owner:
13
- pr:
12
+ owner: loop/audit-root-closed
13
+ pr: 827
14
14
  title: "boost ROOT: CLI audit findings (2026-08)"
15
15
  ---
16
16
  <b>EPIPE leaks past main's own handler.</b> <code>boost --help | (exec 0&lt;&amp;-; sleep 0.3)</code>
@@ -45,3 +45,13 @@ fixes touches a COMMANDS row, so <code>docs/commands.html</code> is unaffected.
45
45
 
46
46
  <br><br>Found by the 2026-08 CLI audit (clusters <code>broken-pipe-exit</code>,
47
47
  <code>help-routing-aliases</code>, <code>launcher-python-floor</code>); repro in the audit log.
48
+
49
+ <br><br><b>Shipped in #827</b> (commit <code>22c9193</code>, batch train-17, 2026-09-08). The card
50
+ was never closed. Re-measured on <code>main</code> at <code>bb1229f</code> on 2026-09-18:
51
+ <code>--help</code>, <code>count</code>, <code>taps</code> and <code>--version</code> piped into
52
+ <code>(exec 0&lt;&amp;-; sleep 0.3)</code> exit 0 with empty stderr, 3/3 runs each (<code>_seal_broken_stdout</code>
53
+ plus <code>_route</code>'s <code>finally</code> flush).
54
+ <code>boost help --help</code>, <code>help version</code> and <code>help help</code> all resolve;
55
+ <code>boost --hepl</code> says <em>&ldquo;unknown option&rdquo;</em>, and <code>print_help</code> carries the Options line.
56
+ The launcher gates at <code>(3, 12)</code>, pinned to <code>requires-python</code> by
57
+ <code>tests/unit/test_launcher_python_floor.py</code>.
@@ -2,15 +2,15 @@
2
2
  id: audit-stale-prose-after-shipped-changes-catalog-export-live-discov
3
3
  board: code
4
4
  section: dx
5
- status: planned
5
+ status: shipped
6
6
  category: Docs · Drift
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 1
10
10
  note: a documented command that exits 2, 463 vs 464 in eight places, a GPL rule over Apache files
11
11
  order: 244
12
- owner:
13
- pr:
12
+ owner: loop/stale-prose
13
+ pr: 883
14
14
  title: "Stale prose after shipped changes: <code>catalog --export</code>, live discover, 464 count, Apache-2.0"
15
15
  ---
16
16
  Four patches of prose describe the repo as it was before a shipped change, each verified against the current
@@ -2,15 +2,15 @@
2
2
  id: recommend-recomputes-its-columns-per-row
3
3
  board: code
4
4
  section: planned
5
- status: planned
5
+ status: shipped
6
6
  category: UX · Bug
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 2
10
10
  note: cmd_recommend hand-rolls its rows and computes desc_w = max(cols - 2 - width - 2 - (l…
11
11
  order: 226
12
- owner:
13
- pr:
12
+ owner: loop/recommend-columns
13
+ pr: 881
14
14
  title: <code>boost recommend</code> sizes the description cell per row from that row's <code>because:</code> text, so neither column lines up
15
15
  ---
16
16
  <b>Measured.</b> At COLUMNS=100 the eight <code>boost recommend</code> rows truncate their descriptions at eight per-row widths spanning 34 to 54 columns — a 20-column swing, the widest cell 59% wider than the narrowest — because <code>desc_w</code> is recomputed inside the row loop from that row's own <code>because:</code> tag length (<code>boost_cli/commands/discovery.py:1062</code>); every rendered cell matched the predicted <code>desc_w</code> to the character and every description ended in an ellipsis, so this is column geometry, not natural description length.
@@ -2,15 +2,15 @@
2
2
  id: search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to
3
3
  board: code
4
4
  section: planned
5
- status: planned
5
+ status: shipped
6
6
  category: UX · Bug
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 2
10
10
  note: search_layout's docstring guarantees every row measures within cols, and at COLUMNS=4…
11
11
  order: 231
12
- owner:
13
- pr:
12
+ owner: loop/search-footer-fit
13
+ pr: 884
14
14
  title: The search footer is the one unfitted line on a screen <code>search_layout</code> just fitted: 55 columns in a 40-column pane
15
15
  ---
16
16
  <b>Measured.</b> The same command measures 55 columns in a 40-column pane in the field and 39 in the test that asserts it fits: <code>tests/functional/test_cli_pane_width.py::TestChromeOnlyCommandsFitAnyPane::test_search[40]</code> passes only because its fixture tap yields exactly one match, whose footer is <code>1 match · ranked by full-content BM25</code> = 39 — one column under the pane.
@@ -2,15 +2,15 @@
2
2
  id: search-footer-overflows-40-col-pane-gate-passes-by-luck
3
3
  board: code
4
4
  section: planned
5
- status: planned
5
+ status: shipped
6
6
  category: UX · Bug
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 3
10
10
  note: tests/functional/test_cli_pane_width.py asserts _widest(r.out) &lt;= cols for boost sear…
11
11
  order: 232
12
- owner:
13
- pr:
12
+ owner: loop/search-footer-fit
13
+ pr: 884
14
14
  title: <code>boost search</code>'s footer overflows a 40-column pane by 2-15 cells, and the gate that swears it doesn't passes only because its fixture returns exactly one match
15
15
  ---
16
16
  <b>Measured.</b> On the gate's <b>own</b> 5-item fixture at COLUMNS=40, changing the query from <code>brainstorming</code> to <code>workflow</code> — nothing else — takes <code>_widest(r.out)</code> from 40 (passes) to 41 (fails), because the footer goes from <code>1 match · ranked by full-content BM25</code> (39 cells) to <code>2 matches · ranked by full-content BM25</code> (41 cells): the gate's green is a property of the singular noun, not of the code. On the 20-tap corpus the same footer measures 55 cells at COLUMNS=40 (over by 15) via the <code>hit_cap</code> branch.
@@ -2103,41 +2103,9 @@ Nothing else needed correcting: 7 starter registries, 962 items, 11 matches, the
2103
2103
  </article>
2104
2104
 
2105
2105
  <article class="cap rcard" id="recommend-recomputes-its-columns-per-row">
2106
- <div class="head"><span class="pill planned">Planned</span><span class="cat">UX · Bug</span></div>
2106
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">UX · Bug</span></div>
2107
2107
  <h3><code>boost recommend</code> sizes the description cell per row from that row's <code>because:</code> text, so neither column lines up</h3>
2108
- <p><b>Measured.</b> At COLUMNS=100 the eight <code>boost recommend</code> rows truncate their descriptions at eight per-row widths spanning 34 to 54 columns — a 20-column swing, the widest cell 59% wider than the narrowest — because <code>desc_w</code> is recomputed inside the row loop from that row's own <code>because:</code> tag length (<code>boost_cli/commands/discovery.py:1062</code>); every rendered cell matched the predicted <code>desc_w</code> to the character and every description ended in an ellipsis, so this is column geometry, not natural description length.
2109
-
2110
- <b>Reproduce it.</b>
2111
-
2112
- <code>cd &lt;repo&gt;</code><br>
2113
- <code>export HOME=$TMPDIR/audit-dbi-sweep; mkdir -p "$HOME"; export BOOST_HOME=$TMPDIR/eval-home BOOST_NO_AI=1</code><br>
2114
- <code>COLUMNS=100 ./boost recommend &gt; $TMPDIR/rec.txt 2&gt;&amp;1; cat $TMPDIR/rec.txt</code><br>
2115
- <code>python3 - &lt;&lt;'PY'</code><br>
2116
- <code>import re,os</code><br>
2117
- <code>for line in open(os.environ["TMPDIR"]+"/rec.txt").read().splitlines()[1:]:</code><br>
2118
- <code> m=re.match(r"^ (\S+)\s+(.*?)\s\sbecause: (.*)$", line)</code><br>
2119
- <code> if m: print("desc_cell=%3d because_len=%2d row_len=%d %s"%(len(m.group(2)),len("because: "+m.group(3)),len(line),m.group(1)))</code><br>
2120
- <code>PY</code><br>
2121
- <code>sed -n '1061,1065p' boost_cli/commands/discovery.py</code><br>
2122
- <code>sed -n '638,644p' boost_cli/core/output.py</code>
2123
-
2124
- <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
2125
-
2126
- The geometry numbers are all CORRECT — I re-derived every one (cells 46/38/46/42/54/34/46/54, because-lengths 19/27/19/23/11/31/19/11, spread 34..54 = 20 columns, row_len 100 on all 8 rows). Four wording/detail claims are wrong and must not ship as written:
2127
-
2128
- 1. FALSE AS STATED: "<code>recommend</code> is also the one result table in the find group that does not go through the width-aware shared <code>out.table()</code>." <code>cmd_search</code> does not call <code>out.table()</code> either — it calls <code>out.search_layout()</code> at <code>boost_cli/commands/discovery.py:219</code> and renders through <code>SearchLayout</code>. <code>out.table()</code> in the find group is called by <code>cmd_index</code> (:857), <code>cmd_discover</code> (:954), <code>_browse_plain</code> (:1091, used by <code>browse</code>) and <code>cmd_trending</code> (:1925, :1949). The correct claim: <b><code>recommend</code> is the only find-group result renderer that uses neither <code>out.table()</code> nor a frozen <code>SearchLayout</code>.</b>
2129
-
2130
- 2. TITLE OVERSTATES: "so neither column lines up" — and the evidence line "row_len 100 on all 8 — every row is right-flush, nothing is a column" contradicts itself. The <code>because:</code> column's RIGHT edge IS flush (col 100 at COLUMNS=100, col 120 at COLUMNS=120, on all 8 rows). What wanders is (a) the <code>because:</code> column's LEFT edge, 69..89, and (b) the description truncation point, 34..54.
2131
-
2132
- <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
2133
-
2134
- PROVENANCE (I checked; it partly softens the framing and the card should say so). <code>git blame</code> puts line 1062 in ff61dfeb, "fix(search): width-clamp &amp; truncate results — the D05 overflow fix (#33)", whose message states the intent: "clip each description to the remaining terminal width, so every result stays one scannable line <b>with its trailing tag (★ curated / because:) intact</b>." So preserving the trailing tag was deliberate; the per-row recompute is what that intent produced. The defect is drift, not carelessness: <code>search</code> was later rewritten onto the frozen <code>SearchLayout</code> (7f1a9a8d, "feat(ui): one design system across search and browse", #540) whose docstring states the opposite rule, and <code>recommend</code> was left on the 2026-07 scheme. Neither commit message nor any comment claims right-alignment of the reason tag as a design goal for <code>recommend</code>, so nothing in the tree defends the current shape — but a card that calls it an oversight without naming #33's stated intent is overclaiming.
2135
-
2136
- SCOPE OF MY REPRO. Measured only from the boost repo (detected stack: javascript, python · frameworks: pytest · also: ci) against the shared read-only 20-tap eval corpus at $TMPDIR/eval-home, with BOOST_NO_AI=1 (which suppresses the "AI picks" block — unrelated to the geometry). Which eight rows appear, and therefore the exact cell widths, depend on that corpus and that stack; the geometry itself is deterministic from :1062 and appears whenever the shown rows carry different <code>because:</code> sets.
2137
-
2138
- <b>Why it is worth doing.</b> <code>recommend</code> is the surface a new user hits before they know any skill names, and its output is a ragged block rather than a scannable list — the description truncation point jumps 20 columns row to row for reasons the reader cannot see (it is the length of the reason tag on the right). Two shipped design items (BOOST-D08, BOOST-D24) made <code>out.table()</code> width-aware for ~28 call sites; this one never adopted it, and the frozen-plan rule that <code>search</code> states in its own docstring is inverted here.
2139
-
2140
- <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
2108
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md">Write-up &middot; recommend-recomputes-its-columns-per-row.md</a></p>
2141
2109
  <div class="meta">
2142
2110
  <span class="m">Complexity <b>S</b></span>
2143
2111
  <span class="m">Impact <b>Low</b></span>
@@ -2253,46 +2221,9 @@ MITIGATIONS (why Med and not High): every failure path recovers in one command.
2253
2221
  </article>
2254
2222
 
2255
2223
  <article class="cap rcard" id="search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to">
2256
- <div class="head"><span class="pill planned">Planned</span><span class="cat">UX · Bug</span></div>
2224
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">UX · Bug</span></div>
2257
2225
  <h3>The search footer is the one unfitted line on a screen <code>search_layout</code> just fitted: 55 columns in a 40-column pane</h3>
2258
- <p><b>Measured.</b> The same command measures 55 columns in a 40-column pane in the field and 39 in the test that asserts it fits: <code>tests/functional/test_cli_pane_width.py::TestChromeOnlyCommandsFitAnyPane::test_search[40]</code> passes only because its fixture tap yields exactly one match, whose footer is <code>1 match · ranked by full-content BM25</code> = 39 — one column under the pane.
2259
-
2260
- <b>Reproduce it.</b>
2261
-
2262
- <code>cd &lt;repo&gt;</code><br>
2263
- <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
2264
- <code>COLUMNS=40 ./boost search "code review" 2&gt;&amp;1 | python3 -c "</code><br>
2265
- <code>import sys,re,unicodedata</code><br>
2266
- <code>A=re.compile(r'\033\[[0-9;]*m')</code><br>
2267
- <code>def vl(s):</code><br>
2268
- <code> s=A.sub('',s); return sum(0 if unicodedata.combining(c) else (2 if unicodedata.east_asian_width(c) in ('W','F') else 1) for c in s)</code><br>
2269
- <code>for i,l in enumerate(sys.stdin.read().splitlines()):</code><br>
2270
- <code> if vl(l)&gt;40: print('OVERFLOW line%d %d&gt;40: %r' % (i, vl(l), l))</code><br>
2271
- <code>"</code>
2272
-
2273
- <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
2274
-
2275
- Three citation errors; all measured numbers are right.
2276
-
2277
- 1. The footer emit is <code>boost_cli/commands/discovery.py:238</code>, not 239. 2. The <code>search_layout</code> docstring sentence is <code>boost_cli/core/output.py:665-667</code> (the whole docstring runs 653-668), not 680-682. Lines 680-682 are <code>desc_room()</code>'s body and the <code>tap_w</code> drop test. 3. "thirty lines later in the same module" is wrong: 238 -&gt; 258 is 20 lines. The finding's own <code>why_it_matters</code> already says "20 lines away", so the evidence contradicts itself.
2278
-
2279
- Not a correction but a scope fact the finding did not state: the *other* footer branch also overflows. At COLUMNS=40 with BM25 the widths are 39 (1 match, fits) / 41 (3) / 42 (35 matches, measured) / 55 (cap branch, measured) — i.e. the overflow is 1-15 cells, zero at exactly one match. The smart path pushes it further ("ranked by Claude Haiku relevance" = 59).
2280
-
2281
- <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
2282
-
2283
- Scope of my repro: the 20-tap eval corpus at $TMPDIR/eval-home for the field measurement, plus the real <code>tests/make_fixture.py</code> tap in a disposable HOME for the gate fixture. No network, no writes to the shared corpus. The defect is in the emit site, not the corpus — any query returning &gt;1 match reproduces it.
2284
-
2285
- Four things a card author must not get wrong:
2286
-
2287
- 1. <b><code>search_layout</code> does not violate its own docstring.</b> Its guarantee is over "every row assembled from the plan"; the footer is not a row assembled from the plan. The title's contrast is rhetorical and true as *juxtaposition* (the fitted rows sit directly above an unfitted line), but a card must not say "search_layout breaks its own guarantee." The law the footer *does* break is the repo's own, stated in <code>tests/functional/test_cli_pane_width.py</code>'s module docstring: "Commands whose whole output boost composed — <code>search</code>, <code>who</code>, <code>protocol</code> — are swept at panes down to 40 columns. Every line is chrome, so every line is boost's to fit."
2288
-
2289
- 2. <b>"The one unfitted line" holds only for a screen with results.</b> On the zero-result screen a different line overflows and <code>search_layout</code> never runs: <code>COLUMNS=40 ./boost search zzzqqxnothing</code> emits <code> → try \</code>boost discover zzzqqxnothing\<code> to search all of GitHub</code> at 62 columns. Fixing the footer does not make <code>boost search</code> pane-clean, and a card claiming it does will be wrong the first time someone types a miss.
2290
-
2291
- 3.
2292
-
2293
- <b>Why it is worth doing.</b> The footer is chrome (a count and a ranker name), so the wrap law permits fitting it — nothing on that line is data the user must copy. Leaving it unfitted means the one screen boost spent a whole frozen <code>SearchLayout</code> dataclass fitting still wraps on a narrow pane, and it wraps on the summary line, breaking the visual bottom edge of the result block. The fix is one call already used 20 lines away in the same file.
2294
-
2295
- <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
2226
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md">Write-up &middot; search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md</a></p>
2296
2227
  <div class="meta">
2297
2228
  <span class="m">Complexity <b>S</b></span>
2298
2229
  <span class="m">Impact <b>Low</b></span>
@@ -2302,47 +2233,9 @@ Four things a card author must not get wrong:
2302
2233
  </article>
2303
2234
 
2304
2235
  <article class="cap rcard" id="search-footer-overflows-40-col-pane-gate-passes-by-luck">
2305
- <div class="head"><span class="pill planned">Planned</span><span class="cat">UX · Bug</span></div>
2236
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">UX · Bug</span></div>
2306
2237
  <h3><code>boost search</code>'s footer overflows a 40-column pane by 2-15 cells, and the gate that swears it doesn't passes only because its fixture returns exactly one match</h3>
2307
- <p><b>Measured.</b> On the gate's <b>own</b> 5-item fixture at COLUMNS=40, changing the query from <code>brainstorming</code> to <code>workflow</code> — nothing else — takes <code>_widest(r.out)</code> from 40 (passes) to 41 (fails), because the footer goes from <code>1 match · ranked by full-content BM25</code> (39 cells) to <code>2 matches · ranked by full-content BM25</code> (41 cells): the gate's green is a property of the singular noun, not of the code. On the 20-tap corpus the same footer measures 55 cells at COLUMNS=40 (over by 15) via the <code>hit_cap</code> branch.
2308
-
2309
- <b>Reproduce it.</b>
2310
-
2311
- <code>cd &lt;repo&gt;</code><br>
2312
- <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
2313
- <code>.venv/bin/python - &lt;&lt;'PY'</code><br>
2314
- <code>import os,subprocess,sys</code><br>
2315
- <code>sys.path.insert(0,".")</code><br>
2316
- <code>from boost_cli.core import output</code><br>
2317
- <code>for C in (40,48,60,80,120):</code><br>
2318
- <code> env=dict(os.environ); env["COLUMNS"]=str(C)</code><br>
2319
- <code> r=subprocess.run(["./boost","search","code","review"],capture_output=True,text=True,env=env)</code><br>
2320
- <code> lines=r.stdout.splitlines()</code><br>
2321
- <code> w=max((output.visible_len(l) for l in lines),default=0)</code><br>
2322
- <code> print("COLUMNS=%-4d widest=%-4d %s" % (C,w,"OVER by %d"%(w-C) if w&gt;C else "ok"))</code><br>
2323
- <code> for l in lines:</code><br>
2324
- <code> if output.visible_len(l)&gt;C: print(" %3d | %s" % (output.visible_len(l), l))</code><br>
2325
- <code>for q in (["quarkus"],["minio"]):</code><br>
2326
- <code> env=dict(os.environ); env["COLUMNS"]="40"</code><br>
2327
-
2328
-
2329
- <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
2330
-
2331
- Three of the finding's file:line refs are stale against current HEAD (9b70fc8e). A card author copying them lands in the wrong place:
2332
-
2333
- 1. <code>hit_cap = len(hits) &gt;= k</code> is at <b>discovery.py:161</b>, not 157. 2. <code>k = max(60, args.limit * 4)</code> is at <b>discovery.py:153</b>, not 150. 3. <code>out.info(out.role(footer, "muted"))</code> is at <b>discovery.py:238</b>, not 239. (<code>discovery.py:234-237</code> for the footer assembly IS correct — 234 is the cap branch, 236-237 the plain branch.) 4. The test-file docstring quote is at <b>test_cli_pane_width.py:15-17</b>, not 14-17 (line 14 is blank).
2334
-
2335
- 5. "Every other count on any corpus overflows" is over-scoped. The 8-cell count budget (40 - 2 indent - 3 separator - 27 for "ranked by full-content BM25") is specific to the <b>key-free BM25 label</b>. <code>rag.py:1282-1287</code> ships two other labels and the envelope moves in BOTH directions: - <code>dense vectors</code> → "ranked by dense vectors" is 23, budget 12, so counts up to <code>9999 matches</code> fit at 40. A dense-backed install's plain branch mostly does not overflow. - <code>hybrid RRF (BM25 + dense)</code> → "ranked by hybrid RRF (BM25 + dense)" is 35, budget 0, so <b>nothing</b> fits at COLUMNS=40 — including <code>1 match</code>.
2336
-
2337
- <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
2338
-
2339
- SCOPE OF MY REPRO - The 55 / 54 / 42 / 41 numbers come from the shared 20-tap eval corpus at $TMPDIR/eval-home. They are "how bad on a real catalogue", corpus-dependent. - The load-bearing half is corpus-INDEPENDENT: the arithmetic (2 + len("N match(es)") + 3 + len("ranked by &lt;label&gt;")) and the fixture proof above, both reproducible with only <code>tests/make_fixture.py</code>. A card can be written without any external corpus. - The gate currently passes (4 passed, exit 0). I did not edit any source.
2340
-
2341
- DEDUPE — clean, not carded. I read <code>long-hints-overflow-narrow-panes.md</code> (#555) in full: it enumerates its 11+1 offenders by name (doctor 127, AI-fallback 101, protocol 100, changelog 93, who 87, search's *extra hint* 82, simulate 97) and its "Still open" section names only doctor's ·-joined summaries at 71 and protocol's <code>try it:</code> at 59 — the search footer is absent, and could not be present since 74c4aac9 wrote the long branch after #555. <code>audit-search-findings.md</code> (#770) specifies the footer's new wording and never measures a pane. <code>search-and-browse-visual-refresh.md</code> scopes its 40-column claim to <code>format_search_row</code>, which my measurement confirms still holds (every result row fits at 40 and 48). Also checked BOOST-D23, BOOST-D24, BOOST-D27, cli-output-ignored-the-terminal, cli-audit-2026-08-full-sweep, audit-output-wrap-tokens…, audit-out-table-clips… — none mention search's footer.
2342
-
2343
- <b>Why it is worth doing.</b> A required functional gate is asserting an invariant that is false for every real user, and it stays green because the fixture happens to hit the one count that fits. Anyone reading <code>test_cli_pane_width.py</code> or <code>long-hints-overflow-narrow-panes</code> ("eight overflowing lines became two, and the two are the data lines") believes <code>boost search</code> is width-clean at 40 columns; on a real catalogue the footer wraps in a split pane or narrow tmux window, which is exactly the class of regression PR 555 built the sweep to catch. The footer is chrome by the card's own definition — a match count and an engine label, not data like <code>pulse</code>'s paths or <code>fingerprint</code>'s hash — so nothing exempts it.
2344
-
2345
- <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
2238
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md">Write-up &middot; search-footer-overflows-40-col-pane-gate-passes-by-luck.md</a></p>
2346
2239
  <div class="meta">
2347
2240
  <span class="m">Complexity <b>M</b></span>
2348
2241
  <span class="m">Impact <b>Med</b></span>
@@ -6300,36 +6193,9 @@ Found by the 2026-08 CLI audit (cluster help-examples-sweep); repro in the audit
6300
6193
  </article>
6301
6194
 
6302
6195
  <article class="cap rcard" id="audit-stale-prose-after-shipped-changes-catalog-export-live-discov">
6303
- <div class="head"><span class="pill planned">Planned</span><span class="cat">Docs · Drift</span></div>
6196
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Docs · Drift</span></div>
6304
6197
  <h3>Stale prose after shipped changes: <code>catalog --export</code>, live discover, 464 count, Apache-2.0</h3>
6305
- <p>Four patches of prose describe the repo as it was before a shipped change, each verified against the current
6306
- tree. <b>A documented command that does not run:</b> <code>docs/security-design.md:35</code> says
6307
- <em>a <code>boost catalog export</code> tarball</em>; running it prints <code>Error: one of the arguments
6308
- --export --import --show is required</code> and exits 2 &mdash; the flag is <code>--export</code>.
6309
- <b>Pre-live-search discover:</b> <code>docs/index.html:877</code> (<em><code>boost discover</code> indexes
6310
- 10,000+ skills across GitHub</em>) and <code>:940</code> (<em>build the GitHub-wide index &hellip; browse it with
6311
- <code>boost discover</code></em>) predate the shipped change that made a query hit GitHub Code Search live; the
6312
- index now only backs bare <code>discover</code> and <code>--local</code>, exactly as the command's own help says.
6313
-
6314
- <b>A hard-coded count, off by one and spreading:</b> README:151, <code>semantic-search.md:64</code> and
6315
- <code>quickstart.py:39</code> say <code>--catalog</code> taps <b>463</b> registries;
6316
- <code>registries.json</code> holds <b>464</b> non-list_only rows of 487, and <code>quickstart --dry-run
6317
- --catalog</code> on the 20-tap fixture prints <code>would tap 445 registries</code> (445&nbsp;+&nbsp;19 already
6318
- tapped&nbsp;=&nbsp;464). Verification found more copies than the auditor: README:211,
6319
- <code>quickstart.py:65</code> and CLAUDE.md:183&ndash;184 and :500. <b>A licence rule contradicting every
6320
- file:</b> CLAUDE.md:276 still says headers open with <code>SPDX-License-Identifier: GPL-3.0-only</code>, but
6321
- every source file greps to <code>Apache-2.0</code>, LICENSE is the Apache License 2.0, and
6322
- <code>scripts/add_spdx_headers.py</code> already writes Apache-2.0 &mdash; the CLAUDE.md paragraph (and its
6323
- <code>-only</code>&rarr;<code>-or-later</code> example) is the sole stale statement.
6324
-
6325
- Fix as one doc-only PR: <code>security-design.md:35</code> &rarr; <code>boost catalog --export</code>; rewrite
6326
- the two <code>index.html</code> sentences to live-GitHub-search plus <code>boost index</code>/<code>--local</code>;
6327
- replace the literal 463 with <em>every catalogued registry</em> (or 464) in README.md:151/211,
6328
- <code>semantic-search.md:64</code>, <code>quickstart.py:39/65</code> and CLAUDE.md:183/500 &mdash; a number
6329
- <code>scripts/build_registries.py</code> changes should not be hard-coded in prose; and correct the CLAUDE.md
6330
- licence paragraph to Apache-2.0. <code>security-design.md</code> and <code>semantic-search.md</code> are already
6331
- in <code>prose-lint.yml</code>'s vale list, so no lint wiring is needed; <code>docs/commands.html</code> is
6332
- untouched (no parser changes). Found by the 2026-08 CLI audit (cluster stale-prose-docs); repro in the audit log.</p>
6198
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md">Write-up &middot; audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md</a></p>
6333
6199
  <div class="meta">
6334
6200
  <span class="m">Complexity <b>S</b></span>
6335
6201
  <span class="m">Impact <b>Low</b></span>
@@ -6339,40 +6205,9 @@ untouched (no parser changes). Found by the 2026-08 CLI audit (cluster stale-pro
6339
6205
  </article>
6340
6206
 
6341
6207
  <article class="cap rcard" id="audit-root-findings">
6342
- <div class="head"><span class="pill planned">Planned</span><span class="cat">CLI · Bug</span></div>
6208
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">CLI · Bug</span></div>
6343
6209
  <h3>boost ROOT: CLI audit findings (2026-08)</h3>
6344
- <p><b>EPIPE leaks past main's own handler.</b> <code>boost --help | (exec 0&lt;&amp;-; sleep 0.3)</code>
6345
- exits <b>120</b> with <em>&ldquo;Exception ignored on flushing sys.stdout: BrokenPipeError&rdquo;</em>
6346
- &mdash; 3/3 runs, and <code>count</code>, <code>taps</code> and <code>--version</code> leak the same way.
6347
- <code>cli.py:327-331</code> deliberately catches BrokenPipeError and returns 0, but stdout is never
6348
- flushed inside the try, so any output that fits the stdio buffer raises at interpreter exit &mdash; and
6349
- the <code>--help</code>/<code>--version</code> early returns (<code>cli.py:292-302</code>) sit before
6350
- the try with no handler at all. Fix: cover the early returns, flush <code>sys.stdout</code> inside the
6351
- try, and <code>os.dup2</code> a devnull fd over stdout in the handler so the exit flush cannot raise.
6352
-
6353
- <br><br><b>Help routing rejects main's own aliases.</b> <code>boost help --help</code> &rarr;
6354
- <em>&ldquo;unknown command: --help / hint: did you mean: heal?&rdquo;</em> exit 2;
6355
- <code>boost help version</code> suggests <em>verify</em> while <code>boost version</code> works;
6356
- even <code>boost help help</code> fails. The aliases live only in <code>cli.main</code>
6357
- (<code>cli.py:292-302</code>) and <code>print_command_help</code> resolves against COMMANDS alone,
6358
- then difflib-guesses any token &mdash; dash-prefixed ones included. And <code>boost --help</code>
6359
- documents none of the working global flags (<code>-V</code>/<code>-v</code>/<code>--debug</code>/<code>-q</code>).
6360
- Fix: short-circuit the aliases in <code>print_command_help</code> before difflib, say
6361
- <em>unknown option</em> for dash tokens in <code>_unknown</code> (<code>cli.py:231-236</code>), and add
6362
- one dim Options line under Usage in <code>print_help</code>.
6363
-
6364
- <br><br><b>The <code>./boost</code> launcher still gates at Python 3.9</b> &mdash; tuple
6365
- (<code>boost:27</code>), hint text (<code>boost:37</code>) and header comment (<code>boost:5</code>) all
6366
- say 3.9+ while <code>pyproject.toml:22</code> requires <code>&gt;=3.12</code>. On a stock macOS whose
6367
- only <code>python3</code> is 3.9 the launcher selects it and the user gets a SyntaxError from
6368
- <code>core/workflows.py</code>'s match statements instead of the friendly hint. The shipped
6369
- <em>python-floor-moves-to-312</em> item enumerated every floor touchpoint and missed this one. Fix:
6370
- bump all three sites to 3.12 and add a unit test pinning the launcher's floor to
6371
- <code>requires-python</code>. README already says 3.12+ &mdash; no doc change needed; none of the three
6372
- fixes touches a COMMANDS row, so <code>docs/commands.html</code> is unaffected.
6373
-
6374
- <br><br>Found by the 2026-08 CLI audit (clusters <code>broken-pipe-exit</code>,
6375
- <code>help-routing-aliases</code>, <code>launcher-python-floor</code>); repro in the audit log.</p>
6210
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/audit-root-findings.md">Write-up &middot; audit-root-findings.md</a></p>
6376
6211
  <div class="meta">
6377
6212
  <span class="m">Complexity <b>S</b></span>
6378
6213
  <span class="m">Impact <b>Low</b></span>
@@ -32,7 +32,7 @@ thing boost does, and the code path treats it that way.
32
32
  | Boundary | Trusted side | Untrusted side |
33
33
  |---|---|---|
34
34
  | **Tap content** | boost's own code | every byte of a cloned registry: file names, paths, YAML frontmatter, body text |
35
- | **Catalogue bundle** | the importing machine | a `boost catalog export` tarball received from elsewhere |
35
+ | **Catalogue bundle** | the importing machine | a `boost catalog --export` tarball received from elsewhere |
36
36
  | **The agent** | — | boost cannot police what an agent does with a file it has loaded |
37
37
  | **The toolchain** | the pinned hashes in `requirements/` | PyPI, and anything it resolves to |
38
38
  | **CI** | the workflow files in this repo | every third-party action, and anything a fork's PR can influence |