boost-skill-cli 1.2.91__tar.gz → 1.2.92__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 (962) hide show
  1. {boost_skill_cli-1.2.91/boost_skill_cli.egg-info → boost_skill_cli-1.2.92}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/cli.py +10 -2
  4. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/bmad.py +1 -1
  5. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/configuration.py +28 -4
  6. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/discovery.py +23 -13
  7. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/hooks.py +4 -1
  8. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/info.py +89 -56
  9. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/intelligence.py +50 -20
  10. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/pkg.py +115 -47
  11. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/quality.py +71 -25
  12. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/safety.py +71 -21
  13. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/taps.py +20 -9
  14. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/team.py +7 -3
  15. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/adapters.py +20 -9
  16. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/catalog.py +35 -0
  17. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/lockfile.py +30 -0
  18. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/output.py +70 -8
  19. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/registry.py +52 -12
  20. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/store.py +110 -13
  21. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/trustaudit.py +18 -3
  22. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  23. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/adapters.html +4 -1
  24. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/bmad.md +2 -1
  25. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/commands.html +46 -39
  26. boost_skill_cli-1.2.92/docs/demo.gif +0 -0
  27. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/index.html +1 -1
  28. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-adapt-findings.md +15 -5
  29. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +3 -3
  30. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-audit-findings.md +3 -3
  31. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +3 -3
  32. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +3 -3
  33. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +3 -3
  34. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +3 -3
  35. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +4 -4
  36. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +3 -3
  37. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +3 -3
  38. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-tag-findings.md +3 -3
  39. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap.html +39 -22
  40. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/build_command_reference.py +37 -4
  41. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/conftest.py +25 -0
  42. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_adapt.py +32 -0
  43. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_bmad.py +1 -1
  44. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_configuration.py +24 -0
  45. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_discovery.py +57 -3
  46. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_info.py +127 -25
  47. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_intelligence.py +81 -1
  48. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_pane_width.py +7 -2
  49. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_pkg.py +123 -1
  50. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_quality.py +182 -3
  51. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_taps.py +11 -4
  52. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_team.py +22 -0
  53. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_run.py +9 -0
  54. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_adapters.py +14 -0
  55. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_adapters_multi.py +134 -0
  56. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_catalog.py +63 -0
  57. boost_skill_cli-1.2.92/tests/unit/test_command_reference_fresh.py +157 -0
  58. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_compact.py +48 -0
  59. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_errors_and_cli_table.py +15 -3
  60. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_lockfile.py +72 -0
  61. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_output.py +161 -9
  62. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_store.py +226 -0
  63. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_tap_pins.py +96 -1
  64. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_trustaudit.py +18 -1
  65. boost_skill_cli-1.2.91/docs/demo.gif +0 -0
  66. boost_skill_cli-1.2.91/tests/unit/test_command_reference_fresh.py +0 -76
  67. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.gitattributes +0 -0
  68. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.gitignore +0 -0
  69. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.gitleaks.toml +0 -0
  70. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.htmlvalidate.json +0 -0
  71. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.lighthouserc.json +0 -0
  72. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.lycheeignore +0 -0
  73. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.markdownlint-cli2.jsonc +0 -0
  74. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.pre-commit-config.yaml +0 -0
  75. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.stylelintrc.json +0 -0
  76. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.vale/styles/boost/AIWriting.yml +0 -0
  77. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.vale/styles/boost/Terminology.yml +0 -0
  78. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  79. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/.vale.ini +0 -0
  80. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/CLAUDE.md +0 -0
  81. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/CODE_OF_CONDUCT.md +0 -0
  82. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/CONTRIBUTING.md +0 -0
  83. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/DCO +0 -0
  84. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/GOVERNANCE.md +0 -0
  85. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/LICENSE +0 -0
  86. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/MAINTAINERS.md +0 -0
  87. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/MANIFEST.in +0 -0
  88. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/Makefile +0 -0
  89. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/README.md +0 -0
  90. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/SECURITY.md +0 -0
  91. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/SUPPORT.md +0 -0
  92. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost +0 -0
  93. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/__init__.py +0 -0
  94. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/__main__.py +0 -0
  95. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/cliparse.py +0 -0
  96. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/__init__.py +0 -0
  97. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/_common.py +0 -0
  98. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/quickstart.py +0 -0
  99. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/commands/run.py +0 -0
  100. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/__init__.py +0 -0
  101. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/agents.py +0 -0
  102. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/ai.py +0 -0
  103. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/aihost.py +0 -0
  104. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/bmad.py +0 -0
  105. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/bootstrap.py +0 -0
  106. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/browse.py +0 -0
  107. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/builtin.py +0 -0
  108. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/capabilities.py +0 -0
  109. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/catalogbundle.py +0 -0
  110. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/chat.py +0 -0
  111. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/claude_settings.py +0 -0
  112. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/complete.py +0 -0
  113. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/config.py +0 -0
  114. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/dense.py +0 -0
  115. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/ed25519.py +0 -0
  116. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/embed.py +0 -0
  117. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/faithfulness.py +0 -0
  118. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/frontmatter.py +0 -0
  119. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/gitutil.py +0 -0
  120. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/hookhost.py +0 -0
  121. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/imperative.py +0 -0
  122. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/injectscan.py +0 -0
  123. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/installscan.py +0 -0
  124. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/integrity.py +0 -0
  125. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/journal.py +0 -0
  126. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/jsonstate.py +0 -0
  127. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/localembed.py +0 -0
  128. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/logs.py +0 -0
  129. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/mcp.py +0 -0
  130. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/mcpdecl.py +0 -0
  131. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/mcphost.py +0 -0
  132. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/minisign.py +0 -0
  133. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/nethttp.py +0 -0
  134. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/paths.py +0 -0
  135. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/policy.py +0 -0
  136. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/projectlock.py +0 -0
  137. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/provenance.py +0 -0
  138. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/rag.py +0 -0
  139. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/resolve.py +0 -0
  140. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/rules.py +0 -0
  141. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/scopes.py +0 -0
  142. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/secretscan.py +0 -0
  143. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/selfupdate.py +0 -0
  144. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/serve.py +0 -0
  145. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/shards.py +0 -0
  146. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/stackprobe.py +0 -0
  147. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/staleness.py +0 -0
  148. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/typedvalue.py +0 -0
  149. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/typosquat.py +0 -0
  150. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/updatediff.py +0 -0
  151. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/util.py +0 -0
  152. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/core/workflows.py +0 -0
  153. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/data/registries.json +0 -0
  154. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/data/rules/boost-first.mdc +0 -0
  155. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/errors.py +0 -0
  156. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_cli/spin.py +0 -0
  157. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_langchain/__init__.py +0 -0
  158. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_langchain/_compat.py +0 -0
  159. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_langchain/graph.py +0 -0
  160. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_langchain/loader.py +0 -0
  161. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_langchain/py.typed +0 -0
  162. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_langchain/retriever.py +0 -0
  163. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
  164. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  165. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  166. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_skill_cli.egg-info/requires.txt +0 -0
  167. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/boost_skill_cli.egg-info/top_level.txt +0 -0
  168. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/codecov.yml +0 -0
  169. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/.claude/settings.local.json +0 -0
  170. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/DEBUGGING.md +0 -0
  171. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/architecture/README.md +0 -0
  172. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/architecture/c4-components-core.md +0 -0
  173. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/architecture/c4-containers.md +0 -0
  174. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/architecture/c4-context.md +0 -0
  175. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/architecture/c4-dynamic-install.md +0 -0
  176. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/gifs/distill.gif +0 -0
  177. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/gifs/doctor.gif +0 -0
  178. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/gifs/explain.gif +0 -0
  179. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/gifs/hooks.gif +0 -0
  180. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/gifs/install.gif +0 -0
  181. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/gifs/pulse.gif +0 -0
  182. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/gifs/search.gif +0 -0
  183. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/gifs/tap.gif +0 -0
  184. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/tapes/distill.tape +0 -0
  185. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/tapes/doctor.tape +0 -0
  186. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/tapes/explain.tape +0 -0
  187. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/tapes/hooks.tape +0 -0
  188. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/tapes/install.tape +0 -0
  189. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/tapes/pulse.tape +0 -0
  190. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/tapes/search.tape +0 -0
  191. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel/tapes/tap.tape +0 -0
  192. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/carousel.html +0 -0
  193. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/chat.html +0 -0
  194. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/code-review.md +0 -0
  195. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/commit-audit.md +0 -0
  196. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/demo-index.json +0 -0
  197. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/demo.html +0 -0
  198. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/demo.tape +0 -0
  199. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/dependencies.md +0 -0
  200. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/design-roadmap.html +0 -0
  201. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/eval-latest.json +0 -0
  202. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/eval.html +0 -0
  203. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/langchain.html +0 -0
  204. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/mcp-hub.html +0 -0
  205. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/openssf-badge.md +0 -0
  206. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/openssf-playbook.md +0 -0
  207. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/rag-architecture.md +0 -0
  208. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D01.md +0 -0
  209. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D02.md +0 -0
  210. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D03.md +0 -0
  211. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D04.md +0 -0
  212. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D05.md +0 -0
  213. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D06.md +0 -0
  214. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D07.md +0 -0
  215. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D08.md +0 -0
  216. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D09.md +0 -0
  217. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D10.md +0 -0
  218. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D11.md +0 -0
  219. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D12.md +0 -0
  220. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D13.md +0 -0
  221. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D14.md +0 -0
  222. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D15.md +0 -0
  223. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D16.md +0 -0
  224. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D17.md +0 -0
  225. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D18.md +0 -0
  226. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D19.md +0 -0
  227. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D20.md +0 -0
  228. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D21.md +0 -0
  229. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D22.md +0 -0
  230. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D23.md +0 -0
  231. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D24.md +0 -0
  232. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D25.md +0 -0
  233. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D26.md +0 -0
  234. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/BOOST-D27.md +0 -0
  235. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  236. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  237. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  238. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  239. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  240. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  241. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  242. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  243. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  244. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  245. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  246. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  247. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  248. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-attest-findings.md +0 -0
  249. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  250. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-browse-findings.md +0 -0
  251. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  252. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  253. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  254. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  255. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-chat-findings.md +0 -0
  256. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  257. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  258. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  259. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-completions-findings.md +0 -0
  260. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-config-findings.md +0 -0
  261. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  262. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-context-findings.md +0 -0
  263. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  264. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  265. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-create-findings.md +0 -0
  266. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-deps-findings.md +0 -0
  267. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-discover-findings.md +0 -0
  268. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  269. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  270. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-drift-findings.md +0 -0
  271. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  272. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-edit-findings.md +0 -0
  273. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  274. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-explain-findings.md +0 -0
  275. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-export-findings.md +0 -0
  276. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  277. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  278. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  279. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  280. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-health-findings.md +0 -0
  281. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  282. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  283. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-import-findings.md +0 -0
  284. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-index-findings.md +0 -0
  285. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  286. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  287. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-install-findings.md +0 -0
  288. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  289. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  290. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-lint-findings.md +0 -0
  291. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-log-findings.md +0 -0
  292. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  293. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  294. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  295. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  296. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  297. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  298. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  299. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  300. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  301. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-policy-findings.md +0 -0
  302. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-preview-findings.md +0 -0
  303. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-profile-findings.md +0 -0
  304. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  305. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  306. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  307. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  308. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  309. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  310. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  311. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-replay-findings.md +0 -0
  312. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-root-findings.md +0 -0
  313. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-run-findings.md +0 -0
  314. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  315. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-search-findings.md +0 -0
  316. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  317. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  318. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  319. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  320. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  321. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  322. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  323. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  324. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-sync-findings.md +0 -0
  325. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  326. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-tap-findings.md +0 -0
  327. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-taps-findings.md +0 -0
  328. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  329. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-test-findings.md +0 -0
  330. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-trust-findings.md +0 -0
  331. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  332. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  333. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-untap-findings.md +0 -0
  334. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-update-findings.md +0 -0
  335. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  336. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-verify-findings.md +0 -0
  337. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/audit-who-findings.md +0 -0
  338. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  339. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  340. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  341. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  342. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  343. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  344. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/boost-first-rule.md +0 -0
  345. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  346. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  347. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/branch-current-gate.md +0 -0
  348. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  349. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  350. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  351. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  352. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  353. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  354. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  355. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  356. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  357. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  358. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  359. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  360. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  361. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  362. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  363. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  364. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  365. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/cli-command-audit.md +0 -0
  366. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  367. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  368. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  369. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  370. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/command-carousel-page.md +0 -0
  371. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  372. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  373. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  374. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  375. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  376. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  377. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  378. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  379. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  380. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  381. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  382. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  383. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  384. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  385. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  386. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  387. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  388. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  389. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  390. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  391. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  392. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  393. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  394. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  395. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  396. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  397. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  398. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  399. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  400. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  401. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  402. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  403. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  404. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  405. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  406. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  407. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  408. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  409. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  410. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  411. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  412. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  413. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  414. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  415. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  416. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  417. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  418. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  419. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  420. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  421. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  422. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  423. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  424. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  425. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  426. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/github-community-health-files.md +0 -0
  427. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  428. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  429. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  430. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  431. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  432. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  433. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  434. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  435. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  436. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  437. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  438. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  439. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  440. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  441. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  442. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  443. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  444. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  445. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  446. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  447. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  448. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  449. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  450. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  451. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  452. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  453. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  454. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  455. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  456. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  457. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  458. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  459. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  460. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  461. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  462. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  463. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  464. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  465. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  466. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  467. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  468. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  469. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  470. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  471. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  472. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  473. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  474. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  475. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  476. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  477. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  478. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  479. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  480. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  481. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  482. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  483. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  484. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  485. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  486. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  487. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  488. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  489. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  490. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  491. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  492. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  493. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  494. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  495. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  496. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  497. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  498. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  499. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  500. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  501. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  502. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  503. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  504. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  505. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  506. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/openssf-playbook.md +0 -0
  507. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/openssf-silver.md +0 -0
  508. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  509. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  510. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  511. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  512. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  513. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  514. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  515. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  516. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  517. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  518. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  519. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  520. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  521. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  522. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  523. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  524. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  525. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  526. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  527. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  528. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  529. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  530. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  531. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  532. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  533. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  534. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  535. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  536. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  537. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  538. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  539. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  540. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  541. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/relicence-apache-2.md +0 -0
  542. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  543. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  544. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  545. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  546. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  547. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  548. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  549. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  550. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  551. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  552. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  553. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  554. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  555. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  556. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  557. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  558. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  559. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  560. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  561. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  562. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  563. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  564. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  565. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  566. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  567. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  568. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  569. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  570. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  571. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  572. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  573. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  574. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  575. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  576. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  577. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  578. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  579. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  580. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  581. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  582. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  583. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  584. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  585. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  586. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  587. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  588. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  589. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  590. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  591. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  592. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  593. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  594. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  595. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  596. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  597. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  598. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  599. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  600. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  601. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  602. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  603. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  604. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  605. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  606. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  607. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  608. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  609. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  610. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  611. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  612. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  613. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  614. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  615. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  616. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  617. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  618. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  619. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  620. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  621. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  622. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  623. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  624. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  625. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/workspace-scope-install.md +0 -0
  626. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/zip-strict-audit.md +0 -0
  627. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  628. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  629. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/security-design.md +0 -0
  630. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/semantic-search.md +0 -0
  631. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  632. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/verifying-releases.md +0 -0
  633. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/vex/meta.md +0 -0
  634. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/vex/openvex.json +0 -0
  635. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  636. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  637. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  638. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  639. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/eslint.config.mjs +0 -0
  640. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/README.md +0 -0
  641. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/__init__.py +0 -0
  642. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/baseline.json +0 -0
  643. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/faithfulness.py +0 -0
  644. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/golden_set.json +0 -0
  645. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/make_corpus.py +0 -0
  646. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/make_golden.py +0 -0
  647. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/metrics.py +0 -0
  648. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/publish_golden_dataset.py +0 -0
  649. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/evals/run_evals.py +0 -0
  650. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/examples/README.md +0 -0
  651. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/examples/adapt-demo.sh +0 -0
  652. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/examples/boost-run-prototype.sh +0 -0
  653. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/index.html +0 -0
  654. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/noxfile.py +0 -0
  655. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/pyproject.toml +0 -0
  656. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/coverage-tools.in +0 -0
  657. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/coverage-tools.txt +0 -0
  658. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/lint-tools.in +0 -0
  659. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/lint-tools.txt +0 -0
  660. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/mutation-tools.in +0 -0
  661. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/mutation-tools.txt +0 -0
  662. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/platform-pins.lock +0 -0
  663. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/release-tools.in +0 -0
  664. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/release-tools.txt +0 -0
  665. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/test-tools.in +0 -0
  666. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/requirements/test-tools.txt +0 -0
  667. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/a11y_check.py +0 -0
  668. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/add_spdx_headers.py +0 -0
  669. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/bench_cli.sh +0 -0
  670. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/build_demo_index.py +0 -0
  671. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/build_registries.py +0 -0
  672. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/build_roadmap.py +0 -0
  673. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/build_scale_corpus.py +0 -0
  674. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/build_vex.py +0 -0
  675. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/check_anchors.py +0 -0
  676. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/check_branch_current.py +0 -0
  677. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/check_dco.py +0 -0
  678. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/check_licenses.py +0 -0
  679. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/check_reproducible.py +0 -0
  680. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/check_required_checks.py +0 -0
  681. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/ensure_eval_corpus.sh +0 -0
  682. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/eval_corpus.py +0 -0
  683. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/eval_explain.py +0 -0
  684. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/eval_gate.py +0 -0
  685. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/eval_recommend.py +0 -0
  686. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/eval_retrieval.py +0 -0
  687. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/eval_stats_summary.py +0 -0
  688. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/eval_tools.py +0 -0
  689. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/import_budget.py +0 -0
  690. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/lock_toolchain.py +0 -0
  691. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/measure_near_duplicate_bound.py +0 -0
  692. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/measure_registry.py +0 -0
  693. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/mutation_gate.py +0 -0
  694. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/mutation_shards.py +0 -0
  695. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/mutation_weights.json +0 -0
  696. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/normalize_sdist.py +0 -0
  697. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/page_budget.py +0 -0
  698. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/perf_gate.py +0 -0
  699. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/post_deploy_smoke.py +0 -0
  700. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/publish_eval_json.py +0 -0
  701. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/publish_shards.py +0 -0
  702. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/release_guard.py +0 -0
  703. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/release_preflight.py +0 -0
  704. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/serve_docs.py +0 -0
  705. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/scripts/shard_plan.py +0 -0
  706. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/setup.cfg +0 -0
  707. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/sonar-project.properties +0 -0
  708. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/style/README.md +0 -0
  709. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/style/boost.css +0 -0
  710. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/style/boost.js +0 -0
  711. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/style/demo.html +0 -0
  712. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/adapt.feature +0 -0
  713. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/browse.feature +0 -0
  714. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/count.feature +0 -0
  715. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/discover.feature +0 -0
  716. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/doctor.feature +0 -0
  717. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/environment.py +0 -0
  718. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/explain.feature +0 -0
  719. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/index.feature +0 -0
  720. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/install.feature +0 -0
  721. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/list.feature +0 -0
  722. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/mcp.feature +0 -0
  723. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/search.feature +0 -0
  724. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/steps/cli_steps.py +0 -0
  725. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/steps/discovery_steps.py +0 -0
  726. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/steps/mcp_steps.py +0 -0
  727. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/bdd/features/steps/quality_steps.py +0 -0
  728. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/baseline.json +0 -0
  729. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/explain.jsonl +0 -0
  730. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  731. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/golden-natural.jsonl +0 -0
  732. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/golden.jsonl +0 -0
  733. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/recommend.jsonl +0 -0
  734. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/taps-scale.txt +0 -0
  735. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/taps.txt +0 -0
  736. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/eval/tool_calls.jsonl +0 -0
  737. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_bmad_all_hosts.py +0 -0
  738. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_capabilities_policy.py +0 -0
  739. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_catalog.py +0 -0
  740. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_chat.py +0 -0
  741. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_hooks.py +0 -0
  742. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_hooks_gemini.py +0 -0
  743. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_quickstart.py +0 -0
  744. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_cli_tap_pins.py +0 -0
  745. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_everyday_loop.py +0 -0
  746. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_integrity_enforce.py +0 -0
  747. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_kind_conformance.py +0 -0
  748. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_property_parsers.py +0 -0
  749. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_tap_signing.py +0 -0
  750. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/functional/test_workspace_scope.py +0 -0
  751. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/README.md +0 -0
  752. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  753. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  754. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  755. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  756. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  757. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  758. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  759. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  760. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  761. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  762. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  763. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  764. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  765. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  766. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  767. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  768. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  769. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  770. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  771. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  772. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  773. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  774. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  775. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/fuzz_frontmatter.py +0 -0
  776. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/fuzz/fuzz_registry.py +0 -0
  777. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/langchain/conftest.py +0 -0
  778. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/langchain/test_graph.py +0 -0
  779. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/langchain/test_loader.py +0 -0
  780. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/langchain/test_retriever.py +0 -0
  781. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/make_fixture.py +0 -0
  782. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/perf/test_benchmarks.py +0 -0
  783. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/smoke.sh +0 -0
  784. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_a11y_check.py +0 -0
  785. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_action_pin_lockstep.py +0 -0
  786. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_adapters_runner.py +0 -0
  787. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_agents.py +0 -0
  788. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_ai.py +0 -0
  789. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_aihost.py +0 -0
  790. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_bmad_core.py +0 -0
  791. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_boost_first_offer.py +0 -0
  792. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_bootstrap.py +0 -0
  793. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_bot_pr_dco.py +0 -0
  794. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_branch_current.py +0 -0
  795. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_browse.py +0 -0
  796. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_builtin.py +0 -0
  797. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_capabilities.py +0 -0
  798. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_catalogbundle.py +0 -0
  799. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_chat.py +0 -0
  800. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_check_anchors.py +0 -0
  801. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_check_dco.py +0 -0
  802. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_check_licenses.py +0 -0
  803. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_check_reproducible.py +0 -0
  804. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_claude_settings.py +0 -0
  805. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_clean_internal_cache.py +0 -0
  806. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_cli_update_shards.py +0 -0
  807. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_cliparse.py +0 -0
  808. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_codeql_analysis_key.py +0 -0
  809. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_community_health_files.py +0 -0
  810. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_complete.py +0 -0
  811. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_complete_rc_block.py +0 -0
  812. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_config.py +0 -0
  813. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_content_dedupe.py +0 -0
  814. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_content_identity.py +0 -0
  815. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_crash_redaction.py +0 -0
  816. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dedup_trust.py +0 -0
  817. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_demo_index.py +0 -0
  818. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense.py +0 -0
  819. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  820. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_embed_dedupe.py +0 -0
  821. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_entry_reuse.py +0 -0
  822. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_entry_vectors.py +0 -0
  823. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_fallback.py +0 -0
  824. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_fix_hint.py +0 -0
  825. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_progress.py +0 -0
  826. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_quantized.py +0 -0
  827. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_ready_order.py +0 -0
  828. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_shard_real_schema.py +0 -0
  829. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  830. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_shards.py +0 -0
  831. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_status.py +0 -0
  832. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_status_cheap.py +0 -0
  833. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dense_vector_dedupe.py +0 -0
  834. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_dependabot_config.py +0 -0
  835. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_distill_merge.py +0 -0
  836. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_docs_pages_linked.py +0 -0
  837. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_docsite_chrome.py +0 -0
  838. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_doctor_output_polish.py +0 -0
  839. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_drift_hint.py +0 -0
  840. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_ed25519.py +0 -0
  841. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_embed.py +0 -0
  842. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_embed_local.py +0 -0
  843. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_embed_truncated_response.py +0 -0
  844. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_entry_key.py +0 -0
  845. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_baseline.py +0 -0
  846. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_corpus.py +0 -0
  847. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_faithfulness.py +0 -0
  848. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_gate.py +0 -0
  849. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_grading.py +0 -0
  850. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_metrics.py +0 -0
  851. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_stats_summary.py +0 -0
  852. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_tools.py +0 -0
  853. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_eval_tools_probe.py +0 -0
  854. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  855. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_faithfulness.py +0 -0
  856. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_frontmatter.py +0 -0
  857. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_fuzz_targets.py +0 -0
  858. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  859. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_gitleaks_config.py +0 -0
  860. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_gitutil.py +0 -0
  861. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_gitutil_lfs.py +0 -0
  862. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_gitutil_sparse.py +0 -0
  863. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_gstack_coexistence.py +0 -0
  864. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_hook_settings_hosts.py +0 -0
  865. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_hookhost.py +0 -0
  866. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_imperative.py +0 -0
  867. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_import_budget.py +0 -0
  868. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_injectscan.py +0 -0
  869. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_install_permission_error.py +0 -0
  870. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_installscan.py +0 -0
  871. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_integrity.py +0 -0
  872. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_journal.py +0 -0
  873. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_jsonstate.py +0 -0
  874. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_langchain_packaging.py +0 -0
  875. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_link_ownership.py +0 -0
  876. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_localembed.py +0 -0
  877. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_localembed_e2e.py +0 -0
  878. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_logs.py +0 -0
  879. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_marketing_counts.py +0 -0
  880. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mcp.py +0 -0
  881. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mcp_install_scan.py +0 -0
  882. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mcp_read.py +0 -0
  883. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mcpdecl.py +0 -0
  884. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mcphost.py +0 -0
  885. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_measure_registry.py +0 -0
  886. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_minisign.py +0 -0
  887. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mutation_hardening.py +0 -0
  888. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mutation_shards.py +0 -0
  889. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mutation_subfile_shards.py +0 -0
  890. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_mutmut_source_paths.py +0 -0
  891. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_near_duplicate_collapse.py +0 -0
  892. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_nethttp.py +0 -0
  893. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_normalize_sdist.py +0 -0
  894. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_page_budget.py +0 -0
  895. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_paths.py +0 -0
  896. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_perf_gate.py +0 -0
  897. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_pkg_confusions.py +0 -0
  898. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_pkg_injection.py +0 -0
  899. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_pkg_secrets.py +0 -0
  900. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_platform_pins.py +0 -0
  901. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_policy.py +0 -0
  902. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_post_deploy_smoke.py +0 -0
  903. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_project_mcp_sidecar.py +0 -0
  904. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_projectlock.py +0 -0
  905. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_provenance.py +0 -0
  906. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_publish_golden_dataset.py +0 -0
  907. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_rag.py +0 -0
  908. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_rag_fastpath.py +0 -0
  909. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_rag_fusion.py +0 -0
  910. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_registries_fresh.py +0 -0
  911. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_registry.py +0 -0
  912. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_registry_categories.py +0 -0
  913. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_registry_control_chars.py +0 -0
  914. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_registry_parallel.py +0 -0
  915. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_release_guard.py +0 -0
  916. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_release_preflight.py +0 -0
  917. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_required_checks.py +0 -0
  918. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_rerank_cache.py +0 -0
  919. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_resolve.py +0 -0
  920. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  921. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_roadmap_fresh.py +0 -0
  922. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_rules.py +0 -0
  923. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_scale_corpus.py +0 -0
  924. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_scopes.py +0 -0
  925. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_secretscan.py +0 -0
  926. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_selfupdate.py +0 -0
  927. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_serve.py +0 -0
  928. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_serve_docs.py +0 -0
  929. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_shard_plan.py +0 -0
  930. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_shards.py +0 -0
  931. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_shards_incremental.py +0 -0
  932. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_shards_ingest.py +0 -0
  933. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_shards_matrix.py +0 -0
  934. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_smoke_covers_every_command.py +0 -0
  935. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_spdx_headers.py +0 -0
  936. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_spin.py +0 -0
  937. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_stackprobe.py +0 -0
  938. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_staleness.py +0 -0
  939. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_store_materialize.py +0 -0
  940. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_sync_blocked_links.py +0 -0
  941. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  942. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_token_parity.py +0 -0
  943. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_toolchain_lock.py +0 -0
  944. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_typedvalue.py +0 -0
  945. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_typosquat.py +0 -0
  946. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_updatediff.py +0 -0
  947. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_util.py +0 -0
  948. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_version.py +0 -0
  949. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_version_tags.py +0 -0
  950. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_vex.py +0 -0
  951. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_visual_harness_flags.py +0 -0
  952. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_workflow_concurrency.py +0 -0
  953. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  954. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  955. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_workflow_timeouts.py +0 -0
  956. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_workflows.py +0 -0
  957. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  958. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/visual/a11y_check.mjs +0 -0
  959. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/visual/console_check.mjs +0 -0
  960. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/visual/package-lock.json +0 -0
  961. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/visual/package.json +0 -0
  962. {boost_skill_cli-1.2.91 → boost_skill_cli-1.2.92}/tests/visual/visual_check.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.91
