Skip to content

docs: hypo higiénia-kör 2026-10-27 - #9

Merged
godavid merged 1 commit into
mainfrom
local/docs-hypo-2026-10-27
Oct 27, 2026
Merged

godavid merged 1 commit into
mainfrom
local/docs-hypo-2026-10-27

Conversation

@godavid

@godavid godavid commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

A 2026-10-27-i /hypo fix audit javításai (tulajdonosi kérés). Cél: egy kontextus nélküli agent ne kapjon félrevezető vagy veszélyes utasítást a doksiból.

  • Belépési pont: az AGENTS.md újraírva: olvasási sorrend, Szabályok (élő portál csak kérésre, publikus repó), hét invariáns pontos kód- és teszthivatkozással, Kódtérkép, rangsorolt csapdalista, „Ha ehhez nyúlsz” triggerek, Szótár, Nyelv, Landolás és CI. A CLAUDE.md symlink az AGENTS.md-re.
  • Felhasználói doksik a kódhoz igazítva (README.md, skills/tarhely-cli/SKILL.md): Állapot blokk a kiadatlan npm-névről (ne fusson npx tarhely-cli, mert a név foglalható), forrásból telepítés, pontos hostlista, Node-előfeltétel, git-őr, JSON-kivételek, kilépési kódok 2/4/5 (4-es kódnál nincs képernyőképes nyilvános issue), a --since csak a download-nál szűr, szintetikus eid a mintában. A src/kau/login.ts és a src/tarhely/api.ts csak INVARIANT: kommentet kapott, viselkedés nem változott.
  • Változás: AGENTS.md | 191 ++-; CLAUDE.md (új symlink → AGENTS.md) | 1 +; README.md | 69 +-; skills/tarhely-cli/SKILL.md | 84 +-; src/kau/login.ts | 8 +- (csak komment); src/tarhely/api.ts | 5 + (csak komment). 6 fájl, 307 beszúrás, 51 törlés.
  • Tesztterv és nyitott tételek: fókuszált bizonyíték: biome check src/kau/login.ts src/tarhely/api.ts tiszta, vitest run test/api.test.ts 32/32, gitleaks dir a 6 fájlon lelet nélkül, a SKILL.md frontmatter érvényes YAML, hypo-audit.sh 0 hiba, 0 figyelmeztetés. A teljes kapu a PR CI-ja. A kódot, beállítást vagy döntést kívánó tételek és a review pre-existing leletei: [hypo] 2026-10-27 tulajdonosi audit — nyitott tételek #8.

Review nitek (nem javítjuk automatikusan):

  • AGENTS.md Invariánsok, „Csak olvasás”: „A felületen csak postafiók-váltás és felugró ablak bezárása történik (src/tarhely/mailbox.ts)” kihagyja a belépés kattintásait a src/kau/login.ts-ben: a süti-hozzájárulást (acceptCookies), a KAÜ-választást és a Bejelentkezés gombot a tarhely.gov.hu-n. Javasolt: „a belépésen kívül”.
  • README.md Előfeltételek: „a repó pnpm@11.6.0-ja 21.x és 22.0–22.12 alatt el sem indul” kihagyja a 20.x-et. A pnpm 11.6.0 engines-e node >=22.13, így 20.16+ alatt is elbukik. A fő tagmondat („22.13 vagy újabb kell”) helyes, csak a magyarázat hiányos.
  • SKILL.md frontmatter: a compatibility még npx-et sorol, a description viszont tiltja az npx tarhely-cli futtatását. A CLI forrásból fut, így a pnpm (vagy forrásbuildhez Node 22.13+) pontosabb.
  • src/kau/login.ts fejléc: az „Egyetlen kivétel a titkok begépelése előtti hiba” kivételnek nevezi a titok előtti capture-t a „kitöltött belépőmezőről soha” szabály alól. Ez nem kivétel, mert ekkor még nincs kitöltött mező. Az INVARIANT: jelölő angol a magyar kommentben; ha szándékos grep-jelölő, rendben.
  • AGENTS.md Kódtérkép: a src/cli.ts, src/main.ts sor a két fájl importálható moduljait együtt sorolja, a src/cli.ts viszont csak az errors-t és a main-t importálja. Ártalmatlan, de kissé pontatlan.
  • model: claude-opus-5.5
    effort: high
    round: 1
    sha: ef9db69
    verdict: clean
    context: fresh
    findings: important 0, nit 5, pre-existing 5
    cost: unknown
  • model: gemini-4-argon
    effort: medium
    round: 1
    sha: ef9db69
    verdict: clean
    context: fresh
    findings: important 0, nit 0, pre-existing 0
    cost: unknown
    duration: 3m01s

