# NexusCRM Public-Core V1 Definition

## Scope Statement

- Classification: `staged closure blueprint`
- In scope:
  - define what `NexusCRM public-core v1` is
  - define the first public release promise and non-goals
  - define the product boundary between public core and private business
- Out of scope:
  - full package lifecycle
  - full external tenant onboarding lifecycle
  - private continuity packaging
  - legal/commercial launch details

## 1. Product Name

The product name is `NexusCRM`.

This document defines the first public product shape:

> `NexusCRM public-core v1`

`public-core v1` is a scope/version description, not a different product name.

## 2. One-Line Definition

`NexusCRM public-core v1` is an Apache-2.0 metadata-driven CRM platform
baseline delivered as a public workspace/distribution. It includes the
open-source frontend, shared contracts, L0 kernel, public L0 extension modules,
the first L1 CRM app/dialect pack, and enough public bootstrap/control-plane,
documentation, and verification assets to support greenfield self-hosted
startup.

`public-core v1` is a product/release boundary, not a promise that every public
surface must live forever inside the L0 kernel package tree. The L0 kernel may
be slimmed to engine-only code as long as the public-core distribution still
ships the required runtime, API host, control-plane/bootstrap/verify path, and
greenfield self-hosting contract through public modules or public repositories.

## 3. What V1 Includes

- open-source frontend runtime and generic object UI
- shared schema/types/constants/codegen outputs
- backend L0 kernel runtime
- public L0 extension modules required by the default distribution, including
  API host/runtime composition, control-plane, bootstrap/setup, verify, pack
  apply/drift, and any extension needed by the greenfield startup contract
- standard Salesforce-shaped CRM L1 app/dialect pack that belongs to the public
  platform baseline
- public self-hosting, architecture, and compatibility docs
- public bootstrap and verification tooling

## 4. What V1 Does Not Include

- tenant-private payload under `backend/internal/controlplane/tenants/**`
- tenant-private overlays, flows, layouts, record types, and business fields
- private deployment/ops glue
- internal-only runbooks and migration history
- full package lifecycle and registry contract
- full external tenant onboarding contract

## 5. Public Promise

The first public release promises:

1. the public-core can build without private source material
2. a greenfield org can bootstrap and start without tenant overlay
3. the frontend, backend/kernel, public API host, and required public extension
   modules can serve a baseline public service surface
4. public compatibility claims are explicit and conservative

## 5.1 Kernel/Extension Boundary

The public-core v1 promise is evaluated at the public distribution/workspace
level:

1. `L0 kernel` owns generic engines and authoritative read/write paths for
   metadata, records, policy, query, persistence primitives, and narrow
   contracts.
2. `L0 extension modules` may own public but non-kernel capabilities such as
   API host/runtime composition, control-plane/bootstrap/verify, pack
   apply/drift, automation, connectors, formula, analytics, files, and
   observability.
3. `L1 app/dialect packs` own Salesforce/CRM product shape and vendor wire
   compatibility.
4. Moving a capability out of the kernel is allowed only if the replacement
   public module/repo preserves the greenfield startup and verification path
   before the old path is removed.

This boundary lets the codebase move toward an engine-only L0 kernel without
weakening the public-core v1 product promise.

## 6. Non-Goals

The first public release does not promise:

1. 100% Salesforce parity
2. full business workflow parity for the current private tenant
3. package upgrade/conflict/uninstall lifecycle
4. private continuity or migration tooling as part of the public product
5. turning the current overlay directory layout into a long-term public install contract

## 7. Repo Evidence Checked

These paths are current-tree evidence, not permanent ownership promises. Future
module relocation work must provide equivalent or better public evidence before
these paths can be removed from the kernel tree.

- `infra/runtime/deploy.py` and `backend/cmd/runtime-api/main.go`
  - app-blind L0 initialization and serving do not require tenant overlays
- `backend/internal/controlplane/operations.go`
  - `apply-tenant` is a separate, explicit operation
- `backend/internal/controlplane/verify.go`
  - verify is tenant-agnostic by contract for the public baseline path
- `infra/runtime/README.md`
  - L0 deployment and application activation have separate, explicit inputs
- `backend/internal/controlplane/packspec/standard_objects_spec.json`
  - standard CRM object baseline ships from platform-owned spec

## 8. Design Consequence

The public product should be described first as:

- a platform baseline
- a greenfield self-hostable public distribution/workspace
- a documented compatibility surface

It should not be described first as:

- a package marketplace
- a private-tenant continuity bundle
- a fully closed external tenant onboarding system
- a requirement that all public runtime/bootstrap/control-plane code remain in
  the L0 kernel package tree
