# 1C Metadata Snapshot

Цель: сохранять структуру 1С как локальный snapshot и использовать ее в RAG без выдумывания объектов конфигурации.

## Files

- Schema: `plugins/1c/metadata/schema.json`
- Example: `plugins/1c/metadata/examples/metadata.example.json`
- Local snapshots: `plugins/1c/metadata/snapshots`
- Converter: `scripts/convert_1c_metadata_to_rag.py`

## Snapshot Rule

Рабочие snapshot-файлы считаются локальными артефактами. Они не должны содержать:

- пароли;
- токены;
- строки подключения;
- персональные данные;
- клиентские секреты;
- выгрузки данных.

Snapshot описывает только структуру метаданных.

## Convert Example To RAG Source

```powershell
python scripts/validate_1c_metadata_snapshot.py plugins/1c/metadata/examples/metadata.example.json
```

```powershell
python scripts/convert_1c_metadata_to_rag.py --input plugins/1c/metadata/examples/metadata.example.json --output plugins/1c/rag/sources/metadata.example.generated.md
```

После этого можно перестроить корпус и индекс:

```powershell
python scripts/prepare_1c_rag_corpus.py
python scripts/build_1c_rag_index.py
```

Команды нужно выполнять последовательно: сначала подготовить JSONL-корпус, затем строить индекс.

## Ask

```powershell
python scripts/ask_1c_rag.py "Какие реквизиты есть у справочника Номенклатура?" --print-prompt
```

В prompt должны попасть реквизиты из snapshot и ссылка на source `metadata.example.generated.md`.
