1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! Skills — packaged, progressively-disclosed agent capabilities
//!.
//!
//! A [`Skill`] bundles four things: a stable identifier, a one-line
//! description, an instructions body, and a set of named resources.
//! The model reaches them in three tiers:
//!
//! - **T1** (always loaded): `name + description`, emitted by
//! [`SkillRegistry::summaries`].
//! - **T2** (loaded on activation): the full `instructions` body,
//! returned by [`Skill::load`].
//! - **T3** (loaded on demand): each [`SkillResource`] is read only
//! when the model invokes
//! [`crate::tools::Tool`]-fronted resource access.
//!
//! Token cost grows proportionally with what the model uses, not with
//! what the operator has registered.
//!
//! ## Backend-agnostic
//!
//! `Skill` is a capability trait: implementations can be hand-rolled
//! structs ([`crate::skills::Skill`] is `Send + Sync`), sandbox-backed
//! file trees, MCP-fronted servers, or HTTP stores. The runtime
//! contract carries an [`ExecutionContext`] through every async call
//! so backends inherit `tenant_id` (invariant 11) and cancellation.
//!
//! ## Sub-agent filtering
//!
//! [`SkillRegistry::filter`] mirrors the tool-filter pattern (F7) —
//! sub-agents receive an explicitly-named subset; no inheritance of
//! unnamed skills.
//!
//! [`ExecutionContext`]: crate::context::ExecutionContext
pub use ;
pub use ;
pub use ;