boost-skill-cli 1.0.202__tar.gz → 1.0.204__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 (379) hide show
  1. {boost_skill_cli-1.0.202/boost_skill_cli.egg-info → boost_skill_cli-1.0.204}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/pkg.py +73 -2
  4. boost_skill_cli-1.0.204/boost_cli/core/resolve.py +136 -0
  5. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  6. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/SOURCES.txt +7 -0
  7. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/adapters.html +40 -9
  8. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/commands.html +44 -4
  9. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/design-roadmap.html +61 -38
  10. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/eval.html +40 -15
  11. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/index.html +43 -20
  12. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/mcp-hub.html +40 -16
  13. boost_skill_cli-1.0.204/docs/roadmap/items/docsite-chrome-and-content-audit.md +41 -0
  14. boost_skill_cli-1.0.204/docs/roadmap/items/install-resolves-skill-dependencies.md +30 -0
  15. boost_skill_cli-1.0.204/docs/roadmap/items/installed-skill-trust-audit.md +25 -0
  16. boost_skill_cli-1.0.204/docs/roadmap/items/mcp-aware-skills.md +25 -0
  17. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap.html +257 -145
  18. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/build_command_reference.py +40 -1
  19. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/build_roadmap.py +5 -3
  20. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/style/boost.css +51 -2
  21. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_intelligence.py +3 -1
  22. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_pkg.py +23 -0
  23. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_everyday_loop.py +3 -1
  24. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/smoke.sh +4 -1
  25. boost_skill_cli-1.0.204/tests/unit/test_docsite_chrome.py +210 -0
  26. boost_skill_cli-1.0.204/tests/unit/test_resolve.py +162 -0
  27. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.gitattributes +0 -0
  28. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.gitignore +0 -0
  29. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.gitleaks.toml +0 -0
  30. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.htmlvalidate.json +0 -0
  31. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.lighthouserc.json +0 -0
  32. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.lycheeignore +0 -0
  33. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.markdownlint-cli2.jsonc +0 -0
  34. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.pre-commit-config.yaml +0 -0
  35. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.stylelintrc.json +0 -0
  36. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.vale/styles/boost/Terminology.yml +0 -0
  37. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  38. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.vale.ini +0 -0
  39. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/CLAUDE.md +0 -0
  40. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/CONTRIBUTING.md +0 -0
  41. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/LICENSE +0 -0
  42. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/MANIFEST.in +0 -0
  43. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/Makefile +0 -0
  44. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/README.md +0 -0
  45. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/SECURITY.md +0 -0
  46. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost +0 -0
  47. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/__init__.py +0 -0
  48. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/__main__.py +0 -0
  49. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/cli.py +0 -0
  50. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/cliparse.py +0 -0
  51. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/__init__.py +0 -0
  52. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/_common.py +0 -0
  53. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/bmad.py +0 -0
  54. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/configuration.py +0 -0
  55. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/discovery.py +0 -0
  56. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/hooks.py +0 -0
  57. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/info.py +0 -0
  58. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/intelligence.py +0 -0
  59. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/quality.py +0 -0
  60. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/run.py +0 -0
  61. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/safety.py +0 -0
  62. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/taps.py +0 -0
  63. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/team.py +0 -0
  64. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/__init__.py +0 -0
  65. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/adapters.py +0 -0
  66. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/agents.py +0 -0
  67. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/ai.py +0 -0
  68. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/capabilities.py +0 -0
  69. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/catalog.py +0 -0
  70. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/claude_settings.py +0 -0
  71. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/config.py +0 -0
  72. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/dense.py +0 -0
  73. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/ed25519.py +0 -0
  74. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/embed.py +0 -0
  75. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/faithfulness.py +0 -0
  76. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/frontmatter.py +0 -0
  77. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/gitutil.py +0 -0
  78. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/imperative.py +0 -0
  79. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/injectscan.py +0 -0
  80. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/integrity.py +0 -0
  81. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/journal.py +0 -0
  82. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/lockfile.py +0 -0
  83. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/logs.py +0 -0
  84. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/mcp.py +0 -0
  85. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/minisign.py +0 -0
  86. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/nethttp.py +0 -0
  87. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/output.py +0 -0
  88. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/paths.py +0 -0
  89. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/policy.py +0 -0
  90. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/projectlock.py +0 -0
  91. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/provenance.py +0 -0
  92. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/rag.py +0 -0
  93. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/registry.py +0 -0
  94. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/rules.py +0 -0
  95. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/scopes.py +0 -0
  96. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/secretscan.py +0 -0
  97. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/serve.py +0 -0
  98. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/stackprobe.py +0 -0
  99. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/staleness.py +0 -0
  100. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/store.py +0 -0
  101. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/typosquat.py +0 -0
  102. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/updatediff.py +0 -0
  103. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/util.py +0 -0
  104. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/workflows.py +0 -0
  105. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/data/registries.json +0 -0
  106. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/errors.py +0 -0
  107. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/spin.py +0 -0
  108. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  109. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  110. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/requires.txt +0 -0
  111. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/top_level.txt +0 -0
  112. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/.claude/settings.local.json +0 -0
  113. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/DEBUGGING.md +0 -0
  114. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/demo.gif +0 -0
  115. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/demo.tape +0 -0
  116. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/rag-architecture.md +0 -0
  117. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D01.md +0 -0
  118. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D02.md +0 -0
  119. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D03.md +0 -0
  120. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D04.md +0 -0
  121. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D05.md +0 -0
  122. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D06.md +0 -0
  123. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D07.md +0 -0
  124. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D08.md +0 -0
  125. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D09.md +0 -0
  126. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D10.md +0 -0
  127. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D11.md +0 -0
  128. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D12.md +0 -0
  129. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D13.md +0 -0
  130. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D14.md +0 -0
  131. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D15.md +0 -0
  132. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D16.md +0 -0
  133. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D17.md +0 -0
  134. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D18.md +0 -0
  135. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D19.md +0 -0
  136. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D20.md +0 -0
  137. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D21.md +0 -0
  138. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D22.md +0 -0
  139. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D23.md +0 -0
  140. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D24.md +0 -0
  141. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D25.md +0 -0
  142. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D26.md +0 -0
  143. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  144. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  145. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  146. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  147. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  148. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  149. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  150. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  151. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  152. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  153. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  154. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  155. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  156. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  157. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  158. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  159. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  160. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  161. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  162. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  163. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  164. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  165. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  166. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  167. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  168. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  169. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  170. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  171. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  172. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  173. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  174. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  175. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  176. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  177. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  178. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  179. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  180. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  181. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  182. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  183. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  184. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  185. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  186. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  187. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  188. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  189. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  190. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  191. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  192. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  193. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  194. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  195. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  196. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  197. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  198. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  199. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  200. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  201. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  202. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  203. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  204. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  205. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  206. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  207. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  208. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  209. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  210. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  211. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  212. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  213. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  214. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  215. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  216. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  217. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  218. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  219. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  220. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  221. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  222. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  223. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  224. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  225. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  226. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  227. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  228. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  229. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  230. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  231. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  232. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  233. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  234. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  235. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  236. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  237. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  238. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  239. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  240. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  241. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  242. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  243. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  244. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  245. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  246. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  247. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  248. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  249. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  250. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  251. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  252. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  253. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  254. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/workspace-scope-install.md +0 -0
  255. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/eslint.config.mjs +0 -0
  256. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/examples/README.md +0 -0
  257. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/examples/adapt-demo.sh +0 -0
  258. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/examples/boost-run-prototype.sh +0 -0
  259. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/index.html +0 -0
  260. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/noxfile.py +0 -0
  261. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/pyproject.toml +0 -0
  262. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/requirements/lint-tools.txt +0 -0
  263. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/bench_cli.sh +0 -0
  264. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/build_registries.py +0 -0
  265. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/check_anchors.py +0 -0
  266. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/ensure_eval_corpus.sh +0 -0
  267. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/eval_explain.py +0 -0
  268. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/eval_recommend.py +0 -0
  269. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/eval_retrieval.py +0 -0
  270. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/eval_stats_summary.py +0 -0
  271. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/import_budget.py +0 -0
  272. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/mutation_gate.py +0 -0
  273. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/perf_gate.py +0 -0
  274. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/setup.cfg +0 -0
  275. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/style/README.md +0 -0
  276. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/style/boost.js +0 -0
  277. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/style/demo.html +0 -0
  278. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/adapt.feature +0 -0
  279. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/browse.feature +0 -0
  280. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/count.feature +0 -0
  281. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/discover.feature +0 -0
  282. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/doctor.feature +0 -0
  283. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/environment.py +0 -0
  284. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/explain.feature +0 -0
  285. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/index.feature +0 -0
  286. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/install.feature +0 -0
  287. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/list.feature +0 -0
  288. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/mcp.feature +0 -0
  289. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/search.feature +0 -0
  290. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/steps/cli_steps.py +0 -0
  291. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/steps/discovery_steps.py +0 -0
  292. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/steps/mcp_steps.py +0 -0
  293. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/steps/quality_steps.py +0 -0
  294. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/conftest.py +0 -0
  295. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/baseline.json +0 -0
  296. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/explain.jsonl +0 -0
  297. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/golden.jsonl +0 -0
  298. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/recommend.jsonl +0 -0
  299. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/taps.txt +0 -0
  300. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_capabilities_policy.py +0 -0
  301. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_adapt.py +0 -0
  302. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_bmad.py +0 -0
  303. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_configuration.py +0 -0
  304. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_discovery.py +0 -0
  305. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_hooks.py +0 -0
  306. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_info.py +0 -0
  307. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_quality.py +0 -0
  308. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_taps.py +0 -0
  309. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_team.py +0 -0
  310. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_integrity_enforce.py +0 -0
  311. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_property_parsers.py +0 -0
  312. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_run.py +0 -0
  313. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_tap_signing.py +0 -0
  314. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_workspace_scope.py +0 -0
  315. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/make_fixture.py +0 -0
  316. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/perf/test_benchmarks.py +0 -0
  317. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_adapters.py +0 -0
  318. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_adapters_multi.py +0 -0
  319. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_adapters_runner.py +0 -0
  320. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_agents.py +0 -0
  321. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_ai.py +0 -0
  322. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_capabilities.py +0 -0
  323. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_catalog.py +0 -0
  324. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_check_anchors.py +0 -0
  325. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_claude_settings.py +0 -0
  326. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_cliparse.py +0 -0
  327. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_command_reference_fresh.py +0 -0
  328. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_config.py +0 -0
  329. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_dense.py +0 -0
  330. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_dense_fallback.py +0 -0
  331. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_docs_pages_linked.py +0 -0
  332. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_ed25519.py +0 -0
  333. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_embed.py +0 -0
  334. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_errors_and_cli_table.py +0 -0
  335. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_eval_stats_summary.py +0 -0
  336. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_faithfulness.py +0 -0
  337. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_frontmatter.py +0 -0
  338. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_gitleaks_config.py +0 -0
  339. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_gitutil.py +0 -0
  340. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_imperative.py +0 -0
  341. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_import_budget.py +0 -0
  342. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_injectscan.py +0 -0
  343. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_integrity.py +0 -0
  344. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_journal.py +0 -0
  345. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_lockfile.py +0 -0
  346. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_logs.py +0 -0
  347. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_mcp.py +0 -0
  348. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_minisign.py +0 -0
  349. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_mutation_hardening.py +0 -0
  350. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_nethttp.py +0 -0
  351. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_output.py +0 -0
  352. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_paths.py +0 -0
  353. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_perf_gate.py +0 -0
  354. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_pkg_confusions.py +0 -0
  355. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_pkg_injection.py +0 -0
  356. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_pkg_secrets.py +0 -0
  357. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_policy.py +0 -0
  358. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_projectlock.py +0 -0
  359. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_provenance.py +0 -0
  360. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_rag.py +0 -0
  361. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_registries_fresh.py +0 -0
  362. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_registry.py +0 -0
  363. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_roadmap_fresh.py +0 -0
  364. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_rules.py +0 -0
  365. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_scopes.py +0 -0
  366. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_secretscan.py +0 -0
  367. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_serve.py +0 -0
  368. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_spin.py +0 -0
  369. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_stackprobe.py +0 -0
  370. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_staleness.py +0 -0
  371. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_store.py +0 -0
  372. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_token_parity.py +0 -0
  373. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_typosquat.py +0 -0
  374. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_updatediff.py +0 -0
  375. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_util.py +0 -0
  376. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_version.py +0 -0
  377. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_workflows.py +0 -0
  378. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/visual/package.json +0 -0
  379. {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/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.202
3
+ Version: 1.0.204
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.202'
22
- __version_tuple__ = version_tuple = (1, 0, 202)
21
+ __version__ = version = '1.0.204'
22
+ __version_tuple__ = version_tuple = (1, 0, 204)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -17,8 +17,8 @@ from typing import Dict, List, Optional
17
17
  from .. import cliparse
18
18
  from ..core import (adapters, agents, catalog, config, frontmatter, gitutil,
19
19
  injectscan, integrity, journal, lockfile, paths, projectlock,
20
- registry, scopes, secretscan, staleness, store, typosquat,
21
- updatediff, util)
20
+ registry, resolve, scopes, secretscan, staleness, store,
21
+ typosquat, updatediff, util)
22
22
  from ..core import output as out
