skills/fast-meeting/SKILL.md
Lance une réunion autonome rapide avec des personas sélectionnés automatiquement, implémente la décision, crée une MR/PR, commite, pousse et publie un résumé en français — le tout sans intervention de l'utilisateur.
npx skillsauth add dedalus-erp-pas/foundation-skills fast-meetingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a fully autonomous meeting with expert personas, then immediately implement the recommended solution, create a merge request or pull request, and post a French description — all without asking the user for confirmation.
brew install ghbrew install glabActivate when the user:
Before starting, clean up stale worktrees from previous meetings that may have crashed:
git worktree prune to remove stale worktree referencesgit worktree list — if any entries match sibling directories named fast-meeting-* or fm-*:
fuser -s <worktree-path> 2>/dev/null). If the directory is in active use, skip it — it belongs to another running fast-meetinggit worktree remove <path> --forcefast-meeting/* branches: git branch --list 'fast-meeting/*' | xargs -r git branch -DThis ensures a clean starting state without disrupting parallel fast-meeting runs.
#123 or GitHub #123):
git remote -v to determine if the remote is GitLab or GitHubOutput the decision question before proceeding. Example:
"Question: Should we migrate the authentication system from session-based to JWT tokens?"
Automatically select 3-4 personas based on the subject matter. Use these heuristics:
| Le sujet concerne... | Personas auto-sélectionnés | |---------------------|---------------------| | Backend / API / base de données | SOLID Alex (Backend), Whiteboard Damien (Architecte), EXPLAIN PLAN Isabelle (DBA Oracle) | | Frontend / UI / UX | Pixel-Perfect Hugo (Frontend), Figma Fiona (UX/UI), Sprint Zero Sarah (PO), Whiteboard Damien (Architecte) | | Sécurité / auth / contrôle d'accès | Paranoid Shug (Sécurité), RGPD Raphaël (DPO), SOLID Alex (Backend), Whiteboard Damien (Architecte) | | Infrastructure / déploiement / CI-CD | Pipeline Mo (DevOps), SOLID Alex (Backend), Whiteboard Damien (Architecte) | | Données / migration / ETL | Schema JB (Data), EXPLAIN PLAN Isabelle (DBA Oracle), Whiteboard Damien (Architecte) | | Interopérabilité / HL7 / FHIR / HPK | RFC Santiago (PO Interop), HL7 Victor (Dev Interop), SOLID Alex (Backend) | | Legacy / Uniface / modernisation | Legacy Larry (Uniface), Whiteboard Damien (Architecte), SOLID Alex (Backend) | | Tests / qualité / régression | Edge-Case Nico (QA), SOLID Alex (Backend), Pipeline Mo (DevOps) | | Produit / fonctionnalité / décision UX | Sprint Zero Sarah (PO), Pixel-Perfect Hugo (Frontend), Figma Fiona (UX/UI), Whiteboard Damien (Architecte) | | Santé / workflows cliniques | Dr. Workflow Wendy (Santé), Sprint Zero Sarah (PO), RGPD Raphaël (DPO) | | RGPD / données personnelles / conformité | RGPD Raphaël (DPO), Paranoid Shug (Sécurité), Whiteboard Damien (Architecte) | | BI / tableaux de bord / reporting / finance / comptabilité | Dashboard Estelle (BI Finance), Pixel-Perfect Hugo (Frontend), EXPLAIN PLAN Isabelle (DBA Oracle), Whiteboard Damien (Architecte) | | Full-stack / sujet transverse | Whiteboard Damien (Architecte), SOLID Alex (Backend), Sprint Zero Sarah (PO), Edge-Case Nico (QA) |
Si le sujet couvre plusieurs domaines, choisir les 3-4 personas les plus pertinents. Toujours inclure Whiteboard Damien (Architecte) pour les décisions techniques. Toujours inclure Sprint Zero Sarah (PO) pour les décisions produit.
Pool complet des personas avec rôles, perspectives et biais : voir reference/personas.md.
Announce the selected personas and their roles before starting the meeting.
The meeting uses sub-agents to run each persona independently and in parallel. The fast meeting compresses the process into 2 rounds.
IMPORTANT: Use the Agent tool to launch each persona as a separate sub-agent.
Launch one sub-agent per persona in parallel using the Agent tool. Each sub-agent receives:
Sub-agent prompt template:
You are {name}, a {role}.
Your perspective: {perspective}
Your natural bias: {bias}
You are participating in a fast meeting about: {decision_question}
Context:
{context}
As {name}, provide your position:
1. What is your recommended approach? Be specific and concrete.
2. What are the top 2 risks? Be specific about failure scenarios.
3. What is your preferred implementation strategy in concrete steps?
4. What would you push back on from other typical perspectives?
Stay fully in character. Be concise and actionable — this is a fast meeting.
This is a research task — do NOT write or edit any files.
Launch ALL persona sub-agents in a single message so they run in parallel. Use subagent_type: "general-purpose" and a short description like "Fast persona: {name}".
Collect all positions and present them as quotes:
SOLID Alex (Senior Backend Engineer): "I recommend..."
After collecting Round 1 responses, evaluate the consensus level:
You are a devil's advocate in a fast meeting.
All participants agreed on this approach: {consensus_summary}
Your job: find the strongest possible argument AGAINST this consensus.
- What could go wrong that nobody mentioned?
- What assumption are they all making that might be false?
- What alternative did they dismiss too quickly?
Be specific and concrete. Reference real failure scenarios.
This is a research task — do NOT write or edit any files.
After collecting all Round 1 responses, you (the facilitator, not a sub-agent) synthesize:
Do NOT launch a second round of sub-agents. Synthesize directly for speed.
Write a compact analysis displayed to the user:
## Fast Meeting : [Sujet]
**Question :** [La question de décision]
**Participants :** [Name (Role)] | [Name (Role)] | [Name (Role)]
### Recommandation retenue
[The recommended approach in 2-3 sentences]
### Justification
- [Reason 1]
- [Reason 2]
- [Reason 3]
### Risques et mitigations
- [Risk 1 → Mitigation]
- [Risk 2 → Mitigation]
### Plan d'implémentation
1. [Step 1]
2. [Step 2]
3. [Step 3]
If an issue was already referenced in Step 1, it is already available — skip to Step 5.
If no issue was referenced, create one automatically for traceability — no user prompt, no confirmation. This is consistent with the full-autonomy contract of fast-meeting.
glab issue create --title "<title>" --description "<description>"gh issue create --title "<title>" --body "<description>"## Contexte
[Business context derived from the user's prompt — what problem or opportunity triggered this analysis]
## Question analysée
[The decision question from Step 1, framed in business terms]
## Participants
| Expert | Rôle |
|--------|------|
| [Name] | [Role] |
| ... | ... |
## Recommandation
[The recommended approach in 2-3 sentences, focusing on user/business value rather than technical details]
## Risques identifiés
- [Risk 1 in business impact terms → Mitigation]
- [Risk 2 in business impact terms → Mitigation]
---
_Issue créée automatiquement par un fast-meeting IA_
Before implementing, estimate the scope of the recommended changes:
### Étapes restantes section/meeting skill for proper planning with validation before implementationImmediately proceed to implementation without asking the user. This is the key difference from meeting.
Implementation runs in a git worktree, which creates an isolated copy of the repository. The user's working tree is never modified — no stash, no branch switch, no risk of state corruption.
main)fix/feat/refactor/feat/git fetch origin to ensure branch information is up-to-dategit branch -a and check if <type>/fm-<topic> already exists (locally or as remotes/origin/<type>/fm-<topic>)-2, -3, etc.) until a unique name is found. Do not force-delete existing branches — they may contain reviewed or in-progress work<type>/fm-<short-kebab-case-topic> (e.g., feat/fm-jwt-auth-migration, fix/fm-notification-display) — with suffix if collision was detected$(git rev-parse --show-toplevel)/../fm-<topic>git worktree add ../fm-<topic> -b <type>/fm-<topic>git branch -D <type>/fm-<topic> then retry the worktree creationcd into the worktree path before running git commandsfeat(<scope>): <description>Co-Authored-By: Claude Opus 4.6 <[email protected]> in the commit messagegit commit fails due to a pre-commit hook: analyze the hook output, fix the code to pass the hook, and retry the commit once. If it still fails, treat it like a test failure — push as Draft with the hook error documented in the MR/PR description. Never use --no-verifyAfter committing, validate the implementation against the project's test suite:
package.json for test, test:unit, test:e2e scriptsMakefile, pytest.ini, phpunit.xml, or other test config filesDraft:)### Tests en échec section in the MR/PR description listing the failing tests and error messagesgit push -u origin <type>/fm-<topic> (from the worktree path)cd <worktree-path> && git push -u origin <branch>git worktree remove ../fm-<topic>git worktree remove ../fm-<topic> --forcegit worktree list and verify the fast-meeting worktree no longer appears. If it does, output the cleanup command for the user: git worktree remove <path> --forceBased on the remote type detected in Step 1:
Use glab mr create --title "<title>" --description "<description>" --target-branch main to create a merge request with:
Closes #XX in the description to auto-close the issue on mergeUse gh pr create to create a pull request with:
Closes #XX in the body to auto-close the issue on mergeIf the MR/PR creation fails (API timeout, rate limit, authentication, MCP tool error):
gh pr create --head <branch> --title "<title>" --body "<body>"The MR/PR description targets developers reviewing the code. Focus on technical details: what changed, why this approach was chosen technically, and what to watch during review.
## Résumé technique
### Contexte
[Brève description du problème technique ou de la décision d'architecture qui a motivé ces changements]
### Approche retenue
[L'approche technique choisie et pourquoi — patterns utilisés, alternatives considérées et rejetées techniquement]
### Changements implémentés
| Fichier | Modification | Justification technique |
|---------|-------------|------------------------|
| `path/to/file` | [Ce qui a changé] | [Pourquoi ce choix technique] |
| ... | ... | ... |
### Points d'attention pour la revue
- [Point technique à vérifier — ex: gestion d'erreurs, performance, rétrocompatibilité]
- [Impact potentiel sur d'autres modules]
- [Cas limites à valider]
### Tests
- [Résultats des tests : nombre exécutés, passés, échoués]
- [Couverture des cas limites identifiés]
### Prochaines étapes
- [ ] Revue de code par l'équipe
- [ ] Validation des tests
- [ ] Merge après approbation
---
_Implémentation générée automatiquement par IA_
Issue linking: if an issue exists (referenced in Step 1 or created in Step 4b), append Closes #<issue_number> on its own line after the --- separator and before the italic footer. If no issue exists, omit this line entirely.
Post a Product Owner / consultant oriented comment to the linked issue. This comment is a decision bookmark for the PO/consultant who reopens the ticket: it must answer "what was decided and why?" in under 15 displayed lines. Optimize for scan reading — the reader decides in 3 seconds whether to dig in.
Issue resolution:
## Décision at the top, stating the verdict in 1-2 actionable sentences. This is the only thing 80% of readers will read.## Décision
[1-2 phrases actionnables au présent, en termes métier]
**Pourquoi**
- [Bénéfice utilisateur / métier 1]
- [Bénéfice utilisateur / métier 2]
- [Bénéfice utilisateur / métier 3 ou trade-off assumé]
**Risques**
- [Risque métier → mitigation]
- [Risque métier → mitigation]
**Impact** : [utilisateurs concernés] · [délai si pertinent] · [dépendances si pertinentes]
**MR/PR** : [Lien]
---
_Fast-meeting IA · [Persona1, Persona2, Persona3]_
Compaction rules :
Post the comment using the appropriate tool:
glab issue note <iid> --message "<comment>"gh issue comment <number> --body "<comment>"Always output a structured run summary at the end of every fast-meeting run, regardless of whether the pipeline succeeded or failed at any step. This provides observability for an autonomous pipeline.
### Fast Meeting — Run Summary
- **Sujet :** [topic]
- **Branche :** `<type>/fm-<topic>`
- **Worktree :** [path] (nettoyé : oui/non)
- **Push :** succès / échec ([erreur si applicable])
- **MR/PR :** [URL] / non créé ([raison si applicable])
- **Tests :** [N exécutés, N passés, N échoués] / non détectés
- **Issue :** liée (#XX) / créée (#XX) / échec de création ([erreur])
- **Commentaire issue :** publié (#XX) / ignoré (pas d'issue)
- **Durée totale :** [durée wall-clock de l'ensemble du pipeline]
If any step failed, the summary must include the failure reason and any manual recovery commands already provided in earlier steps.
/meetingUser: fast-meeting : est-ce qu'on doit utiliser GraphQL ou REST pour la nouvelle API
→ Auto-sélection : SOLID Alex (Backend), Pixel-Perfect Hugo (Frontend), Whiteboard Damien (Architecte)
→ Lance le fast meeting (1 tour + synthèse)
→ Implémente l'approche recommandée
→ Crée la branche feat/fm-graphql-vs-rest-api
→ Commit, push, crée la MR/PR avec description en français
User: fast-meeting sur l'issue #42 - les notifications ne s'affichent pas
→ Récupère les détails de l'issue #42
→ Auto-sélection : Pixel-Perfect Hugo (Frontend), SOLID Alex (Backend), Edge-Case Nico (QA)
→ Lance le fast meeting
→ Implémente le correctif
→ Crée la MR/PR, poste le lien sur l'issue #42
User: fast-meeting : refactorer le module d'authentification pour supporter OAuth2
→ Auto-sélection : Paranoid Shug (Sécurité), SOLID Alex (Backend), Whiteboard Damien (Architecte), Pipeline Mo (DevOps)
→ Lance le fast meeting
→ Implémente le refactoring
→ Crée la MR/PR avec analyse en français
User: fast-meeting : migrer le cache Redis vers Valkey
→ Pas d'issue référencée
→ Auto-sélection : SOLID Alex (Backend), Pipeline Mo (DevOps), Whiteboard Damien (Architecte)
→ Lance le fast meeting (1 tour + synthèse)
→ Crée automatiquement l'issue #58 avec résumé PO (aucune confirmation requise)
→ Implémente la migration dans un worktree isolé
→ Commit, push, crée la MR/PR (Closes #58) avec description technique
→ Poste le résumé PO sur l'issue #58
gh label list for GitHub, or check existing issue labels for GitLab) and pick from the available ones. If no suitable label exists, skip labeling rather than creating a new one./meeting insteadgit branch -r | grep '/fm-'. If other branches exist, add a warning in the MR/PR description: "Attention : d'autres branches fast-meeting sont actives. Vérifier les conflits potentiels avant merge."<type>/fm-<topic> (e.g., feat/fm-<topic>, fix/fm-<topic>) — determined automatically from the meeting recommendationgh pr create (GitHub)databases
Exécute des requêtes SQL en lecture seule sur plusieurs bases de données PostgreSQL. À utiliser pour : (1) interroger des bases PostgreSQL, (2) explorer les schémas/tables, (3) exécuter des requêtes SELECT pour l'analyse de données, (4) vérifier le contenu des bases. Supporte plusieurs connexions avec descriptions pour une sélection automatique intelligente. Bloque toutes les opérations d'écriture (INSERT, UPDATE, DELETE, DROP, etc.) par sécurité.
development
Automatisation complète du navigateur et tests web avec Playwright. Détecte automatiquement les serveurs de développement, gère le cycle de vie des serveurs, écrit des scripts de test propres dans /tmp. Tester des pages, remplir des formulaires, capturer des screenshots, vérifier le responsive design, valider l'UX, tester les flux de connexion, vérifier les liens, déboguer des webapps dynamiques, automatiser toute tâche navigateur. À utiliser quand l'utilisateur veut tester des sites web, automatiser des interactions navigateur, valider des fonctionnalités web ou effectuer tout test basé sur le navigateur.
documentation
Boîte à outils complète pour la manipulation de PDF : extraction de texte et tableaux, création de nouveaux PDF, fusion/découpage de documents et gestion de formulaires. Quand Claude doit remplir un formulaire PDF ou traiter, générer ou analyser des documents PDF de manière programmatique et à grande échelle.
testing
Lance une réunion simulée avec plusieurs personas experts pour analyser un sujet sous des perspectives diverses, prendre une décision et proposer une solution avant implémentation. Peut optionnellement publier l'analyse de la réunion sur une issue GitLab ou GitHub liée.