fix: add shell() utility, fix execFileSync misuse across 12 tools#275
Open
TerminalGravity wants to merge 8 commits intomainfrom
Open
fix: add shell() utility, fix execFileSync misuse across 12 tools#275TerminalGravity wants to merge 8 commits intomainfrom
TerminalGravity wants to merge 8 commits intomainfrom
Conversation
… 12 tools
run() uses execFileSync('git', args) which doesn't support shell operators
(pipes, &&, ||, redirects). Multiple tools were passing shell syntax to run()
which would silently fail or produce wrong results.
Added shell() utility using execSync for commands that need shell features.
Migrated all affected call sites in 12 tool files.
Added tests for shell() covering pipes, chaining, redirects, and timeouts.
Adds a ready-to-use CLAUDE.md template that makes Claude Code automatically run preflight_check on prompts. Users can copy it into their project to get preflight working without manual tool calls. Referenced from Quick Start in README and examples/README.
- CLI now responds to --help/-h with usage info, profiles, and links - CLI now responds to --version/-v with package version - Previously, any flag just launched the interactive wizard - Fixed README badge from Node 18+ to Node 20+ (matches engines field)
Adds well-commented example config.yml and triage.yml to examples/.preflight/ so users can copy them into their project root and customize. Every field is documented inline with descriptions of valid values and defaults.
Export scorePrompt function and add comprehensive tests covering: - All four scoring dimensions (specificity, scope, actionability, done condition) - Grade boundaries (A+ for perfect, F for vague) - Feedback generation - Total calculation
Cover estimateTokens, extractText, extractToolNames, formatTokens, formatCost, formatDuration, and CORRECTION_SIGNALS regex matching.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
run() in lib/git.ts uses execFileSync('git', args) — always prepends git, no shell operators support.
12 tool files called run() with shell syntax (pipes, &&, ||, redirects) which would silently fail.
Fix