23
23
  from ..errors import BoostError
24
24
 
@@ -163,6 +163,56 @@ def _boostfile_text(skills: Dict[str, dict], via: str = "boost bundle dump") ->
163
163
  return "\n".join(lines) + "\n"
164
164
 
165
165
 
166
+ def _rel_list(meta: dict, key: str) -> List[str]:
167
+ """A skill's `requires:`/`conflicts:` frontmatter as a clean name list."""
168
+ val = (meta or {}).get(key)
169
+ if val in (None, "", False):
170
+ return []
171
+ if isinstance(val, list):
172
+ return [str(x).strip() for x in val if str(x).strip()]
173
+ return [s.strip() for s in str(val).split(",") if s.strip()]
174
+
175
+
176
+ def _skill_relations(name: str, key: str) -> List[str]:
177
+ """`requires:`/`conflicts:` for a skill by name, from its catalog entry."""
178
+ matches = catalog.find(name)
179
+ if not matches:
180
+ return []
181
+ return _rel_list(matches[0].get("meta") or {}, key)
182
+
183
+
184
+ def _expand_dependencies(entries: List[dict]) -> "tuple[List[dict], resolve.Resolution]":
185
+ """Grow the requested entries into their full `requires:` closure.
186
+
187
+ Returns ``(ordered_entries, resolution)`` — the entries to install in
188
+ dependency-first order (roots plus any pulled-in dependencies that are not
189
+ already installed), and the :class:`resolve.Resolution` carrying what was
190
+ added, any advisory conflicts, and unresolved (dangling) requirements.
191
+ """
192
+ installed = frozenset(lockfile.installed())
193
+ res = resolve.resolve(
194
+ [e["name"] for e in entries],
195
+ lambda n: _skill_relations(n, "requires"),
196
+ lambda n: _skill_relations(n, "conflicts"),
197
+ installed=installed,
198
+ known=lambda n: bool(catalog.find(n)),
199
+ )
200
+ by_name = {e["name"]: e for e in entries}
201
+ ordered: List[dict] = []
202
+ for name in res.order:
203
+ if name in by_name:
204
+ ordered.append(by_name[name])
205
+ continue
206
+ try:
207
+ ordered.append(catalog.resolve_one(name))
208
+ except BoostError:
209
+ # A dep that resolves nowhere unambiguously is reported via
210
+ # res.unresolved; skip it here rather than abort the whole install.
211
+ if name not in res.unresolved:
212
+ res.unresolved.append(name)
213
+ return ordered, res
214
+
215
+
166
216
  # ── install ──────────────────────────────────────────────────────────────
