Set-OPS-Public/promo/README.md

130 lines
6.2 KiB
Markdown
Raw Normal View History

# promo/ — pages de présentation Set-OPS
Ajoute les pages offres et tarifs (promo/) promo/offres.html — les écosystèmes livrables, nommés par persona (Socle, Identité, Maison OBNL, Cabinet, Atelier, Vigie, Intégral, Présence Web). Le périmètre annoncé est tiré des modèles réels : le nombre de machines est celui du plan, pas une estimation. Les états sont honnêtes — collaboration marquée « en chantier », presence-web marquée « feuille de route, non vendable ». promo/tarifs.html — grille tarifaire de Chezlepro inc., alignée sur les six offres du site chezlepro.ca (diagnostic, socle opérateur, tenant portable, audit-ready ops, exploitation gérée, observabilité) plutôt que sur les noms de modèles Set-OPS. Diagnostic dès 4 500 $ et déductible, socle dès 18 000 $, tenant dès 12 000 $ (7 500 $ les suivants), parcours combiné dès 38 000 $ au lieu de 42 000 $, exploitation à 750/1 500/2 800 $ par mois. Trois postes, aucune facturation par siège, licences à 0 $. Montants = estimations de marché (taux effectif ~1 000-1 100 $/jour, firme spécialisée québécoise), pas des prix validés par une vente réelle. Dollars canadiens avant taxes. Le README le consigne, ainsi que le fait que cette grille est publique et versionnée. Corrige au passage une contradiction introduite : offres.html affirmait « un prix affiché serait un prix inventé » ; son tableau porte désormais les prix de départ et renvoie à tarifs.html, source de vérité. Validé : node --check du JS des 4 pages, balises équilibrées, liens internes et croisés vérifiés, prouver.py --verifier → CONFORME 16/16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 11:28:51 -04:00
Quatre pages web **autonomes** (un seul fichier chacune, aucun asset externe, aucune
dépendance réseau), sœurs de thème et liées entre elles par la barre de navigation.
| Fichier | Public visé | Répond à |
|---|---|---|
| `index.html` | sysadmin, personne technique | *Qu'est-ce que je peux faire avec ça ?* |
Ajoute les pages offres et tarifs (promo/) promo/offres.html — les écosystèmes livrables, nommés par persona (Socle, Identité, Maison OBNL, Cabinet, Atelier, Vigie, Intégral, Présence Web). Le périmètre annoncé est tiré des modèles réels : le nombre de machines est celui du plan, pas une estimation. Les états sont honnêtes — collaboration marquée « en chantier », presence-web marquée « feuille de route, non vendable ». promo/tarifs.html — grille tarifaire de Chezlepro inc., alignée sur les six offres du site chezlepro.ca (diagnostic, socle opérateur, tenant portable, audit-ready ops, exploitation gérée, observabilité) plutôt que sur les noms de modèles Set-OPS. Diagnostic dès 4 500 $ et déductible, socle dès 18 000 $, tenant dès 12 000 $ (7 500 $ les suivants), parcours combiné dès 38 000 $ au lieu de 42 000 $, exploitation à 750/1 500/2 800 $ par mois. Trois postes, aucune facturation par siège, licences à 0 $. Montants = estimations de marché (taux effectif ~1 000-1 100 $/jour, firme spécialisée québécoise), pas des prix validés par une vente réelle. Dollars canadiens avant taxes. Le README le consigne, ainsi que le fait que cette grille est publique et versionnée. Corrige au passage une contradiction introduite : offres.html affirmait « un prix affiché serait un prix inventé » ; son tableau porte désormais les prix de départ et renvoie à tarifs.html, source de vérité. Validé : node --check du JS des 4 pages, balises équilibrées, liens internes et croisés vérifiés, prouver.py --verifier → CONFORME 16/16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 11:28:51 -04:00
| `offres.html` | prospect, client | *Qu'est-ce que vous pouvez bâtir pour moi ?* |
| `tarifs.html` | prospect, acheteur | *Combien ça coûte ?* |
| `valeur.html` | direction, CA, bailleur de fonds | *Qu'est-ce que ça me rapporte, et comment le vérifier ?* |
Ajoute les pages offres et tarifs (promo/) promo/offres.html — les écosystèmes livrables, nommés par persona (Socle, Identité, Maison OBNL, Cabinet, Atelier, Vigie, Intégral, Présence Web). Le périmètre annoncé est tiré des modèles réels : le nombre de machines est celui du plan, pas une estimation. Les états sont honnêtes — collaboration marquée « en chantier », presence-web marquée « feuille de route, non vendable ». promo/tarifs.html — grille tarifaire de Chezlepro inc., alignée sur les six offres du site chezlepro.ca (diagnostic, socle opérateur, tenant portable, audit-ready ops, exploitation gérée, observabilité) plutôt que sur les noms de modèles Set-OPS. Diagnostic dès 4 500 $ et déductible, socle dès 18 000 $, tenant dès 12 000 $ (7 500 $ les suivants), parcours combiné dès 38 000 $ au lieu de 42 000 $, exploitation à 750/1 500/2 800 $ par mois. Trois postes, aucune facturation par siège, licences à 0 $. Montants = estimations de marché (taux effectif ~1 000-1 100 $/jour, firme spécialisée québécoise), pas des prix validés par une vente réelle. Dollars canadiens avant taxes. Le README le consigne, ainsi que le fait que cette grille est publique et versionnée. Corrige au passage une contradiction introduite : offres.html affirmait « un prix affiché serait un prix inventé » ; son tableau porte désormais les prix de départ et renvoie à tarifs.html, source de vérité. Validé : node --check du JS des 4 pages, balises équilibrées, liens internes et croisés vérifiés, prouver.py --verifier → CONFORME 16/16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 11:28:51 -04:00
> ⚠️ **`tarifs.html` est du matériel commercial de Chezlepro inc.**, publié dans un dépôt
> public. Les montants y sont donc visibles de tous, y compris des concurrents et des
> clients existants, et l'historique git en conserve chaque version. C'est un choix
> assumé ; le rappeler avant chaque ajustement de prix.
- **Thème** : identité *Alliance Boréale* (ciel nocturne + aurore + constellation),
reprise des thèmes Keycloak/Forgejo du dépôt.
Rend les quatre pages promo cohérentes Les pages ayant été écrites l'une après l'autre, six dérives s'étaient installées entre elles. Passe de normalisation : - Adresse au lecteur : index.html tutoyait (17 occurrences), les trois autres vouvoyaient. Vouvoiement partout — ce sont des pages commerciales. - Marque : trois pages affichaient « Alliance Boréale », tarifs affichait « Chezlepro · tarifs ». Désormais « Set-OPS · Chezlepro » dans la barre et « Chezlepro inc. · Saint-Bruno-de-Montarville, Québec » au pied. - Navigation : quatre barres différentes (libellés et ordres distincts) → Capacités · Offres · Tarifs · Valeur + « Nous parler », identique partout, page courante marquée aria-current="page". - Pieds de page : quatre structures → une seule, licence AGPLv3 incluse. - Vocabulaire d'état : index utilisait .tag proven/soon, les autres .st ok/wip/road. Un seul système : Éprouvé · En chantier · Feuille de route. - CSS : 35 sélecteurs partagés avaient des déclarations divergentes → 0 conflit. Deux étaient de vrais conflits de mise en page (.beats 4 colonnes contre 3, .stats grille contre flex) ; passés en repeat(auto-fit,minmax(...)), une seule règle qui s'adapte au nombre d'éléments. Ajoute une section « Nos réserves » à index.html — seule page à en manquer, alors que c'est celle qui affirme le plus de capacités. Les quatre assument désormais leurs limites (mainteneur unique, épreuve de l'opérateur indépendant). promo/README.md consigne les conventions communes en tableau et fournit le script de détection des conflits CSS à lancer avant commit. Validé : liens, balises, identifiants, équilibre CSS et node --check du JS sur les quatre pages ; 0 conflit CSS ; prouver.py --verifier → CONFORME 16/16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 17:19:38 -04:00
## Conventions communes — à respecter pour toute modification
Les quatre pages forment un ensemble navigable : ce qui suit doit rester **identique**
partout, sous peine de dérive (c'est déjà arrivé une fois, et il a fallu une passe
complète pour la résorber).
| Élément | Règle |
|---|---|
| **Adresse au lecteur** | **Vouvoiement**, sans exception. Ce sont des pages commerciales. |
| **Barre de navigation** | `Capacités · Offres · Tarifs · Valeur` + bouton « Nous parler ». Même ordre, mêmes libellés, page courante marquée `aria-current="page"`. |
| **Marque** | `Set-OPS · Chezlepro` dans la barre ; `Chezlepro inc. · Saint-Bruno-de-Montarville, Québec` au pied. |
| **`<title>`** | `Set-OPS — <Section> · Chezlepro` |
| **Vocabulaire d'état** | Trois valeurs seulement : **Éprouvé** (`.st.ok`), **En chantier** (`.st.wip`), **Feuille de route** (`.st.road`). Jamais d'autre mot, jamais d'autre classe. |
| **Fin de page** | Section `#reserves` (bloc `.honest`) puis bloc `.close`. Les quatre pages assument leurs limites. |
| **CSS partagé** | Un sélecteur commun (`section`, `.card`, `.sec-head`, `ul.does`, `.st`, `footer`…) doit avoir **la même déclaration** dans les quatre fichiers. |
Vérifier avant de committer :
```bash
python3 - <<'EOF'
import re,pathlib
from collections import defaultdict
r=defaultdict(dict)
for f in ['index.html','offres.html','tarifs.html','valeur.html']:
css=re.sub(r'/\*.*?\*/','',re.search(r'<style>(.*?)</style>',
pathlib.Path('promo',f).read_text(encoding='utf-8'),re.S).group(1),flags=re.S)
d,buf,sel=0,'',None
for c in css:
if c=='{':
d+=1
if d==1: sel,buf=buf.strip(),''
else: buf+=c
elif c=='}':
d-=1
if d==0:
if not sel.startswith('@'): r[sel][f]=re.sub(r'\s+','',buf)
buf=''
else: buf+=c
else: buf+=c
print("conflits CSS :",sum(1 for s,d in r.items() if len(set(d.values()))>1))
EOF
```
- **Honnêteté** : les capacités **éprouvées** (déployées sur VM réelles) sont distinguées
Ajoute les pages offres et tarifs (promo/) promo/offres.html — les écosystèmes livrables, nommés par persona (Socle, Identité, Maison OBNL, Cabinet, Atelier, Vigie, Intégral, Présence Web). Le périmètre annoncé est tiré des modèles réels : le nombre de machines est celui du plan, pas une estimation. Les états sont honnêtes — collaboration marquée « en chantier », presence-web marquée « feuille de route, non vendable ». promo/tarifs.html — grille tarifaire de Chezlepro inc., alignée sur les six offres du site chezlepro.ca (diagnostic, socle opérateur, tenant portable, audit-ready ops, exploitation gérée, observabilité) plutôt que sur les noms de modèles Set-OPS. Diagnostic dès 4 500 $ et déductible, socle dès 18 000 $, tenant dès 12 000 $ (7 500 $ les suivants), parcours combiné dès 38 000 $ au lieu de 42 000 $, exploitation à 750/1 500/2 800 $ par mois. Trois postes, aucune facturation par siège, licences à 0 $. Montants = estimations de marché (taux effectif ~1 000-1 100 $/jour, firme spécialisée québécoise), pas des prix validés par une vente réelle. Dollars canadiens avant taxes. Le README le consigne, ainsi que le fait que cette grille est publique et versionnée. Corrige au passage une contradiction introduite : offres.html affirmait « un prix affiché serait un prix inventé » ; son tableau porte désormais les prix de départ et renvoie à tarifs.html, source de vérité. Validé : node --check du JS des 4 pages, balises équilibrées, liens internes et croisés vérifiés, prouver.py --verifier → CONFORME 16/16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 11:28:51 -04:00
de ce qui est **en chantier** et de la **feuille de route**, conformément au principe
« ne jamais affirmer plus que ce qui est prouvé » (cf. `docs/audit/`). Les trois pages
portent une section de réserves assumées.
## `offres.html` — périmètre tiré des modèles réels
Chaque offre correspond à un modèle d'instance existant, et le **nombre de machines
annoncé est celui du plan**, pas une estimation :
| Offre | Modèle | VM | État |
|---|---|---|---|
| Le Socle | `socle` (public) | 4 | éprouvé |
| Identité | `identite` | 7 | éprouvé |
| Maison OBNL · Cabinet | `collaboration` | 8 | **en chantier** |
| Atelier | `forge` | 6 | éprouvé |
| Vigie | `observabilite` | 7 | éprouvé |
| Intégral | `integral` | 12 | éprouvé |
| Présence Web | `presence-web` | 7 | **feuille de route — non vendable** |
> Si un modèle change de périmètre (VM ajoutée, module éprouvé), **mettre la page à jour** :
> son intérêt tient entièrement à ce que ces chiffres soient vrais.
Les montants de départ sont repris de `tarifs.html`, dont c'est la source de vérité — en
cas d'ajustement de prix, **modifier `tarifs.html` puis reporter dans `offres.html`**.
## `tarifs.html` — grille tarifaire Chezlepro inc.
Alignée sur les **six offres du site chezlepro.ca** (diagnostic, socle opérateur, tenant
portable, audit-ready ops, exploitation gérée, observabilité), et non sur les noms de
modèles Set-OPS.
| Mandat | Prix de départ |
|---|---|
| Diagnostic & Trajectoire | dès 4 500 $ (déduit du mandat suivant) |
| Socle Opérateur Souverain | dès 18 000 $ |
| Tenant Portable Clé en Main | dès 12 000 $ · dès 7 500 $ pour les suivants |
| Audit-Ready Ops | dès 9 000 $ |
| Observabilité & Journalisation | dès 7 500 $ |
| Parcours Démarrage Souverain | dès 38 000 $ (au lieu de 42 000 $) |
| Exploitation Gérée & Transfert | 750 / 1 500 / 2 800 $ par mois |
> **Ces montants sont des estimations de marché**, calées sur un taux effectif de
> ~1 0001 100 $/jour (firme spécialisée québécoise), pas des prix validés par une vente
> réelle. À confronter au premier vrai mandat et à corriger. Dollars canadiens, avant taxes.
Ajoute les pages offres et tarifs (promo/) promo/offres.html — les écosystèmes livrables, nommés par persona (Socle, Identité, Maison OBNL, Cabinet, Atelier, Vigie, Intégral, Présence Web). Le périmètre annoncé est tiré des modèles réels : le nombre de machines est celui du plan, pas une estimation. Les états sont honnêtes — collaboration marquée « en chantier », presence-web marquée « feuille de route, non vendable ». promo/tarifs.html — grille tarifaire de Chezlepro inc., alignée sur les six offres du site chezlepro.ca (diagnostic, socle opérateur, tenant portable, audit-ready ops, exploitation gérée, observabilité) plutôt que sur les noms de modèles Set-OPS. Diagnostic dès 4 500 $ et déductible, socle dès 18 000 $, tenant dès 12 000 $ (7 500 $ les suivants), parcours combiné dès 38 000 $ au lieu de 42 000 $, exploitation à 750/1 500/2 800 $ par mois. Trois postes, aucune facturation par siège, licences à 0 $. Montants = estimations de marché (taux effectif ~1 000-1 100 $/jour, firme spécialisée québécoise), pas des prix validés par une vente réelle. Dollars canadiens avant taxes. Le README le consigne, ainsi que le fait que cette grille est publique et versionnée. Corrige au passage une contradiction introduite : offres.html affirmait « un prix affiché serait un prix inventé » ; son tableau porte désormais les prix de départ et renvoie à tarifs.html, source de vérité. Validé : node --check du JS des 4 pages, balises équilibrées, liens internes et croisés vérifiés, prouver.py --verifier → CONFORME 16/16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 11:28:51 -04:00
## `valeur.html` — le calculateur
Le comparatif coût total est **interactif** : le visiteur remplace les hypothèses par les
siennes (personnes desservies, coût des abonnements, matériel, mise en place,
exploitation) et l'addition se refait en direct sur un horizon de 5 ans, matériel amorti
sur 5 ans.
Il affiche **honnêtement le cas défavorable** : sous ~40 personnes (aux valeurs par
défaut), l'autohébergement ne se rembourse pas dans l'horizon retenu, et la page le dit —
le gain devient la souveraineté, pas le budget. Les valeurs par défaut ne sont pas des
tarifs Set-OPS : ce sont des ordres de grandeur à remplacer.
## Voir / publier
```bash
Ajoute les pages offres et tarifs (promo/) promo/offres.html — les écosystèmes livrables, nommés par persona (Socle, Identité, Maison OBNL, Cabinet, Atelier, Vigie, Intégral, Présence Web). Le périmètre annoncé est tiré des modèles réels : le nombre de machines est celui du plan, pas une estimation. Les états sont honnêtes — collaboration marquée « en chantier », presence-web marquée « feuille de route, non vendable ». promo/tarifs.html — grille tarifaire de Chezlepro inc., alignée sur les six offres du site chezlepro.ca (diagnostic, socle opérateur, tenant portable, audit-ready ops, exploitation gérée, observabilité) plutôt que sur les noms de modèles Set-OPS. Diagnostic dès 4 500 $ et déductible, socle dès 18 000 $, tenant dès 12 000 $ (7 500 $ les suivants), parcours combiné dès 38 000 $ au lieu de 42 000 $, exploitation à 750/1 500/2 800 $ par mois. Trois postes, aucune facturation par siège, licences à 0 $. Montants = estimations de marché (taux effectif ~1 000-1 100 $/jour, firme spécialisée québécoise), pas des prix validés par une vente réelle. Dollars canadiens avant taxes. Le README le consigne, ainsi que le fait que cette grille est publique et versionnée. Corrige au passage une contradiction introduite : offres.html affirmait « un prix affiché serait un prix inventé » ; son tableau porte désormais les prix de départ et renvoie à tarifs.html, source de vérité. Validé : node --check du JS des 4 pages, balises équilibrées, liens internes et croisés vérifiés, prouver.py --verifier → CONFORME 16/16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 11:28:51 -04:00
xdg-open promo/offres.html
python3 -m http.server -d promo 8080 # puis http://localhost:8080/offres.html
```
Les fichiers sont prêts à déposer tels quels sur n'importe quel hébergement statique
(Forgejo Pages, un vhost `serveur_nginx`, etc.).