com um clique
web
SKILL - Le but de ce skill est de gérer les pages web du front.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
SKILL - Le but de ce skill est de gérer les pages web du front.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional 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