agents-standards
FreeStandards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
The English summary is being prepared. Showing the original description.
Standards and patterns for SDD configuration management.
The English summary is being prepared. Showing the original description.
Review the instructions the agent will receive before you install.
Standards and patterns for SDD configuration management.
components/config/envs/default/ → envs/{env}/ merge orderSDD_CONFIG_PATH allowed for serverscomponents/config/
├── package.json # Workspace package for type imports
├── tsconfig.json # TypeScript config
├── envs/
│ ├── default/
│ │ └── config.yaml # Base configuration (always merged first)
│ ├── local/
│ │ └── config.yaml # Local development overrides
│ ├── staging/
│ │ └── config.yaml # Staging overrides (add as needed)
│ └── production/
│ └── config.yaml # Production overrides (add as needed)
├── schemas/
│ └── config.schema.json # JSON Schema for validation
└── types/
├── index.ts # Re-exports all config types
└── {component}.ts # Per-component type definitions
Secret suffix (e.g., passwordSecret)# Section names match component names
task-service: # -> components/servers/task-service/
port: 3000
task-dashboard: # -> components/webapps/task-dashboard/
apiBaseUrl: /api
taskdb: # -> components/databases/taskdb/
host: localhost
# envs/default/config.yaml
global: {} # Reserved for future cross-cutting concerns
# Each component gets a section matching its directory name
server-task-service:
port: 3000
probesPort: 9090
logLevel: info
database:
host: db.internal
port: 5432
name: taskdb
user: app
passwordSecret: task-service-db-credentials
pool: 10
webapp-task-dashboard:
apiBaseUrl: /api
features:
darkMode: true
Components are environment-agnostic. Server, frontend, database, contract components never know which environment they're running in. They receive config values and use them.
Only two places know about environments:
components/config/ - has envs/local/, envs/production/, etc.components/helm-*/ - has values-local.yaml, values-production.yaml, etc.A server component:
config.port and listens on itconfig.database.host and connects to itif (env === 'local') logicTypes are defined in components/config/types/:
// types/server.ts
export type ServerConfig = Readonly<{
port?: number;
probesPort?: number;
logLevel?: 'debug' | 'info' | 'warn' | 'error';
database?: Readonly<{
host?: string;
port?: number;
name?: string;
user?: string;
passwordSecret?: string;
pool?: number;
}>;
}>;
Components import types via workspace package:
// In server component
import type { ServerConfig } from '@my-project/config/types';
schemas/config.schema.json) validates all config{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"global": { "type": "object" },
"server-task-service": {
"type": "object",
"properties": {
"port": { "type": "number" },
"logLevel": { "enum": ["debug", "info", "warn", "error"] }
}
}
}
}
components/config/envs/default/config.yamlcomponents/config/envs/local/config.yamlcomponents/config/schemas/config.schema.jsoncomponents/config/types/{component}.ts/sdd I want to generate config
SDD_CONFIG_PATH=./local-config.yaml npm start
Config contains secret references (K8s Secret names), not values:
# In config YAML
server-task-service:
database:
host: db.production.internal
passwordSecret: "task-service-db-credentials" # K8s Secret name
At deploy time, Helm maps these references to actual secrets:
# In helm-task-service/templates/deployment.yaml
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.config.database.passwordSecret }}
key: password
The application reads DB_PASSWORD from environment, not from config YAML.
Generated config files should be gitignored:
# Generated config files in server components (never commit)
components/server-*/local-config.yaml
components/server-*/*.schema.json
All envs/ directories ARE committed - they contain references only.
NODE_ENV is an infrastructure exception, not application config. It exists because third-party libraries check it for optimizations.
Application code NEVER reads NODE_ENV. It's injected by Helm for library behavior only.
| Environment | NODE_ENV | Set By |
|---|---|---|
| Local dev | Not set | (libraries default to development) |
| K8s staging | development | Helm values |
| K8s production | production | Helm values |
Validation happens:
/sdd I want to generate config time (CLI)This skill defines no input parameters or structured output.
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
The English summary is being prepared. Showing the original description.
Scaffolds Node.js/TypeScript backend components with CMDO architecture, driven by component settings.
The English summary is being prepared. Showing the original description.
CMDO architecture standards for Node.js/TypeScript backends with strict layer separation.
The English summary is being prepared. Showing the original description.
Intent-to-command mappings for fullstack-typescript tech pack features.
The English summary is being prepared. Showing the original description.
Create change specification and implementation plan with dynamic phase generation. Supports feature, bugfix, refactor, and epic types.
The English summary is being prepared. Showing the original description.
Orchestrates the full change lifecycle — routes actions to phase-specific sub-files.
The English summary is being prepared. Showing the original description.