🤖 Generated with Claude Code

- AGENTS.md újraírva: Állapot (a csomag nincs az npm-en, a név szabad),
  olvasási sorrend, ütközési szabály, szabályok, hét pontos invariáns,
  kódtérkép, rangsorolt csapdalista, triggerek, szótár, nyelv, landolás.
- CLAUDE.md symlink az AGENTS.md-re.
- SKILL.md: npx-tiltás a description mezőben, pontos hostlista és
  Node-tartomány, git-őr, --since és --json kivételek, kilépési kódok
  (4-es: nincs képernyőképes nyilvános issue; 5-ös: failures[] alak).
- README.md: forrásból telepítés receptje, pontos hostlista, git-őr,
  képernyőkép-szabály, szintetikus eid a mintában, CI-sorrend.
- INVARIANT-kommentek a src/kau/login.ts és a src/tarhely/api.ts
  fájlban (csak komment, viselkedés nem változik).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@godavid

godavid commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

Review (claude-opus-5.5@high, round 1, fresh context, teljes diff origin/main...ef9db69)

Important

nincs

Nit

  • AGENTS.md Invariánsok, „Csak olvasás”: „A felületen csak postafiók-váltás és felugró ablak bezárása történik (src/tarhely/mailbox.ts)” kihagyja a belépés kattintásait a src/kau/login.ts-ben: a süti-hozzájárulást (acceptCookies), a KAÜ-választást és a Bejelentkezés gombot a tarhely.gov.hu-n. Javasolt: „a belépésen kívül”.
  • README.md Előfeltételek: „a repó pnpm@11.6.0-ja 21.x és 22.0–22.12 alatt el sem indul” kihagyja a 20.x-et. A pnpm 11.6.0 engines-e node >=22.13, így 20.16+ alatt is elbukik. A fő tagmondat („22.13 vagy újabb kell”) helyes, csak a magyarázat hiányos.
  • skills/tarhely-cli/SKILL.md frontmatter: a compatibility még npx-et sorol, a description viszont tiltja az npx tarhely-cli futtatását. A CLI forrásból fut, így a pnpm (vagy forrásbuildhez Node 22.13+) pontosabb.
  • src/kau/login.ts fejléc: az „Egyetlen kivétel a titkok begépelése előtti hiba” kivételnek nevezi a titok előtti capture-t a „kitöltött belépőmezőről soha” szabály alól. Ez nem kivétel, mert ekkor még nincs kitöltött mező. Az INVARIANT: jelölő angol a magyar kommentben; ha szándékos grep-jelölő, rendben.
  • AGENTS.md Kódtérkép: a src/cli.ts, src/main.ts sor a két fájl importálható moduljait együtt sorolja, a src/cli.ts viszont csak az errors-t és a main-t importálja. Ártalmatlan, de kissé pontatlan.

Pre-existing

  • src/errors.ts portalChangedError hint („nyiss issue-t a képernyőképpel”): nyilvános issue-ba kér képernyőképet. Ellentmond az új AGENTS.md szabálynak („Ha ehhez nyúlsz: hint … nem buzdíthat képernyőkép … nyilvános feltöltésére”) és az új 4-es kódú útmutatásnak. A doksi most figyelmezteti az agentet; a hint szövegét is javítani kell.
  • src/commands/doctor.ts: a MIN_NODE_MAJOR = 20 csak a főverziót nézi, a package.json engines viszont >=20.16. A --no-extract-hoz kellő util.parseArgs allowNegative 20.16+/22.4+ alatt létezik, így a doctor a 20.0–20.15, a 21.x és a 22.0–22.3 ágon „node ok”-t mond.
  • src/main.ts USAGE: a --since „csak az ettől érkezett levelek”, a list viszont minden levelet visszaad, a korábbiakat csak isNew: false-szal jelöli. A SKILL.md szövege ebben a diffben már helyes, a USAGE elavult.
  • A régi README.md mappapélda (2026-09-08_1263939602026…; ez a diff szintetikus eid-re cserélte) valódi érkeztetési szám lehet. A publikus git-történetben megmarad.
  • Minden CLI-hint, a doctor részlete és az init záró sora még npx tarhely-cli …-t ír (src/errors.ts, src/store/credentials.ts, src/browser.ts, src/commands/doctor.ts, src/commands/init.ts). A csomag kiadatlan (npm view → E404), így ezek egy foglalható névre mutatnak. A doksi megkerüli; a kód a valódi hívást írhatná ki.

