+121
−45
Loading
L'étape 3 proposait les six champs de contexte quel que soit le kit : « cours d'eau
local » sur un scénario cyber, « gestionnaire du réseau électrique » sur une
inondation. Les champs utiles se noyaient dans ceux qui ne servaient pas.
Les variables sont maintenant DÉRIVÉES du contenu du kit, côté serveur : un nouveau
`collectTokens` relève les jetons `{{...}}` cités dans le nom, la description, les
objectifs, les personnages, les canaux, les documents et tous les champs d'inject.
Dérivé plutôt que déclaré : une liste tenue à la main mentirait dès la première
retouche d'un kit.
L'étape et le récapitulatif partagent la même liste — récapituler un champ qu'on n'a
jamais proposé n'apporte rien.
Deux replis explicites : un exercice vierge, ou une dérivation qui échoue, proposent
tous les champs, puisque l'auteur écrira ses propres injects. Et une variable citée
par le kit mais absente du formulaire — `ExercisePersonalization` a une forme fixe —
est SIGNALÉE avec l'endroit où la renseigner, plutôt que silencieusement ignorée.
C'est le cas qui se présentera dès qu'on convertira les crochets littéraux des kits
ANSSI en variables.
Cinq cas de test sur `collectTokens`, dont le piège du `lastIndex` d'un regex global
partagé entre deux textes, et la confirmation que `[votre entité]` n'est pas reconnu.
Non compilé ni exécuté (pas de toolchain Node dans l'environnement utilisé).
Co-Authored-By: Claude (RCA)