167
217
 
168
218
  def cmd_install(argv: List[str]) -> int:
@@ -186,6 +236,8 @@ def cmd_install(argv: List[str]) -> int:
186
236
  help="into your user config (= --scope user, default)")
187
237
  ap.add_argument("--dry-run", action="store_true",
188
238
  help="show what would happen without changing anything")
239
+ ap.add_argument("--no-deps", action="store_true",
240
+ help="install only the named skills, not their `requires:`")
189
241
  args = ap.parse_args(argv)
190
242
  args.scope = args.scope or scopes.SCOPE_USER
191
243
  only = _check_agents(args.agent)
@@ -202,6 +254,25 @@ def cmd_install(argv: List[str]) -> int:
202
254
 
203
255
  _warn_confusions(entries)
204
256
 
257
+ # Grow the request into its `requires:` closure (deps installed first),
258
+ # unless the caller opted out. Only skills carry dependency frontmatter;
259
+ # rules/workflows pass through unchanged.
260
+ if not args.no_deps and entries:
261
+ entries, dep_res = _expand_dependencies(entries)
262
+ if dep_res.added:
263
+ out.info("pulling in %s required by your selection: %s"
264
+ % (_plural(len(dep_res.added), "dependency"),
265
+ ", ".join(dep_res.added)))
266
+ for name in dep_res.unresolved:
267
+ out.warn("required skill %r is in no tap — skipped "
268
+ "(install it manually or `boost tap` its source)" % name)
269
+ for skill, clash in dep_res.conflicts:
270
+ out.warn("%s declares a conflict with %s (also present)" % (skill, clash))
271
+ # Pulling in dependencies can turn a single-name request into a multi-item
272
+ # install (per-item headings); it must never *lower* multi (e.g. when an
273
+ # unknown co-requested name was dropped), so OR rather than reassign.
274
+ multi = multi or len(entries) > 1
275
+
205
276
  if args.dry_run:
