Agent skill

Vss Add Nest Module

by open-edge-platform in open-edge-platform/edge-ai-libraries

Scaffolds and wires a new NestJS service/module for the Video Search & Summarization sample app's pipeline-manager using the repo's real conventions.

Apache-2.0Auto-check passedBackend & APIs

Install Vss Add Nest Module

skills CLI
$ npx skills add open-edge-platform/edge-ai-libraries --skill vss-add-nest-module -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install open-edge-platform/edge-ai-libraries vss-add-nest-module --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/open-edge-platform/edge-ai-libraries.git skills-src && mkdir -p .claude/skills && cp -r skills-src/sample-applications/video-search-and-summarization/.github/skills/vss-add-nest-module .claude/skills/vss-add-nest-module && rm -rf skills-src

Use ~/.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/

Facts

Skill name
vss-add-nest-module
GitHub stars
169
Token cost
~2.5k tokens
SKILL.md length
666 words
Files
23 (incl. scripts, references, assets)
Skills in repo
29
Repo updated
First seen
Licence
Apache-2.0

At a glance

Scaffolds and wires a new NestJS service/module for the Video Search & Summarization sample app's pipeline-manager using the repo's real conventions.

  • Works in 11 steps: Match the repo layout → Create model/DTO files first → Add TypeORM only if the feature persists… → …
  • Asked to add a new service/module to pipeline-manager
  • SKILL.md covers Environment setup (run first), 1. Match the repo layout, 2. Create model/DTO files first and 3. Add TypeORM only if the…, plus 8 more sections
  • Runs TypeScript scripts from its folder; calls npm and bash

What it does

Vss Add Nest Module is an agent skill from open-edge-platform/edge-ai-libraries. Scaffolds and wires a new NestJS service/module for the Video Search & Summarization sample app's pipeline-manager using the repo's real conventions. Use when asked to add a new service/module to pipeline-manager, extend the VSS orchestrator, add a new endpoint/queue/event to pipeline-manager, or scaffold a NestJS module the repo way for the video-search-and-summarization sample app.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 30 other files, including scripts, reference files and assets (for example `BENCHMARK.md`, `assets/module-template/controllers/example.controller.ts` and `assets/module-template/example.module.ts`).

It sits in Backend & APIs, covering Summarization and Project scaffolding. It works with NestJS, OpenAPI and TypeORM. The repository describes itself as: Libraries, microservices, tools, and other reference software, supporting development of performance-optimized Edge AI applications. The licence is Apache-2.0.

When your agent uses it

  • Asked to add a new service/module to pipeline-manager
  • Extend the VSS orchestrator
  • Add a new endpoint/queue/event to pipeline-manager
  • Scaffold a NestJS module the repo way for the video-search-and-summarization sample app

Example prompts

  • “s pipeline-manager using the repo”
  • “Use the vss-add-nest-module skill to scaffold and wires a new NestJS service/module for the Video Search & Summarization sample app's…”
  • “/vss-add-nest-module”

Requirements

  • Node.js

Workflow steps

11 steps, taken from the step headings in SKILL.md.

  1. Match the repo layout
  2. Create model/DTO files first
  3. Add TypeORM only if the feature persists data
  4. Keep controllers thin and Swagger-tagged
  5. Use DI through modules, not ad hoc construction
  6. Add events using the central enums
  7. Use the repo queue pattern for background work
  8. Send UI updates through SocketEvent + EventsGateway
  9. Read configuration through ConfigService
  10. Register the module in root wiring
  11. Validate

What it can do on your machine

Read from SKILL.md and the folder at commit cdf860c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (TypeScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • npm
    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Vss Add Nest Module loads about 2.5k tokens when it runs, and up to ~5.4k if it reads all its reference files. Until then it costs about 102 tokens; SKILL.md has 666 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.4k

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.

Safety

Auto-check passed

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); the scripts in this folder are not scanned.

SKILL.md

The full file from open-edge-platform/edge-ai-libraries at commit cdf860c, republished under its Apache-2.0 licence (© open-edge-platform). 666 words, ~2,458 tokens.

