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 added risk:medium [license] Risk tier medium (.ship/risk-tiers) reviewed:claude-opus-5.5@high review-round:1 [review] Review round 1 of max 3 owner-ok [license] The owner licensed this PR to land; set only by the owner lane labels Oct 27, 2026
@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

Labels

owner-ok [license] The owner licensed this PR to land; set only by the owner lane review-round:1 [review] Review round 1 of max 3 reviewed:claude-opus-5.5@high reviewed:gemini-4-argon@medium risk:medium [license] Risk tier medium (.ship/risk-tiers)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant