# Gsd Installer

> Configures a NestJS project to use the nestjs-hexagonal plugin with GSD workflow. Adds skill references to CLAUDE.md, creates GSD-compatible phase templates, and maps GSD phases to plugin agents. Use when setting up a new project with GSD + hexagonal architecture, or when asked to "install hexagonal for GSD", "configure GSD with hexagonal", or "setup nestjs-hexagonal".

- **Type:** Skill
- **Install:** `agentstack add skill-softtor-nestjs-hexagonal-gsd-installer`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Softtor](https://agentstack.voostack.com/s/softtor)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Softtor](https://github.com/Softtor)
- **Source:** https://github.com/Softtor/nestjs-hexagonal/tree/main/skills/gsd-installer
- **Website:** https://github.com/Softtor/nestjs-hexagonal#readme

## Install

```sh
agentstack add skill-softtor-nestjs-hexagonal-gsd-installer
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# GSD Installer for nestjs-hexagonal

Configures a NestJS project so that GSD workflows automatically leverage the nestjs-hexagonal plugin's skills and agents.

## What This Does

1. Adds a **skill mapping section** to the project's `CLAUDE.md` so GSD executor agents know which skills to invoke
2. Creates a **GSD roadmap template** with phases that map to plugin agents
3. Optionally updates `.planning/PROJECT.md` if GSD is already initialized

## Step 1: Detect Project State

Check what exists:

```bash
# GSD initialized?
ls .planning/PROJECT.md 2>/dev/null

# CLAUDE.md exists?
ls CLAUDE.md 2>/dev/null

# NestJS project?
ls nest-cli.json 2>/dev/null || ls apps/*/nest-cli.json 2>/dev/null

# Plugin installed?
ls .claude-plugin/plugin.json 2>/dev/null || grep -r "nestjs-hexagonal" ~/.claude/plugins/ 2>/dev/null
```

## Step 2: Add Skill Mapping to CLAUDE.md

Append this section to the project's `CLAUDE.md` (create if not exists):

```markdown
## NestJS Hexagonal Architecture (nestjs-hexagonal plugin)

### Skill Mapping for GSD Phases

When executing GSD phases that involve creating or modifying bounded contexts, use these skills and agents:

| Task | Skill / Agent | Model |
|------|---------------|-------|
| Domain modeling (entities, VOs, events) | `nestjs-hexagonal:domain-agent` | Opus |
| Application layer (use cases, handlers) | `nestjs-hexagonal:application-agent` | Sonnet |
| Infrastructure (repos, modules, adapters) | `nestjs-hexagonal:infrastructure-agent` | Sonnet |
| Presentation (controllers, DTOs, Swagger) | `nestjs-hexagonal:presentation-agent` | Sonnet |
| WebSocket broadcasting | `nestjs-hexagonal:broadcasting-agent` | Sonnet |
| Architecture review | `nestjs-hexagonal:architecture-reviewer` | Opus |
| Full BC scaffold | `nestjs-hexagonal:create-subdomain` | Orchestrator |
| Event chain debugging | `nestjs-hexagonal:event-debug-agent` | Opus |

### Architecture Rules (enforced)

1. Entity extends `AggregateRoot` from `@nestjs/cqrs`
2. Repository is PURE persistence — no event dispatch
3. EventPublisher in Handler only, NEVER in UseCase
4. Module exports ONLY Port tokens
5. class-validator ONLY in presentation request DTOs
6. Write returns void or `{ id: string }`

### GSD Phase Template for Bounded Context

When creating a new bounded context via GSD, use this phase structure:

Phase X:  Domain + Application
  - Task 1: Domain modeling (dispatch domain-agent, Opus)
  - Task 2: Application layer (dispatch application-agent, Sonnet)

Phase X+1:  Infrastructure + Presentation
  - Task 1: Infrastructure wiring (dispatch infrastructure-agent, Sonnet)
  - Task 2: Presentation layer (dispatch presentation-agent, Sonnet)
  - Task 3: Architecture review (dispatch architecture-reviewer, Opus)
```

## Step 3: Ask About GSD State

If `.planning/PROJECT.md` exists, ask the user:

> "GSD is already initialized. Do you want me to add hexagonal architecture phases to the existing roadmap?"

If yes, read the current `ROADMAP.md` and suggest new phases for bounded context creation.

If GSD is NOT initialized, inform the user:

> "GSD is not initialized yet. Run `/gsd:new-project` first, then re-run this installer to add hexagonal phases."

## Step 4: Verify Installation

After configuration, verify:

```bash
# CLAUDE.md has skill mapping
grep "nestjs-hexagonal" CLAUDE.md

# Plugin is accessible
# (user should test: ask Claude "create an entity for Invoice" and verify domain skill activates)
```

Report what was configured:
- CLAUDE.md updated with skill mapping and architecture rules
- GSD phase template added (if applicable)
- Next steps: run `/gsd:plan-phase` or `/nestjs-hexagonal:create-subdomain`

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Softtor](https://github.com/Softtor)
- **Source:** [Softtor/nestjs-hexagonal](https://github.com/Softtor/nestjs-hexagonal)
- **License:** MIT
- **Homepage:** https://github.com/Softtor/nestjs-hexagonal#readme

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-softtor-nestjs-hexagonal-gsd-installer
- Seller: https://agentstack.voostack.com/s/softtor
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
