Skip to content

Glossary

Core Terms

Term Code Name Definition Scope
AI Assistant Technology to support the human Developer in his goals ALL
Artifact Name ArtifactName Technical identifier of the build output - the name of the executable binary or library archive. Derived from the Git remote slug when not supplied explicitly. In C++ projects hyphens are replaced by underscores. D
Delegate (pattern) A Generator implementation that handles a specific sub-scope (language or project type) by being called from its parent generator. NOT a general design pattern here - always a node in the delegate chain. D
Developer A specific type of User. Uses this generator to initialize Git repositories to start development ALL
Generation Request GenerationRequest The raw, unvalidated user intent expressed via CLI flags. Validated and assembled into a ProjectDescriptor. NOT the same as ProjectDescriptor - a request may be invalid; a descriptor is always valid. A
Generator Generator Interface with the single method PopulateRepository(). Contract for all code-generation delegates. NOT a factory - it does not create descriptors, it consumes them. D
Generator owned Files that are under control of the code generator, e.g. Makefile. These should not be edited by the user. ALL
Guideline (file concept) A Markdown document encoding a quality or process standard (e.g. testing.md, security.md). Copied verbatim to every generated project's specs/guidelines/ folder. NOT generated from a template. ALL
Presentation Model PresentationModel Flat, template-ready data structure derived from a ProjectDescriptor. Fed directly into Go's text/template engine. NOT a domain model - contains no business logic, only data shaped for rendering. D
Project Descriptor ProjectDescriptor Validated, immutable description of a project to be generated. Carries all user-supplied and inferred parameters. The single input to the generator pipeline. NOT a config file - it is an in-memory value. D
Repository Directory with subdirectory and files tracked by SCM Git. ALL
Repository Configuration RepoConfig Persistent YAML file (.repo.yaml) written by repo init and read by repo update. Records the project's language, type, CI system, name, and artifact so updates require no CLI flags. D
Scaffolding (process) The act of populating an empty repository with standard structure, boilerplate, and guidelines. The result is a scaffolded project. Includes both file generation and static file copying. ALL
SCM Short for Source Code Management, versioning of development artifacts ALL
Skill (file concept) A Claude Code custom slash command in .claude/commands/. Predefined prompt for a recurring AI-assisted development task (e.g. /review, /new-endpoint). Generated per project type per the Skill Matrix. ALL
Skill Matrix (content convention) Mapping of skills to applicable project types (CLI Tool, Library, Service). Determines which skill files are generated for a given ProjectDescriptor. Analogous to the guideline applicability table. ALL
Target Repository TargetPath The absolute or relative path of the empty Git repository to be populated. All generated and copied files are written here. NOT the generator's own repository. D
Template (embedded file) A text file containing Go text/template directives, embedded in the generator binary. Instantiated by the template engine to produce a generated file. Always refers to a text/template file, not a concept. I
Template Engine engine (package) The engine package that combines a template with a PresentationModel to produce a generated file. Handles file I/O and error propagation. I
User Human beeing that is using an application ALL
User owned Files that are under control of the user, e.g. Makefile.local. These should not be overwritten by the generator. ALL

Value Objects

Value objects are applicable here: project_descriptor.go defines typed string aliases for each constrained input. Every alias is a value object — no identity, validated on construction.

Term Code Name Validation / Constraints
Artifact Name ArtifactName Must not be blank; derived from Git remote slug when absent (BR-009)
C++ Namespace CPPNamespace Derived from ArtifactName; hyphens replaced by underscores (BR-012); C++ only
Go Module Path GoModulePath Must not be blank; derived from Git remote URL when absent (BR-010); Go only
Project Name ProjectName Must not be blank (BR-001)
Project Short Description ProjectShortDescription Must not be blank (BR-002)
Target Path TargetPath Must not be blank (BR-003)

Enumerations

Enumerations are applicable here: Language, ProjectType, and CIType are all typed int constants defined in the internal package.

Enum Name Code Name Values Notes
CI Type CIType CI_TYPE_GITHUB, CI_TYPE_GITLAB Inferred from Git remote when absent (BR-008)
Language Language LANGUAGE_CPP, LANGUAGE_GO, LANGUAGE_JAVA Validated at CLI boundary (BR-004)
Project Type ProjectType PROJECT_TYPE_EMBEDDED, PROJECT_TYPE_LIBRARY, PROJECT_TYPE_SERVICE, PROJECT_TYPE_TOOL Validated at CLI boundary (BR-005)