Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Onboard Project

ASecurity

Onboards a NestJS project to the nestjs-hexagonal rulebook, CLI and hooks — creates .claude/rulebook.yaml extending the plugin rulebooks with sha256 stamps, sets the optional TypeSafe key, pins the CLI as a dev dependency, runs the first baseline check and explains what the hooks will do from then on. Use when a project starts using the plugin, when asked to "onboard this project", "enable the hooks", "create the rulebook" or "set up nestjs-hexagonal-check".

5 stars
0 votes
0 copies
0 views
Added 9/22/2026
developmentgoshellbashnodegitapi

Works with

claude codecliapi

Security Analysis

A100/100

Scanned 9/22/2026

Install to Claude Code

$npx -y skills add Softtor/nestjs-hexagonal --skill onboard-project --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Onboard Project?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Onboard Project
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/softtor-onboard-project/badge)](https://www.skillsdirectory.com/skills/softtor-onboard-project)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: onboard-project
description: Onboards a NestJS project to the nestjs-hexagonal rulebook, CLI and hooks — creates .claude/rulebook.yaml extending the plugin rulebooks with sha256 stamps, sets the optional TypeSafe key, pins the CLI as a dev dependency, runs the first baseline check and explains what the hooks will do from then on. Use when a project starts using the plugin, when asked to "onboard this project", "enable the hooks", "create the rulebook" or "set up nestjs-hexagonal-check".
argument-hint: Project root (defaults to the current project)
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Glob
  - Grep
  - AskUserQuestion
---

# onboard-project

Executable checklist for a project that wants the rulebook enforced. The plugin is inert until step 2 exists: the hooks fire only for a project with `.claude/rulebook.yaml` (or `NESTJS_HEXAGONAL_RULEBOOK` pointing at a file), and the CLI is a plain dev dependency. README section "Onboarding another project" is the prose version of this list.

Resolve the package runner first ("Package runner" in `nestjs-hexagonal:using-nestjs-hexagonal`); the commands below use `bun`, replace with the project's runner.

---

## 1. Decide which rulebooks apply

| Rulebook | Extend it when |
|---|---|
| `hexagonal` | always: project-agnostic hexagonal + DDD + CQRS rules (`hex/*`) |
| `softtor-conventions` | the project is multi-tenant with an `organizationId` scope on every query, bans emoji in code and requires English identifiers (`softtor/*`); a project that does not share those conventions must not extend it |

Ask the user when the answer is not obvious from the codebase (grep for `organizationId` in repositories).

## 2. Create `.claude/rulebook.yaml` with stamps

Print the `extends` block from the installed plugin; the sha256 pins the content of each base rulebook the project is calibrated against:

```bash
bunx nestjs-hexagonal-check stamp hexagonal                       # add softtor-conventions when it applies
```

Write the file (the example is `rulebooks/project.example.rulebook.yaml` in the plugin):

```yaml
$schema: nestjs-hexagonal/rulebook@1
id: <project-id>            # lowercase, becomes the namespace of the project's own rules
version: 0.1.0
extends:
  - id: hexagonal
    version: 1.3.0
    sha256: <from the stamp command>
model:
  provider: typesafe
  pin: jev-1.13.0
rules: []                   # project rules under <project-id>/<slug>, static first
overrides: []               # by id: disabled, severity, scope, thresholds
```

A stale stamp never blocks: the CLI reports `rulebook-mismatch` and marks the run `uncalibrated`. Refresh the stamps when the plugin is updated (`stamp` again).

## 3. Set the key (optional, semantic rules)

Static rules run offline. Semantic rules (five in `hexagonal`) need `TYPESAFE_API_KEY`:

- Claude Code: answer the `TYPESAFE_API_KEY` prompt when enabling the plugin, or set it later in `/plugin` (plugin `userConfig`, stored in the keychain and exported to the hooks as `CLAUDE_PLUGIN_OPTION_TYPESAFE_API_KEY`).
- Shell and CI: `export TYPESAFE_API_KEY=...`; in GitHub Actions only from a secret on `push`, never on `pull_request` from forks.

Before enabling it, read the README section "Disclosure": with a key, code slices of the files the plugin agents write are sent to `https://api.typesafe.ai`. Without a key the plugin stays static-only and offline.

## 4. Pin the CLI in the project

```bash
bun add -d github:Softtor/nestjs-hexagonal#v1.3.0
```

The hooks prefer `node_modules/.bin/nestjs-hexagonal-check` when it exists, so the version in the lockfile is the one that runs in hooks, in CI and on developers' machines. Bun installs the plugin's `bun.lock` dependencies (`yaml`, `zod`) hoisted; `bunx nestjs-hexagonal-check --help` must print the usage.

## 5. Run the baseline

```bash
bunx nestjs-hexagonal-check --files 'src/**/*.ts' --classes static --strict --format text
bunx nestjs-hexagonal-check prescan --files 'src/<one-module>/**/*.ts'            # cheap map of a module
```

Exit 1 lists the static FAILs the codebase already has. Decide with the user: fix them, scope them out (`overrides` with `scope.exclude` for legacy paths) or lower them to WARN for now. Do not disable a FAIL rule globally to get green.

Add the check to the project's gate, for example lint-staged: `nestjs-hexagonal-check --files <staged files> --classes static --strict`, or CI: `--diff origin/main --strict`.

## 6. Enable the hooks (already done)

Creating `.claude/rulebook.yaml` in step 2 is what enables the hooks; there is no other switch. From now on, inside the plugin agents (`nestjs-hexagonal:*-agent`): `SubagentStart` injects the rulebook slice of the layer, `PreToolUse` denies a Write or Edit that introduces a static FAIL, `PostToolUse` adds advisory findings, `SubagentStop` blocks the stop while a touched file has a static FAIL (twice, then releases). Verify with a plugin agent that the `[nestjs-hexagonal]` context appears at its start.

Kill switch: `NESTJS_HEXAGONAL_DISABLE=1` (everything), delete the rulebook (hooks silent), unset the key (static only). Rulebook elsewhere: `NESTJS_HEXAGONAL_RULEBOOK` in `.claude/settings.json` `env`.

## 7. Record it

Add to the project's CLAUDE.md (or run `nestjs-hexagonal:gsd-installer` for GSD projects): the rulebook id, which bases it extends, where the key comes from, the gate command, and the kill switch. Commit `.claude/rulebook.yaml`, the lockfile and the CLAUDE.md change together.

## Output

Report: rulebooks extended and their stamps, key configured or not (never the value), CLI version pinned, baseline result (FAIL and WARN counts, what was decided about them), gate command added, and the files changed.

Attribution

SofttorSofttor
View sourceMore from Softtor →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284072 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2192 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →