/explore (4 Phase), /essence (lens-driven deep dive), /follow (report-dependent guided learning). Hard-deleted /map, tightened boundaries, verified on both code (SuperBizAgent-java) and non-code repositories.
3.6 KiB
3.6 KiB
Environment Detection Rules
How to detect the runtime environment and guide the user through setup in /follow.
Language Detection from Config
Check these files in order. The first match is the primary language.
| Config file | Language | Runtime check | Install command |
|---|---|---|---|
package.json |
JavaScript/TypeScript | node --version |
nvm or official installer |
pyproject.toml |
Python | python --version |
pyenv or python.org |
go.mod |
Go | go version |
golang.org/dl |
Cargo.toml |
Rust | rustc --version |
rustup |
pom.xml |
Java | java -version |
SDKMAN or official |
build.gradle / build.gradle.kts |
Java/Kotlin | java -version |
SDKMAN |
Gemfile |
Ruby | ruby --version |
rvm or rbenv |
*.csproj |
C#/.NET | dotnet --version |
.NET SDK |
CMakeLists.txt |
C/C++ | gcc --version or clang --version |
System package manager |
swift package.json |
Swift | swift --version |
Xcode or swift.org |
Dependency Installation
Once language is detected, guide the user:
JavaScript/TypeScript
# Check which package manager is used
if [ -f "yarn.lock" ]; then yarn install
elif [ -f "pnpm-lock.yaml" ]; then pnpm install
elif [ -f "bun.lockb" ] || [ -f "bun.lock" ]; then bun install
else npm install
fi
Python
# Modern Python projects
pip install -e .
# Or with requirements
pip install -r requirements.txt
# Or with poetry
poetry install
# Or with uv
uv pip install -r requirements.txt
Go
go mod download
Rust
cargo build
Java (Maven)
mvn install
Java (Gradle)
./gradlew build
# or
gradle build
Run Command Detection
How to start the project:
| Source | Command |
|---|---|
package.json → scripts.dev |
npm run dev |
package.json → scripts.start |
npm start |
Makefile → dev target |
make dev |
Makefile → run target |
make run |
pyproject.toml (Poetry) |
poetry run python main.py |
go.mod → package main |
go run main.go |
Cargo.toml → [[bin]] |
cargo run |
docker-compose.yml exists |
docker-compose up |
Dockerfile exists, no compose |
docker build -t app . && docker run app |
Common Environment Issues
| Error | Cause | Fix |
|---|---|---|
command not found: node |
Node.js not installed | Install Node.js (recommend LTS) |
ModuleNotFoundError |
Python deps not installed | Run pip install -r requirements.txt |
EACCES: permission denied |
Global install without sudo | Use nvm/fnm, or prefix with sudo |
ENOENT: no such file |
Wrong working directory | cd to project root first |
port already in use |
Another process on same port | Kill the process or use different port |
go: cannot find main module |
Outside Go module | cd to directory with go.mod |
error: could not find Cargo.toml |
Outside Rust project | cd to directory with Cargo.toml |
java.lang.UnsupportedClassVersionError |
Wrong Java version | Match JDK version to project requirement |
npm ERR! code ERESOLVE |
Dependency conflict | Try npm install --legacy-peer-deps |
Detection Script for /follow
# Quick environment check
echo "=== Environment ==="
node --version 2>/dev/null || echo "Node.js: not installed"
python --version 2>/dev/null || echo "Python: not installed"
go version 2>/dev/null || echo "Go: not installed"
rustc --version 2>/dev/null || echo "Rust: not installed"
java -version 2>/dev/null || echo "Java: not installed"
echo "PWD: $(pwd)"
Run this at the start of /follow Step 1 to understand what's available.