Download SKILL.mdSave it as .claude/skills/vss-add-nest-module/SKILL.md (or your agent's skills folder). This skill also uses 22 other files; get the full folder from GitHub.
name
vss-add-nest-module
description
Scaffolds and wires a new NestJS service/module for the Video Search & Summarization sample app's pipeline-manager using the repo's real conventions. Use when asked to add a new service/module to pipeline-manager, extend the VSS orchestrator, add a new endpoint/queue/event to pipeline-manager, or scaffold a NestJS module the repo way for the video-search-and-summarization sample app.

Add a VSS pipeline-manager NestJS module

Use this when adding a new pipeline-manager/src/<feature>/ capability. First read nearby modules again (summary, search, video-upload, state-manager) because this repo has concrete patterns that matter more than generic NestJS advice.

Environment setup (run first)

This skill drives the Video Search & Summarization app through its real source files, so the VSS application must be present and you must run commands from its app root. Do this before anything else, and it works whether or not the VSS source is already in your workspace.

Run the bundled bootstrap. It first tries to find an existing VSS checkout - walking up from the current directory and inspecting the enclosing git repo - and reuses it without ever re-cloning. Only when no checkout is found does it do a shallow, single-branch, sparse checkout of just sample-applications/video-search-and-summarization from main. It prints the resolved app root on stdout:

bash
# SKILL_DIR is THIS skill's own directory (shown to you when the skill loads);
# in-repo it is .github/skills/vss-add-nest-module. Works the same if the skill is installed standalone.
SKILL_DIR=".github/skills/vss-add-nest-module"
APP_ROOT="$(bash "$SKILL_DIR/scripts/vss-bootstrap.sh")"
cd "$APP_ROOT"

Every command below assumes the working directory is this APP_ROOT. To pull from a fork/branch or reuse a specific checkout dir, override VSS_REPO_URL, VSS_REPO_BRANCH, or VSS_CLONE_DIR before running it.

1. Match the repo layout

Most feature modules use this shape:

text
src/<feature>/
  <feature>.module.ts
  controllers/<feature>.controller.ts
  services/<feature>.service.ts
  services/<feature>-db.service.ts        # only when TypeORM-backed
  queues/<feature>-queue.service.ts       # only when tick/event queued
  models/<feature>.model.ts
  models/<feature>.entity.ts              # only when persisted

Why: controllers stay thin, services hold orchestration, *-db.service.ts isolates TypeORM repository access, queues are event-driven processors, and models/ keeps DTO/interfaces/entities close to the feature.

Real examples:

ts
// summary/summary.module.ts
@Module({
  imports: [VideoUploadModule, StateManagerModule],
  controllers: [SummaryController],
  providers: [SummaryService],
})
export class SummaryModule {}
ts
// search/search.module.ts
@Module({
  providers: [SearchStateService, SearchDbService, SearchShimService],
  controllers: [SearchController],
  imports: [HttpModule, TypeOrmModule.forFeature([SearchEntity]), VideoUploadModule],
  exports: [],
})
export class SearchModule {}

2. Create model/DTO files first

Use interfaces for internal shapes and Swagger classes for request/response documentation, as in summary/models/summary-pipeline.model.ts and search/model/search.model.ts.

ts
export class SearchQueryDTO {
  @ApiProperty({ description: 'Search query string', example: 'person walking' })
  query: string;

  @ApiPropertyOptional({ description: 'Comma-separated tags to filter by' })
  tags?: string;
}

Why: controllers can type request bodies while Swagger gets concrete classes with decorators.

3. Add TypeORM only if the feature persists data

Entity pattern:

ts
@Entity('search')
export class SearchEntity {
  @PrimaryGeneratedColumn()
  dbId?: number;

  @Column({ unique: true })
  queryId: string;

  @Column('jsonb', { nullable: true })
  results: SearchResult[];
}

Repository pattern:

ts
@Injectable()
export class SearchDbService {
  constructor(
    @InjectRepository(SearchEntity)
    private searchRepo: Repository<SearchEntity>,
  ) {}

  async read(queryId: string): Promise<SearchEntity | null> {
    const search = await this.searchRepo.findOne({ where: { queryId } });
    return search ?? null;
  }
}

Wire the entity in two places:

  1. Feature module: TypeOrmModule.forFeature([NewEntity]).
  2. Root app.module.ts: add NewEntity to TypeOrmModule.forRoot({ entities: [...] }).

Why: forFeature enables repository injection in the feature; the root entity list lets TypeORM create/sync the table.

4. Keep controllers thin and Swagger-tagged

Controllers inject services using the repo's $name property style and expose REST routes with @ApiTags, @ApiOperation, @ApiBody, @ApiParam, and response decorators.

ts
@ApiTags('Search')
@Controller('search')
export class SearchController {
  constructor(private $search: SearchStateService) {}

  @Post('')
  @ApiOperation({ summary: 'Add a new search query' })
  @ApiBody({ type: SearchQueryDTO })
  async addQuery(@Body() reqBody: SearchQueryDTO) {
    return await this.$search.newQuery(reqBody.query);
  }
}

Why: validation/errors and orchestration live in services; controllers translate HTTP to typed service calls.

5. Use DI through modules, not ad hoc construction

Import modules that export the services you need. Examples:

  • SummaryModule imports VideoUploadModule and StateManagerModule to inject VideoService, AppConfigService, StateService, UiService.
  • VideoUploadModule exports AppConfigService, FeaturesService, VideoService, VideoDbService.
  • StateManagerModule exports StateService, UiService, AudioQueueService.

If another module must inject your service, add it to exports.

Why: Nest resolves providers only across module boundaries through imports/exports.

Show full SKILL.md (270 more words)Show less

6. Add events using the central enums

Define new event names in src/events/Pipeline.events.ts, src/events/app.events.ts, or src/events/socket.events.ts. Use dot-delimited names because root wiring uses:

ts
EventEmitterModule.forRoot({ delimiter: '.', maxListeners: 5 })

Emit and listen like existing services:

ts
this.$emitter.emit(SearchEvents.RUN_QUERY, res.queryId);

@OnEvent(SearchEvents.RUN_QUERY)
async reRunQuery(queryId: string) { ... }

Pipeline examples include pipeline.summary.start, pipeline.chunking.complete, and pipeline.summary.stream. App tick events are emitted by AppService and consumed by queues.

Why: event enums prevent string drift and decouple controllers/services/queues/gateways.

7. Use the repo queue pattern for background work

Queue processors are injectable services under state-manager/queues or a feature queues/ folder. They keep in-memory waiting/processing state, enqueue on a domain event, process on AppEvents.FAST_TICK, emit progress/completion events, and remove stale work on AppEvents.SUMMARY_REMOVED.

ts
@Injectable()
export class SummaryQueueService {
  waiting: SummaryQueueItem[] = [];
  processing: SummaryQueueItem[] = [];

  @OnEvent(PipelineEvents.SUMMARY_TRIGGER)
  streamTrigger({ stateId }: PipelineDTOBase) {
    this.waiting.push({ stateId, taskType: 'videoSummary' });
  }

  @OnEvent(AppEvents.FAST_TICK)
  processQueue() {
    if (this.waiting.length > 0 && this.$inferenceCount.hasLlmSlots()) {
      const queueItem = this.waiting.shift()!;
      this.processing.push(queueItem);
      this.startVideoSummary(queueItem);
    }
  }
}

Why: long-running work is throttled centrally and does not block HTTP requests.

8. Send UI updates through SocketEvent + EventsGateway

Add socket event enum values to src/events/socket.events.ts, emit them from state/services, and add @OnEvent(...) handlers in sockets/events.gateway.ts.

ts
@OnEvent(SocketEvent.SEARCH_UPDATE)
searchUpdate(payload: SearchQuery) {
  this.server.emit('search:update', payload);
}

For state-specific updates, join clients to a state room and emit names like summary:sync/${stateId}/status.

Why: services remain transport-agnostic; only the gateway knows Socket.IO event names and rooms.

9. Read configuration through ConfigService

Add config keys in src/config/configuration.ts, then inject ConfigService:

ts
constructor(private $config: ConfigService) {}

const endPoint: string = this.$config.get('search.endpoint')!;
const maxConcurrent = this.$config.get<number>('openai.vlmCaptioning.concurrent')!;

Why: this app centralizes environment parsing and nested config names (search.endpoint, datastore.bucketName, tick.fastInterval).

10. Register the module in root wiring

In src/app.module.ts:

ts
import { NewFeatureModule } from './new-feature/new-feature.module';
import { NewFeatureEntity } from './new-feature/models/new-feature.entity';

@Module({
  imports: [
    // existing imports...
    TypeOrmModule.forRoot({
      // existing options...
      entities: [StateEntity, VideoEntity, SearchEntity, TagEntity, NewFeatureEntity],
    }),
    NewFeatureModule,
  ],
})
export class AppModule {}

Place EventEmitterModule.forRoot(...) once only; do not add another root event emitter.

11. Validate

From pipeline-manager/, run existing checks only:

bash
npm run build
npm test -- --runInBand
npm run lint

If changing only docs or templates, no app build is required. If adding entities, verify migrations/sync behavior is acceptable for this sample (synchronize: true, migrationsRun: true are already set).

See references/nest-conventions.md for a catalog of actual repo conventions and file references. Use assets/module-template/ as a starting scaffold, then rename example to the real feature.

© open-edge-platform, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 22 other files (scripts, references, assets) in sample-applications/video-search-and-summarization/.github/skills/vss-add-nest-module of open-edge-platform/edge-ai-libraries.

  • SKILL.md
  • BENCHMARK.md
  • assets/module-template/controllers/example.controller.ts
  • assets/module-template/example.module.ts
  • assets/module-template/models/example.entity.ts
  • assets/module-template/models/example.model.ts
  • assets/module-template/queues/example-queue.service.ts
  • assets/module-template/services/example-db.service.ts
  • assets/module-template/services/example.service.ts
  • evals/evals.json
  • evals/trigger-evals.json
  • example-prompts/01-scaffold-basic-module.md
  • example-prompts/02-add-endpoint-existing-style.md
  • … and 10 more

Open the folder on GitHubat commit cdf860c

Compare with similar skills

Vss Add Nest Module 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.

Vss Add Nest Module compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Vss Add Nest Module this skillopen-edge-platform/edge-ai-libraries169—~2.5kAutomated safety check: PassApache-2.0
NestJS ExpertJeffallan/claude-skills12k—~2kAutomated safety check: PassMIT
VibexRaja0sama/vibex388—~7.8kAutomated safety check: PassMIT
ToolJet Marketplace Plugin BuilderToolJet/ToolJet41k—~2.1kAutomated safety check: PassAGPL-3.0
Backendredis/RedisInsight8.9k—~1.6kAutomated safety check: PassCustom licence
Twenty Entity Runner Actionstwentyhq/twenty58k—~3.1kAutomated safety check: PassCustom licence

Similar skills

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

    12k GitHub stars~2k tokensUpdated 6 days ago
    Backend & APIsAuto-check passed
  • Vibex

    Raja0sama/vibex

    Diagrams and checkable docs from a codebase. An agent skill from Raja0sama/vibex.

    388 GitHub stars~7.8k tokensUpdated 3 days ago
    Backend & APIsAuto-check passed
  • Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.

    41k GitHub stars~2.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Backend

    redis/RedisInsight

    Official

    NestJS backend development patterns for the RedisInsight API: module structure, services, controllers, DTOs, dependency injection, and error handling.

    8.9k GitHub stars~1.6k tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • Step four of adding a syncable entity in the Twenty server: write create, update and delete action handlers that run workspace migrations against the database.

    58k GitHub stars~3.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Project

    samchon/nestia

    Defines the nestia product contract, workspace layout, package boundaries, the Go plugin composition model, and canonical commands.

    2.2k GitHub stars~3k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed

More from open-edge-platform/edge-ai-libraries

All 29 skills in this repo
  • Time Series Analytics User

    open-edge-platform/edge-ai-libraries

    Build a new time-series analytics use case on top of the deployed Time Series Analytics microservice — bring it up with Docker Compose (from a repo clone, or by fetching the compose files from…

    169 GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Chatqna Helm Deploy

    open-edge-platform/edge-ai-libraries

    Deploy Chat Question-and-Answer Core to Kubernetes using Helm (OpenVINO CPU, OpenVINO GPU, or Ollama), including values.yaml configuration, helm install/upgrade, deployment verification, uninstall…

    169 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Generate Changelog

    open-edge-platform/edge-ai-libraries

    Generates or updates CHANGELOG.md by analyzing git commit history between two branches, tags, or revisions in ANY git repository or folder.

    169 GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Vss Deploy

    open-edge-platform/edge-ai-libraries

    Deploys and manages VSS through setup.sh and its Docker Compose overlays.

    169 GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed
  • Vss Deploy Helm

    open-edge-platform/edge-ai-libraries

    A skill your agent uses whenever a developer needs to deploy VSS to Kubernetes, helm install VSS, configure values.yaml for VSS, or run VSS on k8s with GPU/vLLM for the…

    169 GitHub stars~3.8k tokensUpdated yesterday
    Auto-check passed
  • Vss Dlstreamer Pipeline

    open-edge-platform/edge-ai-libraries

    Helps developers understand and safely modify the DLStreamer/GStreamer Pipeline Server (EVAM) video ingestion pipelines in the video-search-and-summarization sample app.

    169 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed

Questions about Vss Add Nest Module

What does Vss Add Nest Module do?

Scaffolds and wires a new NestJS service/module for the Video Search & Summarization sample app's pipeline-manager using the repo's real conventions. Vss Add Nest Module is an agent skill from open-edge-platform/edge-ai-libraries. Scaffolds and wires a new NestJS service/module for the Video Search & Summarization sample app's pipeline-manager using the repo's real conventions.

When should I use Vss Add Nest Module?

Vss Add Nest Module fits situations like: asked to add a new service/module to pipeline-manager; extend the VSS orchestrator; add a new endpoint/queue/event to pipeline-manager; scaffold a NestJS module the repo way for the video-search-and-summarization sample app.

How do I install Vss Add Nest Module in Claude Code?

Run `npx skills add open-edge-platform/edge-ai-libraries --skill vss-add-nest-module -a claude-code`. Or copy the skill folder (sample-applications/video-search-and-summarization/.github/skills/vss-add-nest-module in open-edge-platform/edge-ai-libraries) into .claude/skills/vss-add-nest-module in your project. Claude Code loads it when a task matches its description.

How do I install Vss Add Nest Module in Codex?

Run `npx skills add open-edge-platform/edge-ai-libraries --skill vss-add-nest-module -a codex`. Or copy the skill folder (sample-applications/video-search-and-summarization/.github/skills/vss-add-nest-module in open-edge-platform/edge-ai-libraries) into .agents/skills/vss-add-nest-module in your project. Codex loads it when a task matches its description.

Can I use Vss Add Nest Module in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add open-edge-platform/edge-ai-libraries --skill vss-add-nest-module -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vss-add-nest-module, .gemini/skills/vss-add-nest-module, .github/skills/vss-add-nest-module and .opencode/skills/vss-add-nest-module in your project.

What does Vss Add Nest Module need to run?

Going by SKILL.md and its folder, Vss Add Nest Module needs TypeScript for the scripts in its folder and the command-line tools its instructions call (npm and bash). Our summary lists: Node.js.

Does Vss Add Nest Module access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Vss Add Nest Module safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Vss Add Nest Module use?

Vss Add Nest Module is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Vss Add Nest Module use?

About 2.5k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.

What are the alternatives to Vss Add Nest Module?

Skills that share tags, products or a category with Vss Add Nest Module: NestJS Expert (Jeffallan/claude-skills, 12k stars), Vibex (Raja0sama/vibex, 388 stars), ToolJet Marketplace Plugin Builder (ToolJet/ToolJet, 41k stars) and Backend (redis/RedisInsight, 8.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Vss Add Nest Module?

open-edge-platform (a GitHub organization) maintains it in open-edge-platform/edge-ai-libraries, which has 169 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 9, 2026.

Source: open-edge-platform/edge-ai-libraries on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.