diff --git a/src/app/(modules)/prompts/page.tsx b/src/app/(modules)/prompts/page.tsx
new file mode 100644
index 0000000..1805703
--- /dev/null
+++ b/src/app/(modules)/prompts/page.tsx
@@ -0,0 +1,878 @@
+"use client";
+
+import { useState, useCallback, useEffect } from "react";
+import { Button } from "@/shared/components/ui/button";
+import { Badge } from "@/shared/components/ui/badge";
+import { Card, CardContent } from "@/shared/components/ui/card";
+import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/shared/components/ui/tabs";
+import {
+ Copy,
+ Check,
+ ChevronDown,
+ ChevronRight,
+ Terminal,
+ Bug,
+ Sparkles,
+ Shield,
+ TestTube,
+ Plug,
+ RefreshCw,
+ FileText,
+ Zap,
+ Rocket,
+ ListChecks,
+ Brain,
+ Wrench,
+} from "lucide-react";
+
+// ─── Types ─────────────────────────────────────────────────────────
+
+type PromptCategory = {
+ id: string;
+ label: string;
+ icon: React.ReactNode;
+ description: string;
+ prompts: PromptTemplate[];
+};
+
+type PromptTemplate = {
+ id: string;
+ title: string;
+ description: string;
+ prompt: string;
+ tags: string[];
+ oneTime?: boolean;
+ variables?: string[];
+};
+
+// ─── Module list for variable substitution hints ───────────────────
+
+const MODULES = [
+ "registratura", "address-book", "parcel-sync", "geoportal", "password-vault",
+ "mini-utilities", "email-signature", "word-xml", "word-templates", "tag-manager",
+ "it-inventory", "digital-signatures", "prompt-generator", "ai-chat", "hot-desk",
+ "visual-copilot", "dashboard",
+] as const;
+
+// ─── Prompt Templates ──────────────────────────────────────────────
+
+const CATEGORIES: PromptCategory[] = [
+ {
+ id: "module-work",
+ label: "Lucru pe modul",
+ icon: ,
+ description: "Prompturi pentru lucru general, bugfix-uri si features pe module existente",
+ prompts: [
+ {
+ id: "module-work-general",
+ title: "Lucru general pe modul",
+ description: "Sesiune de lucru pe un modul specific — citeste contextul, propune, implementeaza",
+ tags: ["regular", "module"],
+ variables: ["MODULE_NAME"],
+ prompt: `Scopul acestei sesiuni este sa lucram pe modulul {MODULE_NAME} din ArchiTools.
+
+Citeste CLAUDE.md si docs/MODULE-MAP.md inainte de orice.
+Apoi citeste tipurile si componentele modulului:
+- src/modules/{MODULE_NAME}/types.ts
+- src/modules/{MODULE_NAME}/config.ts
+- src/modules/{MODULE_NAME}/components/ (fisierele principale)
+- src/modules/{MODULE_NAME}/services/ (daca exista)
+
+Dupa ce ai inteles codul existent, intreaba-ma ce vreau sa fac.
+Nu propune schimbari pana nu intelegi modulul complet.
+npx next build TREBUIE sa treaca dupa fiecare schimbare.`,
+ },
+ {
+ id: "bugfix",
+ title: "Bugfix pe modul",
+ description: "Investigheaza si rezolva un bug specific",
+ tags: ["regular", "bugfix"],
+ variables: ["MODULE_NAME", "BUG_DESCRIPTION"],
+ prompt: `Am un bug in modulul {MODULE_NAME}: {BUG_DESCRIPTION}
+
+Citeste CLAUDE.md si docs/MODULE-MAP.md pentru context.
+
+Pasi:
+1. Citeste fisierele relevante ale modulului
+2. Identifica cauza root — nu ghici, citeste codul
+3. Propune fix-ul INAINTE sa-l aplici
+4. Aplica fix-ul minimal (nu refactoriza alte lucruri)
+5. Verifica ca npx next build trece
+6. Explica ce s-a schimbat si de ce
+
+Daca bug-ul e in interactiunea cu alt modul sau API, citeste si acel cod.
+Nu adauga features sau "imbunatatiri" — doar fix bug-ul raportat.`,
+ },
+ {
+ id: "feature-existing",
+ title: "Feature nou in modul existent",
+ description: "Adauga o functionalitate noua intr-un modul care exista deja",
+ tags: ["regular", "feature"],
+ variables: ["MODULE_NAME", "FEATURE_DESCRIPTION"],
+ prompt: `Vreau sa adaug un feature in modulul {MODULE_NAME}: {FEATURE_DESCRIPTION}
+
+Citeste CLAUDE.md si docs/MODULE-MAP.md pentru context.
+
+Pasi obligatorii:
+1. Citeste types.ts, config.ts si componentele existente ale modulului
+2. Verifica daca feature-ul necesita schimbari de tip (types.ts)
+3. Verifica daca necesita API route nou sau modificare la cel existent
+4. Propune planul de implementare INAINTE de a scrie cod
+5. Implementeaza pas cu pas, verificand build dupa fiecare fisier major
+6. Pastreaza conventiile existente (English code, Romanian UI)
+7. npx next build TREBUIE sa treaca
+
+Reguli:
+- Nu schimba structura modulului fara motiv
+- Nu adauga dependinte noi daca nu e necesar
+- Pastreaza compatibilitatea cu datele existente in storage/DB
+- Daca trebuie migrare de date, propune-o separat`,
+ },
+ {
+ id: "feature-new-module",
+ title: "Modul complet nou",
+ description: "Creeaza un modul nou de la zero urmand pattern-ul standard",
+ tags: ["one-time", "feature", "architecture"],
+ oneTime: true,
+ variables: ["MODULE_NAME", "MODULE_DESCRIPTION"],
+ prompt: `Vreau sa creez un modul nou: {MODULE_NAME} — {MODULE_DESCRIPTION}
+
+Citeste CLAUDE.md, docs/MODULE-MAP.md si docs/guides/MODULE-DEVELOPMENT.md.
+Studiaza un modul existent similar ca referinta (ex: it-inventory sau hot-desk pentru module simple, registratura pentru module complexe).
+
+Creeaza structura standard:
+src/modules/{MODULE_NAME}/
+ components/{MODULE_NAME}-module.tsx
+ hooks/use-{MODULE_NAME}.ts (daca e nevoie)
+ services/ (daca e nevoie)
+ types.ts
+ config.ts
+ index.ts
+
+Plus:
+- src/app/(modules)/{MODULE_NAME}/page.tsx (route page)
+- Adauga config in src/config/modules.ts
+- Adauga flag in src/config/flags.ts
+- Adauga navigare in src/config/navigation.ts
+
+Reguli:
+- Urmeaza EXACT pattern-ul celorlalte module
+- English code, Romanian UI text
+- Feature flag enabled by default
+- Storage via useStorage('{MODULE_NAME}') hook
+- npx next build TREBUIE sa treaca
+- Nu implementa mai mult decat MVP-ul — pot adauga dupa`,
+ },
+ ],
+ },
+ {
+ id: "api",
+ label: "API & Backend",
+ icon: ,
+ description: "Creare si modificare API routes, integrari externe, Prisma schema",
+ prompts: [
+ {
+ id: "api-new-route",
+ title: "API route nou",
+ description: "Creeaza un endpoint API nou cu auth, validare, error handling",
+ tags: ["regular", "api"],
+ variables: ["ROUTE_PATH", "ROUTE_DESCRIPTION"],
+ prompt: `Creeaza un API route nou: /api/{ROUTE_PATH} — {ROUTE_DESCRIPTION}
+
+Citeste CLAUDE.md (sectiunea Middleware & Large Uploads) si docs/ARCHITECTURE-QUICK.md.
+
+Cerinte obligatorii:
+1. Auth: middleware coverage SAU requireAuth() pentru rute excluse
+2. Input validation pe toate parametrii
+3. Error handling: try/catch cu mesaje utile (nu stack traces)
+4. Prisma queries: parametrizate ($queryRaw cu template literals, NU string concat)
+5. TypeScript strict: toate return types explicit
+
+Pattern de referinta — citeste un API route existent similar:
+- CRUD simplu: src/app/api/storage/route.ts
+- Cu Prisma raw: src/app/api/registratura/route.ts
+- Cu external API: src/app/api/eterra/search/route.ts
+
+Daca ruta accepta uploads mari:
+- Exclude din middleware matcher (src/middleware.ts)
+- Adauga requireAuth() manual
+- Documenteaza in CLAUDE.md sectiunea Middleware
+
+npx next build TREBUIE sa treaca.`,
+ },
+ {
+ id: "prisma-schema",
+ title: "Modificare Prisma schema",
+ description: "Adauga model nou sau modifica schema existenta",
+ tags: ["regular", "database"],
+ variables: ["CHANGE_DESCRIPTION"],
+ prompt: `Vreau sa modific Prisma schema: {CHANGE_DESCRIPTION}
+
+Citeste prisma/schema.prisma complet inainte.
+
+Pasi:
+1. Propune schimbarea de schema INAINTE de a o aplica
+2. Verifica impactul asupra codului existent (grep pentru modelul afectat)
+3. Aplica in schema.prisma
+4. Ruleaza: npx prisma generate
+5. Actualizeaza codul care foloseste modelul
+6. npx next build TREBUIE sa treaca
+
+Reguli:
+- Adauga @@index pe coloane folosite in WHERE/ORDER BY
+- Adauga @@unique pe combinatii care trebuie sa fie unice
+- onDelete: SetNull sau Cascade — niciodata default (restrict)
+- Foloseste Json? pentru campuri flexibile (enrichment pattern)
+- DateTime cu @default(now()) pe createdAt, @updatedAt pe updatedAt
+
+IMPORTANT: Aceasta schimbare necesita si migrare pe server (prisma migrate).
+Nu face breaking changes fara plan de migrare.`,
+ },
+ {
+ id: "external-integration",
+ title: "Integrare API extern",
+ description: "Conectare la un serviciu extern (pattern eTerra/ePay)",
+ tags: ["one-time", "api", "architecture"],
+ oneTime: true,
+ variables: ["SERVICE_NAME", "SERVICE_DESCRIPTION"],
+ prompt: `Vreau sa integrez un serviciu extern: {SERVICE_NAME} — {SERVICE_DESCRIPTION}
+
+Citeste CLAUDE.md sectiunile eTerra/ANCPI Rules si Middleware.
+Studiaza pattern-ul din src/modules/parcel-sync/services/eterra-client.ts ca referinta.
+
+Pattern obligatoriu pentru integrari externe:
+1. Client class separat in services/ (nu inline in route)
+2. Session/token caching cu TTL (global singleton pattern)
+3. Periodic cleanup pe cache (setInterval)
+4. Health check daca serviciul e instabil
+5. Retry logic pentru erori tranziente (ECONNRESET, 500)
+6. Timeout explicit pe toate request-urile
+7. Error handling granular (nu catch-all generic)
+8. Logging cu prefix: console.log("[{SERVICE_NAME}] ...")
+
+Env vars:
+- Adauga in docker-compose.yml
+- NU hardcoda credentials in cod
+- Documenteaza in docs/ARCHITECTURE-QUICK.md
+
+npx next build TREBUIE sa treaca.`,
+ },
+ ],
+ },
+ {
+ id: "quality",
+ label: "Calitate & Securitate",
+ icon: ,
+ description: "Audituri de securitate, testing, performance, code review",
+ prompts: [
+ {
+ id: "security-audit",
+ title: "Audit securitate complet",
+ description: "Scanare completa de securitate pe tot codebase-ul",
+ tags: ["periodic", "security"],
+ prompt: `Scopul acestei sesiuni este un audit complet de securitate al ArchiTools.
+Aplicatia este IN PRODUCTIE la https://tools.beletage.ro.
+
+Citeste CLAUDE.md si docs/ARCHITECTURE-QUICK.md inainte de orice.
+
+Scaneaza cu agenti in paralel:
+
+1. API AUTH: Verifica ca TOATE rutele din src/app/api/ au auth check
+ (middleware matcher + requireAuth fallback)
+2. SQL INJECTION: Cauta $queryRaw/$executeRaw cu string concatenation
+3. INPUT VALIDATION: Verifica sanitizarea pe toate endpoint-urile
+4. SECRETS: Cauta credentials hardcoded, env vars expuse in client
+5. ERROR HANDLING: Catch goale, stack traces in responses
+6. RACE CONDITIONS: Write operations concurente fara locks
+7. DATA INTEGRITY: Upsert-uri care pot suprascrie date
+
+Grupeaza in: CRITICAL / IMPORTANT / NICE-TO-HAVE
+Pentru fiecare: fisier, linia, problema, solutia propusa.
+NU aplica fix-uri fara sa le listezi mai intai.
+npx next build TREBUIE sa treaca dupa fiecare fix.`,
+ },
+ {
+ id: "security-module",
+ title: "Audit securitate pe modul",
+ description: "Review de securitate focusat pe un singur modul",
+ tags: ["regular", "security"],
+ variables: ["MODULE_NAME"],
+ prompt: `Fa un audit de securitate pe modulul {MODULE_NAME}.
+
+Citeste CLAUDE.md si docs/MODULE-MAP.md.
+
+Verifica:
+1. API routes folosite de modul — au auth? Input validation?
+2. Prisma queries — SQL injection posibil?
+3. User input — sanitizat inainte de stocare/afisare?
+4. File uploads (daca exista) — validare tip/dimensiune?
+5. Storage operations — race conditions la concurrent access?
+6. Error handling — erori silentioase? Stack traces expuse?
+7. Cross-module deps — sunt corecte si necesare?
+
+Raporteaza gasirile cu: fisier, linia, severitate, fix propus.`,
+ },
+ {
+ id: "testing-hardcore",
+ title: "Testing hardcore",
+ description: "Edge cases, stress testing, error scenarios pentru un modul",
+ tags: ["periodic", "testing"],
+ variables: ["MODULE_NAME"],
+ prompt: `Vreau sa testez hardcore modulul {MODULE_NAME}.
+
+Citeste codul modulului complet, apoi gandeste:
+
+1. EDGE CASES: Ce se intampla cu input gol? Cu caractere speciale (diacritice, emoji)? Cu valori extreme (numar foarte mare, string foarte lung)?
+
+2. CONCURRENT ACCESS: Ce se intampla daca 2 useri fac aceeasi operatie simultan? Race conditions la write/update/delete?
+
+3. ERROR PATHS: Ce se intampla daca DB-ul e down? Daca API-ul extern nu raspunde? Daca sesiunea expira mid-operation?
+
+4. DATA INTEGRITY: Pot pierde date? Pot crea duplicate? Pot suprascrie datele altcuiva?
+
+5. UI STATE: Ce se intampla daca user-ul da click dublu pe buton? Daca navigheaza away in timpul unui save? Daca face refresh?
+
+6. STORAGE: Ce se intampla cu date legacy (format vechi)? Cu valori null/undefined in JSON?
+
+Pentru fiecare problema gasita: descrie scenariul, impactul, si propune fix.
+Aplica doar ce e CRITICAL dupa aprobare.`,
+ },
+ {
+ id: "performance-audit",
+ title: "Audit performanta",
+ description: "Identificare bottleneck-uri, optimizare queries, bundle size",
+ tags: ["periodic", "performance"],
+ variables: ["MODULE_NAME"],
+ prompt: `Analizeaza performanta modulului {MODULE_NAME}.
+
+Citeste CLAUDE.md (Storage Performance Rules) si codul modulului.
+
+Verifica:
+1. N+1 QUERIES: storage.list() + get() in loop? Ar trebui exportAll()
+2. LARGE PAYLOADS: Se incarca date inutile? lightweight: true folosit?
+3. RE-RENDERS: useEffect-uri care trigger-uiesc re-render excesiv?
+4. BUNDLE SIZE: Import-uri heavy (librarii intregi vs tree-shaking)?
+5. API CALLS: Request-uri redundante? Lipseste caching?
+6. DB QUERIES: Lipsesc indexuri? SELECT * in loc de select specific?
+7. MEMORY: Global singletons care cresc nelimitat? Cache fara TTL?
+
+Propune optimizarile ordonate dupa impact.
+Aplica doar dupa aprobare.`,
+ },
+ ],
+ },
+ {
+ id: "session",
+ label: "Sesiune & Continuare",
+ icon: ,
+ description: "Prompturi pentru inceperea sau continuarea sesiunilor de lucru",
+ prompts: [
+ {
+ id: "continue-tasklist",
+ title: "Continuare din sesiunea anterioara",
+ description: "Reia lucrul de unde am ramas, cu verificare task list",
+ tags: ["regular", "session"],
+ prompt: `Continuam din sesiunea anterioara.
+
+Citeste CLAUDE.md, MEMORY.md si docs/MODULE-MAP.md.
+Verifica memory/ pentru context despre ce s-a lucrat recent.
+
+Apoi:
+1. Citeste ROADMAP.md (daca exista) pentru task list-ul curent
+2. Verifica git log --oneline -20 sa vezi ce s-a comis recent
+3. Verifica git status sa vezi daca sunt schimbari uncommited
+4. Rezuma ce s-a facut si ce a ramas
+5. Intreaba-ma cum vreau sa continuam
+
+Nu incepe sa lucrezi fara confirmare.
+npx next build TREBUIE sa treaca inainte de orice schimbare.`,
+ },
+ {
+ id: "fresh-session",
+ title: "Sesiune noua — orientare",
+ description: "Prima sesiune sau sesiune dupa pauza lunga — ia-ti bearings",
+ tags: ["regular", "session"],
+ prompt: `Sesiune noua pe ArchiTools.
+
+Citeste in ordine:
+1. CLAUDE.md (context proiect + reguli)
+2. memory/MEMORY.md (index memorii)
+3. Fiecare fisier din memory/ (context sesiuni anterioare)
+4. git log --oneline -20 (activitate recenta)
+5. git status (stare curenta)
+6. docs/MODULE-MAP.md (harta module)
+
+Dupa ce ai citit tot, da-mi un rezumat de 5-10 randuri:
+- Ce s-a facut recent
+- Ce e in progress / neterminat
+- Ce probleme sunt cunoscute
+- Recomandarea ta pentru ce sa facem azi
+
+Asteapta confirmarea mea inainte de a incepe.`,
+ },
+ {
+ id: "review-refactor",
+ title: "Code review & refactoring",
+ description: "Review si curatare cod pe o zona specifica",
+ tags: ["periodic", "review"],
+ variables: ["TARGET"],
+ prompt: `Fa code review pe: {TARGET}
+
+Citeste CLAUDE.md si codul tinta complet.
+
+Verifica:
+1. PATTERN COMPLIANCE: Urmeaza conventiile din CLAUDE.md?
+2. TYPE SAFETY: TypeScript strict — sunt tipuri corecte? Null checks?
+3. ERROR HANDLING: Catch blocks complete? Promise-uri handled?
+4. NAMING: English code, Romanian UI? Consistent cu restul?
+5. COMPLEXITY: Functii prea lungi? Logica duplicata?
+6. SECURITY: Input validation? Auth checks?
+7. PERFORMANCE: N+1 queries? Re-renders inutile?
+
+Raporteaza gasirile ordonate dupa severitate.
+NU aplica refactoring fara listarea schimbarilor propuse si aprobare.
+Refactoring-ul trebuie sa fie minimal — nu rescrie ce functioneaza.`,
+ },
+ {
+ id: "full-audit",
+ title: "Audit complet codebase",
+ description: "Scanare completa: cod mort, consistenta, securitate, documentatie",
+ tags: ["periodic", "audit"],
+ oneTime: true,
+ prompt: `Scopul acestei sesiuni este un audit complet al codebase-ului ArchiTools cu 3 obiective:
+
+1. REVIEW & CLEANUP: Cod mort, dependinte neutilizate, TODO/FIXME, consistenta module
+2. SIGURANTA IN PRODUCTIE: SQL injection, auth gaps, race conditions, data integrity
+3. DOCUMENTATIE: CLAUDE.md actualizat, docs/ la zi, memory/ updatat
+
+Citeste CLAUDE.md si MEMORY.md inainte de orice.
+Foloseste agenti Explore in paralel (minim 5 simultan) pentru scanare.
+
+Grupeaza gasirile in: CRITICAL / IMPORTANT / NICE-TO-HAVE
+NU modifica cod fara sa listezi mai intai toate schimbarile propuse.
+npx next build TREBUIE sa treaca dupa fiecare schimbare.
+Commit frecvent cu mesaje descriptive.`,
+ },
+ ],
+ },
+ {
+ id: "docs",
+ label: "Documentatie & Meta",
+ icon: ,
+ description: "Update documentatie, CLAUDE.md, memory, si meta-prompting",
+ prompts: [
+ {
+ id: "update-claudemd",
+ title: "Actualizeaza CLAUDE.md",
+ description: "Sincronizeaza CLAUDE.md cu starea actuala a codului",
+ tags: ["periodic", "docs"],
+ prompt: `CLAUDE.md trebuie actualizat sa reflecte starea curenta a proiectului.
+
+Pasi:
+1. Citeste CLAUDE.md curent
+2. Verifica fiecare sectiune contra codului real:
+ - Module table: sunt toate modulele? Versiuni corecte?
+ - Stack: versiuni la zi?
+ - Conventions: se respecta?
+ - Common Pitfalls: mai sunt relevante? Lipsesc altele noi?
+ - Infrastructure: porturi/servicii corecte?
+3. Citeste docs/MODULE-MAP.md — e la zi?
+4. Citeste docs/ARCHITECTURE-QUICK.md — e la zi?
+
+Propune schimbarile necesare inainte de a le aplica.
+Target: CLAUDE.md sub 200 linii, informatii derivabile din cod mutate in docs/.`,
+ },
+ {
+ id: "update-memory",
+ title: "Actualizeaza memory/",
+ description: "Curata memorii vechi si adauga context nou",
+ tags: ["periodic", "meta"],
+ prompt: `Verifica si actualizeaza memory/ files.
+
+Citeste memory/MEMORY.md si fiecare fisier indexat.
+
+Pentru fiecare memorie:
+1. E inca relevanta? Daca nu, sterge-o.
+2. Informatia e la zi? Daca nu, actualizeaz-o.
+3. Informatia e derivabila din cod? Daca da, sterge-o (redundanta).
+
+Adauga memorii NOI pentru:
+- Decizii arhitecturale recente care nu sunt in CLAUDE.md
+- Feedback-ul meu din aceasta sesiune (daca am corectat ceva)
+- Starea task-urilor in progress
+
+NU salva in memory: cod, structura fisierelor, git history — astea se pot citi direct.`,
+ },
+ {
+ id: "improve-prompts",
+ title: "Imbunatateste prompturile",
+ description: "Meta-prompt: analizeaza si rafineaza prompturile din aceasta pagina",
+ tags: ["periodic", "meta"],
+ prompt: `Citeste codul paginii /prompts (src/app/(modules)/prompts/page.tsx).
+
+Analizeaza fiecare prompt din CATEGORIES:
+1. E clar si specific? Lipseste context?
+2. Pasii sunt in ordine logica?
+3. Include safety nets (build check, aprobare)?
+4. E prea lung/scurt?
+5. Variabilele sunt utile?
+
+Apoi gandeste: ce prompturi noi ar fi utile bazat pe:
+- Tipurile de task-uri care apar frecvent in git log
+- Module care sunt modificate des
+- Greseli care se repeta (din memory/ feedback)
+
+Propune imbunatatiri si prompturi noi. Aplica dupa aprobare.`,
+ },
+ ],
+ },
+ {
+ id: "quick",
+ label: "Quick Actions",
+ icon: ,
+ description: "Prompturi scurte pentru actiuni rapide si frecvente",
+ prompts: [
+ {
+ id: "quick-build",
+ title: "Verifica build",
+ description: "Build check rapid",
+ tags: ["quick"],
+ prompt: `Ruleaza npx next build si raporteaza rezultatul. Daca sunt erori, propune fix-uri.`,
+ },
+ {
+ id: "deploy-prep",
+ title: "Pregatire deploy",
+ description: "Checklist complet inainte de push la productie",
+ tags: ["regular", "deploy"],
+ prompt: `Pregateste deploy-ul pe productie (tools.beletage.ro).
+
+Checklist:
+1. git status — totul comis? Fisiere untracked suspecte?
+2. npx next build — zero erori?
+3. docker-compose.yml — env vars noi necesare?
+4. prisma/schema.prisma — s-a schimbat? Necesita migrate?
+5. middleware.ts — rute noi excluse daca e cazul?
+6. Verifica ca nu sunt credentials hardcoded in cod
+7. git log --oneline -5 — commit messages descriptive?
+
+Daca totul e ok, confirma "Ready to push".
+Daca sunt probleme, listeaza-le cu fix propus.
+
+IMPORTANT: Dupa push, deploy-ul e MANUAL in Portainer.
+Daca schema Prisma s-a schimbat, trebuie migrate pe server.`,
+ },
+ {
+ id: "debug-unknown",
+ title: "Debug eroare necunoscuta",
+ description: "Investigheaza o eroare fara cauza evidenta",
+ tags: ["regular", "debug"],
+ variables: ["ERROR_DESCRIPTION"],
+ prompt: `Am o eroare: {ERROR_DESCRIPTION}
+
+Investigheaza:
+1. Citeste stack trace-ul (daca exista) — gaseste fisierul root cause
+2. Citeste codul relevant — nu ghici, verifica
+3. Cauta pattern-uri similare in codebase (grep)
+4. Verifica git log recent — s-a schimbat ceva care ar cauza asta?
+5. Verifica env vars — lipseste ceva?
+6. Verifica Prisma schema — model-ul e in sync?
+
+Dupa investigatie:
+- Explica cauza root (nu simptomul)
+- Propune fix minim
+- Aplica fix dupa aprobare
+- npx next build TREBUIE sa treaca`,
+ },
+ {
+ id: "quick-deps",
+ title: "Update dependinte",
+ description: "Verifica si actualizeaza package.json",
+ tags: ["quick"],
+ prompt: `Verifica daca sunt update-uri disponibile pentru dependintele din package.json.
+
+Ruleaza: npm outdated
+Listeaza ce se poate actualiza safe (minor/patch).
+NU actualiza major versions fara discutie.
+Dupa update: npx next build TREBUIE sa treaca.`,
+ },
+ {
+ id: "quick-git-cleanup",
+ title: "Git cleanup",
+ description: "Verifica starea repo-ului si curata",
+ tags: ["quick"],
+ prompt: `Verifica starea repo-ului:
+1. git status — fisiere uncommited?
+2. git log --oneline -10 — commit-uri recente ok?
+3. Fisiere untracked suspecte? (.env, tmp files, build artifacts)
+4. .gitignore — lipseste ceva?
+
+Propune cleanup daca e nevoie.`,
+ },
+ {
+ id: "quick-type-check",
+ title: "Verificare tipuri modul",
+ description: "Verifica typesafety pe un modul specific",
+ tags: ["quick"],
+ variables: ["MODULE_NAME"],
+ prompt: `Citeste src/modules/{MODULE_NAME}/types.ts si verifica:
+1. Toate interfetele sunt folosite? (grep imports)
+2. Sunt tipuri any sau unknown neutipizate?
+3. Optional fields corect marcate cu ?
+4. Consistenta cu Prisma schema (daca modulul foloseste DB direct)
+Raporteaza rapid ce nu e in regula.`,
+ },
+ ],
+ },
+];
+
+// ─── Copy button component ─────────────────────────────────────────
+
+function CopyButton({ text, className }: { text: string; className?: string }) {
+ const [copied, setCopied] = useState(false);
+
+ const handleCopy = useCallback(async () => {
+ await navigator.clipboard.writeText(text);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ }, [text]);
+
+ return (
+
+ );
+}
+
+// ─── Prompt Card ───────────────────────────────────────────────────
+
+function PromptCard({ prompt }: { prompt: PromptTemplate }) {
+ const [expanded, setExpanded] = useState(false);
+ const [done, setDone] = useState(false);
+
+ // Persist one-time completion in localStorage
+ useEffect(() => {
+ if (prompt.oneTime) {
+ const stored = localStorage.getItem(`prompt-done-${prompt.id}`);
+ if (stored === "true") setDone(true);
+ }
+ }, [prompt.id, prompt.oneTime]);
+
+ const toggleDone = useCallback(() => {
+ const next = !done;
+ setDone(next);
+ localStorage.setItem(`prompt-done-${prompt.id}`, String(next));
+ }, [done, prompt.id]);
+
+ return (
+
+
+
+
+
+ {prompt.oneTime && (
+
+ )}
+
+
+
{prompt.description}
+
+ {prompt.tags.map((tag) => (
+
+ {tag}
+
+ ))}
+ {prompt.variables?.map((v) => (
+
+ {`{${v}}`}
+
+ ))}
+
+
+
+
+
+ {expanded && (
+
+
+
+ {prompt.prompt}
+
+
+
+
+ )}
+
+
+ );
+}
+
+// ─── Stats bar ─────────────────────────────────────────────────────
+
+function StatsBar() {
+ const totalPrompts = CATEGORIES.reduce((s, c) => s + c.prompts.length, 0);
+ const oneTimePrompts = CATEGORIES.reduce(
+ (s, c) => s + c.prompts.filter((p) => p.oneTime).length,
+ 0,
+ );
+ return (
+
+ {totalPrompts} prompturi
+ {oneTimePrompts} one-time
+ {CATEGORIES.length} categorii
+
+ );
+}
+
+// ─── Best practices sidebar ────────────────────────────────────────
+
+const BEST_PRACTICES = [
+ { icon: , text: "Incepe cu CLAUDE.md — da context inainte de task" },
+ { icon: , text: "Cere plan inainte de implementare" },
+ { icon: , text: "npx next build dupa fiecare schimbare" },
+ { icon: , text: "Nu refactoriza cand faci bugfix" },
+ { icon: , text: "O sesiune = un obiectiv clar" },
+ { icon: , text: "Verifica-ti munca: teste, build, manual" },
+ { icon: , text: "Listeaza schimbarile inainte de a le aplica" },
+ { icon: , text: "Actualizeaza memory/ la sfarsit de sesiune" },
+ { icon: , text: "/clear intre task-uri diferite" },
+ { icon: , text: "Dupa 2 corectii → /clear + prompt mai bun" },
+];
+
+// ─── Main Page ─────────────────────────────────────────────────────
+
+export default function PromptsPage() {
+ const [search, setSearch] = useState("");
+
+ const filtered = CATEGORIES.map((cat) => ({
+ ...cat,
+ prompts: cat.prompts.filter(
+ (p) =>
+ !search ||
+ p.title.toLowerCase().includes(search.toLowerCase()) ||
+ p.description.toLowerCase().includes(search.toLowerCase()) ||
+ p.tags.some((t) => t.toLowerCase().includes(search.toLowerCase())),
+ ),
+ })).filter((cat) => cat.prompts.length > 0);
+
+ return (
+
+ {/* Header */}
+
+
+
+ Claude Code Prompts
+
+
+ Biblioteca de prompturi optimizate pentru ArchiTools. Click pe titlu pentru a vedea, buton pentru a copia.
+
+
+
+
+ {/* Search */}
+
+ setSearch(e.target.value)}
+ className="flex-1 h-9 rounded-md border bg-background px-3 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring"
+ />
+ {search && (
+
+ )}
+
+
+
+ {/* Main content */}
+
+
+ {filtered.map((cat) => (
+
+ {cat.icon}
+ {cat.label}
+
+ {cat.prompts.length}
+
+
+ ))}
+
+
+ {filtered.map((cat) => (
+
+ {cat.description}
+ {cat.prompts.map((prompt) => (
+
+ ))}
+
+ ))}
+
+
+ {/* Sidebar */}
+
+
+
+
+
+ Best Practices
+
+
+ {BEST_PRACTICES.map((bp, i) => (
+
+ {bp.icon}
+ {bp.text}
+
+ ))}
+
+
+
+
+
+
+
+
+ Module disponibile
+
+
+ {MODULES.map((m) => (
+ {
+ navigator.clipboard.writeText(m);
+ }}>
+ {m}
+
+ ))}
+
+ Click pe modul = copiaza numele
+
+
+
+
+
+ );
+}