Fail closed on invalid or unreadable ai_best_practices.yaml
### Problem When ai_best_practices.yaml is malformed or unreadable, the config loader silently ignores it and falls back to defaults. Skills sync then runs against the wrong configuration with no error surfaced, so a typo in the config looks like "nothing happened" instead of a clear failure. ### Fix Fail closed on invalid input: - Invalid or unreadable YAML now throws, and the Composer and CLI sync paths stop before writing any generated files. - A missing file — and an empty / whitespace-only file — still falls back to defaults (only genuinely invalid config throws), preserving the documented "absent → defaults" behaviour. - README troubleshooting note updated to match. ### Tests Adds AiBestPracticesConfigLoaderTest. Focused suite green: 65 tests / 170 assertions (covering "empty file → defaults", "whitespace-only → defaults", and "malformed / scalar / wrong-shape → throws"). ### Patch A merge request will be pushed to the issue fork from a local branch 020-config-fail-closed, 4 files: config loader, skills-sync command, README, new test).
issue