boost-skill-cli 1.2.118__tar.gz → 1.2.119__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 (1046) hide show
  1. {boost_skill_cli-1.2.118/boost_skill_cli.egg-info → boost_skill_cli-1.2.119}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/bmad.py +97 -37
  4. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/bmad.py +42 -15
  5. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/hookhost.py +26 -0
  6. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  7. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/bmad.md +12 -2
  8. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/commands.html +4 -3
  9. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +3 -3
  10. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap.html +2 -56
  11. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_bmad_all_hosts.py +88 -0
  12. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_bmad.py +44 -6
  13. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_bmad_core.py +43 -0
  14. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_hookhost.py +26 -0
  15. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.gitattributes +0 -0
  16. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.gitignore +0 -0
  17. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.gitleaks.toml +0 -0
  18. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.htmlvalidate.json +0 -0
  19. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.lighthouserc.json +0 -0
  20. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.lycheeignore +0 -0
  21. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.markdownlint-cli2.jsonc +0 -0
  22. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.pre-commit-config.yaml +0 -0
  23. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.stylelintrc.json +0 -0
  24. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.vale/styles/boost/AIWriting.yml +0 -0
  25. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.vale/styles/boost/Terminology.yml +0 -0
  26. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  27. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/.vale.ini +0 -0
  28. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/CLAUDE.md +0 -0
  29. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/CODE_OF_CONDUCT.md +0 -0
  30. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/CONTRIBUTING.md +0 -0
  31. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/DCO +0 -0
  32. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/GOVERNANCE.md +0 -0
  33. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/LICENSE +0 -0
  34. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/MAINTAINERS.md +0 -0
  35. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/MANIFEST.in +0 -0
  36. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/Makefile +0 -0
  37. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/README.md +0 -0
  38. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/SECURITY.md +0 -0
  39. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/SUPPORT.md +0 -0
  40. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost +0 -0
  41. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/__init__.py +0 -0
  42. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/__main__.py +0 -0
  43. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/cli.py +0 -0
  44. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/cliparse.py +0 -0
  45. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/__init__.py +0 -0
  46. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/_common.py +0 -0
  47. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/configuration.py +0 -0
  48. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/discovery.py +0 -0
  49. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/hooks.py +0 -0
  50. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/info.py +0 -0
  51. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/intelligence.py +0 -0
  52. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/pkg.py +0 -0
  53. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/quality.py +0 -0
  54. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/quickstart.py +0 -0
  55. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/run.py +0 -0
  56. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/safety.py +0 -0
  57. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/taps.py +0 -0
  58. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/commands/team.py +0 -0
  59. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/__init__.py +0 -0
  60. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/adapters.py +0 -0
  61. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/agents.py +0 -0
  62. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/ai.py +0 -0
  63. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/aihost.py +0 -0
  64. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/archive.py +0 -0
  65. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/bootstrap.py +0 -0
  66. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/browse.py +0 -0
  67. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/builtin.py +0 -0
  68. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/capabilities.py +0 -0
  69. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/catalog.py +0 -0
  70. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/catalogbundle.py +0 -0
  71. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/chat.py +0 -0
  72. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/claude_settings.py +0 -0
  73. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/cohort.py +0 -0
  74. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/complete.py +0 -0
  75. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/config.py +0 -0
  76. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/dense.py +0 -0
  77. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/deps.py +0 -0
  78. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/discovery.py +0 -0
  79. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/ed25519.py +0 -0
  80. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/embed.py +0 -0
  81. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/faithfulness.py +0 -0
  82. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/frontmatter.py +0 -0
  83. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/gitutil.py +0 -0
  84. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/imperative.py +0 -0
  85. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/injectscan.py +0 -0
  86. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/installscan.py +0 -0
  87. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/integrity.py +0 -0
  88. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/journal.py +0 -0
  89. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/jsonstate.py +0 -0
  90. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/localembed.py +0 -0
  91. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/lockfile.py +0 -0
  92. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/logs.py +0 -0
  93. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/mcp.py +0 -0
  94. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/mcpdecl.py +0 -0
  95. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/mcphost.py +0 -0
  96. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/minisign.py +0 -0
  97. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/nethttp.py +0 -0
  98. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/output.py +0 -0
  99. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/paths.py +0 -0
  100. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/policy.py +0 -0
  101. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/projectlock.py +0 -0
  102. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/provenance.py +0 -0
  103. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/rag.py +0 -0
  104. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/registry.py +0 -0
  105. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/report.py +0 -0
  106. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/resolve.py +0 -0
  107. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/rules.py +0 -0
  108. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/scopes.py +0 -0
  109. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/secretscan.py +0 -0
  110. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/selfupdate.py +0 -0
  111. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/serve.py +0 -0
  112. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/shards.py +0 -0
  113. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/stackprobe.py +0 -0
  114. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/staleness.py +0 -0
  115. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/store.py +0 -0
  116. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/trustaudit.py +0 -0
  117. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/typedvalue.py +0 -0
  118. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/typosquat.py +0 -0
  119. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/updatediff.py +0 -0
  120. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/util.py +0 -0
  121. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/core/workflows.py +0 -0
  122. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/data/registries.json +0 -0
  123. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/data/rules/boost-first.mdc +0 -0
  124. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/errors.py +0 -0
  125. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_cli/spin.py +0 -0
  126. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_langchain/__init__.py +0 -0
  127. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_langchain/_compat.py +0 -0
  128. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_langchain/graph.py +0 -0
  129. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_langchain/loader.py +0 -0
  130. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_langchain/py.typed +0 -0
  131. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_langchain/retriever.py +0 -0
  132. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
  133. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  134. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  135. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_skill_cli.egg-info/requires.txt +0 -0
  136. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/boost_skill_cli.egg-info/top_level.txt +0 -0
  137. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/codecov.yml +0 -0
  138. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/.claude/settings.local.json +0 -0
  139. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/DEBUGGING.md +0 -0
  140. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/adapters.html +0 -0
  141. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/architecture/README.md +0 -0
  142. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/architecture/c4-components-core.md +0 -0
  143. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/architecture/c4-containers.md +0 -0
  144. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/architecture/c4-context.md +0 -0
  145. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/architecture/c4-dynamic-install.md +0 -0
  146. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/gifs/distill.gif +0 -0
  147. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/gifs/doctor.gif +0 -0
  148. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/gifs/explain.gif +0 -0
  149. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/gifs/hooks.gif +0 -0
  150. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/gifs/install.gif +0 -0
  151. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/gifs/pulse.gif +0 -0
  152. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/gifs/search.gif +0 -0
  153. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/gifs/tap.gif +0 -0
  154. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/tapes/distill.tape +0 -0
  155. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/tapes/doctor.tape +0 -0
  156. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/tapes/explain.tape +0 -0
  157. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/tapes/hooks.tape +0 -0
  158. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/tapes/install.tape +0 -0
  159. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/tapes/pulse.tape +0 -0
  160. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/tapes/search.tape +0 -0
  161. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel/tapes/tap.tape +0 -0
  162. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/carousel.html +0 -0
  163. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/chat.html +0 -0
  164. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/code-review.md +0 -0
  165. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/commit-audit.md +0 -0
  166. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/demo-index.json +0 -0
  167. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/demo.gif +0 -0
  168. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/demo.html +0 -0
  169. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/demo.tape +0 -0
  170. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/dependencies.md +0 -0
  171. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/design-roadmap.html +0 -0
  172. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/eval-latest.json +0 -0
  173. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/eval.html +0 -0
  174. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/index.html +0 -0
  175. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/langchain.html +0 -0
  176. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/mcp-hub.html +0 -0
  177. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/openssf-badge.md +0 -0
  178. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/openssf-playbook.md +0 -0
  179. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/rag-architecture.md +0 -0
  180. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D01.md +0 -0
  181. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D02.md +0 -0
  182. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D03.md +0 -0
  183. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D04.md +0 -0
  184. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D05.md +0 -0
  185. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D06.md +0 -0
  186. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D07.md +0 -0
  187. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D08.md +0 -0
  188. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D09.md +0 -0
  189. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D10.md +0 -0
  190. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D11.md +0 -0
  191. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D12.md +0 -0
  192. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D13.md +0 -0
  193. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D14.md +0 -0
  194. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D15.md +0 -0
  195. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D16.md +0 -0
  196. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D17.md +0 -0
  197. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D18.md +0 -0
  198. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D19.md +0 -0
  199. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D20.md +0 -0
  200. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D21.md +0 -0
  201. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D22.md +0 -0
  202. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D23.md +0 -0
  203. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D24.md +0 -0
  204. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D25.md +0 -0
  205. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D26.md +0 -0
  206. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/BOOST-D27.md +0 -0
  207. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  208. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  209. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  210. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  211. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  212. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  213. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  214. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  215. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  216. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  217. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  218. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  219. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  220. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  221. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  222. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  223. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-attest-findings.md +0 -0
  224. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-audit-findings.md +0 -0
  225. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  226. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-browse-findings.md +0 -0
  227. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  228. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  229. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  230. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  231. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-chat-findings.md +0 -0
  232. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  233. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  234. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  235. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-completions-findings.md +0 -0
  236. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-config-findings.md +0 -0
  237. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  238. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-context-findings.md +0 -0
  239. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  240. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  241. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-create-findings.md +0 -0
  242. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  243. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-deps-findings.md +0 -0
  244. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-discover-findings.md +0 -0
  245. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  246. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  247. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-drift-findings.md +0 -0
  248. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  249. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-edit-findings.md +0 -0
  250. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  251. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-explain-findings.md +0 -0
  252. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-export-findings.md +0 -0
  253. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  254. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  255. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  256. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  257. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  258. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-health-findings.md +0 -0
  259. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  260. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  261. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-import-findings.md +0 -0
  262. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-index-findings.md +0 -0
  263. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  264. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  265. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-install-findings.md +0 -0
  266. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  267. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  268. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-lint-findings.md +0 -0
  269. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-log-findings.md +0 -0
  270. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  271. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  272. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  273. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  274. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  275. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  276. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  277. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  278. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  279. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  280. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  281. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-policy-findings.md +0 -0
  282. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-preview-findings.md +0 -0
  283. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-profile-findings.md +0 -0
  284. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  285. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  286. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  287. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  288. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  289. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  290. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  291. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  292. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  293. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-replay-findings.md +0 -0
  294. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-root-findings.md +0 -0
  295. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  296. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-run-findings.md +0 -0
  297. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  298. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-search-findings.md +0 -0
  299. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  300. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  301. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  302. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  303. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  304. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  305. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  306. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  307. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-sync-findings.md +0 -0
  308. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-tag-findings.md +0 -0
  309. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  310. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-tap-findings.md +0 -0
  311. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-taps-findings.md +0 -0
  312. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  313. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-test-findings.md +0 -0
  314. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-trust-findings.md +0 -0
  315. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  316. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  317. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-untap-findings.md +0 -0
  318. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-update-findings.md +0 -0
  319. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  320. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-verify-findings.md +0 -0
  321. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/audit-who-findings.md +0 -0
  322. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  323. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  324. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  325. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  326. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  327. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  328. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  329. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  330. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  331. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  332. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  333. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  334. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  335. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  336. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  337. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/boost-first-rule.md +0 -0
  338. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  339. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  340. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/branch-current-gate.md +0 -0
  341. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  342. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  343. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  344. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  345. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  346. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  347. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  348. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  349. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  350. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  351. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  352. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  353. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  354. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  355. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  356. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  357. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  358. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/cli-command-audit.md +0 -0
  359. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  360. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  361. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  362. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  363. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/command-carousel-page.md +0 -0
  364. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  365. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  366. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  367. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  368. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  369. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  370. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  371. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  372. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  373. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  374. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  375. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  376. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  377. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  378. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  379. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  380. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  381. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  382. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  383. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  384. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  385. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  386. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  387. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  388. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  389. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  390. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  391. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  392. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  393. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  394. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  395. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  396. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  397. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  398. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  399. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  400. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  401. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  402. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  403. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  404. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  405. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  406. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  407. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  408. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  409. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  410. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  411. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  412. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  413. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  414. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  415. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  416. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  417. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  418. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  419. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  420. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  421. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  422. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  423. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  424. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  425. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  426. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  427. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  428. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  429. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  430. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  431. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  432. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  433. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  434. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  435. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  436. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/github-community-health-files.md +0 -0
  437. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  438. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  439. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  440. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  441. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  442. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  443. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  444. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  445. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  446. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  447. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  448. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  449. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  450. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  451. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  452. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  453. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  454. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  455. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  456. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  457. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  458. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  459. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  460. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  461. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  462. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  463. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  464. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  465. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  466. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  467. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  468. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  469. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  470. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  471. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  472. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  473. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  474. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  475. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  476. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  477. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  478. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  479. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  480. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  481. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  482. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  483. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  484. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  485. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  486. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  487. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  488. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  489. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  490. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  491. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  492. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  493. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  494. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  495. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  496. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  497. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  498. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  499. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  500. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  501. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  502. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  503. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  504. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  505. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  506. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  507. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  508. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  509. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  510. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  511. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  512. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  513. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  514. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  515. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  516. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  517. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  518. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  519. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  520. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  521. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  522. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/openssf-playbook.md +0 -0
  523. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/openssf-silver.md +0 -0
  524. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  525. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  526. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  527. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  528. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  529. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  530. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  531. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  532. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  533. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  534. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  535. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  536. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  537. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  538. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  539. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  540. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  541. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  542. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  543. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  544. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  545. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  546. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  547. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  548. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  549. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  550. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  551. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  552. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  553. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  554. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  555. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  556. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  557. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  558. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  559. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  560. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  561. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  562. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  563. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  564. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  565. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  566. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  567. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  568. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/relicence-apache-2.md +0 -0
  569. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  570. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  571. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  572. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  573. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  574. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  575. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  576. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  577. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  578. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  579. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  580. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  581. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  582. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  583. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  584. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  585. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  586. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  587. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  588. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  589. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  590. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  591. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  592. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  593. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  594. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  595. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  596. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  597. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  598. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  599. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  600. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  601. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  602. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  603. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  604. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  605. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  606. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  607. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  608. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  609. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  610. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  611. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  612. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  613. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  614. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  615. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  616. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  617. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  618. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  619. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  620. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  621. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  622. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  623. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  624. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  625. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  626. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  627. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  628. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  629. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  630. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  631. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  632. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  633. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  634. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  635. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  636. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  637. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  638. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  639. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  640. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  641. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  642. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  643. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  644. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  645. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  646. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  647. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  648. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  649. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  650. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  651. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  652. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  653. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  654. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  655. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  656. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  657. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  658. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  659. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  660. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  661. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  662. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  663. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  664. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  665. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  666. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  667. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  668. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  669. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  670. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/workspace-scope-install.md +0 -0
  671. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/zip-strict-audit.md +0 -0
  672. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  673. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  674. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/security-design.md +0 -0
  675. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/semantic-search.md +0 -0
  676. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  677. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/verifying-releases.md +0 -0
  678. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/vex/meta.md +0 -0
  679. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/vex/openvex.json +0 -0
  680. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  681. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  682. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  683. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  684. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/eslint.config.mjs +0 -0
  685. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/README.md +0 -0
  686. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/__init__.py +0 -0
  687. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/baseline.json +0 -0
  688. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/faithfulness.py +0 -0
  689. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/golden_set.json +0 -0
  690. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/make_corpus.py +0 -0
  691. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/make_golden.py +0 -0
  692. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/metrics.py +0 -0
  693. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/publish_golden_dataset.py +0 -0
  694. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/evals/run_evals.py +0 -0
  695. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/examples/README.md +0 -0
  696. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/examples/adapt-demo.sh +0 -0
  697. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/examples/boost-run-prototype.sh +0 -0
  698. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/index.html +0 -0
  699. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/noxfile.py +0 -0
  700. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/pyproject.toml +0 -0
  701. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/coverage-tools.in +0 -0
  702. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/coverage-tools.txt +0 -0
  703. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/lint-tools.in +0 -0
  704. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/lint-tools.txt +0 -0
  705. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/mutation-tools.in +0 -0
  706. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/mutation-tools.txt +0 -0
  707. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/platform-pins.lock +0 -0
  708. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/release-tools.in +0 -0
  709. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/release-tools.txt +0 -0
  710. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/test-tools.in +0 -0
  711. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/requirements/test-tools.txt +0 -0
  712. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/a11y_check.py +0 -0
  713. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/add_spdx_headers.py +0 -0
  714. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/bench_cli.sh +0 -0
  715. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/build_command_reference.py +0 -0
  716. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/build_demo_index.py +0 -0
  717. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/build_registries.py +0 -0
  718. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/build_roadmap.py +0 -0
  719. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/build_scale_corpus.py +0 -0
  720. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/build_vex.py +0 -0
  721. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/check_anchors.py +0 -0
  722. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/check_branch_current.py +0 -0
  723. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/check_dco.py +0 -0
  724. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/check_licenses.py +0 -0
  725. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/check_reproducible.py +0 -0
  726. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/check_required_checks.py +0 -0
  727. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/ensure_eval_corpus.sh +0 -0
  728. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/eval_corpus.py +0 -0
  729. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/eval_explain.py +0 -0
  730. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/eval_gate.py +0 -0
  731. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/eval_recommend.py +0 -0
  732. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/eval_retrieval.py +0 -0
  733. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/eval_stats_summary.py +0 -0
  734. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/eval_tools.py +0 -0
  735. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/import_budget.py +0 -0
  736. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/lock_toolchain.py +0 -0
  737. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/measure_near_duplicate_bound.py +0 -0
  738. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/measure_registry.py +0 -0
  739. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/mutation_gate.py +0 -0
  740. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/mutation_shards.py +0 -0
  741. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/mutation_weights.json +0 -0
  742. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/normalize_sdist.py +0 -0
  743. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/page_budget.py +0 -0
  744. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/perf_gate.py +0 -0
  745. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/post_deploy_smoke.py +0 -0
  746. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/publish_eval_json.py +0 -0
  747. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/publish_shards.py +0 -0
  748. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/release_guard.py +0 -0
  749. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/release_preflight.py +0 -0
  750. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/serve_docs.py +0 -0
  751. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/scripts/shard_plan.py +0 -0
  752. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/setup.cfg +0 -0
  753. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/sonar-project.properties +0 -0
  754. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/style/README.md +0 -0
  755. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/style/boost.css +0 -0
  756. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/style/boost.js +0 -0
  757. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/style/demo.html +0 -0
  758. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/adapt.feature +0 -0
  759. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/browse.feature +0 -0
  760. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/count.feature +0 -0
  761. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/discover.feature +0 -0
  762. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/doctor.feature +0 -0
  763. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/environment.py +0 -0
  764. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/explain.feature +0 -0
  765. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/index.feature +0 -0
  766. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/install.feature +0 -0
  767. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/list.feature +0 -0
  768. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/mcp.feature +0 -0
  769. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/search.feature +0 -0
  770. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/steps/cli_steps.py +0 -0
  771. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/steps/discovery_steps.py +0 -0
  772. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/steps/mcp_steps.py +0 -0
  773. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/bdd/features/steps/quality_steps.py +0 -0
  774. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/conftest.py +0 -0
  775. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/baseline.json +0 -0
  776. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/explain.jsonl +0 -0
  777. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  778. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/golden-natural.jsonl +0 -0
  779. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/golden.jsonl +0 -0
  780. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/recommend.jsonl +0 -0
  781. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/taps-scale.txt +0 -0
  782. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/taps.txt +0 -0
  783. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/eval/tool_calls.jsonl +0 -0
  784. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  785. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_bmad_personas_scope.py +0 -0
  786. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_capabilities_policy.py +0 -0
  787. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_adapt.py +0 -0
  788. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_catalog.py +0 -0
  789. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_chat.py +0 -0
  790. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_configuration.py +0 -0
  791. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_discovery.py +0 -0
  792. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_hooks.py +0 -0
  793. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_hooks_gemini.py +0 -0
  794. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_info.py +0 -0
  795. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_intelligence.py +0 -0
  796. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_json_reports.py +0 -0
  797. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_pane_width.py +0 -0
  798. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_pkg.py +0 -0
  799. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_quality.py +0 -0
  800. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_quickstart.py +0 -0
  801. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_tap_pins.py +0 -0
  802. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_taps.py +0 -0
  803. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_cli_team.py +0 -0
  804. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  805. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  806. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_everyday_loop.py +0 -0
  807. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_integrity_enforce.py +0 -0
  808. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_kind_conformance.py +0 -0
  809. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_property_parsers.py +0 -0
  810. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_recommend_because_is_true.py +0 -0
  811. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_reports_match_reality.py +0 -0
  812. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_run.py +0 -0
  813. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_tap_signing.py +0 -0
  814. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/functional/test_workspace_scope.py +0 -0
  815. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/README.md +0 -0
  816. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  817. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  818. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  819. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  820. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  821. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  822. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  823. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  824. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  825. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  826. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  827. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  828. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  829. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  830. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  831. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  832. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  833. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  834. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  835. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  836. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  837. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  838. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  839. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/fuzz_frontmatter.py +0 -0
  840. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/fuzz/fuzz_registry.py +0 -0
  841. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/langchain/conftest.py +0 -0
  842. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/langchain/test_graph.py +0 -0
  843. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/langchain/test_loader.py +0 -0
  844. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/langchain/test_retriever.py +0 -0
  845. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/make_fixture.py +0 -0
  846. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/perf/test_benchmarks.py +0 -0
  847. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/smoke.sh +0 -0
  848. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_a11y_check.py +0 -0
  849. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_action_pin_lockstep.py +0 -0
  850. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_adapters.py +0 -0
  851. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_adapters_multi.py +0 -0
  852. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_adapters_runner.py +0 -0
  853. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_agents.py +0 -0
  854. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_ai.py +0 -0
  855. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_aihost.py +0 -0
  856. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_archive.py +0 -0
  857. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_boost_first_offer.py +0 -0
  858. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_bootstrap.py +0 -0
  859. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_bot_pr_dco.py +0 -0
  860. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_branch_current.py +0 -0
  861. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_browse.py +0 -0
  862. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_builtin.py +0 -0
  863. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_capabilities.py +0 -0
  864. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_catalog.py +0 -0
  865. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_catalog_keyword_words.py +0 -0
  866. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_catalogbundle.py +0 -0
  867. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_chat.py +0 -0
  868. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_check_anchors.py +0 -0
  869. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_check_dco.py +0 -0
  870. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_check_licenses.py +0 -0
  871. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_check_reproducible.py +0 -0
  872. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_claude_settings.py +0 -0
  873. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_clean_internal_cache.py +0 -0
  874. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_cli_update_shards.py +0 -0
  875. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_cliparse.py +0 -0
  876. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_codeql_analysis_key.py +0 -0
  877. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_cohort.py +0 -0
  878. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_command_reference_fresh.py +0 -0
  879. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_community_health_files.py +0 -0
  880. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_compact.py +0 -0
  881. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_complete.py +0 -0
  882. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_complete_rc_block.py +0 -0
  883. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_config.py +0 -0
  884. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_content_dedupe.py +0 -0
  885. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_content_identity.py +0 -0
  886. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  887. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_crash_redaction.py +0 -0
  888. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dedup_trust.py +0 -0
  889. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_demo_index.py +0 -0
  890. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense.py +0 -0
  891. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  892. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_embed_dedupe.py +0 -0
  893. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_entry_reuse.py +0 -0
  894. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_entry_vectors.py +0 -0
  895. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_fallback.py +0 -0
  896. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_fix_hint.py +0 -0
  897. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_progress.py +0 -0
  898. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_quantized.py +0 -0
  899. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_ready_order.py +0 -0
  900. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_shard_real_schema.py +0 -0
  901. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  902. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_shards.py +0 -0
  903. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_status.py +0 -0
  904. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_status_cheap.py +0 -0
  905. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dense_vector_dedupe.py +0 -0
  906. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_dependabot_config.py +0 -0
  907. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_deps.py +0 -0
  908. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_discovery.py +0 -0
  909. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_distill_merge.py +0 -0
  910. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_docs_pages_linked.py +0 -0
  911. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_docsite_chrome.py +0 -0
  912. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_doctor_output_polish.py +0 -0
  913. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_drift_hint.py +0 -0
  914. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_ed25519.py +0 -0
  915. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_embed.py +0 -0
  916. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_embed_local.py +0 -0
  917. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_embed_truncated_response.py +0 -0
  918. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_entry_key.py +0 -0
  919. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_errors_and_cli_table.py +0 -0
  920. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_baseline.py +0 -0
  921. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_corpus.py +0 -0
  922. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_faithfulness.py +0 -0
  923. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_gate.py +0 -0
  924. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_grading.py +0 -0
  925. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_metrics.py +0 -0
  926. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_stats_summary.py +0 -0
  927. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_tools.py +0 -0
  928. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_eval_tools_probe.py +0 -0
  929. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  930. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_faithfulness.py +0 -0
  931. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_frontmatter.py +0 -0
  932. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_fuzz_targets.py +0 -0
  933. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  934. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_gitleaks_config.py +0 -0
  935. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_gitutil.py +0 -0
  936. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_gitutil_lfs.py +0 -0
  937. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_gitutil_sparse.py +0 -0
  938. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_gstack_coexistence.py +0 -0
  939. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_hook_settings_hosts.py +0 -0
  940. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_imperative.py +0 -0
  941. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_import_budget.py +0 -0
  942. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_injectscan.py +0 -0
  943. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_install_permission_error.py +0 -0
  944. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_installscan.py +0 -0
  945. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_integrity.py +0 -0
  946. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_journal.py +0 -0
  947. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_jsonstate.py +0 -0
  948. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_langchain_packaging.py +0 -0
  949. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_launcher_python_floor.py +0 -0
  950. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_link_ownership.py +0 -0
  951. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_localembed.py +0 -0
  952. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_localembed_e2e.py +0 -0
  953. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_lockfile.py +0 -0
  954. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_logs.py +0 -0
  955. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_marketing_counts.py +0 -0
  956. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mcp.py +0 -0
  957. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mcp_install_scan.py +0 -0
  958. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mcp_read.py +0 -0
  959. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mcpdecl.py +0 -0
  960. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mcphost.py +0 -0
  961. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_measure_registry.py +0 -0
  962. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_minisign.py +0 -0
  963. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mutation_hardening.py +0 -0
  964. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mutation_shards.py +0 -0
  965. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mutation_subfile_shards.py +0 -0
  966. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_mutmut_source_paths.py +0 -0
  967. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_near_duplicate_collapse.py +0 -0
  968. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_nethttp.py +0 -0
  969. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_normalize_sdist.py +0 -0
  970. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_output.py +0 -0
  971. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_page_budget.py +0 -0
  972. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_paths.py +0 -0
  973. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_perf_gate.py +0 -0
  974. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_pkg_confusions.py +0 -0
  975. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_pkg_injection.py +0 -0
  976. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_pkg_secrets.py +0 -0
  977. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_platform_pins.py +0 -0
  978. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_policy.py +0 -0
  979. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_post_deploy_smoke.py +0 -0
  980. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_project_mcp_sidecar.py +0 -0
  981. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_projectlock.py +0 -0
  982. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_provenance.py +0 -0
  983. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_publish_golden_dataset.py +0 -0
  984. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_rag.py +0 -0
  985. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_rag_completeness.py +0 -0
  986. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_rag_fastpath.py +0 -0
  987. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_rag_fusion.py +0 -0
  988. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_registries_fresh.py +0 -0
  989. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_registry.py +0 -0
  990. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_registry_categories.py +0 -0
  991. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_registry_control_chars.py +0 -0
  992. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_registry_parallel.py +0 -0
  993. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_release_guard.py +0 -0
  994. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_release_preflight.py +0 -0
  995. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_report.py +0 -0
  996. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_required_checks.py +0 -0
  997. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_rerank_cache.py +0 -0
  998. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_resolve.py +0 -0
  999. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1000. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_roadmap_fresh.py +0 -0
  1001. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_rules.py +0 -0
  1002. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_scale_corpus.py +0 -0
  1003. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_schedule_plist.py +0 -0
  1004. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_scopes.py +0 -0
  1005. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_secretscan.py +0 -0
  1006. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_selfupdate.py +0 -0
  1007. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_serve.py +0 -0
  1008. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_serve_docs.py +0 -0
  1009. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_shard_plan.py +0 -0
  1010. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_shards.py +0 -0
  1011. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_shards_incremental.py +0 -0
  1012. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_shards_ingest.py +0 -0
  1013. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_shards_matrix.py +0 -0
  1014. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1015. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_spdx_headers.py +0 -0
  1016. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_spin.py +0 -0
  1017. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_stackprobe.py +0 -0
  1018. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_staleness.py +0 -0
  1019. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_store.py +0 -0
  1020. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_store_materialize.py +0 -0
  1021. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_sync_blocked_links.py +0 -0
  1022. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1023. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_tap_pins.py +0 -0
  1024. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_token_parity.py +0 -0
  1025. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_toolchain_lock.py +0 -0
  1026. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_trustaudit.py +0 -0
  1027. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_typedvalue.py +0 -0
  1028. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_typosquat.py +0 -0
  1029. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_updatediff.py +0 -0
  1030. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_util.py +0 -0
  1031. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_version.py +0 -0
  1032. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_version_tags.py +0 -0
  1033. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_vex.py +0 -0
  1034. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_visual_harness_capture.py +0 -0
  1035. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_visual_harness_flags.py +0 -0
  1036. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_workflow_concurrency.py +0 -0
  1037. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1038. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1039. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_workflow_timeouts.py +0 -0
  1040. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_workflows.py +0 -0
  1041. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1042. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/visual/a11y_check.mjs +0 -0
  1043. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/visual/console_check.mjs +0 -0
  1044. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/visual/package-lock.json +0 -0
  1045. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/visual/package.json +0 -0
  1046. {boost_skill_cli-1.2.118 → boost_skill_cli-1.2.119}/tests/visual/visual_check.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.118
