use proptest::prelude::*;
use skillpack::verify::discovery::parse_skill_frontmatter;
use skillpack::verify::invocation::extract_flags;
proptest! {
#[test]
fn extract_flags_never_panics_and_is_deterministic(
blob in "[a-zA-Z0-9 \t--=,;:.()'\"\n]{0,4000}"
) {
let a = extract_flags(&blob);
let b = extract_flags(&blob);
prop_assert_eq!(&a, &b, "extract_flags must be deterministic");
let mut seen = std::collections::HashSet::new();
for f in &a {
prop_assert!(f.starts_with('-'), "flag must start with '-': {f}");
prop_assert!(f.len() >= 2, "flag must be ≥2 chars: {f}");
let first = f.chars().find(|c| *c != '-');
prop_assert!(
first.is_some_and(|c| c.is_ascii_alphabetic()),
"flag's first non-dash char must be a letter: {f}"
);
prop_assert!(seen.insert(f.clone()), "flags must be deduped: {f}");
}
}
#[test]
fn parse_frontmatter_never_panics(blob in "[\x20-\x7E\n]{0,4000}") {
let fm = parse_skill_frontmatter(&blob);
let _ = fm; }
}