Skip to main content

Crate ferrify_domain

Crate ferrify_domain 

Source
Expand description

Core domain types for Ferrify.

agent-domain is the vocabulary crate for the rest of the workspace. It defines the value objects, planning records, policy types, provenance labels, and reporting structures that let Ferrify describe a governed software-change run without reaching into filesystem or process concerns.

The main design goal is to keep meaning-bearing concepts explicit. A path that must stay inside the repository is represented by RepoPath, not a raw String. A mode identifier is a validated ModeSlug, not a free-form label. The result is a control plane that can encode authority and scope in the type system before any command is run.

§Core Concepts

§Examples

use agent_domain::{ModeSlug, RepoPath, TrustLevel};

let target = RepoPath::new("crates/agent-cli/src/main.rs")?;
let mode = ModeSlug::new("architect")?;

assert_eq!(target.as_str(), "crates/agent-cli/src/main.rs");
assert_eq!(mode.as_str(), "architect");
assert!(TrustLevel::RepoPolicy.can_define_policy());

Structs§

ApprovalProfileSlug
A stable slug identifying an approval profile.
ArtifactRef
A reference to evidence captured during a verification step.
Assumption
An assumption that influenced the run.
ChangeIntent
The intake object that describes the requested software change.
ChangePlan
The architect-stage change plan.
ChangeSummary
The high-level change outcome shown to the operator.
ClassifiedInput
A lightweight provenance record for an input observed during a run.
EffectivePolicy
The fully resolved policy used by a run.
EvidenceRequirement
A verification requirement requested by the operator or planner.
FinalChangeReport
The evidence-backed final report.
ModeSlug
A stable slug identifying an execution mode.
OutcomeSpec
The desired outcome stated for the task.
PatchAnchor
A file-level anchor used by patch planning.
PatchBudget
The patch budget used to keep edits bounded.
PatchPlan
The implementer-stage patch plan.
PathPattern
A repository-relative path restriction.
RepoPath
A repository-relative path that cannot escape the workspace root.
ReportingPolicy
Reporting rules that constrain what the runtime may claim.
RiskItem
A risk item preserved across planning and reporting.
ScopeBoundary
The explicit scope boundary for a task.
ScopeItem
A repository item used to bound scope.
TouchedArea
A touched area that should appear in the final report.
ValidationMinimums
Minimum verification requirements imposed by policy.
ValidationReceipt
A receipt proving which verification command ran and how it ended.
VerificationPlan
The verification steps required for a plan.

Enums§

ApiImpact
The expected API impact for the change.
ApprovalRule
The approval policy attached to a capability.
BlastRadius
The maximum acceptable blast radius for a change.
Capability
A capability that can be granted, denied, or approval-gated.
ChangeStatus
The overall status for the final report.
DependencyPolicy
The repository stance on dependency changes.
DomainTypeError
Validation failures for domain value objects.
InputRole
The operational role an input plays in Ferrify.
PolicyLayer
The precedence layer that introduced a policy fragment.
RiskLevel
The severity attached to a residual risk.
SemanticConcern
The semantic concern for a patch.
TaskKind
The kind of change the operator is requesting.
TrustLevel
The trust classification attached to inputs and observations.
VerificationKind
The verification steps supported by Ferrify.
VerificationStatus
The result of an individual verification step.