skilldrop-cli 0.16.34 → 0.16.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/README.md +1 -0
  2. package/agents/README.md +4 -1
  3. package/agents/docs-reviewer.md +47 -0
  4. package/agents/finding-adjudicator.md +49 -0
  5. package/agents/test-reviewer.md +52 -0
  6. package/catalogue.json +17 -7
  7. package/model-routing.json +40 -0
  8. package/package.json +1 -1
  9. package/packs/ai-engineering/skills/agent-config-review/SKILL.md +116 -0
  10. package/packs/ai-engineering/skills/agent-config-review/evals/eval_queries.json +12 -0
  11. package/packs/ai-engineering/skills/agent-config-review/evals/evals.json +75 -0
  12. package/packs/ai-engineering/skills/agent-config-review/evals/files/1/.claude/agents/db-migrator.md +8 -0
  13. package/packs/ai-engineering/skills/agent-config-review/evals/files/1/.claude/agents/reviewer.md +9 -0
  14. package/packs/ai-engineering/skills/agent-config-review/evals/files/1/.claude/settings.json +48 -0
  15. package/packs/ai-engineering/skills/agent-config-review/evals/files/1/.claude/settings.local.json +5 -0
  16. package/packs/ai-engineering/skills/agent-config-review/evals/files/1/.mcp.json +22 -0
  17. package/packs/ai-engineering/skills/agent-config-review/evals/files/1/package.json +12 -0
  18. package/packs/ai-engineering/skills/agent-config-review/evals/files/2/.cursor/mcp.json +17 -0
  19. package/packs/ai-engineering/skills/agent-config-review/evals/files/2/config.toml +21 -0
  20. package/packs/ai-engineering/skills/agent-config-review/evals/files/4/my-user-settings.json +11 -0
  21. package/packs/ai-engineering/skills/agent-config-review/evals/files/4/quillstack/.claude/agents/release-notes.md +13 -0
  22. package/packs/ai-engineering/skills/agent-config-review/evals/files/4/quillstack/.claude/settings.json +39 -0
  23. package/packs/ai-engineering/skills/agent-config-review/evals/files/4/quillstack/.mcp.json +18 -0
  24. package/packs/ai-engineering/skills/agent-config-review/evals/files/4/quillstack/package.json +14 -0
  25. package/packs/ai-engineering/skills/agent-config-review/evals/files/5/.github/workflows/codex-triage.yml +29 -0
  26. package/packs/ai-engineering/skills/agent-config-review/evals/files/5/AGENTS.md +16 -0
  27. package/packs/ai-engineering/skills/agent-config-review/evals/files/5/codex/config.toml +34 -0
  28. package/packs/ai-engineering/skills/agent-config-review/examples/inputs/tidewater-ingest/.claude/settings.json +22 -0
  29. package/packs/ai-engineering/skills/agent-config-review/examples/inputs/tidewater-ingest/.mcp.json +9 -0
  30. package/packs/ai-engineering/skills/agent-config-review/examples/python-repo-tighten.md +81 -0
  31. package/packs/ai-engineering/skills/agent-config-review/manifest.json +60 -0
  32. package/packs/ai-engineering/skills/agent-config-review/reference.md +205 -0
  33. package/packs/ai-engineering/skills/agent-config-review/scripts/agent_config_scan.py +989 -0
  34. package/packs/ai-engineering/skills/agent-incident-response/SKILL.md +175 -0
  35. package/packs/ai-engineering/skills/agent-incident-response/evals/eval_queries.json +14 -0
  36. package/packs/ai-engineering/skills/agent-incident-response/evals/evals.json +107 -0
  37. package/packs/ai-engineering/skills/agent-incident-response/evals/files/1/agent-session-excerpt.txt +11 -0
  38. package/packs/ai-engineering/skills/agent-incident-response/evals/files/1/ci-build-log.txt +24 -0
  39. package/packs/ai-engineering/skills/agent-incident-response/evals/files/1/incident-notes.md +19 -0
  40. package/packs/ai-engineering/skills/agent-incident-response/evals/files/2/mcp-config.json +20 -0
  41. package/packs/ai-engineering/skills/agent-incident-response/evals/files/2/session-transcript.txt +8 -0
  42. package/packs/ai-engineering/skills/agent-incident-response/evals/files/4/agent-session.log +70 -0
  43. package/packs/ai-engineering/skills/agent-incident-response/evals/files/4/infra/staging-db.tf +25 -0
  44. package/packs/ai-engineering/skills/agent-incident-response/evals/files/5/jobs/nightly-triage/job.yaml +19 -0
  45. package/packs/ai-engineering/skills/agent-incident-response/evals/files/5/jobs/nightly-triage/run.log +13 -0
  46. package/packs/ai-engineering/skills/agent-incident-response/evals/files/5/usage-export-2026-10-20.csv +13 -0
  47. package/packs/ai-engineering/skills/agent-incident-response/evals/files/6/.mcp.json +20 -0
  48. package/packs/ai-engineering/skills/agent-incident-response/evals/files/6/git-log.txt +12 -0
  49. package/packs/ai-engineering/skills/agent-incident-response/evals/files/6/notesync-excerpt.txt +30 -0
  50. package/packs/ai-engineering/skills/agent-incident-response/evals/files/6/notesync.log +15 -0
  51. package/packs/ai-engineering/skills/agent-incident-response/evals/files/6/ssh-config.txt +16 -0
  52. package/packs/ai-engineering/skills/agent-incident-response/evals/files/7/.github/workflows/ci.yml +28 -0
  53. package/packs/ai-engineering/skills/agent-incident-response/evals/files/7/SECURITY.md +8 -0
  54. package/packs/ai-engineering/skills/agent-incident-response/evals/files/7/issue-479.md +35 -0
  55. package/packs/ai-engineering/skills/agent-incident-response/evals/files/7/package.json +15 -0
  56. package/packs/ai-engineering/skills/agent-incident-response/evals/files/7/pr-482.diff +20 -0
  57. package/packs/ai-engineering/skills/agent-incident-response/evals/files/7/run-log.txt +30 -0
  58. package/packs/ai-engineering/skills/agent-incident-response/examples/injected-issue-comment.md +57 -0
  59. package/packs/ai-engineering/skills/agent-incident-response/manifest.json +55 -0
  60. package/packs/ai-engineering/skills/agent-incident-response/reference.md +152 -0
  61. package/packs/ai-engineering/skills/agent-incident-response/scripts/find_secret_exposure.py +239 -0
  62. package/packs/ai-engineering/skills/agent-incident-response/scripts/usage_split.py +194 -0
  63. package/packs/converters/skills/file-to-markdown/SKILL.md +3 -2
  64. package/packs/converters/skills/file-to-markdown/evals/eval_queries.json +4 -0
  65. package/packs/converters/skills/file-to-markdown/manifest.json +2 -2
  66. package/packs/converters/skills/file-to-markdown/scripts/to_markdown.py +340 -7
  67. package/packs/converters/skills/md-to-confluence/SKILL.md +139 -0
  68. package/packs/converters/skills/md-to-confluence/evals/eval_queries.json +42 -0
  69. package/packs/converters/skills/md-to-confluence/evals/evals.json +89 -0
  70. package/packs/converters/skills/md-to-confluence/evals/files/1/img/latency-dashboard.png +0 -0
  71. package/packs/converters/skills/md-to-confluence/evals/files/1/payments-runbook.md +60 -0
  72. package/packs/converters/skills/md-to-confluence/evals/files/2/deploy-checklist.md +33 -0
  73. package/packs/converters/skills/md-to-confluence/evals/files/3/img/after/screen.png +0 -0
  74. package/packs/converters/skills/md-to-confluence/evals/files/3/img/before/screen.png +0 -0
  75. package/packs/converters/skills/md-to-confluence/evals/files/3/release-notes-4.2.md +49 -0
  76. package/packs/converters/skills/md-to-confluence/evals/files/4/docs/img/topology.png +0 -0
  77. package/packs/converters/skills/md-to-confluence/evals/files/4/docs/ingest-pipeline-design.md +65 -0
  78. package/packs/converters/skills/md-to-confluence/evals/files/5/support/troubleshooting-sso.md +57 -0
  79. package/packs/converters/skills/md-to-confluence/examples/inputs/img/queue-depth.png +0 -0
  80. package/packs/converters/skills/md-to-confluence/examples/inputs/queue-runbook.fixed.md +21 -0
  81. package/packs/converters/skills/md-to-confluence/examples/inputs/queue-runbook.md +21 -0
  82. package/packs/converters/skills/md-to-confluence/examples/queue-runbook.md +57 -0
  83. package/packs/converters/skills/md-to-confluence/manifest.json +52 -0
  84. package/packs/converters/skills/md-to-confluence/reference.md +92 -0
  85. package/packs/converters/skills/md-to-confluence/scripts/md_to_confluence.py +821 -0
  86. package/packs/converters/skills/md-to-pptx/SKILL.md +131 -0
  87. package/packs/converters/skills/md-to-pptx/evals/eval_queries.json +12 -0
  88. package/packs/converters/skills/md-to-pptx/evals/evals.json +84 -0
  89. package/packs/converters/skills/md-to-pptx/evals/files/1/img/defect-burndown.png +0 -0
  90. package/packs/converters/skills/md-to-pptx/evals/files/1/status-report.md +75 -0
  91. package/packs/converters/skills/md-to-pptx/evals/files/3/brand.json +12 -0
  92. package/packs/converters/skills/md-to-pptx/evals/files/3/night-shift-induction.md +53 -0
  93. package/packs/converters/skills/md-to-pptx/evals/files/4/charts/ontime.png +0 -0
  94. package/packs/converters/skills/md-to-pptx/evals/files/4/qbr-q3.md +85 -0
  95. package/packs/converters/skills/md-to-pptx/evals/files/5/vendor-sync-notes.md +28 -0
  96. package/packs/converters/skills/md-to-pptx/examples/support-weekly-input.md +48 -0
  97. package/packs/converters/skills/md-to-pptx/examples/support-weekly.md +75 -0
  98. package/packs/converters/skills/md-to-pptx/examples/tickets-by-week.png +0 -0
  99. package/packs/converters/skills/md-to-pptx/manifest.json +49 -0
  100. package/packs/converters/skills/md-to-pptx/reference.md +139 -0
  101. package/packs/converters/skills/md-to-pptx/scripts/md_to_pptx.py +1841 -0
  102. package/packs/dev-team/loops/modernize/LOOP.md +124 -0
  103. package/packs/dev-team/loops/modernize/evals/eval_queries.json +9 -0
  104. package/packs/dev-team/loops/modernize/evals/evals.json +27 -0
  105. package/packs/dev-team/loops/modernize/loop.json +60 -0
  106. package/packs/dev-team/skills/behaviour-equivalence/SKILL.md +155 -0
  107. package/packs/dev-team/skills/behaviour-equivalence/evals/eval_queries.json +11 -0
  108. package/packs/dev-team/skills/behaviour-equivalence/evals/evals.json +76 -0
  109. package/packs/dev-team/skills/behaviour-equivalence/evals/files/1/cases.jsonl +12 -0
  110. package/packs/dev-team/skills/behaviour-equivalence/evals/files/1/new.jsonl +12 -0
  111. package/packs/dev-team/skills/behaviour-equivalence/evals/files/1/notes.md +15 -0
  112. package/packs/dev-team/skills/behaviour-equivalence/evals/files/1/old.jsonl +12 -0
  113. package/packs/dev-team/skills/behaviour-equivalence/evals/files/1/old_rerun.jsonl +12 -0
  114. package/packs/dev-team/skills/behaviour-equivalence/evals/files/1/pricing_v1.py +45 -0
  115. package/packs/dev-team/skills/behaviour-equivalence/evals/files/1/pricing_v2.py +65 -0
  116. package/packs/dev-team/skills/behaviour-equivalence/evals/files/1/rules.json +10 -0
  117. package/packs/dev-team/skills/behaviour-equivalence/evals/files/3/diff-summary.txt +16 -0
  118. package/packs/dev-team/skills/behaviour-equivalence/evals/files/4/diff.txt +13 -0
  119. package/packs/dev-team/skills/behaviour-equivalence/evals/files/4/fee_calc_py2.py +16 -0
  120. package/packs/dev-team/skills/behaviour-equivalence/evals/files/4/fee_calc_py3.py +24 -0
  121. package/packs/dev-team/skills/behaviour-equivalence/evals/files/4/input.csv +13 -0
  122. package/packs/dev-team/skills/behaviour-equivalence/evals/files/4/new_output.csv +13 -0
  123. package/packs/dev-team/skills/behaviour-equivalence/evals/files/4/old_output.csv +13 -0
  124. package/packs/dev-team/skills/behaviour-equivalence/evals/files/5/TEAM_NOTES.md +19 -0
  125. package/packs/dev-team/skills/behaviour-equivalence/evals/files/5/normalisation.yaml +12 -0
  126. package/packs/dev-team/skills/behaviour-equivalence/evals/files/5/recordings/new_run.jsonl +8 -0
  127. package/packs/dev-team/skills/behaviour-equivalence/evals/files/5/recordings/old_run1.jsonl +8 -0
  128. package/packs/dev-team/skills/behaviour-equivalence/evals/files/5/recordings/old_run2.jsonl +8 -0
  129. package/packs/dev-team/skills/behaviour-equivalence/examples/delivery-date.md +78 -0
  130. package/packs/dev-team/skills/behaviour-equivalence/manifest.json +33 -0
  131. package/packs/dev-team/skills/behaviour-equivalence/reference.md +97 -0
  132. package/packs/dev-team/skills/behaviour-equivalence/scripts/golden_diff.py +524 -0
  133. package/packs/dev-team/skills/behaviour-equivalence/templates/accepted.json +10 -0
  134. package/packs/dev-team/skills/behaviour-equivalence/templates/rules.json +7 -0
  135. package/packs/frontend/pack.json +55 -0
  136. package/packs/frontend/skills/rendering-strategy/SKILL.md +149 -0
  137. package/packs/frontend/skills/rendering-strategy/evals/eval_queries.json +38 -0
  138. package/packs/frontend/skills/rendering-strategy/evals/evals.json +77 -0
  139. package/packs/frontend/skills/rendering-strategy/evals/files/1/fernhill-app.md +40 -0
  140. package/packs/frontend/skills/rendering-strategy/evals/files/3/routes.md +33 -0
  141. package/packs/frontend/skills/rendering-strategy/evals/files/4/build-notes.txt +5 -0
  142. package/packs/frontend/skills/rendering-strategy/evals/files/4/nuxt.config.ts +19 -0
  143. package/packs/frontend/skills/rendering-strategy/evals/files/4/pages/recipes/[slug].vue +37 -0
  144. package/packs/frontend/skills/rendering-strategy/evals/files/4/routes.md +15 -0
  145. package/packs/frontend/skills/rendering-strategy/evals/files/5/routes.txt +18 -0
  146. package/packs/frontend/skills/rendering-strategy/evals/files/5/src/hooks.server.ts +14 -0
  147. package/packs/frontend/skills/rendering-strategy/evals/files/5/src/routes/(marketing)/pricing/+page.server.ts +10 -0
  148. package/packs/frontend/skills/rendering-strategy/evals/files/5/src/routes/+layout.server.ts +10 -0
  149. package/packs/frontend/skills/rendering-strategy/evals/files/5/svelte.config.js +10 -0
  150. package/packs/frontend/skills/rendering-strategy/evals/files/5/traffic.md +18 -0
  151. package/packs/frontend/skills/rendering-strategy/examples/saas-site.md +42 -0
  152. package/packs/frontend/skills/rendering-strategy/manifest.json +50 -0
  153. package/packs/frontend/skills/rendering-strategy/reference.md +116 -0
  154. package/packs/frontend/skills/rendering-strategy/scripts/render_load.py +181 -0
  155. package/packs/frontend/skills/web-performance-review/SKILL.md +106 -0
  156. package/packs/frontend/skills/web-performance-review/evals/eval_queries.json +38 -0
  157. package/packs/frontend/skills/web-performance-review/evals/evals.json +76 -0
  158. package/packs/frontend/skills/web-performance-review/evals/files/1/psi.json +1065 -0
  159. package/packs/frontend/skills/web-performance-review/evals/files/2/after.json +359 -0
  160. package/packs/frontend/skills/web-performance-review/evals/files/2/before.json +375 -0
  161. package/packs/frontend/skills/web-performance-review/evals/files/4/psi-pdp-mobile-2026-10-19.json +171 -0
  162. package/packs/frontend/skills/web-performance-review/evals/files/4/rum-inp-attribution-oct14-19.csv +6 -0
  163. package/packs/frontend/skills/web-performance-review/evals/files/4/rum-inp-daily.csv +15 -0
  164. package/packs/frontend/skills/web-performance-review/evals/files/5/crux-home-phone.json +35 -0
  165. package/packs/frontend/skills/web-performance-review/evals/files/5/lighthouse-home-mobile.json +173 -0
  166. package/packs/frontend/skills/web-performance-review/examples/quayside-article-lhr.json +480 -0
  167. package/packs/frontend/skills/web-performance-review/examples/quayside-article.md +103 -0
  168. package/packs/frontend/skills/web-performance-review/manifest.json +48 -0
  169. package/packs/frontend/skills/web-performance-review/reference.md +105 -0
  170. package/packs/frontend/skills/web-performance-review/scripts/lh_summary.py +743 -0
  171. package/packs/product-manager/skills/lean-canvas/SKILL.md +162 -0
  172. package/packs/product-manager/skills/lean-canvas/evals/eval_queries.json +42 -0
  173. package/packs/product-manager/skills/lean-canvas/evals/evals.json +82 -0
  174. package/packs/product-manager/skills/lean-canvas/evals/files/1/pawpass-notes.md +54 -0
  175. package/packs/product-manager/skills/lean-canvas/evals/files/3/lunchloop-pitch.md +30 -0
  176. package/packs/product-manager/skills/lean-canvas/evals/files/4/clubkit-notes.md +44 -0
  177. package/packs/product-manager/skills/lean-canvas/evals/files/5/cost-model.csv +5 -0
  178. package/packs/product-manager/skills/lean-canvas/evals/files/5/proposal.md +40 -0
  179. package/packs/product-manager/skills/lean-canvas/evals/files/5/stakeholder-emails.txt +18 -0
  180. package/packs/product-manager/skills/lean-canvas/examples/bike-repair.md +72 -0
  181. package/packs/product-manager/skills/lean-canvas/manifest.json +34 -0
  182. package/packs/product-manager/skills/lean-canvas/reference.md +102 -0
  183. package/packs/product-manager/skills/lean-canvas/scripts/unit_economics.py +211 -0
  184. package/packs/solution-architect/skills/api-contract-draft/SKILL.md +2 -2
  185. package/packs/solution-architect/skills/api-contract-draft/manifest.json +28 -6
  186. package/packs/solution-architect/skills/event-contract-draft/SKILL.md +167 -0
  187. package/packs/solution-architect/skills/event-contract-draft/evals/eval_queries.json +38 -0
  188. package/packs/solution-architect/skills/event-contract-draft/evals/evals.json +76 -0
  189. package/packs/solution-architect/skills/event-contract-draft/evals/files/1/order-events-brief.md +45 -0
  190. package/packs/solution-architect/skills/event-contract-draft/evals/files/4/NOTES.md +23 -0
  191. package/packs/solution-architect/skills/event-contract-draft/evals/files/4/schemas/shipment-update.json +40 -0
  192. package/packs/solution-architect/skills/event-contract-draft/evals/files/5/invoice.example.json +25 -0
  193. package/packs/solution-architect/skills/event-contract-draft/examples/order-service.asyncapi.json +246 -0
  194. package/packs/solution-architect/skills/event-contract-draft/examples/order-service.md +92 -0
  195. package/packs/solution-architect/skills/event-contract-draft/manifest.json +25 -0
  196. package/packs/solution-architect/skills/event-contract-draft/reference.md +113 -0
  197. package/packs/solution-architect/skills/event-contract-draft/scripts/check_asyncapi.py +502 -0
  198. package/packs/solution-architect/skills/event-contract-draft/templates/asyncapi-skeleton.json +144 -0
  199. package/packs/sre-oncall/skills/slo-spec/SKILL.md +161 -0
  200. package/packs/sre-oncall/skills/slo-spec/evals/eval_queries.json +38 -0
  201. package/packs/sre-oncall/skills/slo-spec/evals/evals.json +75 -0
  202. package/packs/sre-oncall/skills/slo-spec/evals/files/1/order-service.md +51 -0
  203. package/packs/sre-oncall/skills/slo-spec/evals/files/3/search-slo-status.md +30 -0
  204. package/packs/sre-oncall/skills/slo-spec/evals/files/4/alerts/payments-api.rules.yaml +16 -0
  205. package/packs/sre-oncall/skills/slo-spec/evals/files/4/docs/dependencies.md +8 -0
  206. package/packs/sre-oncall/skills/slo-spec/evals/files/4/metrics/summary-90d.md +51 -0
  207. package/packs/sre-oncall/skills/slo-spec/evals/files/5/ops-notes.md +34 -0
  208. package/packs/sre-oncall/skills/slo-spec/examples/ticket-booking.md +88 -0
  209. package/packs/sre-oncall/skills/slo-spec/manifest.json +34 -0
  210. package/packs/sre-oncall/skills/slo-spec/reference.md +113 -0
  211. package/packs/sre-oncall/skills/slo-spec/scripts/slo_math.py +449 -0
  212. package/packs/sre-oncall/skills/slo-spec/templates/slo-spec.md +35 -0
