Always Use Absolute Paths for Workspace Files

lesson workflow active workflow/absolute-paths-for-workspace-files.md View on GitHub

Always Use Absolute Paths for Workspace Files

Rule

Always use absolute paths when saving/appending to workspace files. Never use relative paths or git rev-parse --show-toplevel — both break when the current directory is a different repository.

Context

When working across multiple repositories. If you cd into an external repo (e.g., a PR worktree), relative paths and git rev-parse --show-toplevel resolve to that repo, not your workspace.

Detection

Pattern

# ❌ Wrong: relative path, depends on cwd
echo "..." >> journal/2025-10-14/session.md  # silently writes to current repo!

# ❌ Wrong: git rev-parse resolves to *current* git root, not workspace
REPO_ROOT=$(git rev-parse --show-toplevel)
echo "..." >> "$REPO_ROOT/journal/..."  # silently writes to external repo — no error, data goes to wrong location

# ✅ Correct: hardcoded absolute path always works
echo "..." >> /home/agent/workspace/journal/2025-10-14/session.md

# ✅ Correct: use WORKSPACE env var set at session start
# Guard against unset: if WORKSPACE is empty, paths expand to /journal/... (wrong!)
: "${WORKSPACE:?WORKSPACE is not set — export it at session start: export WORKSPACE=/home/agent/workspace}"
echo "..." >> "$WORKSPACE/journal/2025-10-14/session.md"

For write/save tools, always provide the full absolute path:

# ❌ Wrong
save journal/2025-10-14/session.md

# ✅ Correct
save /home/agent/workspace/journal/2025-10-14/session.md

Outcome

Related

Match Keywords

save file to write journal entry mkdir -p journal file path wrong directory file ended up in wrong journal created in external repo