def validate_instructions(instructions, _):
    """Check that the instructions dict contains the necessary keywords"""

    instructions_dict = instructions.get_dict()
    retrieve_files = instructions_dict.get('retrieve_files', None)

    if retrieve_files is None:
        errmsg = (
            '\n\n'
            'no indication of what to do in the instruction node:\n'
            f' > {instructions.uuid}\n'
            '(to store the files in the repository set retrieve_files=True,\n'
            'to copy them to the specified folder on the remote computer,\n'
            'set it to False)\n'
        )
        return errmsg

    if not isinstance(retrieve_files, bool):
        errmsg = (
            'entry for retrieve files inside of instruction node:\n'
            f' > {instructions.uuid}\n'
            'must be either True or False; instead, it is:\n'
            f' > {retrieve_files}\n'
        )
        return errmsg

    local_files = instructions_dict.get('local_files', None)
    remote_files = instructions_dict.get('remote_files', None)
    symlink_files = instructions_dict.get('symlink_files', None)

    if not any([local_files, remote_files, symlink_files]):
        errmsg = (
            'no indication of which files to copy were found in the instruction node:\n'
            f' > {instructions.uuid}\n'
            'Please include at least one of `local_files`, `remote_files`, or `symlink_files`.\n'
            'These should be lists containing 3-tuples with the following format:\n'
            '    (source_node_key, source_relpath, target_relpath)\n'
        )
        return errmsg