Aligner les règles agent sur le modèle entreprise/projet/ops.

Conserve les conventions Inscription sous projet/ et ajoute ops Git/deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-19 12:05:59 -04:00
parent 211f1e2638
commit da4de58b08
11 changed files with 169 additions and 0 deletions

View File

@ -0,0 +1,21 @@
---
description: Checklist agent — monter un nouveau projet sur le modèle Progiweb
alwaysApply: true
---
# Checklist nouveau projet (agent)
Quand l'utilisateur demande de reproduire le modèle Reader / Inscription / CRM :
1. Créer la structure `.cursor/rules/{entreprise,projet,ops}/` (copier `entreprise/` depuis un projet déjà aligné).
2. Remplir `ops/20-parametres.mdc` (URLs Gitea, Bitbucket, chemins serveur, webhook, SSH).
3. Remplir `ops/20-git-deploy-playbook.mdc` (layout git root : `$HOME` vs `public_html`).
4. Remplir `projet/` (stack, conventions, préfixe JIRA).
5. Windows : remote Gitea, branche `dev`, `.gitignore` secrets / runtime.
6. Versionner `deploy_dev.php` au bon endroit (docroot) **avant** d'activer le webhook.
7. Serveur : `~/deploy/deploy_dev.sh` (chemins absolus), git init/fetch sur le bon root, tester `curl` webhook.
8. Gitea : webhook push → URL `deploy_dev.php` ; miroir Bitbucket avec sync **à chaque soumission** + intervalle filet (ex. `1h`).
9. Test bout en bout : push `dev` → commit visible sur Gitea, serveur, Bitbucket.
10. Secrets uniquement dans 1Password (référencer le titre de l'item dans `ops/20-parametres.mdc`).
Ne pas inventer Bitbucket SSH sur le serveur : le serveur tire depuis Gitea local (`127.0.0.1:3000`) en général.

View File

@ -0,0 +1,43 @@
---
description: Progiweb — modèle Git / Gitea / Bitbucket / serveur (entreprise)
alwaysApply: true
---
# Modèle Git entreprise (Progiweb)
Référentiel agent. Détails par projet → `ops/20-parametres.mdc` et `ops/20-git-deploy-playbook.mdc`.
## Rôles
| Système | Rôle |
|---|---|
| **Gitea** (`git.progiweb.ca`) | Source de vérité — push depuis Windows |
| **Bitbucket** | Miroir / backup opérationnel hors serveurs |
| **Serveur (cPanel)** | Déploiement uniquement — **jamais** de commits sur le serveur |
## Branches
- Travail quotidien : **`dev`**
- Prod : **`master`** (quand le projet l'utilise ; ne pas inventer le flux prod)
- Ne pas pousser `master` sans demande explicite
## Flux nominal
```
Windows --push--> Gitea(dev) --webhook--> serveur (deploy_dev)
|
+--miroir push--> Bitbucket(dev)
```
## Déploiement (règles absolues)
- Script shell hors webroot : typiquement `~/deploy/deploy_dev.sh`
- Déclencheur versionné dans le **docroot** : `deploy_dev.php` (sinon `git clean -fd` le détruit)
- Le script fait : `git fetch` → `git reset --hard FETCH_HEAD` → `git clean` **ciblé** (jamais un clean aveugle sur tout le home cPanel)
- Via PHP/Apache, **`HOME` est souvent absent** → chemins **absolus** dans le `.sh`
- Auth Gitea Windows : token (éviter OAuth HTTP « Bad Request »)
- Auth miroir Bitbucket : user `x-token-auth` + Repository Access Token (1Password) — pas le mot de passe web
## Nouveau projet
Suivre `entreprise/00-checklist-nouveau-projet.mdc` et recopier `entreprise/` + remplir `ops/` + `projet/`.

View File

@ -0,0 +1,30 @@
---
description: Progiweb — workflow agent (entreprise). Toujours s'y référer.
alwaysApply: true
---
# Workflow entreprise (Progiweb)
Référentiel agent — pas une doc humaine. S'appliquer à tous les projets Progiweb montés sur ce modèle.
## Avant de modifier du code
- Demander le **numéro JIRA** si l'utilisateur ne l'a pas fourni (préfixe selon le projet, voir `projet/`).
- Ne pas bloquer une simple question ou une lecture seule.
## Portée
- **Changement minimal** : uniquement ce qui est demandé.
- Pas de refactor large, renommage massif ou nettoyage opportuniste sans accord explicite.
- Cohérence locale (fichier / module) plutôt que modernisation globale.
## Incohérences voisines
1. Signaler brièvement.
2. Proposer une correction ciblée.
3. Attendre confirmation avant de sortir du périmètre.
## Fin de tâche
- Résumer : quoi, où, déploiement / SQL / étapes manuelles restantes.
- Ne pas créer de README ou docs hors demande explicite (les règles agent vivent dans `.cursor/rules/`).

View File

@ -0,0 +1,23 @@
---
description: MS1 Inscription — playbook Git/deploy (ops)
alwaysApply: true
---
# Playbook Git / deploy — MS1 Inscription
## Layout
- Le dépôt Git **est** le site (racine web = racine git), modèle historique MS1.
- Différent de Reader (git root = `$HOME` avec `ci4app` + `public_html` frères).
## Deploy
1. `~/deploy/deploy_dev.sh` : fetch `dev` → reset --hard → clean (adapter les chemins au docroot Inscription).
2. `deploy_dev.php` versionné à la racine — obligatoire avant webhook (sinon `git clean` l'efface).
3. Chemins absolus dans le `.sh` (PHP sans `HOME`).
## À vérifier / aligner si besoin
- Miroir Bitbucket : case « Synchroniser quand les révisions sont soumis » + intervalle `1h`.
- Webhook Gitea → URL HTTPS du `deploy_dev.php` d'environnement dev.
- Même philosophie entreprise que Reader (voir `entreprise/00-git-modele.mdc`).

View File

@ -0,0 +1,41 @@
---
description: MS1 Inscription — paramètres figés (ops)
alwaysApply: true
---
# Paramètres — MS1 Inscription
Secrets → 1Password uniquement.
## Git / remotes
| Clé | Valeur |
|---|---|
| Gitea (Windows) | `http://git.progiweb.ca/stephan/ms1inscription-v5.git` |
| Branche travail | `dev` |
| Branche prod | `master` |
| Bitbucket miroir | `https://bitbucket.org/progiwebinc/ms1inscription-v5.git` |
## Miroir
| Clé | Valeur |
|---|---|
| Modèle | Comme Reader : sync **à chaque soumission** + intervalle filet (ex. `1h`) |
| Auth Bitbucket | `x-token-auth` + access token (item 1Password dédié Inscription si distinct) |
## Déploiement
| Clé | Valeur |
|---|---|
| User / home typique | `devinscription` / `/home/devinscription` |
| Git root serveur | **Docroot du site** (pas le home entier — layout ≠ Reader) |
| Script | `/home/devinscription/deploy/deploy_dev.sh` |
| Webhook PHP | `deploy_dev.php` à la **racine du dépôt** (versionné) |
| Contenu PHP | `shell_exec('/home/devinscription/deploy/deploy_dev.sh 2>&1')` |
## SSH / SQLTools
| Clé | Valeur |
|---|---|
| Port SSH | **7822** |
| Exemple | `.vscode/settings.json.example` |

View File

@ -0,0 +1,11 @@
---
description: MS1 Inscription — stack et préfixe JIRA (projet)
alwaysApply: true
---
# Projet MS1 Inscription — stack
- Stack : PHP legacy (racine / `php/` / `superadm/`) + modules CI4 optionnels (`v3_ci4/`).
- Préfixe JIRA : **`MSIN-xxxx`**.
- Scripts SQL : `sql/MSIN-xxxx-description-courte.sql`.
- Workspace local typique : `C:\dev_v4\ms1inscription4`.