boost-skill-cli 1.0.155__tar.gz → 1.0.157__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.155 → boost_skill_cli-1.0.157}/.gitignore +2 -2
- boost_skill_cli-1.0.157/.gitleaks.toml +17 -0
- boost_skill_cli-1.0.157/.pre-commit-config.yaml +67 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/CONTRIBUTING.md +15 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_skill_cli.egg-info/SOURCES.txt +3 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +3 -3
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +3 -3
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap.html +2 -2
- boost_skill_cli-1.0.157/tests/unit/test_gitleaks_config.py +59 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/.gitattributes +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/LICENSE +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/Makefile +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/README.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/index.html +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/examples/README.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/index.html +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/setup.cfg +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/style/README.md +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/style/boost.css +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/style/boost.js +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/style/demo.html +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/tests/unit/test_workflows.py +0 -0
|
@@ -195,9 +195,9 @@ cython_debug/
|
|
|
195
195
|
.abstra/
|
|
196
196
|
|
|
197
197
|
# Visual Studio Code
|
|
198
|
-
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
|
198
|
+
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
|
199
199
|
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
|
200
|
-
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
|
200
|
+
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
|
201
201
|
# you could uncomment the following to ignore the entire vscode folder
|
|
202
202
|
# .vscode/
|
|
203
203
|
# Temporary file for partial code execution
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# gitleaks configuration — secret-scanning gate (see .github/workflows/ci.yml).
|
|
2
|
+
#
|
|
3
|
+
# Extends gitleaks' upstream default ruleset (which covers cloud keys, tokens,
|
|
4
|
+
# private keys, high-entropy strings, …) and allowlists the one place boost
|
|
5
|
+
# ships *synthetic* secrets on purpose: its own secret-scanner test fixtures.
|
|
6
|
+
# Everything else — source, docs, real history — is scanned unmodified.
|
|
7
|
+
|
|
8
|
+
title = "boost gitleaks config"
|
|
9
|
+
|
|
10
|
+
[extend]
|
|
11
|
+
useDefault = true
|
|
12
|
+
|
|
13
|
+
[[allowlists]]
|
|
14
|
+
description = "boost's own secret-scanner tests ship synthetic private keys / tokens by design (they exist to prove core/secretscan.py flags them)"
|
|
15
|
+
paths = [
|
|
16
|
+
'''tests/unit/test_secretscan\.py''',
|
|
17
|
+
]
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Shift-left the `make lint` gate to *before* the commit, so ruff / mypy /
|
|
2
|
+
# codespell / whitespace fixes land locally instead of failing in CI.
|
|
3
|
+
#
|
|
4
|
+
# pip install pre-commit && pre-commit install # once — hooks then run on `git commit`
|
|
5
|
+
# pre-commit run --all-files # run everything right now
|
|
6
|
+
#
|
|
7
|
+
# pre-commit.ci (free for open source) runs these on every PR and pushes the
|
|
8
|
+
# auto-fixes back onto the branch — see the `ci:` block. Versions below are
|
|
9
|
+
# pinned to match the tools `make lint` runs; bump them together.
|
|
10
|
+
ci:
|
|
11
|
+
autofix_prs: true
|
|
12
|
+
autoupdate_schedule: monthly
|
|
13
|
+
# mypy is a `repo: local` hook that needs the project's venv — pre-commit.ci
|
|
14
|
+
# builds isolated hook envs and can't provide it, so `make lint` / CI own it.
|
|
15
|
+
skip: [mypy]
|
|
16
|
+
|
|
17
|
+
minimum_pre_commit_version: "3.5.0"
|
|
18
|
+
|
|
19
|
+
repos:
|
|
20
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
21
|
+
rev: v6.0.0
|
|
22
|
+
hooks:
|
|
23
|
+
# Whitespace fixers skip the generated boards (build_roadmap.py owns their
|
|
24
|
+
# bytes — a drift check would fight this hook), the loop-edited roadmap
|
|
25
|
+
# item data (many parallel branches touch these; a whitespace churn there
|
|
26
|
+
# means needless merge conflicts) and IDE files under .idea/.
|
|
27
|
+
- id: trailing-whitespace
|
|
28
|
+
exclude: &data_and_generated '^(docs/(roadmap|design-roadmap)\.html$|docs/roadmap/items/|\.idea/)'
|
|
29
|
+
- id: end-of-file-fixer
|
|
30
|
+
exclude: *data_and_generated
|
|
31
|
+
- id: mixed-line-ending
|
|
32
|
+
args: [--fix=lf]
|
|
33
|
+
exclude: *data_and_generated
|
|
34
|
+
- id: check-merge-conflict
|
|
35
|
+
- id: check-yaml
|
|
36
|
+
- id: check-toml
|
|
37
|
+
- id: check-added-large-files
|
|
38
|
+
|
|
39
|
+
# Ruff — pinned to the version in `make lint`; reads the same [tool.ruff]
|
|
40
|
+
# config from pyproject.toml and is scoped to the gate's paths.
|
|
41
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
42
|
+
rev: v0.15.22
|
|
43
|
+
hooks:
|
|
44
|
+
- id: ruff
|
|
45
|
+
args: [--fix]
|
|
46
|
+
files: ^(boost_cli|tests)/.*\.py$
|
|
47
|
+
|
|
48
|
+
# codespell — same version and [tool.codespell] config (skip / ignore lists)
|
|
49
|
+
# as `make lint`, scoped to the same targets: boost_cli, docs, README.
|
|
50
|
+
- repo: https://github.com/codespell-project/codespell
|
|
51
|
+
rev: v2.4.3
|
|
52
|
+
hooks:
|
|
53
|
+
- id: codespell
|
|
54
|
+
additional_dependencies: [tomli]
|
|
55
|
+
files: ^(boost_cli/|docs/|README\.md)
|
|
56
|
+
|
|
57
|
+
# mypy — run from the project venv so it matches `make lint` exactly
|
|
58
|
+
# (config drives it: files = ["boost_cli"]). Local so stdlib/editable
|
|
59
|
+
# resolution is identical; skipped on pre-commit.ci (see `ci.skip`).
|
|
60
|
+
- repo: local
|
|
61
|
+
hooks:
|
|
62
|
+
- id: mypy
|
|
63
|
+
name: mypy (boost_cli)
|
|
64
|
+
entry: mypy
|
|
65
|
+
language: system
|
|
66
|
+
pass_filenames: false
|
|
67
|
+
types: [python]
|
|
@@ -13,6 +13,21 @@ make venv # pytest, coverage, mutmut, ruff, mypy — runtime stays stdl
|
|
|
13
13
|
Every test runs against a throwaway `$HOME`, so nothing touches your real
|
|
14
14
|
agent configs.
|
|
15
15
|
|
|
16
|
+
### Pre-commit hooks (recommended)
|
|
17
|
+
|
|
18
|
+
Catch the `make lint` findings *before* they reach CI:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pip install pre-commit && pre-commit install # once
|
|
22
|
+
pre-commit run --all-files # or run everything now
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`git commit` then runs ruff, mypy, codespell and the whitespace fixers on your
|
|
26
|
+
staged files. The hooks in [`.pre-commit-config.yaml`](.pre-commit-config.yaml)
|
|
27
|
+
are pinned to the same tool versions the lint gate uses, and
|
|
28
|
+
[pre-commit.ci](https://pre-commit.ci) runs them on every PR and pushes any
|
|
29
|
+
auto-fixes straight back onto the branch.
|
|
30
|
+
|
|
16
31
|
## The gates (CI runs all of these)
|
|
17
32
|
|
|
18
33
|
| Command | Gate |
|
|
@@ -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.157'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 157)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
.gitattributes
|
|
2
2
|
.gitignore
|
|
3
|
+
.gitleaks.toml
|
|
4
|
+
.pre-commit-config.yaml
|
|
3
5
|
CLAUDE.md
|
|
4
6
|
CONTRIBUTING.md
|
|
5
7
|
LICENSE
|
|
@@ -281,6 +283,7 @@ tests/unit/test_docs_pages_linked.py
|
|
|
281
283
|
tests/unit/test_embed.py
|
|
282
284
|
tests/unit/test_errors_and_cli_table.py
|
|
283
285
|
tests/unit/test_frontmatter.py
|
|
286
|
+
tests/unit/test_gitleaks_config.py
|
|
284
287
|
tests/unit/test_gitutil.py
|
|
285
288
|
tests/unit/test_imperative.py
|
|
286
289
|
tests/unit/test_import_budget.py
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
id: secret-scanning-gitleaks-push-protection
|
|
3
3
|
board: code
|
|
4
4
|
section: health
|
|
5
|
-
status:
|
|
5
|
+
status: shipped
|
|
6
6
|
category: Security · Secrets
|
|
7
7
|
complexity: S
|
|
8
8
|
impact: Med
|
|
9
9
|
wow: 3
|
|
10
10
|
note: pre-commit-able
|
|
11
11
|
order: 4
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
12
|
+
owner: loop/gitleaks
|
|
13
|
+
pr: 180
|
|
14
14
|
title: Secret scanning — <code>gitleaks</code> + push protection
|
|
15
15
|
---
|
|
16
16
|
Scan the full history and every PR diff for leaked tokens, keys and
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
id: shift-left-gate-pre-commit-pre-commit-ci
|
|
3
3
|
board: code
|
|
4
4
|
section: dx
|
|
5
|
-
status:
|
|
5
|
+
status: shipped
|
|
6
6
|
category: DX · Infra
|
|
7
7
|
complexity: S
|
|
8
8
|
impact: High
|
|
9
9
|
wow: 4
|
|
10
10
|
note: auto-fix PRs
|
|
11
11
|
order: 2
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
12
|
+
owner: loop/pre-commit
|
|
13
|
+
pr: 181
|
|
14
14
|
title: Shift-left gate — <code>pre-commit</code> + pre-commit.ci
|
|
15
15
|
---
|
|
16
16
|
A <code>.pre-commit-config.yaml</code> runs ruff, mypy, codespell and the
|
|
@@ -987,7 +987,7 @@ harness.</p>
|
|
|
987
987
|
</article>
|
|
988
988
|
|
|
989
989
|
<article class="cap rcard">
|
|
990
|
-
<div class="head"><span class="pill
|
|
990
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Security · Secrets</span></div>
|
|
991
991
|
<h3>Secret scanning — <code>gitleaks</code> + push protection</h3>
|
|
992
992
|
<p>Scan the full history and every PR diff for leaked tokens, keys and
|
|
993
993
|
PyPI credentials with the free <code>gitleaks</code> action, paired
|
|
@@ -1325,7 +1325,7 @@ improvement is real (or isn't)."</p>
|
|
|
1325
1325
|
</article>
|
|
1326
1326
|
|
|
1327
1327
|
<article class="cap rcard">
|
|
1328
|
-
<div class="head"><span class="pill
|
|
1328
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">DX · Infra</span></div>
|
|
1329
1329
|
<h3>Shift-left gate — <code>pre-commit</code> + pre-commit.ci</h3>
|
|
1330
1330
|
<p>A <code>.pre-commit-config.yaml</code> runs ruff, mypy, codespell and the
|
|
1331
1331
|
whitespace fixers <em>before</em> code ever reaches CI, and the free-for-OSS
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""Unit test: .gitleaks.toml — the secret-scanning gate's configuration.
|
|
2
|
+
|
|
3
|
+
Validates the config is well-formed and does what the CI gate relies on:
|
|
4
|
+
extend the upstream default ruleset and allowlist boost's own synthetic
|
|
5
|
+
secret-scanner fixtures (so the gate stays green on deliberate test data while
|
|
6
|
+
still catching a real leak anywhere else).
|
|
7
|
+
"""
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import sys
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
import pytest
|
|
14
|
+
|
|
15
|
+
_CONFIG = Path(__file__).resolve().parents[2] / ".gitleaks.toml"
|
|
16
|
+
|
|
17
|
+
pytestmark = [
|
|
18
|
+
pytest.mark.skipif(not _CONFIG.exists(),
|
|
19
|
+
reason="repo-root .gitleaks.toml not reachable (e.g. mutation sandbox)"),
|
|
20
|
+
pytest.mark.skipif(sys.version_info < (3, 11),
|
|
21
|
+
reason="tomllib is stdlib only on Python 3.11+"),
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _load():
|
|
26
|
+
import tomllib
|
|
27
|
+
with open(_CONFIG, "rb") as f:
|
|
28
|
+
return tomllib.load(f)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def test_is_valid_toml():
|
|
32
|
+
assert isinstance(_load(), dict)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_extends_the_default_ruleset():
|
|
36
|
+
# Without useDefault the config would replace, not extend, gitleaks' rules —
|
|
37
|
+
# silently disabling every built-in detector.
|
|
38
|
+
cfg = _load()
|
|
39
|
+
assert cfg.get("extend", {}).get("useDefault") is True
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def test_allowlists_the_secretscan_fixtures():
|
|
43
|
+
cfg = _load()
|
|
44
|
+
allowlists = cfg.get("allowlists") or ([cfg["allowlist"]] if "allowlist" in cfg else [])
|
|
45
|
+
paths = [p for al in allowlists for p in al.get("paths", [])]
|
|
46
|
+
assert any("test_secretscan" in p for p in paths), (
|
|
47
|
+
"the synthetic-secret fixture file must be allowlisted or the gate "
|
|
48
|
+
"reports boost's own test data as a leak")
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def test_allowlist_does_not_blanket_ignore_tests():
|
|
52
|
+
# A too-broad `tests/` allowlist would blind the scanner to a real secret
|
|
53
|
+
# committed in any other test file. Keep it scoped to the fixture file.
|
|
54
|
+
cfg = _load()
|
|
55
|
+
allowlists = cfg.get("allowlists") or ([cfg["allowlist"]] if "allowlist" in cfg else [])
|
|
56
|
+
paths = [p for al in allowlists for p in al.get("paths", [])]
|
|
57
|
+
for p in paths:
|
|
58
|
+
assert p.rstrip("$").rstrip("/") not in ("tests", "tests/", r"tests/.*", "tests"), \
|
|
59
|
+
"allowlist path %r is too broad — scope it to the fixture file" % p
|
|
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.155 → boost_skill_cli-1.0.157}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/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
|
{boost_skill_cli-1.0.155 → boost_skill_cli-1.0.157}/docs/roadmap/items/boost-run-live-agents.md
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
|