Skip to the content.

Trigger tests

Catalog of prompts the skill should react to, used for manual non-regression testing when we change SKILL.md’s frontmatter description or add / remove references.

How to use: after a description change, run these prompts in a fresh Claude Code session (or Claude.ai) with the skill installed. Claude should auto-invoke the skill on every prompt marked ✅ and consult the expected reference file(s).

Core language and DB

# Prompt Should trigger Consult
1 Écris un Subprog L4G qui transfère un montant entre deux comptes language-basics.md, database.md
2 Write a Funprog that returns the next value from a counter in Sage X3 language-basics.md, common-patterns.md
3 Quelle est la différence entre Read et Readlock en L4G ? database.md
4 Comment marcher sur une table avec un For et filtrer par date ? database.md
5 How do I check fstat after a write in X3? database.md, SKILL.md mental model
6 Bonne façon d’utiliser Onerrgo avec un handler qui ferme les ressources language-basics.md, common-patterns.md

UI — Classic and V12

# Prompt Should trigger Consult
7 Action sur champ qui valide un SIREN en L4G screens-and-masks.md, examples/YCTRL_FIELD.trt
8 Remplir un tableau d’écran [M:ZTK0] depuis un fichier CSV screens-and-masks.md, common-patterns.md
9 Écris une classe V12 qui réserve du stock sur un article v12-classes-representations.md, examples/YSRV_RESERVE.src
10 Show me a V12 representation action script v12-classes-representations.md
11 Migration Classic → V12 pour un écran de saisie de commande v12-classes-representations.md, SKILL.md
12 Classe V12 héritée qui surcharge une méthode standard v12-classes-representations.md

Integration and operations

# Prompt Should trigger Consult
13 Publie ce Subprog comme web service REST dans X3 web-services-rest.md
14 Appeler une API REST externe depuis L4G et parser le JSON web-services-rest.md
15 Comment importer un CSV avec une validation par ligne ? imports-exports.md, examples/YIMP_HOOK.src
16 Lancer un état Crystal depuis une action d’écran X3 reports-printing.md
17 Règle de workflow qui envoie un mail quand une commande > 10000 EUR est validée workflow-email.md
18 Envoyer un email avec pièce jointe PDF depuis un batch L4G workflow-email.md, reports-printing.md
19 Comment débugger un fstat=2 dans mon script ? debugging-traces.md
20 Performance: mon For est lent, comment investiguer ? performance.md, debugging-traces.md
21 Publie ce Subprog comme web service SOAP avec déclaration GESAWE web-services-soap.md
22 Synchronisation delta entre X3 et un système externe via export incrémental imports-exports.md
23 Consommer une API SOAP externe avec WS-Security UsernameToken web-services-soap.md

Batch / scheduling / personalisation

# Prompt Should trigger Consult
24 Écris un batch X3 qui s’exécute toutes les nuits et envoie un récap par email batch-scheduling.md, common-patterns-v12.md, workflow-email.md
25 Comment déclarer une tâche dans GESABA et la planifier dans GESAPL ? batch-scheduling.md
26 Mon batch tourne en boucle infinie avec While 1 + Sleep, est-ce correct ? batch-scheduling.md
27 Code activité YINT pour gater un module custom dans X3 personalisation-activity.md
28 Ajouter un champ custom à GESBPC sans modifier la source standard personalisation-activity.md
29 Comment générer et appliquer un patch X3 entre dossiers ? personalisation-activity.md

Localisation and security

# Prompt Should trigger Consult
30 Mon Errbox affiche du français à un utilisateur anglais, comment corriger ? localization.md, code-review-checklist.md
31 Formater un montant en EUR vs JPY (zéro décimale) en L4G localization.md
32 Convertir une date entre format français et ISO pour un export localization.md, builtin-functions.md
33 Email multilingue dans un workflow X3 selon la langue du destinataire localization.md, workflow-email.md
34 Revue de code : check-list pour valider un .src custom code-review-checklist.md
35 Comment poser une ACL sur un service REST custom ? security-permissions.md
36 Ajouter un index custom sur une table standard pour un For lent performance.md
37 Empêcher l’injection SQL dans un Exec Sql qui prend une saisie utilisateur security-permissions.md
38 Stocker une clé API partenaire sans la coder en dur dans le .src security-permissions.md
39 Audit trail : tracer qui a modifié quoi et quand sur une table sensible security-permissions.md, debugging-traces.md

