Discovering Skills
Contenu
- Utilisation
- Discipline d'invocation
- Modes du script query_catalog.py
- Exemples de reponses
- Catalog source de verite
Utilisation
Ce skill est une table des matieres interactive des skills DIVA installes.
Il s'appuie sur un catalog.json embarque (regenere a chaque build de distribution).
Regle : ne pas lire directement le catalog.json dans le contexte Claude. Utiliser
query_catalog.py qui extrait uniquement le sous-ensemble pertinent.
Avant de lancer la commande, reformuler la demande pour choisir le mode :
| Demande type | Mode a utiliser |
|---|---|
| "Que peux-tu faire ?", "Panorama", "Liste des skills" | overview |
| "Explique-moi ", "Que fait ?" | detail <nom> |
| "Quel skill pour ", "Comment faire " | search <mots-cles> |
| "Skills pour creer / analyser / valider / ..." | workflow <id> |
| "Tous les skills qui generent / lisent / ecrivent" | verb <verbe> |
Discipline d'invocation
Ces deux regles encadrent l'usage de l'ensemble du devkit DIVA. Elles s'appliquent independamment des regles internes a chaque skill (P-A/P-B de understanding-integrator-workspace, 4PRINCIPLES, anti-patterns metier, etc.). Le discovering-skills est le point d'entree annonce du devkit -- il porte ces regles parce qu'elles concernent la discipline d'invocation des skills, pas un skill particulier.
Regle 1 -- Documentation skill = source autoritaire pour les conventions
Pour toute question de convention, regle, nommage, structure dans le perimetre DIVA, la source autoritaire est la documentation des skills (reference/*.md). Le filesystem n'est jamais source primaire -- au plus un cross-check de confirmation apres lecture de la doc.
Ordre correct quand le collaborateur pose une question de convention/structure :
discovering-skills detail <skill-pertinent>-- identifier le skill qui couvre le sujet- Lecture des references du skill (
reference/*.mdlistees dans le SKILL.md) - Reponse appuyee sur la doc -- avec citation des fichiers references
- (Optionnel) cross-check filesystem pour confirmer un point particulier
Ordre erronne (a eviter) :
-> donne une reponse moins fiablefind/grep/lsdans le filesystem pour deduire la conventionInference par symetrie/observation-> peut etre un cas particulier, une coutume locale, ou une erreur historique- Reponse formulee sans appui sur la doc
Pourquoi cette regle : la doc skill est ecrite et revue. Le filesystem est un instantane de l'etat reel d'un workspace -- il peut contenir des conventions specifiques au partenaire, des erreurs heritees, des exceptions ponctuelles. Confondre les deux mene a des reponses qui semblent justes mais qui ne sont pas la regle generale.
Exception unique : quand un skill annonce explicitement que la verite vit dans un fichier source (ex: a5tczoom.dhsp comme catalogue de constantes pour allocating-zoom-numbers, ou gtfdd.dhsd pour le dictionnaire), c'est ce fichier qui est consulte -- mais via le skill qui le rend autoritaire, pas via un cat direct.
Regle 2 -- Skills DIVA prioritaires sur toute commande improvisee
Si un skill DIVA couvre l'operation demandee, l'invoquer -- pas de raccourci find / grep / cat qui simulerait l'operation. Les skills ne sont pas des suggestions optionnelles, ils sont la maniere canonique d'operer sur l'ERP DIVA.
Examples concrets :
| Tache demandee | Raccourci tentant (a eviter) | Skill a invoquer |
|---|---|---|
Trouver la version standard d'un .dhsd |
find /Developpements/Standard -name gtfdd.dhsd |
understanding-integrator-workspace (R-13) |
| Lister les zooms standards | grep "C_ZOOM_" a5tczoom.dhsp |
allocating-zoom-numbers |
Verifier l'encodage d'un .dhsp |
file <chemin> |
writing-diva-files (verification + correction) |
Generer un fichier .dhsq |
Copier-coller un template d'un autre RecordSql | generating-recordsql |
| Lire un fichier ISAM | head -c 1000 fichier.dhfi | od |
reading-isam-files |
Modifier un masque .dhsf |
Editer le bloc INI a la main | manipulating-dhsf-screens |
Pourquoi cette regle : les skills encapsulent (a) les conventions de la plateforme, (b) les protocoles de validation (check_*, validate_*), (c) les pieges connus catalogues par RETEX. Court-circuiter un skill par une commande improvisee = reproduire des operations sans les garde-fous. Le resultat peut sembler equivalent mais perd la coherence et la tracabilite.
Quand cette regle ne s'applique pas :
- Question hors perimetre DIVA (ex: question sur Git, Docker, Python pur).
- Operation explicitement non couverte par un skill et signalee comme telle (perimetre hors-scope documente dans le SKILL.md correspondant).
- Reflexe d'observation rapide sur le workspace (un
lspour voir le contenu d'un dossier) qui n'engage pas une operation metier.
Dans le doute : passer par discovering-skills search <mots-cles> pour verifier qu'aucun skill ne couvre la tache avant de la faire a la main.
Application a Claude
Ces deux regles concernent le comportement de Claude lors d'une session sur un workspace DIVA. Elles ne demandent rien au collaborateur. Concretement :
- Avant toute reponse a une question de convention/structure : Claude consulte la doc du skill pertinent.
- Avant toute commande improvisee dans le perimetre DIVA : Claude verifie qu'un skill ne la couvre pas.
- En cas de doute :
discovering-skillsest le point d'entree pour la verification.
Modes du script query_catalog.py
py .claude/skills/discovering-skills/scripts/query_catalog.py <mode> [arguments]
1. overview
Panorama complet : chaque workflow avec la liste de ses skills (nom + summary court). C'est la reponse type pour "que peux-tu faire ?".
py .claude/skills/discovering-skills/scripts/query_catalog.py overview
2. detail
Fiche complete d'un skill : description, quand l'utiliser, workflow, orchestrateur, nombre de checkpoints, scripts, references, skills lies, prerequis.
py .claude/skills/discovering-skills/scripts/query_catalog.py detail creating-diva-entity
3. search
Recherche insensible a la casse dans le nom, description, summary, scripts, skills lies. Utile quand la demande est formulee en langage libre ("je veux ecrire un fichier ISAM").
py .claude/skills/discovering-skills/scripts/query_catalog.py search ISAM
py .claude/skills/discovering-skills/scripts/query_catalog.py search "masque ecran"
4. workflow
Liste les skills d'un workflow. Ids disponibles : analyze, create, modify, files,
isam, validate, test_doc, reference.
py .claude/skills/discovering-skills/scripts/query_catalog.py workflow create
5. verb
Liste les skills d'un verbe (1er segment du nom). Exemples : generating, reading,
writing, managing, allocating, analyzing.
py .claude/skills/discovering-skills/scripts/query_catalog.py verb generating
Option --json
Tous les modes acceptent --json pour sortir au format machine (debug, chainage).
Par defaut la sortie est un texte markdown lisible.
Exemples de reponses
"que peux-tu faire ?"
Invoquer overview, puis resumer au collaborateur :
Tu disposes de 31 skills DIVA organises en 8 workflows. Points d'entree principaux : creer une entite metier (
creating-diva-entity), analyser une demande (analyzing-diva-request), modifier une entite (modifying-diva-entity), documenter un module (documenting-erp). [puis liste par workflow]
"que fait creating-diva-entity ?"
Invoquer detail creating-diva-entity, puis presenter :
creating-diva-entityest l'orchestrateur de creation d'entite metier. 11 checkpoints annonces : calcul des noms, generation des 3 fichiers source, validation croisee, dictionnaire, compilation, ISAM, menu. Coordonne 13 autres skills. Deux scripts :generate_alias.py,cross_validate.py. 8 fichiers de reference. Prerequis : Jinja2, diva-mcp (optionnel), xwin7.exe.
"quel skill pour ajouter un champ ?"
Invoquer search "ajout champ" ou search modifier, puis proposer :
Pour ajouter un champ a une entite existante :
modifying-diva-entity(orchestrateur, 4 checkpoints). Met a jour le dictionnaire (.dhsd) avec recalcul des positions, le masque ecran (.dhsf), recompile et synchronise SQL.
Catalog source de verite
Le catalog est genere par scripts/build_catalog.py a la racine du workspace
(cote architecte) et copie dans reference/catalog.json a chaque build de
distribution.
Chez le collaborateur : le catalog est fige au moment du build. Pour le regenerer il faut re-installer une nouvelle version des skills via le zip.
Champs par skill :
| Champ | Signification |
|---|---|
name |
Slug du skill |
description |
Description complete (frontmatter) |
summary |
Premiere phrase utile (1 ligne) |
when_to_use |
Phrase "A utiliser..." (sinon description) |
workflow |
Id du workflow (create, analyze, ...) |
verb |
1er segment du nom |
is_orchestrator |
Le skill coordonne d'autres skills |
checkpoint_count |
Nombre de checkpoints annonces |
scripts |
Liste des scripts Python (hors _*) |
references |
Liste des fichiers reference/*.md |
related_skills |
Skills cites en backticks dans le body |
prerequisites |
Prerequis externes detectes (Jinja2, DhxIsam64, xwin7, ...) |
Le champ related_skills signifie "skills mentionnes", pas "skills appeles" :
pour un orchestrateur ce sont les skills coordonnes, pour un skill simple ce
sont des skills complementaires cites en reference.
Source: divalto/divalto-ia-devkit — distributed by TomeVault.