Component type definitions, settings schemas, directory patterns, and validation rules for the fullstack-typescript tech pack.
Scanned 5/27/2026
Install via CLI
openskills install LiorCohen/sdd---
name: techpack-settings
description: Component type definitions, settings schemas, directory patterns, and validation rules for the fullstack-typescript tech pack.
user-invocable: false
---
# Techpack Settings
Component type definitions, settings schemas, directory patterns, and validation rules for the fullstack-typescript tech pack. This skill is loaded by core's `project-settings` skill to provide tech-pack-specific component knowledge.
---
## Component Types
| Type | Directory Pattern | Description |
|------|-------------------|-------------|
| `config` | `components/config` | Singleton configuration management |
| `server` | `components/servers/{name}` | Node.js/Express backend (CMDO architecture) |
| `webapp` | `components/webapps/{name}` | React/Vite frontend (MVVM architecture) |
| `database` | `components/databases/{name}` | PostgreSQL database |
| `contract` | `components/contracts/{name}` | OpenAPI 3.x specification |
| `helm` | `components/helm_charts/{name}` | Kubernetes Helm chart |
| `integration-testing` | `components/integration-testing` | Integration test suite |
| `e2e-testing` | `components/e2e-testing` | E2E test suite (Playwright) |
| `cicd` | `components/cicd` | CI/CD pipeline (GitHub Actions) |
---
## Settings Schema by Type
### Server Settings
| Setting | Type | Default | Description |
|---------|------|---------|-------------|
| `server_type` | `api\|worker\|cron\|hybrid` | `api` | Communication pattern(s) |
| `modes` | `(api\|worker\|cron)[]` | — | For hybrid: which modes (2+ required) |
| `databases` | string[] | `[]` | Database components this server uses |
| `provides_contracts` | string[] | `[]` | Contracts this server implements |
| `consumes_contracts` | string[] | `[]` | Contracts this server calls |
| `helm` | boolean | `true` | Whether to generate helm chart |
**Impact:**
- `server_type` determines operator lifecycle(s)
- `databases` drives DAL layer per database, config sections
- `provides_contracts` drives HTTP routes, Service in helm chart
- `consumes_contracts` drives API clients, config sections
- `helm: false` skips helm chart scaffolding
### Webapp Settings
| Setting | Type | Default | Description |
|---------|------|---------|-------------|
| `contracts` | string[] | `[]` | Contracts this webapp uses |
| `helm` | boolean | `true` | Whether to generate helm chart |
**Impact:**
- `contracts` drives API clients, config sections
### Helm Settings
| Setting | Type | Default | Description |
|---------|------|---------|-------------|
| `deploys` | string | — | Component to deploy (required) |
| `deploy_type` | `server\|webapp` | — | Type being deployed (required) |
| `deploy_modes` | `(api\|worker\|cron)[]` | — | For servers: which modes |
| `ingress` | boolean | `true` | External HTTP access |
| `assets` | `bundled\|entrypoint` | `bundled` | For webapps: asset strategy |
**Impact:**
- `deploy_modes` creates separate deployments for multi-mode servers
- `ingress` includes/excludes ingress.yaml
- `assets` determines webapp build strategy
### Database Settings
| Setting | Type | Default | Description |
|---------|------|---------|-------------|
| `provider` | `postgresql` | `postgresql` | Database provider |
| `dedicated` | boolean | `false` | Needs own DB server |
### Contract Settings
| Setting | Type | Default | Description |
|---------|------|---------|-------------|
| `visibility` | `public\|internal` | `internal` | External consumers allowed |
### Config Settings
Config component has no settings (it is a singleton).
### Testing Settings
Testing components (integration-testing, e2e-testing) have no settings. Structure is driven by testing standards skills.
### CI/CD Settings
CI/CD component has no settings. Structure is driven by the cicd-standards skill.
---
## Validation Rules
1. **Config is a mandatory singleton** — every project must have exactly one `config` component.
2. **Database references must exist** — any name in a server's `databases` array must match an existing `database` component.
3. **Contract references must exist** — any name in `provides_contracts`, `consumes_contracts`, or `contracts` must match an existing `contract` component.
4. **Helm `deploys` must reference existing component** — the `deploys` field must reference an existing `server` or `webapp` component.
5. **Helm `deploy_modes` must be valid** — each mode in `deploy_modes` must be a valid mode for the referenced server's `server_type` (e.g., a server with `server_type: api` cannot have `deploy_modes: [worker]`).
---
## Naming Rules
- Names must be lowercase
- Use hyphens, not underscores or spaces
- Names should be multi-word and domain-specific
- Good: `order-service`, `analytics-db`, `customer-portal`, `task-api`
- Avoid: `api`, `public`, `primary`, `main`, `server`
- Exception: `config` (singleton)
---
## Input / Output
This skill defines no input parameters or structured output.
No comments yet. Be the first to comment!