Fix pre-existing lint, typecheck, and security failures that were
blocking the PR from passing CI:
- Fix E501 line-too-long in session_service.py (remove erroneous
"sha256:" string prefix from dict comprehension on line 268)
- Fix W293 trailing whitespace in tool.py line 249
- Fix typecheck error in session_service.py: data.get("checksum")
can return None, remove invalid string concatenation
- Fix typecheck error in schema.py: add explicit dict[str, Any]
type annotation for wrapper variable to resolve str|None issue
- Fix vulture false positive: add "destination" Protocol parameter
to vulture_whitelist.py
- Fix @tdd_issue/@tdd_issue_1472 tag placement in skill_schema.feature
(remove blank line between tags and scenario)
- Add @tdd_issue/@tdd_issue_1472 tags to all new wrapper key scenarios
- Add Robot integration test for spec-compliant skill: wrapper YAML
Implement skill: wrapper key unwrapping in SkillConfigSchema.from_yaml()
to support the spec-required YAML format with cleveragents: metadata header.
- Strip cleveragents: metadata block from raw YAML before validation
- Unwrap skill: wrapper key if present, with descriptive errors for invalid values
- Maintain backward compatibility with flat YAML format (no wrapper)
- Add Behave scenarios tagged @tdd_issue and @tdd_issue_1472 covering:
* Spec-compliant YAML with skill: wrapper key
* Spec-compliant YAML with cleveragents: header
* skill: with None, string, and list values (error cases)
* Backward compatibility with flat YAML
* cleveragents: header without skill: wrapper
Closes#1472