3
+ Version: 1.2.92
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.2.91'
22
- __version_tuple__ = version_tuple = (1, 2, 91)
21
+ __version__ = version = '1.2.92'
22
+ __version_tuple__ = version_tuple = (1, 2, 92)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -70,7 +70,7 @@ COMMANDS = [
70
70
  ("recommend", "find", "discovery", "Suggest skills based on your project's tech stack"),
71
71
  ("browse", "find", "discovery", "Interactive full-screen TUI with fuzzy search"),
72
72
  ("index", "find", "discovery", "Build the discovery registry via GitHub Code Search"),
73
- ("trending", "find", "discovery", "Show trending skills by install count"),
73
+ ("trending", "find", "discovery", "Show trending items by install count"),
74
74
  ("stats", "find", "discovery", "Install statistics & trend for a single skill"),
75
75
  ("count", "find", "discovery", "Quick summary of installed / available / taps"),
76
76
  # Skill Information (10)
@@ -156,6 +156,10 @@ def print_version() -> None:
156
156
  # Aurora palette so each command group carries its own brand color.
157
157
  _GROUP_HUES = ("cyan", "violet", "pink", "green", "yellow")
158
158
 
159
+ # The width to lay out against when there is no pane at all: wider than any
160
+ # line boost composes, so every fit test passes and nothing is truncated.
161
+ _UNPANED = 10 ** 6
162
+
159
163
 
160
164
  def print_help() -> None:
161
165
  """The command index, fitted to the pane.
@@ -165,8 +169,12 @@ def print_help() -> None:
165
169
  at every width and wrapped mid-word for anyone not running a wide
166
170
  terminal. Names are never clipped, because the help's whole job is to be
167
171
  an index you can copy a command out of; summaries are.
172
+
173
+ A pipe has no pane, so nothing is fitted to one: `boost --help | grep
174
+ install` must see the whole summary, not one clipped to an assumed 80
175
+ columns.
168
176
  """
169
- cols = out.term_width()
177
+ cols = out.pane_width() or _UNPANED
170
178
 
171
179
  title_line = out.gradient(PRODUCT) + " — Homebrew for AI coding skills"
172
180
  stamp = "%s · v%s" % (TAGLINE, __version__)
@@ -503,7 +503,7 @@ def _uninstall(scope, yes) -> int:
503
503
  "Remove BMAD (%s)? deletes bmad-* skills%s" % (
504
504
  scope, " + _bmad/, _bmad-output/" if scope == "project" else ""))):
505
505
  out.info("aborted")
506
- return 0
506
+ return 1
507
507
  _remove_hook_everywhere(scope, _ORIENT_HOOK, _ROUTE_HOOK)
508
508
  removed = _rm_skills(_skills_dir(scope))
509
509
  removed += len(core.remove_personas(_agents_dir(scope)))
@@ -145,6 +145,8 @@ def cmd_clean(argv) -> int:
145
145
  help="show what would be removed without touching anything")
146
146
  p.add_argument("--deep", action="store_true",
147
147
  help="also remove snapshots older than 90 days")
148
+ p.add_argument("-y", "--yes", action="store_true",
149
+ help="skip the --deep confirmation prompt")
148
150
  args = p.parse_args(argv)
149
151
 
150
152
  items: list[tuple[Path, str, int]] = [] # (path, kind, bytes)
@@ -188,19 +190,26 @@ def cmd_clean(argv) -> int:
188
190
  elif pth.name == ".DS_Store" and pth.is_file():
189
191
  items.append((pth, ".DS_Store", pth.stat().st_size))
190
192
 
193
+ declined = False
191
194
  if args.deep and paths.snapshots_dir().is_dir():
192
195
  cutoff = time.time() - 90 * 86400
193
196
  old_snaps = [s for s in sorted(paths.snapshots_dir().iterdir())
194
197
  if s.lstat().st_mtime < cutoff]
