09.03.06 — Skills Author#

Skills qui produisent un livrable. Tests, sondes, docs, rapports.

Listing (potentiellement non exhaustif)#

SkillCible
empiricismVérifier avant d’encoder ; ne pas écraser un test gap en échec intentionnel
write-a-probeScript de “sonde” jetable, gitignored
write-test-strategyGénère le document de stratégie de test à partir de la suite
extend-coverageÉtend la couverture à partir du patrimoine existant
update-frd-and-testsPropage une mise à jour de spec
manual-reproduction-guideRédige un scénario de reproduction exécutable par un humain
manage-backlogBACKLOG.md
pr-reportRapport de PR adapté
plan-test-effortChiffrage de l’effort de test, première passe : exigences graduées, registre de risques allégé, poids relatifs (S / M / L), questions ouvertes

empiricism#

input  : intention de l'utilisateur (« écris un test qui assert X »)
output : avant d'encoder X :
            1. vérifier empiriquement que X est vrai
                - sonde
                - gh api du code source
                - curl -v pour inspecter réponses HTTP
                - ...
            2. si X est confirmé → encoder
            3. si X est faux → corriger l'intention
            4. si X est ambigu → demander à l'humain

« Juste remarque, je suppose. Je vérifie empiriquement. »

write-a-probe#

input  : question à creuser (« est-ce que la confirmation arrive en < 5s ? »)
output : script Python jetable qui :
            - vit dans un répertoire gitignored (typique : `probes/`)
            - bypass l'Ocarina workflow (pas de Test, pas de Suite)
            - drive le navigateur ou fait des calls HTTP directement
            - print l'état (URL, DOM, cookies, timings) en stdout
            - n'est jamais commit
         après usage : la trouvaille va dans IDENTIFIED_GAPS.md / SFD / commentaire
         puis la sonde est supprimée

CLAUDE.md :

A probe is a one-off script that drives the browser (or raw HTTP) through a suspect flow and prints concrete runtime state. It bypasses the Ocarina workflow entirely — no create_selenium_test, no suites, no campaigns, no assertions. Probes live in a gitignored directory, are never committed or pushed, and are deleted once the answer lands in a durable artifact.

Et :

Reach for one when the framework’s error surface doesn’t show enough — a bare TimeoutException or AssertionError you can’t act on. The trigger is the visibility gap, not where you are in the test lifecycle.

write-test-strategy#

input  : patrimoine de test, base de test
output : un .md de test strategy contenant :
            - scope
            - test types
            - coverage tables (REQ-X-N × test_X)
            - suite/campaign tree
            - expected pass/fail breakdown
            - gaps
            - CI matrix

CURA_TEST_STRATEGY.md

extend-coverage#

input  : un gap / une idée d'attaque trouvée par un skill black-hat
output : un nouveau test qui exerce ce gap :
            - via l'UI normale (pas de payload)
            - assert rejection si attendu (gap test)
            - assert le comportement actuel si exploratoire
            - se connecte avec SFD update

update-frd-and-tests#

input  : changement de spec (« CURA a corrigé G-DATA-1 »)
output : diff atomique :
            - SFD §9.7 : ajoute la révision (« 2026-XX-XX : fixed »)
            - IDENTIFIED_GAPS.md : ajoute la révision
            - test : inverse l'assertion (FAIL → PASS), renomme, déplace si nécessaire
            - analyse tous les commentaires inline qui référencent l'ancien gap

C’est le seul skill qui modifie la spec qu’on lui fournit comme référence.

Ne réécris pas la spec ; seul update-frd-and-tests le fait, avec une ligne de révision.

manual-reproduction-guide#

input  : un test fail
output : un guide pour un humain, étape par étape, pour reproduire le fail manuellement
1. Open https://katalon-demo-cura.herokuapp.com/profile.php#login
2. Type "John Doe" in username field
3. Type "ThisIsNotAPassword" in password field
4. Click Login
5. Navigate to /appointment.php
6. ...
7. Observe: confirmation page rendered with past date (expected: rejection)

manage-backlog#

input  : sessions de travail / discussions
output : maintien de BACKLOG.md :
            - findings à investiguer plus tard
            - improvements suggérés
            - tests à écrire
            - questions ouvertes sur le SUT
         priorisation

pr-report#

input  : une mise à jour à pousser en tant que PR
output : rapport de PR adapté au type de changement :
            - PR de feature : tests ajoutés, coverage diff
            - PR de bugfix : test de régression, lien au gap
            - PR de refactor : checks que le comportement n'a pas changé
            - PR de doc : aucun test
            - PR mixte : sections multiples

Permet à l’humain de produire un rapport cohérent au format gh pr create --body ...

Discipline transversale#

Tous les skills Author produisent quelque chose de persistant, des livrables : test, doc, fichier.