boost-skill-cli 1.2.144__tar.gz → 1.2.146__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 (1111) hide show
  1. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.vale/styles/config/vocabularies/boost/accept.txt +8 -0
  2. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/CLAUDE.md +119 -8
  3. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/PKG-INFO +4 -2
  4. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/README.md +3 -1
  5. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/_version.py +2 -2
  6. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/cli.py +1 -1
  7. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/bmad.py +95 -28
  8. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/hooks.py +67 -19
  9. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/claude_settings.py +151 -24
  10. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/hookhost.py +199 -18
  11. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_skill_cli.egg-info/PKG-INFO +4 -2
  12. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_skill_cli.egg-info/SOURCES.txt +7 -0
  13. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/commands.html +12 -10
  14. boost_skill_cli-1.2.146/docs/demo.gif +0 -0
  15. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/index.html +1 -1
  16. boost_skill_cli-1.2.146/docs/roadmap/items/codex-hooks-timeout-units-are-unestablished.md +49 -0
  17. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sandbox-fixture-does-not-sandbox-the-working-directory.md +3 -3
  18. boost_skill_cli-1.2.146/docs/roadmap/items/the-links-concurrency-cap-did-not-hold.md +41 -0
  19. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap.html +17 -21
  20. boost_skill_cli-1.2.146/tests/conftest.py +848 -0
  21. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_bmad_all_hosts.py +191 -5
  22. boost_skill_cli-1.2.146/tests/functional/test_cli_hooks_codex.py +159 -0
  23. boost_skill_cli-1.2.146/tests/functional/test_repo_root_guard_covers_real_installs.py +113 -0
  24. boost_skill_cli-1.2.146/tests/unit/test_claude_settings_codex.py +376 -0
  25. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_corpus.py +12 -2
  26. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_first_run_pointer.py +11 -2
  27. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_hookhost.py +6 -2
  28. boost_skill_cli-1.2.146/tests/unit/test_hookhost_codex.py +305 -0
  29. boost_skill_cli-1.2.146/tests/unit/test_repo_root_guard.py +539 -0
  30. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_roadmap_fresh.py +27 -26
  31. boost_skill_cli-1.2.146/tests/unit/test_sandbox_fixture_cwd.py +86 -0
  32. boost_skill_cli-1.2.144/docs/demo.gif +0 -0
  33. boost_skill_cli-1.2.144/docs/roadmap/items/codex-hooks-timeout-units-are-unestablished.md +0 -32
  34. boost_skill_cli-1.2.144/tests/conftest.py +0 -418
  35. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.gitattributes +0 -0
  36. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.gitignore +0 -0
  37. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.gitleaks.toml +0 -0
  38. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.htmlvalidate.json +0 -0
  39. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.lighthouserc.json +0 -0
  40. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.lycheeignore +0 -0
  41. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.markdownlint-cli2.jsonc +0 -0
  42. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.pre-commit-config.yaml +0 -0
  43. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.stylelintrc.json +0 -0
  44. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.vale/styles/boost/AIWriting.yml +0 -0
  45. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.vale/styles/boost/Terminology.yml +0 -0
  46. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/.vale.ini +0 -0
  47. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/CODE_OF_CONDUCT.md +0 -0
  48. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/CONTRIBUTING.md +0 -0
  49. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/DCO +0 -0
  50. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/GOVERNANCE.md +0 -0
  51. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/LICENSE +0 -0
  52. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/MAINTAINERS.md +0 -0
  53. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/MANIFEST.in +0 -0
  54. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/Makefile +0 -0
  55. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/SECURITY.md +0 -0
  56. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/SUPPORT.md +0 -0
  57. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost +0 -0
  58. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/__init__.py +0 -0
  59. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/__main__.py +0 -0
  60. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/cliparse.py +0 -0
  61. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/__init__.py +0 -0
  62. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/_common.py +0 -0
  63. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/configuration.py +0 -0
  64. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/discovery.py +0 -0
  65. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/info.py +0 -0
  66. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/intelligence.py +0 -0
  67. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/pkg.py +0 -0
  68. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/quality.py +0 -0
  69. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/quickstart.py +0 -0
  70. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/run.py +0 -0
  71. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/safety.py +0 -0
  72. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/taps.py +0 -0
  73. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/commands/team.py +0 -0
  74. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/__init__.py +0 -0
  75. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/adapters.py +0 -0
  76. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/agents.py +0 -0
  77. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/ai.py +0 -0
  78. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/aihost.py +0 -0
  79. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/archive.py +0 -0
  80. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/bmad.py +0 -0
  81. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/bootstrap.py +0 -0
  82. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/browse.py +0 -0
  83. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/builtin.py +0 -0
  84. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/capabilities.py +0 -0
  85. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/catalog.py +0 -0
  86. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/catalogbundle.py +0 -0
  87. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/chat.py +0 -0
  88. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/cohort.py +0 -0
  89. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/compact.py +0 -0
  90. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/complete.py +0 -0
  91. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/config.py +0 -0
  92. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/dense.py +0 -0
  93. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/deps.py +0 -0
  94. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/discovery.py +0 -0
  95. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/ed25519.py +0 -0
  96. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/embed.py +0 -0
  97. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/faithfulness.py +0 -0
  98. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/frontmatter.py +0 -0
  99. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/gitutil.py +0 -0
  100. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/imperative.py +0 -0
  101. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/injectscan.py +0 -0
  102. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/installscan.py +0 -0
  103. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/integrity.py +0 -0
  104. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/journal.py +0 -0
  105. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/jsonstate.py +0 -0
  106. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/localembed.py +0 -0
  107. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/lockfile.py +0 -0
  108. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/logs.py +0 -0
  109. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/mcp.py +0 -0
  110. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/mcpdecl.py +0 -0
  111. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/mcphost.py +0 -0
  112. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/minisign.py +0 -0
  113. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/nethttp.py +0 -0
  114. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/output.py +0 -0
  115. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/paths.py +0 -0
  116. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/policy.py +0 -0
  117. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/projectlock.py +0 -0
  118. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/provenance.py +0 -0
  119. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/rag.py +0 -0
  120. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/registry.py +0 -0
  121. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/report.py +0 -0
  122. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/resolve.py +0 -0
  123. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/rules.py +0 -0
  124. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/scopes.py +0 -0
  125. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/secretscan.py +0 -0
  126. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/selfupdate.py +0 -0
  127. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/serve.py +0 -0
  128. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/shards.py +0 -0
  129. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/stackprobe.py +0 -0
  130. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/staleness.py +0 -0
  131. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/store.py +0 -0
  132. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/trustaudit.py +0 -0
  133. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/typedvalue.py +0 -0
  134. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/typosquat.py +0 -0
  135. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/updatediff.py +0 -0
  136. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/util.py +0 -0
  137. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/core/workflows.py +0 -0
  138. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/data/registries.json +0 -0
  139. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/data/rules/boost-first.mdc +0 -0
  140. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/errors.py +0 -0
  141. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_cli/spin.py +0 -0
  142. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_langchain/__init__.py +0 -0
  143. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_langchain/_compat.py +0 -0
  144. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_langchain/graph.py +0 -0
  145. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_langchain/loader.py +0 -0
  146. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_langchain/py.typed +0 -0
  147. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_langchain/retriever.py +0 -0
  148. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  149. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  150. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_skill_cli.egg-info/requires.txt +0 -0
  151. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/boost_skill_cli.egg-info/top_level.txt +0 -0
  152. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/codecov.yml +0 -0
  153. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/DEBUGGING.md +0 -0
  154. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/adapters.html +0 -0
  155. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/architecture/README.md +0 -0
  156. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/architecture/c4-components-core.md +0 -0
  157. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/architecture/c4-containers.md +0 -0
  158. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/architecture/c4-context.md +0 -0
  159. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/architecture/c4-dynamic-install.md +0 -0
  160. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/bmad.md +0 -0
  161. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/gifs/distill.gif +0 -0
  162. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/gifs/doctor.gif +0 -0
  163. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/gifs/explain.gif +0 -0
  164. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/gifs/hooks.gif +0 -0
  165. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/gifs/install.gif +0 -0
  166. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/gifs/pulse.gif +0 -0
  167. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/gifs/search.gif +0 -0
  168. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/gifs/tap.gif +0 -0
  169. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/tapes/distill.tape +0 -0
  170. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/tapes/doctor.tape +0 -0
  171. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/tapes/explain.tape +0 -0
  172. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/tapes/hooks.tape +0 -0
  173. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/tapes/install.tape +0 -0
  174. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/tapes/pulse.tape +0 -0
  175. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/tapes/search.tape +0 -0
  176. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel/tapes/tap.tape +0 -0
  177. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/carousel.html +0 -0
  178. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/chat.html +0 -0
  179. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/code-review.md +0 -0
  180. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/commit-audit.md +0 -0
  181. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/demo-index.json +0 -0
  182. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/demo.html +0 -0
  183. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/demo.tape +0 -0
  184. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/dependencies.md +0 -0
  185. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/design-roadmap.html +0 -0
  186. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/eval-latest.json +0 -0
  187. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/eval.html +0 -0
  188. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/langchain.html +0 -0
  189. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/mcp-hub.html +0 -0
  190. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/openssf-badge.md +0 -0
  191. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/openssf-playbook.md +0 -0
  192. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/rag-architecture.md +0 -0
  193. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D01.md +0 -0
  194. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D02.md +0 -0
  195. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D03.md +0 -0
  196. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D04.md +0 -0
  197. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D05.md +0 -0
  198. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D06.md +0 -0
  199. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D07.md +0 -0
  200. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D08.md +0 -0
  201. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D09.md +0 -0
  202. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D10.md +0 -0
  203. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D11.md +0 -0
  204. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D12.md +0 -0
  205. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D13.md +0 -0
  206. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D14.md +0 -0
  207. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D15.md +0 -0
  208. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D16.md +0 -0
  209. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D17.md +0 -0
  210. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D18.md +0 -0
  211. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D19.md +0 -0
  212. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D20.md +0 -0
  213. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D21.md +0 -0
  214. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D22.md +0 -0
  215. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D23.md +0 -0
  216. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D24.md +0 -0
  217. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D25.md +0 -0
  218. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D26.md +0 -0
  219. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/BOOST-D27.md +0 -0
  220. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/a-correct-link-in-a-locked-dir-reads-as-refused.md +0 -0
  221. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  222. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/a-refusal-and-its-remedy-never-wrapped.md +0 -0
  223. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  224. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  225. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  226. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  227. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/agent-dir-shapes-install-still-trips-on.md +0 -0
  228. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  229. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  230. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  231. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  232. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  233. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  234. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  235. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  236. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  237. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  238. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  239. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-attest-findings.md +0 -0
  240. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-audit-findings.md +0 -0
  241. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  242. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-browse-findings.md +0 -0
  243. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  244. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  245. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  246. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  247. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-chat-findings.md +0 -0
  248. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  249. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  250. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  251. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-completions-findings.md +0 -0
  252. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-config-findings.md +0 -0
  253. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  254. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-context-findings.md +0 -0
  255. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  256. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  257. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-create-findings.md +0 -0
  258. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  259. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-deps-findings.md +0 -0
  260. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-discover-findings.md +0 -0
  261. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  262. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  263. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-drift-findings.md +0 -0
  264. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  265. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-edit-findings.md +0 -0
  266. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  267. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-explain-findings.md +0 -0
  268. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-export-findings.md +0 -0
  269. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  270. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  271. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  272. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  273. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  274. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-health-findings.md +0 -0
  275. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  276. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  277. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-import-findings.md +0 -0
  278. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-index-findings.md +0 -0
  279. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  280. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  281. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-install-findings.md +0 -0
  282. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  283. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  284. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-lint-findings.md +0 -0
  285. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-log-findings.md +0 -0
  286. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  287. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  288. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  289. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  290. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  291. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  292. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  293. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  294. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  295. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  296. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  297. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-policy-findings.md +0 -0
  298. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-preview-findings.md +0 -0
  299. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-profile-findings.md +0 -0
  300. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  301. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  302. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  303. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  304. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  305. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  306. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  307. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  308. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  309. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-replay-findings.md +0 -0
  310. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-root-findings.md +0 -0
  311. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  312. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-run-findings.md +0 -0
  313. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  314. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-search-findings.md +0 -0
  315. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  316. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  317. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  318. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  319. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  320. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  321. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  322. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  323. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-sync-findings.md +0 -0
  324. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-tag-findings.md +0 -0
  325. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  326. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-tap-findings.md +0 -0
  327. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-taps-findings.md +0 -0
  328. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  329. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-test-findings.md +0 -0
  330. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-trust-findings.md +0 -0
  331. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  332. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  333. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-untap-findings.md +0 -0
  334. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-update-findings.md +0 -0
  335. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  336. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-verify-findings.md +0 -0
  337. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/audit-who-findings.md +0 -0
  338. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  339. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  340. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  341. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  342. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  343. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  344. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  345. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  346. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  347. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  348. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  349. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  350. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  351. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  352. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  353. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  354. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/boost-first-rule.md +0 -0
  355. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  356. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  357. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/branch-current-gate.md +0 -0
  358. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  359. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  360. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  361. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  362. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  363. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  364. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +0 -0
  365. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  366. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  367. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  368. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  369. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  370. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  371. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  372. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ci-summary-reports-the-wrong-coverage-gate.md +0 -0
  373. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  374. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  375. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
  376. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  377. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  378. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/cli-command-audit.md +0 -0
  379. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  380. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  381. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  382. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/codex-is-not-an-mcp-host.md +0 -0
  383. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  384. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/command-carousel-page.md +0 -0
  385. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  386. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  387. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  388. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  389. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  390. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  391. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +0 -0
  392. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  393. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  394. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  395. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  396. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  397. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  398. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  399. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  400. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  401. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  402. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  403. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  404. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  405. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  406. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  407. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  408. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  409. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  410. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  411. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  412. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  413. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  414. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  415. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  416. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  417. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  418. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  419. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  420. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  421. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  422. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  423. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  424. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  425. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  426. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/err-colour-judged-by-stdout.md +0 -0
  427. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  428. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  429. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  430. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  431. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  432. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  433. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  434. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  435. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  436. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  437. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  438. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  439. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  440. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  441. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  442. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  443. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  444. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  445. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  446. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  447. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  448. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  449. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  450. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  451. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/free-threaded-canary-warns-about-nothing.md +0 -0
  452. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  453. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  454. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  455. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  456. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  457. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  458. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  459. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  460. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/github-community-health-files.md +0 -0
  461. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  462. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  463. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  464. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  465. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  466. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  467. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +0 -0
  468. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  469. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +0 -0
  470. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/import-budget-gate-passes-when-boost-cannot-import.md +0 -0
  471. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  472. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  473. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/install-cannot-tell-a-skill-needs-another-one.md +0 -0
  474. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  475. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  476. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  477. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/install-paths-that-still-drop-the-result.md +0 -0
  478. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  479. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  480. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  481. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  482. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  483. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  484. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  485. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +0 -0
  486. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  487. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  488. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  489. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  490. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  491. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  492. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  493. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  494. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  495. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  496. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  497. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/links-job-503s-its-own-write-up-links.md +0 -0
  498. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  499. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  500. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  501. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  502. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  503. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  504. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  505. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  506. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  507. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  508. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  509. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  510. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  511. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/manifest-in-prunes-only-the-root-copy.md +0 -0
  512. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  513. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  514. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  515. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  516. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  517. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  518. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  519. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-doctor-says-healthy-where-mcp-search-says-nothing-is-tapped.md +0 -0
  520. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  521. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  522. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  523. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  524. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-miss-reply-echoes-the-whole-query.md +0 -0
  525. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  526. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  527. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-registration-writes-outside-a-sandboxed-home.md +0 -0
  528. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  529. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  530. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  531. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  532. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-server-dies-on-a-valid-json-message-that-is-not-an-object.md +0 -0
  533. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  534. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-session-dies-on-a-deeply-nested-json-line.md +0 -0
  535. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  536. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  537. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  538. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  539. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  540. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  541. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  542. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  543. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  544. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  545. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  546. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  547. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  548. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  549. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  550. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  551. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  552. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  553. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/one-bad-agent-dir-silences-the-whole-doctor-report.md +0 -0
  554. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  555. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  556. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  557. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/one-failed-shard-job-drops-registries-from-the-manifest.md +0 -0
  558. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  559. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  560. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  561. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/openssf-playbook.md +0 -0
  562. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/openssf-silver.md +0 -0
  563. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  564. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  565. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  566. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  567. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  568. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  569. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  570. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  571. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  572. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  573. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  574. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  575. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  576. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  577. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  578. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  579. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  580. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  581. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  582. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  583. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  584. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  585. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  586. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  587. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  588. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  589. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  590. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  591. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  592. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/quickstart-rerun-retargets-tapped-registries.md +0 -0
  593. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  594. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  595. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  596. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  597. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +0 -0
  598. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  599. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  600. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  601. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  602. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  603. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  604. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  605. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  606. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  607. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  608. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/release-guard-fails-open-when-it-cannot-read-tags.md +0 -0
  609. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  610. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/relicence-apache-2.md +0 -0
  611. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  612. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  613. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  614. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  615. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  616. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  617. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  618. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  619. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  620. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  621. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  622. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  623. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  624. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  625. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  626. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  627. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  628. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  629. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  630. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  631. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  632. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  633. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  634. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  635. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  636. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  637. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  638. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  639. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  640. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  641. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  642. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  643. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  644. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  645. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  646. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  647. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  648. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  649. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  650. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  651. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  652. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  653. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  654. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  655. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  656. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  657. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  658. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  659. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  660. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  661. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  662. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  663. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  664. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  665. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  666. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  667. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  668. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  669. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  670. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  671. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  672. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  673. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  674. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  675. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  676. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sync-repairs-a-disabled-agents-row-every-run.md +0 -0
  677. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  678. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  679. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  680. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  681. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  682. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  683. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/the-install-path-hands-agy-claudes-mcp-argv.md +0 -0
  684. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/the-model-back-off-mixes-two-clocks.md +0 -0
  685. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  686. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  687. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  688. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  689. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  690. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  691. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  692. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  693. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  694. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  695. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  696. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  697. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  698. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  699. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  700. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  701. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
  702. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  703. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  704. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  705. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  706. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  707. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  708. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  709. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  710. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  711. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  712. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  713. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  714. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  715. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  716. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/workspace-scope-install.md +0 -0
  717. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/zip-strict-audit.md +0 -0
  718. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  719. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  720. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/security-design.md +0 -0
  721. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/semantic-search.md +0 -0
  722. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  723. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/verifying-releases.md +0 -0
  724. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/vex/meta.md +0 -0
  725. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/vex/openvex.json +0 -0
  726. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  727. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  728. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  729. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  730. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/eslint.config.mjs +0 -0
  731. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/README.md +0 -0
  732. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/__init__.py +0 -0
  733. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/baseline.json +0 -0
  734. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/faithfulness.py +0 -0
  735. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/golden_set.json +0 -0
  736. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/make_corpus.py +0 -0
  737. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/make_golden.py +0 -0
  738. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/metrics.py +0 -0
  739. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/publish_golden_dataset.py +0 -0
  740. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/evals/run_evals.py +0 -0
  741. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/examples/README.md +0 -0
  742. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/examples/adapt-demo.sh +0 -0
  743. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/examples/boost-run-prototype.sh +0 -0
  744. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/index.html +0 -0
  745. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/noxfile.py +0 -0
  746. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/pyproject.toml +0 -0
  747. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/coverage-tools.in +0 -0
  748. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/coverage-tools.txt +0 -0
  749. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/lint-tools.in +0 -0
  750. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/lint-tools.txt +0 -0
  751. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/mutation-tools.in +0 -0
  752. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/mutation-tools.txt +0 -0
  753. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/platform-pins.lock +0 -0
  754. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/release-tools.in +0 -0
  755. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/release-tools.txt +0 -0
  756. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/test-tools.in +0 -0
  757. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/requirements/test-tools.txt +0 -0
  758. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/a11y_check.py +0 -0
  759. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/add_spdx_headers.py +0 -0
  760. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/bench_cli.sh +0 -0
  761. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/build_command_reference.py +0 -0
  762. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/build_demo_index.py +0 -0
  763. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/build_registries.py +0 -0
  764. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/build_roadmap.py +0 -0
  765. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/build_scale_corpus.py +0 -0
  766. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/build_vex.py +0 -0
  767. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/check_anchors.py +0 -0
  768. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/check_branch_current.py +0 -0
  769. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/check_dco.py +0 -0
  770. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/check_licenses.py +0 -0
  771. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/check_reproducible.py +0 -0
  772. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/check_required_checks.py +0 -0
  773. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/ensure_eval_corpus.sh +0 -0
  774. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/eval_corpus.py +0 -0
  775. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/eval_explain.py +0 -0
  776. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/eval_gate.py +0 -0
  777. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/eval_recommend.py +0 -0
  778. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/eval_retrieval.py +0 -0
  779. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/eval_stats_summary.py +0 -0
  780. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/eval_tools.py +0 -0
  781. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/import_budget.py +0 -0
  782. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/lock_toolchain.py +0 -0
  783. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/measure_near_duplicate_bound.py +0 -0
  784. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/measure_registry.py +0 -0
  785. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/mutation_gate.py +0 -0
  786. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/mutation_shards.py +0 -0
  787. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/mutation_weights.json +0 -0
  788. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/normalize_sdist.py +0 -0
  789. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/page_budget.py +0 -0
  790. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/perf_gate.py +0 -0
  791. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/post_deploy_smoke.py +0 -0
  792. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/publish_eval_json.py +0 -0
  793. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/publish_shards.py +0 -0
  794. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/release_guard.py +0 -0
  795. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/release_preflight.py +0 -0
  796. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/serve_docs.py +0 -0
  797. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/scripts/shard_plan.py +0 -0
  798. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/setup.cfg +0 -0
  799. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/sonar-project.properties +0 -0
  800. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/style/README.md +0 -0
  801. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/style/boost.css +0 -0
  802. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/style/boost.js +0 -0
  803. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/style/demo.html +0 -0
  804. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/adapt.feature +0 -0
  805. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/browse.feature +0 -0
  806. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/count.feature +0 -0
  807. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/discover.feature +0 -0
  808. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/doctor.feature +0 -0
  809. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/environment.py +0 -0
  810. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/explain.feature +0 -0
  811. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/index.feature +0 -0
  812. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/install.feature +0 -0
  813. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/list.feature +0 -0
  814. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/mcp.feature +0 -0
  815. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/search.feature +0 -0
  816. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/steps/cli_steps.py +0 -0
  817. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/steps/discovery_steps.py +0 -0
  818. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/steps/mcp_steps.py +0 -0
  819. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/bdd/features/steps/quality_steps.py +0 -0
  820. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/baseline.json +0 -0
  821. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/explain.jsonl +0 -0
  822. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  823. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/golden-natural.jsonl +0 -0
  824. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/golden.jsonl +0 -0
  825. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/recommend.jsonl +0 -0
  826. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/taps-scale.txt +0 -0
  827. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/taps.txt +0 -0
  828. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/eval/tool_calls.jsonl +0 -0
  829. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  830. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_bmad_personas_scope.py +0 -0
  831. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_capabilities_policy.py +0 -0
  832. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_adapt.py +0 -0
  833. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_bmad.py +0 -0
  834. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_catalog.py +0 -0
  835. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_chat.py +0 -0
  836. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_configuration.py +0 -0
  837. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_discovery.py +0 -0
  838. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_hooks.py +0 -0
  839. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_hooks_gemini.py +0 -0
  840. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_identifier_columns.py +0 -0
  841. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_info.py +0 -0
  842. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_intelligence.py +0 -0
  843. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_json_reports.py +0 -0
  844. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_pane_width.py +0 -0
  845. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_pkg.py +0 -0
  846. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_quality.py +0 -0
  847. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_quickstart.py +0 -0
  848. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_tap_pins.py +0 -0
  849. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_taps.py +0 -0
  850. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_cli_team.py +0 -0
  851. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  852. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  853. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_everyday_loop.py +0 -0
  854. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_integrity_enforce.py +0 -0
  855. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_keyed_no_store_hint.py +0 -0
  856. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_kind_conformance.py +0 -0
  857. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_property_parsers.py +0 -0
  858. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_recommend_because_is_true.py +0 -0
  859. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_reports_match_reality.py +0 -0
  860. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_run.py +0 -0
  861. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_tap_signing.py +0 -0
  862. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/functional/test_workspace_scope.py +0 -0
  863. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/README.md +0 -0
  864. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  865. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  866. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  867. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  868. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  869. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  870. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  871. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  872. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  873. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  874. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  875. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  876. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  877. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  878. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  879. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  880. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  881. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  882. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  883. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  884. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  885. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  886. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  887. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/fuzz_frontmatter.py +0 -0
  888. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/fuzz/fuzz_registry.py +0 -0
  889. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/langchain/conftest.py +0 -0
  890. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/langchain/test_graph.py +0 -0
  891. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/langchain/test_loader.py +0 -0
  892. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/langchain/test_retriever.py +0 -0
  893. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/make_fixture.py +0 -0
  894. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/perf/test_benchmarks.py +0 -0
  895. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/smoke.sh +0 -0
  896. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  897. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_a11y_check.py +0 -0
  898. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_action_pin_lockstep.py +0 -0
  899. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_adapters.py +0 -0
  900. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_adapters_multi.py +0 -0
  901. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_adapters_runner.py +0 -0
  902. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_agents.py +0 -0
  903. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_ai.py +0 -0
  904. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_aihost.py +0 -0
  905. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_archive.py +0 -0
  906. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_bmad_core.py +0 -0
  907. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_boost_first_offer.py +0 -0
  908. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_bootstrap.py +0 -0
  909. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_bot_pr_dco.py +0 -0
  910. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_branch_current.py +0 -0
  911. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_browse.py +0 -0
  912. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_builtin.py +0 -0
  913. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_canary_deps.py +0 -0
  914. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_capabilities.py +0 -0
  915. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_catalog.py +0 -0
  916. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_catalog_keyword_words.py +0 -0
  917. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_catalogbundle.py +0 -0
  918. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_chat.py +0 -0
  919. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_check_anchors.py +0 -0
  920. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_check_dco.py +0 -0
  921. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_check_licenses.py +0 -0
  922. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_check_reproducible.py +0 -0
  923. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_claude_settings.py +0 -0
  924. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_clean_internal_cache.py +0 -0
  925. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_cli_update_shards.py +0 -0
  926. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_cliparse.py +0 -0
  927. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_codeql_analysis_key.py +0 -0
  928. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_cohort.py +0 -0
  929. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_command_reference_fresh.py +0 -0
  930. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_community_health_files.py +0 -0
  931. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_compact.py +0 -0
  932. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_complete.py +0 -0
  933. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_complete_rc_block.py +0 -0
  934. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_config.py +0 -0
  935. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_content_dedupe.py +0 -0
  936. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_content_identity.py +0 -0
  937. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_corpus_prose.py +0 -0
  938. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  939. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_coverage_gate_prose.py +0 -0
  940. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_crash_redaction.py +0 -0
  941. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dedup_trust.py +0 -0
  942. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_demo_index.py +0 -0
  943. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense.py +0 -0
  944. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  945. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_embed_dedupe.py +0 -0
  946. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_entry_reuse.py +0 -0
  947. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_entry_vectors.py +0 -0
  948. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_fallback.py +0 -0
  949. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_fix_hint.py +0 -0
  950. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_model_unavailable.py +0 -0
  951. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_progress.py +0 -0
  952. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_quantized.py +0 -0
  953. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_ready_order.py +0 -0
  954. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_shard_real_schema.py +0 -0
  955. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  956. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_shards.py +0 -0
  957. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_status.py +0 -0
  958. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_status_cheap.py +0 -0
  959. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dense_vector_dedupe.py +0 -0
  960. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dependabot_config.py +0 -0
  961. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_deps.py +0 -0
  962. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_discovery.py +0 -0
  963. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_distill_merge.py +0 -0
  964. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_docs_pages_linked.py +0 -0
  965. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_docsite_chrome.py +0 -0
  966. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_doctor_output_polish.py +0 -0
  967. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_drift_hint.py +0 -0
  968. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_dry_run_parity.py +0 -0
  969. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_ed25519.py +0 -0
  970. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_embed.py +0 -0
  971. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_embed_local.py +0 -0
  972. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_embed_truncated_response.py +0 -0
  973. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_entry_key.py +0 -0
  974. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_errors_and_cli_table.py +0 -0
  975. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_baseline.py +0 -0
  976. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_corpus_bodies.py +0 -0
  977. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_faithfulness.py +0 -0
  978. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_gate.py +0 -0
  979. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_grading.py +0 -0
  980. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_metrics.py +0 -0
  981. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_query_sets.py +0 -0
  982. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_stats_summary.py +0 -0
  983. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_tools.py +0 -0
  984. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_eval_tools_probe.py +0 -0
  985. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  986. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_faithfulness.py +0 -0
  987. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_frontmatter.py +0 -0
  988. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_fuzz_targets.py +0 -0
  989. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  990. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_gitleaks_config.py +0 -0
  991. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_gitutil.py +0 -0
  992. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_gitutil_lfs.py +0 -0
  993. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_gitutil_sparse.py +0 -0
  994. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_gstack_coexistence.py +0 -0
  995. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_help_contracts.py +0 -0
  996. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_hook_settings_hosts.py +0 -0
  997. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_imperative.py +0 -0
  998. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_import_budget.py +0 -0
  999. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_injectscan.py +0 -0
  1000. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_install_permission_error.py +0 -0
  1001. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_installscan.py +0 -0
  1002. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_integrity.py +0 -0
  1003. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_journal.py +0 -0
  1004. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_jsonstate.py +0 -0
  1005. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_langchain_packaging.py +0 -0
  1006. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_launcher_python_floor.py +0 -0
  1007. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_lighthouse_budgets.py +0 -0
  1008. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_link_ownership.py +0 -0
  1009. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_localembed.py +0 -0
  1010. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_localembed_e2e.py +0 -0
  1011. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_lockfile.py +0 -0
  1012. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_logs.py +0 -0
  1013. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_marketing_counts.py +0 -0
  1014. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mcp.py +0 -0
  1015. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mcp_install_sandbox_home.py +0 -0
  1016. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mcp_install_scan.py +0 -0
  1017. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mcp_read.py +0 -0
  1018. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mcpdecl.py +0 -0
  1019. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mcphost.py +0 -0
  1020. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_measure_registry.py +0 -0
  1021. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_minisign.py +0 -0
  1022. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mutation_hardening.py +0 -0
  1023. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mutation_shards.py +0 -0
  1024. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mutation_subfile_shards.py +0 -0
  1025. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_mutmut_source_paths.py +0 -0
  1026. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_near_duplicate_collapse.py +0 -0
  1027. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_nethttp.py +0 -0
  1028. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_normalize_sdist.py +0 -0
  1029. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_output.py +0 -0
  1030. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_output_table_drop.py +0 -0
  1031. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_output_table_whole.py +0 -0
  1032. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_page_budget.py +0 -0
  1033. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_paths.py +0 -0
  1034. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_perf_gate.py +0 -0
  1035. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_pkg_confusions.py +0 -0
  1036. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_pkg_injection.py +0 -0
  1037. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_pkg_secrets.py +0 -0
  1038. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_platform_pins.py +0 -0
  1039. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_policy.py +0 -0
  1040. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_post_deploy_smoke.py +0 -0
  1041. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_project_mcp_sidecar.py +0 -0
  1042. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_projectlock.py +0 -0
  1043. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_provenance.py +0 -0
  1044. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_publish_golden_dataset.py +0 -0
  1045. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_quickstart_readiness.py +0 -0
  1046. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_rag.py +0 -0
  1047. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_rag_completeness.py +0 -0
  1048. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_rag_extra_hint.py +0 -0
  1049. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_rag_fastpath.py +0 -0
  1050. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_rag_fusion.py +0 -0
  1051. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_read_text_arg.py +0 -0
  1052. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_registries_fresh.py +0 -0
  1053. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_registry.py +0 -0
  1054. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_registry_categories.py +0 -0
  1055. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_registry_control_chars.py +0 -0
  1056. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_registry_parallel.py +0 -0
  1057. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_release_guard.py +0 -0
  1058. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_release_preflight.py +0 -0
  1059. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_report.py +0 -0
  1060. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_required_checks.py +0 -0
  1061. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_rerank_cache.py +0 -0
  1062. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_resolve.py +0 -0
  1063. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1064. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_rules.py +0 -0
  1065. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_scale_corpus.py +0 -0
  1066. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_schedule_plist.py +0 -0
  1067. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_scopes.py +0 -0
  1068. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_sdist_contents.py +0 -0
  1069. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_secretscan.py +0 -0
  1070. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_selfupdate.py +0 -0
  1071. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_serve.py +0 -0
  1072. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_serve_docs.py +0 -0
  1073. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_shard_plan.py +0 -0
  1074. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_shards.py +0 -0
  1075. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_shards_carry_forward.py +0 -0
  1076. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_shards_incremental.py +0 -0
  1077. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_shards_ingest.py +0 -0
  1078. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_shards_matrix.py +0 -0
  1079. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1080. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_spdx_headers.py +0 -0
  1081. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_spin.py +0 -0
  1082. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_stackprobe.py +0 -0
  1083. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_staleness.py +0 -0
  1084. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_store.py +0 -0
  1085. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_store_materialize.py +0 -0
  1086. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_sync_blocked_links.py +0 -0
  1087. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_sync_lost_lock.py +0 -0
  1088. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1089. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_tap_pins.py +0 -0
  1090. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_token_parity.py +0 -0
  1091. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_toolchain_lock.py +0 -0
  1092. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_trustaudit.py +0 -0
  1093. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_typedvalue.py +0 -0
  1094. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_typosquat.py +0 -0
  1095. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_updatediff.py +0 -0
  1096. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_upstream_path.py +0 -0
  1097. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_util.py +0 -0
  1098. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_version.py +0 -0
  1099. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_version_tags.py +0 -0
  1100. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_vex.py +0 -0
  1101. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_visual_harness_capture.py +0 -0
  1102. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_visual_harness_flags.py +0 -0
  1103. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_workflow_concurrency.py +0 -0
  1104. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1105. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1106. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_workflow_timeouts.py +0 -0
  1107. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_workflows.py +0 -0
  1108. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1109. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/visual/a11y_check.mjs +0 -0
  1110. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/visual/console_check.mjs +0 -0
  1111. {boost_skill_cli-1.2.144 → boost_skill_cli-1.2.146}/tests/visual/visual_check.mjs +0 -0
@@ -12,6 +12,7 @@ ASan
12
12
  Attio
13
13
  Autofix
14
14
  autofix
15
+ autouse
15
16
  Backfilling
16
17
  backfilling
17
18
  backport
@@ -25,6 +26,8 @@ bestpractices
25
26
  bmad
26
27
  bookended
27
28
  Camunda
29
+ chdir
30
+ chdirs
28
31
  CI's
29
32
  CLIs
30
33
  Codecov
@@ -36,6 +39,7 @@ CPython
36
39
  CRM
37
40
  cron
38
41
  crontab
42
+ cwd
39
43
  cyclomatic
40
44
  dedupe
41
45
  deduped
@@ -70,6 +74,7 @@ GTM
70
74
  gzip
71
75
  gzipped
72
76
  hardcode
77
+ hardcoded
73
78
  Helm
74
79
  hotspots
75
80
  Huashu
@@ -102,6 +107,7 @@ mtime
102
107
  mtimes
103
108
  mutmut
104
109
  mypy
110
+ nodeid
105
111
  nonces
106
112
  npm
107
113
  onboards
@@ -148,9 +154,11 @@ setuptools
148
154
  SHAs
149
155
  Shopify
150
156
  Sigstore
157
+ snake_case
151
158
  Snyk
152
159
  SonarCloud