206
277
  targets = [a for a in agents.enabled_agents() if not only or a in only]
207
278
  pbase = scopes.resolve_base(args.scope)
@@ -0,0 +1,136 @@
1
+ """Skill dependency resolution — turn a set of requested skills into the full,
2
+ correctly-ordered install list by following each skill's ``requires:`` closure.
3
+
4
+ boost skills declare relationships in frontmatter (``requires:`` /
5
+ ``conflicts:``); until now those were only *displayed* (``boost info`` /
6
+ ``boost deps``). This module is the resolver that makes ``boost install`` act on
7
+ them — the "Homebrew installs dependencies" behavior — as a pure, dependency-
8
+ injected function so it is unit- and mutation-testable with no catalog or
9
+ filesystem access.
10
+
11
+ The caller supplies two lookups so the core stays I/O-free:
12
+
13
+ * ``requires_of(name) -> list[str]`` — the skills ``name`` declares it needs.
14
+ * ``conflicts_of(name) -> list[str]`` — the skills ``name`` declares it clashes
15
+ with (optional; defaults to none).
16
+
17
+ and, optionally, ``known(name) -> bool`` to tell a resolvable dependency from a
18
+ dangling one (a ``requires:`` naming a skill in no tap). Everything else is
19
+ plain graph work.
20
+ """
21
+ from __future__ import annotations
22
+
23
+ from dataclasses import dataclass, field
24
+ from typing import Callable, FrozenSet, List, Optional, Sequence, Tuple
25
+
26
+ __all__ = ["Resolution", "resolve"]
27
+
28
+
29
+ @dataclass
30
+ class Resolution:
31
+ """The outcome of resolving a set of requested skills.
32
+
33
+ * ``order`` — the install order, dependencies before dependents, with
34
+ already-installed skills that were only pulled in as dependencies dropped.
35
+ A *requested* skill stays in ``order`` even when already installed (so an
36
+ explicit ``boost install x`` still reinstalls/upgrades it, matching the
37
+ pre-resolver behavior).
38
+ * ``added`` — the transitive dependencies that were pulled in (``order``
39
+ minus the requested roots), in install order — what to tell the user got
40
+ added on their behalf.
41
+ * ``conflicts`` — ``(skill, clashes_with)`` pairs where a skill in the plan
42
+ declares a ``conflicts:`` against something already installed or also
43
+ being installed. Advisory (a warning), never a hard failure.
44
+ * ``unresolved`` — required skill names with no known source (a dangling
45
+ ``requires:``); surfaced so the caller can warn rather than crash.
46
+ """
47
+
48
+ order: List[str] = field(default_factory=list)
49
+ added: List[str] = field(default_factory=list)
50
+ conflicts: List[Tuple[str, str]] = field(default_factory=list)
51
+ unresolved: List[str] = field(default_factory=list)
52
+
53
+
54
+ def _norm(names: Sequence[str]) -> List[str]:
55
+ """De-dupe a name sequence preserving first-seen order."""
56
+ seen: List[str] = []
57
+ for n in names:
58
+ if n and n not in seen:
59
+ seen.append(n)
60
+ return seen
61
+
62
+
63
+ def resolve(
64
+ roots: Sequence[str],
65
+ requires_of: Callable[[str], Sequence[str]],
66
+ conflicts_of: Optional[Callable[[str], Sequence[str]]] = None,
67
+ *,
68
+ installed: FrozenSet[str] = frozenset(),
69
+ known: Optional[Callable[[str], bool]] = None,
70
+ ) -> Resolution:
71
+ """Resolve ``roots`` plus their ``requires:`` closure into an install plan.
72
+
73
+ Post-order depth-first traversal yields dependencies before the skills that
74
+ need them. The traversal is cycle-safe (a skill on the current DFS stack is
75
+ not re-entered) and each skill is visited once. A dependency that is already
76
+ ``installed`` is not re-added; a *requested* root is always kept so an
77
+ explicit reinstall/upgrade still happens. Unknown dependencies (per
78
+ ``known``) are recorded in ``unresolved`` and not traversed further.
79
+ """
80
+ conflicts_of = conflicts_of or (lambda _n: [])
81
+ known = known or (lambda _n: True)
82
+ roots = _norm(roots)
83
+ root_set = set(roots)
84
+
85
+ order: List[str] = []
86
+ done: set = set() # fully-processed (post-order emitted)
87
+ on_stack: set = set() # currently being visited — cycle guard
88
+ unresolved: List[str] = []
89
+
90
+ def visit(name: str, is_root: bool) -> None:
91
+ if name in done or name in on_stack:
92
+ return # already emitted, or a cycle — stop
93
+ # An already-installed skill pulled in only as a dependency is assumed
94
+ # satisfied — don't re-traverse or re-emit its subtree. (A requested root
95
+ # is still walked so an explicit reinstall re-checks its deps; gap-filling
96
+ # of a broken installed skill is `boost heal`'s job, not install's.)
97
+ if name in installed and not is_root:
98
+ done.add(name)
99
+ return
100
+ on_stack.add(name)
101
+ for dep in _norm(list(requires_of(name) or [])):
102
+ if dep == name:
103
+ continue # a self-require is a no-op, never a cycle error
104
+ if not known(dep):
105
+ if dep not in unresolved:
106
+ unresolved.append(dep)
107
+ continue
108
+ visit(dep, is_root=False)
109
+ on_stack.discard(name)
110
+ done.add(name)
111
+ # Emit unless it is an already-installed skill pulled in only as a dep;
112
+ # a requested root is always emitted (reinstall/upgrade semantics).
113
+ if is_root or name not in installed:
114
+ order.append(name)
115
+
116
+ for r in roots:
117
+ visit(r, is_root=True)
118
+
119
+ added = [n for n in order if n not in root_set]
120
+
121
+ # Conflict scan: anything in the plan (being installed) OR already installed
122
+ # is a live presence; flag a declared conflict against any live presence.
123
+ live = set(order) | set(installed)
124
+ conflicts: List[Tuple[str, str]] = []
125
+ seen_pairs: set = set()
126
+ for skill in order:
127
+ for clash in _norm(list(conflicts_of(skill) or [])):
128
+ if clash == skill or clash not in live:
129
+ continue
130
+ key = (skill, clash)
131
+ if key not in seen_pairs:
132
+ seen_pairs.add(key)
133
+ conflicts.append(key)
134
+
135
+ return Resolution(order=order, added=added,
136
+ conflicts=conflicts, unresolved=unresolved)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.202
3
+ Version: 1.0.204
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -74,6 +74,7 @@ boost_cli/core/projectlock.py
74
74
  boost_cli/core/provenance.py
