Change the behaviour of archive cpt category and single cpt by plugin, not by theme

You can use templates located within your plugin instead of theme files, like so:

add_filter('archive_template', 'redirect_to_plugin_archive_template');
function redirect_to_plugin_archive_template($template) {

    if(is_post_type_archive('my_cpt')) {
        return dirname(__FILE__) . '/templates/my_archive_template.php';
    }
}

add_filter('single_template', 'redirect_to_plugin_single_template');
function redirect_to_plugin_single_template($template) {

    if(is_singular('my_cpt')) {
        return dirname(__FILE__) . '/templates/my_single_template.php';
    }
}

Obviously you need to change the custom post type slug and the template paths, but that’s the general idea.