# Repository Guidelines ## Project Structure & Module Organization All scripts live at the repository root to be discoverable from the WSL `$PATH`. Wrapper utilities sit alongside their Windows counterparts: `win_edit`, `win_diff`, `vls_python`, and `win_svn_dialog`. Shared Subversion helpers reside in `svn_interact/`, with `svn_git_init` symlinked for convenience. Keep new scripts self-contained at the top level or grouped in a subdirectory with a symlinked entry point when reuse is required. ## Build, Test, and Development Commands These Bash wrappers ship without a build step; prefer quick local smoke checks instead. Use `bash -n ./script_name` for syntax validation and `shellcheck ./script_name` to surface style or portability issues. When touching `svn_interact` helpers, run them against a staging checkout (`/mnt/d/...`) to confirm argument flow before pushing. ## Coding Style & Naming Conventions Author scripts in POSIX-compatible Bash with `set -euo pipefail` unless there is a strong reason to omit it. Indent with two spaces, avoid tabs, and keep functions lowercase with underscores (e.g., `resolve_path`). Environment variables should be uppercase and declared near their first use. Prefer explicit paths over relying on implicit Windows drive mappings; document any required Windows-side tools at the top of the script. ## Testing Guidelines There is no automated test harness today, so rely on targeted manual runs. Capture typical usage as commented examples within the script header. When editing command wrappers, verify both success and failure branches, and confirm exit codes propagate correctly so CI jobs can depend on them later. ## Commit & Pull Request Guidelines Write commits in the imperative mood (`Add`, `Fix`, `Refactor`). Bundle related changes together and include a short context line when behaviour changes (e.g., "Handle missing python.exe path"). For pull requests, link relevant issue IDs, describe expected usage changes, and paste sample command output or screenshots when altering user-facing shell prompts. ## Security & Configuration Tips Many scripts call Windows executables via `/mnt/*`. Double-check those paths before merging, and keep credentials out of tracked files by relying on environment variables or Windows Credential Manager. If a script requires elevated privileges, call that out in the header comments and provide a guarded flag (e.g., `--force`).