Synthèse automatique
Cette compétence lit un plan d'implémentation existant et l'exécute phase par phase, en demandant l'approbation de l'utilisateur après chaque phase.
Points forts
- Approche structurée et progressive de l'implémentation
- Récupère automatiquement le contexte complet à partir de Linear
- Demande des clarifications avant de commencer pour éviter les erreurs
- Permet une validation étape par étape par l'utilisateur
Limites
- Nécessite un fichier de plan d'implémentation existant au format spécifique
- Dépend de l'intégration avec Linear pour le contexte
- Peut être lent si de nombreuses phases sont impliquées
Utilisez cette compétence lorsque vous avez un plan d'implémentation détaillé et que vous souhaitez le dérouler de manière contrôlée, phase par phase.
Évitez cette compétence pour des correctifs rapides ou des modifications ne nécessitant pas de planification préalable.
Analyse de sécurité
SûrThe skill instructs a legitimate development workflow (reading plans, asking clarifying questions, implementing phase-by-phase). It uses standard development tools (Glob, git, tests, MCP Linear server, etc.) and contains no destructive, exfiltrating, or suspicious commands. No security risks are introduced.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
/implement PROD-808Implement the plan in PROD-123-IMPLEMENTATION-PLAN.md/implementname: implement description: Implements a feature from an existing implementation plan file (PROD-XXX-IMPLEMENTATION-PLAN.md). Fetches the linked Linear issue for context, asks clarifying questions, then implements ONE PHASE AT A TIME waiting for user approval between each phase. user-invocable: true
Implement
This skill executes an implementation plan that was previously created. It reads the plan file, fetches the linked Linear issue for full context, asks any necessary clarifying questions, and then implements the feature one phase at a time, waiting for user approval after each phase before proceeding to the next.
CRITICAL: Extended Thinking Required
YOU MUST USE EXTENDED THINKING (ultrathink) FOR ALL IMPLEMENTATION WORK IN THIS SKILL.
When implementing code, think deeply about:
- Architecture decisions and trade-offs
- Edge cases and error handling
- Security implications
- Performance considerations
- Test coverage strategy
Instructions
Follow these steps in order:
1. Find the Implementation Plan File
Look for an implementation plan file in the project root:
- Pattern:
PROD-*-IMPLEMENTATION-PLAN.mdor<LINEAR-ISSUE-ID>-IMPLEMENTATION-PLAN.md - If argument provided (e.g.,
/implement PROD-808): Look forPROD-808-IMPLEMENTATION-PLAN.md - If no argument: Search for any
*-IMPLEMENTATION-PLAN.mdfile in the root
Use Glob tool with pattern: "*-IMPLEMENTATION-PLAN.md"
If multiple plan files exist and no argument was provided, ask the user which one to implement.
If no plan file is found:
- Inform the user that no implementation plan was found
- Suggest running
/linear-issue-analyzerfirst to create one
2. Read and Parse the Plan
Read the implementation plan file and extract:
- Linear Issue ID - from the title or filename (e.g.,
PROD-808) - Overview - understand the high-level goal
- Requirements - acceptance criteria and constraints
- Technical Approach - architecture decisions
- Implementation Steps - phased steps to follow
- Testing Strategy - what tests to write
- Considerations & Risks - gotchas to watch for
- Questions & Decisions - any unresolved items
3. Fetch Linear Issue for Context
Use the MCP Linear server to get full issue context:
Use mcp__linear-server__get_issue with the extracted issue ID
Use mcp__linear-server__list_comments with the issue ID
This provides:
- Full issue description and latest updates
- Comments with clarifications or decisions made since the plan was created
- Current status and any blockers
4. Verify Branch
Ensure you're on the correct feature branch:
- Check
git branch --show-current - The branch should match the Linear issue (e.g.,
luis/prod-808-...) - If on
mainor wrong branch, alert the user and DO NOT proceed
5. Review and Ask Clarifying Questions
Before implementing, review everything and identify:
- Unresolved Questions - from the plan's "Questions & Decisions" section
- Ambiguities - requirements that aren't clear enough to implement
- Missing Information - gaps between the plan and issue comments
- Architecture Decisions - choices that need user confirmation
Use the AskUserQuestion tool to get clarification on anything unclear.
DO NOT proceed with implementation if there are blocking questions. It's better to ask now than to implement incorrectly.
6. Create Phase-Based Todo List
Use the TodoWrite tool to create a task list with phases as the top-level items:
- Each phase from the implementation plan becomes a todo item
- DO NOT break phases into sub-tasks yet - that happens when you start each phase
- Mark only Phase 1 as
in_progresswhen starting
Example:
- Phase 1: Create the service class [in_progress]
- Phase 2: Add the controller action [pending]
- Phase 3: Write tests [pending]
- Phase 4: Final linting and verification [pending]
7. PHASE-BY-PHASE IMPLEMENTATION LOOP
THIS IS THE CORE WORKFLOW. YOU MUST FOLLOW THIS EXACTLY.
┌─────────────────────────────────────────────────────────┐
│ FOR EACH PHASE: │
│ │
│ 1. Implement ONLY that phase │
│ 2. Run relevant tests │
│ 3. Show diff and summary │
│ 4. STOP and wait for user approval │
│ 5. Only proceed to next phase after explicit approval │
└─────────────────────────────────────────────────────────┘
For Each Phase:
Step A: Implement the Phase
WITH EXTENDED THINKING (ultrathink):
- Read relevant files first - understand existing code before modifying
- Follow Sprout conventions:
- Service objects for business logic (inherit from
ApplicationService) - Service signals:
Service::Success,Service::Failure,Service::Retry - Errgonomic presence checks for validations
- Actions for multi-step async operations
- Oaken seeds for test data
- Hotwire (Stimulus + Turbo) for frontend
- Service objects for business logic (inherit from
- Keep changes focused - ONLY implement what this phase specifies
- Write tests if this phase includes them (see Testing section below)
Step B: Run Tests
rails test <specific_test_file> # Run tests related to this phase
rubocop -a # Auto-fix safe issues
Step C: Present Phase Changes
After completing the phase:
- Run
git diff- show changes made in THIS PHASE ONLY - Summary - brief description of what was implemented
- Files modified - list with brief descriptions
- Tests added/passing - test status for this phase
Step D: STOP AND WAIT
╔═══════════════════════════════════════════════════════════════╗
║ 🛑 PHASE [N] COMPLETE - WAITING FOR YOUR FEEDBACK ║
║ ║
║ Please review the changes above and let me know: ║
║ • "Approved" or "LGTM" → I'll proceed to Phase [N+1] ║
║ • Feedback/changes → I'll address them before continuing ║
╚═══════════════════════════════════════════════════════════════╝
DO NOT proceed to the next phase until the user explicitly approves.
Acceptable approval signals:
- "approved", "lgtm", "looks good", "continue", "proceed", "next phase", "ok", "yes"
If the user provides feedback or requests changes:
- Make the requested changes
- Show the updated diff
- Wait for approval again
8. Testing Strategy
Tests should be written as part of the relevant phase (usually a dedicated testing phase):
- Service tests - in
test/with_seeds/services/ - Integration tests - if UI changes involved
- Use Oaken seeds - never create records in tests
- Focus on business logic - not trivial stuff
9. Final Phase: Lint and Verify
The last phase should always include:
rubocop -a # Auto-fix safe issues
rails test # Run full test suite
Fix any issues that arise before presenting for final review.
10. Implementation Complete
After ALL phases are approved:
- Final summary - overview of everything implemented
- All files changed - complete list
- Test coverage - all tests added
- Any deviations - if you deviated from the plan, explain why
DO NOT COMMIT. Ask the user if they want you to commit or if they'll do it manually.
Error Handling
- Plan file not found: Suggest running
/linear-issue-analyzerfirst - Linear issue fetch fails: Continue with plan file content, but warn user
- On wrong branch: Alert user and stop - do not implement on main
- Tests failing: Do not mark task complete until tests pass
- Ambiguous requirements: Use AskUserQuestion, do not assume
Important Reminders
- ONE PHASE AT A TIME - this is the most critical rule; implement phase, show diff, wait for approval
- ALWAYS use extended thinking - this is critical for quality implementation
- Read before writing - never modify code you haven't read
- Follow the plan - but flag if you see a better approach
- Ask questions - when unclear, ask; don't assume
- Keep it simple - avoid over-engineering
- Update todos - mark phase complete only after user approval
- Run rubocop - lint code before presenting phase for review
- NEVER COMMIT - the user must explicitly request a commit
- WAIT FOR APPROVAL - do not proceed to the next phase without explicit user approval
After Each Phase
STOP and present the diff. Wait for the user to:
- Review the phase changes
- Approve ("lgtm", "approved", "continue") → proceed to next phase
- Request changes → address them, show new diff, wait again
After All Phases Complete
Once the final phase is approved:
- Present complete summary
- Ask user if they want you to commit or will do it manually
- Suggest running
/create-prwhen ready
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/implement-feature-from-plan-mm78no17/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/implement-feature-from-plan-mm78no17' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/implement-feature-from-plan-mm78no17/download' --output '.skill-downloads/implement-feature-from-plan-mm78no17/SKILL.md.part' && mv '.skill-downloads/implement-feature-from-plan-mm78no17/SKILL.md.part' '.skill-downloads/implement-feature-from-plan-mm78no17/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/implement-feature-from-plan-mm78no17/SKILL.md' && test -s '.skill-downloads/implement-feature-from-plan-mm78no17/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/implement' && cp -R '.skill-downloads/implement-feature-from-plan-mm78no17' '.claude/skills/implement'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/implement-feature-from-plan-mm78no17'openskills read 'implement-feature-from-plan-mm78no17'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/implement-feature-from-plan-mm78no17/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.