3
+ Version: 1.2.119
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -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.118'
22
- __version_tuple__ = version_tuple = (1, 2, 118)
21
+ __version__ = version = '1.2.119'
22
+ __version_tuple__ = version_tuple = (1, 2, 119)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -18,6 +18,7 @@ of the thinking lives in :mod:`boost_cli.core.bmad`; this module is glue.
18
18
  boost bmad off # remove hooks + boost-written personas
19
19
  boost bmad personas # the roster + whether installed, both scopes
20
20
  boost bmad route [PROMPT] [--plain] # hook target; pipeable for debugging
21
+ boost bmad on --host claude # hooks for one host, not every one in use
21
22
 
22
23
  **The full method** is `boost bmad install`, unchanged: it delegates to the
23
24
  canonical `npx bmad-method install` (Node.js 20.12+) for the `bmad-*` workflow
@@ -55,8 +56,10 @@ way. Matchers are *not* translated — `hookhost` passes them through
55
56
  host-native — so Claude's `startup|resume|clear` source matcher is applied only
56
57
  on Claude.
57
58
 
58
- What that buys on a second host is prompt shaping, not full parity: the routing
59
- banner names personas Gemini cannot spawn.
59
+ What that buys on a second host is prompt shaping, not full parity. Gemini's
60
+ hooks pass `--host gemini`, so `route` and `orient` answer in the JSON Gemini
61
+ adds to the model's context and name the personas as roles rather than
62
+ subagents; `--host` on `on`/`startup` picks the hosts explicitly.
60
63
  """
61
64
  from __future__ import annotations
62
65
 
@@ -110,14 +113,19 @@ def cmd_bmad(argv) -> int:
110
113
  help="enable the startup toggle right after install")
111
114
  p.add_argument("--plain", action="store_true",
112
115
  help="route: print the banner as text, not as hook JSON")
116
+ p.add_argument("--host", metavar="H", default=None,
117
+ choices=(*hookhost.hosts(), "auto"),
118
+ help="on/startup: hosts to hook (%s; default auto: "
119
+ "claude + any in use) · route/orient: output format"
120
+ % " | ".join(hookhost.hosts()))
113
121
  args = p.parse_args(argv)
114
122
 
115
123
  if args.action == "on":
116
- return _autopilot_on(args.scope)
124
+ return _autopilot_on(args.scope, args.host)
117
125
  if args.action == "off":
118
126
  return _autopilot_off(args.scope)
119
127
  if args.action == "route":
120
- return _route(args.value, args.plain, args.scope)
128
+ return _route(args.value, args.plain, args.scope, _one_host(args.host))
121
129
  if args.action == "personas":
122
130
  return _personas(args.scope)
123
131
  if args.action == "install":
@@ -125,9 +133,9 @@ def cmd_bmad(argv) -> int:
125
133
  if args.action == "init":
126
134
  return _init(args.modules, args.startup)
127
135
  if args.action == "startup":
128
- return _startup(args.value or "status", args.scope)
136
+ return _startup(args.value or "status", args.scope, args.host)
129
137
  if args.action == "orient":
130
- return _orient(args.scope)
138
+ return _orient(args.scope, _one_host(args.host))
131
139
  if args.action == "uninstall":
132
140
  return _uninstall(args.scope, args.yes)
133
141
  if args.action == "disable":
@@ -174,7 +182,12 @@ def _never_fails(command: str) -> str:
174
182
  return command + " || true"
175
183
 
176
184
 
177
- def _hook_hosts(scope: str) -> list[str]:
185
+ def _one_host(host) -> str:
186
+ """The host a hook runs under. Hooks written before `--host` are Claude's."""
187
+ return hookhost.CLAUDE if host in (None, "auto") else host
188
+
189
+
190
+ def _hook_hosts(scope: str, requested=None) -> list[str]:
178
191
  """Hosts to write hooks into: Claude always, others on evidence of use.
179
192
 
180
193
  Claude is unconditional. It is boost's primary host and the behaviour every
@@ -189,7 +202,13 @@ def _hook_hosts(scope: str) -> list[str]:
189
202
  `~/.gemini/settings.json` for someone who has never run Gemini is litter in
190
203
  a file boost does not own. A host that appears later is picked up by the
191
204
  next `boost bmad on`, which is idempotent.
205
+
206
+ ``requested`` (`--host`) overrides the rule: naming one host writes that
207
+ host only, so Claude-only no longer means hand-editing Gemini's settings
208
+ after every `on`.
192
209
  """
210
+ if requested not in (None, "auto"):
211
+ return [requested]
193
212
  chosen = [hookhost.CLAUDE]
194
213
  for host in hookhost.hosts():
195
214
  if host == hookhost.CLAUDE:
@@ -209,11 +228,26 @@ _ORIENT_HOOK = ("SessionStart", HOOK_NAME, HOOK_MATCHER)
209
228
  _ROUTE_HOOK = ("UserPromptSubmit", ROUTE_HOOK_NAME, None)
210
229
 
211
230
 
212
- def _add_hook_everywhere(scope: str, spec: tuple, command: str) -> list[str]:
213
- """Install one hook on every installed host. Returns the hosts written."""
231
+ def _host_command(host: str, command: str) -> str:
232
+ """``command`` as ``host``'s hook runs it, made incapable of failing.
233
+
234
+ Claude's bytes are what every earlier release wrote. Another host's hook
235
+ names its host, so `route`/`orient` answer in the format that host reads,
236
+ and drops stderr: Gemini shows stderr to the user when stdout is empty, so
237
+ a launcher too old to know the action printed its usage error into the
238
+ session despite `|| true`.
239
+ """
240
+ if host == hookhost.CLAUDE:
241
+ return _never_fails(command)
242
+ return _never_fails("%s --host %s 2>/dev/null" % (command, host))
243
+
244
+
245
+ def _add_hook_everywhere(scope: str, spec: tuple, command: str,
246
+ requested=None) -> list[str]:
247
+ """Install one hook on every chosen host. Returns the hosts written."""
214
248
  event, name, matcher = spec
