boost-skill-cli 1.0.267__tar.gz → 1.0.269__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 (506) hide show
  1. {boost_skill_cli-1.0.267/boost_skill_cli.egg-info → boost_skill_cli-1.0.269}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/store.py +50 -1
  4. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  5. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_skill_cli.egg-info/SOURCES.txt +2 -0
  6. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +3 -3
  7. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/crash-listing-branch-untested.md +3 -3
  8. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +3 -3
  9. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +3 -3
  10. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +3 -3
  11. boost_skill_cli-1.0.269/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +45 -0
  12. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/github-community-health-files.md +3 -3
  13. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/license-compliance-scanning.md +3 -3
  14. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +3 -3
  15. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +3 -3
  16. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +3 -3
  17. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mypy-strict-mode-for-commands.md +3 -3
  18. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +3 -3
  19. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +3 -3
  20. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +3 -3
  21. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/sbom-release-event-never-fires.md +1 -1
  22. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/serve-py-traversal-guards-untested.md +3 -3
  23. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/structured-json-log-output-mode.md +3 -3
  24. boost_skill_cli-1.0.269/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +36 -0
  25. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +3 -3
  26. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/wire-bdd-suite-into-ci.md +3 -3
  27. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap.html +92 -19
  28. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_store.py +146 -0
  29. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.gitattributes +0 -0
  30. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.gitignore +0 -0
  31. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.gitleaks.toml +0 -0
  32. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.htmlvalidate.json +0 -0
  33. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.lighthouserc.json +0 -0
  34. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.lycheeignore +0 -0
  35. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.markdownlint-cli2.jsonc +0 -0
  36. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.pre-commit-config.yaml +0 -0
  37. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.stylelintrc.json +0 -0
  38. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.vale/styles/boost/Terminology.yml +0 -0
  39. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  40. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/.vale.ini +0 -0
  41. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/CLAUDE.md +0 -0
  42. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/CODE_OF_CONDUCT.md +0 -0
  43. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/CONTRIBUTING.md +0 -0
  44. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/LICENSE +0 -0
  45. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/MANIFEST.in +0 -0
  46. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/Makefile +0 -0
  47. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/README.md +0 -0
  48. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/SECURITY.md +0 -0
  49. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost +0 -0
  50. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/__init__.py +0 -0
  51. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/__main__.py +0 -0
  52. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/cli.py +0 -0
  53. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/cliparse.py +0 -0
  54. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/__init__.py +0 -0
  55. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/_common.py +0 -0
  56. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/bmad.py +0 -0
  57. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/configuration.py +0 -0
  58. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/discovery.py +0 -0
  59. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/hooks.py +0 -0
  60. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/info.py +0 -0
  61. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/intelligence.py +0 -0
  62. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/pkg.py +0 -0
  63. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/quality.py +0 -0
  64. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/run.py +0 -0
  65. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/safety.py +0 -0
  66. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/taps.py +0 -0
  67. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/commands/team.py +0 -0
  68. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/__init__.py +0 -0
  69. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/adapters.py +0 -0
  70. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/agents.py +0 -0
  71. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/ai.py +0 -0
  72. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/capabilities.py +0 -0
  73. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/catalog.py +0 -0
  74. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/claude_settings.py +0 -0
  75. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/config.py +0 -0
  76. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/dense.py +0 -0
  77. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/ed25519.py +0 -0
  78. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/embed.py +0 -0
  79. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/faithfulness.py +0 -0
  80. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/frontmatter.py +0 -0
  81. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/gitutil.py +0 -0
  82. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/imperative.py +0 -0
  83. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/injectscan.py +0 -0
  84. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/integrity.py +0 -0
  85. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/journal.py +0 -0
  86. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/lockfile.py +0 -0
  87. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/logs.py +0 -0
  88. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/mcp.py +0 -0
  89. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/mcpdecl.py +0 -0
  90. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/minisign.py +0 -0
  91. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/nethttp.py +0 -0
  92. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/output.py +0 -0
  93. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/paths.py +0 -0
  94. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/policy.py +0 -0
  95. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/projectlock.py +0 -0
  96. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/provenance.py +0 -0
  97. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/rag.py +0 -0
  98. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/registry.py +0 -0
  99. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/resolve.py +0 -0
  100. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/rules.py +0 -0
  101. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/scopes.py +0 -0
  102. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/secretscan.py +0 -0
  103. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/selfupdate.py +0 -0
  104. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/serve.py +0 -0
  105. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/stackprobe.py +0 -0
  106. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/staleness.py +0 -0
  107. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/trustaudit.py +0 -0
  108. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/typosquat.py +0 -0
  109. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/updatediff.py +0 -0
  110. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/util.py +0 -0
  111. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/core/workflows.py +0 -0
  112. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/data/registries.json +0 -0
  113. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/errors.py +0 -0
  114. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_cli/spin.py +0 -0
  115. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  116. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  117. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_skill_cli.egg-info/requires.txt +0 -0
  118. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/boost_skill_cli.egg-info/top_level.txt +0 -0
  119. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/codecov.yml +0 -0
  120. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/.claude/settings.local.json +0 -0
  121. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/DEBUGGING.md +0 -0
  122. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/adapters.html +0 -0
  123. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/gifs/distill.gif +0 -0
  124. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/gifs/doctor.gif +0 -0
  125. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/gifs/explain.gif +0 -0
  126. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/gifs/hooks.gif +0 -0
  127. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/gifs/install.gif +0 -0
  128. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/gifs/pulse.gif +0 -0
  129. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/gifs/search.gif +0 -0
  130. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/gifs/tap.gif +0 -0
  131. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/tapes/distill.tape +0 -0
  132. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/tapes/doctor.tape +0 -0
  133. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/tapes/explain.tape +0 -0
  134. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/tapes/hooks.tape +0 -0
  135. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/tapes/install.tape +0 -0
  136. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/tapes/pulse.tape +0 -0
  137. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/tapes/search.tape +0 -0
  138. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel/tapes/tap.tape +0 -0
  139. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/carousel.html +0 -0
  140. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/commands.html +0 -0
  141. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/demo.gif +0 -0
  142. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/demo.tape +0 -0
  143. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/design-roadmap.html +0 -0
  144. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/eval.html +0 -0
  145. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/index.html +0 -0
  146. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/mcp-hub.html +0 -0
  147. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/rag-architecture.md +0 -0
  148. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D01.md +0 -0
  149. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D02.md +0 -0
  150. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D03.md +0 -0
  151. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D04.md +0 -0
  152. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D05.md +0 -0
  153. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D06.md +0 -0
  154. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D07.md +0 -0
  155. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D08.md +0 -0
  156. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D09.md +0 -0
  157. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D10.md +0 -0
  158. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D11.md +0 -0
  159. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D12.md +0 -0
  160. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D13.md +0 -0
  161. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D14.md +0 -0
  162. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D15.md +0 -0
  163. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D16.md +0 -0
  164. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D17.md +0 -0
  165. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D18.md +0 -0
  166. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D19.md +0 -0
  167. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D20.md +0 -0
  168. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D21.md +0 -0
  169. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D22.md +0 -0
  170. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D23.md +0 -0
  171. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D24.md +0 -0
  172. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D25.md +0 -0
  173. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/BOOST-D26.md +0 -0
  174. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  175. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  176. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  177. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  178. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  179. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  180. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  181. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  182. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  183. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  184. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  185. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  186. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  187. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  188. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  189. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  190. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/command-carousel-page.md +0 -0
  191. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  192. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  193. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  194. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  195. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  196. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  197. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  198. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  199. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  200. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  201. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  202. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  203. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  204. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  205. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  206. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  207. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  208. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  209. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  210. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  211. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  212. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  213. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  214. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  215. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  216. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  217. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  218. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  219. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  220. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  221. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  222. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  223. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  224. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  225. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  226. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  227. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  228. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  229. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  230. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  231. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  232. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  233. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  234. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  235. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  236. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  237. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  238. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  239. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  240. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  241. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  242. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  243. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  244. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  245. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  246. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  247. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  248. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  249. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  250. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  251. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  252. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  253. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  254. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  255. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  256. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  257. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  258. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  259. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  260. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  261. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  262. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  263. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  264. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  265. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  266. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  267. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  268. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  269. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  270. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  271. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  272. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  273. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  274. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  275. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  276. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  277. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  278. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  279. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  280. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  281. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  282. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  283. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  284. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  285. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  286. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  287. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  288. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  289. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  290. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  291. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  292. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  293. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  294. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  295. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  296. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  297. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  298. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  299. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  300. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  301. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  302. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  303. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  304. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  305. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  306. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  307. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  308. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  309. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  310. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  311. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  312. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  313. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  314. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/docs/roadmap/items/workspace-scope-install.md +0 -0
  315. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/eslint.config.mjs +0 -0
  316. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/examples/README.md +0 -0
  317. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/examples/adapt-demo.sh +0 -0
  318. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/examples/boost-run-prototype.sh +0 -0
  319. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/index.html +0 -0
  320. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/noxfile.py +0 -0
  321. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/pyproject.toml +0 -0
  322. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/coverage-tools.in +0 -0
  323. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/coverage-tools.txt +0 -0
  324. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/lint-tools.in +0 -0
  325. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/lint-tools.txt +0 -0
  326. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/mutation-tools.in +0 -0
  327. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/mutation-tools.txt +0 -0
  328. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/release-tools.in +0 -0
  329. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/release-tools.txt +0 -0
  330. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/test-tools.in +0 -0
  331. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/requirements/test-tools.txt +0 -0
  332. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/a11y_check.py +0 -0
  333. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/bench_cli.sh +0 -0
  334. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/build_command_reference.py +0 -0
  335. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/build_registries.py +0 -0
  336. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/build_roadmap.py +0 -0
  337. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/check_anchors.py +0 -0
  338. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/check_licenses.py +0 -0
  339. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/check_required_checks.py +0 -0
  340. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/ensure_eval_corpus.sh +0 -0
  341. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/eval_explain.py +0 -0
  342. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/eval_recommend.py +0 -0
  343. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/eval_retrieval.py +0 -0
  344. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/eval_stats_summary.py +0 -0
  345. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/import_budget.py +0 -0
  346. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/lock_toolchain.py +0 -0
  347. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/mutation_gate.py +0 -0
  348. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/mutation_shards.py +0 -0
  349. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/mutation_weights.json +0 -0
  350. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/perf_gate.py +0 -0
  351. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/post_deploy_smoke.py +0 -0
  352. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/scripts/release_preflight.py +0 -0
  353. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/setup.cfg +0 -0
  354. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/sonar-project.properties +0 -0
  355. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/style/README.md +0 -0
  356. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/style/boost.css +0 -0
  357. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/style/boost.js +0 -0
  358. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/style/demo.html +0 -0
  359. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/adapt.feature +0 -0
  360. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/browse.feature +0 -0
  361. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/count.feature +0 -0
  362. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/discover.feature +0 -0
  363. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/doctor.feature +0 -0
  364. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/environment.py +0 -0
  365. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/explain.feature +0 -0
  366. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/index.feature +0 -0
  367. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/install.feature +0 -0
  368. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/list.feature +0 -0
  369. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/mcp.feature +0 -0
  370. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/search.feature +0 -0
  371. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/steps/cli_steps.py +0 -0
  372. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/steps/discovery_steps.py +0 -0
  373. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/steps/mcp_steps.py +0 -0
  374. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/bdd/features/steps/quality_steps.py +0 -0
  375. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/conftest.py +0 -0
  376. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/eval/baseline.json +0 -0
  377. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/eval/explain.jsonl +0 -0
  378. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/eval/golden.jsonl +0 -0
  379. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/eval/recommend.jsonl +0 -0
  380. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/eval/taps.txt +0 -0
  381. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_capabilities_policy.py +0 -0
  382. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_adapt.py +0 -0
  383. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_bmad.py +0 -0
  384. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_configuration.py +0 -0
  385. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_discovery.py +0 -0
  386. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_hooks.py +0 -0
  387. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_info.py +0 -0
  388. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_intelligence.py +0 -0
  389. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_pkg.py +0 -0
  390. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_quality.py +0 -0
  391. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_taps.py +0 -0
  392. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_cli_team.py +0 -0
  393. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_everyday_loop.py +0 -0
  394. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_integrity_enforce.py +0 -0
  395. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_property_parsers.py +0 -0
  396. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_run.py +0 -0
  397. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_tap_signing.py +0 -0
  398. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/functional/test_workspace_scope.py +0 -0
  399. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/README.md +0 -0
  400. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  401. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  402. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  403. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  404. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  405. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  406. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  407. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  408. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  409. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  410. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  411. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  412. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  413. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  414. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  415. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  416. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  417. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  418. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  419. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  420. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/fuzz_frontmatter.py +0 -0
  421. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/fuzz/fuzz_registry.py +0 -0
  422. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/make_fixture.py +0 -0
  423. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/perf/test_benchmarks.py +0 -0
  424. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/smoke.sh +0 -0
  425. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_a11y_check.py +0 -0
  426. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_adapters.py +0 -0
  427. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_adapters_multi.py +0 -0
  428. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_adapters_runner.py +0 -0
  429. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_agents.py +0 -0
  430. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_ai.py +0 -0
  431. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_capabilities.py +0 -0
  432. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_catalog.py +0 -0
  433. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_check_anchors.py +0 -0
  434. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_check_licenses.py +0 -0
  435. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_claude_settings.py +0 -0
  436. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_cliparse.py +0 -0
  437. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_command_reference_fresh.py +0 -0
  438. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_community_health_files.py +0 -0
  439. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_config.py +0 -0
  440. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_dense.py +0 -0
  441. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_dense_fallback.py +0 -0
  442. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_dependabot_config.py +0 -0
  443. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_docs_pages_linked.py +0 -0
  444. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_docsite_chrome.py +0 -0
  445. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_ed25519.py +0 -0
  446. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_embed.py +0 -0
  447. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_errors_and_cli_table.py +0 -0
  448. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_eval_stats_summary.py +0 -0
  449. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_faithfulness.py +0 -0
  450. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_frontmatter.py +0 -0
  451. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_fuzz_targets.py +0 -0
  452. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_gitleaks_config.py +0 -0
  453. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_gitutil.py +0 -0
  454. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_imperative.py +0 -0
  455. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_import_budget.py +0 -0
  456. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_injectscan.py +0 -0
  457. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_integrity.py +0 -0
  458. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_journal.py +0 -0
  459. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_lockfile.py +0 -0
  460. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_logs.py +0 -0
  461. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_marketing_counts.py +0 -0
  462. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_mcp.py +0 -0
  463. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_mcpdecl.py +0 -0
  464. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_minisign.py +0 -0
  465. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_mutation_hardening.py +0 -0
  466. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_mutation_shards.py +0 -0
  467. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_mutmut_source_paths.py +0 -0
  468. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_nethttp.py +0 -0
  469. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_output.py +0 -0
  470. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_paths.py +0 -0
  471. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_perf_gate.py +0 -0
  472. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_pkg_confusions.py +0 -0
  473. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_pkg_injection.py +0 -0
  474. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_pkg_secrets.py +0 -0
  475. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_policy.py +0 -0
  476. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_post_deploy_smoke.py +0 -0
  477. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_projectlock.py +0 -0
  478. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_provenance.py +0 -0
  479. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_rag.py +0 -0
  480. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_registries_fresh.py +0 -0
  481. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_registry.py +0 -0
  482. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_release_preflight.py +0 -0
  483. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_required_checks.py +0 -0
  484. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_resolve.py +0 -0
  485. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_roadmap_fresh.py +0 -0
  486. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_rules.py +0 -0
  487. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_scopes.py +0 -0
  488. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_secretscan.py +0 -0
  489. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_selfupdate.py +0 -0
  490. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_serve.py +0 -0
  491. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_spin.py +0 -0
  492. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_stackprobe.py +0 -0
  493. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_staleness.py +0 -0
  494. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_token_parity.py +0 -0
  495. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_toolchain_lock.py +0 -0
  496. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_trustaudit.py +0 -0
  497. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_typosquat.py +0 -0
  498. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_updatediff.py +0 -0
  499. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_util.py +0 -0
  500. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_version.py +0 -0
  501. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_workflow_timeouts.py +0 -0
  502. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/unit/test_workflows.py +0 -0
  503. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/visual/a11y_check.mjs +0 -0
  504. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/visual/console_check.mjs +0 -0
  505. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/tests/visual/package.json +0 -0
  506. {boost_skill_cli-1.0.267 → boost_skill_cli-1.0.269}/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.0.267
3
+ Version: 1.0.269
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -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.0.267'
22
- __version_tuple__ = version_tuple = (1, 0, 267)
21
+ __version__ = version = '1.0.269'
22
+ __version_tuple__ = version_tuple = (1, 0, 269)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -126,6 +126,41 @@ def preserved_agent_scope(only_agents: Optional[List[str]],
126
126
  return [a for a in recorded if a] or None
127
127
 
128
128
 
129
+ def declared_agent_scope(only_agents: Optional[List[str]],
130
+ existing: Optional[dict]) -> Optional[List[str]]:
131
+ """The scope to RECORD in the lock: an explicit narrowing, or the last one.
132
+
133
+ Deliberately *not* :func:`preserved_agent_scope`. That one answers "which
134
+ agents should this install link into", and falls back to the lock's
135
+ ``agents`` — which records what happens to be linked right now. Writing
136
+ that back as a declared scope would promote "these were the enabled agents
137
+ at install time" into "the user asked for exactly these", permanently
138
+ freezing a skill out of any agent enabled later. The two questions look
139
+ alike and are not, so they get separate functions.
140
+
141
+ Only an explicit ``--agent`` narrows. Absent that, an earlier declaration
142
+ is carried forward so ``update``/``reinstall`` don't drop it, and a skill
143
+ that was never narrowed keeps no scope at all (``None``).
144
+ """
145
+ if only_agents is not None:
146
+ return list(only_agents)
147
+ return (existing or {}).get("only_agents")
148
+
149
+
150
+ def scoped_agents(entry: dict, enabled: Dict[str, Path]) -> Dict[str, Path]:
151
+ """The enabled agents a locked skill is supposed to be linked into.
152
+
153
+ Fails **open**: an entry with no ``only_agents`` — every entry written
154
+ before this field existed — means "not narrowed", so it gets every enabled
155
+ agent. That keeps ``boost sync`` doing its other job, which is linking
156
+ already-installed skills into an agent that was enabled afterwards.
157
+ """
158
+ scope = entry.get("only_agents")
159
+ if not scope:
160
+ return enabled.copy()
161
+ return {a: d for a, d in enabled.items() if a in scope}
162
+
163
+
129
164
  def unlink_agents(name: str) -> List[str]:
130
165
  """Remove the ``name`` symlink from every enabled agent dir.
131
166
 
@@ -326,6 +361,11 @@ def install(entry: dict, force: bool = False,
326
361
  "pinned": bool((existing or {}).get("pinned")),
327
362
  "quarantined": False,
328
363
  "agents": res.linked,
364
+ # `agents` is what IS linked; `only_agents` is what the user ASKED for.
365
+ # sync needs the second: it links a skill into every enabled agent, and
366
+ # without a record of the request it cannot tell a deliberate `--agent`
367
+ # narrowing from a skill that simply predates a newly enabled agent.
368
+ "only_agents": declared_agent_scope(only_agents, existing),
329
369
  "tags": (existing or {}).get("tags", []),
330
370
  })
331
371
  journal.log("install", name, tap=entry["tap"], version=entry.get("version"))
@@ -806,6 +846,10 @@ def install_from_path(src_dir: Path, name: Optional[str] = None,
806
846
  "pinned": bool((existing or {}).get("pinned")),
807
847
  "quarantined": False,
808
848
  "agents": res.linked,
849
+ # `boost import --agent ...` narrows the same way `install` does, so it
850
+ # has to record the same declaration — otherwise the links are narrow
851
+ # but sync sees no scope and widens them right back.
852
+ "only_agents": declared_agent_scope(only_agents, existing),
809
853
  "tags": (existing or {}).get("tags", []),
810
854
  })
811
855
  journal.log("import", name, source=str(src_dir))
@@ -922,7 +966,12 @@ def sync_plan() -> Dict[str, list]:
922
966
  continue
923
967
  if entry.get("quarantined"):
924
968
  continue
925
- for agent, adir in agents.enabled_agents().items():
969
+ # Only the agents this skill was installed for. Walking every enabled
970
+ # agent made `boost sync` a second path to the scope leak that
971
+ # `preserved_agent_scope` closed on the install side: it reported a
972
+ # missing_link for each agent outside the narrowing, and sync_apply
973
+ # dutifully linked them, undoing `install --agent` in one command.
974
+ for agent, adir in scoped_agents(entry, agents.enabled_agents()).items():
926
975
  link = adir / name
927
976
  if not link.is_symlink() or not link.exists():
928
977
  plan["missing_links"].append((name, agent))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.267
3
+ Version: 1.0.269
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -182,6 +182,7 @@ docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md
182
182
  docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md
183
183
  docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md
184
184
  docs/roadmap/items/dependabot-missing-pip-ecosystem.md
185
+ docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md
185
186
  docs/roadmap/items/dependency-cve-gate-pip-audit.md
186
187
  docs/roadmap/items/docsite-chrome-and-content-audit.md
187
188
  docs/roadmap/items/docstring-coverage-interrogate.md
@@ -296,6 +297,7 @@ docs/roadmap/items/structured-json-log-output-mode.md
296
297
  docs/roadmap/items/supply-chain-posture-openssf-scorecard.md
297
298
  docs/roadmap/items/surface-every-docs-page-from-the-guide.md
298
299
  docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md
300
+ docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md
299
301
  docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md
300
302
  docs/roadmap/items/theme-asset-linting-stylelint-eslint.md
301
303
  docs/roadmap/items/typo-detection-codespell.md
@@ -2,15 +2,15 @@
2
2
  id: ai-bridge-silent-failure-logging
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: Observability
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 40
12
- owner:
13
- pr:
12
+ owner: loop/ai-failure-logging
13
+ pr: 284
14
14
  title: AI bridge swallows failures with zero diagnostic trail
15
15
  ---
16
16
  <code>core/ai.py</code>'s CLI and API call paths both catch their failure modes (timeout, OS error,
@@ -2,15 +2,15 @@
2
2
  id: crash-listing-branch-untested
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: Testing · Bug
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 1
10
10
  note:
11
11
  order: 37
12
- owner:
13
- pr:
12
+ owner: loop/crash-listing-tests
13
+ pr: 291
14
14
  title: <code>boost log --crashes</code> listing branch has no non-empty test
15
15
  ---
16
16
  <code>_show_crashes</code> has an empty-state branch and a listing branch that reads each
@@ -2,15 +2,15 @@
2
2
  id: demo-gif-workflow-has-never-succeeded
3
3
  board: code
4
4
  section: docsite
5
- status: planned
5
+ status: shipped
6
6
  category: Bug
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 2
10
10
  note: 3 runs, 3 failures, 0 PRs opened
11
11
  order: 52
12
- owner:
13
- pr:
12
+ owner: loop/fix-demo-recorder
13
+ pr: 294
14
14
  title: <code>demo.yml</code> has failed every run since it landed — vhs-action cannot install ffmpeg
15
15
  ---
16
16
  <code>demo.yml</code> re-records <code>docs/demo.gif</code> with
@@ -2,15 +2,15 @@
2
2
  id: dense-search-fallback-and-stale-tap-pruning
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: Bug
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 30
12
- owner:
13
- pr:
12
+ owner: loop/dense-fallback-and-prune
13
+ pr: 293
14
14
  title: Dense search's empty result skips the BM25 fallback
15
15
  ---
16
16
  <code>_retrieve_any</code> treats any non-<code>None</code> dense result as final, but
@@ -2,15 +2,15 @@
2
2
  id: dependabot-missing-pip-ecosystem
3
3
  board: code
4
4
  section: pipeline
5
- status: planned
5
+ status: shipped
6
6
  category: Supply chain
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 1
10
10
  note: extras only — <code>/requirements</code> is covered
11
11
  order: 11
12
- owner:
13
- pr:
12
+ owner: loop/dependabot-pyproject-extras
13
+ pr: 289
14
14
  title: Dependabot's <code>pip</code> entry misses <code>pyproject.toml</code>'s extras
15
15
  ---
16
16
  <code>.github/dependabot.yml</code> declares <code>pip</code> for
@@ -0,0 +1,45 @@
1
+ ---
2
+ id: dependabot-root-pip-entry-duplicates-requirements
3
+ board: code
4
+ section: internals
5
+ status: planned
6
+ category: Build · Gap
7
+ complexity: S
8
+ impact: Low
9
+ wow: 1
10
+ note: fallout from #289 — every toolchain bump now arrives twice
11
+ order: 35
12
+ owner:
13
+ pr:
14
+ title: Dependabot raises every toolchain bump <em>twice</em>
15
+ ---
16
+ PR #289 added a third Dependabot entry, <code>package-ecosystem: pip</code> with
17
+ <code>directory: /</code>, to give <code>pyproject.toml</code>'s optional extras the proactive bump
18
+ PRs they had never had. The first scheduled run after it merged produced <b>eight</b> PRs, and two
19
+ pairs of them are duplicates: <code>#301</code>/<code>#302</code> (twine) and
20
+ <code>#300</code>/<code>#303</code> (hypothesis) change <b>byte-identical file sets</b> — one PR from
21
+ the <code>/</code> entry and one from the pre-existing <code>/requirements</code> entry, for the same
22
+ bump. Merging either makes the other redundant, and Dependabot closes the twin automatically, so the
23
+ cost is noise rather than breakage. It will recur every week.
24
+
25
+ Worse, the entry cannot deliver what it was added for. Every constraint under
26
+ <code>[project.optional-dependencies]</code> is either an open lower bound
27
+ (<code>sqlite-vec&gt;=0.1.6</code>) or explicitly listed in that entry's own <code>ignore</code>
28
+ block (the pinned langchain 0.3 stack held back for ragas). Dependabot does not raise a
29
+ <i>version</i> PR when the declared range already admits the newest release, so the set of
30
+ <code>pyproject.toml</code> version updates this entry can ever produce is <b>empty</b> — which is
31
+ why none of the eight touched <code>pyproject.toml</code>.
32
+
33
+ Do not simply revert it. Dependabot <i>security</i> updates ignore the versioning strategy and fire
34
+ on a vulnerable version inside a permitted range, so the entry does give the extras security
35
+ coverage they previously lacked — the item it closed was right that
36
+ <code>[rag]</code>/<code>[bdd]</code>/<code>[perf]</code> had only reactive pip-audit flags. The
37
+ entry should be <b>narrowed</b>, not removed.
38
+
39
+ Two candidate fixes, both needing verification against a real scheduled run rather than reasoning —
40
+ Dependabot's file discovery is what got this wrong in the first place. <b>First</b>, scope the
41
+ <code>/</code> entry so it stops matching <code>requirements/**</code>, leaving
42
+ <code>/requirements</code> as the single owner of the hash-pinned lock. <b>Second</b>, if proactive
43
+ extras bumps are genuinely wanted, that needs <code>versioning-strategy: increase</code> so open
44
+ lower bounds are raised at all; otherwise accept that this entry is security-only and say so in the
45
+ comment, which is the honest smaller change.
@@ -2,15 +2,15 @@
2
2
  id: github-community-health-files
3
3
  board: code
4
4
  section: dx
5
- status: planned
5
+ status: shipped
6
6
  category: Developer Experience
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 11
12
- owner:
13
- pr:
12
+ owner: loop/community-health-files
13
+ pr: 290
14
14
  title: No issue/PR templates or a code of conduct
15
15
  ---
16
16
  The repo has <code>SECURITY.md</code>, <code>CONTRIBUTING.md</code>, and
@@ -2,15 +2,15 @@
2
2
  id: license-compliance-scanning
3
3
  board: code
4
4
  section: pipeline
5
- status: planned
5
+ status: shipped
6
6
  category: Supply chain
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 12
12
- owner:
13
- pr:
12
+ owner: loop/license-compliance
13
+ pr: 310
14
14
  title: License-compliance scanning of the dependency closure
15
15
  ---
16
16
  Nothing in CI checks SPDX license compatibility of resolved dependencies — <code>pip-audit</code>
@@ -2,15 +2,15 @@
2
2
  id: lint-tap-misscopes-rule-workflow-entries
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: Bug
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 34
12
- owner:
13
- pr:
12
+ owner: loop/lint-tap-scope
13
+ pr: 279
14
14
  title: <code>lint --tap</code> mis-scores rule/workflow entries as broken
15
15
  ---
16
16
  <code>boost lint --tap</code> builds its target list without filtering by kind, so rule/workflow
@@ -2,15 +2,15 @@
2
2
  id: lock-invariant-cannot-parse-extras-pins
3
3
  board: code
4
4
  section: health
5
- status: planned
5
+ status: shipped
6
6
  category: Latent bug
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note: <code>pkg[extra]==x</code> reads as unpinned
11
11
  order: 16
12
- owner:
13
- pr:
12
+ owner: loop/lock-invariant-extras
13
+ pr: 306
14
14
  title: The lock invariant can't parse <code>name[extra]==version</code>, so a valid pin fails the gate
15
15
  ---
16
16
  <code>tests/unit/test_toolchain_lock.py</code> (added with the lock-stability fix, #248)
@@ -2,15 +2,15 @@
2
2
  id: merge-queue-would-deadlock-most-required-checks
3
3
  board: code
4
4
  section: pipeline
5
- status: planned
5
+ status: shipped
6
6
  category: Release safety
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 3
10
10
  note: a latent trap, only if someone enables the queue
11
11
  order: 58
12
- owner:
13
- pr:
12
+ owner: loop/merge-queue
13
+ pr: 280
14
14
  title: Enabling a merge queue would deadlock every required check except ci.yml's
15
15
  ---
16
16
  Only <code>ci.yml</code> declares <code>merge_group</code> among its triggers. The other
@@ -2,15 +2,15 @@
2
2
  id: mypy-strict-mode-for-commands
3
3
  board: code
4
4
  section: health
5
- status: planned
5
+ status: shipped
6
6
  category: Testing · Type
7
7
  complexity: M
8
8
  impact: High
9
9
  wow: 3
10
10
  note:
11
11
  order: 11
12
- owner:
13
- pr:
12
+ owner: loop/mypy-check-command-bodies
13
+ pr: 309
14
14
  title: mypy's default mode skips untyped command bodies
15
15
  ---
16
16
  <code>[tool.mypy]</code> in <code>pyproject.toml</code> sets only <code>python_version</code>/
@@ -2,15 +2,15 @@
2
2
  id: negative-limit-inverts-log-pulse-output
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: CLI ergonomics
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 1
10
10
  note:
11
11
  order: 36
12
- owner:
13
- pr:
12
+ owner: loop/positive-count-flags
13
+ pr: 285
14
14
  title: Negative <code>-n</code> silently inverts <code>log</code>/<code>pulse</code> output
15
15
  ---
16
16
  <code>boost log</code>/<code>boost pulse</code> accept <code>-n</code>/<code>--limit</code> as a bare
@@ -2,15 +2,15 @@
2
2
  id: onboard-overwrites-generated-files-without-confirm
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: UX · Bug
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 35
12
- owner:
13
- pr:
12
+ owner: loop/onboard-confirm-overwrite
13
+ pr: 287
14
14
  title: <code>boost onboard</code> silently overwrites existing generated files
15
15
  ---
16
16
  <code>boost onboard</code> writes <code>.boost/telemetry.json</code>, a GitHub Actions workflow, and
@@ -2,15 +2,15 @@
2
2
  id: roadmap-html-goes-stale-on-every-rebase
3
3
  board: code
4
4
  section: dx
5
- status: planned
5
+ status: shipped
6
6
  category: DX
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 3
10
10
  note: hit twice on one PR in a single afternoon
11
11
  order: 59
12
- owner:
13
- pr:
12
+ owner: loop/roadmap-stale-diagnosis
13
+ pr: 307
14
14
  title: <code>roadmap.html</code> goes stale on every rebase, so a card and a merge race redden the whole matrix
15
15
  ---
16
16
  The data-driven roadmap solved the conflict problem for <em>item files</em>: two loops adding
@@ -9,7 +9,7 @@ impact: High
9
9
  wow: 4
10
10
  note: 253 releases shipped with no SBOM; fixed with workflow_run
11
11
  order: 50
12
- owner:
12
+ owner: loop/sbom-trigger
13
13
  pr: 295
14
14
  title: <code>sbom.yml</code> has never run — it waits for an event <code>GITHUB_TOKEN</code> cannot emit
15
15
  ---
@@ -2,15 +2,15 @@
2
2
  id: serve-py-traversal-guards-untested
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: Testing · Security
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note: lowest coverage in core/
11
11
  order: 38
12
- owner:
13
- pr:
12
+ owner: loop/serve-guard-coverage
13
+ pr: 282
14
14
  title: <code>boost serve</code>'s own path-traversal guards are untested
15
15
  ---
16
16
  <code>serve.py</code>'s defenses against a malicious catalog <code>skill_md</code> path
@@ -2,15 +2,15 @@
2
2
  id: structured-json-log-output-mode
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: Observability
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 39
12
- owner:
13
- pr:
12
+ owner: loop/json-log-format
13
+ pr: 308
14
14
  title: Diagnostic log has no structured/JSON output mode
15
15
  ---
16
16
  <code>core/logs.py</code> uses stdlib <code>logging</code> with rotation and crash reports, but its
@@ -0,0 +1,36 @@
1
+ ---
2
+ id: sync-relinks-into-every-agent-ignoring-scope
3
+ board: code
4
+ section: internals
5
+ status: shipped
6
+ category: Bug
7
+ complexity: S
8
+ impact: Med
9
+ wow: 2
10
+ note: the half of the scope leak PR #288 deliberately left open
11
+ order: 34
12
+ owner: loop/sync-agent-scope
13
+ pr: 311
14
+ title: <code>sync</code> relinks a narrowed skill into every agent
15
+ ---
16
+ <code>store.preserved_agent_scope</code> (PR #288) stopped <code>update</code> and
17
+ <code>reinstall</code> widening a skill installed with <code>--agent</code> narrowing, but
18
+ <code>sync_plan()</code> was a second, independent path to the same leak: it walked
19
+ <code>agents.enabled_agents()</code> for <b>every</b> locked skill and reported a
20
+ <code>missing_link</code> for any agent the skill was not linked into — the lock's recorded
21
+ scope was never consulted. <code>sync_apply</code> then dutifully linked them, so a
22
+ single <code>boost sync</code> undid the narrowing that <code>install --agent</code> asked for and
23
+ rewrote the lock to match.
24
+
25
+ It was left out of #288 because the fix is a real trade-off, not an oversight:
26
+ <code>boost sync</code> is also how a <i>newly enabled</i> agent picks up skills installed
27
+ before it existed, and honouring the lock's <code>agents</code> list would silently break that —
28
+ <code>agents</code> records what is linked <i>right now</i>, so reading it as a scope would
29
+ freeze every existing skill out of any agent enabled later.
30
+
31
+ Resolved by separating the two questions. A new <code>only_agents</code> field records what the
32
+ user <i>asked</i> for, written only by an explicit <code>--agent</code> and carried forward across
33
+ <code>update</code>/<code>reinstall</code>; <code>agents</code> keeps meaning what is actually linked.
34
+ <code>sync_plan</code> filters through <code>scoped_agents()</code>, which <b>fails open</b> — an entry
35
+ with no declaration, which is every entry written before this field existed, still fans out to
36
+ every enabled agent. So narrowing is honoured and the newly-enabled-agent path is untouched.
@@ -2,15 +2,15 @@
2
2
  id: update-reinstall-widens-agent-scope
3
3
  board: code
4
4
  section: internals
5
- status: planned
5
+ status: shipped
6
6
  category: Bug
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 33
12
- owner:
13
- pr:
12
+ owner: loop/keep-agent-scope
13
+ pr: 288
14
14
  title: <code>update</code>/<code>reinstall</code> silently widen a skill's agent scope
15
15
  ---
16
16
  A skill installed with <code>--agent</code> narrowing (e.g. <code>boost install foo --agent
@@ -2,15 +2,15 @@
2
2
  id: wire-bdd-suite-into-ci
3
3
  board: code
4
4
  section: dx
5
- status: planned
5
+ status: shipped
6
6
  category: Test infra
7
7
  complexity: S
8
8
  impact: Med
9
9
  wow: 2
10
10
  note:
11
11
  order: 12
12
- owner:
13
- pr:
12
+ owner: loop/wire-bdd-into-ci
13
+ pr: 292
14
14
  title: New BDD suite has zero CI wiring
15
15
  ---
16
16
  The behave suite added under <code>tests/bdd/</code> (11 features, 47 scenarios) passes cleanly