Skip to content

fix(pstack): count plan boxes checked with an uppercase X - #821

Open
rudycelekli wants to merge 1 commit into
cursor:mainfrom
rudycelekli:fix/plan-uppercase-checked-boxes-20261023
Open

rudycelekli wants to merge 1 commit into
cursor:mainfrom
rudycelekli:fix/plan-uppercase-checked-boxes-20261023

Conversation

@rudycelekli

@rudycelekli rudycelekli commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

check-plan.mjs only recognizes task-list boxes written as - [ ] or - [x]. GitHub-flavored Markdown also treats - [X] as a checked box, and plans checked off by hand or by tools that write an uppercase marker render as checked everywhere else. The checker drops those lines entirely, so a plan whose boxes are checked with [X] fails with "Files. has no box", "lanes are [], expected 1 to 10", empty perf boxes, and so on, even though the plan is structurally complete. The playbook tells the author to fix every line the checker prints, so this reports problems that do not exist on exactly the plans that are furthest along.

The box pattern now accepts x or X inside the brackets. Nothing else about box detection changes. The Claude Code harness copy is regenerated.

Validation: added "counts boxes checked with an uppercase X" to check-plan.test.ts, which runs the existing valid plan with every box checked as [X]. On origin/main, bun test check-plan.test.ts gives 7 pass and 1 fail (the new test, which reports "has no box", lane, and perf problems). With the fix it gives 8 pass and 0 fail. Also ran npm install --no-save ajv ajv-formats && node scripts/validate-plugins.mjs && node scripts/generate-pstack-harness-trees.mjs --check && node --test pstack/skills/*/scripts/test/*.test.mjs (57 pass, 0 fail, 93 skipped without TLC) and git diff --check.


Note

Low Risk
Narrow regex tweak in a plan validation script with a dedicated unit test; no runtime or security impact.

Overview
Plan checker now treats - [X] as a valid task-list box, matching GitHub-flavored Markdown and tools that write an uppercase checkmark.

Previously only - [ ] and - [x] were recognized, so fully checked plans using [X] were misread as having no boxes and failed structural validation (lanes, perf items, etc.). The BOX regex in check-plan.mjs now allows x or X inside the brackets; counting and validation logic are unchanged.

A regression test runs the existing valid plan with every box marked - [X] and expects a clean exit with the same box count report.

Reviewed by Cursor Bugbot for commit 5baec49. Bugbot is set up for automated code reviews on this repo. Configure here.

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.

1 participant