215
249
  written = []
216
- for host in _hook_hosts(scope):
250
+ for host in _hook_hosts(scope, requested):
217
251
  target = hookhost.translate(host, event)
218
252
  if target is None:
219
253
  # Refused out loud rather than dropped: a hook the user asked for
@@ -221,7 +255,7 @@ def _add_hook_everywhere(scope: str, spec: tuple, command: str) -> list[str]:
221
255
  out.warn("%s has no counterpart for %s — skipped"
222
256
  % (hookhost.label(host), event))
223
257
  continue
224
- cs.add_hook(scope, target, name, command,
258
+ cs.add_hook(scope, target, name, _host_command(host, command),
225
259
  matcher=matcher if host == hookhost.CLAUDE else None,
226
260
  host=host)
227
261
  written.append(host)
@@ -246,7 +280,7 @@ def _remove_hook_everywhere(scope: str, *specs: tuple) -> int:
246
280
  return removed
247
281
 
248
282
 
249
- def _autopilot_on(scope) -> int:
283
+ def _autopilot_on(scope, requested_host=None) -> int:
250
284
  """The one command. Personas + orientation + router, in one idempotent pass.
251
285
 
252
286
  Global by default: the point of the autopilot is that a task arriving in
@@ -267,10 +301,11 @@ def _autopilot_on(scope) -> int:
267
301
 
268
302
  launcher = shlex.quote(str(paths.launcher()))
269
303
  hosts = _add_hook_everywhere(
270
- scope, _ORIENT_HOOK,
271
- _never_fails("%s bmad orient --scope %s" % (launcher, scope)))
304
+ scope, _ORIENT_HOOK, "%s bmad orient --scope %s" % (launcher, scope),
305
+ requested_host)
272
306
  _add_hook_everywhere(scope, _ROUTE_HOOK,
273
- _never_fails("%s bmad route --scope %s" % (launcher, scope)))
307
+ "%s bmad route --scope %s" % (launcher, scope),
308
+ requested_host)
274
309
  _set_scope_state(scope, autopilot=True, startup=True, personas=present,
275
310
  enabled_at=util.now_iso())
276
311
  journal.log("bmad-autopilot", "on", scope=scope, personas=present)
@@ -335,7 +370,7 @@ def _read_hook_stdin() -> dict:
335
370
  return data if isinstance(data, dict) else {"prompt": raw}
336
371
 
337
372
 
338
- def _route(prompt, plain, scope=None) -> int:
373
+ def _route(prompt, plain, scope=None, host=hookhost.CLAUDE) -> int:
339
374
  """UserPromptSubmit hook target: classify, then emit the routing banner.
340
375
 
341
376
  This runs on every single prompt, so it has exactly one hard rule: **always
@@ -356,9 +391,9 @@ def _route(prompt, plain, scope=None) -> int:
356
391
  cwd = payload.get("cwd")
357
392
  root = Path(cwd) if cwd else Path.cwd()
358
393
  if prompt or plain:
359
- banner = core.route_context(text, root)
394
+ banner = core.route_context(text, root, None, host)
360
395
  elif _autopilot_live(scope, root):
361
- banner = _session_banner(payload, text, root)
396
+ banner = _session_banner(payload, text, root, host)
362
397
  else:
363
398
  return 0
364
399
  except Exception: # a hook must never break the session
@@ -368,14 +403,12 @@ def _route(prompt, plain, scope=None) -> int:
368
403
  if plain:
369
404
  print(banner)
370
405
  return 0
371
- print(json.dumps({"hookSpecificOutput": {
372
- "hookEventName": "UserPromptSubmit",
373
- "additionalContext": banner,
374
- }}))
406
+ print(hookhost.context_output(host, "UserPromptSubmit", banner))
375
407
  return 0
376
408
 
377
409
 
378
- def _session_banner(payload: dict, text: str, root: Path) -> str:
410
+ def _session_banner(payload: dict, text: str, root: Path,
411
+ host: str = hookhost.CLAUDE) -> str:
379
412
  """The hook's banner, or ``""`` when this session already holds it.
380
413
 
381
414
  Keyed by ``session_id``. Gemini's `BeforeAgent` carries one too, but its
@@ -383,7 +416,7 @@ def _session_banner(payload: dict, text: str, root: Path) -> str:
383
416
  skipped there would simply be missing; the check applies to Claude alone.
384
417
  """
385
418
  session = str(payload.get("session_id") or "")
386
- if payload.get("hook_event_name") == "BeforeAgent":
419
+ if host != hookhost.CLAUDE or payload.get("hook_event_name") == "BeforeAgent":
387
420
  session = ""
388
421
  track = core.classify(text, root)
389
422
  if track == core.TRIVIAL:
@@ -393,7 +426,7 @@ def _session_banner(payload: dict, text: str, root: Path) -> str:
393
426
  str(root)):
