Skip to content
Development
Skill

/update-lid

Configure or reconcile a project for linked-intent development (LID). Dispatches on project state — fresh bootstrap, append directives to an existing agent-instructions file (AGENTS.md or CLAUDE.md), add missing mode marker, reconcile convention drift, or run mode transitions.

From plugin
lid
1026 skills3 commands
Install
$ npx -y skills add jszmajda/lid --skill update-lid --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/update-lid

Context preview

The summary Claude sees to decide when to auto-load this skill.

Configure or reconcile a project for linked-intent development (LID). Dispatches on project state — fresh bootstrap, append directives to an existing agent-instructions file (AGENTS.md or CLAUDE.md), add missing mode marker, reconcile convention drift, or run mode transitions.

SKILL.md

update-lid.SKILL.md
name: update-lid
description: Configure or reconcile a project for linked-intent development (LID). Dispatches on project state — fresh bootstrap, append directives to an existing agent-instructions file (AGENTS.md or CLAUDE.md), add missing mode marker, reconcile convention drift, or run mode transitions. Invoked as /update-lid. For fresh projects with no LID artifacts, users typically invoke /linked-intent-dev (the workflow skill) instead and the workflow's Phase 1 calls this skill's bootstrap branch.
disable-model-invocation: true

update-lid

Configure or reconcile a project for linked-intent development. Dispatches on project state — do not re-run unconditionally.

Invoked as `/update-lid`. The skill handles both initial bootstrap and ongoing reconciliation; the user's mental model differs ("set me up" vs. "update what we have") but the behavior dispatches on what's detected in the project, not on the user's framing.

Instruction-file anchor

LID's directives, the `## LID` block, and the navigation table live in the project's **agent-instructions file**. Canonically that is **`AGENTS.md`** (the cross-tool convention Cursor and most agents read), with **`CLAUDE.md` a symlink alias** so Claude Code sees the same content. Never branch on which host you are running under.

  • **Read** (detect directives, mode, version, drift): use `AGENTS.md` if it exists, otherwise `CLAUDE.md`. With the symlink the two are one file.
  • **Fresh bootstrap (write)**: create `AGENTS.md` and a `CLAUDE.md` symlink pointing at it (`ln -s AGENTS.md CLAUDE.md`). Where symlinks are unavailable (e.g. Windows without Developer Mode), instead write a `CLAUDE.md` whose only content is `@AGENTS.md`.
  • **Existing project (write)**: update the file that already exists, in place. A project that already uses `CLAUDE.md` keeps it — do not migrate it to `AGENTS.md`.

Below, *the instruction file* means the file chosen by these rules.

Detection signals

Use these exact detection rules — do not guess or use fuzzy matching.

  • **LID directives present**: `grep` for the literal strings `"linked-intent-dev"` or `"Linked-Intent Development"` in the instruction file. Either match indicates LID directives are already installed.
  • **LID metadata block present**: `grep` for a `## LID` heading in the instruction file. The block carries two bullets:
  • `- Mode: {Full|Scoped}` — the project's LID mode. Case-insensitive on the mode name; whitespace tolerated.
  • `- Version: {X.Y.Z}` — the `linked-intent-dev` plugin version the project's docs conform to. A project with a `## LID` block but no `- Version:` bullet is treated as **predating versioned conventions (no `- Version:` bullet)** (walk from the start).
  • **Project version vs. installed version**: read `- Version:` from the `## LID` block and compare it to the installed `linked-intent-dev` plugin version (the `version` field in `plugins/linked-intent-dev/.claude-plugin/plugin.json`, the canonical LID conventions version). When the project version is lower, the project lags and version-walk applies.
  • **Arrow-maintenance overlay present**: `docs/arrows/` directory exists at the project root.
  • **Convention drift**: any of the required directories missing (`docs/intent/`, `docs/high-level-design.md`); the instruction-file directive sections diverge from the current template, including a **malformed `## LID` block** (heading other than a bare `## LID`, mode merged into the heading as `## LID Mode: Full`, a missing `- Mode:` or `- Version:` bullet, or stray non-template bullets); a design doc whose `prefix:` frontmatter is an **array** (an unresolved multi-prefix marker — see Version-walk); or a node folder holding **more than its `<node>-design.md` + optional `<node>-specs.md` pair** (an un-promoted sub-LLD left as extra files). The last two are detected independently of version lag — a project already at the installed version still has them re-surfaced by reconcile-conventions, and handled the same way (surfaced with a recommended resolution, never silently left or auto-resolved).

Re-check all detection signals on every invocation. Installing `arrow-maintenance` after initial setup, for example, should trigger an arrow-navigation-row update on the next `/update-lid` run.

State dispatch

Inspect the project and take exactly one of these actions:

| Detected state | Action | |---|---| | No instruction file, no `docs/` | **Full bootstrap** — create required directories, create the instruction file (`AGENTS.md` + `CLAUDE.md` symlink, per *Instruction-file anchor*) with LID directives + `## LID` block (`- Mode:` + `- Version:` set to the installed `linked-intent-dev` version). | | Instruction file exists, no LID directives | **Append directives** — append the LID directives block to the existing instruction file without overwriting existing content. Create `docs/` if missing. | | LID directives present, no `## LID` block (or no `- Mode:` bullet) | **Add or normalize the LID block** — default mode Full, `- Version:` set to the installed version. If a malformed `## LID` heading already exists (mode merged into the heading, e.g. `## LID Mode: Full`, or stray non-template bullets), rewrite it in place to the canonical `## LID` + `- Mode:` + `- Version:` form rather than appending a second block. | | Project `- Version:` lower than the installed version (or `- Version:` absent → predating versioned conventions) | **Version-walk** (see below) — propose the intervening CHANGELOG migrations, confirm, apply mechanical / surface judgment, refresh `- Version:`. | | LID directives + `## LID` block at the installed version, no mode change requested | **Reconcile conventions** — check for convention drift (missing directories or files, outdated instruction-file sections) and surface each detected difference as a proposed update requiring user confirmation. | | Fully configured, no drift, version current, no mode change requested | **Inform and skip** — tell the user what was detect

Read more
Ships withlid

A structured design-before-code methodology for agentic coding. Stop building the wrong thing — get alignment on what before writing how. Works with any coding agent that reads per-project instructions.

Get the whole plugin

Other skills on lid.