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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//! The agentlink domain.
//!
//! agentlink gives every AI coding agent in a repository the same brain, without
//! copying a single file. It does that by exploiting a fact about the 2026
//! ecosystem: for the resources that matter most, **the format has already
//! converged and only the location differs.**
//!
//! * Instructions converged on `AGENTS.md` (Linux Foundation, December 2025).
//! * Skills converged on Agent Skills / `SKILL.md` (open specification,
//! December 2025), read by 30+ tools.
//!
//! So each pairing of an agent with a resource resolves to one of four verdicts:
//!
//! | Verdict | Meaning | Cost |
//! |-----------------------------------------------|-------------------------------------------|------|
//! | [`Native`](model::Strategy::Native) | the tool already reads the canonical path | zero |
//! | [`Link`](model::Strategy::Link) | same format, different path | one link |
//! | [`Import`](model::Strategy::Import) | link impossible; write a one-line stub | one small file |
//! | [`plan::Blocked`] | needs a human decision | nothing is written |
//!
//! The payoff is that bidirectional propagation is not a feature anyone has to
//! implement. For a `Native` or `Link` verdict there is exactly one inode, so
//! editing, renaming, moving or deleting through any agent's path is immediately
//! visible to every other agent — with no daemon, no watcher and no
//! reconciliation pass.
//!
//! # Layering
//!
//! ```text
//! agentlink-cli composition root, human-facing output
//! ↓
//! agentlink-domain this crate: pure domain, no `std::fs`
//! ↑
//! agentlink-fs adapter implementing [`Workspace`] against a real directory
//! ```
//!
//! Everything here is deterministic and testable without a filesystem: planning
//! is a pure function of observable state, and [`testing::FakeWorkspace`]
//! simulates hosts — including Windows without symlink privileges — that a given
//! CI runner cannot otherwise reproduce.
pub use ;
pub use Config;
pub use Layout;
pub use Lock;
pub use ;
pub use RelPath;
pub use ;
pub use ;
pub use Registry;
pub use ;
/// The version of the `agentlink` crate, surfaced in `--version` and lock files.
pub const VERSION: &str = env!;