Add YAML support for persona configuration files. YAML provides cleaner multi-line strings and supports comments, making persona definitions more readable and maintainable.
Requirements
Support both YAML and JSON formats for persona files
Detect format by file extension (.yaml/.yml vs .json)
Convert built-in personas to YAML format
Keep JSON parsing as fallback for backwards compatibility
Library
Use github.com/goccy/go-yaml v1.16.0 or later.
Why this library:
Actively maintained (10 releases in the last year, current v1.19.2)
Security issue (AIKIDO-2024-10486, DoS via deep nesting) was fixed promptly in v1.16.0
gopkg.in/yaml.v3 is abandoned (no code changes since May 2022)
Implementation Notes
Update parsePersona() to detect format and use appropriate parser
YAML files should use .yaml extension (not .yml) for consistency
Validate that deeply nested YAML is rejected (defense in depth)
## Summary
Add YAML support for persona configuration files. YAML provides cleaner multi-line strings and supports comments, making persona definitions more readable and maintainable.
## Requirements
- Support both YAML and JSON formats for persona files
- Detect format by file extension (`.yaml`/`.yml` vs `.json`)
- Convert built-in personas to YAML format
- Keep JSON parsing as fallback for backwards compatibility
## Library
Use `github.com/goccy/go-yaml` v1.16.0 or later.
**Why this library:**
- Actively maintained (10 releases in the last year, current v1.19.2)
- Security issue (AIKIDO-2024-10486, DoS via deep nesting) was fixed promptly in v1.16.0
- `gopkg.in/yaml.v3` is abandoned (no code changes since May 2022)
## Implementation Notes
- Update `parsePersona()` to detect format and use appropriate parser
- YAML files should use `.yaml` extension (not `.yml`) for consistency
- Validate that deeply nested YAML is rejected (defense in depth)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Add YAML support for persona configuration files. YAML provides cleaner multi-line strings and supports comments, making persona definitions more readable and maintainable.
Requirements
.yaml/.ymlvs.json)Library
Use
github.com/goccy/go-yamlv1.16.0 or later.Why this library:
gopkg.in/yaml.v3is abandoned (no code changes since May 2022)Implementation Notes
parsePersona()to detect format and use appropriate parser.yamlextension (not.yml) for consistency