Repository navigation
[hypo] 2026-10-27 tulajdonosi audit — nyitott tételek #32
Copy link
Copy link
Open
Description
A 2026-10-27-i tulajdonosi /hypo fix kör (a belépő doksi és a runbook javítása) nyitva hagyott tételei. A cél az agentes fejlesztés védelme: a doksi ezeknek a kódbázisoknak a memóriája, az agentek megbíznak benne. Minden tétel: fájl, miért számít egy előzmény nélküli agentnek, pontos javaslat.
A kör PR-je: #33 (a teljes higiénia-riport ott, kommentben).
Előfeltétel a landoláshoz
-
pnpm-workspace.yaml— külön deps-PRoverrides-szal:zod>= 4.6.6,undici>= 7.30.1. Miért: a kötelezőbiztonsagcheck a mainen piros (2026-10-26,pnpm audithigh), így minden PR-en bukik, a hypo-PR-en is; ez a hypo-PR landolásának előfeltétele.
Deploy- és állapotjelzések
-
docs/superpowers/plans/2026-09-16-agent-felulet.md,docs/superpowers/specs/2026-08-06-teljes-szoveges-kereses-design.md,docs/superpowers/specs/2026-09-16-agent-felulet-design.md— a cím után állapotjelzés, a törzs érintetlen: „KÉSZ, archivált rekord, nem utasítás; leszállítva (Agent-felület: REST API + MCP-szerver + felvételi napló #10, Agent-felület és értesítés a weboldalon #17); deploy csak arelease-production.yml-ből, csak squash PR; lásd../../uzemeltetes.md”. Miért: a 2026-09-16-i terv L3-6/L53 még helyivercel --prod-ot ír elő; egy agent ezt követve megkerüli arelease-production.ymldeploy-kapuját. -
PRODUCT.mdL87-88 — owner-döntés a régi aldomain átirányítás-vállalásáról: (a) a DNS-rekord vissza a Vercelre, vagy (b) a sor mondja ki, hogy az átirányítás 2026-09-16 óta nem él (a 2026-09-23-i döntés szerint). Miért: a doksi olyan átirányítást ígér, amely nem működik; az agent erre építhet. - Gyökér
LICENSE— az owner hozzáadja az MIT-szöveget a jogosult nevével. Miért: a GitHub mostlicense: null-t mutat, aPRODUCT.mdés apackage.json-ok MIT-et állítanak; a licenc-metaadatot olvasó eszközök és agentek nem látnak licencet.
CI-kapuk (ma a CI csak biztonsági ellenőrzést futtat)
-
.github/workflows/teszt.yml(új; a Bump actions/setup-node from 7.0.0 to 7.1.0 in the actions group across 1 directory #24 miatt nem abiztonsag.yml-ben) —pnpm install --frozen-lockfile,pnpm -r test,pnpm --filter @gitjog/pipeline exec tsc --noEmit,pnpm --filter @gitjog/szoveg exec tsc; utána atesztlegyen kötelező check a 23985520-as rulesetben. Előbb.jskiterjesztés apackages/szoveg/srcrelatív importjaiba (index.ts,hivatkozas.ts,szakasz-diff.ts), ez megszünteti a 7 tsc-hibát; utána törölni azAGENTS.md7-hibás megjegyzését és a runbook „a CI nem futtat tesztet” megjegyzését. Miért: a zöld PR ma csak a biztonsági checkeket bizonyítja; a determinizmus-, horgony-, delta-őr- és dátumteszteket semmi nem kényszeríti ki, egy agent zöld CI mellett is törhet viselkedést. -
apps/web/lib/md.ts— XSS-teszt az újpackages/szoveg/test/md-xss.test.ts-ben: ellenséges markdownból nem lesz tag, mindenidilleszkedik a^[a-z0-9-]+$-re;INVARIANT:komment a fájlba; azAGENTS.mdinvariáns-sora erre a tesztre mutasson. Miért: az XSS-invariáns ma csak prózában él; egy agent azmd.tsmódosításával csendben megtörheti. -
packages/pipeline/supabase/*.sql+apps/web/app/kereses— a kiemelés-invariáns gépi őre: CI-grep aStartSel=</StopSel=<mintára és adangerouslySetInnerHTML-re, vagy vitest akiemelve()escape-elt kimenetére. Miért: a kiemelés STX/ETX-szel jelölt, nem HTML; ezt ma csak komment őrzi, egy agent visszaírhatja<mark>-ra és HTML-ként renderelheti. -
packages/pipeline/adatrepo/napi-delta.yml— heti CI-diff a nyersgodavid/magyar-jog/.github/workflows/napi-delta.ymlellen; utána azAGENTS.md„Ne tedd” 3. sora[kapu]. Miért: a két példány byte-azonosságát ma kézzel kell tartani; egy agent az egyiket módosítja, és az eltérés észrevétlen marad. -
packages/pipeline/test— vitest: atorvenylista-generalas.tsKIEMELT_SLUGOKegyezik aconfig.tsJOGSZABALYOKslugjaivaldocumentIdszerint (vagy az egyik a másikból származik); utána a runbookból törölni a „(ezt teszt nem őrzi)” részt. Miért: a két listát semmi nem tartja szinkronban; egy agent az egyiket bővíti, a másikat elfelejti. - Függőség-kapu (a javasolt teszt-workflow-ban) — a web és a szoveg nem importál pipeline-t; a
packages/szoveg/srcnem importálnext,react,@supabase/,node:fs,postgres,cheeriocsomagot;packages/*/srcnem importálapps/-ból;NEXT_PUBLIC_SUPABASEnincs azapps-ban. Miért: az importszabályok ma csak azAGENTS.mdtáblájában élnek; gépi kapu nélkül egy agent csendben átlépi a határt. - Márka- és nyelvi őr — CI:
git grepa régi márkaszóra az engedélyezett fájlokon kívül, és ugyanez a PR-címre (PR_TITLEenv-ből). Miért: védjegyfelszólítás (2026-09-16); egy agent a régi szót visszahozhatja doksiba, UI-ba vagy PR-címbe. -
.github/pull_request_template.md— egy jelölőnégyzet: az üzemeltetést érintő viselkedésváltozás ugyanabban a PR-ben frissíti adocs/uzemeltetes.md-t. Miért: a fix(delta): a szétcsúszás-őr a régi/előzmény nélküli állapotokat számolja #21 és a fix(api,szoveg): pont nélküli §, naptári dátum-ellenőrzés, rövid cache #30 runbook-frissítés nélkül ment be; az agent a runbookot igaznak veszi.
Adatbázis és üzemeltetés
-
packages/pipeline/supabase/06-anon-idokorlat.sql(új, idempotens) —alter role anon set statement_timeout = '8s'; notify pgrst, 'reload config';; az owner erősítse meg az élő beállítást, utána a runbook INFERRED-jelölője törölhető. Miért: a timeout ma csak az élő DB-ben él; aki az SQL-ből építi újra az adatbázist, elveszíti. -
docs/uzemeltetes.md— az owner erősítse meg a két<!-- INFERRED: verify -->tételt (a szétcsúszás-őr teendője, a timeout-parancs) és a Vercel Firewall-szabály aktuális módját (2026-09-25:log). Miért: az agent a runbookot igaznak veszi; az INFERRED-tételek nem ellenőrzöttek. -
apps/web/lib/api/valtozasok.ts— a veszteségesfelveve_utancursor (valtozasok: a cursor (felveve_utan) egész napi kötegeket dob el — 171/221 módosítás csendben elveszik #26) javítása keyset cursorral (felveve, slug, datum), plusz teszt egy azonos időbélyegű köteggel; utána az „Ismert korlátok” tétele törölhető. Miért: az API-t használó agentek csendben elveszítenek változásokat.
Agentnek szóló szövegek (llms.txt, MCP, adat-repó sablonok)
-
apps/web/lib/api/semak.tsL13 — a kitalált18-sz-elovasarlasi-joghorgony helyett6-272-sz-megbizasi-szerzodes(Ptk.; akeresesvagy a tartalomjegyzék adja). Miért: az MCP- és OpenAPI-leírás nem létező horgonyt ad a külső agenteknek. -
packages/pipeline/src/sablonok.tsL99-100 +apps/web/app/llms.txt/route.tsL31-32 +README_MDL8 — „egy commit = egy hatálybalépési nap, az aznap változó összes törvénnyel; mindig adj meg útvonal-szűrőt”. Miért: a külső agent azt hiszi, egy commit egy törvény egy állapota, és útvonal-szűrő nélkül félreolvassa agit log-ot. -
packages/pipeline/src/sablonok.tsREADME_MDL20-21 — amain@{dátum}reflog-recept helyettallapotok.json-bóljq-val kiválasztott SHA-k; ugyanez kézzel agodavid/magyar-jog/README.md-ben. Miért: a reflog friss klónban üres diffet ad; az agent csendben rossz eredményt kap. -
packages/pipeline/src/sablonok.tsL1 — owner-választás: (a) aREADME_MD/LICENSE_TXT(+LICENSE_HU_MD) szinkronja az élő fájlokból, vagy (b) a fejléc mondja ki, hogy ezeket csak a friss backfill írja. Miért: a fejléc szerint a sablon a forrás; egy agent a sablont szerkeszti, és hatást vár az élő README-n. -
apps/web/app/llms.txt/route.tsL63/L69 +apps/web/lib/csatornak.tsL49 —földek forgalm→földek+forgalm. Miért: a curl a nyers szóközt elutasítja; a bemásolt példa nem fut. -
apps/web/app/llms.txt/route.tsL38 — a diff{tol}/{ig}két létező időállapot napja,{tol}a korábbi, különben 404. Miért: az agent tetszőleges dátumot ad, és 404-et kap. -
apps/web/lib/csatornak.tsL1-3 — vagy azllms.txtimportálja aREST_PELDAK,FRISSITES_UTAN,OPENAPI_URL,RSS_URL,torvenyRssértékeket, vagy a komment mondja ki, hogy azllms.txtezeket kézzel ismétli. Miért: a komment egyetlen forrást állít; az agent egy helyen javít, a másik elavul. -
packages/pipeline/src/sablonok.tsL96 +apps/web/app/llms.txt/route.tsL91 — „4+ MB” → „3+ MB” (élő méret 3 365 848 bájt). Miért: a pontatlan méret félrevezeti az agent letöltési döntését.
Webes felület és dizájn
-
apps/web/app/kereses/page.tsxL107-109 — a horgonyos<Link>helyett sima<a>(aDESIGN.md:target-szabálya szerint), anext/linkimport törlése. Miért: a kód ellentmond aDESIGN.md-nek; az agent a hibás mintát másolja. -
DESIGN.md/ OG-kártyák /icon.svg— teszt: a világos:rootOKLCH-tokenek sRGB hexre váltva egyeznek aPAPIR/TINTA/… konstansokkal; vagy közös modulból exportált értékek. Miért: a hex-másolatok eltávolodnak a tokenektől; a tokent módosító agent nem tud a másolatokról.
Eszközlánc
-
package.json— owner választja a pnpm fő verziót, és felveszi apackageManagermezőt; anapi-delta.ymlmindkét példánya (ma 11) egy körben a többi workflow-hoz (12). Miért: az agent találomra választ pnpm-et; lockfile-zaj és eltérő viselkedés.
Korábbi eltérések (a review Pre-existing leletei)
-
packages/pipeline/src/sablonok.ts:85— a kódkomment szerint „A delta minden futáskor kiírja” (AGENTS_MD); adelta.tscsak új időállapotot felvevő futáskor írja. Miért: ugyanaz az elavulás, amelyet a PR adocs/uzemeltetes.md-ben javított; az agent a kommentnek hisz. Javaslat: a komment igazítása a runbookhoz. -
packages/pipeline/src/backfill.ts:42— a komment szerint aKOTEG_MERET„feldolgozott jogszabályonként” számol, a :224-es ellenőrzés viszont commitokat számol (commitSzamlalo - utolsoPushnal >= 500). Miért: az agent rossz egységgel számol. Javaslat: „500 commitonként”, ahogy az új doksi írja. -
packages/szoveg/src/szakaszok.tsfejléc — atest/szakaszok.test.tsrelatív hivatkozás a csomagon belül helyes, de a horgony-teszt csomaghatáron át azapps/web/lib/md.ts-t is importálja (az újAGENTS.mdkivételként dokumentálja). Miért: a fejléc nem jelzi a kivételt. Javaslat: a fejléc említse a csomaghatáron átnyúló importot és azAGENTS.mdkivételét.
Metadata
Metadata
Assignees
Labels
No labels
Activity