@@ -0,0 +1,205 @@
1
+ # agent-config-review — reference
2
+
3
+ ## Where each tool keeps its configuration
4
+
5
+ | Tool | File | Scope | Holds |
6
+ |---|---|---|---|
7
+ | Claude Code | managed-settings.json in the system folder (macOS `/Library/Application Support/ClaudeCode/`, Linux and WSL `/etc/claude-code/`), or pushed by an admin | managed | anything below; outranks every other scope |
8
+ | Claude Code | `~/.claude/settings.json` | user | every project on the machine |
9
+ | Claude Code | `.claude/settings.json` | project | committed, shared with everyone who clones |
10
+ | Claude Code | `.claude/settings.local.json` | local | per-person; should be git-ignored |
11
+ | Claude Code | `.mcp.json` | project | MCP servers, committed |
12
+ | Claude Code | `~/.claude.json` | user and local | MCP servers added with `claude mcp add` (local scope sits under `projects.<path>.mcpServers`) |
13
+ | Claude Code | `.claude/agents/*.md`, `~/.claude/agents/*.md` | project, user | subagents: `tools:`, `permissionMode:`, `model:` |
14
+ | Claude Code | enabled plugins | any | can add hooks, MCP servers, subagents and commands not visible in the files above |
15
+ | Codex | `~/.codex/config.toml`, and a project `.codex/config.toml` if present | user, project | `approval_policy`, `sandbox_mode`, `[sandbox_workspace_write]`, `[shell_environment_policy]`, `[profiles.*]`, `[mcp_servers.*]` |
16
+ | Cursor | `.cursor/mcp.json`, `~/.cursor/mcp.json` | project, user | MCP servers |
17
+ | Cursor | `.cursor/rules/*.mdc`, `.cursorrules` | project | instructions the agent follows on every request |
18
+ | Cursor | `.cursor/cli.json`, `~/.cursor/cli-config.json` | project, user | CLI agent permissions (`Shell(...)`, `Read(...)`, `Write(...)` allow and deny) |
19
+ | Cursor | app settings (auto-run, command allowlist) | user | not in the repo; ask for a screenshot or treat as unknown |
20
+ | VS Code / Copilot | `.vscode/settings.json`, user settings | project, user | `chat.tools.autoApprove` / `chat.tools.global.autoApprove`, `chat.tools.terminal.autoApprove` |
21
+ | VS Code / Copilot | `.vscode/mcp.json` | project | MCP servers under `servers`, secrets via `inputs` |
22
+ | Any | `package.json`, `Makefile`, shell scripts, CI workflows, devcontainer | project | launch flags: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, Codex `--dangerously-bypass-approvals-and-sandbox` / `--yolo`, `--full-auto` |
23
+
24
+ ## How the scopes combine
25
+
26
+ **Claude Code.** Precedence for a single value, high to low: managed > command-line flags >
27
+ local > project > user. Lists (`permissions.allow`, `ask`, `deny`, `additionalDirectories`,
28
+ sandbox domain lists) are combined across scopes, not replaced. Rules are evaluated deny first,
29
+ then ask, then allow, so a deny in any scope beats an allow in any scope. Hooks from every scope
30
+ run. Managed policy can narrow all of this: `allowManagedPermissionRulesOnly` (only managed
31
+ rules count), `allowManagedHooksOnly` (only managed hooks run), and
32
+ `permissions.disableBypassPermissionsMode: "disable"` (bypass mode can't be turned on).
33
+ Project settings take effect once the user trusts the folder.
34
+
35
+ **Codex.** Command-line flags (`-c key=value`, `--sandbox`, `--ask-for-approval`) > the profile
36
+ named by `--profile` or the top-level `profile` key > top-level keys. A profile that sets
37
+ `sandbox_mode` replaces the top-level value for every session launched with it.
38
+
39
+ **Cursor and VS Code.** User settings apply everywhere; workspace settings override them for the
40
+ folder. An MCP server defined in both a project and a user file runs from whichever the tool
41
+ loads for that name; list both.
42
+
43
+ ## What a wildcard allow entry really permits
44
+
45
+ `Bash(x:*)`, `Bash(x *)` and `Bash(x*)` all mean "any command starting with `x`, any arguments".
46
+
47
+ | Entry | What it lets run without asking |
48
+ |---|---|
49
+ | `Bash`, `Bash(*)` | any shell command |
50
+ | `Bash(python3:*)`, `node`, `ruby`, `perl`, `php`, `deno`, `bun` | any code (`-c`, `-e`) |
51
+ | `Bash(bash:*)`, `sh`, `zsh`, `pwsh` | any shell |
52
+ | `Bash(npm:*)`, `pnpm`, `yarn` | any `package.json` script; `npm exec` / `dlx` download and run any package |
53
+ | `Bash(npx:*)`, `bunx`, `uvx`, `pipx` | download and run any package |
54
+ | `Bash(pip:*)`, `uv` | package installs whose setup code runs; `uv run` runs anything |
55
+ | `Bash(make:*)`, `just`, `cargo`, `go` | whatever the build file says; `go run`, `cargo run`, build scripts |
56
+ | `Bash(docker:*)`, `docker compose`, `podman` | containers that mount the host disk (`-v /:/host`) or run privileged |
57
+ | `Bash(kubectl:*)` | anything the kubeconfig's cluster role allows |
58
+ | `Bash(git:*)` | `git -c core.sshCommand=…`, aliases and repo hooks run commands; `git push` sends code to any remote |
59
+ | `Bash(gh:*)` | `gh api` calls anything the token allows, deletes included |
60
+ | `Bash(curl:*)`, `wget` | uploads any file to any host; downloads code |
61
+ | `Bash(ssh:*)`, `scp`, `rsync` | commands on other machines; copies data off this one |
62
+ | `Bash(find:*)`, `xargs`, `env`, `sudo`, `timeout`, `nohup`, `watch` | whatever command follows (`find -exec`, `xargs sh`) |
63
+ | `Bash(awk:*)`, `sed` | commands via `system()` or GNU sed's `e` |
64
+ | `Edit`, `Write` with no path | any file, the agent's own settings, hooks and CI files included |
65
+ | `WebFetch` with no domain | any URL; the query string carries data out |
66
+ | `mcp__server` or `mcp__server__*` | every tool on that server, writes included |
67
+
68
+ Exact entries are safe to allow: `Bash(npm run test)`, `Bash(npm run lint)`, `Bash(git status)`,
69
+ `Bash(git diff:*)`, `Bash(git log:*)`, `WebFetch(domain:docs.example.com)`,
70
+ `mcp__github__get_pull_request`. Use only command and script names the input shows.
71
+
72
+ ## Settings that run shell without asking
73
+
74
+ - `hooks` — every event: `SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `Notification`, `Stop`, `SubagentStop`, `PreCompact`, `SessionEnd`. A hook gets the tool input on stdin and runs with the user's full access, outside the sandbox.
75
+ - `statusLine` (`type: command`) — runs repeatedly while the session is open.
76
+ - `apiKeyHelper`, `awsAuthRefresh`, `awsCredentialExport`, `otelHeadersHelper` — run to fetch credentials.
77
+ - MCP servers with a `command` — start when the session does, outside the sandbox.
78
+ - Codex `[mcp_servers.*]` and Cursor `.cursor/mcp.json` servers — same.
79
+
80
+ Downloaded-and-run is the critical shape: a fetch (`curl`, `wget`, `Invoke-WebRequest`, a URL)
81
+ piped into an interpreter, or saved and then executed. Whoever can change the remote file runs
82
+ code on every machine, every session.
83
+
84
+ ## Sandbox keys (Claude Code)
85
+
86
+ | Key | Strict value | Wrong value means |
87
+ |---|---|---|
88
+ | `sandbox.enabled` | `true` | shell commands run with the user's full access |
89
+ | `sandbox.allowUnsandboxedCommands` | `false` | a command that fails in the sandbox retries outside it |
90
+ | `sandbox.excludedCommands` | `[]` | those commands always run outside |
91
+ | `sandbox.network.allowedDomains` | the hosts the work needs | wildcards and open-publish hosts (`*.githubusercontent.com`, gist and paste sites, tunnels) are a payload source and a drop box |
92
+ | `sandbox.autoAllowBashIfSandboxed` | either, if strict | when on, sandboxed commands run without a prompt, so the sandbox is the only control |
93
+ | `sandbox.failIfUnavailable` | `true` where policy requires it | the session starts unsandboxed when the OS sandbox is missing |
94
+
95
+ Codex equivalents: `sandbox_mode = "workspace-write"` (not `danger-full-access`),
96
+ `[sandbox_workspace_write] network_access = false`, `approval_policy = "on-request"` or
97
+ `"untrusted"` (not `"never"` outside a disposable container).
98
+
99
+ ## Replacement snippets
100
+
101
+ **Claude Code project settings, tightened** — exact commands, deny kept, strict sandbox:
102
+
103
+ ```json
104
+ {
105
+ "permissions": {
106
+ "allow": ["Bash(npm run test)", "Bash(npm run lint)", "Bash(git status)", "Bash(git diff:*)"],
107
+ "deny": ["Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)", "WebFetch"]
108
+ },
109
+ "sandbox": {
110
+ "enabled": true,
111
+ "allowUnsandboxedCommands": false,
112
+ "network": { "allowedDomains": ["registry.npmjs.org"] }
113
+ },
114
+ "enableAllProjectMcpServers": false
115
+ }
116
+ ```
117
+
118
+ **A hook that ran a downloaded script** — commit the script, review it, run the local copy:
119
+
120
+ ```json
121
+ "hooks": {
122
+ "SessionStart": [
123
+ { "hooks": [ { "type": "command", "command": "bash ./tools/agent-bootstrap.sh" } ] }
124
+ ]
125
+ }
126
+ ```
127
+
128
+ **`.mcp.json` with no secret and a pinned package:**
129
+
130
+ ```json
131
+ {
132
+ "mcpServers": {
133
+ "github": {
134
+ "command": "npx",
135
+ "args": ["-y", "<package>@<exact-reviewed-version>"],
136
+ "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}" }
137
+ }
138
+ }
139
+ }
140
+ ```
141
+
142
+ **A subagent with only what its job needs:**
143
+
144
+ ```markdown
145
+ ---
146
+ name: db-migrator
147
+ description: Writes database migrations. Use when a change needs a schema migration.
148
+ tools: Read, Grep, Glob, Edit, Bash
149
+ ---
150
+ ```
151
+
152
+ `Bash` in a subagent's list is still held by the session's permission rules and sandbox, so
153
+ the allow list decides which commands it runs without asking. Leave `Bash` out of a subagent
154
+ that only reads.
155
+
156
+ **Codex profile that keeps a person and the sandbox:**
157
+
158
+ ```toml
159
+ [profiles.fast]
160
+ approval_policy = "on-request"
161
+ sandbox_mode = "workspace-write"
162
+
163
+ [shell_environment_policy]
164
+ inherit = "core"
165
+ ```
166
+
167
+ **VS Code** — turn off global auto-approve and approve terminal commands exactly:
168
+
169
+ ```json
170
+ {
171
+ "chat.tools.autoApprove": false,
172
+ "chat.tools.global.autoApprove": false,
173
+ "chat.tools.terminal.autoApprove": { "npm run test": true, "npm run lint": true }
174
+ }
175
+ ```
176
+
177
+ **Managed policy lines** an organisation can set so no project can loosen them:
178
+
179
+ ```json
180
+ {
181
+ "permissions": { "disableBypassPermissionsMode": "disable" },
182
+ "allowManagedHooksOnly": true
183
+ }
184
+ ```
185
+
186
+ **Keep personal files out of git:**
187
+
188
+ ```gitignore
189
+ .claude/settings.local.json
190
+ .env
191
+ .env.*
192
+ ```
193
+
194
+ If the file is already tracked, an ignore line does nothing until it is untracked:
195
+
196
+ ```bash
197
+ git rm --cached .claude/settings.local.json
198
+ ```
199
+
200
+ ## A secret in a committed file
201
+
202
+ 1. Rotate it at the issuer (revoke the old value, issue a new one with the narrowest scope the work needs).
203
+ 2. Replace the literal with a reference: `${VAR}` in Claude Code `.mcp.json` and settings `env`, `${env:VAR}` in Cursor, an `inputs` prompt in `.vscode/mcp.json`, the shell environment the server inherits in Codex.
204
+ 3. Treat the history as exposed: removing the line or rewriting history does not un-leak a value that was pushed or cloned.
205
+ 4. What can't be told from the files: whether it was pushed, whether the repo is public, what scopes the token has. Each goes under "To confirm".