Template & Library — overview¶
Target
This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.
Rewritten 2026-10-09 (design plan P15)
This page replaces the June-2026 overview with its fourteen template and library services. The 2026 design is one host with three modules; the June-2026 detail pages (template registry, library registry, scaffold engine, compatibility model) stay as historical detail and the generated template catalog and library catalog pages are the current inventory. The old page is archived under catalogs 2026-06.
The Template & Library platform is what makes the Factory a ConnectSoft factory: it knows the blueprints a product is designed from, the 43 templates and ~125 libraries it is built from, which versions work together, and exactly which run generated which files from which template. It does not generate; generation is a Factory run that executes an approved recipe.
| Platform | PF-15 Template & Library (Software Factory pack) |
| Bounded contexts | BC-02, BC-14, BC-15 |
| Services | 21 (1 hosts, 17 modules, 0 external, 3 later) — 4 modelled |
| Gateways | — |
| Status | target |
Purpose¶
- Blueprints are documents with schemas. Each kind has a JSON Schema and a rule set (B1); validation yields findings with rule ids; service and module blueprints derive context maps and domain models that generation consumes.
- Manifests are pinned, never edited. Template versions are read from their repositories and pinned by hash; libraries from the feeds; a change is a commit.
- Compatibility needs evidence. A matrix cell is Compatible only with a build or conformance run behind it; otherwise Unknown.
- Recipes are immutable contracts. A recipe binds a Published blueprint to Published template and library versions with a module plan; approved recipes are executed by runs and superseded by new versions.
- Provenance to the file. Every generated module records run, attempt, agent release, template version, manifest hash, generated and preserved files, proposal and commit; preserved paths are never overwritten.
- Publication is BC-04's. Blueprints and templates become Published assets through Asset Publication and its evaluation gate (ADR-0021); Q-22 is decided: SaaS descriptors import into blueprints and the recipe path is the single generation contract (ADR-0025).
Bounded contexts and services¶
| Context | Owns | Services (granularity) |
|---|---|---|
| BC-02 Blueprint | Blueprint versions, findings, context maps, domain models | BlueprintService (module; parser, validator, context-map and domain-model rows merged) |
| BC-14 Template Catalog | Template and library versions, manifests, API clients, dependencies, compatibility matrix | TemplateRegistryService (module; eight rows merged); template upgrade and package upgrade advisors later |
| BC-15 Generation Recipe | Recipes, module plans, generated outputs | GenerationRecipeService (module, added; template validation and pipeline generation rows merged); scaffold engine later and optional (ADR-0025) |
| Host | Composition, feeds, repositories | TemplateCatalogHost (standalone) |
| Service | Context | Granularity | Status |
|---|---|---|---|
| ApiClientCatalogService | BC-14 | module of host | unmodelled |
| BlueprintParserService | BC-02 | module of host | unmodelled |
| BlueprintService | BC-02 | module of host | target |
| BlueprintValidatorService | BC-02 | module of host | unmodelled |
| CompatibilityMatrixService | BC-14 | module of host | unmodelled |
| ContextMapService | BC-02 | module of host | unmodelled |
| DependencyAnalyzerService | BC-14 | module of host | unmodelled |
| DomainModelService | BC-02 | module of host | unmodelled |
| LibraryRegistryService | BC-14 | module of host | unmodelled |
| LibraryVersionService | BC-14 | module of host | unmodelled |
| PackageUpgradeAdvisorService | BC-14 | later stage | unmodelled |
| PipelineGeneratorService | BC-15 | module of host | unmodelled |
| ScaffoldEngineService | BC-15 | later stage | unmodelled |
| TemplateCatalogHost | BC-14 | standalone host | target |
| GenerationRecipeService | BC-15 | module of host | target |
| TemplateCompatibilityService | BC-14 | module of host | unmodelled |
| TemplateParameterService | BC-14 | module of host | unmodelled |
| TemplateRegistryService | BC-14 | module of host | target |
| TemplateUpgradeService | BC-14 | later stage | unmodelled |
| TemplateValidationService | BC-15 | module of host | unmodelled |
| TemplateVersionService | BC-14 | module of host | unmodelled |
Context¶
flowchart LR
subgraph P["Template & Library"]
TemplateCatalogHost["TemplateCatalogHost"]
end
P --> ArtifactService["ArtifactService"]
P --> AgentRegistryService["AgentRegistryService"]
P --> EnvelopeRegistryService["EnvelopeRegistryService"]
P --> ControlPlaneApi["ControlPlaneApi"]
P --> KnowledgeHost["KnowledgeHost"]
P --> ext_azure_devops["ext-azure-devops"]
P --> GovernanceHost["GovernanceHost"]
P --> ext_identity_platform["ext-identity-platform"]
P --> RunControlService["RunControlService"]
P --> ModelRouterService["ModelRouterService"]
P --> ConnectorRegistryService["ConnectorRegistryService"]
P --> RepositoryIntelligenceService["RepositoryIntelligenceService"]
Containers¶
See microservices for the container view of hosts and modules.
From blueprint to running module¶
flowchart LR
BP[Blueprint version · validated · Published] --> CM[context map · domain model]
CM --> RE[Recipe · module plan · pinned templates and libraries · validated]
RE --> RUN[Generation run · agents · sandbox · propose-change-set]
RUN --> PR[Pull request · pipeline · release]
PR --> PROMO[Promotion · environment]
RUN -. RecordOutput .-> PROV[Generated-output provenance]
T[Template catalog · manifests · matrix] --> RE