Aller au contenu

Skills Celuga

celuga-add-collection

Ajouter une collection métier publique à un site create-celuga.

Quand : Ajouter une collection métier publique à un site create-celuga.

Portée : projet (.agents/skills, déjà livré par create-celuga) · Fichiers : 1

Copier le bloc et le coller dans un terminal. Il recrée tous les fichiers du skill.

dir=".agents/skills/celuga-add-collection" # depuis la racine du projet
mkdir -p "$dir"
cat > "$dir/SKILL.md" <<'CELUGA_SKILL_EOF'
---
name: celuga-add-collection
description: Ajouter une collection métier publique à un projet Celuga Payload + Astro, avec droits, langues, routes, preview, cache, SEO et migration.
---
# Ajouter une collection Celuga
Inspectez d’abord `packages/site-contracts/src/collections.ts`, `packages/site-contracts/src/public-content.ts`, `apps/cms/src/collections/content.ts`, `apps/cms/src/payload.config.ts`, les routes Astro existantes et `apps/cms/src/modules/actualites.ts`. Gardez les droits dans la collection ; le registre partagé déclare seulement ses chemins et capacités publiques.
1. Déclarez la collection Payload avec libellés français, accès explicites, versions/brouillons si elle est éditoriale, champs localisés et hooks d’invalidation. Une lecture publique doit imposer le statut, la date et la complétude de traduction nécessaires. Le contrat est terminé quand un brouillon reste privé et qu’une publication complète est lisible dans chaque locale prévue.
2. Ajoutez son descripteur dans `packages/site-contracts/src/collections.ts` : chemin, capacités, tags, relations à invalider, icône/ordre, sections éditoriales, variantes SEO, seuil de mots et champs obligatoires de traduction. Les préfixes de routes deviennent automatiquement des slugs réservés. Preview, SEO, cache et navigation lisent ce descripteur ; ajoutez uniquement les adaptations de données propres au métier. Une collection inconnue doit rester refusée. Le contrat est terminé quand chaque consommateur utilise le registre sans élargir les droits.
3. Ajoutez les routes Astro liste/détail et leurs états 404, canonical et alternates. Paginer côté CMS avec `limit` et `page`, sans charger toute la collection. Le contrat est terminé quand publication, renommage du slug, dépublication et suppression produisent le bon rendu et les bonnes invalidations.
4. Suivez `celuga-change-schema`, régénérez les types et adaptez seed/fixtures uniquement si le produit en a besoin. Terminez par les tests ciblés puis `bun run verify`.
5. Si la collection a un fonctionnement propre (publication sans brouillon, champ à connaître), ajoutez une question à `apps/cms/src/tutorial/questions.ts` ; sinon le guide existant décrit déjà ses gestes communs.
Utilisez le module Actualités (`apps/cms/src/modules/actualites.ts`, `apps/web/src/pages/actualites/`) comme exemple d’intégration.
CELUGA_SKILL_EOF
SKILL.md
---
name: celuga-add-collection
description: Ajouter une collection métier publique à un projet Celuga Payload + Astro, avec droits, langues, routes, preview, cache, SEO et migration.
---
# Ajouter une collection Celuga
Inspectez d’abord `packages/site-contracts/src/collections.ts`, `packages/site-contracts/src/public-content.ts`, `apps/cms/src/collections/content.ts`, `apps/cms/src/payload.config.ts`, les routes Astro existantes et `apps/cms/src/modules/actualites.ts`. Gardez les droits dans la collection ; le registre partagé déclare seulement ses chemins et capacités publiques.
1. Déclarez la collection Payload avec libellés français, accès explicites, versions/brouillons si elle est éditoriale, champs localisés et hooks d’invalidation. Une lecture publique doit imposer le statut, la date et la complétude de traduction nécessaires. Le contrat est terminé quand un brouillon reste privé et qu’une publication complète est lisible dans chaque locale prévue.
2. Ajoutez son descripteur dans `packages/site-contracts/src/collections.ts` : chemin, capacités, tags, relations à invalider, icône/ordre, sections éditoriales, variantes SEO, seuil de mots et champs obligatoires de traduction. Les préfixes de routes deviennent automatiquement des slugs réservés. Preview, SEO, cache et navigation lisent ce descripteur ; ajoutez uniquement les adaptations de données propres au métier. Une collection inconnue doit rester refusée. Le contrat est terminé quand chaque consommateur utilise le registre sans élargir les droits.
3. Ajoutez les routes Astro liste/détail et leurs états 404, canonical et alternates. Paginer côté CMS avec `limit` et `page`, sans charger toute la collection. Le contrat est terminé quand publication, renommage du slug, dépublication et suppression produisent le bon rendu et les bonnes invalidations.
4. Suivez `celuga-change-schema`, régénérez les types et adaptez seed/fixtures uniquement si le produit en a besoin. Terminez par les tests ciblés puis `bun run verify`.
5. Si la collection a un fonctionnement propre (publication sans brouillon, champ à connaître), ajoutez une question à `apps/cms/src/tutorial/questions.ts` ; sinon le guide existant décrit déjà ses gestes communs.
Utilisez le module Actualités (`apps/cms/src/modules/actualites.ts`, `apps/web/src/pages/actualites/`) comme exemple d’intégration.