# Agent skill

> Mi a Haszno agent skill, hogyan telepítsd, és hogyan használd munkafolyamat-receptekkel és biztonsági szabályokkal.

## Áttekintés

A Haszno agent skill egy olyan irányítófájl-készlet, amely megtanítja az AI-agentnek (Claude Code, Claude Desktop), hogyan használja biztonságosan a Haszno [MCP-szervert](mcp.md) és a [CLI-t](cli.md). Nem bináris — nincs saját szervere vagy démonja. A Claude Code akkor tölti be az agent kontextusába, ha a beszélgetés illik a skill leírásához.

A skill tartalmazza:

- melyik eszközfelületet érdemes használni (MCP vagy CLI) az adott kontextusban,
- az írási műveletek teljes biztonsági szabályait,
- lépésről lépésre bemutatott munkafolyamat-recepteket a gyakori dropshipping-feladatokhoz,
- terület–végpont és terület–parancs megfeleltetési táblázatokat.

---

## A skill tartalma

Telepítés után a skill a `~/.claude/skills/haszno/` mappában található.

| Fájl | Célja |
|---|---|
| `SKILL.md` | Fő definíció: frontmatter (leírás és triggerkulcsszavak), gyors kezdés, MCP vagy CLI döntési táblázat, biztonsági szabályok, munkafolyamat-receptek, terület → végpont megfeleltetés. |
| `AGENTS.md` | Fej nélküli agent útmutatója: környezeti beállítás, CLI-használati minták, TypeScript-integráció, Codex/Cursor `AGENTS.md`-részlet, MCP-szerver-konfig. |
| `references/tools.md` | MCP-eszközkatalógus paraméterschémákkal és visszatérési típusokkal. |
| `references/commands.md` | CLI-parancsreferencia flagekkel, példákkal és jq-egysorosokkal. |
| `references/recipes.md` | 9 lépésről lépésre bemutatott munkafolyamat-recept (1–8-ig számozva, két recept is 6-os számot visel) és egy jq-puska. |

> [!WARNING]
> A skill fájljaiban (0.1.0-s verzió) néhány részlet nem egyezik a CLI és az MCP-szerver forráskódjával: Bearer tokenként írják le az API-kulcsot (mindkét eszköz `x-api-key` fejlécben küldi), és olyan CLI-parancsokat használnak, amelyek a CLI 0.1.0-ban nem léteznek, például `haszno catalog …` és `haszno products list-cmd`. A [CLI-referencia](cli.md) és az ezen az oldalon lévő receptek a forráskódot követik.

---

## Telepítés

### Ajánlott: egylépéses telepítő

A skill repóban lévő telepítő egyszerre telepíti a skillt, az MCP-szervert és a CLI-t:

```bash
curl -fsSL https://raw.githubusercontent.com/haszno-labs/haszno-skill/main/install.sh | bash
```

Mit csinál a szkript:

1. Klónozza a `haszno-cli`-t, a `haszno-mcp`-t és a `haszno-skill`-t a `~/.haszno/` mappába (`gh repo clone`-nal, ha a GitHub CLI be van jelentkezve, egyébként `git clone`-nal HTTPS-en).
2. Lefordítja a CLI-t és az MCP-szervert (`npm install && npm run build`).
3. `npm link`-kel globálisan elérhetővé teszi a `haszno` binárist (ha nem sikerül, `~/.local/bin/haszno` szimlinket hoz létre).
4. Regisztrálja az MCP-szervert a Claude Code-ban: `claude mcp add haszno --scope user -- node ~/.haszno/haszno-mcp/dist/index.js`.
5. Átmásolja a `skills/haszno/` fájlokat a `~/.claude/skills/haszno/` mappába.

A 4. lépést kihagyja, ha a `claude` parancs nem található (ilyenkor kiírja a kézzel futtatandó parancsot), vagy ha a `haszno` már regisztrálva van. Az 5. lépés mindig lefut.

### Manuálisan: csak a skill

Ha az MCP-szerver vagy a CLI már telepítve van, és csak a skill fájlokra van szükséged:

```bash
git clone https://github.com/haszno-labs/haszno-skill /tmp/haszno-skill-install
cp -a /tmp/haszno-skill-install/skills/haszno ~/.claude/skills/haszno
```

