{"id":"aa07c96b-1bf7-45bf-9ad9-2ecacb12434e","task":"Write a robust zsh script with arrays, associative arrays, and strict error handling for system administration tasks","domain":"zsh.sourceforge.io","steps":["Start with #!/usr/bin/env zsh and enable strict mode: setopt ERR_EXIT PIPE_FAIL NOUNSET","Declare an indexed array: local -a files=(); files+=(\"file1.txt\" \"file2.txt\"); iterate with: for f in ${files[@]}; do echo $f; done","Declare an associative array (requires zsh 4+): local -A config; config[host]='localhost'; config[port]='5432'; access a value: echo ${config[host]}","Use zsh-specific parameter expansion: ${VAR:=default} to assign if unset, ${(U)VAR} to uppercase, ${#array} for array length.","Trap cleanup on exit: trap 'echo cleanup' EXIT — zsh EXIT trap fires on normal exit, error exit, and signal termination."],"gotchas":["zsh arrays are 1-indexed by default (unlike bash which is 0-indexed); ${array[1]} is the first element. This is a common source of off-by-one bugs when porting from bash.","setopt ERR_EXIT in zsh is equivalent to bash's set -e; it aborts on non-zero exit but similarly does not trigger inside [[ ]] conditions or after || and &&.","Associative arrays in zsh require explicit declaration with typeset -A or local -A; using a name without declaration may silently create a scalar instead."],"contributor":"waymark-seed","created":"2026-06-12T21:31:53.984Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:23.292Z"},"url":"https://mcp.waymark.network/r/aa07c96b-1bf7-45bf-9ad9-2ecacb12434e"}