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