Skip to content

feat(ai): add bun/bunx eslint/openspec entries to command-policy allowlist#723

Merged
mkobit merged 2 commits into
mainfrom
feat/command-policy-bunx-openspec-eslint
Jul 16, 2026
Merged

feat(ai): add bun/bunx eslint/openspec entries to command-policy allowlist#723
mkobit merged 2 commits into
mainfrom
feat/command-policy-bunx-openspec-eslint

Conversation

@mkobit

@mkobit mkobit commented Jul 16, 2026

Copy link
Copy Markdown
Owner

Summary

  • eslint.toml: bunx eslint = allow (lint by default, --fix is git-recoverable)
  • openspec.toml: bunx openspec/npx openspec/openspec = allow (three invocation styles for the same tool, schema is prefix-keyed)
  • bun.toml: bun build/outdated/audit/why/info/test = allow — fixed/read-only operations, except test which is a deliberate exception (runs arbitrary project test-file code, kept anyway for TDD workflow convenience)

Deliberately excluded: bun run/bare bunx/bun x/repl/exec (unbounded arbitrary code), install/add/remove/update/link/unlink/patch (postinstall lifecycle scripts = supply-chain execution risk), create (downloads+runs template scaffolding), publish (npm registry write), upgrade (mutates the bun binary itself).

Follow-up from the cross-project .claude/settings.local.json survey noted in PR #719.

Test plan

  • chezmoi data --format json confirms new keys present in ai.command_policy.commands
  • chezmoi diff shows correct render into both ~/.claude/settings.json (Bash(<cmd>:*)) and Antigravity's settings.json (command(<cmd>))

mkobit and others added 2 commits July 15, 2026 08:46
bunx eslint (lint, --fix is git-recoverable) and openspec across its
three invocation styles (bunx/npx/bare) were the two tools from the
cross-project settings.local.json survey that met the bar: fixed,
auditable subcommand surface, no remote write.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
build/outdated/audit/why/info are fixed, bounded operations (build
output is deterministic, the rest are read-only registry/lockfile
queries). install/add/remove/update/link/unlink/patch/create/publish/
upgrade stay excluded: dependency mutation, arbitrary postinstall
scripts, or remote/binary writes.

test is the one exception — it runs arbitrary project test-file code
rather than a fixed operation, breaking the "bounded surface only"
pattern used elsewhere in this catalog. Included anyway: re-approval
friction during routine TDD workflows outweighs the risk in practice.
@mkobit
mkobit merged commit 92ebf28 into main Jul 16, 2026
6 checks passed
@mkobit
mkobit deleted the feat/command-policy-bunx-openspec-eslint branch July 16, 2026 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant