environment-discovery
The environment-discovery skill provides a structured four-step methodology for systematically examining unfamiliar workspaces before beginning development work. It guides users through inspecting file structures and contents, examining data formats, verifying available tools and libraries, and reviewing existing code, with emphasis on avoiding assumptions about file types, tool availability, and data sizes that could lead to errors.
git clone --depth 1 https://github.com/vstorm-co/pydantic-deepagents /tmp/environment-discovery && cp -r /tmp/environment-discovery/pydantic_deep/bundled_skills/environment-discovery ~/.claude/skills/environment-discoverySKILL.md
# Environment Discovery When dropped into an unfamiliar environment, ALWAYS explore before acting. ## Step 1: Understand the workspace ``` ls -la /app/ # or the working directory find . -type f | head -50 ``` - What files exist? What are their sizes? - Are there READMEs, Makefiles, config files? - What languages/frameworks are involved? ## Step 2: Inspect data files Before writing any code that reads data, understand the format: - `file <filename>` — detect file type (binary, text, encoding) - `head -20 <file>` — first lines of text files - `xxd <file> | head -20` — hex dump for binary files - `wc -l <file>` — line count for text files - `stat <file>` — exact file size in bytes - `python3 -c "import struct; ..."` — parse binary headers ## Step 3: Check available tools ``` which python3 gcc g++ make cmake node npm cargo rustc java go pip list 2>/dev/null | head -20 ``` - What compilers/interpreters are installed? - What libraries are available? - What package managers can you use? ## Step 4: Read existing code If there are existing source files: - Read them FULLY before modifying - Understand the build system (Makefile, CMakeLists.txt, pyproject.toml) - Check for existing tests ## Key Principles - NEVER assume file formats — always inspect first - NEVER assume tools are installed — always check - A 500MB file is NOT a "small file" — plan for it - Binary files need byte-level inspection, not `cat` - Spend 30 seconds exploring to save 5 minutes debugging
Building, compiling, and resolving dependency issues across languages
Systematic code review for bugs, security, style, and performance
Working with diverse data formats: binary, text, structured, and custom
Git operations: commits, branches, PRs, and conflict resolution
Writing efficient code that handles large data and tight constraints
Refactor code to improve structure and maintainability
Create new reusable skills from conversation context
Systematic approach to diagnosing and fixing errors