illusion 83c42a61e7
fix(skills): strip trailing sentence punctuation from extracted resource refs (#5739)
* fix(skills): strip trailing sentence punctuation from extracted resource refs

The resource-graph extractor's _PATH_TOKEN_RE includes '.' in its path
character class, so a bare package-relative path at the end of a sentence
(e.g. "Read references/setup.md.") is extracted with the trailing period
still attached. build_resource_graph then emits a false-positive
resource.missing finding for "references/setup.md." and, because the
real file is never matched, reports the actual references/setup.md as an
unreferenced orphan.

Other sentence punctuation (",;:!?()") already falls outside the regex
character class and is correctly dropped; only '.' is ambiguous because it
is both a valid path character and prose punctuation.

Strip trailing '.', '?' and '!' from every extracted reference in
_extract_references. Real dotted filenames are unaffected: rstrip only
removes punctuation at the very end, so references/config.yaml and a link
target such as references/v1.0.md keep their dots.

Adds two regression tests covering prose-terminated bare paths and real
dotted filenames.

* style(tests): format skill review tests

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-09-24 20:52:58 +08:00
..