OpenSpace working-directory-resolution
Resolve file access failures by changing to the correct working directory before command execution
git clone https://github.com/HKUDS/OpenSpace
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/working-directory-resolution" ~/.claude/skills/hkuds-openspace-working-directory-resolution && rm -rf "$T"
gdpval_bench/skills/working-directory-resolution/SKILL.mdWorking Directory Resolution Pattern
Many file operation failures occur because the tool's current working directory doesn't match where the target files are located. This skill provides a reliable pattern for resolving such issues.
Problem Symptoms
File operations fail with errors like:
- "File not found" or "No such file or directory"
- "Permission denied" (when path is actually relative)
- Tools returning empty results for files that should exist
These failures often occur even when files are present in the workspace—the working directory context is simply wrong.
Solution
Always explicitly set the working directory before file operations by prepending
cd to your shell commands.
Implementation Pattern
Basic Syntax
cd /path/to/target/directory && your-command-here
With run_shell
run_shellrun_shell(command="cd /workspace/project && cat config.json")
Multiple Operations in Same Directory
cd /workspace/project && ls -la && cat README.md && python script.py
Conditional Directory Change
cd /workspace/project 2>/dev/null && cat file.txt || echo "Directory not found"
When to Apply
Use this pattern when:
fails to locate an existing fileread_file
can't find referenced filesexecute_code_sandbox- Shell commands report missing files that should exist
- File paths work in some contexts but not others
- You're unsure of the tool's current working directory
Best Practices
-
Use absolute paths when possible
cd /workspace/project/src && python main.py -
Combine related operations to avoid repeated
callscdcd /workspace/project && ./build.sh && ./test.sh -
Verify directory exists before operations
[ -d /workspace/project ] && cd /workspace/project && ls -
For scripts, set working directory at the start
#!/bin/bash cd "$(dirname "$0")" || exit 1 # Rest of script runs from script's directory
Common Pitfalls
| Issue | Wrong Approach | Correct Approach |
|---|---|---|
| Relative paths | | |
| Assumed cwd | | |
| Multiple dirs | | |
Fallback Strategy
If
cd also fails:
- Use
to check current directorypwd - Use
orfind
to locate filesls -R - Verify the path structure with
ls -la /path/to/check
pwd && find /workspace -name "target_file.txt" 2>/dev/null
This pattern is especially valuable when tools like
execute_code_sandbox or read_file fail but run_shell with explicit directory context succeeds.