This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-steward.git


The following commit(s) were added to refs/heads/main by this push:
     new 6db60d3  docs(secure-agent-setup): document global ~/.claude/ install 
option for claude-iso (#14)
6db60d3 is described below

commit 6db60d30242861a9193194b161c3d142b38f05fc
Author: Jarek Potiuk <[email protected]>
AuthorDate: Wed Apr 29 20:46:39 2026 +0200

    docs(secure-agent-setup): document global ~/.claude/ install option for 
claude-iso (#14)
    
    Adopters can now choose between sourcing tools/agent-isolation/claude-iso.sh
    directly from the framework checkout (per-repo) or copying it into
    ~/.claude/agent-isolation/ and sourcing from there (global). The global
    option survives branch/worktree changes and travels with the rest of
    ~/.claude/ when dotfiles sync across machines, at the cost of a manual
    re-copy when the upstream wrapper changes.
    
    Generated-by: Claude Code (Claude Opus 4.7)
---
 secure-agent-setup.md | 45 +++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 41 insertions(+), 4 deletions(-)

diff --git a/secure-agent-setup.md b/secure-agent-setup.md
index 4a8ed00..abeb356 100644
--- a/secure-agent-setup.md
+++ b/secure-agent-setup.md
@@ -295,13 +295,45 @@ Layer 0 — strip credential-shaped env vars from the 
parent shell
 before invoking `claude` — is implemented by
 [`tools/agent-isolation/claude-iso.sh`](tools/agent-isolation/claude-iso.sh).
 
-Source it from your shell rc:
+There are two valid ways to make `claude-iso` available on your
+shell. Pick whichever matches how you use Claude Code; the wrapper
+behaviour is identical either way.
+
+**Per-repo install** — source the script directly from the
+framework checkout. Simplest, always tracks the wrapper version in
+the repo (so a `git pull` of the framework updates the wrapper),
+but only works on hosts where the framework path resolves.
 
 ```bash
 # ~/.bashrc or ~/.zshrc
 source /path/to/airflow-steward/tools/agent-isolation/claude-iso.sh
 ```
 
+**Global (user-scope) install** — copy the script into
+`~/.claude/agent-isolation/` and source from there. Survives
+branch / worktree / repo-path changes, travels with the rest of
+`~/.claude/` when you sync dotfiles between machines, and works
+regardless of whether the framework repo happens to be checked
+out on a given host.
+
+```bash
+# one-time install (re-run to pick up an upstream wrapper change)
+mkdir -p ~/.claude/agent-isolation
+cp /path/to/airflow-steward/tools/agent-isolation/claude-iso.sh \
+    ~/.claude/agent-isolation/claude-iso.sh
+
+# ~/.bashrc or ~/.zshrc — guarded so it's a no-op until the file exists
+[ -f "$HOME/.claude/agent-isolation/claude-iso.sh" ] \
+    && . "$HOME/.claude/agent-isolation/claude-iso.sh"
+```
+
+Trade-off: the global install decouples the wrapper from the
+repo's pinned copy. If a future framework release changes the
+wrapper (new passthrough vars, security fix), you need to
+re-`cp` it into `~/.claude/agent-isolation/` by hand. Diff the
+two paths periodically — or schedule it via `/schedule` — to
+surface drift.
+
 Then use `claude-iso` instead of `claude` whenever you start a
 session in the tracker repo:
 
@@ -346,9 +378,14 @@ the secure setup into your tracker's working tree:
    - The `permissions.ask` list — add any project-specific
      write-side commands you want to confirm explicitly (e.g. a
      custom release-publishing CLI).
-3. Source `tools/agent-isolation/claude-iso.sh` from your shell rc.
-   The path is 
`<your-tracker>/.apache-steward/apache-steward/tools/agent-isolation/claude-iso.sh`
-   when the framework is consumed via the standard submodule path.
+3. Make `claude-iso` available on your shell — either per-repo
+   (sourcing the script from the framework checkout) or globally
+   (copying the script to `~/.claude/agent-isolation/` and
+   sourcing from there). Both options are documented in
+   [The clean-env wrapper](#the-clean-env-wrapper). When the
+   framework is consumed via the standard submodule path, the
+   per-repo source path is
+   
`<your-tracker>/.apache-steward/apache-steward/tools/agent-isolation/claude-iso.sh`.
 4. Decide whether to gitignore `.claude/settings.local.json` in your
    tracker repo — Claude Code does this by default; verify with
    `git check-ignore .claude/settings.local.json`.

Reply via email to