394
427
  return ""
395
428
  banner = core.route_context(
396
- text, root, (_agents_dir("global"), root / ".claude" / "agents"))
429
+ text, root, (_agents_dir("global"), root / ".claude" / "agents"), host)
397
430
  if session and banner:
398
431
  sessions[session] = {"track": track, "root": str(root),
399
432
  "at": util.now_iso()}
@@ -548,12 +581,12 @@ def _copy_global_skills(modules) -> int:
548
581
 
549
582
  # ----------------------------------------------------------------------- toggle
550
583
 
551
- def _startup(value, scope) -> int:
584
+ def _startup(value, scope, requested_host=None) -> int:
552
585
  scope = scope or "project"
553
586
  if value == "on":
554
- cmd = _never_fails("%s bmad orient --scope %s" % (
555
- shlex.quote(str(paths.launcher())), scope))
556
- started = _add_hook_everywhere(scope, _ORIENT_HOOK, cmd)
587
+ cmd = "%s bmad orient --scope %s" % (
588
+ shlex.quote(str(paths.launcher())), scope)
589
+ started = _add_hook_everywhere(scope, _ORIENT_HOOK, cmd, requested_host)
557
590
  _set_scope_state(scope, startup=True)
558
591
  journal.log("bmad-startup", "on", scope=scope)
