Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Standards for Helm charts in SDD projects, including settings-driven patterns.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Standards for Helm charts in SDD projects. Charts are generated based on component settings from sdd/sdd-settings.yaml.
Use the following skills for reference:
techpack-settings — Authoritative source for helm component settings schema, validation rules, and the chart-per-deployment patternEach deployment configuration gets its own helm chart. A single server can have multiple helm charts (e.g., one for API mode with ingress, one for worker mode without). Delegate to the techpack-settings skill for the complete helm settings schema — it returns deploys (server reference), deploy_type (server/webapp), deploy_modes (array of mode strings like [api, worker]), ingress (boolean), and assets (static file configuration). These settings determine which templates are included in each chart.
Helm charts live at components/helm_charts/<name>/:
components/helm_charts/
├── main-server-api/ # API deployment
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ ├── configmap.yaml
│ └── servicemonitor.yaml
├── main-server-worker/ # Worker deployment (no ingress)
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── configmap.yaml
│ └── servicemonitor.yaml
├── admin-dashboard/ # Webapp deployment
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ └── configmap.yaml
└── umbrella/ # Optional: installs all charts
├── Chart.yaml
└── values.yaml
| File | Purpose |
|---|---|
values.yaml | Default values (development-safe) |
values-{env}.yaml | Environment overrides (local, staging, production) |
Every Helm chart must define these values:
# Infrastructure settings (NOT application config)
nodeEnv: development # NODE_ENV for libraries (Express caching, etc.)
# Application config (from config component)
config: {} # Merged config from components/config/envs/{env}/
replicaCount: 1
nodeEnv: development
image:
repository: main-server
tag: latest
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 3000
observability:
metrics:
enabled: true
port: 9090
serviceMonitor:
enabled: false
interval: 30s
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
config: {}
nodeEnv: development
image:
repository: main-server
tag: latest
pullPolicy: IfNotPresent
# Each mode gets independent scaling
api:
enabled: true
replicaCount: 2
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
worker:
enabled: true
replicaCount: 5
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 200m
memory: 256Mi
service:
type: ClusterIP
port: 3000
observability:
metrics:
enabled: true
port: 9090
serviceMonitor:
enabled: false
interval: 30s
config: {}
replicaCount: 1
nodeEnv: development
image:
repository: nginx
tag: alpine
pullPolicy: IfNotPresent
assets:
type: bundled # bundled | entrypoint
path: /usr/share/nginx/html
service:
type: ClusterIP
port: 80
ingress:
enabled: true
className: nginx
hosts:
- host: app.example.com
paths:
- path: /
pathType: Prefix
config: {} # Injected into HTML at deploy time
All server charts include observability by default:
# templates/servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.fullname" . }}
spec:
selector:
matchLabels:
{{- include "common.selectorLabels" . | nindent 6 }}
endpoints:
- port: metrics
interval: {{ .Values.observability.metrics.serviceMonitor.interval }}
path: /metrics
All servers expose metrics on port 9090:
/metrics - Prometheus format metrics/health/live - Liveness probe/health/ready - Readiness probeApplications output JSON logs to stdout. The cluster's log collector (Victoria Logs) picks them up automatically.
Note: Cluster-level observability infrastructure is set up separately (see task #47).
Config is mounted via ConfigMap at /app/config/config.yaml:
# templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "common.fullname" . }}-config
data:
config.yaml: |
{{- toYaml .Values.config | nindent 4 }}
Config is injected into HTML at deploy time:
export const startApp = (config: AppConfig) => { ... }startApp(__SDD_CONFIG__)__SDD_CONFIG__ with JSON from ConfigMap# Generate config for production environment
<plugin-root>/fullstack-typescript/system/system-run.sh config generate --env production --component main-server \
--output helm-values-config.yaml
# Deploy with config
helm install my-release ./components/helm_charts/main-server-api \
-f values-production.yaml \
--set-file config=helm-values-config.yaml
| Var | Source | Purpose |
|---|---|---|
NODE_ENV | .Values.nodeEnv | Library behavior (Express caching, etc.) |
SDD_CONFIG_PATH | Static /app/config/config.yaml | Path to mounted config |
SDD_SERVER_MODE | Set per deployment | For hybrid: which mode (api, worker, cron) |
Config contains secret names, not values. Applications use K8s secretKeyRef to load the actual values:
# values-production.yaml
config:
database:
host: db.production.internal
passwordSecret: "my-db-credentials" # K8s Secret name
# templates/deployment.yaml - Using secretKeyRef
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.config.database.passwordSecret }}
key: password
/sdd I want to validate my config in CI/CDThis skill defines no input parameters or structured output.
config-standards — Delegate to this for config naming and structure conventions. Defines the config schema patterns that Helm values.yaml must align with.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Scaffolds Node.js/TypeScript backend components with CMDO architecture, driven by component settings.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
CMDO architecture standards for Node.js/TypeScript backends with strict layer separation.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Intent-to-command mappings for fullstack-typescript tech pack features.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create change specification and implementation plan with dynamic phase generation. Supports feature, bugfix, refactor, and epic types.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Orchestrates the full change lifecycle — routes actions to phase-specific sub-files.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.