Repository navigation
fix(en-US): restore full-sentence phrasings lost in the .intent migration - #125
Conversation
…tion The 2026-09-04 migration (6fe23a6) copied each Adapt keyword vocab into a .intent file verbatim. Adapt matched those keywords anywhere inside an utterance, so "what would bender say" fired bender_intent. Padacioso and padatious treat every .intent line as the whole utterance, so only the literal fragment ("bender say") matched and the README phrasings stopped working. Every other locale was rewritten as full sentences in ec08f10; en-US was the one left as fragments. Keep every existing line (short commands and STT mishearings still work) and add the natural sentences each intent is documented to answer, using (a|b|) alternation so both engines read them. Measured with the skill's en-US resources loaded into padacioso and ovos-padatious (33 natural sentences, 4 confusable negatives): - before: padacioso matched none of the sentences; padatious scored them 0.43-0.66, below every pipeline threshold - after: all 33 match at 1.00 in both engines; the negatives stay unmatched in padacioso and no higher than before in padatious Verified live on ovos-core 3.7.4a1 with a padacioso-high pipeline: "what is the current stardate", "how many languages do you speak" and "what would hal 9000 say" route to the easter-eggs handlers. The gold list in test/test_intents.yaml and the e2e golden corpus gain the natural phrasings so the routing test guards full sentences, not only the fragments. Refs #76 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Elementary, my dear contributor! The checks are finished. 🕵️♂️I've aggregated the results of the automated checks for this PR below. 🔍 LintHere's the lowdown on the latest automated check. 📉 ✅ ruff: no issues in 17 file(s) 🏷️ Release PreviewI've performed a final polish on the release notes. 🧼 Current:
🚀 Release Channel Compatibility Predicted next version:
📊 CoverageEnsuring our safety net is wide enough. 🕸️ Per-file coverage (3 files)
Full report: download the 🎙️ SkillEnsuring the skill's logic is sound and secure. 🏰 🎙️ (unknown skill_id) — 15 languages en-US: 17 intents · 13 dialogs · skill.json Translation coverage — 14 languages (11 complete, 3 partial)
📋 Repo HealthEnsuring the repo's joints are well-oiled (aka CI/CD). ⚙️ ✅ All required files present. Latest Version: ✅ 🧪 Spec LintJust keeping you informed on the state of things. ℹ️ ✅ 0 error(s), 1 warning(s) 🔨 Build TestsChecking the calibration of the build environment. ⚖️ ✅ All versions pass
The silent guardian of the dev branch. 🦇 |
…tion (#125) The 2026-09-04 migration (6fe23a6) copied each Adapt keyword vocab into a .intent file verbatim. Adapt matched those keywords anywhere inside an utterance, so "what would bender say" fired bender_intent. Padacioso and padatious treat every .intent line as the whole utterance, so only the literal fragment ("bender say") matched and the README phrasings stopped working. Every other locale was rewritten as full sentences in ec08f10; en-US was the one left as fragments. Keep every existing line (short commands and STT mishearings still work) and add the natural sentences each intent is documented to answer, using (a|b|) alternation so both engines read them. Measured with the skill's en-US resources loaded into padacioso and ovos-padatious (33 natural sentences, 4 confusable negatives): - before: padacioso matched none of the sentences; padatious scored them 0.43-0.66, below every pipeline threshold - after: all 33 match at 1.00 in both engines; the negatives stay unmatched in padacioso and no higher than before in padatious Verified live on ovos-core 3.7.4a1 with a padacioso-high pipeline: "what is the current stardate", "how many languages do you speak" and "what would hal 9000 say" route to the easter-eggs handlers. The gold list in test/test_intents.yaml and the e2e golden corpus gain the natural phrasings so the routing test guards full sentences, not only the fragments. Refs #76 Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
What broke
6fe23a6 migrated the 16 Adapt
IntentBuilderintents to.intentfiles by copying each keyword.vocverbatim (bender say,sing,hurt me plenty). Adapt matched those keywords anywhere inside an utterance, so "what would bender say" fired. Padacioso and padatious treat each.intentline as the whole utterance, so only the literal fragment matched and every phrasing in the README stopped working. ec08f10 rewrote every other locale as full sentences; en-US was the one left as fragments.test/test_intent_routing.pytested the fragments against themselves, so CI stayed green.Refs #76, which flagged exactly this coverage-loss risk.
Fix
(a|b|)alternation so both engines read them. No open{slot}wildcards.test/test_intents.yamland the e2egolden_utterances.jsonlwith the natural phrasings so the routing test guards full sentences, not only fragments.Evidence
Offline probe: skill's en-US resources loaded into
padaciosoandovos-padatious, 33 natural sentences plus 4 confusable negatives from other skills' domains.Tests:
test/unit suite 169 passed; ovoscope e2etest_golden_utterances.py75 passed (53 original rows, 16 new, 6 negatives).Live: ovos-core 3.7.4a1 with
ovos-padacioso-pipeline-plugin-high. "what is the current stardate", "how many languages do you speak", "what would hal 9000 say" and "do your glados impression" now match in padacioso-high and reach the easter-eggs handlers. Before this change the same utterances loggedpadacioso: No matchand fell through toovos-m2v-pipeline-low.Noticed, not in scope
Two unrelated bugs surfaced while verifying the OCP path (
portal_intent,glados_intent):ovos-bus-clientOCPInterface.norm_trackslogsERROR Bad track, invalid typefor every dict track. It convertstracks[idx]withdict2entrybut then type-checks the staletrackloop variable. Spurious; the final assert passes.ovos-media-plugin-mpvOVOSMPVService.__init__callsAudioBackend.__init__only, skippingMediaBackend.__init__, soself.metais never set and the firstload_trackraises'OVOSMPVService' object has no attribute 'meta'. Clip does not play on an mpv backend.🤖 Generated with Claude Code