75
75
  boost_cli/core/rag.py
76
76
  boost_cli/core/registry.py
77
+ boost_cli/core/resolve.py
77
78
  boost_cli/core/rules.py
78
79
  boost_cli/core/scopes.py
79
80
  boost_cli/core/secretscan.py
@@ -149,6 +150,7 @@ docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md
149
150
  docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md
150
151
  docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md
151
152
  docs/roadmap/items/dependency-cve-gate-pip-audit.md
153
+ docs/roadmap/items/docsite-chrome-and-content-audit.md
152
154
  docs/roadmap/items/docstring-coverage-interrogate.md
153
155
  docs/roadmap/items/doctor-checks-rules-and-workflows.md
154
156
  docs/roadmap/items/end-of-options-guard-on-git-commands.md
@@ -165,7 +167,9 @@ docs/roadmap/items/github-pages-deploy-is-broken-every-push.md
165
167
  docs/roadmap/items/golden-set-statistical-power.md
166
168
  docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md
167
169
  docs/roadmap/items/html-validation-html-validate.md
170
+ docs/roadmap/items/install-resolves-skill-dependencies.md
168
171
  docs/roadmap/items/install-scope-user-or-project.md
172
+ docs/roadmap/items/installed-skill-trust-audit.md
169
173
  docs/roadmap/items/integrity-verification-boost-verify.md
