Skip to content

Naming Conventions

Consistent naming is a prerequisite for traceability and reuse. Every name in the ConnectSoft AI Software Factory follows the rules below so that a developer, an agent, or a knowledge-graph query can resolve any identifier to its owning platform, bounded context, and artifact type.

Namespace and service names

Element Convention Example
Factory platform service ConnectSoft.Factory.{Platform}.{Service} ConnectSoft.Factory.Knowledge.ContextBuilderService
Agent ConnectSoft.Agent.{AgentName} ConnectSoft.Agent.SolutionArchitect
Skill ConnectSoft.Skill.{SkillName} ConnectSoft.Skill.GenerateDomainModel
Template ConnectSoft.Template.{TemplateName} ConnectSoft.Template.Microservice
Library ConnectSoft.{LibraryArea}.{Capability} ConnectSoft.Extensions.PersistenceModel.NHibernate

Factory services vs. generated services

ConnectSoft.Factory.* names belong to the factory platforms themselves (Control Plane, Knowledge, Agent Mesh, etc.). Services generated by the factory for a customer SaaS use that product's own namespace and are described in the Generated SaaS Product Platform. Existing reusable libraries and templates keep their established ConnectSoft.{Area}.{Capability} names (e.g. ConnectSoft.Extensions.Saas.AspNetCore).

Platform tokens

The {Platform} token is one of: Studio, ControlPlane, AgentMesh, Knowledge, Templates, Marketplace, DevOps, Runtime, Observability, Governance, Integration.

Events and commands

Element Convention Examples
Domain / integration event NounVerbPastTense ArtifactCreated, AgentTaskCompleted, BlueprintValidated, DeploymentPromoted
Command VerbNoun BuildContextPackage, AssignAgentTask, PublishTemplate, ProvisionEnvironment

Events describe facts that already happened; commands express intent. Both travel in the canonical event envelope. Breaking event changes append a version suffix (ArtifactCreatedV2).

Aggregate roots and domain types

Element Convention Example
Aggregate root Singular noun, PascalCase Blueprint, AgentTask, ContextPackage
Entity Singular noun, PascalCase BlueprintVersion, SkillExecution
Value object Singular noun, PascalCase TenantId, ArtifactReference, RetryPolicy
Repository {AggregateRoot}Repository BlueprintRepository
Domain service {Capability}Service (domain layer) CompatibilityEvaluationService

Identifiers

Identifiers use a short stable prefix plus an opaque value so they are self-describing in logs and the knowledge graph.

Entity Prefix Example
Event evt- evt-7b3c1f9a
Trace trace- trace-9f1c2b7d
Tenant tenant slug connectsoft
Project proj- proj-booking-saas
Module module- module-reservations-api
Agent task task- task-4d21
Artifact art- art-domainmodel-7c
Context package ctx- ctx-31f8

REST resource paths

  • Plural, lowercase, hyphenated collection nouns: /agent-tasks, /pull-requests, /marketplace/assets.
  • Sub-resources nest under their parent: /templates/{templateId}/versions.
  • Actions that are not pure CRUD use a verb sub-path: /agent-executions/{executionId}/complete, /policies/evaluate.

.NET project layering

Generated and factory microservices follow the ConnectSoft.MicroserviceTemplate Clean Architecture layout:

ConnectSoft.Factory.{Platform}.{Service}.Api               # ASP.NET Core host (REST + gRPC)
ConnectSoft.Factory.{Platform}.{Service}.Application        # use cases, command/query handlers
ConnectSoft.Factory.{Platform}.{Service}.ApplicationModel   # DTOs, contracts
ConnectSoft.Factory.{Platform}.{Service}.DomainModel        # aggregates, entities, value objects, domain events
ConnectSoft.Factory.{Platform}.{Service}.PersistenceModel.NHibernate
ConnectSoft.Factory.{Platform}.{Service}.FlowModel.MassTransit   # messaging (primary)
ConnectSoft.Factory.{Platform}.{Service}.DatabaseModel.Migrations
ConnectSoft.Factory.{Platform}.{Service}.Options