Skip to main content

Catalog Structure

A catalog is a tree of named entries under the manifest's catalog: key. Each entry is one of three kinds, determined by which field it carries — the kinds are mutually exclusive:

KindFieldBehavior
LeafsourceRenders an archetype (or delegates to another catalog repo)
GroupcatalogA submenu of nested entries
RemoteserverA federated subtree served by a remote Archetect server
catalog:
services: # group
description: "Backend Services"
catalog:
grpc: # leaf
description: "gRPC Service"
source: "git@github.com:acme/rust-grpc-archetype.git"
partner: # remote (federated)
description: "Partner Platform"
server:
endpoint: "https://archetect.partner.example:8443"

Entry names become path segments: the grpc leaf above is services/grpc, dispatched as archetect acme/services/grpc (prefixed by the catalog's name in the user's configuration).

Entry properties

PropertyTypeDefaultPurpose
descriptionstringentry nameMenu and search text
sourcestringArchetype source: git URL or local path (leaf)
catalogmapNested entries (group)
servermapendpoint + optional tls (federated remote)
answersmapPre-configured answers passed to the archetype
switcheslistPre-enabled switches, overlaid onto the inherited set (name=false disables one)
use_defaultslistPrompt keys that silently accept their defaults
use_defaults_allboolAccept defaults for all unanswered prompts
libraryboolfalseStage this entry's lib/ and includes/ at load time (see Libraries)
showbooltrueVisibility in interactive menus

Pre-configuring entries

answers, switches, and use_defaults* let one archetype serve many menu items:

catalog:
grpc-service:
description: "gRPC Service"
source: "git@github.com:acme/rust-grpc-archetype.git"
grpc-service-lite:
description: "gRPC Service (minimal, no extras)"
source: "git@github.com:acme/rust-grpc-archetype.git"
answers:
features: []
use_defaults_all: true

Entry answers are authoritative — they override even -a flags — so a pre-configured entry always means what its curator intended.

Hidden entries

show: false removes an entry from menus while keeping it script-addressable — the standard marking for components and libraries that other archetypes compose but humans shouldn't render directly:

catalog:
org-prompts:
description: "Organization prompt component"
source: "git@github.com:acme/org-prompts-component.git"
show: false

Hidden entries still appear in archetect ls -a / search -a (that's what the flag is for).

Descriptions and metadata matter

Catalog manifests carry the same metadata as any archetype — description, summary, languages, frameworks, tags — and archetect search indexes all of it, along with each entry's description. Well-described entries are the difference between a searchable catalog and a junk drawer.

Full schema: Catalog Manifest reference.