Skip to content

fix(skills): author display labels for every dictionary entry - #854

Open
qtjg wants to merge 1 commit into
offlinecv:mainfrom
qtjg:manus/fix-skill-display-labels
Open

fix(skills): author display labels for every dictionary entry#854
qtjg wants to merge 1 commit into
offlinecv:mainfrom
qtjg:manus/fix-skill-display-labels

Conversation

@qtjg

@qtjg qtjg commented Aug 16, 2026

Copy link
Copy Markdown

PR title

fix(skills): author display labels for every dictionary entry

PR body

Resolves #681

Summary

This change authors an explicit display label for every entry in the curated skill dictionary. Previously, 139 entries fell back to their lowercase canonical IDs, causing recognized skills such as sql, postgresql, javascript, and ios to render with inconsistent casing beside authored and free-text labels.

The dictionary now uses project-consistent brand casing, including SQL, PostgreSQL, JavaScript, Node.js, GraphQL, iOS, jQuery, dbt, and gRPC. Aliases and canonical IDs are unchanged, so matching and deduplication behavior remain stable. The fallback in getSkillIndex() remains as a defensive total-function guard, while a new test makes the authored-label invariant explicit.

Changes

  • Added authored labels to all 139 previously unlabeled dictionary entries.
  • Bumped SKILLS_DICTIONARY_VERSION from 1.1 to 1.2 and documented the data change.
  • Replaced the blanket label-casing assertion with an explicit lowercase-brand allowlist for iOS, dbt, jQuery, and gRPC.
  • Added a regression test proving that no dictionary entry falls back to its ID for display.
  • Updated affected display expectations in JD extraction, job-query construction, and SkillTermGuidance tests. Canonical skill IDs remain lowercase where the test is asserting identity rather than display text.

Verification

  • npm run verify passes: typecheck, lint, fixture-PII checks, core-package checks, 42 changed test files with 713 passing tests and 2 intentionally skipped tests, production build, and Fallow audit.
  • npm test -- --run src/lib/job-search/query-builder.test.ts src/components/features/SkillTermGuidance.test.tsx src/lib/jd-match/extract-jd-terms.test.ts src/lib/jd-match/skills.test.ts passes: 109 tests.
  • The verification command reports existing non-blocking baseline warnings for nine unfiled fixture disagreements and skips the GitHub issue-state check because the local gh token is unavailable.

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.

jd-match/skills.ts: 139 entries have no display label, so a recognized skill renders its lowercase id (sql, aws, ios)

1 participant