Skip to main content

adk_skill/
lib.rs

1//! `adk-skill` is the engine for specification-driven agent skills in the Zenith ecosystem.
2//!
3//! It implements the `agentskills.io` standard, allowing developers to define agent personalities,
4//! capabilities, and tool permissions in structured Markdown files.
5//!
6//! # Key Features
7//! - **Discovery**: Recursively scans the workspace for `.skill.md` and `skill.md` files.
8//! - **Specification First**: Parses frontmatter for metadata, tool permissions, and external references.
9//! - **Dynamic Tooling**: Provides the metadata needed for agents to configure their own toolsets at runtime.
10//! - **Versioning & Hashing**: Content-based unique identifiers for reliable persona selection.
11//!
12//! # Example
13//! Skills are defined in Markdown with YAML frontmatter:
14//! ```markdown
15//! ---
16//! name: search-expert
17//! description: Expert in semantic and keyword search.
18//! allowed-tools:
19//!   - knowledge
20//!   - web_search
21//! ---
22//! Use tools to find information...
23//! ```
24
25#![doc = include_str!("../README.md")]
26
27mod coordinator;
28mod discovery;
29mod error;
30mod index;
31mod injector;
32mod model;
33mod parser;
34#[cfg(feature = "progressive-disclosure")]
35mod progressive;
36#[cfg(feature = "vertex-skill-registry")]
37pub mod registry;
38mod select;
39mod writer;
40
41pub use coordinator::{
42    ContextCoordinator, CoordinatorConfig, ResolutionStrategy, SkillContext, ToolRegistry,
43    ValidationMode,
44};
45pub use discovery::{
46    discover_instruction_files, discover_instruction_files_with_extras, discover_skill_files,
47    discover_skill_files_with_extras,
48};
49pub use error::{SkillError, SkillResult};
50pub use index::{load_skill_index, load_skill_index_with_extras};
51pub use injector::{
52    SkillInjector, SkillInjectorConfig, apply_skill_injection, select_skill_prompt_block,
53};
54pub use model::{
55    ParsedSkill, SelectionPolicy, SkillDocument, SkillFrontmatter, SkillIndex, SkillMatch,
56    SkillSummary,
57};
58pub use parser::{parse_instruction_markdown, parse_skill_markdown};
59#[cfg(feature = "progressive-disclosure")]
60pub use progressive::{ActivatedSkill, ResourceAccessPolicy, SkillToolset, SkillToolsetConfig};
61pub use select::select_skills;
62pub use writer::{SkillDraft, SkillWriter, validate_skill_name};