ARCHITECTURE_v5

> Самоэволюционирующая система хранения и связывания ASO-данных.

> Каждый новый цикл данных автоматически обогащает все слои.

---

Проблема текущей архитектуры

Сейчас в хранилище 4 несвязанных слоя данных:

СлойПутьСтатусПроблема
**ASo_from_lena/**09-Apps/Masha Pizzeria/ASo_from_lena/36 папок Excel/WordСырые файлы, не читаемы в Obsidian
**raw_data/**09-Apps/Masha Pizzeria/raw_data/572 MD файла1:1 конверсия, нет структуры, нет связей
**extraction/de/**09-Apps/Masha Pizzeria/extraction/de/56 MD файловСтруктурированные, но только DE язык
**de/DE/** (v4)09-Apps/Masha Pizzeria/de/DE/8 placeholder файловПустые шаблоны, не связаны с данными

Главные проблемы:

  1. Данные из extraction/ не перетекают в v4 store_data файлы (ios.md, gp.md)
  2. Knowledge base (01-08) не ссылается на реальные данные приложений
  3. Нет механизма эволюции — каждая новая итерация ASO не обновляет предыдущие слои
  4. aso_core.md и aso_log.md пустые, хотя в extraction/ уже есть 28 итераций данных

---

Архитектура v5: Evolution Engine

Принцип: Data Flows Up

┌─────────────────────────────────────────────────────────────────┐
│                    KNOWLEDGE BASE (01-08)                        │
│  Глоссарий ASO → ссылки на реальные примеры из app data         │
│  "Keyword Relevance" → [[Masha Pizzeria DE — итерация где       │
│   изменили keywords и получили +30% visibility]]                 │
└──────────────────────────┬──────────────────────────────────────┘
                           │ references ↑↓
┌──────────────────────────▼──────────────────────────────────────┐
│                    APP CARD + STORE DATA (v4)                    │
│  de/DE/ios.md → ТЕКУЩЕЕ состояние метаданных, рангов, метрик    │
│  de/DE/aso_log.md → хронология ВСЕХ изменений                   │
│  de/aso_core.md → актуальное семантическое ядро                  │
└──────────────────────────┬──────────────────────────────────────┘
                           │ populated from ↑
┌──────────────────────────▼──────────────────────────────────────┐
│                    EXTRACTION (structured)                       │
│  extraction/de/app_store/01..28 → исторические снимки           │
│  extraction/de/google_play/01..28 → по стору отдельно           │
│  Каждый файл = один момент времени с полными данными            │
└──────────────────────────┬──────────────────────────────────────┘
                           │ parsed from ↑
┌──────────────────────────▼──────────────────────────────────────┐
│                    RAW DATA (archive)                            │
│  raw_data/01..36/ → 572 MD файлов, все листы Excel              │
│  Архив: не редактируется, только читается                       │
└──────────────────────────┬──────────────────────────────────────┘
                           │ converted from ↑
┌──────────────────────────▼──────────────────────────────────────┐
│                    SOURCE (original files)                       │
│  ASo_from_lena/ → Excel/Word оригиналы                          │
│  Хранятся как есть, не трогаются                                │
└─────────────────────────────────────────────────────────────────┘

Слой 1: SOURCE → RAW_DATA (✅ готово)

Конвертер: convert_all_to_md.py

Статус: 536 файлов → 572 MD, 0 ошибок

Правило: Запускается один раз при добавлении новых итераций. Не теряет ни одного символа.

Слой 2: RAW_DATA → EXTRACTION (🔧 DE готов, нужны другие языки)

Конвертер: extract_de_history.py

Статус: DE — 28 итераций × 2 стора = 56 файлов

Структура файла:

type: aso_extraction
app: masha-pizzeria
store: app_store | google_play
language: de
country: DE
iteration: 1-28
date: "YYYY-MM"
iteration_type: iteration | rank | amazon | custom_store
source_folder: "1. Июль-Август 2020"
prev_iteration: "[[01_2020-08_app_store]]"  # ← НОВОЕ: навигация
next_iteration: "[[03_2020-11_app_store]]"  # ← НОВОЕ: навигация

Что нужно добавить:

  • prev/next ссылки между итерациями (хронологическая цепочка)
  • Секция ## Delta — что изменилось по сравнению с предыдущей итерацией
  • extraction/ для других языков: EN, RU, ES, FR, IT, PT-BR, TR, ...

Слой 3: EXTRACTION → STORE DATA (v4) — 🆕 ключевой мост

Это главный недостающий элемент. Extraction содержит исторические снимки, а v4 store_data (ios.md, gp.md) должен содержать ТЕКУЩЕЕ состояние + ссылки на историю.

Механизм заполнения de/DE/ios.md:

---
type: store_data
app: masha-pizzeria
store: ios
store_locale: "de-DE"
language: "de"
country: "DE"
status: active                    # ← из placeholder → active
last_iteration: 36               # ← номер последней итерации
last_iteration_date: "2026-02"
date_updated: 2026-04-08
---

Секция Metadata → берётся из последней extraction итерации:

## Metadata

| Field | Value | Last Changed | Iteration |
|---|---|---|---|
| **Title** | Mascha und der Bär Pizzeria! | 2024-01 | [[25_2024-01_app_store]] |
| **Subtitle** | Koch und Backen Spiele: Pizza! | 2023-08 | [[19_2023-08_app_store]] |
| **Keywords** | kinder,für,toca,kitchen,... | 2024-05 | [[28_2024-05_app_store]] |

Секция Keywords Tracking → агрегация из ВСЕХ extraction итераций:

## Keywords Tracking

| Keyword | Current Rank | Best Rank | Worst Rank | First Seen | Iterations |
|---|---|---|---|---|---|
| mädchen spiele | 5 | 3 | 45 | 2020-08 | 28 |
| kinder spiele | 12 | 8 | - | 2020-08 | 28 |

Секция Change History → автоматически из extraction delta:

## Change History

| Date | Field | Before | After | Iteration | Impact |
|---|---|---|---|---|---|
| 2024-05 | Keywords | kinder,für,toca,... | kinder,für,toca,backen,... | [[28]] | +3 new keywords |
| 2024-01 | Title | Mascha Pizzeria! | Mascha und der Bär Pizzeria! | [[25]] | Brand keyword added |

Слой 4: STORE DATA → ASO_CORE (семантическое ядро языка)

de/aso_core.md — агрегация по ВСЕМ итерациям:

## Core Keywords

| # | Keyword | Priority | Best Rank | Volume | In Title | In Keywords | Iterations Used | First Used | Status |
|---|---|---|---|---|---|---|---|---|---|
| 1 | kinder spiele | S | 8 | 545 | ✓ | ✓ | 28/28 | 2020-08 | active |
| 2 | backen spiele | S | 12 | 23 | ✓ | ✗ | 25/28 | 2020-08 | active |
| 3 | pizza spiele | K | 559 | 27 | ✗ | ✓ | 20/28 | 2020-08 | deprecated |

## Keyword Clusters

| Cluster | Keywords | Avg Rank | Strategy |
|---|---|---|---|
| brand | mascha und der bär, masha bear | 3 | Protect — always in Title |
| cooking | kochen, backen, koch spiele, backen spiele | 15-50 | Grow — move to Subtitle |
| kids | kinder spiele, kinderspiele, mädchen spiele | 5-12 | Maintain — high volume |
| pizza | pizza, pizza spiele, pizzaiolo | 100+ | Experiment — test in Keywords |

Слой 5: ASO_CORE + ASO_LOG → KNOWLEDGE BASE (01-08)

Двусторонняя связь:

В глоссарных терминах (01 - Core ASO, 02 - Keywords & Metadata, etc.) добавляется секция ## Real Examples:

## Real Examples

### [[Masha Pizzeria]] — DE market
- **Keyword Field strategy**: 16 keywords, comma-separated, no spaces after commas
  → See [[de/aso_core|DE Semantic Core]] for full keyword history
- **Title optimization**: Brand keyword "Mascha und der Bär" in title since [[25_2024-01_app_store|iteration 25]]
  → Jumped from rank 8 to rank 3 for "Mascha und der Bär"
- **Subtitle A/B test**: Changed from generic to keyword-rich in [[10_2021-11_app_store|iteration 10]]

В APP_CARD.md добавляется связь с glossary:

## ASO Strategy Links

| Concept | Applied | Result | See Term |
|---|---|---|---|
| [[Keyword Relevance]] | Title contains brand + category keywords | Rank 3 for brand | [[Keyword Relevance#Real Examples]] |
| [[Download Velocity]] | Seasonal push in Dec-Jan | +40% installs | [[Download Velocity#Real Examples]] |

---

Эволюционный цикл

Что происходит при добавлении новой итерации (#37):

1. Лена кладёт Excel в ASo_from_lena/37_.../ 
   ↓
2. convert_all_to_md.py → raw_data/37_.../ (новые MD файлы)
   ↓
3. extract_XX_history.py → extraction/XX/app_store/37_YYYY-MM.md
                           extraction/XX/google_play/37_YYYY-MM.md
   ↓ AUTO-DELTA
4. Скрипт сравнивает итерацию 37 с 36:
   - Что изменилось в Title/Subtitle/Keywords?
   - Какие ключевые слова выросли/упали в ранге?
   - Новые ключевые слова в Traffic?
   → Записывает ## Delta секцию в extraction файл
   ↓
5. Обновляет de/DE/ios.md:
   - Metadata → текущие значения из итерации 37
   - Keywords Tracking → новые ранги
   - Change History → новая строка
   ↓
6. Обновляет de/aso_core.md:
   - Core Keywords → обновлённые ранги и статусы
   - Keyword Clusters → пересчёт средних рангов
   ↓
7. Обновляет de/DE/aso_log.md:
   - Новая строка с типом изменения, гипотезой, результатом
   ↓
8. Если изменение значимое (новый кейс для glossary):
   - Добавляет пример в соответствующий термин Knowledge Base

---

Файловая структура v5

obsidian/
├── _templates/
│   ├── Term Template.md          # глоссарий (есть)
│   ├── Store Data Template.md    # 🆕 шаблон для ios.md/gp.md
│   ├── Extraction Template.md    # 🆕 шаблон для extraction файлов
│   ├── ASO Core Template.md      # 🆕 шаблон для aso_core.md
│   └── ASO Log Template.md       # 🆕 шаблон для aso_log.md
│
├── 00 - MOC/
│   ├── ASO Universe.md           # мастер-навигация (есть)
│   ├── Core ASO Concepts MOC.md  # (есть)
│   ├── Keywords & Metadata MOC.md # (есть)
│   ├── Visual Assets & Creative MOC.md # (есть)
│   ├── Ratings & Reviews MOC.md  # (есть)
│   ├── Analytics & Metrics MOC.md # 🆕 нужно создать
│   ├── Store Infrastructure MOC.md # 🆕 нужно создать
│   ├── Growth & UA MOC.md        # 🆕 нужно создать
│   ├── Localization & Advanced MOC.md # 🆕 нужно создать
│   └── Apps MOC.md               # 🆕 навигация по приложениям
│
├── 01 - Core ASO/                # 31 терминов (есть)
├── 02 - Keywords & Metadata/     # 25 терминов (есть)
├── 03 - Visual Assets & Creative/ # 12 терминов (есть)
├── 04 - Ratings & Reviews/       # 10 терминов (есть)
├── 05 - Analytics & Metrics/     # 12 терминов (есть)
├── 06 - Store Infrastructure/    # 13 терминов (есть)
├── 07 - Growth & UA/             # 🆕 0 терминов → нужно ~12
├── 08 - Localization & Advanced/ # 🆕 0 терминов → нужно ~10
│
└── 09 - Apps/
    └── Masha Pizzeria/
        ├── APP_CARD.md               # карточка приложения (есть)
        ├── competitors.md            # конкуренты (есть)
        │
        ├── ASo_from_lena/            # SOURCE: оригиналы (36 папок)
        │   └── [не трогаем]
        │
        ├── raw_data/                 # ARCHIVE: 1:1 конверсия (572 MD)
        │   ├── _index.md
        │   └── 01..36_folders/
        │
        ├── extraction/               # HISTORY: структурированные снимки
        │   ├── _index.md             # мастер-индекс всех языков
        │   ├── de/                   # ✅ 56 файлов готово
        │   │   ├── _index.md
        │   │   ├── app_store/01..28
        │   │   └── google_play/01..28
        │   ├── en/                   # 🆕 нужно создать
        │   ├── ru/                   # 🆕 нужно создать
        │   ├── es/                   # 🆕
        │   ├── fr/                   # 🆕
        │   ├── it/                   # 🆕
        │   ├── pt-br/               # 🆕
        │   └── tr/                   # 🆕
        │
        ├── de/                       # CURRENT STATE: v4 структура
        │   ├── _overview.md          # обзор языка (есть)
        │   ├── aso_core.md           # 🔧 → заполнить из extraction
        │   └── DE/                   # страна
        │       ├── ios.md            # 🔧 → заполнить из extraction
        │       ├── gp.md            # 🔧 → заполнить из extraction
        │       ├── amazon.md        # placeholder
        │       ├── aso_log.md       # 🔧 → заполнить из extraction
        │       ├── ua.md            # placeholder
        │       ├── ad_revenue.md    # placeholder
        │       ├── revenue.md       # placeholder
        │       └── reviews.md       # placeholder
        │
        ├── en/ ... ru/ ... es/ ...  # другие языки (placeholder)
        │
        └── _dashboards/             # 🆕 Dataview дашборды
            ├── keyword_evolution.md  # график эволюции ключей
            ├── iteration_timeline.md # таймлайн всех итераций
            ├── language_coverage.md  # матрица покрытия языков
            └── metadata_changes.md   # лог всех изменений

---

Dataview Queries для навигации

В _dashboards/iteration_timeline.md:

TABLE iteration, date, iteration_type, store
FROM "09 - Apps/Masha Pizzeria/extraction"
WHERE type = "aso_extraction" AND language = "de"
SORT iteration ASC

В de/DE/ios.md — история метаданных:

TABLE date, title, subtitle, keywords_count
FROM "09 - Apps/Masha Pizzeria/extraction/de/app_store"
WHERE type = "aso_extraction"
SORT iteration ASC

В de/aso_core.md — все ключевые слова через все итерации:

TABLE iteration, date, keyword_count
FROM "09 - Apps/Masha Pizzeria/extraction/de"
WHERE type = "aso_extraction"
SORT iteration ASC

В Knowledge Base термине:

LIST
FROM "09 - Apps" AND [[Keyword Relevance]]
WHERE type = "aso_extraction" OR type = "store_data"

---

Приоритеты реализации

Phase 1: Мост extraction → v4 (DE) 🎯 сейчас

  1. Скрипт populate_v4_from_extraction.py — заполняет de/DE/ios.md, gp.md, aso_log.md из 28 extraction файлов
  2. Скрипт populate_aso_core.py — агрегирует все ключевые слова в de/aso_core.md
  3. Добавить prev/next и ## Delta в extraction файлы

Phase 2: Другие языки

  1. Расширить extract_XX_history.py на EN, RU, ES, FR, IT, PT-BR, TR
  2. Заполнить v4 store_data для каждого языка

Phase 3: Knowledge Base ↔ App Data

  1. Добавить ## Real Examples в глоссарные термины
  2. Создать недостающие термины для 07 - Growth & UA и 08 - Localization
  3. Создать MOC для секций 05-08

Phase 4: Dashboards & Automation

  1. Создать Dataview дашборды
  2. Скрипт автоматизации нового цикла (одна команда для всего pipeline)

---

Ключевые YAML поля для Dataview

Все файлы в системе используют единую схему YAML для связывания:

ПолеГде используетсяПример
`type`вездеapp_card, store_data, aso_extraction, aso_core, aso_log, moc, term
`app`09-Appsmasha-pizzeria
`store`store_data, extractionios, gp, amazon
`language`store_data, extraction, aso_corede, en, ru
`country`store_data, extractionDE, US, RU
`iteration`extraction1-36
`date`extraction"2020-08"
`iteration_type`extractioniteration, rank, amazon, custom_store
`category`glossary (01-08)core-aso, keywords, visual-assets
`impact_level`glossarycritical, high, medium, low

| platform | glossary | ios, android, universal |

ARCHITECTURE_v5 — ASO Wiki | ASOtext