\# PROJEKTMAPPA-TISZTÍTÁSI PROTOKOLL Tisztítsd meg a jelenlegi projekt könyvtárát úgy, hogy kizárólag azok a fájlok maradjanak benne, amelyek a projekt megértéséhez, fejlesztéséhez, újraépítéséhez, teszteléséhez vagy használatához ténylegesen szükségesek. A cél egy minimális, rendezett, reprodukálható és működő projektmappa létrehozása. A takarítás során ne csak fájlnév alapján dönts. Vizsgáld meg a fájlok tartalmát, hivatkozásait, szerepét és azt, hogy újragenerálhatók-e. \--- \# 1. Alapelvek Egy fájl csak akkor maradjon a projektben, ha legalább az egyik feltétel teljesül: \* szükséges a projekt futtatásához; \* szükséges a projekt buildeléséhez; \* szükséges a fejlesztéshez; \* szükséges a teszteléshez; \* szükséges a telepítéshez; \* szükséges a projekt megértéséhez; \* nem állítható elő megbízhatóan más fájlokból; \* fontos konfigurációt vagy sémát tartalmaz; \* licencelési vagy jogi okból szükséges; \* a projekt lezárási dokumentációjához tartozik; \* olyan eredeti forrásanyag, amely máshonnan nem szerezhető vissza. Egy fájl eltávolítható, ha: \* automatikusan újragenerálható; \* gyorsítótár; \* ideiglenes állomány; \* korábbi próbálkozás; \* elvetett változat; \* régi biztonsági másolat; \* szükségtelen export; \* duplikátum; \* elavult build; \* hibakeresési maradvány; \* szerkesztőprogram vagy operációs rendszer segédfájlja; \* olyan napló, amelynek nincs archiválási értéke; \* már nem használt kód vagy erőforrás; \* máshol, hiteles formában már megvan. A „hátha még kell” önmagában nem indok egy fájl megtartására. \--- \# 2. Kötelező biztonsági szabályok 1\. Kizárólag a jelenlegi projekt gyökérkönyvtárában dolgozz. 2\. Ne módosíts és ne törölj semmit a projekt könyvtárán kívül. 3\. Ne kövess szimbolikus linket, junctiont vagy mountot a projekt könyvtárán kívülre. 4\. Git submodule tartalmát ne töröld automatikusan. 5\. Ne törölj valódi titkokat tartalmazó fájlt addig, amíg nem ellenőrizted, hogy szükséges-e biztonságosan archiválni vagy helyettesíteni. 6\. Ne töröld a `.git` könyvtárat. 7\. Ne töröld a `PROJECT\_MEMORY` könyvtárat. 8\. Ne töröld automatikusan a működő forráskódot, konfigurációt, migrációt vagy tesztet. 9\. Ne végezz végleges törlést az első lépésben. 10\. Minden eltávolítandó fájlt először karanténba kell mozgatni. 11\. A karantén ne a projektmappán belül legyen. A karantén helye: ```text /\_PROJECT\_CLEANUP\_QUARANTINE\_\_/ ``` Őrizd meg a fájlok eredeti relatív könyvtárstruktúráját, hogy szükség esetén pontosan visszaállíthatók legyenek. \--- \# 3. A projekt feltérképezése A módosítások előtt vizsgáld át: \* a teljes könyvtárstruktúrát; \* a rejtett fájlokat; \* a forráskódot; \* az importokat és hivatkozásokat; \* a konfigurációs fájlokat; \* a csomag- és lock fájlokat; \* a buildfolyamatot; \* a teszteket; \* a CI/CD-konfigurációt; \* a dokumentációt; \* az adatbázissémákat és migrációkat; \* az asseteket és statikus fájlokat; \* a Git által követett és nem követett fájlokat; \* a `.gitignore` szabályait; \* a kódban szereplő fájlútvonalakat; \* a dinamikusan betöltött fájlokat; \* az opcionális, de dokumentált komponenseket. Állapítsd meg: \* mely fájlokat használja közvetlenül a projekt; \* mely fájlok generáltak; \* mely fájlok duplikáltak; \* mely fájlok elavultak; \* mely fájlok eredete vagy szerepe bizonytalan; \* mely fájlok szükségesek csak helyi fejlesztéshez; \* mely fájlok szükségesek csak kiadáshoz; \* mely könyvtárak állíthatók elő telepítési vagy buildparanccsal. Ne következtess kizárólag fájlnévből. \--- \# 4. Megtartandó fájlok Általában tartsd meg az alábbiakat, amennyiben a projekt használja őket: \## Forrás és működés \* forráskód; \* entry pointok; \* modulok és komponensek; \* sablonok; \* szükséges statikus assetek; \* adatbázissémák; \* migrációk; \* seed fájlok, ha szükségesek; \* saját scriptek; \* szükséges bináris vagy modellfájlok, ha nem generálhatók újra. \## Környezet és függőségek \* csomagmanifestek; \* lock fájlok; \* verziórögzítő fájlok; \* buildkonfigurációk; \* lint- és formázási konfigurációk; \* típusellenőrzési konfigurációk; \* konténerkonfigurációk; \* CI/CD-fájlok; \* deployment-konfigurációk; \* `.gitignore`; \* `.gitattributes`; \* `.editorconfig`, ha használt. \## Dokumentáció \* aktuális `README`; \* telepítési és használati dokumentáció; \* API-dokumentáció; \* licenc; \* jogi vagy szerzői jogi fájlok; \* `AGENTS.md`; \* `PROJECT\_MEMORY`; \* a projekt lezárási és újraépítési dokumentumai. \## Környezeti változók \* `.env.example`; \* `.env.template`; \* más, titkok nélküli konfigurációs minták. Valódi `.env` fájlt ne törölj és ne helyezz át automatikusan, ha az egyedi, máshonnan nem visszaállítható adatokat tartalmaz. Jelöld külön biztonsági kockázatként. \## Tesztek Tartsd meg: \* a jelenleg használt automatikus teszteket; \* szükséges fixture-öket; \* mockokat; \* tesztkonfigurációkat; \* kritikus manuális tesztleírásokat. Ne tekintsd automatikusan feleslegesnek a teszteket csak azért, mert a végső program fut nélkülük. \--- \# 5. Eltávolításra jelölhető elemek Az alábbi kategóriákat vizsgáld meg, és amennyiben valóban feleslegesek, mozgasd karanténba. \## Biztonsági másolatok és korábbi változatok Példák: ```text \*.bak \*.backup \*.old \*.orig \*.copy \*.tmp \*.temp \*.save \*.previous \*.disabled \*\~ \*\_old.\* \*\_backup.\* \*\_copy.\* \*\_final2.\* \*\_final\_final.\* ``` Ne töröld őket pusztán a nevük alapján. Előbb hasonlítsd össze a jelenlegi fájllal. \## Sikertelen és elvetett próbálkozások Példák: ```text test\_version/ experiment/ experiments/ prototype/ prototype-old/ attempt/ draft/ scratch/ playground/ unused/ deprecated/ legacy-copy/ ``` Csak akkor távolítsd el, ha: \* nincs rájuk hivatkozás; \* nem részei a működő rendszernek; \* az értékes tapasztalat már szerepel a `PROJECT\_MEMORY/LESSONS\_LEARNED.md` fájlban; \* nem tartalmaznak egyedi, máshol nem létező forrásanyagot. \## Generált könyvtárak Amennyiben megbízhatóan újragenerálhatók: ```text node\_modules/ vendor/ .venv/ venv/ env/ \_\_pycache\_\_/ .pytest\_cache/ .mypy\_cache/ .ruff\_cache/ .tox/ .gradle/ target/ bin/ obj/ dist/ build/ out/ coverage/ htmlcov/ .next/ .nuxt/ .svelte-kit/ .cache/ .parcel-cache/ .turbo/ ``` Build- vagy kiadási fájl csak akkor maradjon, ha: \* a projektet forrásból nem lehet megbízhatóan újraépíteni; \* ez maga a kiadandó végtermék; \* külön archiválandó aláírt vagy publikált csomag; \* külső rendszer kifejezetten ezt igényli. \## Naplók és hibakeresési fájlok Példák: ```text \*.log logs/ debug/ debug-output/ crash-dumps/ trace/ ``` Tartsd meg azt a naplót, amely: \* ismert, még megoldatlan hibát bizonyít; \* reprodukcióhoz szükséges; \* audit- vagy jogi kötelezettség miatt szükséges. \## Szerkesztő- és operációsrendszer-maradványok Példák: ```text .DS\_Store Thumbs.db desktop.ini \*.swp \*.swo .idea/ .vscode/ ``` A `.vscode` vagy `.idea` tartalmát csak akkor távolítsd el, ha kizárólag személyes beállításokat tartalmaz. A közös build-, debug-, task- vagy workspace-konfigurációkat tartsd meg, ha a projekt használja őket. \## Ideiglenes exportok és másolatok Vizsgáld meg: \* kézi ZIP-mentések; \* ismételt exportok; \* régi telepítőcsomagok; \* képernyőképek; \* tesztképek; \* ideiglenes PDF-ek; \* adatbázis-dumpok; \* más projektverziókról készített teljes könyvtármásolatok; \* azonos tartalmú, eltérő nevű fájlok. \## Duplikátumok A duplikátumokat tartalmi hash alapján keresd, ne csak fájlnév vagy méret szerint. Ha több azonos fájl létezik: 1\. állapítsd meg, melyik a hivatalos helye; 2\. ellenőrizd a hivatkozásokat; 3\. tartsd meg a kanonikus példányt; 4\. a többit mozgasd karanténba; 5\. szükség esetén javítsd a hivatkozásokat. \--- \# 6. Holtkód és nem használt assetek Keress: \* nem importált modulokat; \* nem hívott függvényeket; \* nem használt komponenseket; \* nem hivatkozott képeket; \* nem használt fontokat; \* elavult stíluslapokat; \* nem használt adatfájlokat; \* kikommentelt régi kódblokkokat; \* már nem használt függőségeket. A statikus elemző eredményét ne tekintsd önmagában bizonyítéknak. Különösen ellenőrizd: \* dinamikus importokat; \* pluginrendszereket; \* reflection használatát; \* fájlnév alapján történő betöltést; \* template-ekből érkező hivatkozásokat; \* konfigurációból meghatározott modulokat; \* runtime által felfedezett fájlokat. A bizonytalan holtkódot ne töröld automatikusan. Jelöld kézi ellenőrzésre. \--- \# 7. Függőségek tisztítása Vizsgáld meg a projekt függőségeit. Azonosítsd: \* nem használt függőségeket; \* duplikált funkciójú csomagokat; \* csak korábbi kísérlethez hozzáadott csomagokat; \* hibásan production dependencyként megadott fejlesztői csomagokat; \* közvetlenül nem szükséges kézi függőségeket. Csak akkor távolíts el függőséget, ha: 1\. nincs rá közvetlen vagy dinamikus hivatkozás; 2\. a build nélküle sikeres; 3\. a tesztek nélküle sikeresek; 4\. a fő programfolyamatok nélküle működnek. A függőségek módosítása után frissítsd a lock fájlt a projekt hivatalos csomagkezelőjével. \--- \# 8. Tisztítási terv készítése Mielőtt bármilyen fájlt áthelyeznél, készíts: ```text PROJECT\_MEMORY/CLEANUP\_PLAN.md ``` A fájl tartalmazza: \## Megtartandó elemek | Útvonal | Szerep | Megtartás oka | | ------- | ------ | ------------- | \## Karanténba helyezendő elemek | Útvonal | Kategória | Eltávolítás oka | Újragenerálható | Kockázat | | ------- | --------- | --------------- | --------------- | -------- | \## Bizonytalan elemek | Útvonal | Miért bizonytalan? | Szükséges ellenőrzés | | ------- | ------------------ | -------------------- | \## Tervezett konfigurációmódosítások | Fájl | Módosítás | Indok | | ---- | --------- | ----- | A terv elkészítése után logikailag ellenőrizd, hogy egyetlen szükséges fájl sem került-e az eltávolítási listára. \--- \# 9. Karanténba helyezés A jóváhagyott tisztítási terv alapján: 1\. hozd létre a projekten kívüli karanténkönyvtárat; 2\. mozgasd oda az eltávolításra jelölt elemeket; 3\. őrizd meg az eredeti relatív útvonalukat; 4\. készíts SHA-256 hash listát a karanténba helyezett fájlokról; 5\. ne véglegesíts törlést; 6\. ne helyezd át a `.git`, `PROJECT\_MEMORY`, forrás- vagy konfigurációs fájlokat bizonyíték nélkül. A karanténban hozz létre: ```text QUARANTINE\_MANIFEST.json ``` Legalább a következő adatokkal: ```json { "project": "", "created\_at": "", "project\_root": "", "items": \[ { "original\_path": "", "quarantine\_path": "", "reason": "", "category": "", "size\_bytes": 0, "sha256": "" } ] } ``` \--- \# 10. A minimális projekt ellenőrzése A karanténba helyezés után úgy ellenőrizd a projektet, mintha egy friss másolat lenne. Amennyiben biztonságosan elvégezhető: 1\. telepítsd újra a függőségeket; 2\. futtasd a buildet; 3\. futtasd a teszteket; 4\. futtasd a lintelést; 5\. futtasd a típusellenőrzést; 6\. indítsd el a projektet; 7\. ellenőrizd a fő funkciókat; 8\. ellenőrizd a hiányzó fájlokra utaló hibákat; 9\. ellenőrizd, hogy a dokumentált telepítési lépések továbbra is működnek. Ne tekintsd sikeresnek a tisztítást pusztán attól, hogy a build lefutott. Ellenőrizd külön: \* runtime fájlbetöltés; \* statikus assetek; \* konfiguráció; \* adatbázis-migráció; \* külső szolgáltatások; \* fejlesztői mód; \* production build; \* tesztkörnyezet. Ha egy ellenőrzés sikertelen: 1\. állapítsd meg, melyik karanténba helyezett fájl hiányzik; 2\. állítsd vissza az eredeti helyére; 3\. dokumentáld, miért szükséges; 4\. ismételd meg az ellenőrzést. \--- \# 11. Projektméret optimalizálása A tisztítás előtt és után mérd meg: \* teljes fájlméret; \* fájlok száma; \* könyvtárak száma; \* verziókövetett fájlok mérete; \* nem verziókövetett fájlok mérete; \* generált tartalom mérete; \* karanténba mozgatott tartalom mérete. Készíts összehasonlító táblázatot: | Mutató | Tisztítás előtt | Tisztítás után | Változás | | ------ | --------------: | -------------: | -------: | A cél nem a lehető legkisebb bájtméret, hanem a legkisebb teljes és biztonságosan reprodukálható projekt. Ne távolíts el értékes dokumentációt vagy teszteket pusztán néhány kilobájt megtakarításáért. \--- \# 12. `.gitignore` frissítése A tisztítás tapasztalatai alapján frissítsd a `.gitignore` fájlt, hogy a felesleges elemek ne termelődjenek újra. Vedd fel szükség szerint: \* buildkönyvtárak; \* cache-ek; \* helyi virtuális környezetek; \* logok; \* ideiglenes fájlok; \* helyi szerkesztőbeállítások; \* titkos konfigurációk; \* rendszerfájlok; \* tesztkimenetek; \* helyi adatbázisok; \* generált exportok. Ne adj hozzá olyan szabályt, amely szükséges forrásfájlokat vagy dokumentációt rejthet el. \--- \# 13. Végső jelentés Készíts: ```text PROJECT\_MEMORY/CLEANUP\_REPORT.md ``` A jelentés tartalmazza: \## Összefoglalás \* mit tisztítottál ki; \* milyen módszerrel; \* mi maradt a projektben; \* milyen ellenőrzések történtek; \* működik-e a projekt a tisztítás után. \## Eltávolított kategóriák \* backupok; \* próbálkozások; \* generált fájlok; \* cache-ek; \* logok; \* duplikátumok; \* holtkód; \* nem használt függőségek; \* egyéb maradványok. \## Visszaállított elemek Sorolj fel minden olyan fájlt, amelyet a tesztelés során vissza kellett állítani, és írd le az okát. \## Ellenőrzési eredmények | Ellenőrzés | Eredmény | Megjegyzés | | ---------- | -------- | ---------- | \## Méretváltozás Tüntesd fel: \* eredeti méret; \* végső méret; \* megtakarított hely; \* eltávolított fájlok száma; \* megmaradt fájlok száma. \## Bizonytalan vagy kézi ellenőrzést igénylő elemek Sorold fel azokat az elemeket, amelyekről nem lehetett biztonságosan dönteni. \## Karantén helye Add meg a karantén pontos elérési útját. \## Végső minősítés Pontosan az alábbi minősítések egyikét használd: \* `CLEAN\_AND\_VERIFIED` \* `CLEAN\_WITH\_WARNINGS` \* `CLEANUP\_INCOMPLETE` \* `RESTORED\_AFTER\_FAILED\_VALIDATION` A minősítést röviden indokold. \--- \# 14. Végleges törlés szabálya A karantén tartalmát ne töröld automatikusan. A végleges törlés csak külön, egyértelmű emberi utasításra történhet, miután: \* a build sikeres; \* a tesztek sikeresek; \* a projekt elindul; \* a fő funkciók működnek; \* a `CLEANUP\_REPORT.md` elkészült; \* a karantén manifest érvényes; \* a projekt tulajdonosa átnézte a jelentést. A projekt tisztításának befejezése nem jelent engedélyt a karantén végleges törlésére. \--- \# 15. Végrehajtási sorrend A munkát pontosan ebben a sorrendben végezd: 1\. Projekt feltérképezése. 2\. Függőségek és fájlhivatkozások elemzése. 3\. `CLEANUP\_PLAN.md` elkészítése. 4\. Biztonsági és logikai ellenőrzés. 5\. Karantén létrehozása a projekten kívül. 6\. Felesleges fájlok karanténba mozgatása. 7\. Függőségek és konfigurációk tisztítása. 8\. `.gitignore` frissítése. 9\. Tiszta függőségtelepítés. 10\. Build, teszt, lint és runtime ellenőrzés. 11\. Szükséges fájlok visszaállítása. 12\. Ellenőrzések megismétlése. 13\. Méret és fájlszám összehasonlítása. 14\. `CLEANUP\_REPORT.md` elkészítése. 15\. Végső minősítés megadása. A projekt működőképessége mindig fontosabb, mint a kisebb fájlméret.