195
- if old_snaps and not args.dry_run and not out.confirm(
196
- "remove %d snapshot(s) older than 90 days?" % len(old_snaps)):
198
+ if old_snaps and not args.dry_run and not (args.yes or out.confirm(
199
+ "remove %d snapshot(s) older than 90 days?" % len(old_snaps))):
197
200
  out.info("keeping old snapshots")
201
+ declined = True
198
202
  old_snaps = []
199
203
  for s in old_snaps:
200
204
  size = util.dir_size(s) if s.is_dir() else s.lstat().st_size
201
205
  items.append((s, "old snapshot", size))
202
206
 
203
207
  if not items:
208
+ # `declined` means the only candidate was the --deep snapshot purge
209
+ # and the user said no — "nothing to clean" would claim there was
210
+ # nothing to do when there was, and the user just declined doing it.
211
+ if declined:
212
+ return 1
204
213
  out.ok("nothing to clean")
205
214
  return 0
206
215
 
@@ -303,6 +312,18 @@ def cmd_compact(argv) -> int:
303
312
  if args.reclone:
304
313
  util.rmtree(tap.path)
305
314
  gitutil.clone_shallow(tap.url, tap.path)
315
+ if tap.pin:
316
+ # A pinned tap re-clones at the default branch like any
317
+ # other — nothing about `--reclone` consults the pin — so
318
+ # without this the clone silently lands on HEAD while
319
+ # config.json, the catalog cache and `boost taps` keep
320
+ # naming the old commit. checkout_commit's own BoostError
321
+ # (unresolvable pin) surfaces through the except below.
322
+ gitutil.checkout_commit(tap.path, tap.pin)
323
+ # The re-clone can change what's on disk even when the byte
324
+ # count doesn't (a pinned tap's tree is identical, but the
325
+ # cache's recorded commit and mtime are now stale either way).
326
+ catalog.rebuild_tap(tap)
306
327
  else:
307
328
  gitutil.narrow(tap.path)
308
329
  for rel in keep.get(tap.name, []):
@@ -311,9 +332,12 @@ def cmd_compact(argv) -> int:
311
332
  out.warn("could not compact %s: %s" % (tap.name, e))
312
333
  continue
313
334
  after = util.dir_size(tap.path)
314
- if after < before:
335
+ # A re-clone did real work — refreshed the clone, possibly moved it
336
+ # back onto its pin — even when it doesn't shrink the tap, so it must
337
+ # never be silently absorbed into "every tap is already compact".
338
+ if args.reclone or after < before:
315
339
  changed += 1
316
- freed += before - after
340
+ freed += max(before - after, 0)
317
341
  out.info("%s %s → %s" % (tap.name, util.human_size(before),
318
342
  util.human_size(after)))
319
343
 
@@ -1757,10 +1757,11 @@ def cmd_browse(argv):
1757
1757
 
1758
1758
 
1759
1759
  def cmd_trending(argv):
1760
- """Rank skills by local install events from the journal."""
1760
+ """Rank items (skills, rules, workflows) by local install events from
1761
+ the journal."""
1761
1762
  p = cliparse.parser(
1762
1763
  prog="boost trending",
1763
- description="Show trending skills by install count")
1764
+ description="Show trending items by install count")
1764
1765
  p.add_argument("--limit", type=util.positive_int, default=10,
1765
1766
  help="max rows (default 10)")
1766
1767
  args = p.parse_args(argv)
@@ -1772,10 +1773,12 @@ def cmd_trending(argv):
1772
1773
  if not curated:
1773
1774
  out.info("no curated skills available — add taps with `boost tap --defaults`")
1774
1775
  return 0
1775
- descw = max(out.term_width() - 24, 24) # reserve name + version columns
1776
- out.table([(e["name"], "v" + e["version"],
1776
+ # reserve name/version/kind columns
1777
+ descw = max(out.term_width() - 34, 24)
1778
+ out.table([(e["name"], "v" + e["version"], e.get("kind", "skill"),
1777
1779
  out.truncate(e["description"], descw))
1778
- for e in sorted(curated, key=operator.itemgetter("name"))[:args.limit]])
1780
+ for e in sorted(curated, key=operator.itemgetter("name"))[:args.limit]],
1781
+ headers=("name", "version", "kind", "description"))
1779
1782
  return 0
1780
1783
  agg: dict[str, Any] = {}
1781
1784
  for ev in evs: # most-recent-first, so first ts per subject is the latest
@@ -1783,11 +1786,13 @@ def cmd_trending(argv):
1783
1786
  rec = agg.setdefault(name, {"count": 0, "last": ev.get("ts", "")})
1784
1787
  rec["count"] += 1
1785
1788
  ranked = sorted(agg.items(), key=lambda kv: (-kv[1]["count"], kv[0]))
1786
- descw = max(out.term_width() - 44, 24) # reserve name/installs/last columns
1789
+ # reserve name/installs/last/kind columns
1790
+ descw = max(out.term_width() - 54, 24)
1787
1791
  out.table([(name, str(rec["count"]), util.rel_time(rec["last"]),
1792
+ by_name.get(name, {}).get("kind", "skill"),
1788
1793
  out.truncate(by_name.get(name, {}).get("description", ""), descw))
1789
1794
  for name, rec in ranked[:args.limit]],
1790
- headers=("name", "installs", "last", "description"))
1795
+ headers=("name", "installs", "last", "kind", "description"))
1791
1796
  out.info(out.role("based on local install activity", "muted"))
1792
1797
  return 0
1793
1798
 
@@ -1801,14 +1806,19 @@ def cmd_stats(argv):
1801
1806
  p.add_argument("--json", action="store_true", dest="as_json",
1802
1807
  help="machine-readable output")
1803
1808
  args = p.parse_args(argv)
1804
- name = args.name
1805
- # find_any: a rule's lock facts are the answer, not "no skill named X".
1806
- found = lockfile.find_any(name)
1807
- kind, lock = found if found is not None else ("skill", None)
1808
- matches = catalog.find(name)
1809
+ # `args.name` may be tap-qualified (`owner/repo:skill`); resolve to the
1810
+ # bare name the lock, journal and store dir key on, honoring the
1811
+ # qualifier against the installed tap — `store.skill_store_dir` rejects
1812
+ # the qualified string outright since ":" is not a safe path component.
1813
+ # `find_any`-backed resolution: a rule's lock facts are the answer, not
1814
+ # "no skill named X". `catalog.find` keeps the original string so a
1815
+ # qualifier still narrows a not-yet-installed lookup.
1816
+ name, kind, lock = store.resolve_lock_entry(args.name)
1817
+ kind = kind or "skill"
1818
+ matches = catalog.find(args.name)
1809
1819
  cat = matches[0] if matches else None
1810
1820
  if not lock and not cat:
1811
- raise BoostError("no skill named %r installed or in any tap" % name,
1821
+ raise BoostError("no skill named %r installed or in any tap" % args.name,
1812
1822
  hint="try `boost search %s`" % name)
1813
1823
  acts = {a: len(journal.events(action=a, subject=name))
1814
1824
  for a in ("install", "update", "uninstall")}
@@ -69,7 +69,10 @@ def _list(scope, host) -> int:
69
69
  out.table(
70
70
  [(r["host"], r["scope"], r["event"], r["name"], r["matcher"] or "-",
71
71
  r["command"]) for r in rows],
72
- headers=("host", "scope", "event", "name", "matcher", "command"))
72
+ headers=("host", "scope", "event", "name", "matcher", "command"),
73
+ # A hook's command is what the user came to read — a clipped one
74
+ # cannot be compared against what they registered, or copied back.
75
+ keep=("command",))
73
76
  return 0
