NestJS Expert
Jeffallan/claude-skills
Scaffolds NestJS modules, controllers, services, DTOs and guards for TypeScript backends, with validation, JWT and Passport auth, Swagger docs and unit and E2E tests.
Defines the nestia product contract, workspace layout, package boundaries, the Go plugin composition model, and canonical commands.
$ npx skills add samchon/nestia --skill project -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install samchon/nestia project --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/samchon/nestia.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/project .claude/skills/project && 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 "project" agent skill from https://github.com/samchon/nestia/tree/master/.agents/skills/project into .claude/skills/project/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project", 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/samchon/nestia/tree/master/.agents/skills/projectType 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 samchon/nestia --skill project -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install samchon/nestia project --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samchon/nestia.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/project .agents/skills/project && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "project" agent skill from https://github.com/samchon/nestia/tree/master/.agents/skills/project into .agents/skills/project/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project", 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 samchon/nestia --skill project -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install samchon/nestia project --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samchon/nestia.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/project .cursor/skills/project && 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 "project" agent skill from https://github.com/samchon/nestia/tree/master/.agents/skills/project into .cursor/skills/project/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project", 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/samchon/nestia.git --path .agents/skills/project--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 samchon/nestia --skill project -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install samchon/nestia project --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samchon/nestia.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/project .gemini/skills/project && 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 "project" agent skill from https://github.com/samchon/nestia/tree/master/.agents/skills/project into .gemini/skills/project/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project", 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 samchon/nestia projectInstalls 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 samchon/nestia --skill project -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/samchon/nestia.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/project .github/skills/project && 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 "project" agent skill from https://github.com/samchon/nestia/tree/master/.agents/skills/project into .github/skills/project/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project", 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 samchon/nestia --skill project -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install samchon/nestia project --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samchon/nestia.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/project .opencode/skills/project && 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 "project" agent skill from https://github.com/samchon/nestia/tree/master/.agents/skills/project into .opencode/skills/project/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project", 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.
projectDefines the nestia product contract, workspace layout, package boundaries, the Go plugin composition model, and canonical commands.
Project is an agent skill from samchon/nestia. Defines the nestia product contract, workspace layout, package boundaries, the Go plugin composition model, and canonical commands. Use when orienting in the repository, working inside any package, or choosing a build, test, or format command.
Its SKILL.md is about 3k 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 Backend & APIs, covering OpenAPI specifications. It works with OpenAPI, NestJS and TypeScript. The repository describes itself as: NestJS Helper + AI Chatbot Development. The licence is MIT.
Read from SKILL.md and the folder at commit d3627e8. 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:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, 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.
Project loads about 3k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 1,456 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 samchon/nestia at commit d3627e8, republished under its MIT licence (© samchon). 1,456 words, ~2,998 tokens.
.claude/skills/project/SKILL.md (or your agent's skills folder).Nestia is a set of NestJS helper libraries built around one idea: a pure TypeScript type definition should replace the stack of decorators, validators, transformers, and Swagger annotations that NestJS normally needs. The compile-time transform reads those types and injects everything else.
All eight packages publish from packages/* at one shared version and move together on release:
@nestia/core: typed request/response decorators for NestJS controllers (TypedRoute, TypedBody, TypedParam, TypedQuery, TypedFormData, TypedHeaders, TypedException, WebSocketRoute, McpRoute, and the Swagger customizers). Replaces class-validator and class-transformer with type-driven validation and serialization. Owns the shared Go transform under native/.@nestia/sdk: generators for Swagger documents, typed SDK libraries, mockup simulators, and automatic e2e suites, driven by the nestia CLI. Its Go code under native/sdk is a contributor linked into the @nestia/core host binary, not a second plugin. website/src/content/docs/setup.mdx documents it as a runtime dependency, not a dev dependency: the Go binary must resolve it, and NestiaSwaggerComposer consumers need it at runtime anyway.@nestia/fetcher: the typed fetch runtime that generated SDKs sit on. Plain and AES-encrypted variants, with simulation support for mockup mode.@nestia/migrate: converts a Swagger/OpenAPI document into a NestJS project or SDK. Generated templates ship without interactive dependencies.@nestia/e2e: test utilities for hand-written and generated e2e suites. DynamicExecutor discovers test functions by prefix; TestValidator, ArrayUtil, and RandomGenerator are the shared assertion and data helpers.@nestia/benchmark: a published load-test runner (DynamicBenchmarker) that drives e2e functions and emits markdown reports for a user's own server.@nestia/editor: Swagger UI with an embedded cloud TypeScript editor, shipped as both a static app and a NestiaEditorModule library.nestia: the CLI binary that drives @nestia/sdk.Downstream projects (@agentica, @autobe) build on this stack but are not part of this repository's contract.
Decorator names, INestiaConfig options, CLI flags, the @nestia/fetcher runtime surface, and the generated SDK / Swagger / e2e output are all public. Renaming or removing any of them is a deliberate, separate change.
A single Go binary performs the compile-time transform that injects validators, stringifiers, and SDK metadata. There is no TypeScript-side transformer, and reintroducing one is out of bounds.
packages/core/package.json is the only package that registers a ttsc plugin:
"ttsc": { "plugin": { "transform": "@nestia/core/native/transform.cjs" } }That manifest target, packages/core/native/transform.cjs, is the operative descriptor. It declares three things:
source: the Go entrypoint at <@nestia/core root>/native/cmd/ttsc-nestia, which ttsc compiles into a binary on first use.composes: ["typia/lib/transform"]: the typia transform is composed in rather than reimplemented.contributors: <@nestia/sdk root>/native/sdk, resolved and added only when @nestia/sdk is resolvable from the consuming project.@nestia/core/lib/transform, the plugin path nestia v11 documented, is exported as the same native/transform.cjs file, so a v11 plugin list resolves to this one descriptor and ttsc's package auto-discovery deduplicates it; a descriptor of its own built a second native host beside the composed typia entry and failed the build (#1690). packages/sdk/src/transform.ts is also a plugin descriptor, not a transformer: it resolves its installed package root through createRequire(...).resolve("@nestia/sdk/package.json") and returns the Go entrypoint. packages/sdk deliberately has no ttsc key: its Go source is package sdk, a non-main package that ttsc statically links into the core host binary. Adding a second plugin entry for @nestia/sdk is a misconfiguration for new projects, as the plugin descriptor and compatibility tests establish; the SDK's linked plugin still honors such an entry from a v11 plugin list and attaches SDK metadata in every build, as v11 did.
Consumers reach the binary through ttsc / ttsx and the published descriptors. TypeScript test workspace entries use cross-env to carry the NODE_OPTIONS="--no-experimental-strip-types --no-experimental-detect-module" that Node 24 needs. The Evidence process suite runs plain Node.
Canonical test commands and independently invoked SDK and migration integrations resolve TTSC_CACHE_DIR and TTSC_GO_CACHE_DIR against the repository root before changing workspaces. Defaults use node_modules/.cache/ttsc and its go-build child for native plugins and Go units; explicit GOCACHE and toolchain settings retain caller ownership. Go's own toolchain and input keys govern object reuse. Unit entries consume already-built package artifacts. SDK and migration integration entries own their necessary consumer, compiler and runtime connections; tests/test-e2e contains only direct units of packages/e2e. Test-language preparation is recorded separately from integration preparation.
packages/*: the eight published packages. The shared Go plugin lives under packages/core/native (module github.com/samchon/nestia/packages/core/native, with cmd/ttsc-nestia and the transform/ tree); the SDK contributor lives under packages/sdk/native/sdk. Both native/go.work files carry the same fifteen replace directives: fourteen redirect the github.com/microsoft/typescript-go/shim/* modules to a pinned github.com/samchon/ttsc pseudo-version, and the fifteenth redirects github.com/samchon/ttsc/packages/ttsc itself.packages/core/test and packages/sdk/test: the Go unit-test modules, each its own module — core's replaces ../native, the SDK's replaces both ../native and ../../core/native. Native production trees carry no test files. Emitted-validator execution against installed runtimes belongs to SDK integration; pure option and provenance decisions belong to the native unit modules.tests/test-*: the workspaces are test-benchmark, test-cli, test-e2e, test-editor, test-migrate and test-sdk. test-e2e owns only direct packages/e2e units. SDK and migration workspaces separate direct units from necessary integration execution; the retired transform-options workspace's portable decisions belong to Go units and its installed boundaries share SDK preparation. See development for actual-call-path classification and assertion-preservation rules.tests/config/tsconfig.json: the shared strict base config. Pure unit workspaces and the integrated E2E fixture extend it at their actual relative depth. Not a package.config/: @nestia/config, the private workspace holding shared rolldown and tsconfig build configuration and test artifact/cache preparation under testing/.benchmark/: @samchon/nestia-benchmark, the private measurement workspace, with committed per-CPU results under benchmark/results/**. See .agents/skills/benchmark/SKILL.md.website/: the Nextra site published at https://nestia.io, with guides under website/src/content/docs/**. See .agents/skills/documentation/SKILL.md.deploy/: release scripts — tarballs/index.js (topologically ordered pnpm pack) and copy-readme.cjs (copies the root README into every packages/* directory; root package:prepare runs it after the full build).The build, test, and release workflows run Node 24.x with Go taken from packages/core/native/go.mod; website.yml runs lts/* and installs no Go. The workspace pins pnpm exactly to 10.6.4.
The build and test jobs use the same ttsc cache configuration under node_modules/.cache/ttsc, including compiled plugin binaries, Go objects and downloaded Go modules. Their workflow names distinguish immutable save keys; test populations restore before build populations so an earlier package build cannot prevent saving newly prepared test artifacts. Master builds seed caches available to later pull requests. Keys include the selected Go version, dependency lock, native sources and Go module inputs; ttsc independently validates binary inputs and Go validates object inputs. Migration templates are generated from their pinned revisions rather than retained in the Actions archive. SDK consumers share the installed public TtscCompiler API per producer/consumer phase; configurations and metadata naming scopes remain explicit, and the harness builds no separate Go executable.
pnpm install
pnpm format
pnpm build
pnpm testpnpm test runs the ordinary build, Evidence, Go units, TypeScript units and integrations in sequence, stopping on failure. CI follows the same ordinary failure behavior without step conditions. Units call owning operations directly and keep editor SSR/browser initialization in separate processes. The SDK module integration entry prepares one public installation for SDK and migration and retains both owner results; each owner consolidates its actual compiler, generated-consumer, backend and worker preparation. tests/test-e2e remains the direct packages/e2e unit workspace. Different connection semantics belong to their integration owner and must not preserve obsolete per-feature compiler loops.
test.yml owns all tests in one job without a matrix or shards: one installation and package build feed Evidence, Go, pure TypeScript units and integrated E2E. Steps use ordinary sequential execution and stop after failure. Target eight minutes through shared preparation and direct unit semantics; record actual full job duration without dropping coverage, retrying away failures or imposing an eight-minute cutoff.
pnpm format is one Prettier invocation over packages/**/*.ts and tests/**/*.ts. It does not touch Go, Markdown, MDX, the website, or the benchmark workspace. .prettierignore additionally excludes the trees packages/migrate's prepare script regenerates, so formatting them cannot produce a change a commit could carry.
pnpm format:check is the same invocation in read-only mode, and format.yml runs it on every pull request. It is its own workflow because a paths: filter is per workflow, and neither build.yml nor test.yml covers the whole formatter target set.
Keep those targets in one invocation. A chained && lets an unmatched pattern silently drop every target after it: the script once chained three invocations, the second over an internals/**/*.ts directory that does not exist, and because Prettier exits 2 on a glob that matches nothing, tests/**/*.ts was never formatted at all.
Release-time commands (most contributors skip these): pnpm package:rc, pnpm package:next, pnpm package:latest, and pnpm release. Every package:* command first runs package:prepare, which builds all packages (the @nestia/migrate build regenerates its template bundles first) and copies the root README into each of them, and only then publishes or packs; no package declares a publish-time lifecycle hook (prepack, prepare, prepublishOnly), so nothing builds or clones during publish and any failure aborts before anything is uploaded rather than after some packages already went out. pnpm package:tgz stages local tarballs in deploy/tarballs/, which the website build then installs. See .agents/skills/pull-request/SKILL.md for the remote delivery flow.
© samchon, 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 .agents/skills/project of samchon/nestia.
Open the folder on GitHubat commit d3627e8
Project 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 |
|---|---|---|---|---|---|---|
| Project this skillsamchon/nestia | 2.2k | — | ~3k | Automated safety check: Pass | MIT | |
| NestJS ExpertJeffallan/claude-skills | 12k | — | ~2k | Automated safety check: Pass | MIT | |
| OpenAPI to MCP Servermcp-use/mcp-use | 11k | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Backendredis/RedisInsight | 8.9k | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| Api2clialexknowshtml/api2cli | 455 | — | ~2.9k | Automated safety check: Pass | MIT | |
| API ContractChenyCHENYU/Robot_Admin | 1k | — | ~1.9k | Automated safety check: Pass | MIT |
Jeffallan/claude-skills
Scaffolds NestJS modules, controllers, services, DTOs and guards for TypeScript backends, with validation, JWT and Passport auth, Swagger docs and unit and E2E tests.
mcp-use/mcp-use
Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.
redis/RedisInsight
NestJS backend development patterns for the RedisInsight API: module structure, services, controllers, DTOs, dependency injection, and error handling.
alexknowshtml/api2cli
Generate a working CLI from any API, then wrap it in a Claude Code skill.
ChenyCHENYU/Robot_Admin
A skill your agent uses when: generating TypeScript API layer (type definitions + request functions) from page-spec JSON or Swagger/OpenAPI docs.
scalar/scalar
Write clear, predictable TypeScript and Vue TypeScript code with strong typing, maintainability, and consistent documentation conventions.
samchon/nestia
Defines self-acknowledgments for production declarations and tests.
samchon/nestia
Defines the default solo repository-wide issue campaign for nestia: exhaustive discovery, lead-vetted issue publication, one unified CI-validated implementation pull request per cycle, solo…
samchon/nestia
Defines nestia branch, commit, pull-request, check, and merge workflows.
samchon/nestia
Defines exhaustive solo review, Self-Review, and solo repository-wide issue-discovery rounds for nestia.
samchon/nestia
Defines nestia implementation rules, testing standards, validation, consequence analysis, and change integrity.
samchon/nestia
Runs structured multi-agent discussions for open-ended nestia topics.
Works with
Categories
Defines the nestia product contract, workspace layout, package boundaries, the Go plugin composition model, and canonical commands. Project is an agent skill from samchon/nestia. Defines the nestia product contract, workspace layout, package boundaries, the Go plugin composition model, and canonical commands.
Project fits situations like: orienting in the repository; working inside any package; choosing a build.
Run `npx skills add samchon/nestia --skill project -a claude-code`. Or copy the skill folder (.agents/skills/project in samchon/nestia) into .claude/skills/project in your project. Claude Code loads it when a task matches its description.
Run `npx skills add samchon/nestia --skill project -a codex`. Or copy the skill folder (.agents/skills/project in samchon/nestia) into .agents/skills/project 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 samchon/nestia --skill project -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project, .gemini/skills/project, .github/skills/project and .opencode/skills/project in your project.
Going by SKILL.md and its folder, Project needs the command-line tools its instructions call (pnpm).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Project is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k 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 Project: NestJS Expert (Jeffallan/claude-skills, 12k stars), OpenAPI to MCP Server (mcp-use/mcp-use, 11k stars), Backend (redis/RedisInsight, 8.9k stars) and Api2cli (alexknowshtml/api2cli, 455 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
samchon (a GitHub user) maintains it in samchon/nestia, which has 2,179 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.
Source: samchon/nestia on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.