Skip to content

fix(just): crg-grade and crg-badge never ran ($$ is Make, not just) - #235

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/exciting-noether-dzrfrr
Oct 14, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
claude/exciting-noether-dzrfrr

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

just crg-grade and just crg-badge have never worked. Both recipes use Make's $$ escape, which just does not have. As a result, sh received grade=<pid>(grep …) and stopped with Syntax error: "(" unexpected before it ever read READINESS.md.

The CRG spec in hyperpolymath/standards names this template's Justfile as the source of these recipes, so it is fixed here at the source. The same fix landed in hyperpolymath/standards#1235.

Changes

  • Justfile: the seven $$ in crg-grade and crg-badge become $.
  • .machine_readable/contractiles/Justfile: the same change. This file is a byte-identical copy of the root Justfile, and the two stay identical after the fix.

RSR Quality Checklist

Required

  • Tests pass: the changed recipes were run directly (see Testing). The full just test was not run here, because this Justfile uses just modules, which the sandbox's just 1.21 cannot parse.
  • Code is formatted (no formatting change)
  • Linter is clean (no new warnings or errors)
  • No banned language patterns
  • No unsafe blocks without // SAFETY: comments (none touched)
  • No banned functions
  • SPDX license headers present on all new/modified source files (unchanged)
  • No secrets, credentials, or .env files included

As Applicable

Nothing applies: no project state, integration, architecture or dependency changes.

Testing

Both recipes were extracted from the Justfile and run with just 1.21:

  • Old recipes: fail with sh: 1: Syntax error: "(" unexpected.
  • New recipes:
    • without READINESS.md, they print X and the grey CRG X badge;
    • with a **Current Grade:** D line, they print D and the orange CRG D badge.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GqfpQtLuMczxtgG1U9PkLW


Generated by Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Fixed grade and badge generation so the readiness grade is correctly read from READINESS.md, with X used when no matching grade is found.
    • Badge colors continue to reflect the grade, and the generated badge link is printed as expected.

Both recipes used Make's `$$` escape. just has no such escape, so sh
received `grade=<pid>(grep ...)` and failed with `Syntax error: "("
unexpected` before reading READINESS.md. The seven `$$` in each recipe
are now `$`, in the root Justfile and in its byte-identical copy at
.machine_readable/contractiles/Justfile (still identical).

Checked with just 1.21 on the recipes extracted from the Justfile:
the old recipes fail with the syntax error; the new ones print X and the
grey X badge without READINESS.md, and D and the orange D badge with a
`**Current Grade:** D` line.

The same fix landed in hyperpolymath/standards in #1235; the CRG spec
names this template's Justfile as the recipes' source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GqfpQtLuMczxtgG1U9PkLW
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: hyperpolymath/rsr-template-repo/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 02f177a4-d320-4d44-a1bb-a7ea0bb4da2e
📥 Commits

Reviewing files that changed from the base of the PR and between 64787ae and f9a70c0.

📒 Files selected for processing: 2
  • .machine_readable/contractiles/Justfile
  • Justfile

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The crg-grade and crg-badge recipes in both Justfiles now use single-dollar shell-variable references. Grade extraction, the X fallback, and badge generation remain unchanged.

Changes: Grade and badge recipes

Layer / File(s) Summary
Grade and badge variable expansion
.machine_readable/contractiles/Justfile, Justfile
Both recipes use single-dollar shell-variable expansion for grade and color. Grade lookup and fallback behavior remain unchanged.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix

Suggested reviewers: {{owner}}

Merge Risk: ⚪ Minimal · up to f9a70

This localized expansion fix is ready to merge; the available evidence identifies no remaining actionable risk in grade lookup or badge output.

### Architecture Summary

Architecture risk: 🔵 Low · up to f9a70

The change affects 1 system.

Changed systems: Justfile

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — Justfile (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in Justfile: crg-grade now references grade with single-dollar shell expansion; its extraction, X fallback, and output remain unchanged.
  • observed — Modified behavior in Justfile: crg-badge now uses single-dollar expansion for the extracted grade, the X fallback, and the case expression input.
  • observed — Modified behavior in Justfile: The badge URL now interpolates grade and color with single-dollar shell expansion instead of doubled-dollar expansion.
  • observed — Modified behavior in .machine_readable/contractiles/Justfile: crg-grade now references grade directly in the shell instead of using doubled dollar signs; its grade lookup, first-match selection, and X fallback are unchanged.
Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the fix to the crg-grade and crg-badge recipes and explains the $$ syntax issue.
Description check Passed The description includes the required Summary, Changes, checklist, and Testing sections. It explains the failure, identifies both modified files, records validation results, and addresses the checklis…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches: 💡 1
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath marked this pull request as ready for review October 14, 2026 01:18
@hyperpolymath
hyperpolymath merged commit b42235e into main Oct 14, 2026
64 of 65 checks passed
@hyperpolymath
hyperpolymath deleted the claude/exciting-noether-dzrfrr branch October 14, 2026 01:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants