---
name: specs_extractor
description: Извлечение характеристик товара из текста карточки или structured specs WB. Возвращает словарь key→value без нормализации.
---

# Skill: specs_extractor

## Когда использовать

Когда есть карточка товара и нужно вытащить из неё характеристики — мощность, время работы, насадки, водозащита и т.п. Этот скилл **только извлекает**, не нормализует. Нормализация синонимов — задача `specs_normalizer`.

Триггеры:
- Specs Miner запускается на топ-N карточек
- ad-hoc анализ одной карточки

## Входы

| Поле | Тип | Описание |
|---|---|---|
| `product` | `Product` | Карточка с уже заполненным `specs` (mock) или с `description` (live) |

## Выходы

`dict[str, Any]` — ключи как в исходной карточке (без нормализации).

## Реализация

В mock-режиме характеристики уже структурированы — просто возвращаем `product.specs`. В live-режиме `description` пустой по умолчанию (см. wb_parser); в Phase 5 этот скилл расширится regex-/LLM-извлечением из карточки.

Сейчас тривиальная реализация — см. `src/tools/specs_normalizer.py::normalize_specs` для следующего шага.

## Edge cases

- **`specs` пуст** (что бывает у live-карточек) → вернуть пустой dict, не падать
- **значение строкой, а ожидается число** → не приводим тип здесь, оставляем как есть
- **дублирующиеся ключи** → берём первое значение, остальные игнорируем (детерминированно)

## Связанные скиллы

- `specs_normalizer` — нормализует ключи через taxonomy
