Skip to content
Development
Skill

/lumin-repo-lens-write-gate

Use before/after TS/JS code changes: add, edit, move, rename, refactor, make a helper/type/file/function, or ask if something already exists. Infer intent from plain language, run pre-write reuse screening, then post-write delta checks.

From plugin
lumin-repo-lens
263 skills9 commands4 hooks
Install
$ npx -y skills add annyeong844/lumin-repo-lens --skill lumin-repo-lens-write-gate --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/lumin-repo-lens-write-gate

Context preview

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

Use before/after TS/JS code changes: add, edit, move, rename, refactor, make a helper/type/file/function, or ask if something already exists. Infer intent from plain language, run pre-write reuse screening, then post-write delta checks.

SKILL.md

lumin-repo-lens-write-gate.SKILL.md
name: lumin-repo-lens-write-gate
description: "Use before/after TS/JS code changes: add, edit, move, rename, refactor, make a helper/type/file/function, or ask if something already exists. Infer intent from plain language, run pre-write reuse screening, then post-write delta checks."

Lumin Repo Lens Write Gate

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.

Core Contract

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`.

Shared Engine

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`.

References To Load

  • Read `<SKILL_ROOT>/references/command-routing.md` first for

slash-command routing.

  • Read `<SKILL_ROOT>/references/pre-write-intent-shape.md` before constructing or

repairing intent JSON.

  • Read `<SKILL_ROOT>/canonical/pre-write-gate.md` for the pre-write protocol,

domain-cluster hints, exact shape lookup, and advisory language.

  • Read `<SKILL_ROOT>/canonical/any-contamination.md` for planned type escapes,

contaminated reuse demotion, and post-write escape deltas.

  • Read `<SKILL_ROOT>/references/lifecycle-modes.md` when exact flags, exit codes, or

artifact names matter.

  • Read `<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.

Pre-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.

Post-Write

Run after the same change when a pre-write advisory exists:

<audit-repo> --post-write --root <repo> --output <dir> --pre-write-advisory <advisory>

Check:

  • silent-new type escapes
  • planned-but-not-observed escapes
  • scan-range parity against the pre-write run
  • unexpected new files in the scan range outside `intent.files`
  • advisory failures plus baseline, capability, and scan-range confidence

If 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.

Output

Use four short blocks when reporting to a human:

1. What I checked 2. What already exists / changed 3. What needs attention 4. Next command or coding-agent prompt

Keep raw JSON paths, FP ids, and tier names behind the answer unless the user asks for proof or maintainer detail.

Hand Off

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`.

Read more
Ships withlumin-repo-lens

🇰🇷 한국어로 읽으시려면 → README.ko.md &nbsp;·&nbsp; 🇬🇧 English continues below. The kind little buddy that says "this already exists" before you write it again. Your repo's companion for vibe-coding sessions.

Get the whole plugin
Stats
26
Stars
2
Forks
Maintained
Maintenance
JavaScript
Language
MIT
License
3mo ago
Last commit
4mo ago
Created

Repo: annyeong844/lumin-repo-lens

Other skills on lumin-repo-lens.