OpenSpace file-locate-verify
Systematic workflow to resolve FileNotFoundError by locating and verifying file paths
install
source · Clone the upstream repo
git clone https://github.com/HKUDS/OpenSpace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/file-locate-verify" ~/.claude/skills/hkuds-openspace-file-locate-verify && rm -rf "$T"
manifest:
gdpval_bench/skills/file-locate-verify/SKILL.mdsource content
File Locate and Verify Workflow
When encountering FileNotFoundError or uncertain file paths, follow this systematic pattern to safely locate and verify files before executing operations.
When to Use
- You receive a FileNotFoundError or similar path-related error
- You need to work with files whose exact location is unknown
- You want to verify file existence before executing operations that depend on those files
Step-by-Step Procedure
Step 1: Check Current Directory Contents
First, use
list_dir to inspect what files exist in your current working directory:
# Use the list_dir tool to see current directory contents list_dir(path=".")
This reveals files in the immediate context and helps determine if you need to search elsewhere.
Step 2: Search for the File Using Find
If the file is not in the current directory, use the
find command to locate it by name:
# Search for a specific file by name (case-insensitive) find . -iname "filename.pdf" 2>/dev/null # Or search from root for system-wide files find / -name "filename.pdf" 2>/dev/null
Tips:
- Use
for case-insensitive matching-iname - Redirect stderr with
to suppress permission errors2>/dev/null - Narrow the search scope when possible for better performance
Step 3: Verify the Discovered Path
Before executing any operations on the discovered file, verify it exists and check its properties:
# Verify file existence and permissions at the full path ls -la /full/path/to/discovered/file.pdf
This confirms:
- The file actually exists at the located path
- File permissions (can you read/write it?)
- File size and modification time
Step 4: Execute Your Operation Safely
Only after verification, proceed with your intended operation:
# Now safe to work with the verified path file_path = "/full/path/to/discovered/file.pdf" # ... your extraction or processing code here
Complete Example
# Task: Process a file that may be in an unknown location # Step 1: Check current directory dir_contents = list_dir(path=".") print(f"Current directory contains: {dir_contents}") # Step 2: Find the file if not present if "target_file.xlsx" not in dir_contents: result = run_shell(command='find . -iname "target_file.xlsx" 2>/dev/null') file_path = result.stdout.strip().split('\n')[0] print(f"Found file at: {file_path}") # Step 3: Verify before proceeding verification = run_shell(command=f'ls -la {file_path}') print(f"Verification: {verification.stdout}") # Step 4: Proceed with operation # ... your code to process the file
Common Pitfalls to Avoid
- Skipping verification: Never assume the path from
is correct without checkingfind - Using relative paths blindly: Always convert to absolute paths when possible
- Ignoring permissions:
reveals if you have read/write accessls -la - Hardcoding paths: Always dynamically locate files when location is uncertain
Related Tools
: Inspect directory contentslist_dir
: Execute find and ls commandsrun_shell
: Read file contents after verificationread_file
: Delegate complex file operations after path is confirmedshell_agent