*Généré le " . date('Y-m-d H:i:s') . "*\n\n"; $iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($rootDir, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST ); $fileCount = 0; foreach ($iterator as $file) { if ($file->isFile()) { // Chemin relatif propre $relativePath = str_replace($rootDir . DIRECTORY_SEPARATOR, '', $file->getPathname()); $relativePath = str_replace('\\', '/', $relativePath); // Uniformiser pour Windows // Vérification des dossiers ignorés $skip = false; foreach ($ignoredDirs as $ignored) { if (strpos($relativePath, $ignored) === 0) { $skip = true; break; } } if ($skip) continue; // Vérification de l'extension $ext = strtolower($file->getExtension()); if (!in_array($ext, $allowedExtensions)) continue; // On ignore ce script lui-même if ($file->getFilename() === 'generate_prompt.php') continue; // Lecture du contenu $content = file_get_contents($file->getPathname()); // Détermination du langage pour le bloc Markdown $lang = $ext === 'php' ? 'php' : ($ext === 'js' ? 'javascript' : $ext); // Formatage pour l'IA $output .= "### 📄 Fichier : `" . $relativePath . "`\n"; $output .= "```" . $lang . "\n"; $output .= $content . "\n"; $output .= "```\n\n"; $output .= "---\n\n"; $fileCount++; } } file_put_contents($outputFile, $output); echo "
Le fichier pachafamily_source.md a été généré à la racine de ton projet.
"; echo "$fileCount fichiers de code ont été fusionnés.
"; echo "Tu peux maintenant donner ce fichier à ta Gem PachaFamily !
"; echo "