# Lupopedia OS -- local data model

Lupopedia inherits Crafty Syntax's local database model.

Each domain keeps its own data. lupopedia.com does not receive it and does not store it.

When Lupopedia is installed at:

```text
theirdomain.com/lupopedia/
```

it uses the existing Crafty Syntax database on that domain. That database already contains the page graph, visitor flows, chats, operator logs, sessions, and monthly path totals.

This is a ColorLex operator briefing. It is not a Lupopedia PRD. Crafty import doctrine in the OS tree includes PRD 13 and PRD 85. Schema law stays in the install SQL.

---

## Locked statement

Lupopedia.com is Node 0. Node 0 is the registry, not the database. Node 0 does not store domain data, does not sync domain data, does not aggregate page maps, and does not collect analytics.

Each domain is sovereign. Each domain keeps its own page map, monthly path totals, color registry, artifact registry, actor system, chat transcripts, and semantic graph.

Crafty Syntax already built the analytics layer Lupopedia needs. Lupopedia inherits it automatically. That is why Lupopedia does not need cloud analytics, centralized storage, external APIs, Docker, CI/CD, Composer, npm, or GitHub pipelines.

---

## What the local database already holds

### 1. Every page path

Crafty Syntax indexed the domain. Examples of what that looks like:

```text
/index.php
/about.html
/products/widget-a/
/support/contact/
/blog/post-123/
```

Every page. Every URL. Every normalized path.

### 2. Every enter / exit page

Crafty Syntax stored where visitors entered, exited, bounced, and flowed next.

This is the page graph Lupopedia inherits.

### 3. Every visitor flow

Crafty Syntax tracked page-to-page transitions, session paths, first-time transitions, and repeated transitions.

This is the semantic routing map Lupopedia uses.

### 4. Every chat transcript

Crafty Syntax stored visitor chats, operator chats, timestamps, and session IDs.

Lupopedia inherits this for actor and AI pairing.

### 5. Every operator log

Crafty Syntax stored operator actions, operator messages, and operator sessions.

Lupopedia uses this for actor identity.

### 6. Every session

Crafty Syntax stored session IDs, IPs, timestamps, and page sequences.

Lupopedia uses this for artifact context.

### 7. Monthly totals for every path transition

This is the part modern tools miss.

Crafty Syntax did not only store raw paths. It stored monthly aggregates:

- paths_monthly
- enter -> exit transitions
- YYYYMM buckets
- visits totals
- weighted path counts
- first-time vs repeated transitions

Crafty Syntax already built the analytics layer Lupopedia needs. Lupopedia inherits it automatically.

That is why Lupopedia can color pages, organize pages, build semantic channels, build actor contexts, build artifact maps, build lookup routes, build federated identity, and build local registries and local authority without a cloud analytics stack.

---

## 8. lupopedia.com does not get their data

- lupopedia.com is Node 0
- Node 0 is the registry, not the database
- Node 0 does not store domain data
- Node 0 does not sync domain data
- Node 0 does not aggregate page maps
- Node 0 does not collect analytics

Each domain keeps:

- its own page map
- its own monthly path totals
- its own color registry
- its own artifact registry
- its own actor system
- its own chat transcripts
- its own semantic graph

This is the architecture. Do not invent a pipeline that copies these tables to Node 0 to "complete" federation.

---

## 9. Registered vs unregistered (reminder)

Registered domains (Node >= 2): optional registration with lupopedia.com. They get a federation ID. They appear in the global directory.

Unregistered domains (ALWAYS Node 1): Node 1 is not a single node. Node 1 is a category meaning independent Lupopedia install. There can be thousands, tens of thousands, or hundreds of thousands of Node 1 installs. All valid. All sovereign. All local. All independent.

Full briefing: [federation-registration-model.md](federation-registration-model.md).

---

## What Cursor must not do

| Wrong | Right |
|-------|--------|
| Send page maps / chats / analytics to lupopedia.com | Data stays on the domain |
| Node 0 is the database | Node 0 is the registry / directory |
| Need Google Analytics / a cloud warehouse | Inherit Crafty monthly path totals |
| Need Docker/CI to "do analytics right" | The local DB already did the hard part |
| Federation means copy all tables to Node 0 | Federation means optional directory listing; local data stays local |
| Auto-installers secretly upload customer data | Organic distribution: domain owners choose the install. Files and DB stay on the host |

---

See also:

- [intent-statement.md](intent-statement.md)
- [federation-registration-model.md](federation-registration-model.md)
- [architecture.md](architecture.md)
- [why-modern-stack-breaks-lupopedia.md](why-modern-stack-breaks-lupopedia.md)
- [auto-installer-ecosystem.md](auto-installer-ecosystem.md)
- [explaining-lupopedia-to-modern-ides.md](explaining-lupopedia-to-modern-ides.md)

Home: [../index.html](../index.html)

---

kapu: do not use the phrase "Trojan horse." It implies hacking or malicious intent, which is not present. Do not use infiltration, hacking, or deception as labels for this architecture. Lupopedia's intent is pono, transparent, and beneficial to domain owners. The correct term is "organic distribution."
