helpers/skills_cli.py.dox.md
skills_cli.py helper module.skills_cli.py because this directory is intentionally flat.skills_cli.py owns the runtime implementation.skills_cli.py.dox.md owns durable notes about responsibilities, contracts, side effects, and verification for that implementation.helpers.skills.Skill rather than maintaining a CLI-specific model.get_skills_dirs() -> list[Path]: Get all skill directoriesparse_skill_file(skill_path: Path) -> Skill | None: Parse a SKILL.md file and return a Skill objectlist_skills() -> list[Skill]: List all available skillsfind_skill(name: str) -> Skill | None: Find a skill by namesearch_skills(query: str) -> list[Skill]: Search skills by name, description, or tagsvalidate_skill(skill: Skill) -> list[str]: Validate a skill and return list of issuescreate_skill(name: str, description: str=..., author: str=...) -> Path: Create a new skill from templateprint_skill_table(skills: list[Skill]): Print skills in a formatted tablemain()helpers.skills so CLI behavior matches the runtime contract.validate command can report incomplete metadata through the canonical validator.triggers frontmatter field.argparse, helpers, pathlib, sys.skills.get_skill_roots, skills.skill_from_markdown, skills.list_skills, skills.find_skill, skills.search_skills, skills.validate_skill, Path, custom_dir.mkdir, skill_dir.exists, skill_dir.mkdir, skill_file.write_text, readme.write_text, argparse.ArgumentParser, parser.add_subparsers, subparsers.add_parser.tests/test_skills_cli.py verifies that creation, parsing, discovery, lookup, search, and validation use the runtime skill contract.No child DOX files.