153
160
  stderr
161
+ stdin
154
162
  Stdlib
155
163
  stdlib
156
164
  stdout
@@ -34,6 +34,50 @@ The functional/unit `sandbox` fixture (`tests/conftest.py`) also sets
34
34
  block on a confirm prompt or a real AI call — override explicitly in a test
35
35
  that means to exercise the AI or confirmation path.
36
36
 
37
+ **`sandbox` also chdirs into `tmp_path/"cwd"`**, because the working directory
38
+ is the one input *project* scope resolves against: `scopes.resolve_base` walks
39
+ up from `os.getcwd()` looking for a `.git`, so a test installing with
40
+ `scope="project"` and no explicit `base=` used to write `.boost/skill-lock.json`
41
+ plus a full five-agent fan-out into the developer's own checkout — all of it
42
+ gitignored, so `git status` never said a word, and the next full run read the
43
+ leftover lock back and failed a dozen tests that assert an empty install state.
44
+ The sandbox cwd is a *sibling* of the fake `$HOME`, never `$HOME` itself
45
+ (`scopes.project_root` refuses to call `$HOME` a project, which would make
46
+ `resolve_base` return `None` and change what every project-scope test means),
47
+ and it carries no `.git`: **a test that needs a real project root plants its own
48
+ marker and chdirs into it.** The backstop is the autouse `_repo_root_guard`
49
+ fixture, which snapshot-diffs the project-scope paths under the checkout *and*
50
+ under the directory pytest started in, and fails the offending test by nodeid.
51
+ Two details there are load-bearing. **The checkout is found by walking up for a
52
+ VCS marker, never from `__file__`**: mutmut copies `tests/` into `mutants/` and
53
+ runs the suite from there, so under the mutation gate — the one run the guard
54
+ exists for — `Path(__file__).parent.parent` *is* `mutants/`, it coincides with
55
+ the start directory, and a derivation from either watches only `mutants/` while
56
+ `scopes.resolve_base` puts the escaped install at the real repo root. That walk
57
+ **stops at `$HOME`**, where `scopes.project_root` stops: a dotfiles `~/.git` is
58
+ common, no scope-resolved writer can put a project install at `$HOME`, and
59
+ without the stop the guard fingerprints the live `~/.claude`, `~/.codex` and
60
+ `~/.boost` trees — so a `boost install` in another terminal fails whichever
61
+ test happened to be running. And a
62
+ watched **directory** is fingerprinted by its immediate entries with each
63
+ file's size and `mtime_ns`, not by name alone, or replacing a slash command the
64
+ developer wrote by hand leaves the listing identical; a watched **file** by
65
+ content, except an agent **context file** (`CLAUDE.local.md`, `GEMINI.md`,
66
+ `AGENTS.md`), which is prose a human also edits and is fingerprinted by its
67
+ `<!-- boost:rule:… -->` marker lines alone — a whole-file hash turns a teammate
68
+ appending a line during a tens-of-minutes `make check` into a flake in a
69
+ required gate. The probe list is derived
70
+ from the live agent table over `config.DEFAULTS["agents"]`, plus
71
+ `rules.CONTEXT_FILES` and `hookhost.hosts()`, so a new write target is covered
72
+ by adding it to those tables, not to the guard — and it reads that config
73
+ defensively, because an autouse fixture that can raise is a setup error on
74
+ every test in the suite rather than one failure. The standing exception is
75
+ `store.project_mcp_sidecar` (`<repo>/.mcp.json`), which no table names because
76
+ `register_project_mcp` joins it straight onto the base; it is probed by name,
77
+ and it is the one project-scope artifact that is committable, so a report that
78
+ omitted it would have the developer clean up everything the guard named and
79
+ commit one file anyway.
80
+
37
81
  ## The one gate that matters
