Promptų biblioteka

Lietuviški promptai programoms kurti su AI

Pasirenki programą, nukopijuoji promptą į savo AI programavimo įrankį ir pradedi kurti savą jos versiją. Prie kiekvieno projekto surašiau, ko reikės prieš pradedant ir ko ta versija neturės.

Kas yra kiekviename projekte

Visi projektai sudėti ta pačia tvarka, todėl žinai, ko tikėtis, dar neatidaręs.

Nemokami pavyzdžiai

Šie projektai atviri visiems. Pagal juos matysi, kaip atrodo likę.

iLovePDF Premium

PDF failus junk, skaidyk, suspausk, konvertuok ir anotuok vietoje, išsaugok originalus, generuok audituojamus rezultatus ir laikyk failus vartotojui priklausančioje saugykloje, neįkeldamas jų tiekėjui.

Pasiruošk

Pagrindinis promptas

Tuščioje saugykloje sukurk asmeninį ILovePDF Premium pakaitalą.
Naudok Next.js 15, TypeScript, Python 3.12, FastAPI, pikepdf, LibreOffice headless ir PostgreSQL; nesiūlyk kitų technologijų rinkinių.
Pagrindinė darbo eiga: PDF failus junk, skaidyk, suspausk, konvertuok ir anotuok vietoje, išsaugok originalus, generuok audituojamus rezultatus ir laikyk failus vartotojui priklausančioje saugykloje, neįkeldamas jų tiekėjui.
Pirmasis paleidimas turi veikti vietoje viena dokumentuota komanda.
Visus vartotojo duomenis pagal numatytuosius nustatymus laikyk vietoje ir pasirūpink paprastu eksportu.
Slaptus raktus laikyk .env faile, pridėk .env.example ir niekada neįtrauk prisijungimo duomenų į saugyklą.
Kiekvieną originalą laikyk nekeičiamą, o kiekvienos operacijos rezultatą rašyk į versijuojamą išvesties failą.
Palaikyk sujungimą, skaidymą, puslapių tvarkos keitimą, pasukimą, suspaudimą, vandenženklius, duomenų užtušavimą, OCR ir Office dokumentų konvertavimą į PDF.
Atvaizduok puslapių peržiūras ir įspėk, kai gali būti pakeisti šriftai, formos, parašai ar šifravimas.
Parašų režimu išdėstyk laukus, pakviesk pasirašančiuosius, užfiksuok sutikimą ir užantspauduok galutinio PDF maišos reikšmę (hash).
Tvarkyk įvykių žurnalą, į kurį įrašai tik pridedami, su laiko žymomis, dokumentų maišos reikšmėmis ir pristatymo rezultatais.
Pridėk failų galiojimo pabaigą, atsisiuntimą, trynimą, atsargines kopijas ir gerai matomą įspėjimą, kad įrankis skirtas tik mažos rizikos atvejams.
Aiškiai parodyk tuščios, įkėlimo ir sėkmės būsenas bei klaidas, po kurių galima tęsti darbą.
Pridėk įvesties tikrinimą, saugius failų vardus ir sklandų nepasiekiamų API apdorojimą.
Parašyk tikslinius testus pagrindinei transformacijai ir vieną ištisinį (end-to-end) sėkmingo scenarijaus testą.
Sukurk README su diegimo instrukcija, architektūra, leidimais, duomenų vieta ir atsarginio kopijavimo žingsniais.
Nepridėk paskyrų, atsiskaitymo, telemetrijos, analitikos ar išorėje talpinamos valdymo sistemos.
Sąmoningai atsisakyk kvalifikuotų ar reglamentuojamų elektroninių parašų.
Sąmoningai atsisakyk valstybinio tapatybės tikrinimo.
Sąmoningai atsisakyk visaverčio Acrobat lygio redagavimo ir įmonėms skirtos dokumentų valdysenos.
Pabaigoje paleisk testus ir išvardyk tikslias panaudotas komandas.

Žingsniai

Šis gidas tinka bet kuriam AI programavimo įrankiui: Cursor, Claude Code, Codex ar kitam. Kur parašyta „parašyk AI“, rašyk savo įrankio pokalbio lange. Mygtukai įrankiuose skiriasi, todėl visko, kas priklauso nuo įrankio, prašai paties AI.

Trys taisyklės visam darbui:

1. Paruošk aplanką, programas ir bandomuosius failus

Susikurk tuščią aplanką, pavyzdžiui pdf-irankis, ir atidaryk jį savo AI įrankyje. Kompiuteryje reikės kelių programų. Jas įdiegs AI arba ves tave po vieną žingsnį.

Į atskirą aplanką susirink bandomuosius failus: du ar tris kelių puslapių PDF, vieną skenuotą puslapį ir vieną Word dokumentą. Imk kopijas ir tik tokius dokumentus, kuriuose nėra nieko slapto.

2. Pirma paprašyk plano, ne kodo

Įklijuok visą pagrindinį promptą, nieko netrumpindamas, ir jo gale prirašyk šį tekstą su savo duomenimis:

Mano duomenys: - Kompiuteris: [Windows, macOS arba Linux] - Dažniausi darbai: [pavyzdžiui, sujungti skenuotus lapus ir suspausti failą prieš siunčiant] - Failų vieta: [aplankas mano kompiuteryje, kuriame laikyti originalus ir rezultatus] - Parašai: [kol kas bandysiu tik pats / reikės, kad pasirašytų kiti žmonės] Kol kas nieko nekurk. Pirma: 1. Trumpai aprašyk, ką sukursi ir iš kokių dalių. 2. Parašyk, kokias programas reikės įdiegti mano kompiuteryje ir kokia viena komanda viskas pasileis. 3. Parašyk, kokie kintamieji bus faile .env ir kam kiekvienas reikalingas. 4. Paaiškink, kaip kvietimas pasieks pasirašantį žmogų ir ko reikia, kad jis atidarytų nuorodą savo įrenginyje. 5. Parašyk, kuo atliksi OCR ir ar jis atpažins lietuviškas raides. 6. Paklausk manęs to, ko trūksta, kad nereikėtų spėlioti. Kurti pradėk tik tada, kai parašysiu „pradėk“.

Perskaityk planą. Jame turi būti sąsaja naršyklėje ir devynios operacijos: sujungimas, skaidymas, puslapių tvarkos keitimas, pasukimas, suspaudimas, vandenženkliai, duomenų užtušavimas, OCR ir Office dokumentų konvertavimas į PDF. OCR yra teksto atpažinimas skenuotame puslapyje: po jo tekstą galima pažymėti ir rasti paieška. Dar plane turi rasti nekeičiamus originalus, versijuojamus rezultatus (kiekviena operacija sukuria naują failą ir senų neperrašo), parašų režimą, įvykių žurnalą, failų galiojimo pabaigą, testus ir README failą su diegimo instrukcija. Jei AI siūlo kitas technologijas, vartotojų paskyras ar analitiką, pasakyk tai dabar: promptas to neleidžia. Planą pataisyti greičiau nei kodą.

3. Leisk kurti

Atsakyk į AI klausimus ir parašyk „pradėk“. Jei įrankis prašo leidimo kurti failus ar vykdyti komandas, leisk: visa tai vyksta tavo aplanke. Pabaigoje AI turi paleisti testus, tai yra automatines patikras, ar pagrindinės operacijos veikia.

4. Paprašyk paaiškinti, kas sukurta

Išvardyk pagrindinius sukurtus aplankus ir failus ir vienu sakiniu paaiškink, ką kiekvienas daro. Rašyk paprastai, žmogui, kuris nėra programuotojas. Atskirai parašyk, kur mano diske laikomi originalai, operacijų rezultatai, duomenų bazė ir įvykių žurnalas. Parašyk ir tai, kurių failų geriau neliesti.

Šis sąrašas pravers vėliau: žinosi, kur laikomi tavo dokumentai ir ką kopijuoti darant atsarginę kopiją.

5. Paleisk projektą savo kompiuteryje

Paleisk projektą mano kompiuteryje ta viena komanda, kurią aprašei README faile, ir parašyk adresą, kurį atidaryti naršyklėje. Jei prieš tai reikia ką nors įdiegti, padaryk tai pats arba vesk mane po vieną žingsnį. Jei faile .env reikia reikšmių, kurias turiu sugalvoti pats, parašyk, kurios tai eilutės. Pačių reikšmių manęs neklausk. Parašyk ir tai, kaip projektą sustabdyti bei paleisti iš naujo.

Adresas prasidės http://localhost. Tai tavo kompiuteris: įkelti failai iš jo niekur neiškeliauja.

6. Patikrink aštuonis dalykus

  1. Atidaryk įrankį, kol jame dar nėra failų. Turi matyti aiškų pranešimą, kad failų dar nėra, ir gerai matomą įspėjimą, kad įrankis skirtas tik mažos rizikos atvejams.
  2. Įkelk du PDF failus. Turi matyti jų puslapių peržiūras. Sujunk juos ir atsisiųsk rezultatą: jo puslapių skaičius turi būti lygus abiejų failų sumai.
  3. Vieną failą pirma pasuk, tada suspausk. Kiekvienas veiksmas turi sukurti naują rezultato versiją, o originalas ir ankstesnės versijos turi likti nepakitę.
  4. Konvertuok Word dokumentą į PDF ir palygink su originalu. Jei šriftai galėjo pasikeisti, įrankis turi apie tai įspėti.
  5. Paleisk OCR skenuotam puslapiui. Atsisiųstame faile tekstą turi pavykti pažymėti pele.
  6. Užtušuok vieną žodį, atsisiųsk rezultatą ir atsidaryk jį. Ieškok to žodžio paieška: jo neturi rasti.
  7. Atsidaryk įvykių žurnalą. Prie kiekvieno tavo veiksmo turi būti laiko žyma ir dokumento maišos reikšmė, o mygtukų įrašui taisyti ar trinti neturi būti. Maišos reikšmė (hash) yra trumpas kodas, apskaičiuotas iš failo turinio: pakeitus faile bent vieną ženklą, kodas būna kitoks.
  8. Parašų režimu uždėk dokumente parašo lauką ir pakviesk pasirašyti save. Atidaryk pasirašančiajam skirtą nuorodą, sutik ir pasirašyk. Žurnale turi atsirasti sutikimas ir galutinio PDF maišos reikšmė.

Jei kuris nors punktas nepavyko, toliau neik. Atsiversk skyrių „Jei nepavyko“.

7. Išsaugok veikiančią versiją

Kai visi aštuoni punktai veikia, pasidaryk atsarginį tašką, į kurį galėsi grįžti, jei vėlesnis pakeitimas ką nors sugadins.

Dabar viskas veikia. Išsaugok šią versiją su git ir pavadink ją „veikianti pirma versija“. Jei git dar neįdiegtas ar neparuoštas, paruošk jį. Patikrink, kad failas .env, įkelti originalai, operacijų rezultatai ir duomenų bazės duomenys nebūtų saugomi kartu su kodu. Tada parašyk, kokiais žodžiais turėčiau paprašyti, kad grąžintum projektą į šią versiją.

Git yra programa, kuri įsimena projekto būsenas. Jos mokėti nereikia: išsaugoti ir grąžinti prašai AI.

8. Atlik pirmą tikrą darbą pats

Dabar dirbk be AI. Pasirink darbą, kurį iki šiol atlikdavai internetiniame įrankyje, pavyzdžiui kelis skenuotus lapus sujungti į vieną failą ir suspausti prieš siunčiant el. paštu. Atsisiųsk rezultatą ir peržiūrėk kiekvieną puslapį. Palygink failo dydį prieš suspaudimą ir po jo, tada pažiūrėk, ar smulkus tekstas liko įskaitomas.

9. Išvalyk bandymus

Pačiame įrankyje ištrink bandomuosius failus iš 6 žingsnio. Tada atsidaryk įvykių žurnalą: failų nebėra, bet įrašai apie juos ir apie patį trynimą turi likti. Galiausiai paklausk AI: „Kurioje įrankio vietoje nustatoma failų galiojimo pabaiga ir kas nutinka failui jai atėjus?“ Nustatyk ją pats ir dar kartą paprašyk išsaugoti versiją.

Tobulink

Kai pirma versija veikia ir yra išsaugota, tobulink ją po vieną pakeitimą. Gera užklausa turi penkias dalis. Kuo tiksliau jas užpildai, tuo mažiau AI tenka spėlioti.

Geros užklausos anatomija

  1. Kontekstas. Kas jau veikia ir apie kurią projekto vietą kalbi.
  2. Tikslas. Vienas pakeitimas ir kam jo reikia.
  3. Ribos. Ko AI neturi liesti.
  4. Rezultatas. Ką matysi ekrane, kai bus padaryta.
  5. Patikra. Kaip pats įsitikinsi, kad veikia.

Šabloną nusikopijuok ir pildyk kaskart, kai nori ko nors naujo:

Kontekstas: [kas jau veikia ir kurią vietą noriu keisti] Tikslas: [vienas pakeitimas ir kam jo reikia] Ribos: nekeisk [kas turi likti kaip buvę]. Nepridėk nieko, ko neprašiau. Rezultatas: [ką turiu matyti, kai bus padaryta] Patikra: pabaigoje parašyk, kokius failus pakeitei ir kaip man pačiam patikrinti, kad veikia. Jei kas nors neaišku, pirma paklausk.

Paruoštos užklausos

Visos jos parašytos pagal tą pačią anatomiją. Laužtiniuose skliaustuose įrašyk savo duomenis.

Suspaudimo lygiai

Kontekstas: suspaudimas veikia, bet negaliu pasirinkti jo stiprumo ir nematau, kiek failas sumažėjo. Tikslas: noriu rinktis iš trijų lygių: silpno, vidutinio ir stipraus. Stipraus reikia tada, kai failas netelpa į el. laišką. Ribos: originalo nekeisk. Kiekvienas suspaudimas, kaip ir dabar, rašomas į naują rezultato versiją. Kitų operacijų neliesk. Rezultatas: prieš suspausdamas pasirenku lygį, o po to matau failo dydį prieš suspaudimą ir po jo. Patikra: parašyk, kaip tą patį failą suspausti visais trimis lygiais ir palyginti rezultatus.

Skaidymas pagal puslapių intervalus

Kontekstas: skaidymas veikia, bet man reikia tiksliai nurodyti, kurie puslapiai patenka į kurią dalį. Tikslas: noriu įrašyti kelis intervalus, pavyzdžiui 1–3 ir 4–10, ir kiekvienai daliai duoti savo pavadinimą. Ribos: originalo nekeisk. Failų vardai turi likti saugūs, kaip reikalauja pirmoji užklausa. Sujungimo neliesk. Rezultatas: gaunu po atskirą PDF kiekvienam intervalui, o suklydęs matau aiškų pranešimą, pavyzdžiui kai puslapio numeris didesnis už puslapių skaičių. Patikra: parašyk, kaip išbandyti su 10 puslapių failu ir ką turiu pamatyti įvedęs 8–12.

Vandenženklio peržiūra

Kontekstas: vandenženklis uždedamas iš karto, todėl jo vietą ir ryškumą pamatau tik atsisiuntęs failą. Tikslas: noriu prieš taikant pasirinkti tekstą, vietą puslapyje ir permatomumą ir matyti peržiūrą. Ribos: kol nepatvirtinu, naujos rezultato versijos nekurk ir žurnalo nepildyk. Kitų operacijų neliesk. Rezultatas: pirmo puslapio peržiūroje matau vandenženklį tokį, koks jis bus galutiniame faile. Patikra: parašyk, kaip palyginti peržiūrą su atsisiųstu failu.

Puslapių numeriai

Kontekstas: sujungus kelis failus rezultate nelieka bendros puslapių numeracijos. Tikslas: pridėk operaciją, kuri kiekvieno puslapio apačioje įrašo jo numerį. Ribos: naudok tas pačias technologijas. Originalas lieka nepakeistas, rezultatas rašomas į naują versiją, o veiksmas įrašomas į įvykių žurnalą kaip ir kitos operacijos. Rezultatas: galiu pasirinkti, nuo kurio puslapio pradėti numeruoti, o numeris neuždengia puslapio teksto. Patikra: parašyk testą šiai operacijai, paleisk visus testus ir parodyk rezultatą.

Žurnalo paieška ir eksportas

Kontekstas: įvykių žurnalas rodo visus įrašus vienu ilgu sąrašu. Tikslas: noriu matyti vieno pasirinkto dokumento įrašus ir atsisiųsti juos kaip CSV failą, kurį atidarau skaičiuoklėje. Ribos: žurnalas turi likti toks, į kurį įrašai tik pridedami. Esamų įrašų nekeisk, nerikiuok iš naujo ir netrink. Rezultatas: žurnale yra paieška pagal dokumento pavadinimą ir eksporto mygtukas, o CSV faile yra laiko žymos ir maišos reikšmės. Patikra: parašyk, kaip įsitikinti, kad įrašų skaičius ekrane ir CSV faile sutampa.

Kiek failui liko galioti

Kontekstas: failai turi galiojimo pabaigą, bet sąraše nematau, kuris kada baigs galioti. Tikslas: noriu prie kiekvieno failo matyti, kiek dienų jam liko, ir galėti galiojimą pratęsti. Ribos: failų be mano veiksmo nepratęsk. Pratęsimas įrašomas į įvykių žurnalą. Trynimo ir atsisiuntimo nekeisk. Rezultatas: failai, kuriems liko mažiau nei trys dienos, sąraše išskirti, o prie jų yra pratęsimo mygtukas. Patikra: parašyk, kaip tai išbandyti nelaukiant kelių dienų.

Po kiekvieno pakeitimo

Prieš siųsdamas suspaustą ar konvertuotą failą kitam žmogui, atsidaryk jį ir peržiūrėk. Po stipraus suspaudimo pirmiausia gali nukentėti nuotraukos ir smulkus tekstas, o konvertuojant gali pasislinkti lentelės.

Jei nepavyko

Kad kas nors nepavyksta iš pirmo karto, yra įprasta. Dažniausiai AI trūksta ne gebėjimų, o informacijos: jis nemato tavo ekrano ir nežino, kas tiksliai nutiko. Kuo tiksliau parodai, tuo greičiau pataiso.

Pirmoji pagalba: universali užklausa

Ji tinka beveik kiekvienai bėdai. Užpildyk laužtinius skliaustus ir išsiųsk tame pačiame pokalbyje.

Kažkas neveikia. Padėk surasti priežastį. Ką dariau: [veiksmai po vieną, pavyzdžiui „įkėliau du PDF failus ir paspaudžiau sujungti“] Ko tikėjausi: [kas turėjo nutikti] Kas nutiko iš tikrųjų: [ką matau ekrane] Klaidos tekstas: [įklijuok visą tekstą, nieko netrumpindamas] Kol kas nieko nekeisk. Pirma paaiškink paprastai, kokia priežastis, ir kaip ją patikrinsi. Tada pataisyk tik ją, kitų projekto vietų neliesk. Pabaigoje parašyk, ką pakeitei ir kaip man patikrinti, kad veikia.

Kodėl ji veikia:

Jei klaidos teksto nematai, paprašyk: „Parašyk, kur rasti klaidos tekstą: naršyklėje ar lange, kuriame paleistas projektas.“ Jei įrankis leidžia, pridėk ir ekrano nuotrauką. Paties dokumento turinio į pokalbį neklijuok: AI užtenka failo tipo, dydžio ir puslapių skaičiaus.

Projektas nepasileidžia arba adresas neatsidaro

Šis projektas turi kelias dalis, ir pasileisti turi visos: sąsaja, PDF apdorojimo dalis ir duomenų bazė. Dažniausios priežastys: neįdiegta arba neįjungta reikalinga programa, nepasileidusi duomenų bazė arba adresas, užimtas kitos programos.

Projektas nepasileidžia arba adresas naršyklėje neatsidaro. Štai ką matau paleidimo lange: [įklijuok visą tekstą] Patikrink po vieną: ar įdiegta ir įjungta viskas, ko reikia, ar pasileido PostgreSQL duomenų bazė, ar veikia ir sąsaja, ir PDF apdorojimo dalis, ar adresas neužimtas kitos programos. Parašyk, kuri dalis nepasileido ir kodėl, pataisyk ir duok adresą, kurį atidaryti. Jei ką nors turiu padaryti pats, vesk mane po vieną žingsnį.

AI sukūrė tik sujungimą ir skaidymą, o kitų dalių nėra

Promptas ilgas, todėl AI kartais padaro paprasčiausias operacijas ir sustoja. Dažniausiai lieka nepadaryti parašų režimas, įvykių žurnalas, OCR ir failų galiojimo pabaiga.

Palygink tai, ką sukūrei, su mano pirmąja užklausa ir išvardyk, kurių reikalavimų dar nėra. Matau, kad trūksta: [pavyzdžiui, OCR, duomenų užtušavimo, parašų režimo, įvykių žurnalo, failų galiojimo pabaigos]. Pridėk tai, ko trūksta, po vieną dalį. To, kas jau veikia, nekeisk. Po kiekvienos dalies paleisk testus ir parašyk, kaip man ją patikrinti pačiam.

Word ar Excel dokumentas nevirsta PDF

Konvertavimą atlieka ne pats įrankis, o LibreOffice. Jei jis neįdiegtas arba įrankis jo neranda, konvertavimas baigiasi klaida arba laukimas nesibaigia.

Office dokumento konvertavimas į PDF neveikia. Ką dariau: įkėliau [failo tipas, pavyzdžiui .docx, ir dydis] ir paleidau konvertavimą. Ko tikėjausi: gausiu PDF failą. Kas nutiko: [matau klaidą / laukimas nesibaigia / gaunu tuščią failą] Patikrink, ar LibreOffice įdiegtas, ar įrankis jį randa ir ar jis paleidžiamas be lango. Parašyk, ką radai, ir pataisyk tik konvertavimą. Kitų operacijų neliesk. Jei konvertavimas užtrunka, sąsajoje turiu matyti, kad darbas vyksta, o nepavykus gauti aiškų pranešimą.

Po konvertavimo ar suspaudimo dokumentas atrodo kitaip

Jei kompiuteryje nėra dokumente naudoto šrifto, jis pakeičiamas panašiu, ir tekstas gali pasislinkti. Suspaudus gali nebeveikti pildomi formos laukai ar ankstesni parašai. Promptas reikalauja, kad įrankis apie tokius atvejus įspėtų.

Rezultatas atrodo kitaip nei originalas, o įspėjimo nemačiau. Ką dariau: [operacija] su failu, kuriame yra [nestandartiniai šriftai / pildoma forma / parašas / slaptažodis]. Kas pasikeitė: [pasislinko tekstas / dingo formos laukai / parašas nebegalioja] Patikrink, ar prieš operaciją tikrinama, kad gali būti pakeisti šriftai, formos, parašai ar šifravimas. Padaryk taip, kad įspėjimą matyčiau prieš patvirtindamas operaciją, o ne po jos. Originalo neliesk ir pačios operacijos veikimo nekeisk.

OCR neatpažįsta lietuviškų raidžių

Teksto atpažinimo programoms dažniausiai reikia atskiro kiekvienos kalbos paketo. Jei įdiegta tik anglų kalba, vietoj „ą“, „ė“ ar „š“ gauni kitas raides arba klaustukus. Rezultatas priklauso ir nuo skenuotos kopijos kokybės: kreivas ar blankus lapas atpažįstamas prasčiau.

OCR rezultate lietuviškos raidės neteisingos arba teksto visai nepavyksta pažymėti. Ką dariau: paleidau OCR skenuotam puslapiui, kurio tekstas lietuviškas. Ko tikėjausi: atsisiųstame faile galėsiu pažymėti tekstą ir rasti žodį paieška. Kas nutiko: [raidės sukeistos / tekstas nepažymimas / matau klaidą] Patikrink, kokios kalbos įdiegtos teksto atpažinimui ir kuri naudojama. Pridėk lietuvių kalbą. Leisk man prieš paleidžiant OCR pasirinkti dokumento kalbą. Kitų operacijų neliesk.

Užtušuotą tekstą vis dar galima rasti ar nukopijuoti

Tai pavojingiausia šio įrankio klaida. Ji reiškia, kad ant teksto tik uždėtas juodas stačiakampis, o pats tekstas faile liko. Tokio failo niekam nesiųsk.

Užtušavimas neveikia saugiai. Ką dariau: užtušavau žodį, atsisiunčiau rezultatą ir ieškojau to žodžio paieška. Ko tikėjausi: žodžio faile nebebus. Kas nutiko: paieška jį randa arba tekstą po stačiakampiu pavyksta nukopijuoti. Pataisyk taip, kad užtušuotas turinys būtų pašalintas iš rezultato failo, o ne tik uždengtas. Parašyk testą, kuris tikrina, kad užtušuoto teksto rezultate nebėra, ir paleisk jį. Originalas lieka nepakeistas. Sąsajoje parašyk, kad originale tekstas lieka.

Pakviestas žmogus negali atidaryti pasirašymo nuorodos

Kol įrankis veikia tik tavo kompiuteryje, nuoroda su localhost atsidaro tik tau. Kito žmogaus įrenginyje ji veda į jo paties kompiuterį, kuriame tavo įrankio nėra. Kad pasirašytų kiti, pasirašymo puslapis turi būti pasiekiamas viešu adresu su HTTPS. Apie tai rašoma skyriuje „Paleisk“.

Pakviestas žmogus negali atidaryti pasirašymo nuorodos. Nuoroda prasideda taip: [pirmoji adreso dalis, be ilgo kodo gale] Jis mato: [puslapis nerastas / ryšio klaida / nuoroda nebegalioja] Paaiškink paprastai, kodėl nuoroda jam neatsidaro ir ar priežastis yra adresas, ar pati nuoroda. Kol kas nieko nekeisk. Parašyk, kokius turiu pasirinkimus ir kuris paprasčiausias.

AI taiso vieną vietą ir sugadina kitą

Po dviejų nepavykusių bandymų neprašyk trečio karto tuo pačiu būdu. Sustabdyk ir pakeisk eigą.

Sustok. Du bandymai nepadėjo, todėl daugiau nespėliok. 1. Išvardyk tris labiausiai tikėtinas priežastis ir kiekvienai parašyk, kaip ją patikrinti nekeičiant kodo. 2. Patikrink jas po vieną ir parašyk, ką radai. 3. Taisyk tik tada, kai priežastis patvirtinta. Jei per šį pokalbį sugadinai tai, kas veikė anksčiau, pirma grąžink projektą į paskutinę išsaugotą versiją.

Jei projektas visai susipainiojo, grįžk į atsarginį tašką: „Grąžink projektą į versiją „veikianti pirma versija“, paleisk testus ir patvirtink, kad įrankis vėl pasileidžia.“

Pokalbis ilgas ir AI ima painiotis

Labai ilgame pokalbyje AI gali pamiršti ankstesnius susitarimus. Tada pradėk naują pokalbį, bet pirma paprašyk santraukos.

Parašyk šio projekto santrauką naujam pokalbiui: kas sukurta, kokios dalys ką daro, kur laikomi failai, kas veikia, kas dar neveikia ir dėl ko susitarėme. Išsaugok ją faile PROJEKTAS.md projekto aplanke.

Naują pokalbį pradėk taip:

Perskaityk failus PROJEKTAS.md ir README, tada peržiūrėk projekto failus. Savais žodžiais trumpai papasakok, kaip projektas veikia, kad matyčiau, jog supratai. Kol nepatvirtinsiu, nieko nekeisk.

Matai klaidą, kurios nesupranti

Štai klaida: [įklijuok visą tekstą] Paaiškink paprastai, žmogui, kuris nėra programuotojas: ką ji reiškia, kodėl atsirado ir ar ji pavojinga mano failams. Tada pasiūlyk pataisymą ir palauk mano patvirtinimo.

Paleisk

Šio įrankio skelbti internete nereikia: jis skirtas tau ir veikia tavo kompiuteryje. Jame nėra paskyrų ir prisijungimo, todėl kiekvienas, kas atsidarytų jo adresą, matytų visus tavo failus. „Paleisti“ čia reiškia padaryti taip, kad juo būtų patogu naudotis kasdien, be AI įrankio ir be komandų. Viešo adreso reikia tik vienu atveju: kai nori, kad dokumentą pasirašytų kitas žmogus.

Ko reikės

1. Prieš naudodamas kasdien paprašyk patikros

Į įrankį kelsi tikrus dokumentus, todėl pirma įsitikink, kad jie tikrai lieka pas tave.

Ruošiuosi šį įrankį naudoti kasdien su tikrais dokumentais. Prieš tai peržiūrėk jį ir parašyk, ką reikia sutvarkyti: 1. Ar sąsaja, PDF apdorojimo dalis ir duomenų bazė pasiekiamos tik iš mano kompiuterio, o ne iš kitų įrenginių tame pačiame tinkle? 2. Ar failai ir jų turinys niekur nesiunčiami už mano kompiuterio ribų? 3. Ar į įvykių žurnalą ir paleidimo lango pranešimus nepatenka dokumentų tekstas? 4. Ar failas .env, originalai, rezultatai ir duomenų bazės duomenys nesaugomi kartu su kodu? 5. Ar įspėjimas, kad įrankis skirtas tik mažos rizikos atvejams, matomas kiekviename darbo lange? 6. Ar visi testai praeina? Kiekvienam punktui parašyk „gerai“ arba ką reikia pataisyti. Taisyk tik gavęs mano patvirtinimą.

2. Pasidaryk paleidimą vienu veiksmu

Iki šiol įrankį paleisdavo AI. README faile aprašyta viena paleidimo komanda. Paprašyk ją paversti veiksmu, kuriam komandų rašyti nereikia.

Noriu šį įrankį paleisti pats, be AI įrankio ir nerašydamas komandų. Padaryk vieną failą arba piktogramą, kurią galiu atidaryti dukart spustelėjęs: ji paleidžia visas įrankio dalis ir atidaro sąsają naršyklėje. Parašyk, kur tą failą laikyti, kaip įrankį sustabdyti ir kaip suprasti, ar jis šiuo metu veikia. Vesk mane po vieną žingsnį ir palauk, kol parašysiu, kas nutiko.

Uždaryk AI įrankį ir išbandyk: atidaryk failą, įkelk dokumentą, atlik vieną operaciją ir atsisiųsk rezultatą. Jei įrankio reikia kasdien, gali paprašyti AI padaryti, kad jis pasileistų įjungus kompiuterį. Jei naudoji jį retai, to nereikia.

3. Sužinok, kur laikomi failai, ir pasidaryk kopiją

Originalai, rezultatai ir žurnalas laikomi tik tavo kompiuteryje. Jei diskas suges, jų nebeliks. Atsarginio kopijavimo žingsniai turi būti README faile. Paprašyk juos perrašyti taip, kad suprastum pats.

Parašyk trumpą atmintinę apie šio įrankio priežiūrą, žmogui, kuris nėra programuotojas: 1. Kur mano kompiuteryje laikomi originalai, operacijų rezultatai, duomenų bazė ir įvykių žurnalas. 2. Kaip pasidaryti atsarginę kopiją ir kaip iš jos viską atkurti. 3. Kaip eksportuoti visus savo duomenis vienu veiksmu. 4. Kaip atnaujinti įrankį po pakeitimų neprarandant failų ir žurnalo. 5. Kaip įrankį perkelti į kitą kompiuterį: ką nusikopijuoti ir ką ten įdiegti iš naujo. Išsaugok atmintinę faile PRIEZIURA.md projekto aplanke.

Kopiją laikyk kitame diske nei pats įrankis. Vieną kartą pabandyk iš jos atkurti bent vieną failą. Atmink ir failų galiojimo pabaigą: tai, ką nori turėti ilgai, atsisiųsk ir laikyk savo aplankuose.

4. Jei dokumentą turi pasirašyti kitas žmogus

Tam pasirašymo puslapis turi būti pasiekiamas viešu adresu su HTTPS, tai yra saugiu ryšiu, kai adresas prasideda https://. Promptas nenurodo, kaip tai padaryti, todėl paprašyk AI pasiūlymo. Serveris ir domenas gali kainuoti, todėl pradėk nuo mažiausio plano.

Noriu, kad pasirašymo nuorodą galėtų atidaryti kitas žmogus savo įrenginyje. Pasiūlyk paprasčiausią būdą duoti pasirašymo puslapiui viešą HTTPS adresą ir paaiškink, kodėl siūlai būtent jį ir ar jis kainuoja. Būtina sąlyga: viešai pasiekiamas tik pasirašymo puslapis su jo nuoroda. Failų sąrašas, operacijos, žurnalas ir visa kita lieka pasiekiama tik iš mano kompiuterio. Parašyk, kaip tą sąlygą patikrinsi, ir vesk mane po vieną žingsnį. Slaptažodžių manęs neklausk: į .env juos įrašysiu pats.

Prieš siųsdamas pirmą tikrą kvietimą, atsidaryk pasirašymo nuorodą telefone per mobilųjį internetą. Tada tame pačiame telefone pabandyk atidaryti įrankio pradžios puslapį: jis atsidaryti neturi. Šis parašas nėra kvalifikuotas elektroninis parašas ir pasirašančiojo tapatybės netikrina. Naudok jį tik mažos rizikos susitarimams, o už pasirašančių žmonių duomenis atsakai tu pats.

Kaip žinau, kad pavyko

  1. AI įrankis uždarytas, o PDF įrankį paleidi vienu veiksmu.
  2. Įkeltas dokumentas apdorojamas, rezultatas atsisiunčiamas, o veiksmas matomas įvykių žurnale.
  3. Perkrovus kompiuterį ankstesni failai ir žurnalo įrašai lieka vietoje.
  4. Iš kito įrenginio tame pačiame tinkle įrankio atidaryti nepavyksta.
  5. Turi atsarginę kopiją kitame diske, o faile PRIEZIURA.md parašyta, kaip ją atkurti.

Ribos

Linktree Pro

Sukurk statinį nuorodų puslapį profilio aprašui: avataras, trumpas prisistatymas ir nuorodų mygtukai iš vieno JSON failo. Paspaudimus skaičiuoji pats, be trečiųjų šalių, ir matai juos atskirame statistikos puslapyje.

Pagrindinis promptas

Sukurk man nuorodų puslapį profilio aprašui (link-in-bio), kuris pakeistų Linktree. Reikalavimai:

- Vienas statinis puslapis: avataras, vardas, trumpas aprašas ir nuorodų mygtukų sąrašas, aprašytas
  viename links.json faile (title, url, neprivalomas emoji). JSON redagavimas ir yra CMS.
- Švarus, pirmiausia mobiliesiems pritaikytas dizainas, tamsusis režimas per prefers-color-scheme,
  subtilios užvedimo (hover) būsenos. Karkaso nereikia · užtenka vieno HTML failo su įterptu CSS,
  arba Astro, jei būtinai nori.
- Pridėk paspaudimų sekimą be jokių trečiųjų šalių: kiekviena nuoroda eina per /go/:slug
  peradresavimą, kuris prideda eilutę į vietinį clicks.log failą (arba SQLite eilutę) ir tada grąžina 302.
  Pridėk /stats puslapį (basic-auth iš .env failo), rodantį kiekvienos nuorodos paspaudimų skaičių.
- Tinkamos OG žymos + sugeneruotas OG paveikslėlis, kad dalijantis puslapio peržiūra atrodytų gerai.
- Pridėk diegimo instrukciją paprastam VPS su Caddy arba nginx.

Žingsniai

Šis gidas tinka bet kuriam AI programavimo įrankiui: Cursor, Claude Code, Codex ar kitam. Kur parašyta „parašyk AI“, rašyk savo įrankio pokalbio lange. Mygtukai įrankiuose skiriasi, todėl visko, kas priklauso nuo įrankio, prašai paties AI.

Trys taisyklės visam darbui:

1. Paruošk aplanką ir savo duomenis

Susikurk tuščią aplanką, pavyzdžiui nuorodos, ir atidaryk jį savo AI įrankyje. Tada susirašyk, ką puslapis rodys: vardą arba prekės ženklą, vieno sakinio prisistatymą ir 3–5 nuorodas su pavadinimais. Turėk po ranka ir kvadratinę savo nuotrauką.

2. Pirma paprašyk plano, ne kodo

Įklijuok visą pagrindinį promptą, nieko netrumpindamas, ir jo gale prirašyk šį tekstą su savo duomenimis:

Mano duomenys: - Vardas: [tavo vardas arba prekės ženklas] - Prisistatymas: [vienas sakinys] - Nuorodos: [pavadinimas ir adresas, po vieną eilutėje] Kol kas nieko nekurk. Pirma: 1. Trumpai aprašyk, ką sukursi ir kokius failus. 2. Parašyk, kokias technologijas rinksiesi ir kodėl. Rinkis paprasčiausią variantą. 3. Paklausk manęs to, ko trūksta, kad nereikėtų spėlioti. Kurti pradėk tik tada, kai parašysiu „pradėk“.

Perskaityk planą. Jame turi būti keturios dalys: pats puslapis, failas links.json su nuorodomis, nedidelė serverio dalis paspaudimams skaičiuoti ir statistikos puslapis su slaptažodžiu. Jei kurios nors trūksta arba planas atrodo sudėtingesnis, nei prašei, pasakyk tai dabar. Planą pataisyti greičiau nei kodą.

3. Leisk kurti

Atsakyk į AI klausimus ir parašyk „pradėk“. Jei įrankis prašo leidimo kurti failus ar vykdyti komandas, leisk: visa tai vyksta tavo aplanke.

4. Paprašyk paaiškinti, kas sukurta

Išvardyk visus sukurtus failus ir vienu sakiniu paaiškink, ką kiekvienas daro. Rašyk paprastai, žmogui, kuris nėra programuotojas. Atskirai parašyk, kuriuos failus galiu drąsiai keisti pats, o kurių geriau neliesti.

Šis sąrašas pravers vėliau: žinosi, kur keisti nuorodas ir kur ieškoti statistikos slaptažodžio.

5. Paleisk projektą savo kompiuteryje

Paleisk projektą mano kompiuteryje ir parašyk adresą, kurį atidaryti naršyklėje. Jei prieš tai reikia ką nors įdiegti, padaryk tai pats arba vesk mane po vieną žingsnį. Parašyk ir tai, kaip projektą sustabdyti bei paleisti iš naujo.

Adresas prasidės http://localhost. Tai tavo kompiuteris: kol puslapio nepaskelbsi, kiti jo nemato.

6. Patikrink šešis dalykus

  1. Puslapyje matai savo vardą, prisistatymą ir visas nuorodas.
  2. Susiaurink naršyklės langą iki telefono pločio. Mygtukai turi likti vienas po kitu, tekstas neturi išlįsti už krašto.
  3. Paspausk nuorodą. Ji turi nuvesti į reikiamą svetainę.
  4. Atsidaryk /stats. Puslapis turi paprašyti vardo ir slaptažodžio, o prisijungus parodyti ką tik padarytą paspaudimą.
  5. Įjunk kompiuteryje tamsųjį režimą. Puslapis turi patamsėti pats.
  6. Atsidaryk failą .env. Jame turi būti statistikos vardas ir slaptažodis, kuriuos sugalvojai tu, o ne pavyzdiniai.

Jei kuris nors punktas nepavyko, toliau neik. Atsiversk skyrių „Jei nepavyko“.

7. Išsaugok veikiančią versiją

Kai visi šeši punktai veikia, pasidaryk atsarginį tašką, į kurį galėsi grįžti, jei vėlesnis pakeitimas ką nors sugadins.

Dabar viskas veikia. Išsaugok šią versiją su git ir pavadink ją „veikianti pirma versija“. Jei git dar neįdiegtas ar neparuoštas, paruošk jį. Patikrink, kad failai .env ir clicks.log nebūtų saugomi kartu su kodu. Tada parašyk, kokiais žodžiais turėčiau paprašyti, kad grąžintum projektą į šią versiją.

Git yra programa, kuri įsimena projekto būsenas. Jos mokėti nereikia: išsaugoti ir grąžinti prašai AI.

8. Pakeisk nuorodą pats

Atsidaryk links.json, ranka pakeisk vienos nuorodos pavadinimą ir perkrauk puslapį. Taip įsitikinsi, kad nuorodas vėliau keisi pats, be AI. Keisk tik tekstą tarp kabučių, o kabutes, kablelius ir skliaustus palik.

9. Įdėk savo nuotrauką

Įkelk nuotrauką į projekto aplanką ir parašyk:

Į aplanką įkėliau nuotrauką [failo pavadinimas]. Naudok ją kaip avatarą. Sumažink ją tiek, kad puslapis krautųsi greitai, ir parodyk apskritą. Daugiau nieko nekeisk.

Patikrink puslapį ir dar kartą paprašyk išsaugoti versiją.

Tobulink

Kai pirma versija veikia ir yra išsaugota, tobulink ją po vieną pakeitimą. Gera užklausa turi penkias dalis. Kuo tiksliau jas užpildai, tuo mažiau AI tenka spėlioti.

Geros užklausos anatomija

  1. Kontekstas. Kas jau veikia ir apie kurią projekto vietą kalbi.
  2. Tikslas. Vienas pakeitimas ir kam jo reikia.
  3. Ribos. Ko AI neturi liesti.
  4. Rezultatas. Ką matysi ekrane, kai bus padaryta.
  5. Patikra. Kaip pats įsitikinsi, kad veikia.

Šabloną nusikopijuok ir pildyk kaskart, kai nori ko nors naujo:

Kontekstas: [kas jau veikia ir kurią vietą noriu keisti] Tikslas: [vienas pakeitimas ir kam jo reikia] Ribos: nekeisk [kas turi likti kaip buvę]. Nepridėk nieko, ko neprašiau. Rezultatas: [ką turiu matyti, kai bus padaryta] Patikra: pabaigoje parašyk, kokius failus pakeitei ir kaip man pačiam patikrinti, kad veikia. Jei kas nors neaišku, pirma paklausk.

Paruoštos užklausos

Visos jos parašytos pagal tą pačią anatomiją. Laužtiniuose skliaustuose įrašyk savo duomenis.

Savo spalvos ir šriftas

Kontekstas: nuorodų puslapis veikia, dabar jo spalvos ir šriftas numatytieji. Tikslas: pritaikyk išvaizdą prie mano prekės ženklo. Pagrindinė spalva [spalvos kodas], šriftas [pavadinimas]. Ribos: nekeisk nuorodų, paspaudimų skaičiavimo ir /stats puslapio. Tamsusis režimas turi likti. Rezultatas: mygtukai ir akcentai mano spalvos, tekstas lengvai įskaitomas ir šviesiame, ir tamsiame režime. Patikra: parašyk, kuriame faile spalvas ir šriftą galėsiu pakeisti pats.

Nuorodų grupės

Kontekstas: visos nuorodos rodomos vienu sąrašu iš failo links.json. Tikslas: noriu jas grupuoti su antraštėmis, pavyzdžiui „Kursai“ ir „Socialiniai tinklai“. Ribos: nuorodos be grupės turi veikti kaip iki šiol. Senų /go/ adresų nekeisk, kad statistika nenutrūktų. Rezultatas: faile links.json prie nuorodos galiu įrašyti grupę, o puslapyje virš jos nuorodų matau antraštę. Patikra: parodyk links.json pavyzdį su dviem grupėmis.

Laikinos nuorodos

Kontekstas: kartais dedu nuorodą į renginį, kuri po jo nebeaktuali. Tikslas: pridėk nuorodai neprivalomą galiojimo datą. Ribos: nuorodos be datos rodomos visada. Pasibaigusios nuorodos iš failo netrink. Rezultatas: pasibaigus datai nuoroda puslapyje neberodoma, o jos paspaudimai statistikoje lieka. Patikra: parašyk, kokiu formatu rašyti datą, ir kaip tai išbandyti nelaukiant rytojaus.

Statistika pagal dienas

Kontekstas: /stats rodo bendrą kiekvienos nuorodos paspaudimų skaičių. Tikslas: noriu matyti ir paspaudimus pagal dienas už paskutines 30 dienų. Ribos: nenaudok jokių išorinių paslaugų. Slaptažodžio apsauga turi likti. Rezultatas: po bendra lentele matau paprastą lentelę arba stulpelių diagramą pagal dienas. Patikra: parašyk, kaip pasidaryti kelis bandomuosius paspaudimus ir ką turėčiau pamatyti.

QR kodas

Kontekstas: puslapį rodysiu ir gyvai, renginiuose bei ant vizitinių. Tikslas: sugeneruok QR kodą, vedantį į mano puslapio adresą [adresas]. Ribos: QR kodas kuriamas mano projekte, be išorinių svetainių. Pagrindinio puslapio išvaizdos nekeisk. Rezultatas: atskirame adrese /qr matau QR kodą ir mygtuką jam atsisiųsti kaip PNG. Patikra: nuskenuosiu kodą telefonu. Parašyk, ką daryti, jei adresas vėliau pasikeis.

Paryškinta svarbiausia nuoroda

Kontekstas: visos nuorodos atrodo vienodai. Tikslas: noriu vieną nuorodą išskirti, kad ji būtų pirma ir ryškesnė už kitas. Ribos: išskirta gali būti tik viena nuoroda. Kitų išvaizdos nekeisk. Rezultatas: faile links.json pažymiu nuorodą kaip svarbiausią, ir puslapyje ji atsiduria viršuje kitos spalvos mygtuke. Patikra: parodyk, kaip pažymėti kitą nuorodą.

Po kiekvieno pakeitimo

Nuorodų tekstus rašyk kaip veiksmą. „Registruokis į seminarą“ pasako, kas nutiks paspaudus, o „Seminaras“ to nepasako.

Jei nepavyko

Kad kas nors nepavyksta iš pirmo karto, yra įprasta. Dažniausiai AI trūksta ne gebėjimų, o informacijos: jis nemato tavo ekrano ir nežino, kas tiksliai nutiko. Kuo tiksliau parodai, tuo greičiau pataiso.

Pirmoji pagalba: universali užklausa

Ji tinka beveik kiekvienai bėdai. Užpildyk laužtinius skliaustus ir išsiųsk tame pačiame pokalbyje.

Kažkas neveikia. Padėk surasti priežastį. Ką dariau: [veiksmai po vieną, pavyzdžiui „atidariau /stats ir įvedžiau slaptažodį“] Ko tikėjausi: [kas turėjo nutikti] Kas nutiko iš tikrųjų: [ką matau ekrane] Klaidos tekstas: [įklijuok visą tekstą, nieko netrumpindamas] Kol kas nieko nekeisk. Pirma paaiškink paprastai, kokia priežastis, ir kaip ją patikrinsi. Tada pataisyk tik ją, kitų projekto vietų neliesk. Pabaigoje parašyk, ką pakeitei ir kaip man patikrinti, kad veikia.

Kodėl ji veikia:

Jei klaidos teksto nematai, paprašyk: „Parašyk, kur rasti klaidos tekstą: naršyklėje ar lange, kuriame paleistas projektas.“ Jei įrankis leidžia, pridėk ir ekrano nuotrauką.

Projektas nepasileidžia arba adresas neatsidaro

Dažniausios priežastys: neįdiegta reikalinga programa, projektas sustabdytas arba adresas užimtas kitos programos.

Projektas nepasileidžia arba adresas naršyklėje neatsidaro. Štai ką matau paleidimo lange: [įklijuok visą tekstą] Patikrink po vieną: ar įdiegta viskas, ko reikia, ar projektas šiuo metu paleistas, ar adresas neužimtas kitos programos. Parašyk, ką radai, pataisyk ir duok adresą, kurį atidaryti.

AI sukūrė tik vieną HTML failą, be paspaudimų skaičiavimo

Taip nutinka, kai AI pasirenka paprasčiausią kelią ir praleidžia dalį reikalavimų.

Palygink tai, ką sukūrei, su mano pirmąja užklausa ir išvardyk, kurių reikalavimų dar nėra. Matau, kad trūksta peradresavimo per /go/:slug ir /stats puslapio su slaptažodžiu. Pridėk tai, ko trūksta, o veikiančio puslapio išvaizdos nekeisk. Pabaigoje parašyk, kaip patikrinti, kad paspaudimas užskaitytas.

Paspaudimai neskaičiuojami

Užvesk pelę ant nuorodos ir pažiūrėk adresą naršyklės apačioje. Jis turi prasidėti tavo puslapio adresu ir /go/. Jei veda tiesiai į galutinę svetainę, skaičiavimas apeinamas.

Paspaudimai neatsiranda /stats puslapyje. Ką dariau: paspaudžiau nuorodą [pavadinimas], tada atidariau /stats. Ko tikėjausi: skaičius padidės vienetu. Kas nutiko: [skaičius nepasikeitė / nuoroda veda tiesiai į svetainę / matau klaidą] Patikrink visą kelią: ar nuoroda eina per /go/, ar paspaudimas įrašomas, ar /stats skaito tą patį failą. Parašyk, kurioje vietoje kelias nutrūksta, ir pataisyk tik ją.

Statistika atsidaro be slaptažodžio arba slaptažodis netinka

Prisijungimo duomenys laikomi faile .env. Jei failo nėra arba jis tuščias, apsauga gali neveikti. Paties slaptažodžio į pokalbį nerašyk.

Puslapis /stats [atsidaro be slaptažodžio / nepriima mano slaptažodžio]. Patikrink, ar failas .env yra, ar kintamųjų pavadinimai sutampa su tais, kuriuos naudoja kodas, ir ar po .env pakeitimo projektą reikia paleisti iš naujo. Padaryk taip, kad be teisingo vardo ir slaptažodžio /stats neatsidarytų niekada, net kai .env tuščias. Slaptažodžio reikšmės atsakyme nerodyk.

Pakeitei links.json ir puslapis tuščias

Beveik visada kaltas vienas ženklas: ištrinta kabutė, trūkstamas kablelis tarp nuorodų arba nereikalingas kablelis po paskutinės.

Pakeičiau links.json ir puslapis neberodo nuorodų. Patikrink failą, parodyk tikslią eilutę su klaida ir pataisyk ją. Mano tekstų nekeisk. Tada padaryk taip, kad kitą kartą suklydus puslapis parodytų aiškų pranešimą su eilutės numeriu, o ne liktų tuščias.

Telefone puslapis atrodo blogai

Telefone puslapis atrodo blogai. Kas blogai: [tekstas išlenda už krašto / mygtukai per maži / reikia slinkti į šoną] Telefonas ir naršyklė: [modelis ir naršyklė] Pataisyk taip, kad 360 taškų pločio ekrane viskas tilptų be slinkimo į šoną, o mygtukus būtų patogu spausti pirštu. Kompiuterio vaizdo nekeisk.

Dalijantis nuoroda nerodomas paveikslėlis

Peržiūra veikia tik tada, kai puslapis jau viešas, o paveikslėlio adresas pilnas, su https:// ir domenu. Socialiniai tinklai seną peržiūrą kurį laiką prisimena, todėl pakeitimas matomas ne iš karto.

Dalijantis mano puslapio nuoroda [adresas] nerodomas paveikslėlis arba pavadinimas. Patikrink OG žymas: ar jos yra, ar paveikslėlio adresas pilnas ir atsidaro naršyklėje, ar paveikslėlis ne per didelis. Parašyk, ką radai, pataisyk ir pasakyk, kaip priversti socialinį tinklą peržiūrą atnaujinti.

AI taiso vieną vietą ir sugadina kitą

Po dviejų nepavykusių bandymų neprašyk trečio karto tuo pačiu būdu. Sustabdyk ir pakeisk eigą.

Sustok. Du bandymai nepadėjo, todėl daugiau nespėliok. 1. Išvardyk tris labiausiai tikėtinas priežastis ir kiekvienai parašyk, kaip ją patikrinti nekeičiant kodo. 2. Patikrink jas po vieną ir parašyk, ką radai. 3. Taisyk tik tada, kai priežastis patvirtinta. Jei per šį pokalbį sugadinai tai, kas veikė anksčiau, pirma grąžink projektą į paskutinę išsaugotą versiją.

Jei projektas visai susipainiojo, grįžk į atsarginį tašką: „Grąžink projektą į versiją „veikianti pirma versija“ ir patvirtink, kad puslapis vėl pasileidžia.“

Pokalbis ilgas ir AI ima painiotis

Labai ilgame pokalbyje AI gali pamiršti ankstesnius susitarimus. Tada pradėk naują pokalbį, bet pirma paprašyk santraukos.

Parašyk šio projekto santrauką naujam pokalbiui: kas sukurta, kokie failai ką daro, kas veikia, kas dar neveikia ir dėl ko susitarėme. Išsaugok ją faile PROJEKTAS.md projekto aplanke.

Naują pokalbį pradėk taip:

Perskaityk failą PROJEKTAS.md ir peržiūrėk projekto failus. Tada savais žodžiais trumpai papasakok, kaip projektas veikia, kad matyčiau, jog supratai. Kol nepatvirtinsiu, nieko nekeisk.

Matai klaidą, kurios nesupranti

Štai klaida: [įklijuok visą tekstą] Paaiškink paprastai, žmogui, kuris nėra programuotojas: ką ji reiškia, kodėl atsirado ir ar ji pavojinga. Tada pasiūlyk pataisymą ir palauk mano patvirtinimo.

Paleisk

Šis puslapis skaičiuoja paspaudimus, todėl jam reikia vietos, kur nuolat veikia maža programa. Paprasto talpinimo, skirto vien failams, neužtenka. Prompte prašoma instrukcijos nuomojamam serveriui (VPS) su Caddy arba nginx: tai programos, kurios tavo puslapį rodo lankytojams.

Ko reikės

1. Prieš skelbdamas paprašyk patikros

Ruošiuosi skelbti šį projektą viešai. Prieš tai peržiūrėk jį ir parašyk, ką reikia sutvarkyti: 1. Ar failų .env, clicks.log ir duomenų bazės neįmanoma atsidaryti per naršyklę? 2. Ar /stats tikrai neatsidaro be slaptažodžio? 3. Ar /go/ peradresuoja tik į nuorodas iš links.json, o ne į bet kokį adresą? 4. Ar kode neliko bandomųjų slaptažodžių ir adresų su localhost? Kiekvienam punktui parašyk „gerai“ arba ką reikia pataisyti. Taisyk tik gavęs mano patvirtinimą.

2. Diek po vieną žingsnį

Diegimas yra vieta, kur įrankiai ir serveriai skiriasi labiausiai, todėl neprašyk visko iš karto.

Noriu paskelbti šį projektą VPS serveryje su Caddy. Adresas bus [tavo adresas]. Niekada to nedariau, todėl vesk mane po vieną žingsnį. Kiekviename žingsnyje parašyk: ką darome ir kodėl, ką tiksliai įvesti ir ką turėčiau pamatyti, jei pavyko. Tada palauk, kol parašysiu, kas nutiko. Jei įklijuosiu klaidą, pirma paaiškink ją, tada tęsk.

Rinkis Caddy, jei AI leidžia pasirinkti: jis saugų ryšį (HTTPS) sutvarko pats.

3. Serveryje susikurk naują slaptažodį

Serverio faile .env įrašyk naują statistikos slaptažodį. Nenaudok to, kurį rašei bandydamas kompiuteryje, ir nesiųsk jo į pokalbį: įrašyk pats.

4. Patikrink jau viešą puslapį

  1. Atsidaryk savo adresą telefone, per mobilųjį internetą, ne per namų Wi-Fi.
  2. Adreso pradžioje turi būti https://, o naršyklė neturi rodyti įspėjimo.
  3. Paspausk vieną nuorodą ir patikrink, ar paspaudimas atsirado /stats.
  4. Pabandyk atidaryti /stats be slaptažodžio. Turi neįleisti.
  5. Nusiųsk adresą sau per susirašinėjimo programą ir pažiūrėk, ar rodoma peržiūra su paveikslėliu.

5. Pasirūpink, kad puslapis nedingtų

Padaryk taip, kad po serverio perkrovimo projektas pasileistų pats. Tada parašyk trumpą atmintinę: kaip pakeisti nuorodas serveryje, kaip atnaujinti projektą po pakeitimų ir kaip pasidaryti paspaudimų istorijos kopiją. Išsaugok atmintinę faile PRIEZIURA.md.

Paspaudimų istorija laikoma serveryje, faile clicks.log arba SQLite duomenų bazėje. Kartą per mėnesį pasidaryk jos kopiją.

6. Įdėk adresą į savo profilius

Įrašyk jį socialinių tinklų aprašuose ir el. laiško paraše. Po savaitės atsidaryk /stats: mažiausiai spaudžiamas nuorodas perkelk žemyn arba pervadink.

Paprastesnis kelias be serverio

Jei paspaudimų skaičiuoti nenori, serverio nereikia. Tada puslapis veiks bet kuriame nemokamame statinių svetainių talpinime.

Padaryk šio puslapio versiją be paspaudimų skaičiavimo: vienas HTML failas ir links.json, nuorodos veda tiesiai į svetaines. Tada pasiūlyk nemokamą talpinimą tokiam puslapiui ir vesk mane per paskelbimą po vieną žingsnį.

Ribos

Tally

Sukurk formos schemą ir redaktorių, atvaizduok viešas formas, saugok atsakymus, eksportuok CSV ir siųsk webhook bei el. pašto pranešimus.

Pasiruošk

Pagrindinis promptas

Sukurk man asmeninį formų kūrimo įrankį, kuris pakeistų Tally. Reikalavimai:

- Viena Node + Express + better-sqlite3 programa, puslapiai generuojami serveryje, įdiegta mano VPS
  už Caddy serverio. Jokio frontend karkaso.
- Administravimo UI adresu /admin, apsaugota vienu ADMIN_TOKEN iš .env failo, be vartotojų paskyrų:
  sukurti formą, pridėti laukus (tekstas, teksto sritis, el. paštas, išskleidžiamasis sąrašas, žymimasis langelis,
  failo įkėlimas), pažymėti privalomus, keisti tvarką.
- Kiekviena forma gauna viešą puslapį adresu /f/<slug>: vienas stulpelis, viena akcentinė spalva, tikrinimas
  kliento ir serverio pusėje, spąstų (honeypot) laukas ir užklausų dažnio riba pagal IP nuo šlamšto.
- Atsakymai saugomi SQLite; įkelti failai keliauja į uploads/<form-slug>/, riba 10 MB.
- Kiekvienai formai du neprivalomi pranešimai: kiekvieną atsakymą atsiųsk man el. paštu per SMTP, kurio prisijungimo
  duomenys .env faile, ir POST užklausa išsiųsk atsakymo JSON į webhook URL.
- Administratoriaus atsakymų rodinys: kiekvienos formos rikiuojama lentelė su CSV eksporto mygtuku.
- Jokios telemetrijos, jokios trečiųjų šalių formų paslaugos; atsakiusiųjų duomenys lieka mano SQLite faile.
- Į apimtį neįeina: iš dalies užpildytų formų išsaugojimas, sąlyginė logika, mokėjimai ir komandų
  darbo sritys. Nekurk šablonų galerijos.
- README: .env kintamieji, Caddy konfigūracijos fragmentas, kur diske laikomi įkelti failai ir duomenų bazė (DB).

Žingsniai

Šis gidas tinka bet kuriam AI programavimo įrankiui: Cursor, Claude Code, Codex ar kitam. Kur parašyta „parašyk AI“, rašyk savo įrankio pokalbio lange. Mygtukai įrankiuose skiriasi, todėl visko, kas priklauso nuo įrankio, prašai paties AI.

Trys taisyklės visam darbui:

1. Paruošk aplanką ir pirmos formos aprašą

Susikurk tuščią aplanką, pavyzdžiui formos, ir atidaryk jį savo AI įrankyje. Tada ant popieriaus susirašyk pirmą tikrą formą: jos pavadinimą, klausimus, kiekvieno klausimo tipą ir tai, kurie iš jų privalomi. Tipai gali būti šeši: trumpas tekstas, ilgas tekstas, el. paštas, pasirinkimas iš sąrašo, žymimasis langelis ir failo įkėlimas.

Nuspręsk, ar nori gauti pranešimą apie kiekvieną atsakymą. Yra du būdai, abu neprivalomi:

Pirmai versijai pranešimų nereikia. Juos įjungsi 9 žingsnyje.

2. Pirma paprašyk plano, ne kodo

Įklijuok visą pagrindinį promptą, nieko netrumpindamas, ir jo gale prirašyk šį tekstą su savo duomenimis:

Mano duomenys: - Pirma forma: [pavadinimas ir kam ji skirta] - Laukai: [klausimas, tipas ir ar privalomas, po vieną eilutėje] - Akcentinė spalva: [spalvos kodas arba pavadinimas] - Pranešimai: [kol kas nereikia / el. paštu / per webhook] Kol kas nieko nekurk. Pirma: 1. Trumpai aprašyk, ką sukursi ir kokius failus. 2. Parašyk, kokie kintamieji bus faile .env ir kam kiekvienas reikalingas. 3. Paaiškink, kaip prisijungsiu prie /admin ir kaip forma ginsis nuo šlamšto. 4. Paklausk manęs to, ko trūksta, kad nereikėtų spėlioti. Kurti pradėk tik tada, kai parašysiu „pradėk“.

Perskaityk planą. Jame turi būti šešios dalys: administravimo puslapis /admin, saugomas vienu ADMIN_TOKEN, viešas kiekvienos formos puslapis adresu, kuris prasideda /f/, SQLite duomenų bazė atsakymams, aplankas uploads įkeltiems failams, atsakymų lentelė su CSV eksportu ir du neprivalomi pranešimai. SQLite yra duomenų bazė, telpanti viename faile. CSV yra paprastas lentelės failas, kurį atidaro skaičiuoklės. Jei kurios nors dalies trūksta arba AI siūlo vartotojų paskyras ar išorinę formų paslaugą, pasakyk tai dabar. Planą pataisyti greičiau nei kodą.

3. Leisk kurti

Atsakyk į AI klausimus ir parašyk „pradėk“. Jei įrankis prašo leidimo kurti failus ar vykdyti komandas, leisk: visa tai vyksta tavo aplanke.

4. Paprašyk paaiškinti, kas sukurta

Išvardyk visus sukurtus failus ir aplankus ir vienu sakiniu paaiškink, ką kiekvienas daro. Rašyk paprastai, žmogui, kuris nėra programuotojas. Atskirai parašyk, kur diske laikoma duomenų bazė ir įkelti failai. Parašyk ir tai, kurių failų geriau neliesti.

Šis sąrašas pravers vėliau: žinosi, kur laikomi atsakymai ir ką kopijuoti darant atsarginę kopiją.

5. Paleisk projektą savo kompiuteryje

Prieš paleisdamas atsidaryk failą .env ir prie ADMIN_TOKEN pats įrašyk ilgą atsitiktinį tekstą. Tai tavo raktas į administravimo puslapį. Jei nežinai, kaip failą atidaryti, paprašyk AI parodyti, bet reikšmės jam nerašyk.

Paleisk projektą mano kompiuteryje ir parašyk du adresus: administravimo puslapio ir viešos formos. Jei prieš tai reikia ką nors įdiegti, padaryk tai pats arba vesk mane po vieną žingsnį. Parašyk, kaip prisijungti prie /admin su ADMIN_TOKEN ir kaip projektą sustabdyti bei paleisti iš naujo. Paties ADMIN_TOKEN atsakyme nerodyk.

Adresai prasidės http://localhost. Tai tavo kompiuteris: kol projekto nepaskelbsi, formų niekas kitas nemato.

6. Patikrink septynis dalykus

  1. Atidaryk /admin be rakto arba su neteisingu. Puslapis turi neįleisti.
  2. Prisijunk, sukurk bandomąją formą su visų šešių tipų laukais, du iš jų pažymėk kaip privalomus ir atsidaryk viešą formos puslapį. Laukai turi būti viename stulpelyje, o mygtukas tavo akcentinės spalvos.
  3. Pateik tuščią formą. Prie privalomų laukų turi atsirasti aiškūs pranešimai, o atsakymas neturi būti išsaugotas.
  4. Užpildyk formą, pridėk nedidelį failą ir pateik. Turi pamatyti patvirtinimą.
  5. Grįžk į /admin. Atsakymas turi būti lentelėje, o įkeltas failas aplanke uploads, tos formos poaplankyje.
  6. Surikiuok lentelę (dažniausiai tam reikia paspausti stulpelio antraštę) ir paspausk CSV eksporto mygtuką. Eilutės turi susirikiuoti, o atsisiųstas failas atsidaryti skaičiuoklėje.
  7. Susiaurink naršyklės langą iki telefono pločio. Forma turi tilpti be slinkimo į šoną.

Jei kuris nors punktas nepavyko, toliau neik. Atsiversk skyrių „Jei nepavyko“.

7. Išsaugok veikiančią versiją

Kai visi septyni punktai veikia, pasidaryk atsarginį tašką, į kurį galėsi grįžti, jei vėlesnis pakeitimas ką nors sugadins.

Dabar viskas veikia. Išsaugok šią versiją su git ir pavadink ją „veikianti pirma versija“. Jei git dar neįdiegtas ar neparuoštas, paruošk jį. Patikrink, kad failas .env, duomenų bazės failas ir aplankas uploads nebūtų saugomi kartu su kodu. Tada parašyk, kokiais žodžiais turėčiau paprašyti, kad grąžintum projektą į šią versiją.

Git yra programa, kuri įsimena projekto būsenas. Jos mokėti nereikia: išsaugoti ir grąžinti prašai AI.

8. Sukurk tikrą formą pats

Dabar dirbk be AI. Puslapyje /admin sukurk formą iš savo aprašo: pridėk laukus, pažymėk privalomus ir bent vieną lauką perkelk į kitą vietą. Tada atsidaryk viešą puslapį ir užpildyk formą taip, kaip ją pildytų nepažįstamas žmogus. Jei kuris klausimas neaiškus arba atsakymui trūksta vietos, pataisyk jį iš karto. Bandomosios formos iš 6 žingsnio nebereikia: paprašyk AI parodyti, kaip ją pašalinti.

9. Įjunk pranešimus

Jei nori gauti laišką apie kiekvieną atsakymą, SMTP duomenis į failą .env įrašyk pats. Tada parašyk:

Į .env įrašiau SMTP duomenis. Formai [formos pavadinimas] noriu gauti el. laišką apie kiekvieną atsakymą adresu [tavo el. paštas]. Parašyk, kur /admin puslapyje tai įjungti, ir ar po .env pakeitimo projektą reikia paleisti iš naujo. Jei laiškas neišsiunčiamas, atsakymas vis tiek turi būti išsaugotas, o klaida matoma paleidimo lange. SMTP slaptažodžio atsakyme nerodyk. Daugiau nieko nekeisk.

Pateik formą dar kartą ir patikrink pašto dėžutę, taip pat šlamšto aplanką. Jei naudoji webhook, jo adresą įrašyk formos nustatymuose ir pažiūrėk, ar atsakymas pasiekė kitą programą. Tada dar kartą paprašyk išsaugoti versiją.

Tobulink

Kai pirma versija veikia ir yra išsaugota, tobulink ją po vieną pakeitimą. Gera užklausa turi penkias dalis. Kuo tiksliau jas užpildai, tuo mažiau AI tenka spėlioti.

Geros užklausos anatomija

  1. Kontekstas. Kas jau veikia ir apie kurią projekto vietą kalbi.
  2. Tikslas. Vienas pakeitimas ir kam jo reikia.
  3. Ribos. Ko AI neturi liesti.
  4. Rezultatas. Ką matysi ekrane, kai bus padaryta.
  5. Patikra. Kaip pats įsitikinsi, kad veikia.

Šabloną nusikopijuok ir pildyk kaskart, kai nori ko nors naujo:

Kontekstas: [kas jau veikia ir kurią vietą noriu keisti] Tikslas: [vienas pakeitimas ir kam jo reikia] Ribos: nekeisk [kas turi likti kaip buvę]. Nepridėk nieko, ko neprašiau. Rezultatas: [ką turiu matyti, kai bus padaryta] Patikra: pabaigoje parašyk, kokius failus pakeitei ir kaip man pačiam patikrinti, kad veikia. Jei kas nors neaišku, pirma paklausk.

Paruoštos užklausos

Visos jos parašytos pagal tą pačią anatomiją. Laužtiniuose skliaustuose įrašyk savo duomenis.

Savas padėkos tekstas

Kontekstas: pateikus formą visi lankytojai mato tą patį patvirtinimą. Tikslas: noriu kiekvienai formai parašyti savo padėkos tekstą, pavyzdžiui kada ir kaip atsakysiu. Ribos: formos be savo teksto rodo dabartinį patvirtinimą. Atsakymų saugojimo ir pranešimų nekeisk. Rezultatas: formos nustatymuose /admin puslapyje yra laukas padėkos tekstui, o pateikęs formą lankytojas mato būtent jį. Patikra: parašyk, kaip tai išbandyti su dviem formomis, iš kurių viena turi savo tekstą, o kita ne.

Formos uždarymas

Kontekstas: forma priima atsakymus visą laiką, net kai apklausa jau baigta. Tikslas: noriu formą uždaryti ranka arba nurodyti datą, po kurios ji atsakymų nebepriima. Ribos: uždarytos formos atsakymai ir įkelti failai lieka. Kitų formų nekeisk. Rezultatas: uždarytos formos viešame puslapyje matau trumpą pranešimą vietoj laukų, o /admin sąraše ji pažymėta kaip uždaryta. Patikra: parašyk, kaip formą atidaryti iš naujo ir kaip datą išbandyti nelaukiant rytojaus.

Atsakymų filtras pagal datą

Kontekstas: atsakymų lentelė rodo visus formos atsakymus, o CSV eksportuoja juos visus. Tikslas: noriu matyti ir eksportuoti tik pasirinkto laikotarpio atsakymus. Ribos: rikiavimas turi veikti kaip iki šiol. Be filtro eksportuojami visi atsakymai. Rezultatas: virš lentelės yra du datos laukai, o CSV faile atsiduria tik tos eilutės, kurias matau lentelėje. Patikra: parašyk, kaip įsitikinti, kad eilučių skaičius lentelėje ir CSV faile sutampa.

Aiškesnis pranešimo laiškas

Kontekstas: apie kiekvieną atsakymą gaunu el. laišką per SMTP. Tikslas: noriu, kad laiško temoje būtų formos pavadinimas, o atsakyti į laišką galėčiau tiesiai žmogui, jei forma turi el. pašto lauką. Ribos: SMTP nustatymų ir webhook siuntimo nekeisk. Jei formoje el. pašto lauko nėra, laiškas siunčiamas kaip iki šiol. Rezultatas: laiške matau klausimus su atsakymais tokia tvarka, kokia jie formoje, o paspaudęs „Atsakyti“ rašau atsakiusiam žmogui. Patikra: parašyk, kaip tai išbandyti su savo antru el. pašto adresu.

Datos laukas

Kontekstas: formoje galiu naudoti šešis laukų tipus, bet datą žmonės rašo kaip tekstą ir kiekvienas kitaip. Tikslas: pridėk septintą tipą: datos lauką su kalendoriumi. Ribos: esamų tipų ir jau sukurtų formų nekeisk. Data tikrinama ir naršyklėje, ir serveryje. Rezultatas: kurdamas formą galiu pasirinkti datos lauką, o lentelėje ir CSV faile data visada vienodo formato. Patikra: parašyk, kas nutinka įvedus netikrą datą, ir kaip tai patikrinti.

Atsakymo trynimas

Kontekstas: atsakymai kaupiasi duomenų bazėje, o įkelti failai aplanke uploads. Tikslas: noriu ištrinti vieną atsakymą, pavyzdžiui bandomąjį arba kai žmogus paprašo pašalinti jo duomenis. Ribos: trinti galima tik prisijungus prie /admin. Prieš trinant paklausk patvirtinimo. Kitų atsakymų neliesk. Rezultatas: prie kiekvienos lentelės eilutės yra trynimo mygtukas, o ištrynus dingsta ir eilutė, ir to atsakymo failai iš aplanko uploads. Patikra: parašyk, kaip patikrinti, kad failas tikrai pašalintas iš disko, o ne tik iš lentelės.

Po kiekvieno pakeitimo

Formoje klausk tik to, ką tikrai panaudosi. Privalomais žymėk tik tuos laukus, be kurių atsakymas tau nenaudingas.

Jei nepavyko

Kad kas nors nepavyksta iš pirmo karto, yra įprasta. Dažniausiai AI trūksta ne gebėjimų, o informacijos: jis nemato tavo ekrano ir nežino, kas tiksliai nutiko. Kuo tiksliau parodai, tuo greičiau pataiso.

Pirmoji pagalba: universali užklausa

Ji tinka beveik kiekvienai bėdai. Užpildyk laužtinius skliaustus ir išsiųsk tame pačiame pokalbyje.

Kažkas neveikia. Padėk surasti priežastį. Ką dariau: [veiksmai po vieną, pavyzdžiui „užpildžiau viešą formą ir paspaudžiau pateikti“] Ko tikėjausi: [kas turėjo nutikti] Kas nutiko iš tikrųjų: [ką matau ekrane] Klaidos tekstas: [įklijuok visą tekstą, nieko netrumpindamas] Kol kas nieko nekeisk. Pirma paaiškink paprastai, kokia priežastis, ir kaip ją patikrinsi. Tada pataisyk tik ją, kitų projekto vietų neliesk. Pabaigoje parašyk, ką pakeitei ir kaip man patikrinti, kad veikia.

Kodėl ji veikia:

Jei klaidos teksto nematai, paprašyk: „Parašyk, kur rasti klaidos tekstą: naršyklėje ar lange, kuriame paleistas projektas.“ Jei įrankis leidžia, pridėk ir ekrano nuotrauką.

Projektas nepasileidžia arba adresas neatsidaro

Dažniausios priežastys: neįdiegta Node arba projekto dalys, projektas sustabdytas, adresas užimtas kitos programos arba faile .env trūksta privalomos reikšmės.

Projektas nepasileidžia arba adresas naršyklėje neatsidaro. Štai ką matau paleidimo lange: [įklijuok visą tekstą] Patikrink po vieną: ar įdiegta viskas, ko reikia, ar faile .env yra visi privalomi kintamieji, ar projektas šiuo metu paleistas, ar adresas neužimtas kitos programos. Parašyk, ką radai, pataisyk ir duok adresą, kurį atidaryti. .env reikšmių atsakyme nerodyk.

AI sukūrė formas, bet be apsaugos nuo šlamšto ir failų įkėlimo

Taip nutinka, kai AI pasirenka paprasčiausią kelią ir praleidžia dalį reikalavimų. Apsaugos ekrane nematyti, todėl jos trūkumą lengva pražiūrėti. Spąstų laukas yra paslėptas laukas, kurį užpildo tik automatinės programos, o žmogus jo nemato.

Palygink tai, ką sukūrei, su mano pirmąja užklausa ir išvardyk, kurių reikalavimų dar nėra. Atskirai patikrink šiuos: spąstų (honeypot) laukas, užklausų dažnio riba pagal IP, failo įkėlimo laukas su 10 MB riba, tikrinimas serverio pusėje, laukų tvarkos keitimas, CSV eksportas, pranešimai per SMTP ir webhook. Pridėk tai, ko trūksta, po vieną dalį. To, kas jau veikia, nekeisk. Po kiekvienos dalies parašyk, kaip man ją patikrinti.

Administravimo puslapis atsidaro be rakto arba rakto nepriima

Raktas laikomas faile .env, prie ADMIN_TOKEN. Jei reikšmė tuščia arba pavyzdinė, apsauga gali neveikti. Paties rakto į pokalbį nerašyk.

Puslapis /admin [atsidaro be rakto / nepriima mano rakto]. Patikrink, ar failas .env yra, ar ADMIN_TOKEN jame užpildytas ir ar po .env pakeitimo projektą reikia paleisti iš naujo. Padaryk taip, kad be teisingo ADMIN_TOKEN neatsidarytų nė vienas /admin puslapis, atsakymų lentelė ir CSV eksportas, net kai .env tuščias. Rakto reikšmės atsakyme nerodyk.

Pateikus formą atsakymas neatsiranda lentelėje

Pažiūrėk, ką matai po pateikimo: patvirtinimą, klaidą ar tą patį puslapį. Jei bandei daug kartų iš eilės, tave galėjo sustabdyti dažnio riba, kuri saugo nuo šlamšto. Palauk ir pabandyk dar kartą. Kiek laukti, paklausk AI: ribą nustatė jis.

Pateikiu formą, bet atsakymo lentelėje nėra. Ką dariau: atidariau formą [formos pavadinimas], užpildžiau visus laukus ir paspaudžiau pateikti. Ko tikėjausi: pamatysiu patvirtinimą, o atsakymas atsiras /admin lentelėje. Kas nutiko: [matau patvirtinimą, bet eilutės nėra / matau klaidą / puslapis persikrauna tuščias] Patikrink visą kelią: ar forma pasiekia serverį, ar atsakymas praeina tikrinimą, ar jo neatmeta spąstų laukas arba dažnio riba, ar jis įrašomas į duomenų bazę, ar lentelė skaito tą pačią bazę. Parašyk, kurioje vietoje kelias nutrūksta, ir pataisyk tik ją.

Failo įkelti nepavyksta

Pirma pažiūrėk failo dydį: riba yra 10 MB. Tada pabandyk mažą failą. Jei mažas failas įkeliamas, o didelis ne, riba veikia taip, kaip numatyta, tik lankytojui trūksta aiškaus pranešimo.

Formoje nepavyksta įkelti failo. Failas: [tipas ir dydis] Kas nutiko: [klaidos tekstas arba ką matau ekrane] Patikrink, ar aplankas uploads yra ir į jį galima rašyti, ar failas neviršija 10 MB ir ar jo vardas išsaugomas saugiai. Padaryk taip, kad per didelio failo atveju lankytojas matytų aiškų pranešimą su riba, o kiti jo atsakymai formoje neišsitrintų. Ribos nedidink ir kitų laukų nekeisk.

Pranešimas apie atsakymą neateina

Pirma pažiūrėk į šlamšto aplanką. Tada patikrink, ar atsakymas yra lentelėje: jei jo nėra ir ten, bėda ne pranešimuose. El. laiškai dažniausiai neišeina dėl netikslių SMTP duomenų faile .env.

Atsakymas lentelėje yra, bet [el. laiškas neatėjo / webhook adresas nieko negavo]. Forma: [formos pavadinimas] Patikrink, ar šiai formai pranešimas įjungtas, ar .env faile yra visi SMTP kintamieji ir ką rodo paleidimo langas bandant siųsti. Parašyk, kokią klaidą grąžina pašto serveris arba webhook adresas, ir paaiškink ją paprastai. Padaryk taip, kad nepavykęs pranešimas niekada nesutrukdytų išsaugoti atsakymo. SMTP slaptažodžio atsakyme nerodyk.

CSV faile lietuviškos raidės sugadintos

Atsidaryk failą paprasta teksto rengykle. Jei ten raidės sveikos, kalta ne programa, o tai, kaip failą perskaito skaičiuoklė.

Atsisiųstame CSV faile vietoj lietuviškų raidžių matau keistus ženklus. Skaičiuoklė: [programos pavadinimas] Teksto rengyklėje raidės [sveikos / taip pat sugadintos]. Pataisyk eksportą taip, kad failas teisingai atsidarytų dažniausiai naudojamose skaičiuoklėse. Patikrink ir tai, ar atsakymas su kableliu, kabutėmis ar nauja eilute nesuardo stulpelių. Lentelės ir duomenų bazės nekeisk.

AI taiso vieną vietą ir sugadina kitą

Po dviejų nepavykusių bandymų neprašyk trečio karto tuo pačiu būdu. Sustabdyk ir pakeisk eigą.

Sustok. Du bandymai nepadėjo, todėl daugiau nespėliok. 1. Išvardyk tris labiausiai tikėtinas priežastis ir kiekvienai parašyk, kaip ją patikrinti nekeičiant kodo. 2. Patikrink jas po vieną ir parašyk, ką radai. 3. Taisyk tik tada, kai priežastis patvirtinta. Jei per šį pokalbį sugadinai tai, kas veikė anksčiau, pirma grąžink projektą į paskutinę išsaugotą versiją.

Jei projektas visai susipainiojo, grįžk į atsarginį tašką: „Grąžink projektą į versiją „veikianti pirma versija“ ir patvirtink, kad formos vėl atsidaro.“

Pokalbis ilgas ir AI ima painiotis

Labai ilgame pokalbyje AI gali pamiršti ankstesnius susitarimus. Tada pradėk naują pokalbį, bet pirma paprašyk santraukos.

Parašyk šio projekto santrauką naujam pokalbiui: kas sukurta, kokie failai ką daro, kas veikia, kas dar neveikia ir dėl ko susitarėme. Išsaugok ją faile PROJEKTAS.md projekto aplanke.

Naują pokalbį pradėk taip:

Perskaityk failą PROJEKTAS.md ir peržiūrėk projekto failus. Tada savais žodžiais trumpai papasakok, kaip projektas veikia, kad matyčiau, jog supratai. Kol nepatvirtinsiu, nieko nekeisk.

Matai klaidą, kurios nesupranti

Štai klaida: [įklijuok visą tekstą] Paaiškink paprastai, žmogui, kuris nėra programuotojas: ką ji reiškia, kodėl atsirado ir ar ji pavojinga. Tada pasiūlyk pataisymą ir palauk mano patvirtinimo.

Paleisk

Formos turi būti pasiekiamos visą parą ir turi kur nors saugoti atsakymus, todėl joms reikia vietos, kur nuolat veikia tavo programa. Prompte nurodytas nuomojamas serveris (VPS) su Caddy. VPS yra nuotolinis kompiuteris, kurį nuomojiesi iš talpinimo įmonės. Caddy yra programa, kuri tavo formas rodo lankytojams ir pati sutvarko saugų ryšį (HTTPS).

Ko reikės

1. Prieš skelbdamas paprašyk patikros

Formose žmonės paliks savo duomenis, todėl pirma įsitikink, kad jų negali pamatyti niekas kitas.

Ruošiuosi skelbti šį projektą viešai. Prieš tai peržiūrėk jį ir parašyk, ką reikia sutvarkyti: 1. Ar failo .env, duomenų bazės failo ir aplanko uploads neįmanoma atsidaryti per naršyklę? 2. Ar be teisingo ADMIN_TOKEN neatsidaro nė vienas /admin puslapis, atsakymų lentelė, CSV eksportas ir įkelti failai? 3. Ar spąstų laukas ir dažnio riba pagal IP tikrai veikia? Ar riba matys tikrą lankytojo adresą, kai programa veiks už Caddy? 4. Ar įkeliamų failų vardai saugūs ir ar 10 MB riba tikrinama serveryje, ne tik naršyklėje? 5. Ar kode neliko bandomųjų raktų ir adresų su localhost? Kiekvienam punktui parašyk „gerai“ arba ką reikia pataisyti. Taisyk tik gavęs mano patvirtinimą.

2. Diek po vieną žingsnį

Diegimas yra vieta, kur įrankiai ir serveriai skiriasi labiausiai, todėl neprašyk visko iš karto.

Noriu paskelbti šį projektą savo VPS serveryje už Caddy. Adresas bus [tavo adresas]. Niekada to nedariau, todėl vesk mane po vieną žingsnį. Naudok Caddy konfigūracijos fragmentą iš README. Kiekviename žingsnyje parašyk: ką darome ir kodėl, ką tiksliai įvesti ir ką turėčiau pamatyti, jei pavyko. Tada palauk, kol parašysiu, kas nutiko. Jei įklijuosiu klaidą, pirma paaiškink ją, tada tęsk. Slaptažodžių manęs neklausk: į serverio .env juos įrašysiu pats.

3. Serveryje susikurk naujus raktus

Serverio faile .env įrašyk naują ADMIN_TOKEN: ilgą atsitiktinį tekstą, kurio nenaudojai bandydamas kompiuteryje. Ten pat įrašyk SMTP duomenis. Nė vienos iš šių reikšmių nesiųsk į pokalbį. Raktą laikyk slaptažodžių tvarkyklėje: kas jį turi, mato visus atsakymus.

4. Patikrink jau viešas formas

  1. Atsidaryk savo formą telefone, per mobilųjį internetą, ne per namų Wi-Fi.
  2. Adreso pradžioje turi būti https://, o naršyklė neturi rodyti įspėjimo.
  3. Užpildyk formą, pridėk failą ir pateik. Turi pamatyti patvirtinimą.
  4. Prisijunk prie /admin ir patikrink, ar atsakymas ir failas vietoje.
  5. Pabandyk atidaryti /admin be rakto. Turi neįleisti.
  6. Jei įjungei pranešimus, patikrink, ar atėjo laiškas arba ar atsakymą gavo webhook adresas.

5. Pasirūpink, kad atsakymai nedingtų

Padaryk taip, kad po serverio perkrovimo projektas pasileistų pats. Tada parašyk trumpą atmintinę: kur serveryje laikoma duomenų bazė ir aplankas uploads, kaip pasidaryti jų atsarginę kopiją ir ją atkurti, kaip atnaujinti projektą po pakeitimų neprarandant atsakymų. Išsaugok atmintinę faile PRIEZIURA.md.

Atsakymai laikomi tik tavo serveryje: SQLite faile ir aplanke uploads. Kopijuok abu ir laikyk kopiją ne tame pačiame serveryje. Kol forma aktyviai pildoma, kopiją daryk bent kartą per savaitę. Aplankas uploads pildosi su kiekvienu įkeltu failu, todėl retkarčiais pažiūrėk, kiek serverio diske liko vietos.

6. Pasidalyk pirma forma

Nusiųsk formos adresą vienam pažįstamam ir paprašyk ją užpildyti telefone. Paklausk, kuris klausimas buvo neaiškus, ir pataisyk jį per /admin. Tik tada dėk adresą į savo svetainę, laiškus ar socialinius tinklus. Už formose surinktus žmonių duomenis atsakai tu pats. Jei renki asmens duomenis, parašyk formoje, kam jų reikia ir kiek laiko juos laikysi.

Kaip žinau, kad pavyko

Nepažįstamo žmogaus atsakymas atsirado lentelėje, pranešimas atėjo, CSV failas atsidaro skaičiuoklėje, o tu turi šviežią duomenų bazės ir aplanko uploads kopiją kitoje vietoje.

Ribos

Projektai bibliotekoje

Šiuo metu bibliotekoje: 158 projektai. Čia matai pavadinimus ir trumpus aprašus. Promptai atsidaro įsigijus biblioteką.

Projektai pavadinti pagal žinomas programas, kurių savą versiją kursi. Su tų programų kūrėjais biblioteka nesusijusi.

Analitika ir stebėsena

Dizainas ir diagramos

Dokumentai ir finansai

Formos ir atsiliepimai

Kūrėjų įrankiai

Namai ir asmeniniai reikalai

Produktyvumo įrankiai

Rašymas ir AI

Skaitymas ir tyrimai

Svetainės ir rinkodara

Užduotys ir laikas

Užrašai ir žinios

Vaizdas ir garsas

Kaip tai veikia

Kaina

Vienkartinis mokėjimas: 49 €.

Ko bibliotekoje nėra

Dažni klausimai

Kokiu įrankiu naudotis?
Promptai parašyti AI programavimo įrankiams, pavyzdžiui, Cursor, Claude Code ar Codex. Konkretaus įrankio biblioteka nereikalauja: promptą įklijuoji ten, kur dirbi.
Ar reikia mokėti programuoti?
Programuoti nebūtina, bet turi mokėti naudotis AI programavimo įrankiu: paleisti projektą, perskaityti klaidą ir paprašyti ją pataisyti. Jei to dar nedarei, pradėk nuo projektų, kurių trukmė yra vienas prisėdimas.
Ar tai prenumerata?
Ne. Sumoki vieną kartą, ir biblioteka lieka tavo paskyroje. Tai atskiras pirkinys: įrankių prenumerata jo neatrakina.
Ar promptai lietuviški?
Taip, promptai parašyti lietuviškai. Kodo fragmentai, komandos ir bibliotekų pavadinimai palikti originalūs, kad įrankis juos suprastų tiksliai.
Ar galima pritaikyti nuolaidos kodą?
Ne, bibliotekai nuolaidų kodai netaikomi.