# Vertical Learning Data — Independent & Reusable

This complements the older combined index under `learning/data/vectors/`.  
**For reusable channel learning, always use `learning/data/vertical/`.**

## Why separate?

Facebook Page image posts ≠ LinkedIn Company Page video posts.  
Mixing them in one vector file pollutes retrieval. Each slice is independent:

`{channel}/{destination}/{mediaType}`

Examples:

- `facebook/page/image`
- `facebook/account/content`
- `linkedin/page/video`
- `linkedin/account/image`
- `instagram/business/image`
- `youtube/channel/video`
- `twitter/account/content`

## Where files live

```
learning/data/vertical/
  catalog.json
  facebook/
    account/
      schema.json
      content/posts.json
      image/posts.json
      video/posts.json
      vectors/content.chunks.json
      vectors/image.chunks.json
      vectors/video.chunks.json
      vectors/manifest.json
    page/
      … same shape …
  linkedin/
    account/   # member profile
    page/      # company page
  instagram/business/
  youtube/channel/
  twitter/account/
```

## Commands

```bash
node learning/scripts/seed-vertical-data.mjs
node learning/scripts/build-vertical-vectors.mjs
node learning/scripts/query-vertical.mjs facebook page image "launch banner"
node learning/scripts/query-vertical.mjs linkedin account content "thought leadership"
```

npm:

```bash
npm run learning:seed-vertical
npm run learning:build-vertical
```

## Database?

Still optional. Prefer **separate files per slice**. If you later use MariaDB, store rows with columns `channel`, `destination`, `media_type` and **query with those filters** — never a single mixed index without filters.
