Entity mentions and @

References & links

Entity mentions and @

One reference grammar: right-click in the draft, @ in long text. Detection is not linking.

What one reference stores

The whole project uses one reference grammar: a reference keeps a protocol version, a scope, an object type, a stable ID and the display text. So “who this points at” has the same answer in the script, in lore, in timelines, in foreshadows and in an agent message—you are not learning five dialects for five screens.

Renaming an object keeps every reference on the same card; same-named objects are told apart by type and stable ID, and aliases only help search—they are never identity. If you have a character “Moonrise” and a lore entry “Moonrise”, the candidates show different types and cannot be crossed.

When a link is worth making

When the words really do mean an existing card. The point is not colouring a word; it is that you and the AI both know which card is meant—so continuation assembles the right material, statistics attribute correctly, and a click lands on the card. A passing mention of something not yet filed does not need one.

In the script: right-click “Connect to…”

Drag-select, then right-click. The upper half of the menu is Rewrite / Expand / Condense / Polish plus a line of extra instruction; the lower half is “Connect to…”, searching everything in the project—characters, locations, props, world entries, chapters, scenes, scene settings, script lines, timeline items, foreshadows and module entrances. With nothing available it says so, and a query with no hit says that too.

When you do want a new card, the list offers explicit “+ Create character…” and “+ Create item…” and connect entries. That is a decision you made, not a guess by the system.

In long text: the two @ paths

  1. Two-level pick
    In lore descriptions, foreshadow notes and timeline descriptions, type @, choose a category (characters / locations and maps / props / world / script structure / timeline / foreshadows / module entrances), then the exact object. Candidates are never truncated inside a category: scroll them all and keep typing to filter.
  2. Or search straight through
    If you already know the name, type @keyword to search across all types. Both paths store the same stable reference.
  3. In place
    The citation appears as a recognisable tag where you typed it and jumps to the card; there is no second preview box underneath.

Matching covers formal names and aliases, with exact matches ranked above prefix and substring hits. Names and paths are matched separately, so searching a scene title does not list every line inside that scene.

What follows from linking

  • Character, prop and location links in the script keep taking part in the usual appearance and usage counts; other targets are informational links that jump and give context, never rewriting the target module.
  • A reference never creates a missing card, and linking a module entrance does not pour that whole module into the AI context—it is navigation.
  • A reference grants no write access: every AI change still passes the confirmation card.

Detection is not a reference

The editor recognises names of characters, locations, props and world entries, but only marks them with a very faint dotted underline; hovering adds a paler wash than a selection, and clicking does not open details. On characters and props, clicking offers “turn into a link”, which is where the real reference is made. Speaker lines skip this layer—they already state who is talking.

Only linked references feed counting and AI assembly; the faint mark is a nudge.

Limits and troubleshooting

  • Old [[name]] syntax and the older character / prop spellings still read. Where an old name resolves to one object it displays fine; with several, it is flagged as ambiguous rather than silently picking the first, and a missing object is flagged as invalid.
  • After an object is deleted the reference keeps its original display text; nothing else is substituted for it.
  • Cross-project references are not open in this version—move work with the project package instead.
  • Tab inside a field does not open the script’s type menu; that keystroke belongs to the script lines.

Direction and side effects are in Cross-module links.