fix(skill-quality): narrow check 21 parsing contract (#1493) - #2532
Conversation
|
Claude finished @kyle-sexton's task in 1m 9s —— View job Security review — skip gate hit
Per No security findings to report. |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Last security-reviewed head: |
|
Claude finished @kyle-sexton's task in 46s —— View job Security review completeTask list
FindingsNo security issues found. This PR narrows the parsing contract of
Scope assessment:
Given the skip-gate criteria in |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 228501fe6f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Claude finished @kyle-sexton's task in 7m 15s —— View job Code review complete
SummaryThis narrows check 21's I traced the
One finding, left as an inline comment on the reference doc:
No other issues found. Test coverage for the narrowed contract looks solid, including the new multi-line-comment fixture. |
Drop inline code-span pairing and backslash-escape reconstruction from the check 21 awk scanner. Lines with backtick runs or a backslash-escaped < now decline directive hard verdicts and skip Form 1/judgment detection, matching the narrowed parsing contract. Carry multi-line HTML comment state until --> so delegation wording split across comment lines no longer satisfies Form 1. Directive classification still runs before comment stripping. Bump skill-quality to 0.15.6. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
228501f to
5559176
Compare
…mbiguous lines - Use index() instead of awk ERE for backslash-escaped < (portability) - Do not start multi-line HTML comment state on backtick/escape lines Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
|
Claude finished @cursor[bot]'s task in 1m 10s —— View job Security review complete
Skip gate hit: no security-relevant surface. The diff at HEAD
This is a dev-tooling markdown linter operating only on local skill files within this repo:
Consistent with the two prior security reviews already posted on this PR. No security findings to report. |
|
Claude has reviewed this PR 3 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
|
Claude finished @cursor[bot]'s task in 37s —— View job Security review complete
Skip gate hit: no security-relevant surface. Per the relevance-gate note above, the last reviewed head was - fe_esc_ambig = (index(line, "\\<") > 0)
+ fe_esc_ambig = (index(line, "\\<") > 0) # portability-ok: index() for literal backslash+less-than, not a GNU grep word boundaryA single trailing comment added to an existing line in This is consistent with the prior security reviews already posted on this PR (which covered the substantive parsing-contract narrowing in commit |
|
Claude finished @cursor[bot]'s task in 4m 27s —— View job Code review complete
SummaryReviewed the full diff ( I hand-traced the
Outstanding from a prior review pass on this PR, still unresolved: the doc-accuracy nit at fresh-eyes-declarations.md#L148-L150 was already flagged in an inline review comment on this PR and has not changed since ( No other issues found. Test coverage ( Note: this lane's tool grant doesn't permit running arbitrary shell scripts (only |
Indented-code ambiguity suppresses directive hard verdicts only; backtick and escape lines skip the line's own Form 1/judgment detectors. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
Pull Request is not mergeable
|
Claude finished @cursor[bot]'s task in 35s —— View job Security review complete
Skip gate hit: no security-relevant surface. Per the relevance-gate note on this PR, the last reviewed head was -directive satisfy a nearby judgment step — the same lack of confidence cuts both ways, so a literal
-exemption inside an indented example cannot silence the warning that step deserves. The judgment
-detector itself continues to run on unambiguous lines. Today this fires on the indented-code case
-above and on any line that carries a backtick run or a backslash-escaped `<`.
+directive satisfy a nearby judgment step — the same lack of confidence cuts both ways. On an
+indented-code line, `fe_icode` feeds that directive-side suppression only; the judgment detector
+still runs on the line's own prose. On a line with a backtick run or a backslash-escaped `<`, the
+scanner declines the line's own Form 1 and judgment detectors via an explicit skip.This is a documentation-only wording change — it resolves the doc-accuracy nit raised in earlier review passes on this PR (indented-code lines vs. backtick/escape lines' effect on the judgment detector). No code, workflow, or configuration changes.
Consistent with the four prior security reviews already posted on this PR (all skip-gated for the same reason: this PR only narrows a local |
|
Claude finished @cursor[bot]'s task in 4m 57s —— View job Code review complete
SummaryThis PR is already at a mature, heavily-reviewed state (2 security-review passes and 3 prior code-review passes on this thread, plus a Codex P2 finding that was fixed at Confirmed fixed: the doc-accuracy nit raised in an earlier review pass on this PR (indented-code lines incorrectly implied to be skipped by the judgment detector) is resolved in the current head. Also verified independently (all check out):
New finding (posted inline)
No other issues found. Test coverage for the narrowed contract (including the new multi-line-comment fixture) looks sound. |
| - **Paragraph-interrupting block constructs.** A pending cross-line span carry expires at a blank | ||
| line or a fence, but not at an ATX heading, thematic break, or table that also interrupts the | ||
| paragraph in CommonMark. |
There was a problem hiding this comment.
Stale "Not attempted" bullet — this PR removes the cross-line inline-code-span carry entirely (sp_open/fe_span_close and friends are deleted from scripts/check-skill.sh), but this bullet still describes that removed mechanism: "A pending cross-line span carry expires at a blank line or a fence, but not at an ATX heading, thematic break, or table that also interrupts the paragraph in CommonMark."
There is no more span carry to expire — fe_bt_ambig/fe_esc_ambig are now computed per-line with index(), with no cross-line state and therefore no paragraph-interruption interaction at all. This bullet was left over from the pre-PR contract and should be deleted (or reworded to describe an actual remaining gap) rather than describing behavior the scanner no longer has.
Same staleness echoes in a dev comment at scripts/check-skill.test.sh:1731 ("Tildes, so the cross-line span carry cannot mask the body incidentally...") — lower priority since it's just test-file prose, but worth a pass while touching the doc.
Fixes #1493
Summary
Narrows check 21’s stated parsing contract: inline code spans, backslash escapes, and cross-line span carries are no longer modeled in the
awkscanner. Lines with backtick runs or a backslash-escaped<now decline directive hard verdicts (safe direction: missed nudge, not false FAIL). Carries multi-line HTML comment state until-->so delegation wording split across comment lines no longer satisfies Form 1.Bumps
skill-qualityto 0.15.6.Test plan
bash plugins/skill-quality/scripts/check-skill.test.shfe-comment-multilinecovers the multi-line comment defectRelated