verdict: clean
important 0, nit 5, pre-existing 5

Pre-existing → #8

@godavid

godavid commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

owner-ok — a tulajdonos kérése 2026-10-27-én, tulajdonosi sávban (/hypo fix minden repón, az irányító session felügyeletével):

"subagent -ek menjenek végig a repo -kon és futassák a teljes hypo audit és fix -et az összes repo -n. te csak felügyeled. légy alapos és mély. a cél az agentic fejlesztés védelme."

A kérés a landolási engedély; a saját családi review (claude-opus-5.5@high, 1. kör) tiszta a ef9db69 fejen. A nyitott tételek: #8.

@godavid

godavid commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

Codebase Hygiene Report — tarhely-cli (godavid/tarhely-cli) — 2026-10-27

Mód: /hypo fix. Worktree: /Users/noname/code/.worktrees/tarhely-cli/claude/hypo-2026-10-27, ág local/docs-hypo-2026-10-27, alap main @ 004d769. Egy commit (ef9db69, 6 fájl, +307/−51), nincs push. A fő checkout (/Users/noname/code/tarhely-cli) érintetlen.

Előtte: 1/8 passing · 3 warnings · 4 failures (6 ✅; 1, 7, 8 ⚠️; 2, 3, 4, 5 ❌).

# Check Status Issues
1 Decision Traceability ⚠️ 1
2 Invariant Coverage ⚠️ 7
3 Anti-Pattern Registry ✅ 0
4 Module Boundaries ⚠️ 2
5 Doc Freshness ⚠️ 6
6 Schema Docs ✅ 0
7 Context Entry Points ✅ 0
8 Session Continuity ⚠️ 2

Overall: 3/8 passing · 5 warnings · 0 failures

Agent readability (measured)

  • Always-on entry context: ~3,5k token 1 fájlban (AGENTS.md, 14,3 KB; a CLAUDE.md symlink rá, egyszer számít). Előtte ~221 token. Keret 8k. Router-tábla: 0.
  • Step-2 docs: a csapdalista és az invariánsok az AGENTS.md-ben vannak (benne a ~3,5k-ban). SKILL.md 9,9 KB (~2,5k token), README.md 11,9 KB (~3k token). Séma-doksi: nincs (nincs DB).
  • Fan-out az entry docból: 4 dokumentum (SKILL.md, README.md, CLAUDE.md, .github/workflows/ci.yml).
  • Binding docs describing unshipped code: nincs. Az npm-csomag kiadatlan (npm view tarhely-cli → E404, 2026-10-27). Mindhárom doksiban „Állapot” blokk jelzi, a SKILL.md description mezőjében is.
  • Doc trees unreachable from an entry doc: nincs.
  • Skipped: LICENSE (jogi), pnpm-lock.yaml (generált), .github/workflows/ci.yml (konfig, csak olvasva).
  • Mechanikus réteg utána (hypo-audit.sh, exit 0): 0 failures, 0 warnings. Alap: 0 failures, 4 warnings (3 frissesség, 1 invariáns-bootstrap). INVARIANT: jelölő 2 fájlban (src/kau/login.ts, src/tarhely/api.ts), előtte 0. Pár: 1 (symlink), nincs eltérés. Dead ref: nincs.
  • Fókuszált bizonyíték: biome check src/kau/login.ts src/tarhely/api.ts tiszta; vitest run test/api.test.ts 32/32; gitleaks dir a 6 módosított fájlon: nincs lelet; a SKILL.md frontmatter YAML-ként érvényes (kulcsok: name, description, license, compatibility, metadata; description 613/1024 karakter).

