Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

ship-receipt-prose: check-prose reads 'REVIEW_LOOP: passes=2 blocking_found=1' as a claim of 2 blocking_found

Open Beginner friendly
#3,513 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
83/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
testing, tooling

Research direction

Read lib/ship-receipt-prose.ts, especially the counter regex in checkProse around line 50, and find its regression tests. Run the existing tests for checkProse, then add the supplied REVIEW_LOOP line with receipt values where passes and blocking_found differ. Done means all five key=value claims match the receipt without a false mismatch.

Written by the indexing model from the issue text.

Description

ship-queue

Problem

checkProse in lib/ship-receipt-prose.ts (the counter regex at line 50) reads one key=value pair from a canonical REVIEW_LOOP line as a "number then name" claim about the next key.

Input line, exactly as /ship and gstack-ship-queue ready print it into a PR body:

REVIEW_LOOP: passes=2 blocking_found=1 deferred=0 noted=4 fixed=8 scope=frozen

The receipt has review_loop.passes = 2 and review_loop.blocking_found = 1.

Actual

The \b(\d+)\s+${name} branch matches 2 blocking_found. The 2 belongs to passes=2, and \b holds between = and 2. So the check reports:

PROSE: mismatch review_loop.blocking_found body=2 receipt=1

Expected

The line parses as five key=value claims: passes=2, blocking_found=1, deferred=0, noted=4, fixed=8. All five match the receipt and the check reports no mismatch:

PROSE: 5 receipt counter claims in the body, all match

Fix

A number that is the value of a key= or key: pair must not also start a "number then name" claim. One way is to require (?<![=:\w.-]) before (\d+) in that branch. Add a regression test that runs this exact REVIEW_LOOP line through checkProse with a receipt where passes and blocking_found differ.

Seen on

The #3507 /ship re-READY (2026-10-27). The PR body carries the canonical REVIEW_LOOP line, and check-prose reported the false mismatch above. The receipt and the line agree.

Dominant language
TypeScript
Stars
137k
Forks
20.3k
Avg merge
8h 56m
Merged PRs (30d)
239

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from garrytan/gstack

All issues in garrytan/gstack

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.