Ezután a Claude Code be tudja tölteni a skillt a munkameneteiben (lásd [Triggerkulcsszavak](#triggers)).

### Helyi fejlesztői felülírás

Ha a repók helyben vannak klónozva:

```bash
HASZNO_SRC_DIR=~/Documents/haszno-labs bash ~/.haszno/haszno-skill/install.sh
```

---

## Fájlok helye

| Elérési út | Tartalom |
|---|---|
| `~/.claude/skills/haszno/SKILL.md` | Fő skill-definíció. |
| `~/.claude/skills/haszno/AGENTS.md` | Fej nélküli agent útmutatója. |
| `~/.claude/skills/haszno/references/tools.md` | MCP-eszközkatalógus. |
| `~/.claude/skills/haszno/references/commands.md` | CLI-parancsreferencia. |
| `~/.claude/skills/haszno/references/recipes.md` | Munkafolyamat-receptek. |
| `~/.haszno/haszno-mcp/` | MCP-szerver forrás és build. |
| `~/.haszno/haszno-cli/` | CLI forrás és build. |
| `~/.config/haszno/config.json` | API-hitelesítési adatok a CLI és az MCP-szerver számára; a `haszno login` írja (nem a telepítő). A környezeti változók elsőbbséget élveznek vele szemben. |

---

## Triggerkulcsszavak

A Claude Code a skill leírása alapján dönti el, mikor tölt be egy skillt. A Haszno skill leírása a Hasznót, a dropshipping-árazást, az árjavaslatokat, az automatizálási szabályokat, a katalógusokat, a webshop-bekötést, az importlistát, a partnermeghívókat és a piaci blogot fedi le, a frontmatterje pedig ezeket a triggerkulcsszavakat is felsorolja:

`haszno`, `haszno.com`, `dropshipping`, `price proposal`, `árajánlat`, `automatika`, `partnerkatekógus`, `veszteséges termékek`, `margin check`, `árukereső feed`, `termékötlet`, `dropshipping check`, `pricing rules`, `árazás`, `bolt-bekötés`, `import lista`, `termékek kiküldése`, `meghívó`, `partner kapcsolat`, `heti összefoglaló`, `havi összefoglaló`.

Explicit módon is meghívhatod:

```bash
/haszno
```

---

## Hogyan használja az agent a skillt

Ha a skill betöltődik, az agent az alábbi sorrendet követi minden Haszno-feladatnál:

1. **Nézd meg az MCP vagy CLI táblázatot** a `SKILL.md`-ben, hogy eldöntsd, melyik eszközfelületet használd.
2. **Keresd meg a területet** a terület → végpont megfeleltetésben, hogy megtaláld a megfelelő eszközt vagy parancsot.
3. **A paraméterek részleteiért** nyisd meg a `references/tools.md` (MCP) vagy `references/commands.md` (CLI) fájlt.
4. **Többlépéses munkafolyamatokhoz** nyisd meg a `references/recipes.md` fájlt.
5. **Alkalmazd a biztonsági szabályokat** minden írási hívás előtt.

### MCP vagy CLI döntési táblázat

| Helyzet | Használj |
|---|---|
| Interaktív Claude Code- vagy Claude Desktop-munkamenet MCP-csatlakozással | **MCP** (`haszno_*` eszközök) |
| Shellszkript, cron-feladat, Codex agent, Cursor terminál | **CLI** (`haszno <terület> <parancs>`) |
| Programatikus TypeScript / Node integráció | Közvetlen HTTP-kliens |
| Tömeges írás (sok árjavaslat jóváhagyása egyszerre) | Bármelyik — az MCP-eszközhöz `confirm: true`, a CLI-parancshoz `--yes` kell |

---

## Biztonsági szabályok

A skill hét megalkuvást nem tűrő szabályt érvényesít. Az agentnek minden Haszno-feladatnál alkalmaznia kell ezeket.

**1. szabály — Alapból csak olvasás.** Az olvasási eszközöket és lista-parancsokat szabadon használd, felhasználói megerősítés kérése nélkül.

**2. szabály — Minden íráshoz explicit felhasználói megerősítés szükséges.** Az alábbi műveletek írások. Előbb kérdezd meg a felhasználót, majd add meg a `confirm: true`-t az MCP-eszközhívásban, illetve a `--yes`-t a CLI-parancsnál: árjavaslatok jóváhagyása, árjavaslatok elutasítása, batch visszagörgetése, szabály futtatása, termék listára tétele vagy levétele, árak alkalmazása, feed importálása, beállítások frissítése, rendelés szállítottként jelölése, importlista kiküldése, partnermeghívó létrehozása, partnermeghívó elfogadása.

**3. szabály — Ellenőrizd az automatizálás kill switch-ét minden tömeges írás előtt.** Hívd meg a `haszno_automation_get` (MCP) vagy `haszno rules automation --json` (CLI) parancsot. Ha `paused: true`, ne hagyj jóvá árjavaslatokat és ne futtass szabályokat — jelezd az állapotot a felhasználónak, és várd az utasítását.

**4. szabály — Görgess vissza, mielőtt eszkalálsz.** Ha egy jóváhagyott árjavaslat-batch tévesnek tűnik, hívd meg a `haszno_proposals_rollback`-et a `batchId`-val, mielőtt bármi mást teszel.

**5. szabály — Soha ne adj meg negatív árakat.** Az összes ár pozitív egész forint (bruttó HUF). Negatív ár fogalma nem létezik.

**6. szabály — A partnerkatalógus összesített adatokat tartalmaz.** A `haszno_catalog_supplier_view` (MCP) csak összesített viszonteladói statisztikát ad vissza. Az agent nem fedheti fel ebből az adatból az egyes boltok árrését.

**7. szabály — A demókörnyezet alapvetően csak olvasásos.** Csak olvasásos GET kérések a `https://haszno.com` ellen rendben vannak smoke tesztelésre. Soha ne küldj POST írásokat a demóra, hacsak a felhasználó kifejezetten meg nem erősíti a szándékát.

---

## Receptek

Ezek a receptek a `references/recipes.md`-t követik, a parancsokat és eszközhívásokat a CLI 0.1.0-ban és az MCP-szerverben ténylegesen létezőkre javítva.

### 1. recept — Napi dropshipping állapotellenőrzés

**Cél:** a legfontosabb problémák felderítése egyetlen körben, változtatás nélkül.

**Felhasználói prompt:** „Adj egy gyors áttekintést a Haszno-fiókomról."

**Lépések:**

1. Hívd meg a `haszno_account_get_stats`-t — jegyezd meg a `products`, `losing`, `overMarket`, `toFix`, `orders` értékeket.

   ```bash
   # CLI equivalent:
   haszno account stats --json
   ```

2. Hívd meg a `haszno_automation_get` eszközt — ellenőrizd, hogy az automatizálás nincs-e szüneteltetve.

   ```bash
   haszno rules automation --json
   ```

3. Hívd meg a `haszno_proposals_list` eszközt `status: "pending"` paraméterrel — számold meg a függőben lévő árjavaslatokat.

   ```bash
   haszno proposals list --status pending --json | jq 'length'
   ```

4. Hívd meg a `haszno_orders_list` eszközt — jelöld meg a `status: "error"` értékű rendeléseket.

   ```bash
   haszno orders list --status error --json
   ```

5. Hívd meg a `haszno_account_get_impact` eszközt `days: 7` paraméterrel — mutasd a hét Haszon-mérőjét.

   ```bash
   haszno account impact --days 7 --json
   ```

Adj egy rövid összefoglalót: általános állapot, függőben lévő árjavaslatok száma, esetleges elakadt rendelések, 7 napos Haszon-mérő. Kérdezd meg a felhasználót, melyik témát nézzétek meg részletesebben. Ne írj semmit.

---

### 2. recept — Veszteséges termékek megkeresése és javítása

**Cél:** a minimális haszon alatt lévő termékek azonosítása és az ajánlott árak alkalmazása felhasználói megerősítés után.

**Felhasználói prompt:** „Melyik termékek veszteségesek? Javítsd ki őket."

**Lépések:**

1. Hívd meg a `haszno_account_get_settings`-t — olvasd le a `minMarginPct` értéket.

   ```bash
   haszno account settings --json
   ```

2. Használd a `haszno_account_get_stats`-t — a `losing` mező a darabszámot adja, részletek nélkül.

3. A teljes listához használd a CLI-t (az MCP-szervernek még nincsenek termékeszközei — **Tervezett**):

   ```bash
   haszno products list --all --json \
     | jq '[.[] | select(.current.marginPct < 10) | {id, name, sku, margin: .current.marginPct, recommended: .recommended.priceGross}]'
   ```

4. Mutasd be a listát a felhasználónak: `id`, `name`, `sku`, `current.marginPct`, `recommended.priceGross`. Soha ne javítsd automatikusan.

5. Várd meg, hogy a felhasználó explicit módon megerősítse, melyik termékeket javítsd.

6. Alkalmazd az ajánlott árakat (csak CLI-vel, amíg az MCP termékeszközei nem érhetők el):

   ```bash
   haszno products apply-prices --ids 12,15,22 --yes
   ```

---

### 3. recept — Árjavaslatok áttekintése és kötegelt jóváhagyása

**Cél:** a függőben lévő árjavaslatok áttekintése, megerősítés a felhasználóval, majd jóváhagyás vagy elutasítás.

**Felhasználói prompt:** „Hagyd jóvá a függőben lévő árjavaslatokat."

**Lépések:**

1. Ellenőrizd a kill switch-et — `haszno_automation_get`. Állj meg, ha `paused: true`.

   ```bash
   haszno rules automation --json
   ```

2. Listázd az árjavaslatokat:

   ```bash
   # MCP:
   haszno_proposals_list(status="pending")
   # CLI:
   haszno proposals list --status pending --json
   ```

3. Mutasd a felhasználónak az összefoglalót: darabszám, átlagos árváltozás, legnagyobb emelés és legnagyobb csökkentés, valamint minden olyan árjavaslat, amely a `minMarginPct` alá vinné az árrést.

4. Várd meg a felhasználó explicit megerősítését, mielőtt folytatod.

5. Hagyd jóvá:

   ```bash
   # MCP (save the returned batchId):
   haszno_proposals_approve(ids=[...], confirm=true)
   # CLI:
   haszno proposals approve --ids 42,43,44 --yes
   ```

6. Mentsd el a `batchId`-t a jóváhagyás válaszából. Ha a felhasználó hibát fedez fel, görgess vissza:

   ```bash
   # MCP:
   haszno_proposals_rollback(batchId="<batchId>", confirm=true)
   # CLI:
   haszno proposals rollback --batch <batchId> --yes
   ```

---

### 4. recept — Új termékek felfedezése egy beszállítótól

**Cél:** egy beszállító katalógusának böngészése, listázásra érdemes termékek keresése, majd importlistára vétele felhasználói megerősítés után.

**Felhasználói prompt:** „Keress jó listázandó termékeket a 3-as beszállítótól."

**Lépések:**

1. Kérd le a beszállító katalógusát:

   ```bash
   # MCP:
   haszno_catalog_supplier_products(supplier_id=3)
   # CLI:
   haszno catalogue search --partner 3 --in-stock --sort margin_desc --json
   ```

2. Szűrj: raktáron van, az árrés legalább `minMarginPct` (MCP: `potentialMargin.marginPct`; CLI: `marginPct`). A CLI kimenetében hagyd ki azokat a tételeket, amelyeknél az `inShop` vagy az `inImportList` értéke `true`.

   ```bash
   haszno catalogue search --partner 3 --in-stock --min-margin 10 --json \
     | jq '[.items[] | select(.inShop == false and .inImportList == false) | {id, name, marginPct, stock}]'
   ```

3. Mutasd be a jelöltlistát a felhasználónak. Automatikusan semmit ne adj hozzá.

4. Felhasználói megerősítés után vedd fel a kiválasztott katalógustermékeket az importlistára:

   ```bash
   # MCP:
   haszno_import_list_add(networkProductIds=[101, 102, 103])
   # CLI:
   haszno import add 101 102 103
   ```

5. Igény szerint küldd ki őket egy bekötött webshopba. Az importlistatétel-azonosítókat a `haszno import list --status varakozik --json`, a kapcsolatazonosítót a `haszno connections list --status kapcsolva --json` adja:

   ```bash
   # MCP:
   haszno_import_list_push(ids=[5, 6, 7], targetConnectionId=1, confirm=true)
   # CLI:
   haszno import push --ids 5,6,7 --target 1 --yes
   ```

---

### 5. recept — Árrésvédő automatizálási szabály létrehozása

**Cél:** olyan szabály beállítása, amely árjavaslatot készít, ha egy termék árrése 8% alá esik.

**Felhasználói prompt:** „Hozz létre egy szabályt, amely megjelöli a termékeket, ha az árrésük 8% alá esik."

**Lépések:**

1. Böngészd a sablonokat:

   ```bash
   # MCP:
   haszno_rules_list_templates()
   # CLI:
   haszno rules templates --json
   ```

2. Hozd létre a szabályt. Egyéni feltételhez az MCP-eszköz kell; a CLI csak a beépített sablonokból (`keszlet_or`, `arjavaslat`, `felar_savok`, `veszteseg_riasztas`) tud szabályt létrehozni, és egyik sem 8%-os küszöböt használ:

   ```bash
   # MCP:
   haszno_rules_create(
     name="Margin guard",
     trigger="market_price",
     conditions=[{ "field": "marginPct", "op": "lt", "value": 8 }],
     actions=[{ "type": "propose_price" }],
     confirm=true
   )
   # CLI (template only, e.g. the proposal template):
   haszno rules create --template arjavaslat --name "Margin guard" --yes
   ```

3. Ellenőrizd, hogy a szabály létrejött:

   ```bash
   haszno rules list --json
   ```

4. Igény szerint futtasd le egyszer. Ez valódi futtatás, nem próbafuttatás: árjavaslatokat hozhat létre, ezért előbb kérdezd meg a felhasználót, utána nézd meg a `haszno proposals list --status pending --json` kimenetét.

   ```bash
   haszno rules run <id> --yes
   ```

---

### 6. recept — Heti termékötlet-áttekintés

**Cél:** trendadatok alapján olyan termékek keresése, amelyeket érdemes listára tenni a boltodban.

**Felhasználói prompt:** „Milyen új termékeket listázzak ezen a héten?"

**Lépések:**

1. Kérd le a termékötleteket (ezek a saját termékeidből származnak):

   ```bash
   # MCP:
   haszno_ideas_list()
   # CLI:
   haszno ideas list --limit 10 --json
   ```

2. Ha sok ötletnek nincs trendkulcsszava, töltsd ki őket (AI-köteg, előbb kérdezd meg a felhasználót):

   ```bash
   # MCP:
   haszno_ideas_fill_keywords(confirm=true)
   # CLI:
   haszno ideas fill-keywords --yes
   ```

3. A legjobb jelölteknél a piaci telítettséget a `haszno_catalog_supplier_view(supplier_id=<id>)` MCP-eszközzel nézd meg (CLI-megfelelője nincs).

4. Mutasd be a rangsorolt jelöltlistát a felhasználónak (trendpontszám, árrés, telítettség). Automatikusan semmit ne tegyél listára.

5. Felhasználói megerősítés után tedd listára a kiválasztott termékeket (csak CLI-vel, amíg az MCP termékeszközei nem érhetők el):

   ```bash
   haszno products listing <id> --on --yes
   ```

---

## Eltávolítás

```bash
bash ~/.haszno/haszno-skill/install.sh --uninstall
```

Ez eltávolítja:

- `~/.haszno/` (MCP-szerver, CLI és skill forrás).
- `~/.local/bin/haszno` szimlinket.
- `~/.claude/skills/haszno/`.
- MCP-regisztrációt: `claude mcp remove haszno --scope user`.
- npm globális linket (legjobb igyekezettel).

**Nem** távolítja el a `~/.config/haszno/config.json` fájlt. Töröld kézzel, ha el szeretnéd távolítani a tárolt hitelesítési adatokat.

---

## Hibaelhárítás

### A skill nem töltődik be automatikusan

Ha a skill nem tölt be:

- Ellenőrizd, hogy a `~/.claude/skills/haszno/SKILL.md` létezik-e.
- Említsd meg az üzenetedben a Hasznót vagy valamelyik [triggerkulcsszót](#triggers).
- Futtasd a `/haszno` parancsot az explicit meghíváshoz.

### Az MCP-szerver nem található telepítés után

```bash
# Verify the registration:
claude mcp list

# If haszno is missing, re-register:
claude mcp add haszno --scope user -- node ~/.haszno/haszno-mcp/dist/index.js
```

### A `haszno` parancs nem található

```bash
# Check the symlink:
ls -la ~/.local/bin/haszno

# If missing, re-link:
cd ~/.haszno/haszno-cli && npm link
# or symlink ~/.haszno/haszno-cli/dist/index.js into a directory on your PATH
```

### A `haszno_products_list` eszköz nem található

Ez az eszköz **Tervezett** és még nincs megvalósítva az MCP-szerveren. Helyette használd a CLI-t:

```bash
haszno products list --all --json
```

Lásd az MCP-referencia [Tervezett eszközök](mcp.md#planned) szekciójában a még nem elérhető eszközök teljes listáját.

### Az írási műveletek 401-et adnak vissza

A `https://haszno.com` demó hitelesítési adatok nélkül nem fogad el írási műveleteket. Lásd a [Hitelesítés](authentication.md) oldalt, hogy megtudd, milyen hozzáférések érhetők el ma. Ha van hitelesítési adatod, és csak a CLI kap `401`-et, exportáld a `HASZNO_API_KEY`-t (vagy a `HASZNO_BASIC`-et): a CLI nem olvassa a `~/.config/haszno/config.json` fájlt.

---

## Kapcsolódó témák

- [MCP-szerver-referencia](mcp.md) — teljes eszközkatalógus bemeneti sémákkal.
- [CLI-referencia](cli.md) — összes CLI-parancs flagekkel és példákkal.
- [Hitelesítés](authentication.md) — API-kulcs és demó-hozzáférési adatok.
- [Agentek áttekintése](agents.md) — mikor használj MCP-t, CLI-t vagy skillt.
