def METHOD_NAME(skill_key, caster, args, embed):
    """
    Runs a caster's skill check, building on an existing embed and handling most arguments.
    :type skill_key: str
    :type caster: cogs5e.models.sheet.statblock.StatBlock
    :type args: utils.argparser.ParsedArguments
    :type embed: disnake.Embed
    :return: The total of each check.
    :rtype: CheckResult
    """
    skill = caster.skills[skill_key]
    skill_name = camel_to_title(skill_key)
    mod = skill.value
    base_ability_key = SKILL_MAP[skill_key]
    # str/dex/con/int/wis/cha
    if any(args.last(s, type_=bool) for s in STAT_ABBREVIATIONS):
        base = next(s for s in STAT_ABBREVIATIONS if args.last(s, type_=bool))
        mod = mod - caster.stats.get_mod(base_ability_key) + caster.stats.get_mod(base)
        base_ability_key = STAT_NAMES[STAT_ABBREVIATIONS.index(base)]
        skill_name = f"{verbose_stat(base)} ({skill_name})"
    # -title
    if args.last("title"):
        embed.title = args.last("title", "").replace("[name]", caster.get_title_name()).replace("[cname]", skill_name)
    elif args.last("h"):
        embed.title = f"An unknown creature makes {a_or_an(skill_name)} check!"
    else:
        embed.title = f"{caster.get_title_name()} makes {a_or_an(skill_name)} check!"
    # ieffect handling
    if isinstance(caster, init.Combatant):
        # -cb
        args["b"] = args.get("b") + caster.active_effects(mapper=lambda effect: effect.effects.check_bonus, default=[])
        # -cadv/cdis
        cadv_effects = caster.active_effects(
            mapper=lambda effect: effect.effects.check_adv, reducer=lambda checks: set().union(*checks), default=set()
        )
        cdis_effects = caster.active_effects(
            mapper=lambda effect: effect.effects.check_dis, reducer=lambda checks: set().union(*checks), default=set()
        )
        if skill_key in cadv_effects or base_ability_key in cadv_effects:
            args["adv"] = True
        if skill_key in cdis_effects or base_ability_key in cdis_effects:
            args["dis"] = True
    result = _run_common(skill, args, embed, mod_override=mod)
    return CheckResult(rolls=result.rolls, skill=skill, skill_name=skill_name, skill_roll_result=result)