From lumin-repo-lens
Runs pre-write reuse screening and post-write delta checks for TS/JS code changes. Infers intent from plain language, checks for existing code before adding/refactoring/moving/renaming, and validates changes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lumin-repo-lens:lumin-repo-lens-write-gateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This is the code-change transaction surface for lumin-repo-lens. It owns
This is the code-change transaction surface for lumin-repo-lens. It owns
pre-write and post-write together because post-write reads the
pre-write-advisory.<invocationId>.json produced by the same change.
Keep the human-facing answer short and kind. The assistant reads the cold artifacts; the human gets the next concrete step.
NO STRUCTURAL CLAIM WITHOUT MACHINE EVIDENCE
NO ABSENCE CLAIM WITHOUT STATED SCAN RANGE
Use hedging like "looks like" only when the internal label is degraded
or unknown.
The shared engine lives in the sibling audit skill:
node ${CLAUDE_PLUGIN_ROOT}/skills/lumin-repo-lens/scripts/audit-repo.mjs
In a maintainer checkout, the equivalent command is:
node audit-repo.mjs
Slash commands still read <SKILL_ROOT>/references/command-routing.md from the
shared audit skill for exact flag routing.
Below, <SKILL_ROOT> means
${CLAUDE_PLUGIN_ROOT}/skills/lumin-repo-lens in plugin
installs, or the repo root in a maintainer checkout.
Below, <audit-repo> means whichever of the two commands above applies
to the current context.
This surface owns /lumin-repo-lens:pre-write and
/lumin-repo-lens:post-write.
<SKILL_ROOT>/references/command-routing.md first for
slash-command routing.<SKILL_ROOT>/references/pre-write-intent-shape.md before constructing or
repairing intent JSON.<SKILL_ROOT>/canonical/pre-write-gate.md for the pre-write protocol,
domain-cluster hints, exact shape lookup, and advisory language.<SKILL_ROOT>/canonical/any-contamination.md for planned type escapes,
contaminated reuse demotion, and post-write escape deltas.<SKILL_ROOT>/references/lifecycle-modes.md when exact flags, exit codes, or
artifact names matter.<SKILL_ROOT>/references/glossary.md and
<SKILL_ROOT>/references/false-positive-index.md when advisory output
surfaces FP/tier terms that need explanation. The long FP case ledger
is maintainer-only; do not load it for ordinary pre-write/post-write.Run before adding, implementing, refactoring, moving, renaming, or extending code when a compact intent can be inferred.
Do not ask normal chat users to hand-write JSON. Infer the smallest
intent you can from the request, stream it via --intent - or write a
temporary intent file, then run:
<audit-repo> --pre-write --root <repo> --output <dir> --intent <file|->
Read the invocation-specific advisory path printed by pre-write before
coding during the same uninterrupted change transaction. It is also
recorded as artifactPaths.invocationSpecific in the advisory JSON and
as manifest.preWrite.advisoryPath when run through the orchestrator.
pre-write-advisory.latest.json is only a convenience pointer; use the
explicit pre-write-advisory.<invocationId>.json path for post-write
across session or task boundaries.
Planned file paths may be grounded NEW_FILE and still carry
DOMAIN_CLUSTER_DETECTED when the same directory already has a matching
prefix, suffix, or domain-token family. Treat that as a reuse/review hint
before creating a new owner file.
P4 shape lookup is exact. Prefer shape.typeLiteral or shape.hash in
the intent when asking for shape reuse. Field-name-only shapes are
reported as unknown, not fuzzy matches.
Report existing owners/helpers/types/dependencies in plain language, with compact proof only when needed.
Run after the same change when a pre-write advisory exists:
<audit-repo> --post-write --root <repo> --output <dir> --pre-write-advisory <advisory>
Check:
intent.filesIf post-write cannot find the advisory, say that the post-write check is
unknown and name the missing file. Do not invent a clean result.
Do not use pre-write-advisory.latest.json after another pre-write run
has happened; rerun pre-write or pass the invocation-specific advisory.
Use four short blocks when reporting to a human:
Keep raw JSON paths, FP ids, and tier names behind the answer unless the user asks for proof or maintainer detail.
If the user shifts to repo-wide structure, dead code, cycles, or a
refactor-plan, hand off to lumin-repo-lens. If the user shifts
to canonical draft or drift validation, hand off to lumin-repo-lens-canon.
npx claudepluginhub annyeong844/lumin-repo-lens --plugin lumin-repo-lensAudits TypeScript/JavaScript repos for structural debt: dead exports, cycles, oversized modules, duplicate helpers, naming drift, and refactor plans with machine evidence.
Reviews git-tracked code changes for reuse opportunities, quality issues, architecture compliance, missed shared components, unnecessary complexity, and boundary violations. Use after implementation.
Assesses risk and impact before modifying, refactoring, or deleting files in a Repowise-indexed codebase. Flags hotspots, dependents, co-change patterns, and test gaps.