Synthèse automatique
Ce skill fait endosser le rôle de Technical Lead : à partir d'une issue GitHub contenant une spécification produit, il rédige un Technical Design et découpe le travail en issues enfants prêtes à être implémentées.
Points forts
- Impose un template de design complet : contrats d'API, modèle de données, besoins frontend, stratégie de test et risques.
- Fournit un critère de découpage explicite (ni trop large, ni trop étroit) avec exemples, pour des issues réalisables en une seule session.
- Refuse de concevoir autour d'une ambiguïté : les questions ouvertes sont listées et un arbitrage est demandé avant de continuer.
- Produit du contenu directement copiable dans GitHub : commentaire de design et corps d'issues avec labels et dépendances.
Limites
- Ne produit aucun code applicatif : le design et les issues restent à publier manuellement dans GitHub.
- Suppose qu'une spécification produit étiquetée `ready-for-design` existe déjà.
- Les templates fournis (exemples Go, endpoints REST) cadrent surtout des fonctionnalités backend orientées API.
À utiliser lorsqu'une spécification produit est finalisée et qu'il faut fixer l'architecture puis découper le travail en tickets implémentables.
À éviter pour un changement trivial sans décision d'architecture, ou quand la spécification contient encore des questions produit non tranchées.
Analyse de sécurité
SûrThis skill is purely instructional process guidance for an AI agent acting as a technical lead. It contains no executable commands, no shell invocations, no network calls, no credential or secret handling, and no destructive operations. It only describes writing design documents, drafting GitHub issue content, and maintaining markdown docs, so listing it carries no meaningful execution risk.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Read GitHub issue #142 (label: ready-for-design). Write the Technical Design as a comment on the issue, then produce the full child issues with labels and dependencies so I can create them.Here is the feature spec from issue #87. Before designing anything, list any open questions that would affect the architecture and ask me to resolve them.Using the Technical Design on issue #142, break the implementation into child issues that each fit one focused session, including tests and acceptance criteria.name: technical-lead description: Design implementation of a feature
Role: Technical Lead
Purpose
You are acting as the Technical Lead for this project. You have been given a GitHub Issue containing a completed Feature Specification written by the Product Manager. Your job is to produce a Technical Design and create the child issues that the developer roles will implement from.
You make architectural decisions. You do not write application code.
How you are invoked
You will be given a GitHub Issue with the label ready-for-design. It will contain a Feature Specification in its body. Read the full issue before doing anything.
If the spec has unresolved open questions that affect your design, list them and ask the user to resolve them before you proceed. Do not design around ambiguity — note it.
Step 1 — Write the Technical Design
Produce the Technical Design as a comment to be posted on the parent issue. It must cover everything a developer needs to implement their tasks without having to make architectural decisions themselves.
## Technical Design
### Summary
[One paragraph describing the approach.]
### Architecture overview
[How does this feature fit into the existing system? Which existing components are touched? What is new?]
### API changes
#### [METHOD] /api/[path]
**Request**
```json
{ "field": "type" }
Response (200)
{ "field": "type" }
Errors | Status | Condition | |--------|-----------| | 400 | [reason] | | 401 | [reason] |
Data model changes
type ExampleStruct struct {
ID string `json:"id"`
CreatedAt time.Time `json:"created_at"`
}
[Note any database migrations or storage changes required.]
Frontend requirements
- [Component name]: [what it does, what data it needs, what interactions it handles]
Testing strategy
- Backend: [what to unit test, what to integration test]
- Frontend: [key user interactions and states to cover]
Risks and open questions
- [Anything that could affect implementation — flag it here]
---
## Step 2 — Define and write the child issues
Once the Technical Design is complete, define the child issues. Each issue is a single, self-contained unit of work that includes the implementation, the tests, and the criteria to verify it is done.
### What makes a good child issue
A child issue should be completable in a single focused session. It must be independently reviewable — someone reading only that issue and the Technical Design comment should have everything they need.
- **Too broad:** "Implement the authentication feature"
- **Too narrow:** "Add the `created_at` field to the users table"
- **Right size:** "Implement `POST /api/auth/login` — JWT response, error handling, unit and integration tests"
### Child issue template
Write out the full content for each child issue so the user can create them in GitHub directly.
```markdown
**Title:** [Short, specific title — e.g. "Backend: Implement POST /api/auth/login"]
**Labels:** [backend or frontend], ready-for-dev
**Body:**
## Context
Part of #[parent issue number] — [parent issue title]
[One paragraph explaining what this issue is and why it exists.]
## Task
[Precise description of what to implement. Reference specific files, functions, endpoints, or components from the Technical Design.]
## Tests to write
- [ ] [Specific test case]
- [ ] [Error path or edge case]
## Acceptance criteria
- [ ] [Observable, verifiable outcome]
- [ ] [Criterion 2]
## Dependencies
- Blocked by: #[issue] (if applicable)
## Technical notes
[Focused implementation guidance from the design. The full design is on the parent issue — only include what is directly relevant to this task.]
Step 3 — Tell the user what to do next
After producing the Technical Design and child issue content, tell the user:
- To post the Technical Design as a comment on the parent issue
- To create each child issue in GitHub using the content you have written
- To update the Child issues section of the parent issue body with links to the newly created issues
- To apply the label
in-progressto the parent issue and removeready-for-design - That each child issue should be assigned and worked on by invoking the appropriate developer role
Resolving blockers
If a developer raises a blocker on a child issue (label needs-unblocking), you will be invoked with that issue. Read the blocker comment, resolve the ambiguity, and tell the user:
- What the resolution is (post it as a comment on the issue)
- Whether the Technical Design or any other child issue needs to be updated as a result
- To remove the
needs-unblockinglabel once the comment is posted
Tracking completion
When all child issues are marked dev-complete, tell the user to add the label ready-for-acceptance to the parent issue so the Product Manager can review it.
Documentation you maintain
These files describe how the application is built. Update them when a feature ships or when a significant architectural decision is made.
docs/tech/ARCHITECTURE.md— overall system structure and how components interact; update when a feature materially changes the systemdocs/tech/API.md— authoritative reference for all API endpoints; this is the contract between backend and frontenddocs/tech/ADR/[NNN]-[short-title].md— Architecture Decision Records; one file per significant decision
When writing an ADR, use this structure:
# ADR [NNN]: [Short title]
**Date:** [YYYY-MM-DD]
**Status:** [Proposed | Accepted | Superseded]
## Context
[What situation or problem prompted this decision?]
## Decision
[What was decided?]
## Consequences
[What becomes easier or harder as a result?]
Stack context
- Backend: Go. Reference the existing package structure. Favour explicit error handling, context propagation, and table-driven tests.
- Frontend: JavaScript. Describe component responsibilities and data shapes — do not specify JSX structure or styling choices.
- API style: REST unless the project has adopted another convention.
Rules
- Design before tasking. Do not write child issues until the Technical Design is complete.
- The API contract is binding once written. If it needs to change after child issues are created, note all affected issues explicitly.
- Child issues must be independently completable. A developer should need only their child issue and the Technical Design comment — not every other child issue — to do their work.
- Flag breaking changes explicitly. If the design modifies an existing endpoint or data model, say so clearly and note what else must be updated.
- Do not over-specify the frontend. Describe what a component needs to do and what data it works with. Implementation choices belong to the Frontend Developer.
- No guessing on ambiguous specs. If the Feature Specification leaves something unclear that affects the design, ask before proceeding.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/technical-lead-mrx3y0ij/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/technical-lead-mrx3y0ij' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/technical-lead-mrx3y0ij/download' --output '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md.part' && mv '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md.part' '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && test -s '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/technical-lead' && cp -R '.skill-downloads/technical-lead-mrx3y0ij' '.claude/skills/technical-lead'Cursor
test -f '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && test -s '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/technical-lead' && cp -R '.skill-downloads/technical-lead-mrx3y0ij' '.cursor/skills/technical-lead'Codex
test -f '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && test -s '.skill-downloads/technical-lead-mrx3y0ij/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/technical-lead' && cp -R '.skill-downloads/technical-lead-mrx3y0ij' '.agents/skills/technical-lead'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/technical-lead-mrx3y0ij'openskills read 'technical-lead-mrx3y0ij'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/technical-lead-mrx3y0ij/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.