38
82
 
39
83
  Before calling any change done, run the full gate:
@@ -542,9 +586,9 @@ nothing. Consequences for code you write:
542
586
  `workflows` flag exists and `agents.workflow_agents()` is the set that
543
587
  honours it. `~/.codex/rules/*.rules` is the `execpolicy` command-approval
544
588
  DSL, not an instructions dir — don't write there. Its **MCP host is wired
545
- up** (`core/mcphost.py`, fourth row — see below); its **hooks** host is
546
- not, because the hook `timeout` units are unestablished, so this file does
547
- not record it as done.
589
+ up** (`core/mcphost.py`, fourth row — see below) and so is its **hooks**
590
+ host (`core/hookhost.py`, third row — the `timeout` units this file used
591
+ to record as unestablished are **seconds**, measured; see below).
548
592
  - **Its dir is the one agent path that is not fixed**, hence the
549
593
  `${CODEX_HOME:-~/.codex}/skills` default and `paths.expand`'s leading
550
594
  `${VAR:-fallback}` syntax. Only a *leading* reference expands and nesting
@@ -667,14 +711,14 @@ nothing. Consequences for code you write:
667
711
  no-op against a user-scope entry, and Claude, which needs none, is handed one
668
712
  so the argv cannot reach `<cwd>/.mcp.json`, the one scope outside every