170
174
  docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md
171
175
  docs/roadmap/items/layering-guard-import-linter.md
@@ -177,6 +181,7 @@ docs/roadmap/items/log-timestamps-mislabeled-utc.md
177
181
  docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md
178
182
  docs/roadmap/items/make-the-roadmaps-discoverable.md
179
183
  docs/roadmap/items/markdown-consistency-markdownlint-cli2.md
184
+ docs/roadmap/items/mcp-aware-skills.md
180
185
  docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md
181
186
  docs/roadmap/items/mcp-launch-objc-fork-safety.md
182
187
  docs/roadmap/items/mcp-register-names-server-before-env.md
@@ -321,6 +326,7 @@ tests/unit/test_config.py
321
326
  tests/unit/test_dense.py
322
327
  tests/unit/test_dense_fallback.py
323
328
  tests/unit/test_docs_pages_linked.py
329
+ tests/unit/test_docsite_chrome.py
324
330
  tests/unit/test_ed25519.py
325
331
  tests/unit/test_embed.py
326
332
  tests/unit/test_errors_and_cli_table.py
@@ -352,6 +358,7 @@ tests/unit/test_provenance.py
352
358
  tests/unit/test_rag.py
353
359
  tests/unit/test_registries_fresh.py
354
360
  tests/unit/test_registry.py
361
+ tests/unit/test_resolve.py
355
362
  tests/unit/test_roadmap_fresh.py
356
363
  tests/unit/test_rules.py
357
364
  tests/unit/test_scopes.py
@@ -65,7 +65,23 @@
65
65
  </head>
66
66
  <body>
67
67
 
