Nx Generate
nomcopter/react-mosaic
Generate code using nx generators. An agent skill from nomcopter/react-mosaic.
Author a new built-in Lagune sub-skill inside the Lagune source, not a scaffolded .lagune/ target.
$ npx skills add wellwelwel/lagune --skill specialize -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wellwelwel/lagune specialize --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/specialize .claude/skills/specialize && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "specialize" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/specialize into .claude/skills/specialize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specialize", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/wellwelwel/lagune/tree/main/.claude/skills/specializeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add wellwelwel/lagune --skill specialize -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wellwelwel/lagune specialize --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/specialize .agents/skills/specialize && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "specialize" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/specialize into .agents/skills/specialize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specialize", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wellwelwel/lagune --skill specialize -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wellwelwel/lagune specialize --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/specialize .cursor/skills/specialize && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "specialize" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/specialize into .cursor/skills/specialize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specialize", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/wellwelwel/lagune.git --path .claude/skills/specialize--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add wellwelwel/lagune --skill specialize -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wellwelwel/lagune specialize --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/specialize .gemini/skills/specialize && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "specialize" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/specialize into .gemini/skills/specialize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specialize", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install wellwelwel/lagune specializeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add wellwelwel/lagune --skill specialize -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/specialize .github/skills/specialize && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "specialize" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/specialize into .github/skills/specialize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specialize", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wellwelwel/lagune --skill specialize -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install wellwelwel/lagune specialize --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/specialize .opencode/skills/specialize && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "specialize" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/specialize into .opencode/skills/specialize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specialize", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
specializeAuthor a new built-in Lagune sub-skill inside the Lagune source, not a scaffolded .lagune/ target.
Specialize is an agent skill from wellwelwel/lagune. Author a new built-in Lagune sub-skill inside the Lagune source, not a scaffolded .lagune/ target. Use when adding or refining a security knowledge module that ships with Lagune, against the native layout (spec/skills/.md plus the catalog).
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Project scaffolding. The repository describes itself as: 🌊 Lagune is your security copilot as you build, your Blue Team when you audit, whether you're a developer or not (no API key needed). The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c97ddfc. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Specialize loads about 1.7k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 752 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from wellwelwel/lagune at commit c97ddfc, republished under its MIT licence (© wellwelwel). 752 words, ~1,719 tokens.
.claude/skills/specialize/SKILL.md (or your agent's skills folder).The end-user command @spec/commands/lagune.specialize.md writes into a scaffolded target project: .lagune/skills/<name>.md and .lagune/skills.json. Neither path exists here. This repo is the Lagune source, where built-in sub-skills live in spec/skills/<name>.md and the catalog is a hardcoded TypeScript array, not a runtime JSON file. There is also no "user" registry: a built-in is registered in code, compiled, scaffolded, and tested.
So you reuse the command's authoring discipline (terrain, defense-only gate, template, tags, reconcile-never-append) but override every output path to the native layout, and you update the registration points the end-user command never has to.
Read and follow @spec/commands/lagune.specialize.md in full. Its authoring steps hold unchanged. The one thing that does not is where files are read and written, since the command targets a scaffolded project and you are in the source. Remap every path it names:
| Command path (end-user target) | Native path (use this instead) |
|---|---|
.lagune/skills/{regex,javascript,browser}.md (worked examples) | every *.md already in spec/skills/ (list the directory, mirror the closest one) |
.lagune/templates/specialize-template.md | spec/templates/specialize-template.md |
@.lagune/specializations.md (list what exists) | read spec/skills/ and SKILLS_CATALOG in src/hooks/skills/catalog.ts |
.lagune/skills/<name>.md (the sub-skill file) | spec/skills/<name>.md |
.lagune/skills.json (catalog entry) | a BuiltinSkillEntry in src/hooks/skills/catalog.ts |
One path it names stays put: a hook reference inside the .md body keeps the ./.lagune/hooks/<x>.mjs form, because that body ships verbatim to the end user and must point at their scaffolded path, not the source.
Every built-in belongs to a category (group), which is how npx lagune add --skills <category> bundles it into a target project. Categories live in SKILL_GROUPS in src/hooks/skills/groups.ts.
python under python, and so on).owasp.SkillGroup to SKILL_GROUPS (key, label, description). Ask the user before inventing one, do not force an unrelated module into owasp to avoid the question.The end-user skills.json has no groups field by default, but the built-in catalog entry does. Set it.
A new built-in is not done when the .md exists. Touch each of these:
spec/skills/<name>.md (Step 1). src/core/assets.ts reads spec/skills/ by directory listing, so the file loads automatically once it is on disk, with no code change.BuiltinSkillEntry { name, tags, groups } to src/hooks/skills/catalog.ts. Without this row the file scaffolds, but .lagune/specializations.md never lists it and add --skills cannot bundle it.SkillGroup to src/hooks/skills/groups.ts, but only when you introduced a new category.test/integration/skills/skills.test.ts iterates SKILLS_CATALOG (e.g. "never repeats the name inside its own tags"), so a new entry is exercised automatically. Check that no count-based or hardcoded-list assertion now fails.test/e2e/init/skills-hook.test.ts and test/e2e/init/manage-cli.test.ts assert scaffold and listing behavior, sometimes by sub-skill name. Update any hardcoded expectation that should now include the new one.test/integration/cli/manifest.test.ts and test/integration/cli/scaffold-groups.test.ts reference specific skill paths like .lagune/skills/regex.md. Update them only when your change alters what a given category scaffolds.npm test. Its pretest hook runs scripts/build.sh first, so the compiled lib/hooks/*.mjs the e2e tests exercise are rebuilt automatically, no separate build step needed. All green before you call it done.website/docs/commands/skills.mdx (around line 48), giving the built-in its category and focus. This table is maintained by hand and drifts silently when a built-in is missing.website/docs/hooks/skills.mdx (# => regex: ...) is illustrative. Update it only when it should showcase the new one.README.md only when it enumerates built-ins.src/core/skills-catalog.ts (the empty user catalog factory), src/hooks/skills/discover.ts (reads the user's .lagune/skills.json), and .lagune/skills.json itself: these are the end-user registry. A built-in never writes there.[ ] spec/skills/<name>.md authored from spec/templates/specialize-template.md (reconciled on a refine)
[ ] src/hooks/skills/catalog.ts BuiltinSkillEntry added { name, tags, groups }
[ ] src/hooks/skills/groups.ts only if a new category was introduced
[ ] tests updated + npm test green
[ ] website/docs/commands/skills.mdx table row addedAs Step 8 of the command: state the name, tags, category, what it covers, and that the phases now load it on demand once shipped (end users import it with @.lagune/skills/<name>.md). Note it shadows any same-named entry on a refine. Suggest a commit such as feat: add specialization in `<name>` defense, matching the wording the existing built-ins use, as a suggestion, not a mandate.
© wellwelwel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/specialize of wellwelwel/lagune.
Open the folder on GitHubat commit c97ddfc
Specialize next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Specialize this skillwellwelwel/lagune | 173 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Nx Generatenomcopter/react-mosaic | 4.8k | 7 repos | ~1.9k | Automated safety check: Pass | Custom licence | |
| PonytailDavidObando/gsharp | 564 | 8 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Run Nx Generatornrwl/nx | 29k | 2 repos | ~592 | Automated safety check: Notes | MIT | |
| Conductor Setupgemini-cli-extensions/conductor | 3.8k | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Mirage VFS Adapter Authoringstrukto-ai/mirage | 3.7k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 |
nomcopter/react-mosaic
Generate code using nx generators. An agent skill from nomcopter/react-mosaic.
DavidObando/gsharp
Forces the laziest solution that actually works, simplest, shortest, most minimal.
nrwl/nx
Run Nx generators with prioritization for workspace-plugin generators.
gemini-cli-extensions/conductor
Scaffolds the project and sets up the Conductor environment.
strukto-ai/mirage
Builds or extends a custom Mirage virtual filesystem adapter for an API, database, object store or app data, with a working mount configuration and filesystem tests.
siteboon/claudecodeui
Enforces this repository's TypeScript backend module architecture under server/: feature folders, barrel exports, and where shared types and utilities belong.
wellwelwel/lagune
Visual verification of a running page through Chrome's DevTools Protocol, capturing screenshots and measuring the rendered DOM.
wellwelwel/lagune
How to simulate a Lagune command end to end so the user sees both the process and the results in chat.
wellwelwel/lagune
Design engineering principles for making interfaces feel polished.
wellwelwel/lagune
Authoritative reference for the Lagune dashboard, a live view of a project's .lagune/ chain with a locked-down local action surface.
wellwelwel/lagune
Authoritative architecture reference for Lagune, covering repository layout, the command/template split, the core/adapter boundary, what it scaffolds, and the tracking-map model.
wellwelwel/lagune
Authoritative engineering reference covering code conventions, comments, TypeScript type rules, testing, and commit messages.
Categories
Author a new built-in Lagune sub-skill inside the Lagune source, not a scaffolded .lagune/ target. Specialize is an agent skill from wellwelwel/lagune.lagune/ target.
Specialize fits situations like: refining a security knowledge module that ships with Lagune; against the native layout (spec/skills/.md plus the catalog).
Run `npx skills add wellwelwel/lagune --skill specialize -a claude-code`. Or copy the skill folder (.claude/skills/specialize in wellwelwel/lagune) into .claude/skills/specialize in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wellwelwel/lagune --skill specialize -a codex`. Or copy the skill folder (.claude/skills/specialize in wellwelwel/lagune) into .agents/skills/specialize in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wellwelwel/lagune --skill specialize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/specialize, .gemini/skills/specialize, .github/skills/specialize and .opencode/skills/specialize in your project.
Going by SKILL.md and its folder, Specialize needs the command-line tools its instructions call (npx and npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Specialize is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Specialize: Nx Generate (nomcopter/react-mosaic, 4.8k stars), Ponytail (DavidObando/gsharp, 564 stars), Run Nx Generator (nrwl/nx, 29k stars) and Conductor Setup (gemini-cli-extensions/conductor, 3.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
wellwelwel (a GitHub user) maintains it in wellwelwel/lagune, which has 173 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 8, 2026.
Source: wellwelwel/lagune on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.