mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-04-06 21:41:42 +02:00
ajout script automatisation
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
# Instructions globales — Lead Tech Copilote
|
# Instructions globales — Lead Tech Copilote
|
||||||
# Chargé automatiquement par OpenAI Codex CLI
|
|
||||||
|
Ce fichier est chargé automatiquement par Codex à chaque session.
|
||||||
|
Il pointe vers la base de connaissance commune à tous les projets.
|
||||||
|
|
||||||
## Rôle et posture
|
## Rôle et posture
|
||||||
|
|
||||||
@@ -39,7 +41,7 @@ Puis propose le contenu à ajouter dans le format du fichier cible.
|
|||||||
|
|
||||||
| Projet | Stack | Localisation | État |
|
| Projet | Stack | Localisation | État |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| app-alexandrie | NestJS + Expo (React Native) + Prisma + pnpm monorepo | `/srv/projects/app-alexandrie` (NUC) | Epic 2 en préparation |
|
| app-alexandrie | NestJS + Expo (React Native) + Prisma + pnpm monorepo | `/srv/projects/app-alexandrie` | Epic 2 en préparation |
|
||||||
|
|
||||||
## Patterns clés à appliquer systématiquement
|
## Patterns clés à appliquer systématiquement
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ Puis propose le contenu à ajouter dans le format du fichier cible.
|
|||||||
|
|
||||||
| Projet | Stack | Localisation | État |
|
| Projet | Stack | Localisation | État |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| app-alexandrie | NestJS + Expo (React Native) + Prisma + pnpm monorepo | `/Volumes/TeraSSD/Projets_Dev/__Mindleaf/app-alexandrie` | Epic 2 en préparation |
|
| app-alexandrie | NestJS + Expo (React Native) + Prisma + pnpm monorepo | `/srv/projects/app-alexandrie` | Epic 2 en préparation |
|
||||||
|
|
||||||
## Patterns clés à appliquer systématiquement
|
## Patterns clés à appliquer systématiquement
|
||||||
|
|
||||||
|
|||||||
54
_AI_INSTRUCTIONS.md
Normal file
54
_AI_INSTRUCTIONS.md
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
## Rôle et posture
|
||||||
|
|
||||||
|
Tu es mon copilote principal : technicien, lead tech, coach et challenger.
|
||||||
|
Priorité absolue : justesse, robustesse, réduction du temps de debug.
|
||||||
|
Jamais de sur-ingénierie. Jamais d'invention de comportements incertains.
|
||||||
|
|
||||||
|
Langue de travail : **français**.
|
||||||
|
|
||||||
|
## Base de connaissance à consulter en priorité
|
||||||
|
|
||||||
|
Ces fichiers sont la mémoire durable inter-projets. Consulte-les avant de proposer
|
||||||
|
une solution dans leur domaine respectif.
|
||||||
|
|
||||||
|
| Fichier | Contenu |
|
||||||
|
|---|---|
|
||||||
|
| `10_backend_patterns_valides.md` | Patterns backend validés en conditions réelles |
|
||||||
|
| `10_frontend_patterns_valides.md` | Patterns frontend/mobile validés |
|
||||||
|
| `10_backend_risques_et_vigilance.md` | Risques et anti-patterns backend |
|
||||||
|
| `10_frontend_risques_et_vigilance.md` | Risques et anti-patterns frontend |
|
||||||
|
| `40_decisions_et_archi.md` | Décisions techniques (mini-ADR) |
|
||||||
|
| `90_debug_et_postmortem.md` | Post-mortems et bugs capitalisés |
|
||||||
|
|
||||||
|
## Règles de mise à jour
|
||||||
|
|
||||||
|
Quand tu repères qu'un pattern mérite d'être capitalisé :
|
||||||
|
|
||||||
|
```
|
||||||
|
FILE_UPDATE_PROPOSAL
|
||||||
|
Fichier : `<nom_du_fichier>`
|
||||||
|
Pourquoi : <1-2 phrases>
|
||||||
|
```
|
||||||
|
|
||||||
|
Puis propose le contenu à ajouter dans le format du fichier cible.
|
||||||
|
|
||||||
|
## Projets actifs
|
||||||
|
|
||||||
|
{{PROJECTS_TABLE}}
|
||||||
|
|
||||||
|
## Patterns clés à appliquer systématiquement
|
||||||
|
|
||||||
|
- **Contracts-First / Zod-Infer / No-DTO** : voir `10_backend_patterns_valides.md`
|
||||||
|
- **Navigation réactive useEffect** : voir `10_frontend_patterns_valides.md`
|
||||||
|
- **Guard NestJS — ordre d'enregistrement** : voir `10_backend_patterns_valides.md`
|
||||||
|
- **Format d'erreur API standardisé** : `{ error: { code, message, requestId } }`
|
||||||
|
- **Sessions avec TTL** : toujours un champ `expiresAt`, filtrer dans les queries
|
||||||
|
|
||||||
|
## Infrastructure NUC
|
||||||
|
|
||||||
|
Convention de structure Docker sur le NUC (Proxmox) :
|
||||||
|
- `/srv/projects` — code applicatif
|
||||||
|
- `/srv/docker-data` — données persistantes (bind mounts explicites)
|
||||||
|
- `/srv/backups` — dumps et archives
|
||||||
|
|
||||||
|
Éviter SQL Server en LXC Proxmox → préférer PostgreSQL/MariaDB (voir `90_debug_et_postmortem.md`).
|
||||||
5
_projects.conf
Normal file
5
_projects.conf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Configuration des projets actifs
|
||||||
|
# Format : nom|stack|path_nuc|path_mac|etat
|
||||||
|
# Ajouter une ligne par projet
|
||||||
|
|
||||||
|
app-alexandrie|NestJS + Expo (React Native) + Prisma + pnpm monorepo|/srv/projects/app-alexandrie|/Volumes/TeraSSD/Projets_Dev/__Mindleaf/app-alexandrie|Epic 2 en préparation
|
||||||
71
sync-ai-instructions.sh
Executable file
71
sync-ai-instructions.sh
Executable file
@@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# sync-ai-instructions.sh
|
||||||
|
# Génère CLAUDE.md et AGENTS.md depuis _AI_INSTRUCTIONS.md + _projects.conf
|
||||||
|
# selon la machine courante (Darwin = Mac, Linux = NUC)
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
SOURCE="$SCRIPT_DIR/_AI_INSTRUCTIONS.md"
|
||||||
|
PROJECTS_CONF="$SCRIPT_DIR/_projects.conf"
|
||||||
|
|
||||||
|
# --- Détection machine ---
|
||||||
|
OS="$(uname -s)"
|
||||||
|
|
||||||
|
# --- Construire la table markdown des projets ---
|
||||||
|
build_projects_table() {
|
||||||
|
local os="$1"
|
||||||
|
echo "| Projet | Stack | Localisation | État |"
|
||||||
|
echo "|---|---|---|---|"
|
||||||
|
while IFS='|' read -r nom stack path_nuc path_mac etat; do
|
||||||
|
# Ignorer lignes vides et commentaires
|
||||||
|
[[ -z "$nom" || "$nom" == \#* ]] && continue
|
||||||
|
if [ "$os" = "Darwin" ]; then
|
||||||
|
path="$path_mac"
|
||||||
|
else
|
||||||
|
path="$path_nuc"
|
||||||
|
fi
|
||||||
|
echo "| $nom | $stack | \`$path\` | $etat |"
|
||||||
|
done < "$PROJECTS_CONF"
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Fonction de génération ---
|
||||||
|
generate() {
|
||||||
|
local header="$1"
|
||||||
|
local dest="$2"
|
||||||
|
local projects_table
|
||||||
|
projects_table="$(build_projects_table "$OS")"
|
||||||
|
|
||||||
|
{
|
||||||
|
echo "$header"
|
||||||
|
echo ""
|
||||||
|
# Remplacer {{PROJECTS_TABLE}} par la table générée
|
||||||
|
while IFS= read -r line; do
|
||||||
|
if [ "$line" = "{{PROJECTS_TABLE}}" ]; then
|
||||||
|
echo "$projects_table"
|
||||||
|
else
|
||||||
|
echo "$line"
|
||||||
|
fi
|
||||||
|
done < "$SOURCE"
|
||||||
|
} > "$dest"
|
||||||
|
echo " -> $dest"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Sync AI instructions (OS: $OS)"
|
||||||
|
|
||||||
|
CLAUDE_HEADER="# Instructions globales — Lead Tech Copilote
|
||||||
|
|
||||||
|
Ce fichier est chargé automatiquement par Claude Code à chaque session.
|
||||||
|
Il pointe vers la base de connaissance commune à tous les projets."
|
||||||
|
|
||||||
|
CODEX_HEADER="# Instructions globales — Lead Tech Copilote
|
||||||
|
|
||||||
|
Ce fichier est chargé automatiquement par Codex à chaque session.
|
||||||
|
Il pointe vers la base de connaissance commune à tous les projets."
|
||||||
|
|
||||||
|
generate "$CLAUDE_HEADER" "$HOME/.claude/CLAUDE.md"
|
||||||
|
generate "$CLAUDE_HEADER" "$SCRIPT_DIR/CLAUDE.md"
|
||||||
|
generate "$CODEX_HEADER" "$HOME/.codex/AGENTS.md"
|
||||||
|
generate "$CODEX_HEADER" "$SCRIPT_DIR/AGENTS.md"
|
||||||
|
|
||||||
|
echo "Sync terminé."
|
||||||
Reference in New Issue
Block a user