68
- <main>
68
+ <header>
69
+ <div class="wrap site-nav">
70
+ <a class="logo" href="index.html"><b>boost</b><span>Adapters</span></a>
71
+ <ul>
72
+ <li><a href="index.html">Guide</a></li>
73
+ <li><a href="commands.html">Commands</a></li>
74
+ <li><a href="roadmap.html">Roadmap</a></li>
75
+ <li><a href="design-roadmap.html">Design</a></li>
76
+ <li><a href="mcp-hub.html">MCP Hub</a></li>
77
+ <li><a href="eval.html">Evaluation</a></li>
78
+ <li><a href="#top" aria-current="page">Adapters</a></li>
79
+ <li><a href="https://github.com/jonnyeclectic/boost">GitHub</a></li>
80
+ </ul>
81
+ </div>
82
+ </header>
83
+
84
+ <main id="top">
69
85
  <!-- ===== hero ===== -->
70
86
  <div class="wrap hero">
71
87
  <p class="crumbs"><a href="index.html">boost</a> / docs / adapters · <span class="mono">boost adapt</span></p>
@@ -327,16 +343,31 @@ python3 -m venv /tmp/crew &amp;&amp; /tmp/crew/bin/pip install <span class="s">"
327
343
  </div>
328
344
  </section>
329
345
 
330
- <footer>
331
- <div class="wrap">
332
- <p>boost · <b>Framework adapters</b> — <code class="mono">boost adapt &lt;skill&gt; --to &lt;framework&gt;</code> ·
333
- <a href="index.html">docs home</a> ·
334
- <a href="mcp-hub.html">RAG &amp; MCP hub</a><br>
335
- Styled with the shared <a href="../style/boost.css">Aurora</a> design system.</p>
336
- </div>
337
- </footer>
338
346
  </main>
339
347
 
348
+ <footer>
349
+ <div class="wrap">
350
+ <p class="foot-brand"><b>boost</b> — a package manager for AI coding skills</p>
351
+ <p class="foot-note">Install with <code>pip install boost-skill-cli</code> · requires Python 3.9+ and <code>git</code></p>
352
+ <nav class="foot-links" aria-label="Documentation">
353
+ <a href="index.html">Guide</a>
354
+ <a href="commands.html">Commands</a>
355
+ <a href="roadmap.html">Roadmap</a>
356
+ <a href="design-roadmap.html">Design</a>
357
+ <a href="mcp-hub.html">MCP Hub</a>
358
+ <a href="eval.html">Evaluation</a>
359
+ <a href="#top" aria-current="page">Adapters</a>
360
+ </nav>
361
+ <p class="foot-legal">
362
+ <a href="https://github.com/jonnyeclectic/boost">GitHub</a> ·
363
+ <a href="https://pypi.org/project/boost-skill-cli/">PyPI</a> ·
364
+ <a href="https://jonnyeclectic.github.io/portfolio/">Portfolio</a> ·
365
+ Released under the GPL-3.0 license
366
+ </p>
367
+ </div>
368
+ </footer>
369
+
370
+
340
371
  <script src="../style/boost.js" defer></script>
341
372
  </body>
342
373
  </html>
@@ -70,6 +70,25 @@
70
70
  border-right: none; border-bottom: 1px solid var(--line); }
71
71
  .arg { grid-template-columns: 1fr; gap: 2px; }
72
72
  }
73
+
74
+ /* Site footer — same content as every other docs page. This page is
75
+ self-contained (its sidebar layout owns .wrap), so the rules are local. */
76
+ footer { border-top: 1px solid var(--line); padding: 30px 20px 40px; text-align: center; }
77
+ footer .foot-brand { font-size: 14.5px; color: var(--text-2); }
78
+ footer .foot-brand b { font-family: var(--mono); font-weight: 700; color: var(--amber); }
79
+ footer .foot-note { margin-top: 9px; font-size: 13px; color: var(--text-2); opacity: .8; }
80
+ footer .foot-note code { font-size: .92em; color: var(--amber);
81
+ background: rgba(34,211,238,.08); border: 1px solid var(--line);
82
+ border-radius: 6px; padding: 2px 8px; }
83
+ footer .foot-links { display: flex; flex-wrap: wrap; justify-content: center;
84
+ gap: 4px 6px; margin-top: 16px; }
85
+ footer .foot-links a { display: flex; align-items: center; min-height: 40px;
86
+ padding: 5px 11px; border-radius: 8px; font-size: 13px;
87
+ color: var(--text-2); text-decoration: none; }
88
+ footer .foot-links a:hover,
89
+ footer .foot-links a[aria-current="page"] { color: var(--text); background: var(--panel); }
90
+ footer .foot-legal { margin-top: 13px; font-size: 12.5px; color: var(--text-2); opacity: .75; }
91
+ footer .foot-legal a { color: var(--text-2); text-decoration: underline; }
73
92
  </style>
74
93
  </head>
75
94
  <body>
@@ -80,7 +99,7 @@
80
99
  <input id="q" type="search" placeholder="Filter 78 commands…" autocomplete="off" aria-label="Filter commands">
