boost-skill-cli 1.0.133__tar.gz → 1.0.135__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.133 → boost_skill_cli-1.0.135}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_skill_cli.egg-info/SOURCES.txt +3 -0
- boost_skill_cli-1.0.135/docs/roadmap/items/framework-adapter-langgraph.md +16 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap.html +12 -1
- boost_skill_cli-1.0.135/examples/README.md +34 -0
- boost_skill_cli-1.0.135/examples/adapt-demo.sh +110 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/.gitattributes +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/.gitignore +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/LICENSE +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/Makefile +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/README.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/index.html +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/index.html +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/setup.cfg +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/style/README.md +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/style/boost.css +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/style/boost.js +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/style/demo.html +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/tests/unit/test_workflows.py +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.135'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 135)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -132,6 +132,7 @@ docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md
|
|
|
132
132
|
docs/roadmap/items/finish-mutation-hardening-across-core.md
|
|
133
133
|
docs/roadmap/items/fix-self-update-version-detection-dead-branch.md
|
|
134
134
|
docs/roadmap/items/fork-safe-network-proxy-handler.md
|
|
135
|
+
docs/roadmap/items/framework-adapter-langgraph.md
|
|
135
136
|
docs/roadmap/items/framework-adapters-boost-adapt.md
|
|
136
137
|
docs/roadmap/items/frontmatter-scalar-over-coercion.md
|
|
137
138
|
docs/roadmap/items/github-pages-deploy-is-broken-every-push.md
|
|
@@ -205,6 +206,8 @@ docs/roadmap/items/workflow-install-native-materialization.md
|
|
|
205
206
|
docs/roadmap/items/workflow-linting-actionlint.md
|
|
206
207
|
docs/roadmap/items/workflow-sast-zizmor.md
|
|
207
208
|
docs/roadmap/items/workspace-scope-install.md
|
|
209
|
+
examples/README.md
|
|
210
|
+
examples/adapt-demo.sh
|
|
208
211
|
scripts/build_registries.py
|
|
209
212
|
scripts/build_roadmap.py
|
|
210
213
|
scripts/ensure_eval_corpus.sh
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: framework-adapter-langgraph
|
|
3
|
+
board: code
|
|
4
|
+
section: dx
|
|
5
|
+
status: planned
|
|
6
|
+
category: Interop
|
|
7
|
+
complexity: M
|
|
8
|
+
impact: Med
|
|
9
|
+
wow: 3
|
|
10
|
+
note:
|
|
11
|
+
order: 41
|
|
12
|
+
owner:
|
|
13
|
+
pr:
|
|
14
|
+
title: <code>boost adapt --to langgraph</code> — third framework renderer
|
|
15
|
+
---
|
|
16
|
+
Extend <code>boost adapt</code> (shipped in #146) with a LangGraph target. Unlike CrewAI / Agents-SDK, a LangGraph agent isn't one <code>Agent(...)</code> constructor — the skill body is the system prompt of a node bound into a <code>StateGraph</code>. Add a <code>render_langgraph</code> to <code>core/adapters.py</code> emitting a node factory (prebuilt <code>create_react_agent</code>, or a prompt-carrying node) + its <code>FORMATS</code> row, with byte-exact golden + <code>compile()</code> tests. Then add a <code>langgraph</code> leg to <code>.github/workflows/adapter-conformance.yml</code> (pip install langgraph, import the emitted file). Follows the pattern in <a href="../adapters.html">adapters.html</a>: one <code>render_*</code> fn + registry row + golden test + one matrix line.
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
<div class="stat"><b>16</b><span>Shipped</span></div>
|
|
119
119
|
<div class="stat"><b>1</b><span>Next up</span></div>
|
|
120
120
|
<div class="stat"><b>4</b><span>Planned</span></div>
|
|
121
|
-
<div class="stat"><b>
|
|
121
|
+
<div class="stat"><b>100</b><span>Loop finds</span></div>
|
|
122
122
|
<!-- /ROADMAP:stats -->
|
|
123
123
|
</div>
|
|
124
124
|
</section>
|
|
@@ -1371,6 +1371,17 @@ explanations and safety, not better ranking.</p>
|
|
|
1371
1371
|
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
1372
1372
|
</div>
|
|
1373
1373
|
</article>
|
|
1374
|
+
|
|
1375
|
+
<article class="cap rcard">
|
|
1376
|
+
<div class="head"><span class="pill planned">Planned</span><span class="cat">Interop</span></div>
|
|
1377
|
+
<h3><code>boost adapt --to langgraph</code> — third framework renderer</h3>
|
|
1378
|
+
<p>Extend <code>boost adapt</code> (shipped in #146) with a LangGraph target. Unlike CrewAI / Agents-SDK, a LangGraph agent isn't one <code>Agent(...)</code> constructor — the skill body is the system prompt of a node bound into a <code>StateGraph</code>. Add a <code>render_langgraph</code> to <code>core/adapters.py</code> emitting a node factory (prebuilt <code>create_react_agent</code>, or a prompt-carrying node) + its <code>FORMATS</code> row, with byte-exact golden + <code>compile()</code> tests. Then add a <code>langgraph</code> leg to <code>.github/workflows/adapter-conformance.yml</code> (pip install langgraph, import the emitted file). Follows the pattern in <a href="../adapters.html">adapters.html</a>: one <code>render_*</code> fn + registry row + golden test + one matrix line.</p>
|
|
1379
|
+
<div class="meta">
|
|
1380
|
+
<span class="m">Complexity <b>M</b></span>
|
|
1381
|
+
<span class="m">Impact <b>Med</b></span>
|
|
1382
|
+
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
1383
|
+
</div>
|
|
1384
|
+
</article>
|
|
1374
1385
|
<!-- /ROADMAP:cards -->
|
|
1375
1386
|
|
|
1376
1387
|
</div>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# boost examples
|
|
2
|
+
|
|
3
|
+
Runnable demos of boost features. Each script is self-contained and sandboxes
|
|
4
|
+
its state under a throwaway `HOME`, so it never touches your real `~/.agents`.
|
|
5
|
+
|
|
6
|
+
## `adapt-demo.sh` — the value of `boost adapt`
|
|
7
|
+
|
|
8
|
+
Shows why [`boost adapt`](../docs/adapters.html) exists: **author one skill,
|
|
9
|
+
run it in every framework, with zero drift.**
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bash examples/adapt-demo.sh
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
What it does (all offline — **no `OPENAI_API_KEY` needed**):
|
|
16
|
+
|
|
17
|
+
1. Spins up an isolated sandbox and installs `boost` + `crewai` +
|
|
18
|
+
`openai-agents` into a fresh venv.
|
|
19
|
+
2. Authors **one** `SKILL.md` and imports it into boost.
|
|
20
|
+
3. **Value 1** — renders it to *both* frameworks and instantiates each:
|
|
21
|
+
a real `crewai.Agent` and a real `agents.Agent` from the same source, no
|
|
22
|
+
hand-porting.
|
|
23
|
+
4. **Value 2** — edits the skill **once** and re-adapts; the change appears in
|
|
24
|
+
**both** generated files (before/after `0 0` → `1 1`). That is the
|
|
25
|
+
drift-killing payoff: one edit, every runtime current.
|
|
26
|
+
5. Optional: if `OPENAI_API_KEY` is set, actually runs the agent.
|
|
27
|
+
|
|
28
|
+
Requirements: **Python 3.11–3.13** (CrewAI's `tiktoken` dependency has no 3.14
|
|
29
|
+
wheel yet; boost itself supports 3.9–3.14). Clean up with
|
|
30
|
+
`rm -rf /tmp/boost-adapt-demo`.
|
|
31
|
+
|
|
32
|
+
> The same import path is exercised in CI by
|
|
33
|
+
> [`.github/workflows/adapter-conformance.yml`](../.github/workflows/adapter-conformance.yml),
|
|
34
|
+
> which installs each real framework and asserts the emitted file instantiates.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# adapt-demo.sh — prove the VALUE of `boost adapt`.
|
|
3
|
+
#
|
|
4
|
+
# Author ONE skill in boost, get native agents for CrewAI *and* the OpenAI
|
|
5
|
+
# Agents SDK, then edit the skill once and watch the change land in BOTH — the
|
|
6
|
+
# zero-drift payoff the feature exists for.
|
|
7
|
+
#
|
|
8
|
+
# No OPENAI_API_KEY needed: generating + instantiating the agents is fully
|
|
9
|
+
# offline. Only the optional final "run live inference" step wants a key.
|
|
10
|
+
#
|
|
11
|
+
# Everything runs in an ISOLATED sandbox HOME, so your real ~/.agents is never
|
|
12
|
+
# touched. Clean up with: rm -rf "${DEMO_DIR:-/tmp/boost-adapt-demo}"
|
|
13
|
+
#
|
|
14
|
+
# Usage: bash examples/adapt-demo.sh
|
|
15
|
+
set -euo pipefail
|
|
16
|
+
|
|
17
|
+
DEMO="${DEMO_DIR:-/tmp/boost-adapt-demo}"
|
|
18
|
+
SKILL="code-reviewer"
|
|
19
|
+
|
|
20
|
+
c() { printf '\n\033[1;36m== %s ==\033[0m\n' "$*"; } # cyan banner
|
|
21
|
+
dim() { printf '\033[2m%s\033[0m\n' "$*"; }
|
|
22
|
+
ok() { printf '\033[1;32m%s\033[0m\n' "$*"; }
|
|
23
|
+
|
|
24
|
+
# CrewAI's tiktoken dep has no cp314 wheel yet, so pin to 3.11-3.13.
|
|
25
|
+
PYBIN=""
|
|
26
|
+
for v in 3.13 3.12 3.11; do
|
|
27
|
+
PYBIN="$(command -v "python$v" || true)"
|
|
28
|
+
[ -n "$PYBIN" ] && break
|
|
29
|
+
done
|
|
30
|
+
[ -n "$PYBIN" ] || {
|
|
31
|
+
echo "Need python3.11, 3.12, or 3.13 — CrewAI's tiktoken has no 3.14 wheel."
|
|
32
|
+
echo " macOS: brew install python@3.13"
|
|
33
|
+
exit 1
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
# ---- 1. isolated sandbox (HOME is boost's home lever, like tests/smoke.sh) --
|
|
37
|
+
c "1/5 Fresh, isolated sandbox"
|
|
38
|
+
rm -rf "$DEMO"; mkdir -p "$DEMO"
|
|
39
|
+
export HOME="$DEMO/home"; mkdir -p "$HOME" # boost store → $DEMO/home/.agents
|
|
40
|
+
"$PYBIN" -m venv "$DEMO/.venv" # absolute py: independent of HOME
|
|
41
|
+
BOOST="$DEMO/.venv/bin/boost"; PY="$DEMO/.venv/bin/python"
|
|
42
|
+
dim "installing boost + crewai + openai-agents … (crewai is a big tree; ~2-3 min first run)"
|
|
43
|
+
"$DEMO/.venv/bin/pip" -q install -U boost-skill-cli crewai openai-agents
|
|
44
|
+
dim "boost $("$BOOST" --version | awk '{print $2}') · isolated home = $HOME/.agents"
|
|
45
|
+
|
|
46
|
+
# ---- 2. author ONE skill (the single source of truth) -----------------------
|
|
47
|
+
c "2/5 Author ONE skill"
|
|
48
|
+
mkdir -p "$DEMO/src/$SKILL"
|
|
49
|
+
cat > "$DEMO/src/$SKILL/SKILL.md" <<'MD'
|
|
50
|
+
---
|
|
51
|
+
name: code-reviewer
|
|
52
|
+
description: Reviews a diff for correctness, security, and test coverage
|
|
53
|
+
---
|
|
54
|
+
Review the provided diff. Flag unhandled errors, injection-prone string
|
|
55
|
+
building, and missing tests on new branches. Rank findings by severity and
|
|
56
|
+
cite file:line.
|
|
57
|
+
MD
|
|
58
|
+
"$BOOST" import "$DEMO/src/$SKILL" >/dev/null
|
|
59
|
+
ok "installed '$SKILL' into boost (one SKILL.md — the single source)"
|
|
60
|
+
|
|
61
|
+
# ---- 3. VALUE (1): author once -> two frameworks (no key) -------------------
|
|
62
|
+
c "3/5 VALUE 1 — one skill → native agents for TWO frameworks (no API key)"
|
|
63
|
+
"$BOOST" adapt "$SKILL" --to crewai -o "$DEMO/crew_agent.py"
|
|
64
|
+
"$BOOST" adapt "$SKILL" --to agents-sdk -o "$DEMO/sdk_agent.py"
|
|
65
|
+
cd "$DEMO"
|
|
66
|
+
"$PY" - <<'PYEOF'
|
|
67
|
+
import crew_agent, sdk_agent
|
|
68
|
+
from crewai import Agent as CrewAgent
|
|
69
|
+
from agents import Agent as SdkAgent
|
|
70
|
+
crew = next(v for v in vars(crew_agent).values() if isinstance(v, CrewAgent))
|
|
71
|
+
sdk = next(v for v in vars(sdk_agent).values() if isinstance(v, SdkAgent))
|
|
72
|
+
print(f" CrewAI -> {type(crew).__module__}.{type(crew).__name__} role={crew.role!r}")
|
|
73
|
+
print(f" Agents SDK -> {type(sdk).__module__}.{type(sdk).__name__} name={sdk.name!r}")
|
|
74
|
+
print(" \033[1;32m✓ same SKILL.md, two real framework Agent objects — zero hand-porting\033[0m")
|
|
75
|
+
PYEOF
|
|
76
|
+
|
|
77
|
+
# ---- 4. VALUE (2): edit once -> both update (zero drift) --------------------
|
|
78
|
+
c "4/5 VALUE 2 — edit the skill ONCE → both frameworks update (zero drift)"
|
|
79
|
+
SKILL_MD="$("$PY" -c "from boost_cli.core import store; print(store.skill_store_dir('$SKILL')/'SKILL.md')")"
|
|
80
|
+
MARKER="Always finish with a ranked shortlist of the top 3 issues."
|
|
81
|
+
printf '\n- %s\n' "$MARKER" >> "$SKILL_MD"
|
|
82
|
+
dim "edited the one source: $SKILL_MD"
|
|
83
|
+
dim " + \"$MARKER\""
|
|
84
|
+
"$BOOST" adapt "$SKILL" --to crewai -o "$DEMO/crew_after.py"
|
|
85
|
+
"$BOOST" adapt "$SKILL" --to agents-sdk -o "$DEMO/sdk_after.py"
|
|
86
|
+
bc=$(grep -c "$MARKER" crew_agent.py || true); bs=$(grep -c "$MARKER" sdk_agent.py || true)
|
|
87
|
+
ac=$(grep -c "$MARKER" crew_after.py || true); as=$(grep -c "$MARKER" sdk_after.py || true)
|
|
88
|
+
printf ' %-14s %-10s %-10s\n' '' 'CrewAI' 'AgentsSDK'
|
|
89
|
+
printf ' %-14s %-10s %-10s\n' 'before edit' "$bc" "$bs"
|
|
90
|
+
printf ' %-14s %-10s %-10s\n' 'after edit' "$ac" "$as"
|
|
91
|
+
ok "one edit → both outputs carry it (1 & 1). Hand-porting means keeping N copies in sync forever."
|
|
92
|
+
|
|
93
|
+
# ---- 5. optional: run live inference (needs a key) --------------------------
|
|
94
|
+
c "5/5 (optional) run the agent — needs an LLM key"
|
|
95
|
+
if [ -n "${OPENAI_API_KEY:-}" ]; then
|
|
96
|
+
"$PY" - <<'PYEOF'
|
|
97
|
+
from agents import Runner, Agent as SdkAgent
|
|
98
|
+
import sdk_agent
|
|
99
|
+
sdk = next(v for v in vars(sdk_agent).values() if isinstance(v, SdkAgent))
|
|
100
|
+
print(" " + Runner.run_sync(sdk, "Name two things you check in a code review.").final_output.replace("\n", "\n "))
|
|
101
|
+
PYEOF
|
|
102
|
+
else
|
|
103
|
+
dim " OPENAI_API_KEY not set — skipping live run (instantiation above already"
|
|
104
|
+
dim " proved the contract without a key). To run for real:"
|
|
105
|
+
dim " OPENAI_API_KEY=sk-... bash $0"
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
c "done"
|
|
109
|
+
dim "artifacts in $DEMO : crew_agent.py sdk_agent.py crew_after.py sdk_after.py"
|
|
110
|
+
dim "clean up with: rm -rf $DEMO"
|
|
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
|
{boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/boost_skill_cli.egg-info/entry_points.txt
RENAMED
|
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
|
{boost_skill_cli-1.0.133 → boost_skill_cli-1.0.135}/docs/roadmap/items/list-rules-and-workflows.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|