diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..8fbe8e0 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,16 @@ +version: "3.8" +services: + dev: + build: + context: . + dockerfile: docker/Dockerfile.debian + image: 4nk-template-dev:debian + container_name: 4nk-template-dev + stdin_open: true + tty: true + working_dir: /work + volumes: + - ./:/work + - /var/run/docker.sock:/var/run/docker.sock + entrypoint: ["/bin/bash","-lc"] + command: ["sleep infinity"] diff --git a/docker/Dockerfile.debian b/docker/Dockerfile.debian index 9f38e54..b807743 100644 --- a/docker/Dockerfile.debian +++ b/docker/Dockerfile.debian @@ -3,9 +3,8 @@ FROM debian:12-slim ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get install -y --no-install-recommends \ - bash curl jq ca-certificates git \ + bash curl jq ca-certificates git docker.io docker-compose-plugin \ && rm -rf /var/lib/apt/lists/* WORKDIR /work ENTRYPOINT ["/bin/bash","-lc"] - diff --git a/runner/docker-compose.yml b/runner/docker-compose.yml index c7ef8ef..b48ab14 100644 --- a/runner/docker-compose.yml +++ b/runner/docker-compose.yml @@ -5,7 +5,7 @@ services: container_name: gitea-act-runner restart: unless-stopped env_file: - - ${HOME}/4nk_template/.env + - ${USERPROFILE}/.4nk_template/.env environment: - GITEA_RUNNER_LABELS=${RUNNER_LABELS:-self-hosted,linux} - GITEA_RUNNER_NAME=${RUNNER_NAME:-local-runner} diff --git a/scripts/agents/ai_prompt.sh b/scripts/agents/ai_prompt.sh index 16449e9..f84d462 100644 --- a/scripts/agents/ai_prompt.sh +++ b/scripts/agents/ai_prompt.sh @@ -4,6 +4,14 @@ set -euo pipefail # Utilitaire générique pour appeler l'API OpenAI Chat Completions. # Prérequis: variable d'environnement OPENAI_API_KEY et curl. +# Chargement env utilisateur (~/.4nk_template/.env) pour exécutions locales/CI docke +"$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/env/ensure_env.sh" || true +if [[ -f "${HOME}/.4nk_template/.env" ]]; then + set -a + . "${HOME}/.4nk_template/.env" + set +a +fi + for bin in curl jq; do if ! command -v "$bin" >/dev/null 2>&1; then echo "$bin manquant. Installez $bin." >&2 diff --git a/scripts/agents/compilation_agent.sh b/scripts/agents/compilation_agent.sh index 4b6f991..c7e74c2 100644 --- a/scripts/agents/compilation_agent.sh +++ b/scripts/agents/compilation_agent.sh @@ -16,11 +16,11 @@ else echo "- Étapes de compilation non détectées dans la CI (à ajouter si nécessaire)." >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Précise une cadence de compilation (avant refactor/push, après update deps) et les conditions de blocage si erreurs. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/dependances_agent.sh b/scripts/agents/dependances_agent.sh index 6e48f56..5f1293e 100644 --- a/scripts/agents/dependances_agent.sh +++ b/scripts/agents/dependances_agent.sh @@ -15,11 +15,11 @@ if grep -q "security-audit" .gitea/workflows/ci.yml 2>/dev/null; then echo "- Job CI security-audit détecté." >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Établis une politique de dépendances: ajout automatique si justifié, vérification des dernières versions stables, documentation des impacts (ARCHITECTURE, CONFIGURATION, CHANGELOG), et rollback. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/deployment_agent.sh b/scripts/agents/deployment_agent.sh index 71c68f3..21ce31a 100644 --- a/scripts/agents/deployment_agent.sh +++ b/scripts/agents/deployment_agent.sh @@ -17,11 +17,11 @@ for f in docs/DEPLOYMENT.md docs/RELEASE_PLAN.md .gitea/workflows/ci.yml; do done if [[ $ok -eq 1 ]]; then echo "- Pré‑requis documentaires présents." >> "$SUMMARY_FILE"; fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Établis une checklist de déploiement minimale (pré‑checks, variables, smoke tests, rollback, post‑deploy) adaptée à un template CI Gitea. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/derogations_locales_agent.sh b/scripts/agents/derogations_locales_agent.sh index 89cbef0..83e232c 100644 --- a/scripts/agents/derogations_locales_agent.sh +++ b/scripts/agents/derogations_locales_agent.sh @@ -16,11 +16,11 @@ else echo "- Aucun fichier de dérogations locales détecté." >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Définis un format pour enregistrer les dérogations (path, raison, propriétaire, échéance), tolérance CI, et revue périodique. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/documentation_agent.sh b/scripts/agents/documentation_agent.sh index a4ba05f..7c426c8 100644 --- a/scripts/agents/documentation_agent.sh +++ b/scripts/agents/documentation_agent.sh @@ -22,11 +22,11 @@ else for m in "${missing[@]}"; do echo " - $m" >> "$SUMMARY_FILE"; done fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Élabore une liste courte d’améliorations documentation (INDEX à jour, traçabilité changes ↔ CHANGELOG, sections sécurité/tests/déploiement). -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/documents_bureautiques_agent.sh b/scripts/agents/documents_bureautiques_agent.sh index 4bdc1e7..f6fc469 100644 --- a/scripts/agents/documents_bureautiques_agent.sh +++ b/scripts/agents/documents_bureautiques_agent.sh @@ -19,11 +19,11 @@ else echo "- Utiliser docx2txt pour extraction et documenter dans docs/INDEX.md" >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Décris une procédure standard de traitement des .docx (docx2txt, import, traçabilité dans docs/INDEX.md) et les risques à éviter. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/donnees_csv_agent.sh b/scripts/agents/donnees_csv_agent.sh index 8b2d910..9467409 100644 --- a/scripts/agents/donnees_csv_agent.sh +++ b/scripts/agents/donnees_csv_agent.sh @@ -18,11 +18,11 @@ else echo "$csvs" | sed 's/^/ - /' >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' À partir des CSV présents (en‑têtes multi‑lignes possibles), propose une méthode pour définir toutes les colonnes, types et validations, et pointer vers les docs à mettre à jour (API, ARCHITECTURE, USAGE). -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/fondation_agent.sh b/scripts/agents/fondation_agent.sh index 68817aa..ab8b5f2 100644 --- a/scripts/agents/fondation_agent.sh +++ b/scripts/agents/fondation_agent.sh @@ -18,11 +18,11 @@ done if [[ $issues -eq 0 ]]; then echo "- Conformité éditoriale de base: OK (présence des fichiers clés)." >> "$SUMMARY_FILE"; fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Évalue la conformité éditoriale (français, pas d’exemples applicatifs, intro/conclusion) et liste 5 actions d’amélioration priorisées. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/frontend_agent.sh b/scripts/agents/frontend_agent.sh index 71b80a1..bfbdaed 100644 --- a/scripts/agents/frontend_agent.sh +++ b/scripts/agents/frontend_agent.sh @@ -9,12 +9,12 @@ SUMMARY_FILE="$OUTPUT_DIR/frontend_agent.md" echo "# Agent Frontend" > "$SUMMARY_FILE" echo >> "$SUMMARY_FILE" -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Définis des principes front: code splitting (React.lazy/Suspense), centralisation d’état (Redux/Context), abstraction des services, et tests associés. -P +EOF ) pushd "$TARGET_DIR" >/dev/null -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/gitea_agent.sh b/scripts/agents/gitea_agent.sh index cdd7081..2ba3f21 100644 --- a/scripts/agents/gitea_agent.sh +++ b/scripts/agents/gitea_agent.sh @@ -20,11 +20,11 @@ else echo "- Manquants:" >> "$SUMMARY_FILE"; for m in "${missing[@]}"; do echo " - $m" >> "$SUMMARY_FILE"; done fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Propose des vérifications CI additionnelles Gitea (lint, tests, sécurité, scripts exécutables) et notifications en cas d’échecs. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/open_source_agent.sh b/scripts/agents/open_source_agent.sh index b653f63..62e7c6a 100644 --- a/scripts/agents/open_source_agent.sh +++ b/scripts/agents/open_source_agent.sh @@ -20,11 +20,11 @@ else echo "- Manquants:" >> "$SUMMARY_FILE"; for m in "${missing[@]}"; do echo " - $m" >> "$SUMMARY_FILE"; done fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Propose une checklist pour préparer l’ouverture open source (gouvernance, CI, sécurité, documentation) compatible avec Gitea. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/performance_agent.sh b/scripts/agents/performance_agent.sh index 4982a6b..820ad8c 100644 --- a/scripts/agents/performance_agent.sh +++ b/scripts/agents/performance_agent.sh @@ -16,11 +16,11 @@ else echo "- Dossier tests/performance manquant." >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Propose un plan minimal de tests de performance reproductibles (outillage, métriques, critères de succès) et archivage des rapports. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/qualite_formelle.sh b/scripts/agents/qualite_formelle.sh index 8f0d255..7ed334a 100644 --- a/scripts/agents/qualite_formelle.sh +++ b/scripts/agents/qualite_formelle.sh @@ -1,6 +1,14 @@ #!/usr/bin/env bash set -euo pipefail +# Chargement env utilisateur (~/.4nk_template/.env) +"$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/env/ensure_env.sh" || true +if [[ -f "${HOME}/.4nk_template/.env" ]]; then + set -a + . "${HOME}/.4nk_template/.env" + set +a +fi + TARGET_DIR="${1:-.}" OUTPUT_DIR="${2:-tests/reports/agents}" mkdir -p "$OUTPUT_DIR" @@ -21,11 +29,11 @@ if [[ $issues -eq 0 ]]; then echo "- Aucun problème formel bloquant détecté." >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Évalue la qualité formelle (français uniquement, typographie, absence d’exemples applicatifs, intro/conclusion) et propose 5 recommandations priorisées. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/quality_tech.sh b/scripts/agents/quality_tech.sh index 5daabe0..b9a62e8 100644 --- a/scripts/agents/quality_tech.sh +++ b/scripts/agents/quality_tech.sh @@ -1,6 +1,14 @@ #!/usr/bin/env bash set -euo pipefail +# Chargement env utilisateur (~/.4nk_template/.env) +"$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/env/ensure_env.sh" || true +if [[ -f "${HOME}/.4nk_template/.env" ]]; then + set -a + . "${HOME}/.4nk_template/.env" + set +a +fi + TARGET_DIR="${1:-.}" OUTPUT_DIR="${2:-tests/reports/agents}" mkdir -p "$OUTPUT_DIR" @@ -74,11 +82,11 @@ if [[ "$HAS_SHELL_PWSH" -eq 1 && "$HAS_PWSH" -eq 1 ]]; then fi # IA (optionnelle) -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Analyse la conformité qualité technique du dépôt selon AGENTS.md et la CI. Priorise: lint/format/type-check, structure de tests, cohérence docs/CI, sécurité basique. Propose 5 actions concrètes. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/resolution_agent.sh b/scripts/agents/resolution_agent.sh index c8a8e35..d803f3b 100644 --- a/scripts/agents/resolution_agent.sh +++ b/scripts/agents/resolution_agent.sh @@ -16,11 +16,11 @@ else echo "- Dossier archive/ manquant (recommandé pour REX)." >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Décris la boucle de triage complète (repro minimale, logs, bissection, hypothèses, tests ciblés, correctif, non‑régression) et quand produire un REX. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/run.ps1 b/scripts/agents/run.ps1 index 4accb1a..58d0311 100644 --- a/scripts/agents/run.ps1 +++ b/scripts/agents/run.ps1 @@ -62,7 +62,7 @@ switch ($Agent) { $required = @('LICENSE','CONTRIBUTING.md','CODE_OF_CONDUCT.md','docs/OPEN_SOURCE_CHECKLIST.md') foreach ($f in $required) { if (-not (Test-Path $f)) { $missing += $f } } $content = @('# Agent Open Source', '', '## Résultats (fallback PowerShell)') - if ($missing.Count -eq 0) { $content += '- Pré‑requis open source présents.' } + if ($missing.Count -eq 0) { $content += '- Pre-requis open source présents.' } else { $content += '- Manquants:'; $missing | ForEach-Object { $content += " - $_" } } Write-Report 'open_source_agent.md' $content } @@ -95,7 +95,7 @@ switch ($Agent) { 'ssh-scripts' { $found = @(); $paths = @('scripts/auto-ssh-push.sh','scripts/init-ssh-env.sh','scripts/setup-ssh-ci.sh','scripts/scripts/auto-ssh-push.sh','scripts/scripts/init-ssh-env.sh','scripts/scripts/setup-ssh-ci.sh') foreach ($p in $paths) { if (Test-Path $p) { $found += $p } } - $content = @('# Agent SSH & scripts', '', '## Résultats (fallback PowerShell)') + $content = @('# Agent SSH et scripts', '', '## Résultats (fallback PowerShell)') if ($found.Count -gt 0) { $content += '- Scripts trouvés:'; $found | ForEach-Object { $content += " - $_" } } else { $content += '- Aucun script standard détecté.' } if (Test-Path 'docs/SSH_UPDATE.md') { $content += '- docs/SSH_UPDATE.md présent.' } Write-Report 'ssh_scripts_agent.md' $content diff --git a/scripts/agents/run.sh b/scripts/agents/run.sh index 38092ae..91b4cd3 100644 --- a/scripts/agents/run.sh +++ b/scripts/agents/run.sh @@ -26,6 +26,7 @@ Agents: Frontend: frontend Open source et CI: open-source, gitea, versionnage, securite, deploiement Synchronisation: sync-template, derogations-locales + Runner: runne all Par défaut: all USAGE @@ -34,6 +35,8 @@ USAGE AGENT="${3:-all}" case "$AGENT" in + runner) + "$DIR/runner_agent.sh" "$TARGET_DIR" "$OUTPUT_DIR" ;; quality-tech|qualite-technique) "$DIR/quality_tech.sh" "$TARGET_DIR" "$OUTPUT_DIR" ;; qualite-formelle|fondation) @@ -75,6 +78,7 @@ case "$AGENT" in derogations-locales) "$DIR/derogations_locales_agent.sh" "$TARGET_DIR" "$OUTPUT_DIR" ;; all) + "$DIR/runner_agent.sh" "$TARGET_DIR" "$OUTPUT_DIR" || true "$DIR/quality_tech.sh" "$TARGET_DIR" "$OUTPUT_DIR" "$DIR/qualite_formelle.sh" "$TARGET_DIR" "$OUTPUT_DIR" "$DIR/fondation_agent.sh" "$TARGET_DIR" "$OUTPUT_DIR" || true diff --git a/scripts/agents/runner_agent.sh b/scripts/agents/runner_agent.sh new file mode 100644 index 0000000..ede54ee --- /dev/null +++ b/scripts/agents/runner_agent.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -euo pipefail + +TARGET_DIR="${1:-.}" +OUTPUT_DIR="${2:-tests/reports/agents}" + +mkdir -p "${OUTPUT_DIR}" +report="${OUTPUT_DIR}/runner_agent.md" + +echo "# Agent Runner" >"${report}" +echo >>"${report}" + +if ! command -v docker >/dev/null 2>&1; then + echo "- Docker non détecté sur l'hôte. Impossible de gérer le runner." >>"${report}" + exit 0 +fi + +if [[ -f "runner/docker-compose.yml" ]]; then + ( + cd runne + # Démarre (ou met à jour) le runne + docker compose up -d || true + ) + echo "- Runner démarré/présent via docker compose (runner/docker-compose.yml)." >>"${report}" +else + echo "- Fichier runner/docker-compose.yml introuvable; aucun démarrage effectué." >>"${report}" +fi + +echo "- Rapports: ${report}" >>"${report}" +exit 0 + diff --git a/scripts/agents/security_agent.sh b/scripts/agents/security_agent.sh index a83d883..dbe43e4 100644 --- a/scripts/agents/security_agent.sh +++ b/scripts/agents/security_agent.sh @@ -21,11 +21,11 @@ else echo "- scripts/security/audit.sh introuvable ou non exécutable." >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' À partir d’un dépôt template, propose 5 contrôles sécurité CI/CD additionnels (secrets, permissions, dépendances, scans) et un ordre de priorité. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/ssh_scripts_agent.sh b/scripts/agents/ssh_scripts_agent.sh index 0335526..e6066af 100644 --- a/scripts/agents/ssh_scripts_agent.sh +++ b/scripts/agents/ssh_scripts_agent.sh @@ -27,11 +27,11 @@ if [[ $found -eq 0 ]]; then echo "- Scripts SSH standard introuvables (vérifier if [[ -f docs/SSH_UPDATE.md ]]; then echo "- docs/SSH_UPDATE.md présent." >> "$SUMMARY_FILE"; fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Propose une checklist de conformité SSH (permissions, secrets CI, idempotence, journalisation non sensible) et intégration de contrôles CI. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/structure_agent.sh b/scripts/agents/structure_agent.sh index 79bfe32..68eaf6d 100644 --- a/scripts/agents/structure_agent.sh +++ b/scripts/agents/structure_agent.sh @@ -21,11 +21,11 @@ else for m in "${missing[@]}"; do echo " - $m" >> "$SUMMARY_FILE"; done fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Vérifie l’alignement avec l’arborescence 4NK_node et propose 5 corrections prioritaires (créations/archives/métadonnées) si des écarts sont détectés. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/sync_template_agent.sh b/scripts/agents/sync_template_agent.sh index 5ab5b64..5cf7f12 100644 --- a/scripts/agents/sync_template_agent.sh +++ b/scripts/agents/sync_template_agent.sh @@ -22,11 +22,11 @@ else echo "- Manifeste .4nk-sync.yml manquant." >> "$SUMMARY_FILE" fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Propose une procédure de synchronisation contrôlée (PR dédiée, vérif checksums/manifest_checksum, mise à jour TEMPLATE_VERSION, mise à jour CHANGELOG/INDEX). -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/tests_agent.sh b/scripts/agents/tests_agent.sh index af5e690..5b380ea 100644 --- a/scripts/agents/tests_agent.sh +++ b/scripts/agents/tests_agent.sh @@ -1,6 +1,14 @@ #!/usr/bin/env bash set -euo pipefail +# Chargement env utilisateur (~/.4nk_template/.env) +"$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/env/ensure_env.sh" || true +if [[ -f "${HOME}/.4nk_template/.env" ]]; then + set -a + . "${HOME}/.4nk_template/.env" + set +a +fi + TARGET_DIR="${1:-.}" OUTPUT_DIR="${2:-tests/reports/agents}" mkdir -p "$OUTPUT_DIR" @@ -23,11 +31,11 @@ else for m in "${missing[@]}"; do echo " - $m" >> "$SUMMARY_FILE"; done fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Propose un plan court pour renforcer la pyramide de tests (unit, integration, connectivity, external, performance) pour ce template, avec 5 actions. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/agents/versionnage_agent.sh b/scripts/agents/versionnage_agent.sh index 26177b7..20ccbaa 100644 --- a/scripts/agents/versionnage_agent.sh +++ b/scripts/agents/versionnage_agent.sh @@ -16,11 +16,11 @@ for f in CHANGELOG.md TEMPLATE_VERSION; do done if [[ $ok -eq 1 ]]; then echo "- CHANGELOG et TEMPLATE_VERSION présents." >> "$SUMMARY_FILE"; fi -PROMPT=$(cat <<'P' +PROMPT=$(cat <<'EOF' Décris la procédure d’alignement version ↔ changelog ↔ tag git (latest vs wip) et conditions de blocage release. -P +EOF ) -"scripts/agents/ai_prompt.sh" "$PROMPT" >> "$SUMMARY_FILE" || true +scripts/agents/ai_prompt.sh "$PROMPT" >> "$SUMMARY_FILE" || true echo "Rapport: $SUMMARY_FILE" popd >/dev/null diff --git a/scripts/scripts/auto-ssh-push.sh b/scripts/scripts/auto-ssh-push.sh index 653b59c..f635231 100644 --- a/scripts/scripts/auto-ssh-push.sh +++ b/scripts/scripts/auto-ssh-push.sh @@ -35,7 +35,7 @@ auto_push() { # Ajouter tous les changements git add . - # Ne pas commiter si rien à commiter + # Ne pas commiter si rien à commite if [[ -z "$(git diff --cached --name-only)" ]]; then echo "ℹ️ Aucun changement indexé. Skip commit/push." return 0