lenneTech
OrganizationClaude Code Plugin for lenne.tech development - Skills, Commands & Hooks for Nuxt 4, NestJS, TDD and CLI tools
Categories
Indexed Skills (32)
building-stories-with-tdd
Orchestrates the Test-Driven Development cycle for user stories and features: writes the story test in tests/stories/ first, agrees the seams, then implements until every test passes. Activates on "TDD", "test first", "tests zuerst", "story test", "Story umsetzen", or any feature implementation that starts from a failing test. NOT for writing NestJS or Vue code outside a TDD cycle (use generating-nest-servers or developing-lt-frontend). NOT for generating tests for code that already exists (use /lt-dev:backend:test-generate).
coordinating-agent-teams
Coordination patterns and worktree isolation for parallel operations this session starts: Agent Teams (independent sessions with messaging) and parallel subagent spawning (Agent tool with isolation worktree). Covers when teams beat single agents and what they cost in tokens. Activates on "agent team", "parallel review", "batch rebase", when a command evaluates team suitability via CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS, or when spawning several file-modifying subagents at once. NOT for single sequential subagents. NOT for sessions the user started themselves (use coordinating-peer-sessions).
developing-claude-plugins
Develops, optimizes, and validates Claude Code plugins: skills (SKILL.md), commands, agents, hooks (hooks.json), and scripts. Covers YAML frontmatter, element structure, cross-references, naming conventions, the skill listing budget, and manifest validation via `claude plugin validate`. Activates when creating, editing, or reviewing anything under plugins/, .claude-plugin/, plugin.json, permissions.json or marketplace.json, and on "neues Skill", "Command anlegen", "Hook bauen", "Plugin optimieren". NOT for application development (use the domain skills).
developing-lt-frontend
Handles ALL Nuxt 4 and Vue frontend work: components, composables, forms (Valibot), API integration (types.gen.ts, sdk.gen.ts), authentication (Better Auth), SSR, and Playwright E2E. Supports monorepos (projects/app/, packages/app/). Activates on .vue files, nuxt.config.ts, Nuxt UI, TailwindCSS, files under app/{components,composables,pages,interfaces,layouts}/, and on "generate types", "Valibot form", "useOverlay modal", "Playwright E2E", "Frontend bauen". NOT for NestJS backend (use generating-nest-servers). NOT for framework-agnostic security theory (use general-frontend-security).
general-frontend-security
Framework-agnostic frontend security guide based on OWASP Secure Coding Practices: XSS prevention, CSRF protection, Content Security Policy, secure cookie configuration, client-side auth patterns, input validation, secure storage, and security headers. Applies to any web frontend, not only Nuxt. Activates on XSS, CSRF, CSP, clickjacking, security headers, "Sicherheitslücke", or a frontend security audit. NOT for backend/NestJS security (use generating-nest-servers). NOT for Nuxt-specific implementation (use developing-lt-frontend).
generating-nest-servers
Handles ALL NestJS and @lenne.tech/nest-server work: modules, services, controllers/resolvers, models, DTOs, and debugging. Covers `lt server` generators, @Roles/@Restricted security, CrudService patterns, and API tests via TestHelper. Supports monorepos (projects/api/, packages/api/). Activates on files under src/server/, guards, decorators, REST/GraphQL endpoints, and on "Backend bauen", "Endpoint anlegen", "Modul erstellen". NOT for Vue/Nuxt frontend (use developing-lt-frontend). NOT for nest-server version updates (use nest-server-updating). NOT for TDD orchestration (use building-stories-with-tdd).
maintaining-npm-packages
Analyzes and optimizes npm package dependencies across five maintenance modes: FULL (update all), DRY-RUN (analysis only), SECURITY-ONLY (urgent CVE fixes), PRE-RELEASE (conservative patch-only), POST-FEATURE (cleanup). Activates on updating packages, `npm audit` findings, deprecated or unused dependencies, "Pakete aktualisieren", "Abhängigkeiten prüfen", or package.json optimization. NOT for @lenne.tech/nest-server version updates (use nest-server-updating). NOT for stack-wide releases (use maintaining-lt-stack).
managing-dev-servers
Rules for starting, monitoring, and stopping local dev servers (nuxt dev, nest start, pnpm run dev, build --watch, Playwright, Mailpit) and for closing Chrome DevTools MCP tabs afterward. Prefers `lt dev up/down/status/tunnel` for lt projects: stable HTTPS URLs, project-scoped env, parallel projects without port or auth cross-wiring. Falls back to the run_in_background / pkill contract elsewhere, so no orphaned process blocks the session. Also governs WAITING on anything that finishes by itself — CI pipelines, deployments, long test suites, builds: poll them in the background and carry on, never end a turn on "it is running, I will report back". Activates whenever a long-running process starts for manual validation, MCP debugging, TDD, framework linking, or E2E, and whenever a pipeline or deployment has to be watched to its end.
running-check-script
Single source of truth for running the package.json `check` script. Defines discovery (multi-package monorepo aware), the iterate-until-green auto-fix loop, the mandatory audit-finding escalation ladder, residual classification (Accepted vs Critical), and report formatting. Activates on "check laufen lassen", "pnpm run check", "läuft das noch", and whenever an agent or command must prove runnability before shipping. NOT for general npm package maintenance (use maintaining-npm-packages). NOT for reproducing the CI pipeline (use validating-ci-pipelines-locally).
running-load-tests-with-k6
Runs and interprets k6 load tests against lenne.tech fullstack APIs. Covers installation, Better-Auth authentication for a realistic path, the three canonical scenarios (smoke / load / soak), threshold defaults for ~10 concurrent users (p95 under 500ms, error rate under 1%), and the optimisation ladder when a threshold fails. Activates on "k6", "Lasttest", "load test", "hält das unter Last", or checking API stability under concurrent users. NOT for Lighthouse frontend performance (use the a11y-reviewer agent). NOT for unit-level performance assertions.
validating-changes-in-browser
Final browser validation after implementation AND review have succeeded. Boots the app via `lt dev up`, seeds realistic `@test.com` data, derives a step-by-step test list from the diff (every affected page, role, flow, empty/error state, mobile pass, console + network sweep), then walks it autonomously via Chrome DevTools MCP. Fixes everything it finds, including pre-existing issues, in the same loop. Activates as the last step of any ship-oriented workflow, and on "im Browser prüfen", "durchklicken". NOT a substitute for implementation, code review, or automated E2E tests, which run before.
validating-ci-pipelines-locally
Executes GitLab CI/CD pipelines locally with the same image, env vars, and service containers as the real runner, so pipeline failures surface before the push. Covers pipeline discovery, per-job execution via gitlab-runner exec, service-container orchestration, env injection without secrets, and a job-by-job verdict report. Also covers the GitHub Actions equivalent via act. Activates on "Pipeline lokal testen", "warum failt die CI", .gitlab-ci.yml changes, or before a push that must not break CI. NOT for the local check script (use running-check-script). NOT for authoring CI configs (use the devops agent).
validating-production-readiness
The lenne.tech fullstack production-readiness checklist. Defines the eight pillars (configuration and secrets, observability, health and lifecycle, security hardening, data durability, resilience under load, deployment hygiene, runbook and rollback) with file/line evidence, severity classification, and a machine-parseable report block. Activates on "production ready", "produktionsreif", "Go-Live", "kann das live", or when a release must be gated before shipping. NOT for OWASP code-level security review (use the security-reviewer agent). NOT for npm dependency audits (use maintaining-npm-packages).
grilling-decisions
Relentless one-question-at-a-time interview that settles every open decision before implementation starts. Walks the decision tree in dependency order, carries a recommended answer per question, and looks facts up in the codebase instead of asking for them. Activates on "grill me", "interview me", "stress-test this", "frag mich aus", "löcher mich", or when a command reaches open questions it must settle with a human before writing code. NOT for reviewing finished code (use /lt-dev:review). NOT for autonomous fact-finding without a human in the loop.
writing-qa-test-instructions
Decides whether a ticket is manually testable by non-developers and writes the German QA test instructions for the Linear comment. Defines the three-part testability test, the not-testable categories, the deployed-environment URL resolution order, the role-instead-of-credentials rule, and the comment format for both cases. Activates whenever a command hands a merged or submitted ticket to QA (ticket-cycle, git:ship, dev-submit). NOT for the developer-facing local re-test manual with literal passwords (that is ticket-cycle STEP 3b). NOT for the browser walk itself (use validating-changes-in-browser).
marketplace-optimizer
Optimizes this Claude Code marketplace using specialized sub-agents. Each agent is an expert for one element type (skills, commands, agents, hooks, mcp) and loads only relevant documentation. A marketplace agent validates cross-references and latest features. Triggers on "optimize marketplace", "sync with best practices", or when user wants to improve plugin quality.
contributing-to-lt-framework
Guides local development on the lenne.tech framework libraries themselves (@lenne.tech/nest-server, @lenne.tech/nuxt-extensions) and validating those changes from a consuming starter via `pnpm link`, including the build/watch loop and rollback. Activates on "Grund-Repo", "pnpm link", "test framework locally", or when a bug found in a project belongs in a base repo instead. NOT for consuming the frameworks inside a project (use generating-nest-servers or developing-lt-frontend). NOT for vendored cores (use nest-server-core-vendoring or nuxt-extensions-core-vendoring). NOT for version upgrades (use nest-server-updating).
deploying-to-turboops
Takes a lenne.tech fullstack monorepo live on TurboOps (turbo-ops.de) via GitLab CI/CD. Covers the deploy contract (.turboops.json, .gitlab-ci.yml, docker-compose.yml, image drift), `lt deployment create`, CI/CD variables, multi-service stages via `turbo deploy --compose`, DNS-before-Let's-Encrypt, and the swarm MongoDB URI. Activates on "TurboOps", "turbo deploy", "live gehen", "deployen", and on symptoms like "not found in registry" or "only app rolled out". NOT for local dev orchestration (use using-lt-cli). NOT for reproducing CI locally (use validating-ci-pipelines-locally). NOT for authoring Docker/CI configs from scratch (use the devops agent).
maintaining-lt-stack
Single source of truth for stack-wide maintenance and releases of the lt base repos ("Grund-Repos"): the dependency graph (nuxt-extensions to nuxt-base-starter, nest-server to nest-server-starter), the release recipe per repo including both marketplaces, npm propagation waits, the HTTPS push fallback for an empty SSH agent, and the smoke test as release gate. Activates on "maintain stack", "release all repos", "stack release", "Grund-Repos aktualisieren", and behind /lt-dev:publish. NOT for a single npm package (use maintaining-npm-packages). NOT for nest-server upgrades inside customer projects (use nest-server-updating).
managing-agent-memory
Decides per project whether `.claude/agent-memory/**` is committed, records that decision next to the memory it governs, and curates the notes before every commit that carries them. Activates before committing whenever agent-memory files are dirty: git:ship, ticket-cycle, review runs, or any standalone commit.
modernizing-toolchain
Migrates lenne.tech projects from the legacy jest+eslint+prettier toolchain to the current vitest+oxlint+oxfmt baseline used by nest-server-starter and nuxt-base-starter. Covers swc decoratorMetadata config, the @Prop union-type fix, supertest default-import correction, the Nitro PORT-vs-NITRO_PORT bug, and the config.env.ts + check-envs.sh patterns. Activates when aligning a project with current starter conventions, and on Mongoose union-type errors or ERR_SOCKET_BAD_PORT crashes. NOT for dependency version bumps (use maintaining-npm-packages). NOT for nest-server major upgrades (use nest-server-updating).
nest-server-core-vendoring
Knowledge base for projects that vendored the @lenne.tech/nest-server core into their source tree (projects/api/src/core/, no npm dependency). Covers detecting a vendored project, the one-way vendor model, when `src/core/` may be touched, the flatten-fix pattern, upstream sync and upstream-PR workflows, and cosmetic-vs-substantial classification. Activates on vendored core discussions, "sync core from upstream", or vendor-sync conflicts. NOT for npm-based nest-server updates (use nest-server-updating). NOT for writing new NestJS code (use generating-nest-servers).
nest-server-updating
Migration guides, release notes, and error solutions for updating @lenne.tech/nest-server in npm mode. Covers version-specific breaking changes, stepwise major upgrades, and starter comparisons; delegates execution to the lt-dev:nest-server-updater agent. Activates on nest-server version upgrades, "pnpm run update", TypeScript errors after an upgrade, or stepwise migration planning. NOT for vendored cores (use nest-server-core-vendoring). NOT for writing NestJS code (use generating-nest-servers). NOT for general npm updates (use maintaining-npm-packages).
nuxt-extensions-core-vendoring
Knowledge base for projects that vendored the @lenne.tech/nuxt-extensions module into their source tree (app/core/, no npm dependency). Covers detecting a vendored frontend, the one-way vendor model, when `app/core/` may be touched, upstream sync and upstream-PR workflows, and cosmetic-vs-substantial classification; no flatten-fix is needed here, unlike the backend core. Activates on "sync frontend core from upstream" or frontend vendor-sync conflicts. NOT for npm-based nuxt-extensions updates or new Nuxt code (use developing-lt-frontend).
rebasing-branches
Rebases feature branches onto the current development branch (dev/develop). Handles conflict resolution with priority ordering, extracts Linear ticket context from the branch name for smarter conflict decisions, optimizes after the rebase, and force-pushes with lease. Activates on "rebase", "branch aktualisieren", "auf dev Stand bringen", "merge conflicts", "Konflikte lösen", "force push". NOT for merge request descriptions (use /lt-dev:git:mr-description). NOT for shipping a finished branch (use /lt-dev:git:ship).
using-lt-cli
Reference for the lenne.tech CLI (`lt`). Covers lt fullstack init/update/convert-mode, lt git get/reset, lt server create/object/addProp, lt deployment, and lt dev (parallel project orchestration via Caddy: install/up/down/status/doctor/tunnel). Activates on any `lt` subcommand, "lenne.tech CLI", "--noConfirm", "convert-mode", "npm mode" / "vendor mode", or "Caddy tunnel". NOT for writing NestJS modules or properties by hand (use generating-nest-servers). NOT for Vue/Nuxt code (use developing-lt-frontend).
creating-offers
Creates and edits business offers on the lenne.tech Offers platform (angebote.lenne.tech) and its demo deployment (demo-angebote.lenne.tech). Knows all 18 content block types, offer lifecycle (draft/sent/viewed/template), custom HTML with Tailwind CSS and NuxtUI components (via rich-component block), HTML embeds for click-dummies, per-offer themes and color mode, and file uploads via single-use upload tickets. Activates when working with offers, content blocks, or the Offers API. Uses MCP tools (offers-api for production, offers-api-demo for demo) for all CRUD operations.
analyzing-projects
Analyzes software projects to extract technology stack, architecture, features, API surface, testing strategy, UI/UX patterns, security measures, and performance optimizations. Produces structured, evidence-based reports where every claim is backed by a source code reference. Also detects how the application is started (scripts, Docker, database requirements) and enumerates all pages and views for screenshot planning. Outputs a structured report that feeds directly into SHOWCASE.md creation and screenshot automation. Activates when analyzing a project for showroom showcases, portfolio entries, project documentation, or when a user asks what a project does or how it is built. NOT for creating or publishing showcases (use creating-showcases). NOT for platform development (use generating-nest-servers).
creating-showcases
Creates, updates, and manages showcases on the lenne.tech Showroom platform (showroom.lenne.tech). Implements a 5-phase workflow: (1) project analysis, (2) screenshot capture with Docker/app startup and demo data, (3) SHOWCASE.md creation as single source of truth in the project repository, (4) showcase creation via API using SHOWCASE.md + customer feedback + web research, (5) interactive presentation with modern content blocks. Fetches customer feedback from https://lenne.tech/kundenerfolge. Uses MCP tools (showroom-api) or REST API for CRUD operations. Activates when creating, editing, managing showcases, portfolio entries, or the Showroom platform. NOT for platform development on the showroom codebase itself (use generating-nest-servers or developing-lt-frontend).
checking-upstream-first
Before writing a custom fix for a framework- or library-level problem, verifies that the current version does not already solve it. Covers the version actually resolved vs. the current one, reading the dependency's own code in node_modules, release notes and issue tracker, and whether an lt base repo already solved it. Activates whenever a workaround, shim, patch, wrapper, polyfill or guard is about to be built around a dependency's behaviour, and on "workaround", "patchen", "wir bauen uns das selbst", "eigene Lösung". NOT for feature work the dependency was never meant to cover. NOT for routine version bumps (use maintaining-npm-packages).
coordinating-peer-sessions
Rules for working alongside other Claude Code sessions the user started in parallel. Defines the four coordination channels (Linear and Git, the ledger, `ListAgents`, `SendMessage`), the seven message occasions (LANDED, CLAIM, CONFLICT, SOLVED, READY, ASK, ORIGIN), and the permission boundary a peer message can never cross. Carries change provenance: how to tell what this session wrote from what it found, via `change-provenance.sh`, and how to get the intent behind a foreign change from the session that wrote it. Activates on "peer session", "andere Session", "wer arbeitet gerade woran", "wer hat das geändert", "fremde Änderungen", when `ListAgents` shows live peers, when a message arrives, when a review or ship meets uncommitted work nobody in this session made, or when a change affects a repo a peer consumes. NOT for agent teams this session spawns (use coordinating-agent-teams). NOT for subagents (use the Agent tool directly).
unslop
Cuts AI tells from any text that reaches a human reader: Linear tickets and comments, commit messages, MR/PR descriptions, READMEs and migration guides, QA instructions, offer and showcase copy, and the body of skills, commands, and agents. Carries the English pattern catalogue, a German one (Nominalstil, Floskeln, Füllwörter, Gedankenstrich), and the rules for putting voice back in. Activates whenever prose is written or edited for a human, and on "unslop", "entschwurbeln", "klingt nach KI", "KI-Sprech", "slop". NOT for code identifiers, generated files, or quoted third-party text.
Bio shown is the top-scored skill's repo description as a fallback — real GitHub bios land in a future update.