559
592
  out.ok("BMAD startup ON (%s) — new sessions get orientation" % scope)
@@ -572,7 +605,7 @@ def _startup(value, scope) -> int:
572
605
  hint="use 'on', 'off' or 'status'")
573
606
 
574
607
 
575
- def _orient(scope) -> int:
608
+ def _orient(scope, host=hookhost.CLAUDE) -> int:
576
609
  """SessionStart hook target: print the briefing iff enabled (else silent).
577
610
 
578
611
  On `clear` and `compact` it also forgets the session's last routing banner:
@@ -589,17 +622,18 @@ def _orient(scope) -> int:
589
622
  _sessions_write(sessions)
590
623
  with suppress(Exception):
591
624
  if _get_scope_state(scope).get("startup"):
592
- print(core.orientation())
625
+ print(hookhost.context_output(host, "SessionStart",
626
+ core.orientation(host)))
593
627
  return 0
594
628
 
595
629
 
596
630
  def _status(scope) -> int:
597
631
  st = _get_scope_state(scope)
598
- hook = cs.has_hook(scope, "SessionStart", HOOK_NAME)
632
+ hosts = _hosts_with(scope, "SessionStart", HOOK_NAME)
599
633
  n = _count_skills(_skills_dir(scope))
600
634
  out.heading("BMAD startup — %s" % scope)
601
635
  out.kv("enabled", str(bool(st.get("startup"))))
602
- out.kv("hook", "present" if hook else "absent")
636
+ out.kv("hook", "present (%s)" % ", ".join(hosts) if hosts else "absent")
603
637
  out.kv("skills", str(n))
604
638
  out.kv("installed", str(bool(st.get("installed"))))
605
639
  return 0
@@ -683,16 +717,18 @@ def _doctor() -> int:
683
717
  # managed + edited: an edited persona file is still on disk and
684
718
  # Claude Code still loads it, same as core.present_personas().
685
719
  personas = len(core.present_personas(agents))
686
- router = cs.has_hook(scope, "UserPromptSubmit", ROUTE_HOOK_NAME)
720
+ router_hosts = _hosts_with(scope, "UserPromptSubmit", ROUTE_HOOK_NAME)
721
+ briefing_hosts = _hosts_with(scope, "SessionStart", HOOK_NAME)
722
+ router = bool(router_hosts)
687
723
  live = bool(st.get("autopilot")) and router
688
- briefing = _on_off(cs.has_hook(scope, "SessionStart", HOOK_NAME))
689
- if briefing == "on" and _stale_matcher(scope):
724
+ briefing = _where(briefing_hosts)
725
+ if briefing_hosts and _stale_matcher(scope):
690
726
  # The matcher lives in the user's settings.json from whenever they
691
727
  # last ran `on`, while the code that depends on it ships with the
692
728
  # binary — so an old install silently misses newer sources.
693
729
  briefing += " (stale matcher: re-run `boost bmad on`)"
694
730
  out.kv(scope, "autopilot=%s %d personas router=%s briefing=%s"
695
- % (_on_off(live), personas, _on_off(router), briefing))
731
+ % (_on_off(live), personas, _where(router_hosts), briefing))
696
732
  out.kv(" workflows", "skills=%d installed=%s"
697
733
  % (_count_skills(_skills_dir(scope)), _on_off(st.get("installed"))))
698
734
  out.dim(" project = %s" % Path.cwd())
@@ -714,6 +750,30 @@ def _stale_matcher(scope) -> bool:
714
750
  return any(r.get("matcher") != HOOK_MATCHER for r in rows)
715
751
 
716
752
 
753
+ def _hosts_with(scope, event: str, name: str) -> list[str]:
754
+ """Which hosts carry this boost hook, in report order.
755
+
756
+ `--host gemini` makes a Claude-less autopilot reachable for the first time,
757
+ and a report that asks only Claude called that install absent — `doctor`
758
+ said `autopilot=off router=off` about a router that was about to run.
759
+ """
760
+ found = []
761
+ for host in hookhost.hosts():
762
+ target = hookhost.translate(host, event)
763
+ if target is not None and cs.has_hook(scope, target, name, host=host):
764
+ found.append(host)
765
+ return found
766
+
767
+
768
+ def _where(hosts: list[str]) -> str:
769
+ """``off``, ``on`` (Claude only) or ``on (gemini)`` — who has the hook."""
770
+ if not hosts:
771
+ return "off"
772
+ if hosts == [hookhost.CLAUDE]:
773
+ return "on"
774
+ return "on (%s)" % ", ".join(hosts)
775
+
776
+
717
777
  def _skills_dir(scope) -> Path:
718
778
  base = paths.home() if scope == "global" else Path.cwd()
719
779
  return base / ".claude" / "skills"
@@ -42,6 +42,8 @@ import re
42
42
  from pathlib import Path
43
43
  from typing import NamedTuple
44
44
 
45
+ from . import hookhost
46
+
45
47
  MARKER = "<!-- boost:bmad-persona"
46
48
  """Prefix of the ownership stamp boost writes into every persona file.
47
49
 
@@ -752,7 +754,8 @@ def done_checklist(signals: dict, done: str = "change") -> list[str]:
752
754
  # --------------------------------------------------------------------- routing
753
755
 
754
756
  def route_lines(prompt: str, root: Path | None = None,
755
- agents_dirs: tuple[Path, ...] | None = None) -> list[str]:
757
+ agents_dirs: tuple[Path, ...] | None = None,
758
+ host: str = hookhost.CLAUDE) -> list[str]:
756
759
  """The banner for one prompt: `[]` when the prompt is not a unit of work.
757
760
 
758
761
  Kept to a handful of lines on purpose — this is prepended to *every*
@@ -763,6 +766,11 @@ def route_lines(prompt: str, root: Path | None = None,
763
766
  are dropped: naming a subagent the session cannot spawn sends the model
764
767
  after something that does not exist. An edited file counts as present —
765
768
  it is still a subagent, just no longer boost's.
769
+
770
+ On a host other than Claude Code the personas are roles to adopt, not
771
+ subagents: Gemini's subagent tool is `invoke_agent` and boost writes no
772
+ personas for it, so its banner names no subagent, no Agent tool and no
773
+ ``~/.claude`` path.
766
774
  """
767
775
  root = Path(root) if root is not None else Path.cwd()
768
776
  track_name = classify(prompt, root)
@@ -775,15 +783,22 @@ def route_lines(prompt: str, root: Path | None = None,
775
783
  persona_state(d, lead) != "absent" for d in agents_dirs)
776
784
 
777
785
  lines = ["[BMAD autopilot] track: %s" % track_name]
778
- if delegate:
786
+ if host != hookhost.CLAUDE:
787
+ lines.append("Lead: take the role of %s, %s. %s"
788
+ % (lead.character, lead.title, track.note))
789
+ if track.support:
790
+ lines.append("Support: bring in the view of %s." % ", ".join(
791
+ "%s (%s)" % (PERSONA_BY_SLUG[s].character, PERSONA_BY_SLUG[s].title)
792
+ for s in track.support))
793
+ elif delegate:
779
794
  lines.append("Lead: `%s` subagent — %s, %s. %s"
780
795
  % (lead.slug, lead.character, lead.title, track.note))
