<?xml version="1.0" encoding="UTF-8"?>
<spec xmlns="https://vibevm.org/spec/1">
  <title id="root">Glossary</title>
  <status stage="doc" state="work" audience="user,author,dev,agent"/>
  <p p="1">One definition per term, and the only place a term is defined. Every other page links here the first time it uses a word from this list.</p>
  <section id="adaptation" title="adaptation">
    <p p="2">A version of documentation in another language: a separate package that mirrors the source block for block and is free sentence by sentence. This manual says «translation» and «adaptation» for the same thing. See *translation*.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#STYLE-SOURCE-LANGUAGE" p="3"/>
  </section>
  <section id="agent-session" title="agent session">
    <p p="4">One run of a coding agent in a project, from the moment it reads its instruction file to the moment it stops. The boot lane is what vibe prepares for the start of a session.</p>
  </section>
  <section id="anchor" title="anchor">
    <p p="5">The identifier of a section or a fact inside a specification, the part after `#` in an address. Once published, an anchor never changes; a rename leaves a tombstone.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#INV-ANCHORS-IMMUTABLE" p="6"/>
  </section>
  <section id="block-number" title="block number">
    <p p="7">The ordinal `pNN` every block of a documentation page receives at build time; the same in the web page, the Markdown and the XML, so a human and an agent cite one place. It names the current text and may shift after an edit, like a line number.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#READER-NUMBERED-BLOCKS" p="8"/>
  </section>
  <section id="boot-lane" title="boot lane">
    <p p="9">The ordered reading list an agent follows at the start of a session: the managed block in the instruction file, then `STATIC.md` in full, then the entries of `INDEX.md`. Computed by vibe from the dependency graph, never written by hand.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-009#SESSION-START-ORDER" p="10"/>
  </section>
  <section id="boot-snippet" title="boot snippet">
    <p p="11">A package's contribution to the boot lane: one short text declared in `[boot_snippet]` with a category, read at every session start by every consumer. Documentation packages have none.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-009#SCHEMA-BOOT-SNIPPET" p="12"/>
  </section>
  <section id="capability" title="capability">
    <p p="13">An abstract ability a package provides or requires, written `namespace:name` with an optional version constraint; the resolver matches requirers with providers at install time.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#IDENTITY-TUPLE" p="14"/>
  </section>
  <section id="community" title="community documentation">
    <p p="15">Documentation of a package that declares its subject but is not named by the subject: shown on the site with its publisher, below the official shelf. See *official documentation*.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#REL-OFFICIAL-IS-CONVERGENCE" p="16"/>
  </section>
  <section id="companion" title="companion">
    <p p="17">A package tied to another by name for the default case of officiality and by nothing else: the documentation `&lt;name&gt;-docs` of a package, or the translation `&lt;docname&gt;-&lt;lang&gt;` of a documentation. A companion keeps its own version line and stays outside family unison.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-028#ROLE-DOCS" p="18"/>
  </section>
  <section id="contribution" title="contribution">
    <p p="19">A binding of a handler to an extension point, declared as an `[[extension]]` table in a package or a project; the unit the lifecycle runs and reports.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#CONTRIB-GRAMMAR" p="20"/>
  </section>
  <section id="coordinate" title="coordinate">
    <p p="21">The name of a package: a group, a slash and a name, `org.vibevm.world/wal`, with `@version` when a version is meant. The kind is not part of it.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-008#IDENTITY-TUPLE" p="22"/>
  </section>
  <section id="deploy-profile" title="deploy profile">
    <p p="23">A named, ordered list of targets and the providers that apply packaged artifacts to them; `vibe deploy` runs one profile, `vibe undeploy` reverses it.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#R8-DEPLOY-RUNTIME" p="24"/>
  </section>
  <section id="effective-set" title="effective set">
    <p p="25">The packages that the visibility marks admit from your root: what version resolution sees, what the lock file records and what the dependency tree holds. A private edge of a package that is not your root lies outside it.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-050#RESOLVE-EFFECTIVE-ONLY" p="26"/>
  </section>
  <section id="embedded-registry" title="embedded registry">
    <p p="27">The in-tree packages of a source-built vibe, consulted automatically as a registry: first for a developer's build, after the declared registries for a distributed one.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-030#AMBIENT-DEFAULT" p="28"/>
  </section>
  <section id="extension-point" title="extension point">
    <p p="29">A named place in the lifecycle a contribution binds to: a phase, a slot inside a phase, or a position in the boot compiler, written `family:name`.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#POINT-GRAMMAR" p="30"/>
  </section>
  <section id="fact" title="fact">
    <p p="31">One anchored unit of a specification with a status: a rule, a decision, a lead-in. In XML an element named after its id with `fact="true"`; in Markdown a paragraph opening with `@fact:ID`. The addressable atom an agent cites.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-045#NAMED-FACT-ELEMENTS" p="32"/>
  </section>
  <section id="family" title="family">
    <p p="33">A set of packages sharing a name stem that move in unison: the bundle `&lt;family&gt;`, the language guide `&lt;family&gt;-lang`, the server `&lt;family&gt;-mcp`. A change to any member bumps every member to one version.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-028#FAMILY-DEF" p="34"/>
  </section>
  <section id="feature" title="feature">
    <p p="35">An optional, additive content set of a package, declared in `[features]` and activated at install; features may depend on features.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-resolver/PROP-003#FEATURES-TABLE" p="36"/>
  </section>
  <section id="fingerprint" title="fingerprint">
    <p p="37">The hash of a package's shippable tree, the identity half of a package version, recorded as `content_hash` in the lock file and verified on every fetch.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-008#HASH-UNCHANGED" p="38"/>
  </section>
  <section id="freshness-fingerprint" title="freshness fingerprint">
    <p p="39">The hash of a phase run's declared inputs, recorded under `.vibe/`; a phase whose freshness fingerprint did not change is skipped on the next run.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#PHASE-FINGERPRINT" p="40"/>
  </section>
  <section id="friend-closure" title="friend closure">
    <p p="41">The packages a project has befriended, directly with `friend = true` or a `friends` line, or through a chain of friends-only edges. A friends-only dependency reaches only the projects whose friend closure contains its provider.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-050#ACCESS-FRIENDS" p="42"/>
  </section>
  <section id="git-source" title="git source">
    <p p="43">A dependency declared by a git repository and a tag, commit or branch instead of a registry; identity and fingerprint discipline are the same, and a branch is re-walked on update.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#GS-IDENTITY" p="44"/>
  </section>
  <section id="handler" title="handler">
    <p p="45">What a contribution runs: a built-in, a script, a binary, a native library, or an agent prompt.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#HANDLER-KINDS" p="46"/>
  </section>
  <section id="hook" title="hook">
    <p p="47">A package's `pre-install` or `post-install` script, run in the package's slot; installing the package is the consent to run it, and its effects are not tracked.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-020#WHAT-HOOKS-ARE" p="48"/>
  </section>
  <section id="index-registry" title="index (of a registry)">
    <p p="49">A repository beside a registry's packages that records every published version's summary and fingerprint; a cache that speeds search and cold installs and is never the truth.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-index/PROP-005#REPOS-AUTHORITATIVE" p="50"/>
  </section>
  <section id="kind" title="kind">
    <p p="51">What a package is for, one of eight: `flow`, `feat`, `stack`, `tool`, `lang`, `mcp`, `doc`, `app`. Metadata, not identity; the set grows only by amendment.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-000#KIND-SET" p="52"/>
  </section>
  <section id="lifecycle" title="lifecycle">
    <p p="53">The fixed order of build steps vibe runs: the one-phase `clean` lifecycle and the nine-phase `default` lifecycle from `validate` to `deploy`. See *phase*.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#LIFECYCLES" p="54"/>
  </section>
  <section id="link-type" title="link type">
    <p p="55">How a dependency's boot snippet enters a consumer's lane: `static`, compiled into `STATIC.md`, or `dynamic`, listed in `INDEX.md` and read on demand; set by the consumer, suggested by the package.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-009#INCLUSION-TYPES" p="56"/>
  </section>
  <section id="lock-file" title="lock file">
    <p p="57">`vibe.lock`: the recorded resolution, one per workspace, with every package's exact version, fingerprint and provenance. Written by vibe, committed by you.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-011#LOCKFILE-RESPECTING" p="58"/>
  </section>
  <section id="managed-block" title="managed block">
    <p p="59">The region between the lines `&lt;vibevm&gt;` and `&lt;/vibevm&gt;` at the end of `CLAUDE.md`, `AGENTS.md` and `GEMINI.md`, the only part of those files vibe writes; it points an agent at the boot lane.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-012#ONE-BLOCK-LAW" p="60"/>
  </section>
  <section id="manifest" title="manifest">
    <p p="61">`vibe.toml`: the one file you write to describe a project, a package or a workspace; its tables decide the node's role.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-007#ONE-MANIFEST" p="62"/>
  </section>
  <section id="mcp-server" title="MCP server">
    <p p="63">A program an agent talks to over the Model Context Protocol. vibe's own server exposes a project's packages; a package of kind `mcp` delivers servers of its own.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-mcp/PROP-027#MCP-KIND-DEF" p="64"/>
  </section>
  <section id="mirror" title="mirror">
    <p p="65">An alternative address for the same registry, tried for availability and verified against the same fingerprints; never recorded in the lock file.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#MIRROR-WALK-SEMANTICS" p="66"/>
  </section>
  <section id="official" title="official documentation">
    <p p="67">Documentation whose edges converge: the subject names the package in `[documentation]` or by the `-docs` convention, and the package names the subject in `[[documents]]`. One may be primary. Computed at every render, stored nowhere as a flag.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#REL-NO-OFFICIAL-FLAG" p="68"/>
  </section>
  <section id="override" title="override">
    <p p="69">A replacement source for one coordinate that short-circuits the registries; marked in the lock file so nobody mistakes it for a published version. The same word names the `[override]` table that rewrites the visibility marks of edges you do not own.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#OVERRIDE-SHORT-CIRCUIT" p="70"/>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-050#OVERRIDE-ANYWHERE" p="71"/>
  </section>
  <section id="package" title="package">
    <p p="72">The unit vibe installs: a folder with a manifest and the text or tools it delivers, published as its own repository, identified by its coordinate, version and content hash. A package is a project made installable.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-024#PKG-PROJECT-LAW" p="73"/>
  </section>
  <section id="phase" title="phase">
    <p p="74">One step of a lifecycle: `validate`, `install`, `generate`, `build`, `test`, `create`, `verify`, `package`, `deploy`. Naming a phase runs every phase before it.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#INVOKE-RUNS-PRIORS" p="75"/>
  </section>
  <section id="project" title="project">
    <p p="76">Any folder with a `vibe.toml`; a consumer of packages, marked by a `[project]` table, or a workspace of them.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-007#PACKAGE-XOR-PROJECT" p="77"/>
  </section>
  <section id="provider" title="provider">
    <p p="78">What answers how a mechanism runs: a built-in or a package-supplied implementation of a build, package or deploy step, or a model endpoint behind an agent handler. Selected by exact route or pin.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#R8-NATIVE-DEPLOY-PROVIDER" p="79"/>
  </section>
  <section id="receipt" title="receipt">
    <p p="80">The record a deploy writes for every resource it created: what, where, under which generation, owned by which profile. The only authority for removal.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#R8-DEPLOY-RUNTIME" p="81"/>
  </section>
  <section id="registry" title="registry">
    <p p="82">A hosting organisation where packages are published, one repository per package; a project lists the registries it trusts in order.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#SHAPE-OWN-REPO" p="83"/>
  </section>
  <section id="relay" title="relay">
    <p p="84">The mailbox under `.vibe/agentic/` where vibe parks an instruction it cannot execute itself; the agent drains it with `vibe command`.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-018#RELAY-PARKS" p="85"/>
  </section>
  <section id="scrape" title="scrape">
    <p p="86">The terminal removal of the vibe layer from a project, by contract, with a plan and a health proof; not to be confused with `clean`.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-056#SCRAPE-TERM-BOUNDARY" p="87"/>
  </section>
  <section id="skill" title="skill">
    <p p="88">A file a package declares in `[[skill]]` that teaches an agent something; `vibe skill install` projects it into the agents' skill folders.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-018#PROJECTION-DEF" p="89"/>
  </section>
  <section id="specification" title="specification">
    <p p="90">The normative text of a package or a project under `vibevm/vibespecs/`: addressable units with statuses, in Markdown or the XML dialect. What documentation quotes and never restates.</p>
    <rule ref="spec://org.vibevm.world/addressable-specs/flows/addressable-specs/ADDRESSABLE-SPECS-PROTOCOL#THE-SPEC-TREE-IS-THE-ONLY-CHANNEL" p="91"/>
  </section>
  <section id="store" title="store">
    <p p="92">The machine-wide cache of fetched package versions under `~/.vibe/cache/`, keyed by identity, shared by every project, emptied only on request.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-010#CACHE-MACHINE-GLOBAL" p="93"/>
  </section>
  <section id="subject" title="subject">
    <p p="94">A package that a documentation package documents, named in its `[[documents]]` table with a version range.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#REL-DOCUMENTS-REQUIRED" p="95"/>
  </section>
  <section id="subskill" title="subskill">
    <p p="96">A selectable cut of a package's content, activated by the consumer's context, such as the library version a project uses.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-resolver/PROP-003#DESCRIBES-ON-SUBSKILLS" p="97"/>
  </section>
  <section id="traceability-map" title="traceability map">
    <p p="98">`specmap.json`: the generated graph of specification units, tagged code items and the edges between them, checked by the build and queried by `vibe explain`, `vibe query` and `vibe select`.</p>
    <rule ref="spec://org.vibevm.ai-native/core-ai-native/mechanisms/PROP-014#FORCE-INVARIANTS-ARE-MACHINE-CHECKED" p="99"/>
  </section>
  <section id="translation" title="translation">
    <p p="100">A separate documentation package in another language that names its source in `[translates]` and mirrors its tree; official when published by the source's group under `&lt;docname&gt;-&lt;lang&gt;`. See *adaptation*.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#LOC-OFFICIAL-TRANSLATION" p="101"/>
  </section>
  <section id="version-constraint" title="version constraint">
    <p p="102">What a manifest asks for: a range such as `^1.0`, an exact `=1.2.0`, or nothing for the newest stable. The lock file records the one version the resolver chose within it.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-000#CF-RANGE" p="103"/>
  </section>
  <section id="workspace" title="workspace">
    <p p="104">A repository developing several packages together, declared by a `[workspace]` table listing member paths; one lock file at the root and one unified resolution across members.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-007#WORKSPACE-TABLE" p="105"/>
  </section>
</spec>
