chore(projects): refresh active-project example and gitignore local dirs

**Motivations:**
- Clarify active-project.json fields; ignore ad-hoc projects/<id>/ trees.

**Evolutions:**
- active-project.json.example: document default_env and optional notes.
- .gitignore: whitelist versioned projects/* entries; README and remote-deployed-data-ssh doc updates.
This commit is contained in:
Nicolas Cantu 2026-04-03 18:10:08 +02:00
parent 01f035cc7b
commit 77c0872d0b
4 changed files with 15 additions and 3 deletions

9
.gitignore vendored
View File

@ -9,5 +9,14 @@ services/docv/target/
# Surcharges locales pull-sync (cron) # Surcharges locales pull-sync (cron)
cron/config.local.env cron/config.local.env
# projects/ : ignorer tout répertoire d'id sous projects/ sauf les squelettes versionnés (conf, workspace, etc.)
projects/*
!projects/README.md
!projects/active-project.json.example
!projects/enso/
!projects/enso/**
!projects/smart_ide/
!projects/smart_ide/**
# Projet IDE actif (copie locale de active-project.json.example) # Projet IDE actif (copie locale de active-project.json.example)
projects/active-project.json projects/active-project.json

View File

@ -68,7 +68,7 @@ Objectif : indiquer **quel** `projects/<id>/` est actif pour léditeur et les
1. **Fichier local (recommandé)** 1. **Fichier local (recommandé)**
- Copier [`projects/active-project.json.example`](../projects/active-project.json.example) vers **`projects/active-project.json`**. - Copier [`projects/active-project.json.example`](../projects/active-project.json.example) vers **`projects/active-project.json`**.
- Ce fichier est **ignoré par Git** (voir racine `.gitignore`). - Ce fichier est **ignoré par Git** (voir racine `.gitignore`).
- Champs : **`id`** (obligatoire, ex. `enso`), **`default_env`** (optionnel : `test` | `pprod` | `prod`). - Champs : **`id`** (obligatoire, ex. `enso`), **`default_env`** (optionnel : `test` | `pprod` | `prod`). Lexemple versionné peut contenir dautres clés purement documentaires (ex. **`notes`**) ignorées par les automatisations.
2. **Paramètres du fichier workspace VS Code / Cursor** 2. **Paramètres du fichier workspace VS Code / Cursor**
- Dans le **`.code-workspace`** que vous ouvrez (ex. [`projects/enso/smart_ide.code-workspace`](../enso/smart_ide.code-workspace)), renseigner: - Dans le **`.code-workspace`** que vous ouvrez (ex. [`projects/enso/smart_ide.code-workspace`](../enso/smart_ide.code-workspace)), renseigner:

View File

@ -2,6 +2,8 @@
Ce répertoire, à la **racine du monorepo `smart_ide`**, ne contient que les **fichiers de configuration** attendus par **`ia_dev`** (`conf.json` par identifiant de projet). Ce nest **pas** le répertoire des **clones Git** des applications. Ce répertoire, à la **racine du monorepo `smart_ide`**, ne contient que les **fichiers de configuration** attendus par **`ia_dev`** (`conf.json` par identifiant de projet). Ce nest **pas** le répertoire des **clones Git** des applications.
Les **sous-répertoires** `projects/<id>/` non listés dans le **`.gitignore`** à la racine (exceptions pour les ids versionnés) restent **ignorés par Git** : pour versionner un nouvel id, ajouter les lignes `!projects/<id>/` et `!projects/<id>/**` à côté des exceptions existantes.
## Clones applicatifs (docv, stacks métier, etc.) ## Clones applicatifs (docv, stacks métier, etc.)
Les dépôts sources des produits (ex. backend **docv** sous un chemin du type `…/enso/docv`, autres apps) doivent vivre **ailleurs**, selon la convention du poste — typiquement un répertoire **frère** du monorepo, par ex. **`../projects/<nom>/`** (relatif à la racine `smart_ide`), **distinct** de `./projects/` ici. Les dépôts sources des produits (ex. backend **docv** sous un chemin du type `…/enso/docv`, autres apps) doivent vivre **ailleurs**, selon la convention du poste — typiquement un répertoire **frère** du monorepo, par ex. **`../projects/<nom>/`** (relatif à la racine `smart_ide`), **distinct** de `./projects/` ici.
@ -41,7 +43,7 @@ Chaque `projects/<id>/conf.json` peut contenir une clé **`smart_ide`** (hors p
### Projet actif pour léditeur / Cursor ### Projet actif pour léditeur / Cursor
1. Copier [`active-project.json.example`](./active-project.json.example) vers **`projects/active-project.json`** (fichier **non versionné**) et renseigner **`id`** (`smart_ide`, `enso`, …). 1. Copier [`active-project.json.example`](./active-project.json.example) vers **`projects/active-project.json`** (fichier **non versionné**) et renseigner **`id`** (`smart_ide`, `enso`, …). La clé optionnelle **`notes`** dans lexemple est informative ; les outils ne sen servent pas.
2. Dans un fichier **`.code-workspace`**, renseigner **`smartIde.activeProjectId`** dans **`settings`** (ex. [`enso/smart_ide.code-workspace`](./enso/smart_ide.code-workspace)). 2. Dans un fichier **`.code-workspace`**, renseigner **`smartIde.activeProjectId`** dans **`settings`** (ex. [`enso/smart_ide.code-workspace`](./enso/smart_ide.code-workspace)).
Les agents Cursor lisent cette convention via [`.cursor/rules/smart-ide-ia-dev-bridge.mdc`](../.cursor/rules/smart-ide-ia-dev-bridge.mdc). Les agents Cursor lisent cette convention via [`.cursor/rules/smart-ide-ia-dev-bridge.mdc`](../.cursor/rules/smart-ide-ia-dev-bridge.mdc).

View File

@ -1,4 +1,5 @@
{ {
"id": "smart_ide", "id": "smart_ide",
"default_env": "test" "default_env": "test",
"notes": "Copy this file to projects/active-project.json (gitignored). Field id must match an existing projects/<id>/conf.json. Field default_env is one of: test, pprod, prod — used by agents when the environment is not specified."
} }