Test bridge
Skill JimmyBlanquet/project-forge/skills/speckit/test-bridge
Pont entre les Acceptance Scenarios SpecKit et Playwright Agents. Convertit les AS de spec.md en specs Markdown compatibles Planner, lance le Generator, et vérifie la traçabilité spec→test. Utiliser après speckit-tasks pour garantir que chaque scenario d'acceptation a un test E2E correspondant.From its SKILL.md
npx -y skills add JimmyBlanquet/project-forge --skill test-bridgeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
SpecKit Test Bridge — Spec → Playwright Agents
Objectif
Fermer la boucle entre les spécifications (spec.md) et les tests E2E en exploitant Playwright Agents (v1.56+).
Workflow :
spec.md (AS1.1, AS2.1...)
↓ speckit-test-bridge
specs/<feature>.md (format Planner)
↓ Playwright Generator Agent
tests/e2e/<feature>.spec.ts (tests standards)
Prérequis
- Playwright v1.56+ installé
- Agent definitions initialisées (
npx playwright init-agents --loop=claude) - Un fichier
spec.mdexistant avec des Acceptance Scenarios (format SpecKit) seed.spec.tsconfiguré pour l'app
Phase 1 : Extraction des Acceptance Scenarios
Entrée
Le fichier spec.md de la feature, qui contient des Acceptance Scenarios au format :
**AS1.1** : L'utilisateur peut créer un post avec titre et contenu
**AS1.2** : Le système rejette un post sans titre
Action
- Lire le fichier
spec.mdde la feature - Extraire TOUS les Acceptance Scenarios (pattern :
AS\d+\.\d+) - Pour chaque AS, extraire :
- L'identifiant (AS1.1)
- La description
- Les pré-conditions (si mentionnées)
- Le résultat attendu
- Lister les AS trouvés et demander confirmation à l'utilisateur
Phase 2 : Génération des specs Playwright
Format de sortie
Créer specs/<feature-name>.md au format compatible Planner Playwright :
# Test Plan: <Feature Name>
> Source: specs/<feature>/spec.md
> Generated by: speckit-test-bridge
## Scenario: AS1.1 — <description>
**Preconditions:** <user logged in, specific data exists, etc.>
### Steps:
1. Navigate to <url>
2. Fill "<field label>" with "<value>"
3. Click "<button label>"
4. Verify "<expected text>" is visible
### Expected Outcome:
- <assertion 1>
- <assertion 2>
---
## Scenario: AS1.2 — <description>
...
Règles
- Utiliser des locators sémantiques (getByRole, getByLabel, getByText) dans les descriptions
- Chaque scenario DOIT avoir au moins 2 assertions (expected outcomes)
- Les pré-conditions doivent être explicites (état auth, données nécessaires)
- Annoter chaque scenario avec son identifiant AS pour la traçabilité
Phase 3 : Génération des tests (optionnel)
Si l'utilisateur le demande, lancer le Generator Agent :
claude "Use the generator agent to create tests from specs/<feature-name>.md"
Post-génération
- Vérifier que les tests générés compilent (
npx playwright test --list) - Ajouter les annotations de traçabilité dans les tests :
test('AS1.1: User can create a post', async ({ page }) => {
test.info().annotations.push({
type: 'spec-ref',
description: 'specs/<feature>/spec.md#AS1.1'
});
// ... test code
});
- Vérifier que chaque AS a un test correspondant
Phase 4 : Gap Analysis
Vérification de traçabilité
- Lister tous les AS extraits de
spec.md - Lister tous les
spec-refannotations danstests/e2e/ - Identifier les gaps :
- AS sans test → MANQUANT (action requise)
- Test sans AS → ORPHELIN (à vérifier)
- Générer un rapport :
## Test Traceability Report — <Feature>
| AS | Description | Test | Status |
|----|-------------|------|--------|
| AS1.1 | Create post | tests/e2e/posts.spec.ts:12 | ✅ COVERED |
| AS1.2 | Reject empty title | — | ❌ MISSING |
| — | Orphan test | tests/e2e/posts.spec.ts:45 | ⚠️ ORPHAN |
**Coverage:** 3/5 AS covered (60%)
**Action required:** Generate tests for AS1.2, AS2.3
Phase 5 : Mise à jour des tests existants
Quand une feature est modifiée (nouveau spec.md) :
- Re-exécuter Phase 1-4
- Identifier les nouveaux AS non couverts
- Identifier les AS supprimés dont les tests doivent être retirés
- Lancer le Generator pour les nouveaux AS
- Lancer le Healer si des tests existants échouent après la modification
Intégration dans le workflow SpecKit
Cette skill s'insère dans le workflow principal :
/speckit-specify → spec.md avec Acceptance Scenarios
/speckit-plan → plan.md
/speckit-tasks → tasks.md + sous-stories
/speckit-test-bridge → specs/*.md + tests/e2e/*.spec.ts ← ICI
/speckit-convert → prd.json (inclut les tests comme acceptance criteria)
/ralph-loop → implémentation + vérification
Commandes
# Générer les specs Playwright depuis un spec.md
/speckit-test-bridge specs/posts/spec.md
# Avec génération automatique des tests
/speckit-test-bridge specs/posts/spec.md --generate
# Gap analysis uniquement (pas de génération)
/speckit-test-bridge specs/posts/spec.md --check-only
# Mise à jour après modification de feature
/speckit-test-bridge specs/posts/spec.md --update
Règles importantes
- Ne JAMAIS skip cette étape pour les features avec UI — chaque AS doit avoir un test
- Minimum 2 assertions par test — le volume ne fait pas la qualité
- Traçabilité obligatoire — chaque test DOIT avoir une annotation
spec-ref - Locators sémantiques — getByRole, getByLabel, getByText (jamais CSS/XPath)
- Seed file requis —
tests/e2e/seed.spec.tsdoit exister et fonctionner
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.