81
100
  <div class="group" data-group="pkg">
82
101
  <div class="group-h">Install &amp; lifecycle</div>
83
- <a class="cmd-link" href="#cmd-install" data-search="install install a skill from a tap registry --force --agent a --scope {user,project} --local --global --dry-run name">install</a>
102
+ <a class="cmd-link" href="#cmd-install" data-search="install install a skill from a tap registry --force --agent a --scope {user,project} --local --global --dry-run --no-deps name">install</a>
84
103
  <a class="cmd-link" href="#cmd-uninstall" data-search="uninstall remove an installed skill, rule, workflow, or config --local name">uninstall</a>
85
104
  <a class="cmd-link" href="#cmd-sync" data-search="sync reconcile installed skills &amp; symlinks against the lock file --diff --prune --json">sync</a>
86
105
  <a class="cmd-link" href="#cmd-update" data-search="update sync taps or update installed skills --taps-only tap">update</a>
@@ -182,15 +201,15 @@
182
201
  </div>
183
202
  <div id="nohits">No commands match.</div>
184
203
  </aside>
185
- <main>
204
+ <main id="top">
186
205
  <h1>boost <b>command reference</b></h1>
187
206
  <p class="lead">All <b>78</b> commands, generated from the CLI itself —
188
207
  run <code>boost &lt;command&gt; --help</code> for the same in your terminal.</p>
189
208
  <h2 class="group-h" id="grp-pkg">Install &amp; lifecycle</h2>
190
- <section class="cmd" id="cmd-install" data-search="install install a skill from a tap registry --force --agent a --scope {user,project} --local --global --dry-run name">
209
+ <section class="cmd" id="cmd-install" data-search="install install a skill from a tap registry --force --agent a --scope {user,project} --local --global --dry-run --no-deps name">
191
210
  <h3><span class="cname">install</span><span class="gtag">pkg</span></h3>
192
211
  <p class="summary">Install a skill from a tap registry</p>
193
- <pre class="syn">boost install [--force] [--agent A] [--scope {user,project}] [--local] [--global] [--dry-run] NAME [NAME ...]</pre>
212
+ <pre class="syn">boost install [--force] [--agent A] [--scope {user,project}] [--local] [--global] [--dry-run] [--no-deps] NAME [NAME ...]</pre>
194
213
  <div class="args-h">Arguments</div>
195
214
  <div class="args">
196
215
  <div class="arg"><code>NAME</code><span>skill name, optionally qualified as tap:skill</span></div>
@@ -203,6 +222,7 @@
203
222
  <div class="arg"><code>--local</code><span>into this repo, committable (= --scope project)</span></div>
204
223
  <div class="arg"><code>--global</code><span>into your user config (= --scope user, default)</span></div>
205
224
  <div class="arg"><code>--dry-run</code><span>show what would happen without changing anything</span></div>
225
+ <div class="arg"><code>--no-deps</code><span>install only the named skills, not their `requires:`</span></div>
206
226
  </div>
207
227
  </section>
208
228
  <section class="cmd" id="cmd-uninstall" data-search="uninstall remove an installed skill, rule, workflow, or config --local name">
@@ -1148,6 +1168,26 @@
1148
1168
  </section>
1149
1169
  </main>
1150
1170
  </div>
1171
+
1172
+ <footer>
1173
+ <p class="foot-brand"><b>boost</b> &mdash; a package manager for AI coding skills</p>
1174
+ <p class="foot-note">Install with <code>pip install boost-skill-cli</code> &middot; requires Python 3.9+ and <code>git</code></p>
1175
+ <nav class="foot-links" aria-label="Documentation">
1176
+ <a href="index.html">Guide</a>
1177
+ <a href="#top" aria-current="page">Commands</a>
1178
+ <a href="roadmap.html">Roadmap</a>
1179
+ <a href="design-roadmap.html">Design</a>
1180
+ <a href="mcp-hub.html">MCP Hub</a>
1181
+ <a href="eval.html">Evaluation</a>
1182
+ <a href="adapters.html">Adapters</a>
1183
+ </nav>
1184
+ <p class="foot-legal">
1185
+ <a href="https://github.com/jonnyeclectic/boost">GitHub</a> &middot;
1186
+ <a href="https://pypi.org/project/boost-skill-cli/">PyPI</a> &middot;
1187
+ <a href="https://jonnyeclectic.github.io/portfolio/">Portfolio</a> &middot;
1188
+ Released under the GPL-3.0 license
1189
+ </p>
1190
+ </footer>
1151
1191
  <script>
1152
1192
  (function () {
1153
1193
  var q = document.getElementById('q');