74
77
 
75
78
 
@@ -234,17 +234,26 @@ def _kind_table(heading, items, extra=None):
234
234
  ``(column, key)`` pair for a per-kind column (e.g. a workflow's slot); the
235
235
  count line reuses the heading's trailing noun (`installed rules` -> `rule`)."""
236
236
  out.heading(heading)
237
- headers: tuple = ("NAME", "VERSION", "TAP", "AGENTS") # `extra` adds a 5th
238
- rows: list[tuple] = [] # 4 columns, or 5 when `extra` adds one
237
+ # FLAGS mirrors the skills table so a quarantined or pinned rule/workflow
238
+ # doesn't render byte-identical to a healthy one — `update`/`cat` treat
239
+ # them differently and a reader needs to see that here, not just in --json.
240
+ headers: tuple = ("NAME", "VERSION", "TAP", "AGENTS", "FLAGS")
241
+ rows: list[tuple] = []
239
242
  for name in sorted(items):
240
243
  e = items[name]
244
+ quarantined = bool(e.get("quarantined"))
245
+ agents_cell = "—" if quarantined else _materialized_agents(e)
246
+ flags = ([out.aurora("pinned", "yellow")] if e.get("pinned") else []) + \
247
+ ([out.aurora("quarantined", "pink")] if quarantined else [])
241
248
  row = [name, e.get("version", "?"), e.get("tap", "?"),
242
- _materialized_agents(e)]
249
+ agents_cell]
243
250
  if extra:
244
251
  row.append(str(e.get(extra[1], "") or ""))
252
+ row.append(" ".join(flags))
245
253
  rows.append(tuple(row))
246
254
  if extra:
247
- headers = (*headers, extra[0])
255
+ headers = (headers[0], headers[1], headers[2], headers[3], extra[0],
256
+ headers[4])
248
257
  out.table(rows, headers=headers)
249
258
  noun = heading.split()[-1][:-1] # "installed rules" -> "rule"
250
259
  print(" " + out.aurora("%d %s%s installed"
@@ -302,10 +311,14 @@ def cmd_list(argv):
302
311
  if not skills and not rules and not workflows and not project:
303
312
  # Name the kind that was asked for. "no skills installed" in answer to
304
313
  # `--kind rule` sends you looking for a skill that was never the point.
314
+ # The `boost tap --defaults` half of the hint is itself only useful
315
+ # when there is nothing tapped yet — with registries already
316
+ # configured, the fix is `search`+`install`, not tapping more of them.
305
317
  print(out.empty_state(
306
318
  "no %ss installed" % (args.kind or "skill")
307
319
  + (" with tag #%s" % args.tag.lstrip("#") if args.tag else ""),
308
- hint="boost tap --defaults && boost search <topic>"))
320
+ hint=("boost search <topic>" if registry.list_taps()
321
+ else "boost tap --defaults && boost search <topic>")))
309
322
  return 0
310
323
  if skills:
311
324
  out.heading("installed skills")
@@ -318,13 +331,17 @@ def cmd_list(argv):
318
331
  flags = ([out.aurora("pinned", "yellow")] if e.get("pinned") else []) + \
319
332
  ([out.aurora("quarantined", "pink")] if e.get("quarantined")
320
333
  else []) + \
334
+ ([out.role("sidelined:" + e["sidelined_by"], "muted")]
335
+ if e.get("sidelined_by") else []) + \
321
336
  [out.role("#" + t, "muted") for t in e.get("tags") or []]
322
337
  rows.append((name, e.get("version", "?"), e.get("tap", "?"),
323
338
  "·".join(a.split("-")[0] for a in e.get("agents") or []),
324
339
  " ".join(flags)))
325
340
  out.table(rows, headers=("NAME", "VERSION", "TAP", "AGENTS", "FLAGS"))
326
- print(" " + out.aurora("%d skill%s installed"
327
- % (len(rows), "" if len(rows) == 1 else "s"), "cyan"))
341
+ print(" " + out.aurora("%d skill%s installed%s"
342
+ % (len(rows), "" if len(rows) == 1 else "s",
343
+ " with tag #%s" % args.tag.lstrip("#")
344
+ if args.tag else ""), "cyan"))
328
345
  if project:
329
346
  out.heading("project skills (%s)" % paths.tilde(pbase))
