alibaba/open-code-review · error
--effort: %w
Error message
--effort: %w
What it means
validateReviewOptions in cmd/opencodereview/shared_flags.go wraps any error returned by template.ParseEffort with the --effort prefix. ParseEffort rejects effort levels that are not one of the recognized keywords, so this error means the --effort flag value could not be parsed into a valid effort setting.
Source
Thrown at cmd/opencodereview/shared_flags.go:158
if opts.maxTools < 0 {
return fmt.Errorf("--max-tools must be a non-negative integer (0 means use template default)")
}
if opts.maxTools > 0 && opts.maxTools < minMaxTools {
fmt.Fprintf(os.Stderr, "[ocr] --max-tools %d is below minimum %d, using %d\n", opts.maxTools, minMaxTools, minMaxTools)
opts.maxTools = minMaxTools
}
if opts.maxGitProcs < 0 {
return fmt.Errorf("--max-git-procs must be a non-negative integer (0 means use default 16)")
}
if opts.maxTokens < 0 {
return fmt.Errorf("--max-tokens must be a non-negative integer (0 means use configured or template default)")
}
if opts.maxTokensBudget < 0 {
return fmt.Errorf("--max-tokens-budget must be a non-negative integer (0 means unlimited)")
}
if opts.effort != "" {
if _, err := template.ParseEffort(opts.effort); err != nil {
return fmt.Errorf("--effort: %w", err)
}
}
return nil
}
func validateScanOptions(opts *scanOptions) error {
if err := validateAudience(opts.audience); err != nil {
return err
}
normalizedFormat, err := validateOutputFormat(opts.outputFormat)
if err != nil {
return err
}
opts.outputFormat = normalizedFormat
if opts.maxTools < 0 {
return fmt.Errorf("--max-tools must be a non-negative integer (0 means use template default)")
}
if opts.maxGitProcs < 0 {View on GitHub (pinned to 5cf97d0d15)
Solutions
- Use a valid effort keyword accepted by template.ParseEffort (e.g. low/medium/high as documented by the tool)
- Run with no --effort flag to use the template default
- Check the tool's help/docs for the current list of accepted effort values
Example fix
// before ocr review --effort maximum // after ocr review --effort high
Defensive patterns
Strategy: validation
Validate before calling
case "$EFFORT" in ""|low|medium|high) ;; *) echo "invalid effort: $EFFORT" >&2; exit 2;; esac ocr review --effort "$EFFORT"
Prevention
- Only pass --effort with values listed in the tool's documentation
- Quote flag values to avoid shell splitting producing garbage
- Pin CLI versions in scripts so accepted keyword sets don't drift
When it happens
Trigger: Running `ocr review --effort maximum` (or any string ParseEffort does not recognize). The check only runs when --effort is non-empty, so omitting the flag never triggers it.
Common situations: Typos in effort keywords; copying a flag value from a different tool that uses different effort names; documentation drift after the accepted keyword set changed between versions.
Related errors
- invalid --format value %q: must be 'text' or 'json'
- invalid --color value %q: must be one of auto, always, never
- --max-tokens-budget must be a non-negative integer (0 means
- "%q %s" (+ positional signature, valid values, usage line, e
- read background file %q: %w
AI-assisted analysis of alibaba/open-code-review@5cf97d0d15 (2026-09-02).
Data as JSON: /api/errors/bf968f331d1bf5ae.
Report an issue: GitHub.