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_typedetermines operator lifecycle(s)databasesdrives DAL layer per database, config sectionsprovides_contractsdrives HTTP routes, Service in helm chartconsumes_contractsdrives API clients, config sectionshelm: falseskips helm chart scaffolding
Webapp Settings
| Setting | Type | Default | Description |
|---|---|---|---|
contracts | string[] | [] | Contracts this webapp uses |
helm | boolean | true | Whether to generate helm chart |
Impact:
contractsdrives 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_modescreates separate deployments for multi-mode serversingressincludes/excludes ingress.yamlassetsdetermines 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
- Config is a mandatory singleton — every project must have exactly one
configcomponent. - Database references must exist — any name in a server's
databasesarray must match an existingdatabasecomponent. - Contract references must exist — any name in
provides_contracts,consumes_contracts, orcontractsmust match an existingcontractcomponent. - Helm
deploysmust reference existing component — thedeploysfield must reference an existingserverorwebappcomponent. - Helm
deploy_modesmust be valid — each mode indeploy_modesmust be a valid mode for the referenced server'sserver_type(e.g., a server withserver_type: apicannot havedeploy_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
- Good:
- Exception:
config(singleton)
Input / Output
This skill defines no input parameters or structured output.