بنقرة واحدة
web
SKILL - Le but de ce skill est de gérer les pages web du front.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
SKILL - Le but de ce skill est de gérer les pages web du front.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | web |
| description | SKILL - Le but de ce skill est de gérer les pages web du front. |
| argument-hint | <page-name> [--bug|-b] [--new|-n] [--design|-d] [--validate|-v] <description> |
| auto_continue | true |
| allowed_tools | ["Read","Edit","Write","Glob","Grep","Bash","Task","AskUserQuestion"] |
| file_patterns | ["apps/web/src/pages/**/*","apps/web/src/api/**/*","apps/api/src/routers/**/*","docs/specs/pages/**/*","docs/specs/design/**/*"] |
Skill generique pour travailler sur n'importe quelle page web du projet. Detecte automatiquement les fichiers associes (page, API frontend, router backend, documentation).
/web <page> # Mode normal : travailler sur une page specifique
/web <page> --bug <desc> # Mode debug : corriger un bug sur la page
/web <page> --new <desc> # Mode ajout : ajouter une feature a la page
/web <page> --design # Mode design : verifier la conformite au design system
/web <page> --validate # Mode validate : verifier le frontmatter et l'implementation
/web # Sans argument : demande quelle page cibler
| Argument | Alias | Description |
|---|---|---|
<page> | Nom de la page a cibler (ex: dashboard, tempo, admin) | |
--bug | -b | Mode debug : analyse et corrige un bug signale |
--new | -n | Mode ajout : ajoute une nouvelle feature |
--design | -d | Mode design : verifie la conformite au design system |
--validate | -v | Mode validate : verifie le frontmatter et l'integration |
Convention de nommage documentation : docs/specs/pages/<order>-<page>.md (ex: 05-simulator.md)
| Page | Fichier(s) | Documentation | Mode |
|---|---|---|---|
signup | pages/Signup.tsx | docs/specs/pages/00-signup.md | Serveur uniquement |
landing | pages/Landing.tsx | docs/specs/pages/01-root.md | Serveur uniquement |
dashboard | pages/Dashboard.tsx | docs/specs/pages/02-dashboard.md | Serveur + Client |
consumption | pages/Consumption/index.tsx | docs/specs/pages/consumption/ | Serveur + Client |
consumption-kwh | pages/ConsumptionKwh/index.tsx | docs/specs/pages/consumption/ | Serveur + Client |
consumption-euro | pages/ConsumptionEuro/index.tsx | docs/specs/pages/consumption/ | Serveur + Client |
production | pages/Production/index.tsx | docs/specs/pages/03-production.md | Serveur + Client |
balance | pages/Balance/index.tsx | docs/specs/pages/04-bilan.md | Serveur + Client |
simulator | pages/Simulator.tsx | docs/specs/pages/05-simulator.md | Serveur uniquement |
contribute | pages/Contribute/index.tsx | docs/specs/pages/contributes/ | Serveur uniquement |
tempo | pages/Tempo.tsx | docs/specs/pages/07-tempo.md | Serveur + Client |
ecowatt | pages/EcoWatt.tsx | docs/specs/pages/08-ecowatt.md | Serveur + Client |
france | pages/France.tsx | docs/specs/pages/09-france.md | Serveur + Client |
faq | pages/FAQ.tsx | docs/specs/pages/20-faq.md | Serveur uniquement |
api-docs | pages/ApiDocs.tsx | docs/specs/pages/21-api-docs.md | Serveur uniquement |
settings | pages/Settings.tsx | docs/specs/pages/22-settings.md | Serveur uniquement |
| Page | Fichier | Documentation |
|---|---|---|
admin | pages/Admin/Dashboard.tsx | docs/specs/pages/admin/ |
admin-users | pages/Admin/Users.tsx | docs/specs/pages/admin/ |
admin-roles | pages/Admin/Roles.tsx | docs/specs/pages/admin/ |
admin-offers | pages/Admin/Offers.tsx | docs/specs/pages/admin/ |
admin-contributions | pages/Admin/Contributions.tsx | docs/specs/pages/admin/ |
admin-tempo | pages/Admin/Tempo.tsx | docs/specs/pages/admin/ |
admin-ecowatt | pages/Admin/EcoWatt.tsx | docs/specs/pages/admin/ |
admin-logs | pages/Admin/Logs.tsx | docs/specs/pages/admin/ |
admin-add-pdl | pages/Admin/AddPDL.tsx | docs/specs/pages/admin/ |
| Page | Fichier | Documentation |
|---|---|---|
home-assistant | pages/HomeAssistant.tsx | docs/local-client/integrations/home-assistant.md |
mqtt | pages/MQTT.tsx | docs/local-client/integrations/mqtt.md |
victoria-metrics | pages/VictoriaMetrics.tsx | docs/local-client/integrations/victoriametrics.md |
exporter | pages/Exporter/index.tsx | docs/local-client/exporters.md |
Quand une page est selectionnee, le skill detecte automatiquement :
apps/web/src/pages/<Page>.tsx ou apps/web/src/pages/<Page>/index.tsxapps/web/src/pages/<Page>/components/**/*apps/web/src/api/<page>.tsapps/api/src/routers/<page>.py.claude/commands/web_<page>.mdLa documentation des pages suit deux formats selon la complexite :
.md)docs/specs/pages/<order>-<page>.md
Caracteristiques :
<order>- est un nombre pour l'ordre dans le menu (ex: 05-, 07-)docs/specs/pages/02-dashboard.md, docs/specs/pages/07-tempo.mddocs/specs/pages/<page>/
├── <order1>-<onglet1>.md
├── <order2>-<onglet2>.md
└── <order3>-<onglet3>.md
Caracteristiques :
.md par onglet, prefixe numerique pour l'ordredocs/specs/pages/contributes/ avec 01-offers.md, 02-new-offers.md, 03-my-offers.mdChaque fichier de documentation doit avoir un frontmatter YAML :
---
name: 01-offers
path: /contribute/offers
description: Onglet des offres disponibles
mode_client: false
mode_server: true
menu: Contribuer
subMenu: Contribuer
tab: Toutes les offres
---
| Champ | Obligatoire | Description |
|---|---|---|
name | Oui | Identifiant unique de l'onglet |
path | Oui | Route de l'onglet (ex: /contribute/offers) |
description | Oui | Description courte de l'onglet |
mode_client | Oui | true si disponible en mode client |
mode_server | Oui | true si disponible en mode serveur |
menu | Oui | Nom du menu parent dans la navigation |
subMenu | Non | Nom du lien dans le sous-menu (si present, cree un sous-menu) |
tab | Non | Label de l'onglet pour les pages avec onglets internes |
Chaque documentation de page DOIT inclure un tableau "Features" juste apres le titre H1.
Ce tableau sert de TODO list pour suivre l'avancement de l'implementation.
## Features
| Feature | Statut |
| --------------------------- | ------ |
| Fonctionnalite principale | FAIT |
| Feature en cours | WIP |
| Feature planifiee | TODO |
| Feature abandonnee | SKIP |
Statuts disponibles :
| Statut | Description |
|---|---|
FAIT | Implementation terminee et fonctionnelle |
WIP | Work In Progress - en cours de developpement |
TODO | A faire - planifie mais pas encore commence |
SKIP | Abandonne ou reporte indefiniment |
Regles :
### Feature (FAIT) plus bas dans le documentExemple complet :
---
name: tempo
path: /tempo
description: Calendrier TEMPO EDF
mode_client: true
mode_server: true
menu: Tempo
---
# Tempo
Page affichant le calendrier TEMPO EDF.
## Features
| Feature | Statut |
| ------------------ | ------ |
| Calendrier mensuel | FAIT |
| Statistiques | FAIT |
| Export PDF | TODO |
## Details implementation
### Calendrier mensuel (FAIT)
Description de l'implementation...
### Statistiques (FAIT)
Description de l'implementation...
Comportement du menu :
subMenu est absent → la page est un lien direct dans le menu principalsubMenu est present → la page apparait comme sous-element du menu parentComportement des onglets :
tab est present → la page fait partie d'un groupe d'onglets (navigation horizontale).md dans le dossier represente un onglet01-, 02-, etc.)Exemple de navigation :
Menu lateral
├── Dashboard
├── Consommation
├── Contribuer ← menu (parent)
│ ├── Offres ← subMenu: Offres
│ ├── Nouvelle ← subMenu: Nouvelle
│ └── Mes contributions ← subMenu: Mes contributions
└── Tempo
Pour determiner le type de documentation :
docs/specs/pages/<page>/ existe (dossier).md du dossierdocs/specs/pages/*-<page>.md (ex: 05-simulator.md)Commande Glob pour detection :
# Dossier (pages avec onglets)
docs/specs/pages/<page>/
# Fichier simple (avec prefixe numerique)
docs/specs/pages/*-<page>.md
Si aucune page n'est specifiee dans la commande, proceder en deux etapes :
Utiliser AskUserQuestion :
ATTENDRE la reponse.
Utiliser AskUserQuestion avec les pages du tableau correspondant (section "Pages disponibles" ci-dessus) :
Proposer les valeurs de la colonne Page comme options.
ATTENDRE la reponse avant de continuer.
NE PAS deviner la page. Toujours demander si non specifiee.
docs/specs/pages/<page>/ existe → page avec onglets → lire tous les .md du dossierdocs/specs/pages/*-<page>.md (avec prefixe numerique) → page simple.claude/commands/web_<page>.md)| Mode | Action |
|---|---|
| Normal | Suivre les specifications de la documentation |
--bug | Analyser et corriger le bug decrit |
--new | Ajouter la feature dans la documentation et implementer |
--design | Verifier la conformite avec docs/specs/design/checklist.md |
--validate | Executer steps 01 → 04 → 05 en mode verification (sans modifier) |
--validate : Workflow complet de verificationCe mode execute les etapes existantes en mode "lecture seule" pour valider la coherence.
Step 01 - Explore : Executer normalement pour generer le rapport de conformite
Step 04 - Lint : Executer les verifications lint
cd apps/web && npm run lintcd apps/api && make lint (si fichiers backend concernes)Step 05 - Validate : Executer les verifications runtime
make logs/check_design ou docs/specs/design/checklist.mdRapport final : Afficher un resume global
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 VALIDATION COMPLETE - <page_name>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Exploration (01) : [✅ OK / ⚠️ Warnings / ❌ Erreurs]
Lint (04) : [✅ OK / ❌ Erreurs]
Validation (05) : [✅ OK / ⚠️ Warnings / ❌ Erreurs]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RESULTAT : [✅ VALIDE / ❌ ECHEC - <N> problemes]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NE PAS executer les steps 02 (plan), 03 (execute), 06 (docs), 07 (commit).
make lint
Utiliser AskUserQuestion pour demander validation.
Mettre a jour la documentation si necessaire :
docs/specs/pages/<order>-<page>.md (ex: 05-simulator.md).md correspondant a l'onglet dans docs/specs/pages/<page>/Respecter .claude/rules/commits.md (Semantic Release).
# Travailler sur le dashboard
/web dashboard
# Corriger un bug sur la page Tempo
/web tempo --bug "Le calendrier ne s'affiche pas correctement"
# Ajouter une feature sur la page EcoWatt
/web ecowatt --new "Ajouter export PDF du signal"
# Verifier le design de la page Admin Users
/web admin-users --design
# Valider le frontmatter et l'integration de la page Tempo
/web tempo --validate
# Sans argument : demande quelle page
/web
docs/specs/design/docs/specs/pages/_menu.md.claude/rules/modes.md.claude/rules/commits.md.claude/rules/pages.md