From linked-intent-dev
Sets up or updates projects for linked-intent development (LID), dispatching on state for bootstrap, CLAUDE.md directive appends, mode marker addition, convention reconciliation, or mode transitions.
npx claudepluginhub jszmajda/lid --plugin linked-intent-devThis skill uses the workspace's default tool permissions.
Bootstrap or update a project for linked-intent development. Dispatches on project state — do not re-run setup unconditionally.
Verifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Guides root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
Share bugs, ideas, or general feedback.
Bootstrap or update a project for linked-intent development. Dispatches on project state — do not re-run setup unconditionally.
Invocable as /lid-setup (the primary name) or /update-lid (alias for users whose mental model prefers a separate update verb). Both route to this skill; the behavior dispatches on what's detected in the project, not on which name was used.
Use these exact detection rules — do not guess or use fuzzy matching.
grep for the literal strings "linked-intent-dev" or "Linked-Intent Development" in CLAUDE.md. Either match indicates LID directives are already installed.grep for a line matching ## LID Mode: followed by Full or Scoped. Case-insensitive on the mode name; whitespace around the heading tolerated.docs/arrows/ directory exists at the project root.docs/llds/, docs/specs/, docs/high-level-design.md), or the CLAUDE.md directive sections diverge from the current template.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.
Inspect the project and take exactly one of these actions:
| Detected state | Action |
|---|---|
No CLAUDE.md, no docs/ | Full bootstrap — create required directories, create CLAUDE.md with LID directives + mode marker. |
CLAUDE.md exists, no LID directives | Append directives — append the LID directives block to existing CLAUDE.md without overwriting existing content. Create docs/ if missing. |
LID directives present, no ## LID Mode: heading | Add mode marker with default Full. |
| LID directives + mode marker, no mode change requested | Reconcile conventions — check for convention drift (missing directories or files, outdated CLAUDE.md sections) and surface each detected difference as a proposed update requiring user confirmation. |
| Fully configured, no drift, no mode change requested | Inform and skip — tell the user what was detected (mode, overlay presence, directory status) and exit without changes. |
| Mode change requested (Scoped ⇄ Full) | Run mode transition (see below). |
During a full bootstrap, prompt the user for the intended mode with Full LID as the default. For users uncertain which to pick, describe the difference before requesting a choice:
If the user does not specify a mode, select Full.
When mode is Scoped, prompt for scope patterns before writing CLAUDE.md. Ask the user:
Write the answers into a ## LID Scope section immediately after the ## LID Mode: Scoped heading:
## LID Mode: Scoped
## LID Scope
Paths in scope:
- `src/auth/**`
- `packages/billing/**`
Paths explicitly excluded:
- `src/auth/legacy/**`
- `**/*.test.ts`
When mode is Full, do not write a ## LID Scope section. Its absence means "entire project in scope."
Caller-provided mode. When this skill is invoked by another skill (for example, /map-codebase at its terminal verification step) that has already determined the mode from its own scope question, the caller passes the mode — and, if Scoped, the scope patterns — through, and this skill honors them without re-prompting. Re-prompting the user for a mode at the end of a long mapping session is a bad UX; the scope question the caller already asked is the mode decision.
Persist the mode in CLAUDE.md under a ## LID Mode: {Full|Scoped} heading. This is the sole source of truth for mode detection by the linked-intent-dev skill.
## LID Scope section following the format above.## LID Scope section from CLAUDE.md./update-lid and pass the new scope patterns; the skill rewrites the ## LID Scope section in place.linked-intent-dev consult.docs/llds/, docs/specs/, docs/high-level-design.md). Where multiple scoped arrows have overlapping components, surface the overlaps to the user one pair at a time and ask for reconciliation. Do not merge automatically.Ensure this layout in the project root, creating any missing:
docs/high-level-design.md (populated from the HLD template in plugins/linked-intent-dev/skills/linked-intent-dev/references/hld-template.md)docs/llds/docs/specs/Do not create docs/planning/. Plans are agent-native; LID does not require the directory.
When docs/arrows/ is detected, include extra navigation rows in the CLAUDE.md directives template — pointing at docs/arrows/index.yaml and per-segment arrow docs — as part of the project's navigation table. When docs/arrows/ is absent, omit these rows. Re-check this signal on every invocation.
docs/planning/ handlingWhen invoked as /update-lid on a project containing a docs/planning/ directory (leftover from earlier LID eras):
The linked-intent-dev skill itself ignores this directory — it is not part of the required arrow.
The skill is idempotent. Running it twice on a well-configured project produces no changes. When the project is already fully configured and no changes are needed, do not silently no-op. Tell the user what was detected — mode, overlay presence, directory status — so they know the skill ran and found nothing to do.
Similarly, when convention drift is detected but the user declines every proposed update, still summarize what was found before exiting.
After making any file changes (bootstrap, append directives, mode transition, drift reconciliation):
CLAUDE.md.The user should never have to git diff the repo to understand what the skill just did.
When appending the LID directives block to an existing CLAUDE.md, preserve all existing content. Append, don't overwrite.
references/claude-md-template.md — the LID directives block to append to CLAUDE.md.