Top 5 Priority Fixes

  1. A kiadatlan npm-név hitelesítő-csapda (❌ → ⚠️, 5.). Minden doksi npx tarhely-cli …-t írt, de a csomag nincs kiadva, a név szabad. Egy névfoglaló csomag az init-en át megkapná a jelszót és a TOTP-seedet. Most: „Állapot” blokk az AGENTS.md-ben, a README.md-ben (forrásból telepítés receptje, Node 22.13+) és a SKILL.md-ben; a skill description mezője tiltja az npx tarhely-cli-t és a hasonló nevű csomagot. Nyitva: a CLI saját hint/detail szövegei még npx tarhely-cli-t írnak (6 hely, lásd lent), és a név kiadása vagy lefoglalása a tulajdonos döntése.
  2. Hamis és hiányzó invariánsok (❌ → ⚠️, 2.). A „belépési lépésekről nincs képernyőkép” sor ellentmondott a capturable titok előtti képnek. Az allowlist *.gov.hu-t írt, a kód öt konkrét hostot enged. A git-őr, a 0700/0600 jogok, a zip-korlátok és a postafiók-elszigetelés dokumentálatlan volt. Most hét pontos invariáns-sor van, tesztlefedettséggel vagy „Teszt nem őrzi” jelöléssel, és INVARIANT: jelölők a login.ts-ben és az api.ts-ben.
  3. Agent-csapdák a felhasználói doksikban (5.). Nem volt dokumentálva, hogy a download git-munkafán belüli, nem ignorált mappába nem ír (1-es kód). A 4-es kódra a doksi képernyőképes nyilvános issue-t javasolt, pedig a kép a belépés utáni lapot (feladók, cégnevek) mutatja. A --since a list-nél nem szűr. Az 5-ös kódnál nincs felső szintű error. Hibás kapcsolónál nincs JSON. A forget --json mellett --yes-t kér. A csak számjegyes --mailbox mindig sorszám. Mindez javítva a SKILL.md-ben és a README.md-ben.
  4. Belépési pont (⚠️ → ✅, 7.). Az AGENTS.md most: olvasási sorrend (3 lépés), hatókörös ütközési szabály, Szabályok (élő portál csak kérésre, publikus repó), Invariánsok, Kódtérkép, rangsorolt csapdalista, „Ha ehhez nyúlsz” triggerek, Szótár, Nyelv, Landolás és CI. CLAUDE.md → AGENTS.md symlink.
  5. A csak-olvasás ígéret csak prózában él (2., nyitva). Az apiRequest bármilyen metódust és utat elfogad, teszt nem rögzíti a négy olvasó végpontot. Most INVARIANT: komment őrzi, de a kódőr és a teszt tulajdonosi vagy külön PR-es munka (lásd lent).

Details

1 — Decision Traceability ⚠️

  • Nincs döntési könyvtár, és a brief szerint nem is vezetünk be. A „miért” részben a csapdalistában („Miért:” sorok) és kódkommentekben él.
  • Dokumentálatlan, rendezett döntések: a diagnosztika-politika fordulata (b521c75 → d4d4500), valódi Playwright-böngésző HTTP-kliens helyett (src/tarhely/api.ts fejléce), env > kulcstartó, fájl soha (src/store/credentials.ts:86), fflate a kibontás előtti szűrőhöz, idp.gov.hu aldomain nélkül (indoklás ismeretlen). Report-only.

2 — Invariant Coverage ⚠️

  • Hálózat: doksi + teszt (test/browser.test.ts a listát rögzíti), INVARIANT: jelölő nincs a context.route-nál. Teszt nem nézi, hogy a launchBrowser beköti-e a route-ot. A Service Worker és a WebSocket forgalmát a context.route nem szűri (Playwright 1.63.0 dokumentált korlátja; serviceWorkers: "block" nincs). A doksi „minden mást elutasít” állítása erősebb a kódnál.
  • Csak olvasás: doksi + komment (src/tarhely/api.ts), teszt és kódőr nincs.
  • Diagnosztika: doksi + komment (src/kau/login.ts), teszt nincs. A src/session.ts komment a régi „SOHA nincs diagnosztika” szöveg maradt (az integráció visszaállította, lásd lent).
  • Zip: a 200 MB-os korlátot teszt nem őrzi; a doksi ezt már kimondja.
  • Fixture-szabály: csak próza, a gitleaks nem fogja meg; az e8a5384 egy nem szintetikus eid-előtagot tett a README.md-be (a szöveg javítva, a történetben megmarad).
  • Node-tartomány: az engines >=20.16 átengedi a 21.x és a 22.0–22.3 ágat, a doctor csak a főverziót nézi, a --no-extract (allowNegative) ott elbukik.
  • Debug-capture: a src/errors.ts:53 hint képernyőképes nyilvános issue-t javasol; a capture alapjoggal, git-őr nélkül ír.