669
713
  `$HOME` and so the one `mcphost.escapes_home` cannot judge.
670
- - **`core/hookhost.py` is the same idea for hooks, and two hosts have them.**
714
+ - **`core/hookhost.py` is the same idea for hooks, and three hosts have them.**
671
715
  `boost hooks` writes Claude Code's `~/.claude/settings.json` (the default,
672
- unchanged) or, behind `--host gemini`, the `~/.gemini/settings.json` that
673
- Gemini CLI reads;
716
+ unchanged), or behind `--host` the `~/.gemini/settings.json` that Gemini CLI
717
+ reads or the `$CODEX_HOME/hooks.json` that Codex CLI reads;
674
718
  `core/claude_settings.py` takes `host=` throughout and asks the table for the
675
719
  differences. The `hooks` key and the `{matcher, hooks: [{type, command,
676
- timeout}]}` block shape are *identical* between them, which is exactly what
677
- makes the three real differences easy to ship wrong:
720
+ timeout}]}` block shape are *identical* across all three, which is exactly
721
+ what makes the real differences easy to ship wrong. Gemini's three:
678
722
  - **`timeout` units.** Claude's is **seconds**; Gemini's is **milliseconds**
679
723
  (`DEFAULT_HOOK_TIMEOUT = 6e4`, fed straight to `setTimeout`). Callers pass
680
724
  seconds and `hookhost.hook_entry` converts, so boost's `--timeout 10` is ten
@@ -701,6 +745,73 @@ nothing. Consequences for code you write:
701
745
  sources are named at the top of `hookhost.py` so the next person can re-check
702
746
  them against a newer release.
703
747
 
748
+ **Codex's four are different differences, and two of them are not about the
749
+ block at all.** Measured against Codex CLI 0.156.1 on 2026-09-27, from four
750
+ sources named at the top of `hookhost.py` (`codex app-server
751
+ generate-json-schema`; `strings` over the binary the ChatGPT app ships;
752
+ observed `codex app-server` `hooks/list` runs; the 23 embedded draft-07
753
+ schemas its `schema_loader.rs` reads):
754
+ - **The filename is `hooks.json`**, not `settings.json` — the only host
755
+ where it is not, hence `hookhost.settings_file`. A `hooks` key in a
756
+ `settings.json` is a file Codex never opens, and nothing says so.
757
+ - **The user root moves.** `$CODEX_HOME` relocates it and a *relative* value
758
+ is honoured against the current directory — the measured grammar lives
759
+ once, in `mcphost.config_home`. The **project** root does not move: it is
760
+ the literal `<project>/.codex` whatever `CODEX_HOME` says. Because the
761
+ variable is ambient, `claude_settings.escaping_path` refuses a user-scope
762
+ write that lands outside this `$HOME` unless `--force` comes with it —
763
+ the same hole `test_mcp_install_sandbox_home.py` closes for `mcp add`,
764
+ where a sandboxed `HOME` does not move `CODEX_HOME` and a test run wrote
765
+ into the developer's live `~/.codex`. The sweeps in `commands/bmad.py`
766
+ **skip** such a host with a warning rather than inheriting the refusal:
767
+ an aborted `bmad on` would leave Claude without its hooks either. So
768
+ `boost bmad` carries its own `--force`, and needs to: `bmad doctor` reads
769
+ the relocated file and reports the hook that will actually run, and
770
+ without the flag no `bmad` command could act on what `doctor` had just
771
+ reported. `_autopilot_on` resolves its host list **before** writing the
772
+ personas, because that resolution is the only step that can refuse and
773
+ refusing after `write_personas` left files on disk that
774
+ `_set_scope_state` never recorded.
775
+ - **`timeout` is in seconds**, agreeing with Claude and not Gemini. (Also
776
+ measured: `timeoutSec` is the *wire* spelling only — as a config key it is
777
+ ignored and the hook silently falls back to Codex's 600-second default.)
778
+ - **Event names are matched exactly, and an unknown one is dropped in
779
+ silence.** Twelve PascalCase events; `NotARealEvent` and `sessionstart`
780
+ each produced no hook, no warning and no error. So Codex is
781
+ `strict_events` in the table and `translate` returns `None` rather than
782
+ taking Gemini's warn-but-add fallthrough — the "looks installed and never
783
+ fires" failure this module exists to prevent. `CLAUDE_TO_CODEX` maps all
784
+ ten Claude events explicitly; only `Notification` has no counterpart
785
+ (Codex *has* both sub-agent events, which is why the refusal's "has no
786
+ sub-agents" clause is now a per-host `no_counterpart_note` rather than one
787
+ hardcoded sentence).
788
+
789
+ Two more Codex facts shape the writer rather than the block. A hook's trust
790
+ key is positional — `<sourcePath>:<event>:<group_index>:<handler_index>` —
791
+ so a re-add that drops a group and appends a new one re-keys every group
792
+ after it and voids the user's trust grant on each (measured: an untouched
793
+ neighbour moved `:0:0` -> `:1:0`). `add_hook` therefore **replaces in
794
+ place**, for every host: shuffling a file boost does not own was never a
795
+ feature, only never load-bearing. And a new hook does not run until the user
796
+ trusts it at startup, with project scope also needing `trust_level =
797
+ "trusted"` — `commands/hooks.py` says so after a Codex add, because "added"
798
+ alone is true and useless.
799
+
800
+ **Hook stdin and stdout are schema-validated, and both schemas were read
801
+ rather than assumed.** Every event has an embedded pair,
802
+ `<event>.command.{input,output}`, each `"additionalProperties": false`. The
803
+ output side carries `hookSpecificOutput` -> `<Event>HookSpecificOutputWire`
804
+ with `additionalContext` and a required `hookEventName` pinned to that
805
+ event's PascalCase `const`, so `hookhost.context_output`'s Gemini-shaped
806
+ JSON is what Codex wants too — Claude's plain-text `SessionStart` shortcut
807
+ is the one thing that does not carry over. The input side uses Claude's
808
+ snake_case keys (`prompt`, `session_id`, `cwd`, `hook_event_name`) plus
809
+ Codex's own `model`/`permission_mode`/`turn_id`, so `bmad._read_hook_stdin`
810
+ needs no per-host branch. Both were worth measuring rather than inferring:
811
+ `_host_command` ends every non-Claude hook in `2>/dev/null || true`, so a
812
+ key spelled wrong on either side is a router that prints nothing, on every
813
+ prompt, with no error anywhere.
814
+
704
815
  `core/catalog.scan_dir` walks a tap's clone and classifies each file into one
705
816
  of the three item kinds (see Non-obvious rules above); `core/store.py` owns
706
817
  install, uninstall and sync — copying into the canonical store, symlinking into
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.144
3
+ Version: 1.2.146
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -533,13 +533,15 @@ should show as Connected.
533
533
 
534
534
  ## Agent hooks and BMAD
535
535
 
536
- `boost hooks` manages hooks in `settings.json` for Claude Code and Gemini CLI,
536
+ `boost hooks` manages hooks for Claude Code, Gemini CLI and Codex CLI —
537
+ `settings.json` for the first two, `$CODEX_HOME/hooks.json` for Codex —
537
538
  translating between their event vocabularies and timeout units. `boost bmad on`
538
539
  uses them to put the BMAD Method's personas in charge of every task, in one
539
540
  command with no Node and no network.
540
541
 
541
542
  ```bash
