# bashrs ignore configuration for aprender
# See: https://github.com/paiml/bashrs
# Ignore rules with documented justifications:
# DET002: Non-deterministic timestamp usage
# Justification: Timestamps are intentionally used for unique baseline filenames
# in benchmark scripts. This is expected behavior, not a bug.
DET002
# SEC010: Path traversal risk in mkdir
# Justification: Paths in our scripts are hardcoded constants, not user input.
# Path traversal is not a risk when the path is a literal string.
SEC010
# SC2032: Variable assigned in script with shebang
# Justification: These are standalone scripts, not meant to be sourced.
# Variables are intentionally local to the script.
SC2032
# SC2117/SC2317: Unreachable code warnings
# Justification: These are false positives in case statements where
# exit/return is followed by ;; and esac - bashrs incorrectly flags
# the closing syntax as unreachable.
SC2117
SC2317
# MAKE010: Command missing error handling
# Justification: Some commands intentionally use || echo for graceful
# fallback messages (e.g., pmat not found). Fixed where appropriate.
# Remaining instances are intentional fallbacks.
MAKE010
# MAKE012: Recursive make invocation
# Justification: Recursive make is used for sub-targets like chaos-test-lite.
# While "Recursive Make Considered Harmful" is valid for large projects,
# our use case is simple delegation to a fallback target.
MAKE012
# SC2006/SC2046/SC2092/SC2099: Backtick-related warnings
# Justification: These are false positives in heredocs with quoted delimiters
# (<< 'EOF'). Backticks inside such heredocs are literal markdown code blocks,
# not command substitutions. bashrs incorrectly parses heredoc content.
SC2006
SC2046
SC2092
SC2099
# SC2140: Word is split between quotes
# Justification: False positive for valid quote nesting like:
# echo '{"json":"content"}' > "$VAR/file.json"
# The single-quoted JSON and double-quoted path are correctly quoted.
SC2140
# SC2035: Use ./* so names with dashes won't become options
# Justification: False positive when patterns are quoted arguments to find -name.
# In `find -name '*.json'`, the pattern is passed to find, not the shell.
SC2035
# SC2062: Quote the grep pattern
# Justification: False positive when regex patterns are already single-quoted.
# In `grep -qE '^[0-9]+\.[0-9]+$'`, the pattern is already quoted.
SC2062