781
- if delegate and track.support:
782
- lines.append(
783
- "Support: %s — spawn them with the Agent tool, in parallel where "
784
- "the work is independent."
785
- % ", ".join("`%s` (%s)" % (s, PERSONA_BY_SLUG[s].character)
786
- for s in track.support))
796
+ if track.support:
797
+ lines.append(
798
+ "Support: %s — spawn them with the Agent tool, in parallel where "
799
+ "the work is independent."
800
+ % ", ".join("`%s` (%s)" % (s, PERSONA_BY_SLUG[s].character)
801
+ for s in track.support))
787
802
  lines.extend((
788
803
  "BMAD skill: `%s` — invoke it if it is installed; otherwise the "
789
804
  "persona's own playbook stands." % track.skill,
@@ -803,20 +818,31 @@ CHANGE_CLOSE = ("Finish the change and verify it; stop only for a choice that "
803
818
 
804
819
 
805
820
  def route_context(prompt: str, root: Path | None = None,
806
- agents_dirs: tuple[Path, ...] | None = None) -> str:
821
+ agents_dirs: tuple[Path, ...] | None = None,
822
+ host: str = hookhost.CLAUDE) -> str:
807
823
  """:func:`route_lines` as one string (``""`` when there is nothing to say)."""
808
- return "\n".join(route_lines(prompt, root, agents_dirs))
824
+ return "\n".join(route_lines(prompt, root, agents_dirs, host))
809
825
 
810
826
 
811
827
  # ----------------------------------------------------------------- orientation
812
828
 
813
- def orientation() -> str:
814
- """The SessionStart briefing: the roster, the phases, and the house rule."""
829
+ _SUBAGENT_INTRO = ("This session routes work through BMAD personas. Persona "
830
+ "subagents live in\n~/.claude/agents and are delegated to "
831
+ "with the Agent tool:")
832
+ _ROLE_INTRO = ("This session routes work through BMAD personas. A routing banner "
833
+ "names the\npersona whose role to take on for that prompt:")
834
+
835
+
836
+ def orientation(host: str = hookhost.CLAUDE) -> str:
837
+ """The SessionStart briefing: the roster, the phases, and the house rule.
838
+
839
+ Only Claude Code gets persona subagents; elsewhere the roster is a list of
840
+ roles, for the same reason as :func:`route_lines`.
841
+ """
815
842
  roster = "\n".join(
816
843
  " %-15s %s, %s" % (p.slug, p.character, p.title) for p in PERSONAS)
817
844
  return """[BMAD autopilot active]
818
- This session routes work through BMAD personas. Persona subagents live in
819
- ~/.claude/agents and are delegated to with the Agent tool:
845
+ %s
820
846
 
821
847
  %s
822
848
 
@@ -834,7 +860,8 @@ Full workflow skills need a per-project `_bmad/` runtime — `boost bmad init`.
834
860
 
835
861
  House rule: a change is done when its tests, its docs and its tracked item are;
836
862
  findings are done when each carries its evidence; an artifact is done when it is
837
- written down and tracked. Turn this off with `boost bmad off`.""" % roster
863
+ written down and tracked. Turn this off with `boost bmad off`.""" % (
864
+ _SUBAGENT_INTRO if host == hookhost.CLAUDE else _ROLE_INTRO, roster)
838
865
 
839
866
 
840
867
  # ------------------------------------------------------------ persona files
@@ -52,6 +52,8 @@ Gemini's tool names, and a lifecycle matcher is an exact string.
52
52
  """
53
53
  from __future__ import annotations
54
54
 
55
+ import json
56
+
55
57
  from ..errors import BoostError
56
58
 
57
59
  CLAUDE = "claude"
@@ -257,3 +259,27 @@ def resolve(requested: str | None) -> list[str]:
257
259
  return hosts()
258
260
  _spec(str(requested))
259
261
  return [str(requested)]
262
+
263
+
264
+ def context_output(host: str, event: str, text: str) -> str:
265
+ """What a hook prints to hand ``text`` to the model, for a Claude ``event``.
266
+
267
+ The two hosts read hook stdout differently, and the difference is silent.
268
+ Claude Code adds a `SessionStart` hook's plain stdout to the context, and
269
+ takes `UserPromptSubmit` context from ``hookSpecificOutput``. Gemini CLI
270
+ turns any non-JSON stdout into ``{decision: "allow", systemMessage: text}``
271
+ — shown to the *user* — and adds only ``additionalContext`` to the model's
272
+ history. So boost's session briefing, printed as text, reached Gemini users
273
+ as a 26-line info message and never reached the model at all (measured
274
+ against Gemini CLI 0.57.0's hook runner: ``systemMessage`` 1,297 chars,
275
+ ``additionalContext`` 0).
276
+
277
+ Claude's bytes are unchanged. Gemini always gets JSON, under its own name
278
+ for the event.
279
+ """
280
+ if host == CLAUDE and event == "SessionStart":
281
+ return text
282
+ return json.dumps({"hookSpecificOutput": {
283
+ "hookEventName": translate(host, event),
284
+ "additionalContext": text,
285
+ }})
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.118
3
+ Version: 1.2.119
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -152,8 +152,18 @@ applied only on Claude, where that vocabulary exists.
152
152
 
153
153
  **The personas stay Claude-only.** A subagent definition is a Claude Code
154
154
  contract, and Gemini's `agents/` slot validates its input, so a Claude-dialect
155
- persona would be rejected. What a second host gets is prompt shaping: the
156
- routing banner arrives and names a lead persona, but Gemini cannot spawn it.
155
+ persona would be rejected. What a second host gets is prompt shaping. Gemini's
156
+ hooks run `bmad route --host gemini` and `bmad orient --host gemini`, which
157
+ answer in the JSON Gemini adds to the model's context (plain stdout on Gemini is
158
+ shown to you instead, and never reaches the model), and name the lead persona as
159
+ a role to take on rather than a subagent to spawn.
160
+
161
+ Pass `--host claude`, `--host gemini` or `--host auto` (the default, the rule
162
+ above) to `boost bmad on` or `boost bmad startup on` to choose for yourself:
163
+
164
+ ```bash
165
+ boost bmad on --host claude # never touch ~/.gemini/settings.json
166
+ ```
157
167
 
158
168
  ## The full BMAD method
159
169
 
@@ -192,7 +192,7 @@
192
192
  <a class="cmd-link" href="#cmd-serve" data-search="serve browse the catalogue in a browser: search, facets and a tap graph --port port --host host">serve</a>
193
193
  <a class="cmd-link" href="#cmd-mcp" data-search="mcp register boost as an mcp server (claude code, gemini cli, antigravity cli) register boost as an mcp server for your agent clis --host h --stdio --dry-run --seed --no-seed {register,unregister}">mcp</a>
194
194
  <a class="cmd-link" href="#cmd-hooks" data-search="hooks manage agent hooks (claude code, gemini cli) in settings.json manage agent hooks (scope- and host-aware) in settings.json --host h -c, --command command -n, --name name -s, --scope {global,project} -m, --matcher matcher --timeout timeout --json {add,remove,list} event">hooks</a>
195
- <a class="cmd-link" href="#cmd-bmad" data-search="bmad bmad method autopilot — `bmad on` routes every task to a persona bmad method autopilot: personas, prompt routing, workflows -s, --scope {project,global} --modules modules -y, --yes --startup --plain action value">bmad</a>
195
+ <a class="cmd-link" href="#cmd-bmad" data-search="bmad bmad method autopilot — `bmad on` routes every task to a persona bmad method autopilot: personas, prompt routing, workflows -s, --scope {project,global} --modules modules -y, --yes --startup --plain --host h action value">bmad</a>
196
196
  <a class="cmd-link" href="#cmd-self-update" data-search="self-update update boost itself to the latest version --dry-run">self-update</a>
197
197
  </div>
198
198
  <div class="group" data-group="team">
@@ -1188,10 +1188,10 @@
1188
1188
  <div class="arg"><code>--json</code><span>machine-readable output (list)</span></div>
1189
1189
  </div>
1190
1190
  </section>
1191
- <section class="cmd" id="cmd-bmad" data-search="bmad bmad method autopilot — `bmad on` routes every task to a persona bmad method autopilot: personas, prompt routing, workflows -s, --scope {project,global} --modules modules -y, --yes --startup --plain action value">
1191
+ <section class="cmd" id="cmd-bmad" data-search="bmad bmad method autopilot — `bmad on` routes every task to a persona bmad method autopilot: personas, prompt routing, workflows -s, --scope {project,global} --modules modules -y, --yes --startup --plain --host h action value">
1192
1192
  <h3><span class="cname">bmad</span><span class="gtag">cfg</span></h3>
1193
1193
  <p class="summary">BMAD Method autopilot — `bmad on` routes every task to a persona</p>
1194
- <pre class="syn">boost bmad [-s {project,global}] [--modules MODULES] [-y] [--startup] [--plain] ACTION [value]</pre>
1194
+ <pre class="syn">boost bmad [-s {project,global}] [--modules MODULES] [-y] [--startup] [--plain] [--host H] ACTION [value]</pre>
1195
1195
  <p class="desc">BMAD Method autopilot: personas, prompt routing, workflows</p>
1196
1196
  <div class="args-h">Arguments</div>
1197
1197
  <div class="args">
@@ -1205,6 +1205,7 @@
1205
1205
  <div class="arg"><code>-y, --yes</code><span>skip confirmation prompts</span></div>
1206
1206
  <div class="arg"><code>--startup</code><span>enable the startup toggle right after install</span></div>
1207
1207
  <div class="arg"><code>--plain</code><span>route: print the banner as text, not as hook JSON</span></div>
1208
+ <div class="arg"><code>--host H</code><span>on/startup: hosts to hook (claude | gemini; default auto: claude + any in use) · route/orient: output format</span></div>
1208
1209
  </div>
1209
1210
  </section>
1210
1211
  <section class="cmd" id="cmd-self-update" data-search="self-update update boost itself to the latest version --dry-run">
@@ -2,15 +2,15 @@
2
2
  id: bmad-gemini-gets-claude-hook-output
3
3
  board: code
4
4
  section: dx
5
- status: next
5
+ status: shipped
6
6
  category: "Agents · BMAD"
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 2
10
10
  note: gemini takes the banner but shows the briefing to the user
11
11
  order: 324
12
- owner:
13
- pr:
12
+ owner: loop/bmad-gemini-hook-output
13
+ pr: 866
14
14
  title: On Gemini, the <code>bmad on</code> briefing reaches the user and never the model
15
15
  ---
16
16
  <code>boost bmad on</code> installs both autopilot hooks on Claude always, and on Gemini whenever
@@ -7680,63 +7680,9 @@ would trade a dead pointer for a misroute.</p>
7680
7680
  </article>
7681
7681
 
7682
7682
  <article class="cap rcard" id="bmad-gemini-gets-claude-hook-output">
7683
- <div class="head"><span class="pill next">Next</span><span class="cat">Agents · BMAD</span></div>
7683
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Agents · BMAD</span></div>
7684
7684
  <h3>On Gemini, the <code>bmad on</code> briefing reaches the user and never the model</h3>
7685
- <p><code>boost bmad on</code> installs both autopilot hooks on Claude always, and on Gemini whenever
7686
- <code>gemini</code> is on <code>PATH</code> <em>or</em> <code>~/.gemini/</code> exists
7687
- (<code>commands/bmad.py:177</code>). It has no <code>--host</code>
7688
- (<code>:98</code>–<code>112</code>), so Claude-only means hand-editing Gemini's settings, and the
7689
- next <code>bmad on</code> re-adds what was deleted. The <a href="#bmad-hooks-all-hosts">fan-out</a> translated event names and timeout
7690
- units, but left stdout in Claude's format. Checked against <b>Gemini CLI 0.57.0</b>: its bundled
7691
- hook runner was read, then imported and driven against main's hooks in a throwaway
7692
- <code>HOME</code> with only an empty <code>.gemini/</code>.
7693
-
7694
- <b>The router works, so this is narrower than hooks that do nothing.</b> Gemini's
7695
- <code>BeforeAgent</code> input has <code>prompt</code> and <code>cwd</code> under the names
7696
- <code>_route</code> reads (<code>:341</code>–<code>342</code>), and <code>hookEventName</code> is
7697
- never validated, so the hardcoded <code>"UserPromptSubmit"</code> (<code>:353</code>) is harmless.
7698
- Measured: <b><code>outputFormat: json</code>, 643 chars of <code>additionalContext</code></b> for a
7699
- build-track banner.
7700
-
7701
- <b>The briefing never reaches the model.</b> <code>_orient</code> prints plain text
7702
- (<code>:530</code>), which Claude Code adds to context. Gemini turns non-JSON stdout into
7703
- <code>{decision: "allow", systemMessage: text}</code> and adds only <code>additionalContext</code>
7704
- to history. Measured: <b><code>systemMessage</code> 1,297 chars, <code>additionalContext</code>
7705
- 0</b>. The 26-line briefing is shown to the user as an info message instead, on
7706
- <code>startup</code>, <code>resume</code> and <code>/clear</code>.
7707
-
7708
- <b>What does reach the model is framed as data, and names tools Gemini lacks.</b> Gemini wraps
7709
- <code>additionalContext</code> in <code>&lt;hook_context&gt;</code>, and its default system prompt
7710
- says to treat that as "<b>read-only data</b> or <b>informational context</b>". The banner is all
7711
- instructions. It names a <code>bmad-dev</code> subagent and spawning support personas with the Agent
7712
- tool (<code>core/bmad.py:538</code>, <code>:543</code>), and the briefing puts the personas in
7713
- <code>~/.claude/agents</code> (<code>:570</code>). Gemini's subagent tool is
7714
- <code>invoke_agent</code>, and boost writes no personas for it. <em>Not measured:</em> whether a
7715
- Gemini model follows the banner anyway, since no live model call was made. <em>Also seen:</em>
7716
- Gemini parses stderr when stdout is empty, so a launcher that rejects the action shows its argparse
7717
- error as a <code>systemMessage</code> despite <code>|| true</code> (simulated once, 330 chars).
7718
-
7719
- <b>Proposed fix.</b> <i>(1)</i> <code>bmad on</code> and <code>startup on</code> take <code>--host
7720
- claude|gemini|auto</code>, the choices <code>boost hooks --host</code> has
7721
- (<code>commands/hooks.py:45</code>), with <code>auto</code> as today's evidence rule. <i>(2)</i>
7722
- Gemini's hooks run <code>bmad route --host gemini</code> and <code>bmad orient … --host
7723
- gemini</code>. Claude's commands stay byte-identical. <i>(3)</i> A pure
7724
- <code>hookhost.context_output(host, event, text)</code> formats stdout: Claude's is unchanged, and
7725
- Gemini always gets JSON, with <code>hookEventName</code> from <code>translate()</code> and the text in
7726
- <code>additionalContext</code>. That reaches the model on startup and resume, not after
7727
- <code>/clear</code>, whose Gemini path reads only <code>systemMessage</code>. <i>(4)</i>
7728
- <code>route_lines</code> and <code>orientation</code> take the host. On Gemini the lead is a role
7729
- to adopt, with no subagent, Agent tool or <code>~/.claude</code> wording.
7730
-
7731
- <b>Tests.</b> <code>tests/unit/test_hookhost.py</code>: for each host and both events, Gemini output
7732
- passes <code>json.loads</code> with the text in <code>additionalContext</code> (plain text is the
7733
- regression), and Claude output matches today's bytes. <code>tests/unit/test_bmad_core.py</code>: the
7734
- Gemini banner and briefing name no subagent, Agent tool or <code>~/.claude</code>. Parametrize
7735
- <code>test_emits_the_hook_json_contract</code> by host
7736
- (<code>tests/functional/test_cli_bmad.py:480</code>, which pins <code>"UserPromptSubmit"</code> at
7737
- <code>:492</code>). In <code>tests/functional/test_bmad_all_hosts.py</code>, assert that Gemini's
7738
- commands carry <code>--host gemini</code> and that <code>--host claude</code> never writes
7739
- <code>~/.gemini/settings.json</code>.</p>
7685
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md">Write-up &middot; bmad-gemini-gets-claude-hook-output.md</a></p>
7740
7686
  <div class="meta">
7741
7687
  <span class="m">Complexity <b>M</b></span>
7742
7688
  <span class="m">Impact <b>Med</b></span>