4 — Module Boundaries ⚠️

  • A Kódtérkép az összes src/ területet és a test/-et lefedi, az importgráffal egyezik (újraellenőrizve).
  • src/index.ts sora: „ami innen kimegy, nyilvános API”, de a package.json-ban nincs main/exports, így csomagként nem importálható; és újraexportálja a loginToKau-t és a launchBrowser-t. Tulajdonosi döntés.
  • A rétegszabályt semmi nem kényszeríti (nincs határ-teszt vagy noRestrictedImports).

5 — Doc Freshness ⚠️

  • A doksik most egyeznek a kóddal (23 alkalmazott javítás, mind szúrópróbával ellenőrizve). Ami nyitva: kódban élő szöveg, amelyet a doksi már jelez.
  • npx tarhely-cli a CLI saját szövegeiben: src/errors.ts:37,45, src/store/credentials.ts:62, src/commands/doctor.ts:55, src/commands/init.ts:75, src/browser.ts:51; npx playwright install chromium: src/commands/doctor.ts:43, src/browser.ts:51, src/commands/init.ts:59.
  • src/main.ts:29 USAGE: a --since „csak az ettől érkezett levelek” a list-re nem igaz.
  • src/session.ts:37-38 komment: „A capture csak sikeres belépés után él” – a kód a titok előtti capturable hibánál is képet ad.
  • README.md „Hová beszél?” és SKILL.md: „minden mást elutasít” – Service Worker/WebSocket rés (lásd 2.).
  • Jogi hatás: hogy a download átvételnek számít-e, nincs tisztázva (az AGENTS.md kimondja, a felhasználói doksik nem).

8 — Session Continuity ⚠️

Recommended Actions

Elvégezve (ebben a commitban):

  1. AGENTS.md teljes újraírás: Állapot blokk (kiadatlan npm-név, a CLI npx-es tanácsai ne menjenek tovább szó szerint), olvasási sorrend tesztlefedettségi kivételekkel (src/errors.ts is felvéve az integrációnál), hatókörös ütközési szabály, Szabályok, hét invariáns pontos hivatkozásokkal, Kódtérkép, 10 rangsorolt csapda (mi/miért/helyette), triggerek (köztük hint/hibaszöveg és npm-kiadás, a SKILL.md description mondatával kiegészítve), Szótár, Nyelv, Landolás és CI (gitleaks a Markdownt is vizsgálja).
  2. CLAUDE.md → AGENTS.md symlink.
  3. skills/tarhely-cli/SKILL.md: description és compatibility (pontos hostlista, Node 20.16+/22.4+, Chromium-letöltés), Állapot blokk, --json kivételek, forget --json --yes, --mailbox számjegyes csapda, --since csak a download-nál szűr, git-őr, isNew szabályai, kilépési kódok (0: skippedByLimit; 2: hiányos belépő, kulcstartó; 4: nincs képernyőképes nyilvános issue, csak a felhasználó nyit issue-t; 5: failures[] alakja, zip-korlát → --no-extract), --out <mappa> a tipikus kérésekben, pnpm exec playwright install chromium, kulcstartó- és env-hibaelhárítás.
  4. README.md: Állapot blokk forrásból telepítéssel (Node 22.13+), pontos hostlista, Node-előfeltétel, szintetikus eid a mintában, git-őr, JSON-kivételek, képernyőkép-szabály, kilépési kódok 2/4/5, CI-sorrend, angol összefoglaló frissítve.
  5. src/kau/login.ts és src/tarhely/api.ts: INVARIANT: kommentek (diagnosztika, csak olvasás, postafiók-elszigetelés). Csak komment, viselkedés nem változott.
  6. Integrációs visszaállítás: a src/main.ts (allowNegative-komment) és a src/session.ts (INVARIANT-komment) változását egyik fixer sem birtokolta, ezért alapállapotra állítottam; a javaslatuk lent szerepel.

