The problem is using .strip() instead of .removeprefix(). The .strip() method removes any of those characters from both ends of the string, not the exact prefix.
So when your concept_name is echo:
The echoes line is: (echo:: @ [[echo|ᯤ]])
After split: '(echo:: @ [[echo'
.strip('(echo:: @ [[') removes all occurrences of the characters (, e, c, h, o, :, , @, [ from both ends
Since “echo” is made entirely of characters e, c, h, o that are in the strip set, it strips away the entire word, leaving a blank string!
The fix: Replace .strip() with .removeprefix() on line 431: