Krikri::PlaybookParser::InvalidIncludeAttributeError
Bypasses the per-task "Warning: Skipping task ... ParseError"
rescue in #parse_tasks, the same way RemovedActionError,
StaticImportRoleUndefinedError, etc. do - matches
ansible-core's own AnsibleParserError which aborts the whole
playbook rather than degrading gracefully. Without the typed
class, the bare-string raise above would land in the generic
rescue at the end of parse_tasks's begin block, the whole play
would silently lose the offending task, and the user would see
ok=0 changed=0 failed=0 with no indication anything was
wrong - the exact opposite of what Ansible does and what
the spec expects.
kind is TaskInclude or IncludeRole here, but RoleLoader also
raises this for a role meta/main.yml's unknown top-level keys
(ansible-core's RoleMetadata._validate_attributes refuses those at
role load the same way, issue #81).