Kézi teendők (nyitott, mind javaslattal):

  1. npm-név (tulajdonos): npm publish --provenance (2FA) vagy a tarhely-cli név lefoglalása. Utána ugyanabban a PR-ben az Állapot blokkok és a „közzétételig” megjegyzések törlése (AGENTS.md, README.md magyar és angol rész, SKILL.md törzs és description).
  2. CLI-tanácsok (src/errors.ts:37,45, src/store/credentials.ts:62, src/commands/doctor.ts:43,55, src/commands/init.ts:59,75, src/browser.ts:51): a hívási előtagot egyszer, a tényleges binárisból képezd (npx tarhely-cli csak npx-en át, különben node <process.argv[1]>), a Chromiumhoz a csomagolt Playwright cli.js-ét add meg (dirname(require.resolve("playwright/package.json")), mint az init.ts). Unit-teszt: egyik hint sem tartalmaz bedrótozott npx tarhely-cli-t.
  3. Csak-olvasás kódőr (src/tarhely/api.ts): assertReadOnlyEndpoint(method, path) az apiRequest elején, engedélylista: POST /uzenetek/BEERKEZETT/kereses, GET /uzenet/beerkezett/{eid}, GET /uzenet/letoltes/beerkezett/{eid}, GET /mailbox/details; más esetben TarhelyError(EXIT_CODES.unknown, "Nem olvasó végpont: …"). Tesztek a test/api.test.ts-ben: it("rejects any endpoint outside the read-only allowlist") és it("issues only allowlisted calls from apiList, apiDetail, downloadLetter and readQuotaPercent") rögzítő hamis PageLike-kal.
  4. Diagnosztika-teszt (test/session.test.ts): a browser, kau/login, tarhely/api mockolásával: it("never captures when login fails after the secrets were typed"), it("captures a capturable pre-secret failure"), it("captures a failure after a successful login").
  5. src/session.ts:37-38 komment (visszaállítva, javítandó): helyette // INVARIANT: kitöltött belépőmezőről soha nincs képernyőkép vagy aria-snapshot. Capture csak sikeres belépés után, vagy a titkok begépelése előtti, capturable-nek jelölt hibánál (src/kau/login.ts). Lásd AGENTS.md, Invariánsok.
  6. Hálózati rés (src/browser.ts, biztonsági határ, tulajdonosi jóváhagyás): newContext({ …, serviceWorkers: "block" }) és context.routeWebSocket(...) a nem engedélyezett hostokra ws.close()-zal; // INVARIANT: csak az ALLOWED_HOSTS; bővítése emberi döntés. Lásd AGENTS.md, Invariánsok, „Hálózat”. a context.route fölé. Tesztek a test/browser.test.ts-ben (vi.mock("playwright")): it("registers a route that aborts non-allowlisted hosts"), it("blocks service workers"). Addig a doksi-sor átmeneti szövege: „a böngésző kéréseit a context.route csak az ALLOWED_HOSTS hostjaira engedi … Rés: a Service Worker által kiszolgált kéréseket a context.route nem látja, és a newContext nem tiltja a Service Workert.” (AGENTS.md Hálózat sor, README.md „Hová beszél?”, SKILL.md bevezető).
  7. Debug-capture (src/errors.ts:53, src/report.ts:88-96): hint: „Futtasd újra --debug-dir <repón kívüli mappa> kapcsolóval, és nyiss issue-t a hibaüzenettel. A képernyőkép és az .aria.yaml személyes adatot mutat: csak kitakarva csatold.” A capture előtt assertOutDirNotCommittable(debugDir), mkdirSync(…, { mode: 0o700 }), a PNG és az .aria.yaml 0o600-zal. Tesztek: it("refuses a debug dir inside a non-ignored git work tree"), it("writes debug captures with 0o600"). Addig a README.md 4-es sorához: „, akkor sem, ha a kiírt „Tanács” a képernyőképet javasolja”.
  8. Zip 200 MB teszt (test/extract.test.ts): it("rejects a zip whose declared uncompressed size exceeds 200 MB and writes no files"): fflate.zipSync egybejegyzéses zip, a központi jegyzék (0x02014b50) +24-es mezője 201 MiB-ra írva; elvárt dobás /200 MB/, üres célmappa. Opcionálisan // INVARIANT: a src/extract.ts:57-hez; utána az AGENTS.md Zip sorából a „a 200 MB-osat nem” törlése.
  9. Node-tartomány (package.json, src/commands/doctor.ts:22-37, src/main.ts:77): "engines": { "node": "^20.16.0 || >=22.4.0" }; a doctor-ban isSupportedNode (20.x ≥ 20.16, 22.x ≥ 22.4, ≥ 23), részlet: „legalább Node 20.16 (22-es ágon 22.4) kell”; tesztek 20.15.1, 22.3.0 (nem ok) és 20.16.0, 22.4.0 (ok). A main.ts-be a visszaállított komment: „A --no-extract miatt kell; a parseArgs allowNegative Node 20.16-tól és 22.4-től létezik.”
  10. USAGE (src/main.ts:29): --since YYYY-MM-DD download: csak az ettől érkezettek; list: a korábbiak isNew: false (felső határ nincs).
  11. Jogi hatás (tulajdonos/jogi tanács): átvételnek számít-e a GET /uzenet/letoltes/beerkezett/{eid}, készül-e letöltési igazolás. Ha igen: SKILL.md Aranyszabály 6 („Csak azt töltsd le, amit a felhasználó kért; előtte list --json-nal mutasd meg, mi jönne le.”), README.md „Mit csinál, mit nem” mondat, és a „nincs tisztázva” törlése az AGENTS.md-ből.
  12. Fixture-őr (.gitleaks.toml, tulajdonos): [extend] useDefault = true + tarhely-erkeztetesi-szam szabály ((?:^|[^0-9])([1-9][0-9]{12,23})(?:[^0-9]|$), allowlist: pnpm-lock.yaml, test/totp.test.ts, 1704067200000). Az e8a5384-ben maradt 1263939602026… előtagról döntés: történet-átírás vagy elfogadás .gitleaksignore ujjlenyomattal.
  13. src/index.ts (tulajdonos): vagy "exports": { ".": { "types": "./dist/index.d.ts", "default": "./dist/index.js" } } a package.json-ba, vagy a fájl elhagyása. Addig a Kódtérkép sora: „könyvtári újraexport; a package.json-ban nincs exports/main, csomagként ma nem importálható; ha nyilvános lesz, a loginToKau/launchBrowser exportja megkerüli a withSession diagnosztika-szabályát”.
  14. Határ-teszt (test/boundaries.test.ts): describe("module boundaries"): csak a session.ts hívja a loginToKau(-t és a .capture(-t; csak a browser.ts tartalmaz chromium.launch/context.route-ot; csak a report.ts screenshot(/ariaSnapshot(-ot; fetch( csak az api.ts-ben; src/kau/ nem importál ../tarhely, ../session, ../report, ../store modult; src/tarhely/ nem importál ../browser, ../store/credentials, ../report modult, a ../kau/login-t és a ../session-t csak import type-pal; src/commands/ nem importálja a ../kau/login-t.
  15. main-védelem (repo-beállítás, tulajdonos): PR kötelező, kötelező check státusz, force-push tiltva, csak squash merge (allow_merge_commit=false, allow_rebase_merge=false); opcionálisan allow_auto_merge=true, hogy a /ship élesíthessen.
  16. Kiadás és döntések (opcionális): első kiadáskor v0.1.0 tag és GitHub Release; rövid „Kiadás” szakasz az AGENTS.md-be (pnpm build + npm pack --dry-run, npm publish --provenance, tag, Állapot-törlés). Opcionális „Döntések (miért így)” szakasz a fenti öt döntéssel, <!-- INFERRED: verify --> jelöléssel; az idp.gov.hu indoklását csak a tulajdonos adhatja meg.

Landolás: PR → egy saját családi review → merge (risk:low, csak doksi és komment; auto-merge a repóban nem élesíthető). Ez a futás nem pushol.

@godavid
godavid merged commit f9fbddd into main Oct 27, 2026
1 check passed
@godavid

godavid commented Oct 28, 2026

Copy link
Copy Markdown
Owner Author

Gemini review · gemini-4-argon@medium · round 1 · full 004d769a...ef9db696 · context: fresh

No findings.

verdict: clean
important 0, nit 0, pre-existing 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant