Problem statement
CoreConfig in internal/spec/spec.go only has fields for the v0.1 Go generator (linter, formatter, CI, deployment, monitoring, tracking). The new v0.2 generators need additional fields that dot init will ask for and that generators will read.
Proposed solution
Add the following fields to CoreConfig:
Architecture string // "mvc" | "clean" | "hexagonal"
FrontendArchitecture string // "feature-sliced" | "atomic" | "container-presentational"
DeploymentTarget string // "aws" | "gcp" | "none"
DeploymentType string // "terraform" | "kubernetes" | "github-actions" | "all"
GatewayType string // "nginx" | "kong" | "traefik" | "none"
ServiceComm string // "rest" | "grpc" | "both"
Add new ProjectType constant: microservices.
Update the dot init TUI survey in cmd/dot/cmd_init.go to ask for these fields contextually (e.g. Architecture only appears for API project types; GatewayType only for microservices).
Alternatives considered
Store these in Extensions map[string]any (the community generator escape hatch). Rejected — these are official generator fields; they belong in the typed struct.
Area
Core
Additional context
Depends on: Architecture pattern decision (to know if Architecture is a top-level field or goes elsewhere).
Problem statement
CoreConfigininternal/spec/spec.goonly has fields for the v0.1 Go generator (linter, formatter, CI, deployment, monitoring, tracking). The new v0.2 generators need additional fields thatdot initwill ask for and that generators will read.Proposed solution
Add the following fields to
CoreConfig:Add new
ProjectTypeconstant:microservices.Update the
dot initTUI survey incmd/dot/cmd_init.goto ask for these fields contextually (e.g.Architectureonly appears for API project types;GatewayTypeonly for microservices).Alternatives considered
Store these in
Extensions map[string]any(the community generator escape hatch). Rejected — these are official generator fields; they belong in the typed struct.Area
Core
Additional context
Depends on: Architecture pattern decision (to know if
Architectureis a top-level field or goes elsewhere).