pub const SKILL: &str = include_str!("../skills/lucida/SKILL.md");
pub fn print() {
print!("{SKILL}");
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn the_skill_has_the_frontmatter_a_client_needs() {
let mut lines = SKILL.lines();
assert_eq!(lines.next().map(str::trim), Some("---"), "no frontmatter block");
let front: Vec<&str> = lines.by_ref().take_while(|l| l.trim() != "---").collect();
assert!(!front.is_empty(), "unterminated frontmatter");
let front = front.join("\n");
assert!(front.contains("name: lucida"), "{front}");
let description = front
.lines()
.find_map(|l| l.strip_prefix("description: "))
.expect("no description");
assert!(description.len() > 40, "description too thin: {description}");
}
#[test]
fn the_skill_names_no_provider_or_model_family() {
let lower = SKILL.to_lowercase();
for name in [
"google", "comfyui", "bfl", "stability", "openai", "gemini", "flux", "gpt-image",
"veo", "banana", "imagen", "black forest",
] {
assert!(
!lower.contains(name),
"the skill names `{name}` — capabilities belong in image_providers, \
which is current, not here, which is a snapshot"
);
}
}
#[test]
fn the_skill_states_no_provider_count() {
let lower = SKILL.to_lowercase();
for count in [
"one provider",
"two providers",
"three providers",
"four providers",
"five providers",
"six providers",
"seven providers",
] {
assert!(!lower.contains(count), "the skill counts providers: `{count}`");
}
}
#[test]
fn the_skill_states_no_capability_semantics() {
let lower = SKILL.to_lowercase();
for claim in ["advisory", "binding"] {
assert!(
!lower.contains(claim),
"the skill says `{claim}` — which kind of mask a provider has is a \
capability fact, and it belongs in image_providers"
);
}
}
#[test]
fn the_embedded_skill_is_lf_on_every_platform() {
assert!(
!SKILL.contains('\r'),
"the embedded skill contains CR — has .gitattributes lost `*.md text eol=lf`?"
);
}
#[test]
fn the_skill_points_at_the_live_answer() {
assert!(SKILL.contains("image_providers"));
assert!(SKILL.contains("lucida models --provider"));
assert!(SKILL.contains("video_providers"));
}
#[test]
fn the_skill_says_to_offer_the_choice_rather_than_assume_it() {
let lower = SKILL.to_lowercase();
assert!(
lower.contains("ask the user") || lower.contains("ask before"),
"the skill never tells an agent to ask which option to use"
);
assert!(
lower.contains("do **not** ask when") || lower.contains("do not ask when"),
"the skill says when to ask but never when not to, which makes it noise"
);
}
}