docs: add ADR-014 for built-in tools and workspace sandboxing#10
docs: add ADR-014 for built-in tools and workspace sandboxing#10lorenzh wants to merge 4 commits into
Conversation
Defines the six built-in agent tools (read, write, edit, grep, glob, bash), workspace sandboxing model, and the separation between workspace and plugin scoped directories. https://claude.ai/code/session_017256wCsH6FHNJntAb8Pebr
All plugin scoped directories now live under $LOOM_HOME/agents/{name}/plugins/
instead of as top-level siblings. Cleaner layout, single parent for all plugin
state.
https://claude.ai/code/session_017256wCsH6FHNJntAb8Pebr
Plugins can be configured with workspace_access: true to receive the agent's workspace path alongside their scoped directory. Safe default remains scoped directory only. https://claude.ai/code/session_017256wCsH6FHNJntAb8Pebr
Built-in tools (except bash) are enabled by default but can be disabled per-agent via loom.yml or CLI flags. Bash remains opt-in. Disabled tools are excluded from the LLM schema entirely. https://claude.ai/code/session_017256wCsH6FHNJntAb8Pebr
|
Code review: 4 issues found in ADR-007. Issue 1 (lines 223-225): The statement 'Built-in tools cannot access inbox/outbox/logs' is incorrect - bash is one of the six built-in tools and escapes the sandbox. Issue 2 (line 326): 'Neither can see the other' is unqualified but workspace_access:true opt-in exists. Issue 3 (lines 183-189): Symlink sandbox escape not addressed in path validation spec. Issue 4 (line 248): Plugin scoping presented as security guarantee but is trust-based convention only. |
Code review4 issues found in ADR-007. Issue 1 - Misleading blanket statement (lines 223-225) Issue 2 - Absolute claim contradicts opt-in mechanism (line 326) Issue 3 - Symlink sandbox escape not addressed (lines 183-189) Issue 4 - Plugin scoping is a convention, not enforced (line 248) |
|
Code review comment - see two issues in the following link |
Code reviewTwo issues found. Issue 1: Directory tree missing memory and crashes directories - see lines 210-228 of ADR-007-built-in-tools-and-workspace.md. The CLAUDE.md file documents these as canonical subdirectories but the diagram omits them. Issue 2: Undefined plugin-to-internals access grant mechanism - see lines 222-232 of ADR-007-built-in-tools-and-workspace.md. The document mentions plugins can have explicit access grants to agent internals, but only workspace_access mechanism is defined. |
Research: External validation of the filesystem-as-runtime approachWhile reviewing recent writing on agent architecture, came across a relevant post: How to build agents with filesystems and bash (Vercel, 2026-04-01). Key findings relevant to ADR-007Filesystem sandboxing is the critical safety primitive. The article identifies sandboxed execution as a first-class concern — isolating agent file access from production systems is what makes filesystem-native agents safe to run. ADR-007's workspace sandboxing model directly addresses this. The Grep/glob as first-class tools. The article argues that LLMs naturally excel at filesystem navigation because they've been trained on code. This supports the six built-in tools (read, write, edit, grep, glob, bash) being the right primitive set — not too many, not too few. One open question this surfaces: the article mentions that sandboxed bash execution is important but doesn't specify how to enforce it. ADR-007 should be explicit about the enforcement mechanism — is it chroot, a Linux namespace, or a path-prefix allow-list? This is likely worth a sentence in the Decision section. |
|
There's a numbering conflict here — ADR-007 is already taken by docs/adrs/ADR-007-garbage-collection.md (accepted 2026-04-03). The next available number is ADR-014. This file should be renamed to docs/adrs/ADR-014-built-in-tools-and-workspace.md before merging. |
1 similar comment
|
There's a numbering conflict here — ADR-007 is already taken by docs/adrs/ADR-007-garbage-collection.md (accepted 2026-04-03). The next available number is ADR-014. This file should be renamed to docs/adrs/ADR-014-built-in-tools-and-workspace.md before merging. |
Defines the six built-in agent tools (read, write, edit, grep, glob, bash),
workspace sandboxing model, and the separation between workspace and plugin
scoped directories.
https://claude.ai/code/session_017256wCsH6FHNJntAb8Pebr