Keep one-letter skills without corrupting others - #50
Disesfgewu wants to merge 1 commit into
Conversation
jserv
left a comment
There was a problem hiding this comment.
Indent via make indent and then squash commits without Claude markers.
1496214 to
2ad5ddb
Compare
Sorry about that! I've run make indent, squashed the commits, and pushed the updates. Could you please take another look when you have a moment? Thanks! |
You didn't. Check git manual carefully for |
|
Oops. I check that again. |
2ad5ddb to
618f25b
Compare
|
Check Git Squash Commits: How to Combine Commits Into One by using |
ColtenOuO
left a comment
There was a problem hiding this comment.
It's recommended to make the commit message title relevant to the actual changes, as this helps others quickly understand the updates when reviewing.
That's very helpful advice. I'll apply this practice to my future commits. |
ColtenOuO
left a comment
There was a problem hiding this comment.
As a reminder, once the issue pointed out is fixed, we should add a regression test for it to ensure the bug doesn't come back in future updates.
618f25b to
5af2df8
Compare
jserv
left a comment
There was a problem hiding this comment.
Rebase latest main branch and refine commit messages properly.
1f9eec9 to
a1f91ad
Compare
a1f91ad to
c932cb1
Compare
|
Also, I don't think it's a good idea to describe the collaboration process in the commit body. It should focus on what was actually changed. This issue is still present in the current commit message. |
ColtenOuO
left a comment
There was a problem hiding this comment.
I think some of the newly added tests seem unrelated to this PR (e.g., single isolated skill) and might not be necessary.
While adding tests for different cases can be beneficial, I think we should have a clear rationale for why each change is being made. Just to clarify my earlier point about missing tests: I meant that we still need a test specifically reproducing the scenario where the bug occurred, rather than adding unrelated test cases to this PR.
Adding unrelated tests without a clear purpose might just introduce unnecessary review overhead.
cc. @jserv what do you think?
|
By the way, the PR description might need to be updated to reflect the latest changes, as some parts appear to be outdated. |
For small projects like this, it is acceptable to combine diverse changes into a single pull request, provided that each change has a clear purpose and the overall changes are not extensive enough to make the review difficult, allowing reviewers to still walk through them effectively. |
jserv
left a comment
There was a problem hiding this comment.
Rebase the current branch onto the upstream default branch and rework the series into functionally minimal commits, folding similar ones and enforcing the project's commit message rules.
c272822 to
bf7ab09
Compare
|
Squash the commits touching the same files into one and reword the commit message to reflect the updated state. |
e63a31d to
c8f549a
Compare
jserv
left a comment
There was a problem hiding this comment.
Read https://chris.beams.io/git-commit carefully and enforce the rules.
c8f549a to
1149e07
Compare
ColtenOuO
left a comment
There was a problem hiding this comment.
Please remember to resolve the open comments and add regression tests.
A resume or JD lists skills and requirements as loose text, and this folds four fixes to how a candidate becomes a skill token: keep a single-letter skill like C or R that a too-strict length check used to drop, strip a numbered-list marker only when digits are followed by punctuation so a digit-led skill like 5G survives, drop a split fragment that is pure punctuation instead of a real value, and require every letterless token to carry a letter or be paired with a slash or percent. A bare number like 27001 or 2015 split from a shared prefix like ISO cannot prove it still belongs to that prefix, so it is dropped rather than guessed at.
1149e07 to
500155f
Compare
What
unique()filtered candidates shorter than two characters, meant to dropstray punctuation left over from a bad split. It also silently dropped
legitimate one-letter skills like
CandRbefore a candidate ever got tochoose them for the interviewer.
Dropping that filter unmasked a second, latent bug:
clean()'s leading-stripregex also swallows a bare digit run, so
5Glost its5and survived as thefabricated skill
Gonce nothing was left to catch the mangled remnant.Why
clean()now only strips a real list markegitsimmediately followed by
.or)and then whitespace -- not a bare leadingdigit.
5G,3D,4K,802.11pass throowRust
still loses its1. `.unique()now keeps a token only if it hasgit,so a split fragment that is pure punctuation (a stray
/,#,&leftover from a bad split) is dropped instead ol.
Testing
scripts/test.sh: 438/438 non-skipped testsdigit-led skills, numbered-list stripping on requirement lines, and
punctuation-only split fragments.
Summary by cubic
Fixes grounding extraction so one-letter skills like
CandRsurvive, and bare numeric or punctuation fragments are no longer kept as skills. The old length floor dropped stray punctuation but also erased one-letter skills, and removing it exposedclean()treating bare digit runs as list markers, so5GbecameG.Changes
clean()strips only real list markers (1.,2), bullets) followed by whitespace, so5G,3D, and4Kkeep their digits while numbered-list stripping on requirement lines still works.unique()now keeps a token only if it contains a letter, dropping pure punctuation and bare numbers — including24/7and100%— while letter-carrying standards likeISO 9001and802.11acsurvive.Written for commit 500155f. Summary will update on new commits.