Test bridge
Skill JimmyBlanquet/project-forge/skills/speckit/test-bridge
SaaS factory: Next.js starters + spec-kit extensions + Ralph++ autonomous loop. Production-ready in 48h.
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.
What its author says it does
Copied from the file, not written here
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.
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