Boundary-test the decimal comparison operand grammar
Maintainers usually reply within 1 day
@soyeladice-svg is already working on this.
Since Sep 29, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
Research direction
Start by reading the existing tests under internal/evaluation/ and the evaluator’s decimal-comparison behavior. Add table-driven cases with t.Run for the specified grammar edges, asserting diagnostic codes for rejections and equal results for scale differences. Run env GO111MODULE=on go test ./internal/evaluation and go test ./...; done means both pass and the stated acceptance criteria are covered.
Written by the indexing model from the issue text.
Description
Goal
Add table-driven tests for the decimal-string grammar that ordered fact comparisons require.
Why
Core §2.2 fixes the operand form for greater-than, greater-than-or-equal, less-than and less-than-or-equal:
decimal = [ "-" ] ( "0" / non-zero-digit *DIGIT ) [ "." 1*DIGIT ]
That grammar refuses a leading +, a leading zero such as 007, a bare .5, a trailing 5., an exponent, whitespace, and an empty string — and it accepts -0.5 and 0.10. It also exists because JSON numbers are the wrong carrier for a business quantity whose decimal identity matters, which is a decision worth having pinned by cases rather than by prose.
The evaluator implements it. What is thin is a set of tests that walk the grammar's edges deliberately, one accepted and one rejected value per rule.
Scope
- Change test files under
internal/evaluation/only. - Table-driven, with
t.Runper case, covering at least: leading+, leading zeros, bare.5, trailing5., exponent forms, internal or surrounding whitespace, empty string,-0, and a value with more fractional digits than the operand it is compared against. - Assert the diagnostic each rejection produces, not merely that it was rejected.
- Do not change the grammar, the evaluator, or any schema.
Acceptance criteria
- Each rule of the §2.2 grammar has at least one accepted and one rejected case.
- Rejections assert their diagnostic code, so a rejection for the wrong reason fails.
- Scale differences that must compare equal do, and are shown to.
-
env GO111MODULE=on go test ./internal/evaluationandgo test ./...pass. - Every commit includes a DCO sign-off created with
git commit -s.
Contributor learning
Why a specification carries an explicit decimal grammar instead of using JSON numbers, and how to test a grammar at its edges rather than in its middle.
- Dominant language
- Go
- Stars
- 2
- Forks
- 6
- Avg merge
- 13h 16m
- Merged PRs (30d)
- 76
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Judgment-Pack/judgment-pack-runtime
-
Pin which layer refuses an evaluation-corpus pack pathMay be free again @soyeladice-svg claimed this 17 days ago, and no pull request is open. Opengo good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Judgment-Pack/judgment-pack-runtime#120 · 3 comments ·
Maintainers usually reply within 1 day
-
Pin Sanitize's substitution and what it leaves aloneMay be free again @soyeladice-svg claimed this 17 days ago, and no pull request is open. Opengo good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Judgment-Pack/judgment-pack-runtime#119 · 3 comments ·
Maintainers usually reply within 1 day
-
Expose read-only fact-type advice before test expectations are authoredPossibly taken @kikashy claimed this 3 days ago. Open
Judgment-Pack/judgment-pack-runtime#274 · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
Judgment-Pack/judgment-pack-runtime#272 ·
Maintainers usually reply within 1 day
-
Assert every refusal the `uri` format checker makes, including a truncated percent escapeMay be free again @soyeladice-svg claimed this 17 days ago, and no pull request is open. Opengo good first issue
Difficulty 3/5 1-2 days Newbie friendliness 57/100
Judgment-Pack/judgment-pack-runtime#173 · 3 comments ·
Maintainers usually reply within 1 day
All issues in Judgment-Pack/judgment-pack-runtime
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:session-state issue-rating: 🦞 diamond lobster no-stale P2
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
openclaw/wacli#503 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 81/100
apache/rocketmq-dashboard#6895 ·
Maintainers usually reply within 3 days
-
agent-butler-finding chore
Difficulty 1/5 Under an hour Newbie friendliness 88/100
jordansmall/spindrift#5466 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
open-telemetry/opentelemetry-go-compile-instrumentation#1507 ·
Maintainers usually reply within 3 days
-
Difficulty 1/5 Under an hour Newbie friendliness 87/100
777genius/agent-notifications#490 ·
Maintainers usually reply within 1 day