542
543
  boost hooks add SessionStart -c 'echo hello' -n greet --scope project
544
+ boost hooks add SessionStart --host codex -c 'echo hello' -n greet
543
545
  boost bmad on
544
546
  ```
545
547
 
@@ -491,13 +491,15 @@ should show as Connected.
491
491
 
492
492
  ## Agent hooks and BMAD
493
493
 
494
- `boost hooks` manages hooks in `settings.json` for Claude Code and Gemini CLI,
494
+ `boost hooks` manages hooks for Claude Code, Gemini CLI and Codex CLI —
495
+ `settings.json` for the first two, `$CODEX_HOME/hooks.json` for Codex —
495
496
  translating between their event vocabularies and timeout units. `boost bmad on`
496
497
  uses them to put the BMAD Method's personas in charge of every task, in one
497
498
  command with no Node and no network.
498
499
 
499
500
  ```bash
500
501
  boost hooks add SessionStart -c 'echo hello' -n greet --scope project
502
+ boost hooks add SessionStart --host codex -c 'echo hello' -n greet
501
503
  boost bmad on
502
504
  ```
503
505
 
@@ -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.144'
22
- __version_tuple__ = version_tuple = (1, 2, 144)
21
+ __version__ = version = '1.2.146'
22
+ __version_tuple__ = version_tuple = (1, 2, 146)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -129,7 +129,7 @@ COMMANDS = [
129
129
  ("schedule", "cfg", "configuration", "Manage automatic skill-sync scheduling"),
130
130
  ("serve", "cfg", "configuration", "Browse the catalogue in a browser: search, facets and a tap graph"),
131
131
  ("mcp", "cfg", "configuration", "Register boost as an MCP server (Claude Code, Gemini CLI, Antigravity CLI, Codex CLI)"),
132
- ("hooks", "cfg", "hooks", "Manage agent hooks (Claude Code, Gemini CLI) in settings.json"),
132
+ ("hooks", "cfg", "hooks", "Manage agent hooks (Claude Code, Gemini CLI, Codex CLI)"),
133
133
  ("bmad", "cfg", "bmad", "BMAD Method autopilot — `bmad on` routes every task to a persona"),
134
134
  ("self-update", "cfg", "configuration", "Update boost itself to the latest version"),
135
135
  # Team & Collaboration (6)
@@ -113,6 +113,10 @@ def cmd_bmad(argv) -> int:
113
113
  help="enable the startup toggle right after install")
114
114
  p.add_argument("--plain", action="store_true",
115
115
  help="route: print the banner as text, not as hook JSON")
116
+ p.add_argument("--force", action="store_true",
117
+ help="reach hosts whose settings file lies outside this "
118
+ "$HOME (a relocated $CODEX_HOME), which on/off/"
119
+ "startup/uninstall/disable otherwise skip")
116
120
  p.add_argument("--host", metavar="H", default=None,
117
121
  choices=(*hookhost.hosts(), "auto"),
118
122
  help="on/startup: hosts to hook (%s; default auto: "
@@ -121,9 +125,9 @@ def cmd_bmad(argv) -> int:
121
125
  args = p.parse_args(argv)
122
126
 
123
127
  if args.action == "on":
124
- return _autopilot_on(args.scope, args.host)
128
+ return _autopilot_on(args.scope, args.host, args.force)
125
129
  if args.action == "off":
126
- return _autopilot_off(args.scope)
130
+ return _autopilot_off(args.scope, args.force)
127
131
  if args.action == "route":
128
132
  return _route(args.value, args.plain, args.scope, _one_host(args.host))
129
133
  if args.action == "personas":
@@ -133,13 +137,14 @@ def cmd_bmad(argv) -> int:
133
137
  if args.action == "init":
134
138
  return _init(args.modules, args.startup)
135
139
  if args.action == "startup":
136
- return _startup(args.value or "status", args.scope, args.host)
140
+ return _startup(args.value or "status", args.scope, args.host,
141
+ args.force)
137
142
  if args.action == "orient":
138
143
  return _orient(args.scope, _one_host(args.host))
139
144
  if args.action == "uninstall":
140
- return _uninstall(args.scope, args.yes)
145
+ return _uninstall(args.scope, args.yes, args.force)
141
146
  if args.action == "disable":
142
- return _disable(args.scope)
147
+ return _disable(args.scope, args.force)
143
148
  if args.action == "enable":
144
149
  return _enable(args.scope)
145
150
  return _doctor() # doctor | status
@@ -187,7 +192,7 @@ def _one_host(host) -> str:
187
192
  return hookhost.CLAUDE if host in (None, "auto") else host
188
193
 
189
194
 
190
- def _hook_hosts(scope: str, requested=None) -> list[str]:
195
+ def _hook_hosts(scope: str, requested=None, force: bool = False) -> list[str]:
191
196
  """Hosts to write hooks into: Claude always, others on evidence of use.
192
197
 
193
198
  Claude is unconditional. It is boost's primary host and the behaviour every
@@ -205,20 +210,55 @@ def _hook_hosts(scope: str, requested=None) -> list[str]:
205
210
 
206
211
  ``requested`` (`--host`) overrides the rule: naming one host writes that
207
212
  host only, so Claude-only no longer means hand-editing Gemini's settings
208
- after every `on`.
213
+ after every `on`. It does **not** override the escape guard — naming a
214
+ host whose file lies outside this `$HOME` raises here, before the caller
215
+ has written anything, rather than from `add_hook` half a command later.
216
+ `--force` is what gets past it, on either path.
217
+
218
+ Resolved once per command and passed around, not recomputed per hook:
219
+ `on` installs two hooks, and a host list that decided itself twice said
220
+ "skipping Codex CLI" twice for one decision.
209
221
  """
210
222
  if requested not in (None, "auto"):
211
- return [requested]
223
+ cs.refuse_escape(scope, str(requested), force=force)
224
+ return [str(requested)]
212
225
  chosen = [hookhost.CLAUDE]
213
226
  for host in hookhost.hosts():
214
227
  if host == hookhost.CLAUDE:
215
228
  continue
216
229
  dotdir = cs.settings_path(scope, host=host).parent
217
- if shutil.which(hookhost.cli(host)) or dotdir.is_dir():
218
- chosen.append(host)
230
+ if not (shutil.which(hookhost.cli(host)) or dotdir.is_dir()):
231
+ continue
232
+ # After the evidence check: warning about a host that was never a
233
+ # candidate is noise, and it is the only thing this warning is for.
234
+ if _skip_escaping(scope, host, force):
235
+ continue
236
+ chosen.append(host)
219
237
  return chosen
220
238
 
221
239
 
240
+ def _skip_escaping(scope: str, host: str, force: bool = False) -> bool:
241
+ """True — and says so — when `host`'s file lies outside this `$HOME`.
242
+
243
+ `bmad on`/`off` sweep every host they find, so one host boost must not
244
+ write is a reason to leave that host alone, not to abort the sweep: an
245
+ unguarded `add_hook` raises and Claude's hook never gets installed either.
246
+
247
+ The deliberate case is `--force`, on `bmad` itself and not only on `boost
248
+ hooks`. Without it here, `bmad doctor` could report a hook in a relocated
249
+ `$CODEX_HOME` — it reads what will actually run — that `bmad off` then
250
+ refused to remove, with nothing in the command able to reconcile the two.
251
+ """
252
+ if force:
253
+ return False
254
+ target = cs.escaping_path(scope, host)
255
+ if target is None:
256
+ return False
257
+ out.warn("skipping %s — %s is outside this $HOME"
258
+ % (hookhost.label(host), target), wrap=True)
259
+ return True
260
+
261
+
222
262
  #: (Claude event, hook name, matcher). The matcher is Claude's own
223
263
  #: `SessionStart` source vocabulary, and `hookhost` deliberately does not
224
264
  #: translate matchers — they pass through host-native — so it is applied only
@@ -243,11 +283,16 @@ def _host_command(host: str, command: str) -> str:
243
283
 
244
284
 
245
285
  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."""
286
+ hosts: list[str], force: bool = False) -> list[str]:
287
+ """Install one hook on each of `hosts`. Returns the ones written.
288
+
289
+ Takes the list rather than resolving it, because resolving it is where
290
+ the escape guard and its warning live and a caller installing two hooks
291
+ must make that decision once.
292
+ """
248
293
  event, name, matcher = spec
249
294
  written = []
250
- for host in _hook_hosts(scope, requested):
295
+ for host in hosts:
251
296
  target = hookhost.translate(host, event)
252
297
  if target is None:
253
298
  # Refused out loud rather than dropped: a hook the user asked for
@@ -257,12 +302,13 @@ def _add_hook_everywhere(scope: str, spec: tuple, command: str,
257
302
  continue
258
303
  cs.add_hook(scope, target, name, _host_command(host, command),
259
304
  matcher=matcher if host == hookhost.CLAUDE else None,
260
- host=host)
305
+ host=host, force=force)
261
306
  written.append(host)
262
307
  return written
263
308
 
264
309
 
265
- def _remove_hook_everywhere(scope: str, *specs: tuple) -> int:
310
+ def _remove_hook_everywhere(scope: str, *specs: tuple,
311
+ force: bool = False) -> int:
266
312
  """Remove hooks from every host, installed or not. Returns how many were.
267
313
 
268
314
  Unlike install this does not filter on `shutil.which`: someone who removed
@@ -273,21 +319,30 @@ def _remove_hook_everywhere(scope: str, *specs: tuple) -> int:
273
319
  """
274
320
  removed = 0
275
321
  for host in hookhost.hosts():
322
+ if _skip_escaping(scope, host, force):
323
+ continue
276
324
  for event, name, _matcher in specs:
277
325
  target = hookhost.translate(host, event)
278
326
  if target is not None:
279
- removed += cs.remove_hook(scope, target, name, host=host)
327
+ removed += cs.remove_hook(scope, target, name, host=host,
328
+ force=force)
280
329
  return removed
281
330
 
282
331
 
283
- def _autopilot_on(scope, requested_host=None) -> int:
332
+ def _autopilot_on(scope, requested_host=None, force: bool = False) -> int:
284
333
  """The one command. Personas + orientation + router, in one idempotent pass.
285
334
 
286
335
  Global by default: the point of the autopilot is that a task arriving in
287
336
  *any* repo already knows which persona owns it, and per-project setup would
288
337
  make that a per-repo chore.
338
+
339
+ The host list is resolved **first**, before anything is written. It is the
340
+ only step that can refuse — a `--host` whose settings file lies outside
341
+ this `$HOME` — and refusing after `write_personas` left persona files on
342
+ disk that `_set_scope_state` never got to record.
289
343
  """
290
344
  scope = scope or "global"
345
+ chosen = _hook_hosts(scope, requested_host, force)
291
346
  agents = _agents_dir(scope)
292
347
  # Asked before writing: whether this run *creates* the directory decides
293
348
  # what running sessions can see (see the restart line below).
@@ -302,10 +357,10 @@ def _autopilot_on(scope, requested_host=None) -> int:
302
357
  launcher = shlex.quote(str(paths.launcher()))
303
358
  hosts = _add_hook_everywhere(
304
359
  scope, _ORIENT_HOOK, "%s bmad orient --scope %s" % (launcher, scope),
305
- requested_host)
360
+ chosen, force)
306
361
  _add_hook_everywhere(scope, _ROUTE_HOOK,
307
362
  "%s bmad route --scope %s" % (launcher, scope),
308
- requested_host)
363
+ chosen, force)
309
364
  _set_scope_state(scope, autopilot=True, startup=True, personas=present,
310
365
  enabled_at=util.now_iso())
311
366
  journal.log("bmad-autopilot", "on", scope=scope, personas=present)
@@ -335,9 +390,10 @@ def _autopilot_on(scope, requested_host=None) -> int:
335
390
  return 0
336
391
 
337
392
 
338
- def _autopilot_off(scope) -> int:
393
+ def _autopilot_off(scope, force: bool = False) -> int:
339
394
  scope = scope or "global"
340
- hooks_removed = _remove_hook_everywhere(scope, _ORIENT_HOOK, _ROUTE_HOOK)
395
+ hooks_removed = _remove_hook_everywhere(scope, _ORIENT_HOOK, _ROUTE_HOOK,
396
+ force=force)
341
397
  removed = core.remove_personas(_agents_dir(scope))
342
398
  _set_scope_state(scope, autopilot=False, startup=False, personas=0)
343
399
  journal.log("bmad-autopilot", "off", scope=scope, personas=len(removed))
@@ -350,6 +406,15 @@ def _autopilot_off(scope) -> int:
350
406
  def _read_hook_stdin() -> dict:
351
407
  """Claude Code's UserPromptSubmit payload, or {} for anything unreadable.
352
408
 
409
+ One reader for every host, because the payload keys are the same on all
410
+ three. Measured for Codex, not assumed: its
411
+ ``user-prompt-submit.command.input`` schema requires ``prompt``,
412
+ ``session_id``, ``cwd`` and ``hook_event_name`` under exactly Claude's
413
+ snake_case spellings (plus ``model``/``permission_mode``/``turn_id`` of
414
+ its own). A different spelling would have reached ``_route`` as an empty
415
+ prompt, classified TRIVIAL, and printed nothing — silently, because
416
+ ``_host_command`` ends the hook in ``2>/dev/null || true``.
417
+
353
418
  Accepts plain text too, so `echo "add tests for the scanner" | boost bmad
354
419
  route` works for a human debugging the routing table. (Give it a real
355
420
  prompt: anything under `core.MIN_WORDS` words classifies as trivial and
@@ -632,12 +697,14 @@ def _drop_retired_skills(before: dict, installed: list[str],
632
697
 
633
698
  # ----------------------------------------------------------------------- toggle
634
699
 
635
- def _startup(value, scope, requested_host=None) -> int:
700
+ def _startup(value, scope, requested_host=None, force: bool = False) -> int:
636
701
  scope = scope or "project"
637
702
  if value == "on":
638
703
  cmd = "%s bmad orient --scope %s" % (
639
704
  shlex.quote(str(paths.launcher())), scope)
640
- started = _add_hook_everywhere(scope, _ORIENT_HOOK, cmd, requested_host)
705
+ started = _add_hook_everywhere(
706
+ scope, _ORIENT_HOOK, cmd,
707
+ _hook_hosts(scope, requested_host, force), force)
641
708
  _set_scope_state(scope, startup=True)
642
709
  journal.log("bmad-startup", "on", scope=scope)
643
710
  out.ok("BMAD startup ON (%s) — new sessions get orientation" % scope)
@@ -645,7 +712,7 @@ def _startup(value, scope, requested_host=None) -> int:
645
712
  out.dim(" hook → %s" % cs.settings_path(scope, host=host))
646
713
  return 0
647
714
  if value == "off":
648
- _remove_hook_everywhere(scope, _ORIENT_HOOK)
715
+ _remove_hook_everywhere(scope, _ORIENT_HOOK, force=force)
649
716
  _set_scope_state(scope, startup=False)
650
717
  journal.log("bmad-startup", "off", scope=scope)
651
718
  out.ok("BMAD startup OFF (%s) — skills stay installed" % scope)
@@ -692,14 +759,14 @@ def _status(scope) -> int:
692
759
 
693
760
  # ------------------------------------------------------------------- teardown
694
761
 
695
- def _uninstall(scope, yes) -> int:
762
+ def _uninstall(scope, yes, force: bool = False) -> int:
696
763
  scope = scope or "project"
697
764
  if not (yes or out.confirm(
698
765
  "Remove BMAD (%s)? deletes bmad-* skills%s" % (
699
766
  scope, " + _bmad/, _bmad-output/" if scope == "project" else ""))):
700
767
  out.info("aborted")
701
768
  return 1
702
- _remove_hook_everywhere(scope, _ORIENT_HOOK, _ROUTE_HOOK)
769
+ _remove_hook_everywhere(scope, _ORIENT_HOOK, _ROUTE_HOOK, force=force)
703
770
  removed = _rm_skills(_skills_dir(scope))
704
771
  removed += len(core.remove_personas(_agents_dir(scope)))
705
772
  if scope == "project":
@@ -714,10 +781,10 @@ def _uninstall(scope, yes) -> int:
714
781
  return 0
715
782
 
716
783
 
717
- def _disable(scope) -> int:
784
+ def _disable(scope, force: bool = False) -> int:
718
785
  """Quarantine: turn startup off and move skills aside (recoverable)."""
719
786
  scope = scope or "project"
720
- _remove_hook_everywhere(scope, _ORIENT_HOOK)
787
+ _remove_hook_everywhere(scope, _ORIENT_HOOK, force=force)
721
788
  qdir = _quarantine_dir(scope)
722
789
  qdir.mkdir(parents=True, exist_ok=True)
723
790
  moved = 0