feat(analytics-skill): cover multiple prose phrasings and parse a missing join key

Root-cause correction for the deps_dev_v1 fork-count failure: the dominant
cause is not comma-stripping but (1) the same fact phrased several ways in the
narrative, so a single regex drops every other form to NULL, and (2) a table
with no structured key whose identifier lives only in prose. Reframe the
extract rule to sample distinct phrasings and COALESCE one pattern per
phrasing; add a schema-linking rule that parses a missing join key out of the
prose; note a second phrasing as a cause in the parse-coverage check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Q2q8GTZBn98eg6zUjDxvR
This commit is contained in:
Kevin Messiaen 2026-07-07 18:35:12 +07:00
parent bef5afe25b
commit 4eb9272f6c
No known key found for this signature in database
GPG key ID: 19FF750A17315202
2 changed files with 5 additions and 3 deletions

View file

@ -48,7 +48,8 @@ describe('analytics SKILL.md SQL craft', () => {
'Parse text-encoded numerics before doing math on them', // detect text-encoded numbers (spec 12)
'Strip, scale, and cast in one early CTE', // parse/scale early (spec 12)
'Confirm the parse covered every value', // failure-detecting cast coverage (spec 12)
'Extract the number from prose before parsing it', // lift the numeric token out of a narrative column first (spec 07)
'Extract the number from prose by covering every phrasing', // COALESCE over one regex per phrasing (spec 07)
'A missing structured key means the identifier lives in the prose', // parse the join key out of narrative text (spec 07)
'must pass the parse-coverage check before you answer', // parsed-from-text ranking re-checks parse coverage (spec 07)
'Answer every requested output', // multi-part/multi-output umbrella over identity+inputs (spec 14)
'Final completeness check', // re-read the question, confirm the projection covers all four facets (spec 14)