Product Names
- Use
GOWDKas the product name and wordmark in prose. - Use
GOWDK Compilerfor the.gwdklanguage/compiler layer when the layer must be explicit. - Use
GOWDK Runtimefor the app/runtime product layer. - Do not write
GoWDK,Go WDK,GOWDK Kit, or invent an expansion forWDK.GOWDK Kitis especially forbidden because it reads as "kit kit": theKin the wordmark already carries the kit idea. - When referring to the product direction, prefer concrete wording such as "GOWDK ships apps" or "GOWDK is a portable Go web compiler."
- When referring to the combined layer model, write
GOWDK Compiler plus GOWDK Runtime. Avoid makingGOWDK World,GOWDK Core, orGOWDK Frameworknew public product names unless a future ADR accepts that rename.
Product Layer Names
| Name | Use For | Do Not Use For |
|---|---|---|
GOWDK | Product name and wordmark for the whole repository/product direction. | A hidden expansion of WDK, or the redundant "kit kit" phrase GOWDK Kit. |
GOWDK Compiler | .gwdk language, parser, analyzer, compiler, diagnostics, LSP, generated adapter source, build output, route metadata, asset metadata. | Runtime request handling, server process ownership, auth, storage, or user business behavior. |
GOWDK Runtime | Runtime/app layer: runtime/, addons/, generated net/http app serving, routing, request context, form decoding, response envelopes, actions, APIs, fragments, SSR hooks, embedded assets, one-binary and split-binary wiring. | .gwdk syntax, parser semantics, compiler AST ownership, or user-owned domain logic. |
gowdk | CLI binary, Go package name, module path segment, config filename prefixes, generated asset prefixes, generated JavaScript runtime prefixes. | User-facing prose product name. |
GOWDK app | A user app built or served through generated output and GOWDK Runtime. | The compiler itself. |
addon | Optional feature-registration or integration package under addons/. | A separate product layer competing with GOWDK Runtime. |
Ambiguous Terms
- Avoid bare
corein product docs. Prefercompiler core,runtime core, orrepository core. - Use
runtimefor package-level implementation details such asruntime/apporruntime/contracts; useGOWDK Runtimefor the product layer. - Use
request-time page renderingfor SSR behavior. Do not describe SSR as the framework identity. - Use
generated adapterfor generated Go glue. Do not call it generated application logic.
Lowercase Project Names
- Use
gowdkfor the CLI binary. - Use
gowdkfor the Go package name and module path segment. - Use
gowdkfor config filename prefixes, generated asset prefixes, and generated JavaScript runtime prefixes. - Use
gowdk.config.gofor project config files.
Source Files And Artifacts
- Use
.gwdkfor source files. - Use
.page.gwdkfor pages. - Use
.cmp.gwdkfor components. - Use lower-kebab-case for generated and CLI-facing artifact names, such as
gowdk-routes.jsonandgowdk-assets.json.
Runtime Names
- Use upper snake case with the
GOWDK_prefix for environment variables, such asGOWDK_APP_ID,GOWDK_MODULE_NAME, andGOWDK_INSTANCE_ID. - Use
X-GOWDK-*for HTTP headers owned by generated GOWDK apps. - Use
data-gowdk-*for generated HTML data attributes owned by the client runtime.
Go Identifiers
- Use Go initialism conventions for identifiers:
API,CSS,HTML,HTTP,ID,JSON,LSP,SSR, andURL. - Use full domain names for exported types and functions unless a short name is
already the domain term. Prefer
BuildTargetConfigoverTarget, andRenderModeoverMode. - Keep config field names concise but complete. A field name should make sense
inside
gowdk.Config{...}without relying on surrounding comments. - Name modules after user-owned source groups, for example
public,admin,api, ormarketing. - Treat
ModuleConfig.Typeas metadata. It must not imply deployment behavior unless a future ADR defines that contract.