[
{
"id": "parser-error-line-column-numbers",
"title": "Add line/column numbers to parser error messages",
"description": "Enhance parser error reporting to include line and column numbers for all syntax errors. Currently, parser errors only show generic messages without location information, making debugging difficult for scripts and long commands.",
"impact": "high",
"tags": [
"error",
"parser",
"debugging",
"user-experience"
],
"use_case": "When a shell script fails due to syntax errors, users need to know exactly where the error occurred to fix it quickly.",
"example_scenario": "Shell script: 'for i in 1 2 3; do echo $i; done' (missing 'do') currently shows: 'syntax error' without line/column. Should show: 'line 1, column 20: syntax error'",
"estimated_token_reduction": "~200 tokens per debugging session",
"votes": 0
},
{
"id": "export-t-re-export-conflict-detector",
"title": "Detect (export #t) re-export conflicts before build",
"description": "A tool that statically detects import conflicts caused by modules using (export #t) that re-export symbols from their own imports. When module A imports :foo and :bar, and both transitively export the same symbol (e.g. string-prefix?), (export #t) in A causes a 'Bad binding; import conflict' at compile time. The tool would: (1) resolve all imports for a module, (2) compute the full set of transitively re-exported symbols for each import, (3) detect overlapping symbols, and (4) suggest (only-in ...) fixes. This is especially problematic with third-party packages that use (export #t) liberally.",
"impact": "medium",
"tags": [
"import",
"export",
"conflict",
"re-export",
"only-in",
"transitive",
"bad-binding"
],
"use_case": "When adding a new import to a module that already imports :std/srfi/13 or similar string-heavy modules. Third-party packages like :gsh/prompt use (export #t) and inadvertently re-export common symbols like string-prefix? that clash.",
"example_scenario": "Adding (import :gsh/prompt) to a module that already imports :std/srfi/13 causes 'Bad binding; import conflict' for string-prefix? because :gsh/prompt uses (export #t) and re-exports string-prefix? from its own imports. The build error gives the two conflicting sources but doesn't suggest a fix. The developer must manually figure out to use (only-in :gsh/prompt expand-prompt).",
"estimated_token_reduction": "~500-1000 tokens per incident — eliminates the build-fail-read-error-fix cycle and directly suggests the (only-in ...) fix",
"votes": 0
}
]