330
347
  rows = [(name, e.get("version", "?"), e.get("tap", "?"),
@@ -379,8 +396,15 @@ def _info_materialized(name: str, kind: str, entry: dict, as_json: bool) -> int:
379
396
  out.kv("installed", "%s (%s)" % (ia, util.rel_time(ia)))
380
397
  if ua and ua != ia:
381
398
  out.kv("updated", "%s (%s)" % (ua, util.rel_time(ua)))
382
- agents = [m.get("agent", "?") for m in entry.get("materializations") or []]
383
- out.kv("materialized", ", ".join(agents) or "(none)")
399
+ if entry.get("quarantined"):
400
+ # `materializations` still names what quarantine stashed and would
401
+ # restore on release — it is not what's on disk right now, which is
402
+ # nothing. Printing the stale agent list here reads as a lie about
403
+ # files that were just removed.
404
+ out.kv("materialized", "(removed — quarantined)")
405
+ else:
406
+ agents = [m.get("agent", "?") for m in entry.get("materializations") or []]
407
+ out.kv("materialized", ", ".join(agents) or "(none)")
384
408
  out.kv("pinned", "yes" if entry.get("pinned") else "no")
385
409
  out.kv("quarantined", "yes" if entry.get("quarantined") else "no")
386
410
  return 0
@@ -475,6 +499,8 @@ def cmd_info(argv):
475
499
  badges.append(out.badge("pinned", "yellow"))
476
500
  if lock.get("quarantined"):
477
501
  badges.append(out.badge("quarantined", "pink"))
502
+ if lock.get("sidelined_by"):
503
+ badges.append(out.badge("sidelined by %s" % lock["sidelined_by"], "cyan"))
478
504
  latest = str((cat or {}).get("version") or "")
479
505
  if cat and latest != str(lock.get("version", "?")):
480
506
  badges.append(out.badge("update available", "yellow"))
@@ -524,6 +550,8 @@ def cmd_info(argv):
524
550
  out.kv("agents", ", ".join(lock.get("agents") or []) or "(none)")
525
551
  out.kv("pinned", "yes" if lock.get("pinned") else "no")
526
552
  out.kv("quarantined", "yes" if lock.get("quarantined") else "no")
553
+ if lock.get("sidelined_by"):
554
+ out.kv("sidelined by", str(lock["sidelined_by"]))
527
555
  if lock.get("tags"):
528
556
  out.kv("tags", " ".join("#" + t for t in lock["tags"]))
529
557
  elif _as_list(meta.get("tags")):
@@ -575,22 +603,24 @@ def cmd_edit(argv):
575
603
  description="Open a skill's SKILL.md in your editor")
576
604
  ap.add_argument("name")
577
605
  args = ap.parse_args(argv)
578
- lock = lockfile.get_skill(args.name)
579
- if not lock:
580
- found = lockfile.find_any(args.name)
581
- if found is not None:
582
- # Editing opens a skill's store dir; a rule/workflow has none — it
583
- # materializes into shared agent files (e.g. ~/.claude/CLAUDE.md).
584
- raise BoostError(
585
- "%s is a %s — boost edit applies to skills"
586
- % (args.name, found[0]),
587
- hint="a %s materializes into shared agent files, not a store "
588
- "dir you can open; read it with `boost cat %s`"
589
- % (found[0], args.name))
606
+ # `args.name` may be tap-qualified (`owner/repo:skill`); resolve to the
607
+ # bare name the lock keys on, honoring the qualifier against the
608
+ # installed tap rather than rejecting the string as an invalid skill name.
609
+ name, kind, lock = store.resolve_lock_entry(args.name)
610
+ if lock is None:
590
611
  raise BoostError("%s is not installed" % args.name,
591
612
  hint="install it first, or `boost cat %s` to read the tap copy"
592
613
  % args.name)
593
- sdir = store.skill_store_dir(args.name)
614
+ if kind != "skill":
615
+ # Editing opens a skill's store dir; a rule/workflow has none — it
616
+ # materializes into shared agent files (e.g. ~/.claude/CLAUDE.md).
617
+ raise BoostError(
618
+ "%s is a %s — boost edit applies to skills"
619
+ % (args.name, kind),
620
+ hint="a %s materializes into shared agent files, not a store "
621
+ "dir you can open; read it with `boost cat %s`"
622
+ % (kind, args.name))
623
+ sdir = store.skill_store_dir(name)
594
624
  path = sdir / "SKILL.md"
595
625
  if not path.exists():
596
626
  raise BoostError("SKILL.md missing from %s" % _tilde(sdir),
@@ -607,8 +637,8 @@ def cmd_edit(argv):
607
637
  sha = util.sha256_dir(sdir)
608
638
  if sha != lock.get("sha256"):
609
639
  lock["sha256"], lock["updated_at"] = sha, util.now_iso()
610
- lockfile.set_skill(args.name, lock)
611
- journal.log("edit", args.name)
640
+ lockfile.set_skill(name, lock)
641
+ journal.log("edit", name)
612
642
  out.warn("local edits diverge from the tap source — boost drift will flag this")
613
643
  else:
614
644
  out.ok("no changes")
@@ -962,7 +992,8 @@ def cmd_deps(argv):
962
992
  print(json.dumps({"unmet": unmet, "conflicts": pairs}, indent=2))
963
993
  return 1 if unmet or pairs else 0
964
994
  if not inst:
965
- out.info("no skills installed")
995
+ print(out.empty_state("no skills installed",
996
+ hint="boost install <skill> to start"))
966
997
  return 0
967
998
  for u in unmet:
968
999
  out.info("%s requires %s %s"
@@ -992,12 +1023,27 @@ def cmd_tag(argv):
992
1023
  # from `+x -x`.
993
1024
  flag_strings = {"--list", "--json", "-h", "--help"}
994
1025
  flags = [t for t in argv if t in flag_strings]
995
- operands = [t for t in argv if t not in flag_strings]
1026
+ # A long option this command does not know must not silently fall through
1027
+ # as an operand: `tag brainstorming --verbose` used to read as removing
1028
+ # the tag `-verbose`, and `tag --verbose` as `--verbose is not installed`
1029
+ # — every sibling command instead rejects an unrecognized `--flag` with
1030
+ # exit 2. Handing the untouched argv to argparse here raises that same
1031
+ # "unrecognized arguments" error rather than the misleading ones above.
1032
+ unknown_long = [t for t in argv if t.startswith("--") and t not in flag_strings]
1033
+ if unknown_long:
1034
+ ap.parse_args(argv)
1035
+ operands = [t for t in argv if t not in flag_strings and not t.startswith("--")]
996
1036
  args = ap.parse_args(flags)
997
1037
  args.name = operands[0] if operands else None
998
1038
  mods = operands[1:]
999
1039
 
1000
1040
  if args.list_all:
1041
+ if args.name:
1042
+ # `tag brainstorming --list` used to silently drop the skill name
1043
+ # and list every tag on every skill instead.
1044
+ raise BoostError("--list does not take a skill name",
1045
+ hint="`boost tag --list` shows every tag; drop %r"
1046
+ % args.name)
1001
1047
  mapping: dict[str, list[str]] = {}
1002
1048
  for name, e in sorted(lockfile.installed().items()):
1003
1049
  for t in e.get("tags") or []:
@@ -1016,40 +1062,27 @@ def cmd_tag(argv):
1016
1062
  if not args.name:
1017
1063
  raise BoostError("skill name required",
1018
1064
  hint="`boost tag NAME +tag -tag`, or `boost tag --list`")
1019
- entry = lockfile.get_skill(args.name)
1020
- if not entry:
1021
- found = lockfile.find_any(args.name)
1022
- if found is not None:
1023
- raise BoostError(
1024
- "%s is a %s — boost tag applies to skills"
1025
- % (args.name, found[0]),
1026
- hint="tags are a skill-only label; rules and workflows are "
1027
- "governed by pin / quarantine / verify")
1065
+ # `args.name` may be tap-qualified (`owner/repo:skill`); resolve to the
1066
+ # bare name the lock keys on, honoring the qualifier against the
1067
+ # installed tap rather than rejecting the string as an invalid skill name.
1068
+ name, kind, entry = store.resolve_lock_entry(args.name)
1069
+ if entry is None:
1028
1070
  raise BoostError("%s is not installed" % args.name,
1029
1071
  hint="see what is with `boost list`")
1030
- tags = list(entry.get("tags") or [])
1031
- changed = False
1032
- for tok in mods:
1033
- if not tok or tok[0] not in "+-":
1034
- raise BoostError("cannot parse %r" % tok,
1035
- hint="prefix tags with + to add or - to remove")
1036
- t = tok[1:].lstrip("#").strip()
1037
- if not t:
1038
- raise BoostError("empty tag in %r" % tok)
1039
- if tok[0] == "+" and t not in tags:
1040
- tags.append(t)
1041
- changed = True
1042
- elif tok[0] == "-" and t in tags:
1043
- tags.remove(t)
1044
- changed = True
1072
+ if kind != "skill":
1073
+ raise BoostError(
1074
+ "%s is a %s — boost tag applies to skills"
1075
+ % (args.name, kind),
1076
+ hint="tags are a skill-only label; rules and workflows are "
1077
+ "governed by pin / quarantine / verify")
1078
+ tags, changed = lockfile.apply_tag_mods(entry.get("tags") or [], mods)
1045
1079
  if changed:
1046
- entry["tags"] = sorted(tags)
1047
- tags = entry["tags"]
1048
- lockfile.set_skill(args.name, entry)
1049
- journal.log("tag", args.name, tags=tags)
1080
+ entry["tags"] = tags
1081
+ lockfile.set_skill(name, entry)
1082
+ journal.log("tag", name, tags=tags)
1050
1083
  if args.json:
1051
- print(json.dumps({"name": args.name, "tags": tags}, indent=2))
1084
+ print(json.dumps({"name": name, "tags": tags}, indent=2))
1052
1085
  return 0
1053
1086
  shown = " ".join(out.role("#" + t, "accent") for t in tags) or out.role("(no tags)", "muted")
1054
- (out.ok if changed else out.info)("%s %s" % (args.name, shown))
1087
+ (out.ok if changed else out.info)("%s %s" % (name, shown))
1055
1088
  return 0
@@ -125,7 +125,7 @@ def _save_generated_fallback(name: str, text: str, reason: str) -> None:
125
125
  out.info("generated skill saved to %s" % _tilde(fallback))
126
126
 
127
127
 
128
- def _install_generated(name: str, text: str) -> None:
128
+ def _install_generated(name: str, text: str, yes: bool = False) -> None:
129
129
  """Write a generated SKILL.md to a tempdir and install it as `name`.
130
130
 
131
131
  The tempdir is the only copy of a just-generated skill, so a refused install
@@ -138,10 +138,16 @@ def _install_generated(name: str, text: str) -> None:
138
138
  ``boost import``/``reinstall`` path. Ask before doing that here, so
139
139
  ``distill``/``infer``/``absorb --install`` don't quietly destroy an
140
140
  existing install and relabel its lock provenance ``local``.
141
+
142
+ ``yes`` mirrors each caller's own ``-y``/``--yes`` flag: out.confirm()
143
+ already honours ``--yes``/``-y`` off ``sys.argv`` for a real invocation,
144
+ but that check can't see an ``argv`` list handed straight to
145
+ :func:`boost_cli.cli.main` rather than the process's own argv, so the
146
+ parsed flag is passed through explicitly rather than relied on twice.
141
147
  """
142
148
  owner = store.existing_skill_owner(name)
143
- if owner and not out.confirm(
144
- "%s is already installed from %s — replace it?" % (name, owner)):
149
+ if owner and not (yes or out.confirm(
150
+ "%s is already installed from %s — replace it?" % (name, owner))):
145
151
  _save_generated_fallback(
146
152
  name, text, "%s is already installed from %s" % (name, owner))
147
153
  return
@@ -159,9 +165,12 @@ def _install_generated(name: str, text: str) -> None:
159
165
  out.info(out.role("linked into: %s" % ", ".join(res.linked), "muted"))
160
166
 
161
167
 
162
- def _write_generated(dest: Path, text: str) -> bool:
163
- """Write a generated file, confirming before overwriting. False = declined."""
164
- if dest.exists() and not out.confirm("overwrite %s?" % _tilde(dest)):
168
+ def _write_generated(dest: Path, text: str, yes: bool = False) -> bool:
169
+ """Write a generated file, confirming before overwriting. False = declined.
170
+
171
+ ``yes`` — see :func:`_install_generated`.
172
+ """
173
+ if dest.exists() and not (yes or out.confirm("overwrite %s?" % _tilde(dest))):
165
174
  out.info("aborted — %s left untouched" % _tilde(dest))
166
175
  return False
167
176
  try:
@@ -190,6 +199,8 @@ def cmd_distill(argv: list[str]) -> int:
190
199
  help="name for the merged skill (default: <first>-distilled)")
191
200
  ap.add_argument("--install", action="store_true",
192
201
  help="install the merged skill instead of writing a file")
202
+ ap.add_argument("-y", "--yes", action="store_true",
203
+ help="skip the overwrite/replace confirmation prompt")
193
204
  args = ap.parse_args(argv)
194
205
 
195
206
  names = list(dict.fromkeys(args.names))
@@ -211,10 +222,10 @@ def cmd_distill(argv: list[str]) -> int:
211
222
  merged = _distill_merge(new, sources)
212
223
 
213
224
  if args.install:
214
- _install_generated(new, merged)
225
+ _install_generated(new, merged, yes=args.yes)
215
226
  else:
216
227
  dest = Path.cwd() / new / "SKILL.md"
217
- if not _write_generated(dest, merged):
228
+ if not _write_generated(dest, merged, yes=args.yes):
218
229
  return 1
219
230
  out.info(out.role("install it with `boost import ./%s`" % new, "muted"))
220
231
  journal.log("distill", new, sources=names)
@@ -366,6 +377,8 @@ def cmd_infer(argv: list[str]) -> int:
366
377
  ap.add_argument("-o", "--output", metavar="FILE", help="write to a file")
367
378
  ap.add_argument("--install", action="store_true",
368
379
  help="install the generated skill")
380
+ ap.add_argument("-y", "--yes", action="store_true",
381
+ help="skip the overwrite/replace confirmation prompt")
369
382
  args = ap.parse_args(argv)
370
383
 
371
384
  root = paths.expand(args.path).resolve()
@@ -380,10 +393,10 @@ def cmd_infer(argv: list[str]) -> int:
380
393
  text = _infer_template(name, facts)
381
394
 
382
395
  if args.install:
383
- _install_generated(name, text)
396
+ _install_generated(name, text, yes=args.yes)
384
397
  journal.log("infer", name, path=str(root))
385
398
  elif args.output:
386
- if not _write_generated(paths.expand(args.output), text):
399
+ if not _write_generated(paths.expand(args.output), text, yes=args.yes):
387
400
  return 1
388
401
  journal.log("infer", name, path=str(root))
389
402
  else:
@@ -593,6 +606,8 @@ def cmd_absorb(argv: list[str]) -> int:
593
606
  help="max patterns to absorb (default: 5)")
594
607
  ap.add_argument("--install", action="store_true",
595
608
  help="install the generated skill")
609
+ ap.add_argument("-y", "--yes", action="store_true",
610
+ help="skip the replace confirmation prompt")
596
611
  args = ap.parse_args(argv)
597
612
 
598
613
  if args.history:
@@ -634,7 +649,7 @@ def cmd_absorb(argv: list[str]) -> int:
634
649
  _note_fallback()
635
650
  text = _absorb_template(name, patterns)
636
651
  if args.install:
637
- _install_generated(name, text)
652
+ _install_generated(name, text, yes=args.yes)
638
653
  else:
639
654
  print(text, end="" if text.endswith("\n") else "\n")
640
655
  journal.log("absorb", name, patterns=len(patterns), files=len(files))
@@ -906,11 +921,17 @@ def cmd_context(argv: list[str]) -> int:
906
921
  return 0
907
922
  return _context_apply(state)
908
923
  if action == "disable":
924
+ # Count only skills `context apply` actually sidelined (`sidelined_by
925
+ # == "context"`), not every mapped skill with a linking agent enabled
926
+ # — the old `link_agents(name).linked` check relinks unconditionally
927
+ # and is truthy for any skill that was never sidelined at all, so a
928
+ # branch with no matched rule still reported "N skill(s) relinked".
909
929
  restored = 0
910
930
  inst = lockfile.installed()
911
931
  for name in sorted(_mentioned_skills(state)):
912
932
  entry = inst.get(name)
913
- if entry and not entry.get("quarantined") and store.link_agents(name).linked:
933
+ if entry and entry.get("sidelined_by") == "context":
934
+ store.unsideline(name)
914
935
  restored += 1
915
936
  state["enabled"] = False
916
937
  _save_state(_CONTEXT_STATE, state)
@@ -981,9 +1002,9 @@ def _context_apply(state: dict) -> int:
981
1002
  if entry.get("quarantined"):
982
1003
  continue
983
1004
  if name in active:
984
- if store.link_agents(name).linked:
1005
+ if store.unsideline(name).linked:
985
1006
  linked.append(name)
986
- elif store.unlink_agents(name):
1007
+ elif store.sideline(name, "context"):
987
1008
  unlinked.append(name)
988
1009
  out.kv("branch", branch)
989
1010
  out.kv("matched", ", ".join(r["pattern"] for r in matched) or "(no patterns)")
@@ -1025,15 +1046,24 @@ def cmd_focus(argv: list[str]) -> int:
1025
1046
  if args.clear:
1026
1047
  if args.skills:
1027
1048
  raise BoostError("--clear takes no skill arguments")
1049
+ # `link_agents(name).linked` used to drive both the loop and the
1050
+ # count: it relinks unconditionally and is truthy for any skill with
1051
+ # at least one enabled agent, so a `--clear` with no session at all
1052
+ # still reported "N skill(s) restored". `sidelined_by == "focus"` is
1053
+ # only true of skills THIS session actually unlinked.
1054
+ had_session = state_path.exists()
1028
1055
  restored = 0
1029
1056
  for name, entry in sorted(lockfile.installed().items()):
1030
- if entry.get("quarantined"):
1057
+ if entry.get("sidelined_by") != "focus":
1031
1058
  continue
1032
- if store.link_agents(name).linked:
1033
- restored += 1
1034
- if state_path.exists():
1059
+ store.unsideline(name)
1060
+ restored += 1
1061
+ if had_session:
1035
1062
  state_path.unlink()
1036
1063
  journal.log("focus", "clear", restored=restored)
1064
+ if not had_session and not restored:
1065
+ out.info("no focus session")
1066
+ return 0
1037
1067
  out.ok("focus cleared — %d skill(s) restored" % restored)
1038
1068
  return 0
1039
1069
 
@@ -1073,10 +1103,10 @@ def cmd_focus(argv: list[str]) -> int:
1073
1103
  for name, entry in sorted(inst.items()):
1074
1104
  if name in names or entry.get("quarantined"):
1075
1105
  continue
1076
- if store.unlink_agents(name):
1106
+ if store.sideline(name, "focus"):
1077
1107
  sidelined += 1
1078
1108
  for name in names:
1079
- store.link_agents(name)
1109
+ store.unsideline(name)
1080
1110
  _save_state(_FOCUS_STATE, {"active": names, "since": util.now_iso()})
1081
1111
  journal.log("focus", ",".join(names))
1082
1112
  out.info("⌁ focus: %s %s"