.agents/skills/pnpm-monorepo/SKILL.md
# pnpm-monorepo Manages the pnpm monorepo in `src/dev-portal` using the `vp` (vite-plus) CLI. ## Workspace Structure ``` src/dev-portal/ ├── open-portal/ # Main portal workspace │ ├── apps/ # Applications │ │ ├── web/ # Web application │ │ ├── tui/ # Terminal UI application │ │ ├── web-design-system/ │ │ └── tui-design-system/ │ ├── packages/ # Shared packages │ │ ├── app/ # Core app packag
npx skillsauth add em-jones/staccato-toolkit .agents/skills/pnpm-monorepoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manages the pnpm monorepo in src/dev-portal using the vp (vite-plus) CLI.
src/dev-portal/
├── open-portal/ # Main portal workspace
│ ├── apps/ # Applications
│ │ ├── web/ # Web application
│ │ ├── tui/ # Terminal UI application
│ │ ├── web-design-system/
│ │ └── tui-design-system/
│ ├── packages/ # Shared packages
│ │ ├── app/ # Core app package
│ │ └── db-sqlite/ # SQLite database layer
│ └── plugins/ # Plugins
│ ├── catalog/
│ ├── runtime-core/
│ ├── runtime-k8s/
│ └── signal-provider-*/
└── oqa/ # Secondary workspace
└── packages/
├── domain/
├── errors/
├── logging/
├── metrics/
├── profiles/
├── search/
├── tailwind-config/
└── traces/
| Type | Scope | Example |
|------|-------|---------|
| Root | @op | @op |
| Apps | @openport/ | @openport/web, @openport/tui |
| Packages | @op/ | @op/app, @op/db-sqlite |
| Plugins | @op-plugin/ | @op-plugin/catalog, @op-plugin/runtime-k8s |
| OQA Packages | @oqa/ | @oqa/domain, @oqa/errors, @oqa/logging |
All commands must be run from the src/dev-portal directory.
# Start all apps in development mode
cd src/dev-portal && vp run dev
# Start specific app
cd src/dev-portal/open-portal/apps/web && vp dev --port 3000
# Watch a package during development
cd src/dev-portal/open-portal/packages/app && vp pack --watch
# Build all packages
cd src/dev-portal && vp run build
# Build a single package
cd src/dev-portal/open-portal/plugins/catalog && vp pack
# Run tests
cd src/dev-portal && vp run test
# Run type checking, linting, and formatting
cd src/dev-portal && vp run check
# Lint only
cd src/dev-portal && vp lint
# Format only
cd src/dev-portal && vp fmt
# Install all dependencies
cd src/dev-portal && vp install
# Add a dependency to a package
cd src/dev-portal/open-portal/packages/app && vp add nanostores
# Add a catalog dependency (from workspace catalog)
cd src/dev-portal/open-portal/packages/app && vp add solid-js -D catalog:
# Link a local package for development
cd src/dev-portal/open-portal/packages/app && vp link ../other-package
Use vp create from within the appropriate directory:
# Create a new plugin
cd src/dev-portal/open-portal/plugins && vp create
# Create a new package
cd src/dev-portal/open-portal/packages && vp create
When creating a new package:
@op-plugin/<name> for plugins, @op/<name> for packagesexports field in package.json for library packagesStandard scripts in packages:
| Script | Command | Description |
|--------|---------|-------------|
| dev | vp pack --watch | Watch and build |
| build | vp pack | Build for production |
| test | vp test | Run tests |
| check | vp check | Run lint, fmt, typecheck |
| typecheck | tsc --noEmit | TypeScript type checking |
tools
<!--VITE PLUS START--> # Using Vite+, the Unified Toolchain for the Web This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, but it invokes Vite through `vp dev` and `vp build`. ## Vite+ Workflow `vp` is a global binary that handles the full development lifecycle. Run `vp help` to pr
development
Guide for building performant data tables. Uses tanstack-table for table logic (sorting, filtering, pagination) and tanstack-virtual for rendering large datasets efficiently.
development
Expert guidance for building observable, expressive, and fault-tolerant TypeScript applications using the effect-ts/effect ecosystem. Covers Effect<A, E, R> type, error management, dependency injection via Layers, observability (logging, metrics, tracing), concurrency with Fibers, retry/scheduling, Schema validation, Streams, and Sinks.
tools
Complete E2E (end-to-end) and integration testing skill for TypeScript/NestJS projects using Jest, real infrastructure via Docker, and GWT pattern. ALWAYS use this skill when user needs to: **SETUP** - Initialize or configure E2E testing infrastructure: - Set up E2E testing for a new project - Configure docker-compose for testing (Kafka, PostgreSQL, MongoDB, Redis) - Create jest-e2e.config.ts or E2E Jest configuration - Set up test helpers for database, Kafka, or Redis - Configure .env.e2e environment variables - Create test/e2e directory structure **WRITE** - Create or add E2E/integration tests: - Write, create, add, or generate e2e tests or integration tests - Test API endpoints, workflows, or complete features end-to-end - Test with real databases, message brokers, or external services - Test Kafka consumers/producers, event-driven workflows - Working on any file ending in .e2e-spec.ts or in test/e2e/ directory - Use GWT (Given-When-Then) pattern for tests **REVIEW** - Audit or evaluate E2E tests: - Review existing E2E tests for quality - Check test isolation and cleanup patterns - Audit GWT pattern compliance - Evaluate assertion quality and specificity - Check for anti-patterns (multiple WHEN actions, conditional assertions) **RUN** - Execute or analyze E2E test results: - Run E2E tests - Start/stop Docker infrastructure for testing - Analyze E2E test results - Verify Docker services are healthy - Interpret test output and failures **DEBUG** - Fix failing or flaky E2E tests: - Fix failing E2E tests - Debug flaky tests or test isolation issues - Troubleshoot connection errors (database, Kafka, Redis) - Fix timeout issues or async operation failures - Diagnose race conditions or state leakage - Debug Kafka message consumption issues **OPTIMIZE** - Improve E2E test performance: - Speed up slow E2E tests - Optimize Docker infrastructure startup - Replace fixed waits with smart polling - Reduce beforeEach cleanup time - Improve test parallelization where safe Keywords: e2e, end-to-end, integration test, e2e-spec.ts, test/e2e, Jest, supertest, NestJS, Kafka, Redpanda, PostgreSQL, MongoDB, Redis, docker-compose, GWT pattern, Given-When-Then, real infrastructure, test isolation, flaky test, MSW, nock, waitForMessages, fix e2e, debug e2e, run e2e, review e2e, optimize e2e, setup e2e