pub struct InstructionSpec {
pub name: String,
pub owner_tag: String,
pub placement: InstructionPlacement,
pub body: String,
pub adopt_unowned: bool,
}Expand description
Caller-supplied description of a standalone instruction file to install.
Instructions differ from hook rules: they are named, standalone files
that persist across sessions (like ~/.claude/MYAPP.md). They may be
referenced via include directives from the agent’s memory file, or
placed directly in a rules directory.
Build via InstructionSpec::builder.
Fields§
§name: StringInstruction name. Used as the filename stem (e.g. MYAPP becomes
MYAPP.md). Must be ASCII alnum / _ / -, non-empty.
Fence prefix. For InstructionPlacement::ReferencedFile and
InstructionPlacement::InlineBlock, name is reused as the fence
tag in the host markdown file using a distinct instruction-only
prefix:
<!-- BEGIN AGENT-CONFIG-INSTR:<name> --> ... <!-- END AGENT-CONFIG-INSTR:<name> -->.
This is intentionally separate from the hook fence
(<!-- BEGIN AGENT-CONFIG:<tag> -->) so a hook with tag = "T" and
an instruction with name = "T" cannot overwrite each other when
they share a memory file (e.g. ~/.claude/CLAUDE.md). Installs from
versions before this rename used the hook prefix; status detection
and uninstall accept the legacy prefix as a fallback so existing
installs drain cleanly on upgrade.
owner_tag: StringThe consumer of this library that owns the instruction.
Recorded in the sidecar ownership ledger; refusal to remove an
instruction owned by another consumer matches the same
AgentConfigError::NotOwnedByCaller model used for MCP and skills.
placement: InstructionPlacementHow this instruction should be placed for the target agent.
body: StringMarkdown body of the instruction file.
adopt_unowned: boolWhen true, install adopts an instruction file (or include block) that
exists on disk but has no recorded owner instead of refusing. Use
after a crash between file write and ledger record. Default false.
Implementations§
Source§impl InstructionSpec
impl InstructionSpec
Sourcepub fn builder(name: impl Into<String>) -> InstructionSpecBuilder
pub fn builder(name: impl Into<String>) -> InstructionSpecBuilder
Begin building an instruction spec with the given name.
Trait Implementations§
Source§impl Clone for InstructionSpec
impl Clone for InstructionSpec
Source§fn clone(&self) -> InstructionSpec
fn clone(&self) -> InstructionSpec
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more