jszmajda/lid/lid-coach
Claude Code and agent skill by jszmajda/lid
- community
Checking that the SKILL.md file is still in the repository.
Review a project's current linked-intent-development (LID) usage against LID's own principles and produce a prioritized report of recommendations for getting more out of the methodology. Invoke when the user runs /lid-coach, asks for a LID review, asks how they could use LID better, wants feedback on their LID setup, or asks what LID antipatterns might be present in their project. This is a principle-level advisory review, distinct from /update-lid (configuration reconciliation) and /arrow-main…
Install
npx vskill@latest install jszmajda/lid/lid-coachSKILL.md
LID Coach
Reviews a project's current LID usage against LID's own principles and produces a prioritized set of recommendations. The posture is advisory: the project works; this skill tells the user where patterns are drifting from LID's principles or leaving value on the table.
This skill is invoked only by the /lid-coach command. It does not auto-trigger — a principle review reads a broad slice of the project and would be wasteful to fire opportunistically.
What this skill is not
- Not a configuration reconciler. That is
/update-lid. When a finding implies a configuration change, point the user there. - Not a structural auditor. That is
/arrow-maintenance(when the overlay is installed). When a finding is structural in nature — orphans, reverse orphans, adjacent-level coherence,index.yamldrift — surface the pattern and recommend/arrow-maintenancefor the precise enumeration. Do not attempt to enumerate structural instances from sampled reads. - Not a file editor. Advisory posture is load-bearing. Produce the report; the user applies.
Dispatch
On invocation, inspect the project and take exactly one of these actions:
| Detected state | Action | |
|---|---|---|
No instruction file (the project's AGENTS.md, or CLAUDE.md under Claude Code) and no LID-shaped artifacts anywhere in the project (no HLD, no LLDs, no specs, no arrow overlay) | Inform the user the project is not LID-configured; recommend /update-lid. Do not proceed with coaching. | |
| The instruction file absent or missing LID directives but the project has LID-shaped artifacts (see threshold below) | Proceed with a full review anchored on the existing artifacts (default Full mode). Surface the missing (or precursor-named) instruction-file directives as a high-priority finding recommending /update-lid to reconcile. | |
LID directives present, but docs/intent/ or docs/high-level-design.md is missing | Proceed with a reduced review of what exists. Surface each missing piece as a high-priority finding and recommend /update-lid to reconcile. | |
Scoped mode with missing or empty ## LID Scope | Surface the misconfiguration as a high-priority finding. Run a conservative project-wide review treating all paths as in-scope. | |
docs/arrows/index.yaml present but cannot be parsed | Flag corruption to the user before any principle review. Offer either to proceed with a reduced review treating the overlay as absent, or to pause for the user to repair. | |
| Fully configured (directives + mode marker + standard directories; Scoped with valid scope) | Proceed with a full review. |
When is a project "LID-shaped"?
The coach treats a project as LID-shaped when any one of these is true:
docs/high-level-design.mdexists with non-trivial content.docs/intent/contains at least one.mdfile other thanREADME.mdorindex.md.- a
*-specs.mdfile exists in thedocs/intent/tree. docs/arrows/index.yamlexists.
The threshold is deliberately lenient. A populated arrow overlay is the strongest possible signal that a project is "doing LID"; if the instruction file uses a precursor name (e.g., design-driven-dev) or lacks the directive block entirely, that is drift to surface, not a reason to refuse coaching. Refusing to coach a visibly LID-shaped project is a false negative the coach was specifically designed to avoid — the user spent the effort to build the arrow; your job is to meet them there.
"Fully configured" is a structural check, not a content one. An empty-but-present HLD or LLD directory does not block coaching — content completeness becomes a finding, not a dispatch condition.
Detection rules
Use these exact signals:
- LID directives:
grepfor"linked-intent-dev"or"Linked-Intent Development"in the instruction file. - Mode marker:
grepfor the## LIDblock's- Mode:bullet, with valueFullorScoped(case-insensitive, whitespace tolerated). Default Full when the block or bullet is absent. - Scope declaration: the
## LID Scopesection in the instruction file, with include and optional exclude bullet lists. - Arrow-maintenance overlay:
docs/arrows/directory exists.
Inputs — what to read
Build the review from these sources:
- the instruction file — mode marker, scope declaration if Scoped, directive-block coherence.
docs/high-level-design.md— section coverage, evidence of active intent vs. boilerplate, presence of implementation detail that belongs downstream.docs/intent/*.md— count (one per intent component?), granularity, alignment with HLD architecture, presence of history/changelog residue, presence of[inferred]markers in Decisions & Alternatives.- the
*-specs.mdfiles in thedocs/intent/tree — EARS format compliance, ID uniqueness and namespacing, status-marker usage, scope disambiguation hygiene,{FEATURE}prefix traceability to LLDs/HLD. - Sampled code and test files —
@specannotation placement (entry-point convention) and coverage of behavioral specs. Do not attempt exhaustive reading; sample strategically. docs/arrows/index.yamland arrow docs when the overlay is present — status markers and drift flags feed cascade-health findings.
Sampling. On a small project, sample by judgment: skim broadly and dig where the principles suggest drift. When the project has more than 15 LLDs or more than 200 files carrying `@spec` annotations, or when docs/arrows/index.yaml exists, read references/sampling.md before reading inputs: it says how to sample complete arrow paths and how the overlay's index guides where to look.
How to run the review
- Dispatch. Apply the table above. If coaching cannot proceed, stop and explain.
- Read inputs. Read the instruction file, the HLD, every LLD, every spec file, and a strategic sample of code + tests. When the overlay is installed, read
index.yamland arrow docs. - Reason with principles. For each review dimension below, compare what you see to the principle's audit signals. Collect findings.
- Cold-read pass through every LID doc. Beyond the dimension-by-dimension review, do one pass through every LID doc as if you have no conversation context at all — no memory of prior chats, no awareness of what "of course" or "as we discussed" might refer to. Future sessions read these docs cold, so the doc must stand on its own without the conversation that produced it. Surface anything unclear, ambiguous, or evidently dependent on context that isn't on the page. The unclear bits are either lost implicit context (state that lived only in the author's chat session and never got written down) or just writing worth tightening — either way, surface them. Do not reduce this to grepping for specific phrases; that misses the deeper pattern.
- Decisions-table sweep. After the dimension pass, revisit every Decisions & Alternatives row you read, with its design doc and the docs above it in hand (the doc tree is what a cold reader gets). First ask: would a cold reader of the landed design still question this choice, or want to reverse it? Most rows stop there and pass, however terse: a parameter whose source is named, a choice the HLD's tenets or Approach already explain, a choice whose alternative and cost are evident from the choice itself. Only for a row that a reader would question, ask: can they reconstruct what was given up and what cost was accepted? A row that fails that is a decision-capture finding (dimension 18).
- Prioritize. High-priority findings are those that block the arrow from being walkable (missing phases, broken linkage, misconfigured scope) or compound over time (accumulation antipatterns, LLD under-specification, implicit-context leaks in load-bearing docs). Medium-priority findings weaken coherence without breaking it. Low-priority findings are quality-of-life improvements.
- Produce the report. Render inline; do not persist to disk unless the user asks.
- Stop. The coach does not iterate. The user reads, decides, and acts.
Trust the declared intent
The coach evaluates drift relative to what the project declared it is, not against a fixed template.
- In Scoped mode, paths outside the declared scope are not reviewed and not gaps. List them in the out-of-scope section.
- In Scoped mode, HLD sections marked "not yet specified" are intentional — do not flag them.
- A Full-mode project with an empty
docs/intent/directory has not yet authored any LLDs; flag this only if there is observed behavior that should have an LLD (an LLD gap), not because the directory is empty.
Do not nag about shape choices the project has deliberately made. The coach's job is to surface drift relative to declared intent, not to enforce a canonical shape against the user's wishes.
When the user asks how to use LID
If /lid-coach is invoked with a question about using LID rather than a request for a review, or the user takes the report's second invitation, do not run or re-run the review. Read references/conversational-guidance.md and references/lid-faq.md, and engage conversationally.
LID principles — the body of theory this skill reasons from
The coach applies these principles as lenses during review. Each principle below carries three parts the coach uses when constructing findings:
- A short description — what the principle says.
- A why it matters layer — what the principle protects against, what compounds if it's ignored. This is the answer the coach draws on when a finding needs to teach, not just correct.
- An audit signal — what drift from the principle looks like in a real project.
Cite principles in findings by name (e.g., "mutation, not accumulation") — not by anchor or numeric ID. Always pair the name with a plain-English gloss inline so a reader new to LID can follow.
These principles are a downstream artifact of LID's own high-level design. When LID's HLD changes, this body cascades via the standard LID-on-LID workflow.
Foundational
- Intent leads; code is compiled output. Specs are the source of truth; code is the compiled result. Code may be regenerated from specs — the reverse is not supported. Why it matters: when spec and code disagree, updating the spec to match the code hides the drift — the system pretends intent changed when really implementation did. The gap compounds session over session, and eventually the project loses the ability to reason about its own behavior at the spec level. Audit signal: code that contradicts specs without either being flagged or updating the spec; specs that are written to describe code after the fact rather than drive it.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/linked-intent-dev/skills/lid-coach/SKILL.md
Popularity
- Repository stars
- 76
- Repository forks
- 13
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/jszmajda/lid/lid-coach)