# crush.md — project preferences for crush sessions in ~/optimize ## Locale (ruling 2026-08-31) - Human + this host are in TEXAS: America/Chicago (Central Time; UTC-5 CDT in summer). "1638 CST" in chat means Central local time. - 2026-08-31 is a MONDAY. "Friday" in these docs = 2026-09-04. - Docker/ISO timestamps print UTC (trailing Z) = local +5h; never mislabel weekday or TZ when narrating logs. ## Host + no-Python rules (ruling 2026-08-31, also in global AGENTS.md) - No Python from agents: text/JSON/CSV = bash/sed/awk/perl/cut/jq. NEVER python one-liners. python in dev containers is fine. - Host stays clean: common shell commands fine, curl + jq + ripgrep etc ALLOWED (old curl ban retired). NO installs on the host (apt-get/pip/etc). - Missing CLI tool? docker pull it, standing permission — run via `docker run --rm `. Work in containers. ## Output format (user preference, 2026-08-31) - The crush TUI sidebar truncates long chat output. NEVER hand the user a long command in chat. ALWAYS write runnable commands as a numbered script in this directory (next free number, e.g. 5-foo.sh) and tell them only the one-liner to execute it. Scripts that produce diagnostics must tee output to a .out file in this directory so the next turn can read it. - Scripts that need root must SELF-ELEVATE (re-exec via `exec sudo bash "$0"` when EUID != 0) so the user never types sudo. Run-from-guest ssh-root scripts need no elevation; say so in the script header. - Keep chat replies short-line-width; details live in files (NEXT.md, REPORT.md, questions-v*.md, script headers).