boost-skill-cli 1.0.386__tar.gz → 1.0.387__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.
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_skill_cli.egg-info/SOURCES.txt +2 -0
- boost_skill_cli-1.0.387/docs/roadmap/items/langchain-integration-explainer-page.md +66 -0
- boost_skill_cli-1.0.387/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +89 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap.html +153 -2
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.gitattributes +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.gitignore +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.lycheeignore +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/.vale.ini +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/LICENSE +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/Makefile +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/README.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/codecov.yml +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/carousel.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/chat.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/commands.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/demo.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/index.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/README.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/__init__.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/baseline.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/metrics.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/examples/README.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/index.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/noxfile.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/eval_corpus.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/setup.cfg +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/sonar-project.properties +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/style/README.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/style/boost.css +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/style/boost.js +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/style/demo.html +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_eval_corpus.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.0.386 → boost_skill_cli-1.0.387}/tests/visual/visual_check.mjs +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 0,
|
|
21
|
+
__version__ = version = '1.0.387'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 387)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -248,6 +248,8 @@ docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md
|
|
|
248
248
|
docs/roadmap/items/journal-rotation-race-and-handle-leak.md
|
|
249
249
|
docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md
|
|
250
250
|
docs/roadmap/items/keyless-semantic-search-for-everyone.md
|
|
251
|
+
docs/roadmap/items/langchain-integration-explainer-page.md
|
|
252
|
+
docs/roadmap/items/langchain-langgraph-langsmith-integration.md
|
|
251
253
|
docs/roadmap/items/layering-guard-import-linter.md
|
|
252
254
|
docs/roadmap/items/license-compliance-scanning.md
|
|
253
255
|
docs/roadmap/items/lighthouse-ci-on-the-pages-site.md
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: langchain-integration-explainer-page
|
|
3
|
+
board: code
|
|
4
|
+
section: docsite
|
|
5
|
+
status: planned
|
|
6
|
+
category: Docs · Interop
|
|
7
|
+
complexity: M
|
|
8
|
+
impact: Med
|
|
9
|
+
wow: 4
|
|
10
|
+
note: the eval.html genre, pointed at the LangChain stack — and it can only document what has shipped
|
|
11
|
+
order: 89
|
|
12
|
+
title: an explainer page for the LangChain / LangGraph / LangSmith integration
|
|
13
|
+
---
|
|
14
|
+
A companion to <b>production-ready LangChain / LangGraph / LangSmith integration</b>: one
|
|
15
|
+
<code>docs/langchain.html</code> that shows what the integration <i>is</i> — architecture and
|
|
16
|
+
sequence diagrams, annotated code you can paste, and the reasoning behind each seam — rather than
|
|
17
|
+
an API list. The audience is a Python engineer deciding whether boost's catalogue is worth wiring
|
|
18
|
+
into their agent, and that decision is made from a diagram and a twenty-line snippet, not from
|
|
19
|
+
a reference table.
|
|
20
|
+
|
|
21
|
+
<b>The genre already exists here.</b> <code>docs/eval.html</code> does exactly this job for the
|
|
22
|
+
evaluation system — architecture plus sequence diagrams plus a simple-vs-technical cheat sheet — and
|
|
23
|
+
it is the template to follow rather than reinvent. So are its mechanics: a page-specific
|
|
24
|
+
<code><style></code> block built <i>only</i> on <code>style/boost.css</code>
|
|
25
|
+
<code>:root</code> tokens, so the Aurora palette stays recolourable from one file, and diagrams as
|
|
26
|
+
<b>inline SVG on those same tokens</b> rather than a diagram library. A hardcoded hex in a diagram
|
|
27
|
+
silently opts that diagram out of every future theme change, and an external script opts the page
|
|
28
|
+
out of loading at all on a strict CSP.
|
|
29
|
+
|
|
30
|
+
<b>What the page has to cover</b>, one section per seam, each with a diagram and a runnable snippet:
|
|
31
|
+
retrieval (<code>BoostRetriever</code> over the BM25 + dense fusion, with the measured recall@k /
|
|
32
|
+
hit@1 / MRR / nDCG@k shown as numbers because they exist); a <code>SKILL.md</code> loaded as prompt
|
|
33
|
+
content with its frontmatter surviving as metadata; a LangGraph graph that pulls a procedure
|
|
34
|
+
<i>mid-run</i> instead of pre-loading every one into the system prompt; and a LangSmith trace of
|
|
35
|
+
that graph, next to a plain statement that the required gate stays offline, deterministic and
|
|
36
|
+
key-free.
|
|
37
|
+
|
|
38
|
+
<b>Three constraints that are specific to this repo</b>, all of them cheap to satisfy if known up
|
|
39
|
+
front and expensive to retrofit:
|
|
40
|
+
|
|
41
|
+
<b>No page ships unlinked.</b> <code>tests/unit/test_docsite_chrome.py</code> holds a
|
|
42
|
+
<code>_PAGES</code> tuple and asserts every page carries the footer and is reachable from all the
|
|
43
|
+
others. Adding the tenth page therefore means touching the nav and footer of the nine that exist —
|
|
44
|
+
it is a small edit, but it is not optional and it is not automatic.
|
|
45
|
+
|
|
46
|
+
<b>The budget already fits — measured, so nobody has to guess.</b>
|
|
47
|
+
<code>scripts/page_budget.py</code> allows a hand-written page 150 kB / 2,000 elements / depth 20.
|
|
48
|
+
Today <code>eval.html</code> is 35.5 kB / 528 elements / depth 10 and <code>mcp-hub.html</code>, the
|
|
49
|
+
largest hand-written page, is 50.0 kB / 607. A diagram-and-snippet page of this shape lands in the
|
|
50
|
+
same range, so it needs <b>no</b> new <code>BUDGETS</code> entry — and if it ever does, the entry
|
|
51
|
+
carries a <code>why</code> string rather than raising the default for every page.
|
|
52
|
+
|
|
53
|
+
<b>Accessibility is enforced with numbers, not vibes.</b> The axe-core sweep and
|
|
54
|
+
<code>scripts/a11y_check.py</code> gate WCAG 2.1 AA, and this genre trips it in a predictable place:
|
|
55
|
+
a diagram that encodes meaning in colour alone, or a link distinguished only by hue. The precedent
|
|
56
|
+
is already commented in <code>eval.html</code> — <code>--sky</code> on <code>--text-3</code> is
|
|
57
|
+
2.47:1 against the 3:1 that WCAG 1.4.1 requires, so its links carry an underline as the non-colour
|
|
58
|
+
cue. Diagram legends need the same treatment: shape or label, never colour by itself.
|
|
59
|
+
|
|
60
|
+
<b>Sequencing, and the one rule that keeps it honest.</b> The page cannot precede the code — a
|
|
61
|
+
demonstration of an unbuilt integration is fiction, and a snippet nobody ran is a bug with syntax
|
|
62
|
+
highlighting. So each section ships with the phase it documents (retrieval with phase 1, the graph
|
|
63
|
+
with phase 2, the trace with phase 3), and every snippet on the page should be extracted and
|
|
64
|
+
executed by a test rather than pasted in and trusted. That last part is a new discipline for this
|
|
65
|
+
docsite, not an existing one; it is worth adopting here first precisely because this page's whole
|
|
66
|
+
value is that its code runs.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: langchain-langgraph-langsmith-integration
|
|
3
|
+
board: code
|
|
4
|
+
section: planned
|
|
5
|
+
status: planned
|
|
6
|
+
category: Feature
|
|
7
|
+
complexity: L
|
|
8
|
+
impact: High
|
|
9
|
+
wow: 4
|
|
10
|
+
note: a second consumer class for the catalogue — blocked on one dependency conflict boost already owns
|
|
11
|
+
order: 88
|
|
12
|
+
title: production-ready LangChain / LangGraph / LangSmith integration
|
|
13
|
+
---
|
|
14
|
+
Every agent boost supports today is a <b>coding</b> agent that reads files off disk — Claude Code,
|
|
15
|
+
Cursor, Windsurf, Gemini CLI. The catalogue itself is not coding-specific: it is 10,000+ retrievable
|
|
16
|
+
procedures with frontmatter, provenance and a lock file. A LangChain application cannot reach any of
|
|
17
|
+
it, so the same procedure has to be re-written as a prompt string by hand. This item is about making
|
|
18
|
+
the catalogue addressable from a Python agent runtime as well as from a dotfile.
|
|
19
|
+
|
|
20
|
+
<b>Three surfaces, and they are not equally justified.</b>
|
|
21
|
+
|
|
22
|
+
<code>langchain</code> — a <code>BoostRetriever</code> implementing <code>BaseRetriever</code> over
|
|
23
|
+
the engine <code>boost search</code> already uses: BM25 (<code>core/rag.py</code>) fused with
|
|
24
|
+
optional dense retrieval (<code>core/dense.py</code>) through <code>rag.rrf_fuse</code>. The
|
|
25
|
+
retrieval quality is already measured — the required gate floors recall@k, hit@1, MRR and nDCG@k
|
|
26
|
+
against <code>tests/eval/golden.jsonl</code> — so this surface ships with numbers rather than
|
|
27
|
+
claims. Plus a document loader that turns a <code>SKILL.md</code> into prompt content with its
|
|
28
|
+
frontmatter preserved as metadata.
|
|
29
|
+
|
|
30
|
+
<code>langgraph</code> — skills as procedures a graph pulls <i>mid-run</i>: a node that retrieves
|
|
31
|
+
the right skill for the current state and injects it, rather than stuffing every procedure into the
|
|
32
|
+
system prompt. boost's <code>workflow</code> item kind is already the closest thing it has to a
|
|
33
|
+
graph node, and <code>core/workflows.py</code> already renders per-runtime formats
|
|
34
|
+
(<code>TOML_COMMAND_AGENTS</code> for Gemini), so a LangGraph renderer is a new target for existing
|
|
35
|
+
machinery, not a new concept.
|
|
36
|
+
|
|
37
|
+
<code>langsmith</code> — hosted tracing plus datasets/evaluators. boost already has a four-tier
|
|
38
|
+
eval story (Tier 1 BM25 floors, 1b <code>ranx</code> significance, 2a/2b LLM rerank and recommend,
|
|
39
|
+
2c <code>ragas</code> faithfulness) and a baseline keyed by query-set digest. LangSmith would host
|
|
40
|
+
the golden set and run online evals against real traffic. It must <b>not</b> replace the required
|
|
41
|
+
gate, which is deliberately pure-stdlib BM25 needing no API key — a required check that depends on
|
|
42
|
+
a SaaS account is a required check that fails when someone else's billing lapses.
|
|
43
|
+
|
|
44
|
+
<b>What "production ready" forces, specifically.</b>
|
|
45
|
+
|
|
46
|
+
<b>It cannot be an extra — the Python floor decides it.</b> boost is
|
|
47
|
+
<code>requires-python = ">=3.9"</code> and CI tests 3.9 / 3.12 / 3.14 across Linux, macOS and
|
|
48
|
+
Windows. Measured 2026-08-02: <code>langchain</code> 1.3.14 declares
|
|
49
|
+
<code>>=3.10.0,<4.0.0</code> and <code>langsmith</code> 0.10.15 declares <code>>=3.10</code>. So
|
|
50
|
+
an extra would either fail to resolve on the 3.9 leg or force boost to drop 3.9 for every user,
|
|
51
|
+
including those who never touch LangChain. A separately versioned distribution that depends on
|
|
52
|
+
<code>boost-skill-cli</code> keeps the floor a property of the integration.
|
|
53
|
+
|
|
54
|
+
<b>There is a dependency conflict boost already owns, and it blocks this.</b> The
|
|
55
|
+
<code>[eval]</code> extra pins <code>langchain-core<0.4</code>,
|
|
56
|
+
<code>langchain-community<0.4</code> and <code>langchain-openai<1</code>, because ragas 0.2.x
|
|
57
|
+
hard-imports a <code>ChatVertexAI</code> path that langchain ≥1.0 removed. One environment cannot
|
|
58
|
+
hold both that pin and langchain 1.x. The good news is measured: <b>ragas 0.4.3 declares
|
|
59
|
+
<code>langchain</code>, <code>langchain-core</code>, <code>langchain-community</code> and
|
|
60
|
+
<code>langchain_openai</code> with no upper bound at all</b>, and still supports Python ≥3.9. So the
|
|
61
|
+
first step is small, independently valuable, and testable on its own — move <code>[eval]</code>
|
|
62
|
+
from <code>ragas>=0.2,<0.3</code> to 0.4 and delete the three pins. Nothing else should be built
|
|
63
|
+
until that lands, or the project holds two incompatible langchain majors.
|
|
64
|
+
|
|
65
|
+
<b>The existing rules still apply.</b> Nothing in the integration may be imported by the CLI or by
|
|
66
|
+
the required gate — the discipline <code>[eval]</code> already follows. It must degrade cleanly
|
|
67
|
+
without an API key, the way <code>embed.py</code> falls back Voyage → OpenAI → local
|
|
68
|
+
<code>bge-small-en-v1.5</code>; a key is a quality upgrade, never the entry fee. And it carries its
|
|
69
|
+
own tests without lowering the 80% coverage or 80% mutation floors.
|
|
70
|
+
|
|
71
|
+
<b>Delivery order.</b> Each phase is independently shippable, and phase 0 is worth doing on its own
|
|
72
|
+
merits whatever happens to the rest.
|
|
73
|
+
|
|
74
|
+
<b>0 · unpin.</b> Move <code>[eval]</code> to <code>ragas>=0.4</code> and delete the three
|
|
75
|
+
langchain pins, freeing the langchain major. Contained, testable, no new surface.
|
|
76
|
+
<b>1 · retrieve.</b> A <code>boost-langchain</code> distribution carrying
|
|
77
|
+
<code>BoostRetriever</code> and the <code>SKILL.md</code> loader — the smallest thing that makes the
|
|
78
|
+
catalogue reachable from a LangChain app, and the one with measured retrieval quality behind it.
|
|
79
|
+
<b>2 · orchestrate.</b> The LangGraph node, plus a graph-shaped render target in
|
|
80
|
+
<code>core/workflows.py</code> beside the existing per-agent formats.
|
|
81
|
+
<b>3 · observe.</b> LangSmith tracing, and the golden set published as a LangSmith dataset so
|
|
82
|
+
online evals run against the same queries the offline gate uses.
|
|
83
|
+
|
|
84
|
+
<b>One scoping decision shapes phase 1's API</b> and should be settled before it starts: a LangChain
|
|
85
|
+
<i>application</i> pulling skills at runtime is the consumer all three phases serve, whereas a
|
|
86
|
+
LangChain <i>developer</i> who just wants these procedures in their editor is already served by
|
|
87
|
+
<code>boost install</code> with no langchain dependency at all. Phase 1 should be designed for the
|
|
88
|
+
former — a retriever, not an installer — and the docs should point the latter at the CLI so the new
|
|
89
|
+
package does not accumulate a second, redundant install path.
|
|
@@ -124,8 +124,8 @@
|
|
|
124
124
|
<!-- ROADMAP:stats -->
|
|
125
125
|
<div class="stat"><b>16</b><span>Shipped</span></div>
|
|
126
126
|
<div class="stat"><b>1</b><span>Next up</span></div>
|
|
127
|
-
<div class="stat"><b>
|
|
128
|
-
<div class="stat"><b>
|
|
127
|
+
<div class="stat"><b>5</b><span>Planned</span></div>
|
|
128
|
+
<div class="stat"><b>206</b><span>Loop finds</span></div>
|
|
129
129
|
<!-- /ROADMAP:stats -->
|
|
130
130
|
</div>
|
|
131
131
|
</section>
|
|
@@ -618,6 +618,93 @@ message, so routing it through the helper would change user-facing errors.</p></
|
|
|
618
618
|
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
619
619
|
</div>
|
|
620
620
|
</article>
|
|
621
|
+
|
|
622
|
+
<article class="cap rcard" id="langchain-langgraph-langsmith-integration">
|
|
623
|
+
<div class="head"><span class="pill planned">Planned</span><span class="cat">Feature</span></div>
|
|
624
|
+
<h3>production-ready LangChain / LangGraph / LangSmith integration</h3>
|
|
625
|
+
<p>Every agent boost supports today is a <b>coding</b> agent that reads files off disk — Claude Code,
|
|
626
|
+
Cursor, Windsurf, Gemini CLI. The catalogue itself is not coding-specific: it is 10,000+ retrievable
|
|
627
|
+
procedures with frontmatter, provenance and a lock file. A LangChain application cannot reach any of
|
|
628
|
+
it, so the same procedure has to be re-written as a prompt string by hand. This item is about making
|
|
629
|
+
the catalogue addressable from a Python agent runtime as well as from a dotfile.
|
|
630
|
+
|
|
631
|
+
<b>Three surfaces, and they are not equally justified.</b>
|
|
632
|
+
|
|
633
|
+
<code>langchain</code> — a <code>BoostRetriever</code> implementing <code>BaseRetriever</code> over
|
|
634
|
+
the engine <code>boost search</code> already uses: BM25 (<code>core/rag.py</code>) fused with
|
|
635
|
+
optional dense retrieval (<code>core/dense.py</code>) through <code>rag.rrf_fuse</code>. The
|
|
636
|
+
retrieval quality is already measured — the required gate floors recall@k, hit@1, MRR and nDCG@k
|
|
637
|
+
against <code>tests/eval/golden.jsonl</code> — so this surface ships with numbers rather than
|
|
638
|
+
claims. Plus a document loader that turns a <code>SKILL.md</code> into prompt content with its
|
|
639
|
+
frontmatter preserved as metadata.
|
|
640
|
+
|
|
641
|
+
<code>langgraph</code> — skills as procedures a graph pulls <i>mid-run</i>: a node that retrieves
|
|
642
|
+
the right skill for the current state and injects it, rather than stuffing every procedure into the
|
|
643
|
+
system prompt. boost's <code>workflow</code> item kind is already the closest thing it has to a
|
|
644
|
+
graph node, and <code>core/workflows.py</code> already renders per-runtime formats
|
|
645
|
+
(<code>TOML_COMMAND_AGENTS</code> for Gemini), so a LangGraph renderer is a new target for existing
|
|
646
|
+
machinery, not a new concept.
|
|
647
|
+
|
|
648
|
+
<code>langsmith</code> — hosted tracing plus datasets/evaluators. boost already has a four-tier
|
|
649
|
+
eval story (Tier 1 BM25 floors, 1b <code>ranx</code> significance, 2a/2b LLM rerank and recommend,
|
|
650
|
+
2c <code>ragas</code> faithfulness) and a baseline keyed by query-set digest. LangSmith would host
|
|
651
|
+
the golden set and run online evals against real traffic. It must <b>not</b> replace the required
|
|
652
|
+
gate, which is deliberately pure-stdlib BM25 needing no API key — a required check that depends on
|
|
653
|
+
a SaaS account is a required check that fails when someone else's billing lapses.
|
|
654
|
+
|
|
655
|
+
<b>What "production ready" forces, specifically.</b>
|
|
656
|
+
|
|
657
|
+
<b>It cannot be an extra — the Python floor decides it.</b> boost is
|
|
658
|
+
<code>requires-python = ">=3.9"</code> and CI tests 3.9 / 3.12 / 3.14 across Linux, macOS and
|
|
659
|
+
Windows. Measured 2026-08-02: <code>langchain</code> 1.3.14 declares
|
|
660
|
+
<code>>=3.10.0,<4.0.0</code> and <code>langsmith</code> 0.10.15 declares <code>>=3.10</code>. So
|
|
661
|
+
an extra would either fail to resolve on the 3.9 leg or force boost to drop 3.9 for every user,
|
|
662
|
+
including those who never touch LangChain. A separately versioned distribution that depends on
|
|
663
|
+
<code>boost-skill-cli</code> keeps the floor a property of the integration.
|
|
664
|
+
|
|
665
|
+
<b>There is a dependency conflict boost already owns, and it blocks this.</b> The
|
|
666
|
+
<code>[eval]</code> extra pins <code>langchain-core<0.4</code>,
|
|
667
|
+
<code>langchain-community<0.4</code> and <code>langchain-openai<1</code>, because ragas 0.2.x
|
|
668
|
+
hard-imports a <code>ChatVertexAI</code> path that langchain ≥1.0 removed. One environment cannot
|
|
669
|
+
hold both that pin and langchain 1.x. The good news is measured: <b>ragas 0.4.3 declares
|
|
670
|
+
<code>langchain</code>, <code>langchain-core</code>, <code>langchain-community</code> and
|
|
671
|
+
<code>langchain_openai</code> with no upper bound at all</b>, and still supports Python ≥3.9. So the
|
|
672
|
+
first step is small, independently valuable, and testable on its own — move <code>[eval]</code>
|
|
673
|
+
from <code>ragas>=0.2,<0.3</code> to 0.4 and delete the three pins. Nothing else should be built
|
|
674
|
+
until that lands, or the project holds two incompatible langchain majors.
|
|
675
|
+
|
|
676
|
+
<b>The existing rules still apply.</b> Nothing in the integration may be imported by the CLI or by
|
|
677
|
+
the required gate — the discipline <code>[eval]</code> already follows. It must degrade cleanly
|
|
678
|
+
without an API key, the way <code>embed.py</code> falls back Voyage → OpenAI → local
|
|
679
|
+
<code>bge-small-en-v1.5</code>; a key is a quality upgrade, never the entry fee. And it carries its
|
|
680
|
+
own tests without lowering the 80% coverage or 80% mutation floors.
|
|
681
|
+
|
|
682
|
+
<b>Delivery order.</b> Each phase is independently shippable, and phase 0 is worth doing on its own
|
|
683
|
+
merits whatever happens to the rest.
|
|
684
|
+
|
|
685
|
+
<b>0 · unpin.</b> Move <code>[eval]</code> to <code>ragas>=0.4</code> and delete the three
|
|
686
|
+
langchain pins, freeing the langchain major. Contained, testable, no new surface.
|
|
687
|
+
<b>1 · retrieve.</b> A <code>boost-langchain</code> distribution carrying
|
|
688
|
+
<code>BoostRetriever</code> and the <code>SKILL.md</code> loader — the smallest thing that makes the
|
|
689
|
+
catalogue reachable from a LangChain app, and the one with measured retrieval quality behind it.
|
|
690
|
+
<b>2 · orchestrate.</b> The LangGraph node, plus a graph-shaped render target in
|
|
691
|
+
<code>core/workflows.py</code> beside the existing per-agent formats.
|
|
692
|
+
<b>3 · observe.</b> LangSmith tracing, and the golden set published as a LangSmith dataset so
|
|
693
|
+
online evals run against the same queries the offline gate uses.
|
|
694
|
+
|
|
695
|
+
<b>One scoping decision shapes phase 1's API</b> and should be settled before it starts: a LangChain
|
|
696
|
+
<i>application</i> pulling skills at runtime is the consumer all three phases serve, whereas a
|
|
697
|
+
LangChain <i>developer</i> who just wants these procedures in their editor is already served by
|
|
698
|
+
<code>boost install</code> with no langchain dependency at all. Phase 1 should be designed for the
|
|
699
|
+
former — a retriever, not an installer — and the docs should point the latter at the CLI so the new
|
|
700
|
+
package does not accumulate a second, redundant install path.</p>
|
|
701
|
+
<div class="meta">
|
|
702
|
+
<span class="m">Complexity <b>L</b></span>
|
|
703
|
+
<span class="m hi">Impact <b>High</b></span>
|
|
704
|
+
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
705
|
+
<span class="m">a second consumer class for the catalogue — blocked on one dependency conflict boost already owns</span>
|
|
706
|
+
</div>
|
|
707
|
+
</article>
|
|
621
708
|
<!-- /ROADMAP:cards -->
|
|
622
709
|
|
|
623
710
|
</div>
|
|
@@ -6833,6 +6920,70 @@ here changes that — only the odds that the next step change is noticed the
|
|
|
6833
6920
|
<span class="m">main passes this budget on run-to-run luck — its own three runs are 0.810, 0.840, 0.850</span>
|
|
6834
6921
|
</div>
|
|
6835
6922
|
</article>
|
|
6923
|
+
|
|
6924
|
+
<article class="cap rcard" id="langchain-integration-explainer-page">
|
|
6925
|
+
<div class="head"><span class="pill planned">Planned</span><span class="cat">Docs · Interop</span></div>
|
|
6926
|
+
<h3>an explainer page for the LangChain / LangGraph / LangSmith integration</h3>
|
|
6927
|
+
<p>A companion to <b>production-ready LangChain / LangGraph / LangSmith integration</b>: one
|
|
6928
|
+
<code>docs/langchain.html</code> that shows what the integration <i>is</i> — architecture and
|
|
6929
|
+
sequence diagrams, annotated code you can paste, and the reasoning behind each seam — rather than
|
|
6930
|
+
an API list. The audience is a Python engineer deciding whether boost's catalogue is worth wiring
|
|
6931
|
+
into their agent, and that decision is made from a diagram and a twenty-line snippet, not from
|
|
6932
|
+
a reference table.
|
|
6933
|
+
|
|
6934
|
+
<b>The genre already exists here.</b> <code>docs/eval.html</code> does exactly this job for the
|
|
6935
|
+
evaluation system — architecture plus sequence diagrams plus a simple-vs-technical cheat sheet — and
|
|
6936
|
+
it is the template to follow rather than reinvent. So are its mechanics: a page-specific
|
|
6937
|
+
<code><style></code> block built <i>only</i> on <code>style/boost.css</code>
|
|
6938
|
+
<code>:root</code> tokens, so the Aurora palette stays recolourable from one file, and diagrams as
|
|
6939
|
+
<b>inline SVG on those same tokens</b> rather than a diagram library. A hardcoded hex in a diagram
|
|
6940
|
+
silently opts that diagram out of every future theme change, and an external script opts the page
|
|
6941
|
+
out of loading at all on a strict CSP.
|
|
6942
|
+
|
|
6943
|
+
<b>What the page has to cover</b>, one section per seam, each with a diagram and a runnable snippet:
|
|
6944
|
+
retrieval (<code>BoostRetriever</code> over the BM25 + dense fusion, with the measured recall@k /
|
|
6945
|
+
hit@1 / MRR / nDCG@k shown as numbers because they exist); a <code>SKILL.md</code> loaded as prompt
|
|
6946
|
+
content with its frontmatter surviving as metadata; a LangGraph graph that pulls a procedure
|
|
6947
|
+
<i>mid-run</i> instead of pre-loading every one into the system prompt; and a LangSmith trace of
|
|
6948
|
+
that graph, next to a plain statement that the required gate stays offline, deterministic and
|
|
6949
|
+
key-free.
|
|
6950
|
+
|
|
6951
|
+
<b>Three constraints that are specific to this repo</b>, all of them cheap to satisfy if known up
|
|
6952
|
+
front and expensive to retrofit:
|
|
6953
|
+
|
|
6954
|
+
<b>No page ships unlinked.</b> <code>tests/unit/test_docsite_chrome.py</code> holds a
|
|
6955
|
+
<code>_PAGES</code> tuple and asserts every page carries the footer and is reachable from all the
|
|
6956
|
+
others. Adding the tenth page therefore means touching the nav and footer of the nine that exist —
|
|
6957
|
+
it is a small edit, but it is not optional and it is not automatic.
|
|
6958
|
+
|
|
6959
|
+
<b>The budget already fits — measured, so nobody has to guess.</b>
|
|
6960
|
+
<code>scripts/page_budget.py</code> allows a hand-written page 150 kB / 2,000 elements / depth 20.
|
|
6961
|
+
Today <code>eval.html</code> is 35.5 kB / 528 elements / depth 10 and <code>mcp-hub.html</code>, the
|
|
6962
|
+
largest hand-written page, is 50.0 kB / 607. A diagram-and-snippet page of this shape lands in the
|
|
6963
|
+
same range, so it needs <b>no</b> new <code>BUDGETS</code> entry — and if it ever does, the entry
|
|
6964
|
+
carries a <code>why</code> string rather than raising the default for every page.
|
|
6965
|
+
|
|
6966
|
+
<b>Accessibility is enforced with numbers, not vibes.</b> The axe-core sweep and
|
|
6967
|
+
<code>scripts/a11y_check.py</code> gate WCAG 2.1 AA, and this genre trips it in a predictable place:
|
|
6968
|
+
a diagram that encodes meaning in colour alone, or a link distinguished only by hue. The precedent
|
|
6969
|
+
is already commented in <code>eval.html</code> — <code>--sky</code> on <code>--text-3</code> is
|
|
6970
|
+
2.47:1 against the 3:1 that WCAG 1.4.1 requires, so its links carry an underline as the non-colour
|
|
6971
|
+
cue. Diagram legends need the same treatment: shape or label, never colour by itself.
|
|
6972
|
+
|
|
6973
|
+
<b>Sequencing, and the one rule that keeps it honest.</b> The page cannot precede the code — a
|
|
6974
|
+
demonstration of an unbuilt integration is fiction, and a snippet nobody ran is a bug with syntax
|
|
6975
|
+
highlighting. So each section ships with the phase it documents (retrieval with phase 1, the graph
|
|
6976
|
+
with phase 2, the trace with phase 3), and every snippet on the page should be extracted and
|
|
6977
|
+
executed by a test rather than pasted in and trusted. That last part is a new discipline for this
|
|
6978
|
+
docsite, not an existing one; it is worth adopting here first precisely because this page's whole
|
|
6979
|
+
value is that its code runs.</p>
|
|
6980
|
+
<div class="meta">
|
|
6981
|
+
<span class="m">Complexity <b>M</b></span>
|
|
6982
|
+
<span class="m">Impact <b>Med</b></span>
|
|
6983
|
+
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
6984
|
+
<span class="m">the eval.html genre, pointed at the LangChain stack — and it can only document what has shipped</span>
|
|
6985
|
+
</div>
|
|
6986
|
+
</article>
|
|
6836
6987
|
<!-- /ROADMAP:cards -->
|
|
6837
6988
|
|
|
6838
6989
|
</div>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|