> ## Documentation Index
> Fetch the complete documentation index at: https://internal.softcrum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Module — customer-core (CORE)

> Owns the contact, its identity, its behaviour, its consent, and the platform cross-cutting tables. Nobody else owns the contact. Schema core.

Depended on by every other module; depends on none of them. That direction is enforced by
dependency-cruiser, not by convention.

| Document                                                                                                      | Purpose                                                                    |
| ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [`prd.md`](/modules/core/prd)                                                                                 | What the module is, for whom, non-goals, success, commercial shape, phases |
| [`spec.md`](/modules/core/spec)                                                                               | The living technical shape: entities, invariants, events, endpoints        |
| [`features/`](https://github.com/softcrumlabs/softcrum-suite/tree/master/docs/internal/modules/core/features) | The feature specs — the units of delivery                                  |

Spanish mirror: [`../../es/modules/core/`](/es/modules/core/overview). English is authoritative.

## Feature roadmap

Fourteen deliveries. Nine make F1a, because almost everything else in the suite is blocked on them.

| FS                                                                      | Feature                                                     | Phase | Depends on | Status  |
| ----------------------------------------------------------------------- | ----------------------------------------------------------- | ----- | ---------- | ------- |
| [FS-CORE-0001](/modules/core/features/fs-core-0001-platform-catalogs)   | Platform catalogs — currencies, national ID types, channels | F1a   | —          | `draft` |
| [FS-CORE-0002](/modules/core/features/fs-core-0002-contacts)            | Contacts and national IDs                                   | F1a   | 0001       | `draft` |
| [FS-CORE-0003](/modules/core/features/fs-core-0003-identity-resolution) | Identity resolution and merges                              | F1a   | 0002       | `draft` |
| [FS-CORE-0004](/modules/core/features/fs-core-0004-consents)            | Consent as history                                          | F1a   | 0002       | `draft` |
| [FS-CORE-0005](/modules/core/features/fs-core-0005-audit-log)           | Audit log                                                   | F1a   | —          | `draft` |
| [FS-CORE-0006](/modules/core/features/fs-core-0006-event-ingestion)     | Event ingestion and tracked events                          | F1a   | 0003       | `draft` |
| [FS-CORE-0007](/modules/core/features/fs-core-0007-job-infrastructure)  | Job infrastructure — processed jobs and dead letters        | F1a   | —          | `draft` |
| [FS-CORE-0008](/modules/core/features/fs-core-0008-segments)            | Segment DSL and incremental evaluation                      | F1a   | 0006       | `draft` |
| [FS-CORE-0009](/modules/core/features/fs-core-0009-member-identity)     | Member identity and token exchange                          | F1a   | 0002       | `draft` |
| [FS-CORE-0010](/modules/core/features/fs-core-0010-usage-snapshots)     | Usage snapshots and metering                                | F1a   | 0007       | `draft` |
| [FS-CORE-0011](/modules/core/features/fs-core-0011-custom-attributes)   | Custom attribute definitions                                | F1b   | 0002       | `draft` |
| [FS-CORE-0012](/modules/core/features/fs-core-0012-event-taxonomies)    | Vertical event taxonomies                                   | F1b   | 0006       | `draft` |
| [FS-CORE-0013](/modules/core/features/fs-core-0013-imports)             | CSV import and merge review queue                           | F1b   | 0003       | `draft` |
| [FS-CORE-0014](/modules/core/features/fs-core-0014-erasure-portability) | Erasure and portability (ARCO)                              | F1b   | 0002, 0006 | `draft` |

## The cut, explained

* **Catalogs first** (`0001`) because every other table has a foreign key into them, and the
  `is_system` seeds generate the TypeScript unions the whole monorepo compiles against.
* **Audit log and job infrastructure** (`0005`, `0007`) have no dependencies and everything depends
  on them. They are early not because they are interesting but because nothing else can be correct
  without them.
* **Identity resolution** (`0003`) is separate from contacts (`0002`) because storing a contact and
  deciding that two records are the same person are different problems with different risk: one is
  a schema, the other is where a false merge destroys data.
* **Consent** (`0004`) is its own delivery, not a column on contacts, because it is history with
  legal weight and it is read by a module that does not own it.
* **Member identity** (`0009`) is here rather than in loyalty because the member is a contact, and
  the contact belongs to core. Loyalty consumes the identity; it does not define it.