Diagnostics and post-mortem

# Prompt Should trigger Consult
40 Comment lire un adxlog.log pour retrouver l’erreur d’un user ? diagnostics-postmortem.md
41 fstat=4 qu’est-ce que ça veut dire et comment je règle ça ? diagnostics-postmortem.md, database.md
42 Une session est bloquée sur un Readlock qui ne se libère pas, comment la débloquer ? diagnostics-postmortem.md
43 Mon pool AWS GESAPO est saturé, les SOAP timeoutent — diagnostic ? diagnostics-postmortem.md, web-services-soap.md, performance.md
44 Un batch a fini avec status 4 dans GESAEX, par où je commence ? diagnostics-postmortem.md, batch-scheduling.md
45 Le moteur adonix a crashé avec un SIGSEGV, qu’est-ce qu’on fait ? diagnostics-postmortem.md
46 Modèle de rapport d’incident pour un P1 X3 diagnostics-postmortem.md

Data migration

# Prompt Should trigger Consult
47 Plan de migration de notre legacy ERP vers Sage X3, par où on commence ? data-migration.md
48 Pourquoi passer par une table de staging YSTAGING au lieu de charger direct ? data-migration.md
49 Mon script de chargement crashe à la ligne 800k sur 1M, comment le rendre idempotent ? data-migration.md, code-review-checklist.md
50 Réconciliation post-migration : comment je prouve que la donnée est complète ? data-migration.md
51 Stratégie dual-write entre legacy et X3 pendant le cutover data-migration.md
52 Ajouter un champ obligatoire à BPCUSTOMER avec backfill sur 5M de lignes data-migration.md, personalisation-activity.md, performance.md
53 Consolider trois dossiers X3 en un seul, gestion des collisions de clés data-migration.md

Audit, compliance, retention

# Prompt Should trigger Consult
54 Implémenter un audit trail RGPD-compliant sur BPCUSTOMER audit-compliance.md, security-permissions.md
55 Politique de rétention sur les logs d’intégration et les commandes archivées audit-compliance.md
56 Droit à l’effacement RGPD : effacer un client tout en gardant les écritures comptables audit-compliance.md, security-permissions.md
57 Export des données personnelles d’un BPC pour répondre à une demande RGPD audit-compliance.md, imports-exports.md

Review / paste-code

# Prompt Should trigger Consult
58 Relis ce code: Subprog YFOO ... [F:BPC]BPCNUM = "BP001" ... Write [BPC] code-review-checklist.md, SKILL.md red flags
59 [M:BPC]BPCNAM = "Test" : Inpbox ... — what does this do? ✅ (Classic fragments) screens-and-masks.md
60 Class YFOO Public Method ... Endclass — is this V12? v12-classes-representations.md
61 Trbegin [SOH] : For [SOH] Where SOHSTA = 1 : Rewrite [SOH] : Next : Commit — qu’est-ce qui cloche ? code-review-checklist.md, performance.md
62 Readlock [SOH]SOHNUM0 = NUM : Rewrite [SOH] : Return — verrou bien libéré ? code-review-checklist.md, database.md

Should NOT trigger

# Prompt Consult
N1 “How do I write a 4GL program in Informix?” generic 4GL, not Sage — skill should stay silent
N2 “Explain OpenEdge ABL transactions” different vendor
N3 “What’s Oracle Forms?” different vendor
N4 “How do I write a stored procedure in PostgreSQL?” not L4G

If a ✅ prompt fails to trigger, the description field in SKILL.md’s frontmatter is likely missing a keyword. Add the term and re-test.

If an N-prompt triggers, the description is too broad — narrow the phrasing (e.g. replace “4GL” with “Sage X3 4GL / L4G” in the surrounding sentence).

Quality checks (after trigger)

For a ✅ prompt, verify the output:

Any failure → open an issue against the relevant reference file, not the frontmatter.