Synthèse automatique
Génère un document d'intention (intent.md) pour capturer les besoins et raisons d'un projet avant l'écriture de code, avec révision assistée par IA.
Points forts
- Structure claire avec sections obligatoires (critères d'acceptation, dépendances, décision MML)
- Politique simple_* intégrée pour guider le choix des bibliothèques
- Génère un prompt de révision externe pour clarifier les ambiguïtés
Limites
- Nécessite une saisie manuelle du chemin du projet
- La révision IA est externe, pas intégrée au flux
- Spécifique à l'écosystème Eiffel
Utilisez cette compétence au début de tout nouveau projet Eiffel pour formaliser l'intention avant d'écrire la moindre ligne de code.
Ne l'utilisez pas pour de petites corrections ou des projets déjà en cours où l'intention est déjà claire et documentée.
Analyse de sécurité
SûrThe skill only creates directories with mkdir -p and writes markdown files. It does not execute destructive commands, exfiltrate data, or include obfuscated payloads. The Bash usage is benign. No network access is triggered automatically; the manual step of submitting to an external AI is outside the skill's execution. No secrets or tokens are handled.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
/eiffel.intent d:\prod\simple_cache/eiffel.intentname: eiffel-intent description: Phase 0 of Eiffel Spec Kit. Generates intent.md capturing WHAT users need and WHY. Runs AI-assisted intent review with probing questions. Use with /eiffel.intent command. allowed-tools: Read, Grep, Glob, Edit, Write, Bash, Task
/eiffel.intent - Phase 0: Intent Capture
Purpose: Capture WHAT users need and WHY before any code is written.
Usage
/eiffel.intent <project-path>
Example:
/eiffel.intent d:\prod\simple_cache
If no path provided, ask user: "Which project? Provide the full path (e.g., d:\prod\simple_cache)"
Project Scoping
All files are created inside the PROJECT directory:
<project-path>/
├── .eiffel-workflow/
│ ├── intent.md
│ ├── intent-v2.md (after review)
│ ├── prompts/
│ │ └── phase0-intent-review.md (prompt for external AI)
│ └── evidence/
│ └── phase0-intent.txt
├── src/
├── test/
└── <project>.ecf
Workflow
Step 1: Create Directory Structure
mkdir -p <project-path>/.eiffel-workflow/prompts
mkdir -p <project-path>/.eiffel-workflow/evidence
Step 2: Generate Initial intent.md
Ask the user to describe what they want to build. Create <project-path>/.eiffel-workflow/intent.md:
# Intent: [Library/Feature Name]
## What
[Clear description of what this does]
## Why
[Business/technical reason this is needed]
## Users
[Who will use this and how]
## Acceptance Criteria
- [ ] [Criterion 1]
- [ ] [Criterion 2]
- [ ] [Criterion 3]
## Out of Scope
[What this explicitly does NOT do]
## Dependencies (REQUIRED - simple_* First Policy)
**RULE:** Always prefer simple_* libraries over ISE EiffelStudio stdlib and Gobo.
| Need | simple_* Library | AVOID |
|------|------------------|-------|
| JSON | simple_json | $ISE_LIBRARY/contrib/library/web/framework/ewf/text/json |
| HTTP | simple_http | Gobo HTTP, EiffelNet |
| XML | simple_xml | $ISE_LIBRARY/library/xml |
| Regex | simple_regex | Gobo regex |
| Process | simple_process | $ISE_LIBRARY/library/process |
| Encoding | simple_encoding | Gobo encoding |
| CSV | simple_csv | Custom parsing |
| Config | simple_config | Custom INI parsing |
| Math | simple_math | Custom math |
| MML | simple_mml | ETH base2 |
**Only ISE allowed (no simple_* equivalent):**
- `base` - fundamental types
- `time` - DATE, TIME, DATE_TIME
- `testing` - EQA_TEST_SET
**List your dependencies:**
| Need | Library | Justification |
|------|---------|---------------|
| [capability needed] | simple_* | [why this one] |
| [capability needed] | ISE only if no simple_* | [gap identified] |
**If ISE/Gobo required:** Document the gap for potential simple_* development.
## MML Decision (REQUIRED)
**Does this library need MML model queries for precise postconditions?**
| Answer | When to Choose |
|--------|----------------|
| **YES - Required** | Library has collections (HASH_TABLE, ARRAYED_LIST, etc.) that need frame conditions |
| **YES - Optional** | Users may add MML postconditions to their extensions |
| **NO** | Pure computation, no internal collections, simple value types |
**If YES:** simple_mml will be added in Phase 1. Model queries will be mandatory for collections.
**Decision:** [YES-Required / YES-Optional / NO]
**Rationale:** [Brief explanation]
Step 3: Generate AI Review Prompt File (MANUAL CYCLE)
Create <project-path>/.eiffel-workflow/prompts/phase0-intent-review.md:
# Intent Review Request
**Instructions:** Review the intent document below and generate probing questions
to clarify vague language, identify missing requirements, and surface implicit assumptions.
## Review Criteria
Look for:
1. **Vague language:** Words like "fast", "secure", "easy", "flexible" without concrete definitions
2. **Missing edge cases:** What happens with empty input? Maximum size? Invalid data?
3. **Untestable criteria:** Are acceptance criteria specific and measurable?
4. **Hidden dependencies:** What external systems or libraries are assumed?
5. **Scope ambiguity:** Is "out of scope" clearly defined?
## Output Format
Provide 5-10 probing questions. For each:
- Quote the vague phrase
- Explain why it's vague
- Offer 2-3 concrete alternatives the user can choose from
---
## Intent Document to Review
[PASTE CONTENTS OF intent.md HERE]
Step 3b: Auto-Create Evidence Placeholder File
Create <project-path>/.eiffel-workflow/evidence/phase0-ai-review.md with placeholder:
# Phase 0: AI Review Response
**STATUS: INCOMPLETE** - Paste AI review response below this line and delete this section.
---
## Instructions
1. Open: `../.eiffel-workflow/prompts/phase0-intent-review.md`
2. Paste intent.md contents where indicated
3. Submit to an external AI (Ollama, Grok, Gemini, or another Claude session)
4. Replace this entire file with the AI's response
5. Return to Claude Code and say "review complete"
---
[AI RESPONSE GOES HERE]
Step 4: Notify Human
Display:
PHASE 0: Intent document created.
FILES CREATED:
- <project-path>/.eiffel-workflow/intent.md
- <project-path>/.eiffel-workflow/prompts/phase0-intent-review.md
- <project-path>/.eiffel-workflow/evidence/phase0-ai-review.md (placeholder - needs your input)
MANUAL ACTION REQUIRED:
1. Open: <project-path>/.eiffel-workflow/prompts/phase0-intent-review.md
2. Copy the intent.md content into the prompt where indicated
3. Submit to an AI reviewer (Ollama, Grok, Gemini, or another Claude session)
4. Replace contents of: <project-path>/.eiffel-workflow/evidence/phase0-ai-review.md with AI's response
5. Return here and say "review complete" with any answers to the questions
Waiting for your input...
BLOCK until user provides the review results.
Step 5: Process Review Results
When user returns with AI review:
- Read the probing questions from the AI
- Ask user to answer each question
- Create
<project-path>/.eiffel-workflow/intent-v2.mdincorporating answers
Step 5b: Dependency Audit (simple_* First)
Before finalizing intent-v2.md, audit all dependencies:
-
Check each dependency against simple_ ecosystem:*
Task(subagent_type=Explore) → "List all simple_* libraries and their purposes" -
For each ISE/Gobo dependency identified:
- Research if a simple_* equivalent exists
- If no equivalent: document the gap
- Add to intent-v2.md under "Gaps for Future simple_* Libraries"
-
If gap identified, create recommendation:
## Gaps Identified (Potential simple_* Libraries) | Gap | Current Workaround | Proposed simple_* | |-----|-------------------|-------------------| | [capability] | ISE/Gobo [library] | simple_[name] | **Recommendation:** After shipping this library, consider creating simple_[name] to fill this gap.
This ensures:
- No ISE/Gobo usage without explicit justification
- Gaps are documented for future ecosystem growth
- simple_* ecosystem expands based on real needs
Step 6: Final Approval
Ask: "Intent document refined. Approve to proceed to Phase 1 (Contracts)?"
BLOCK until user explicitly approves.
Step 7: Save Evidence
Save to <project-path>/.eiffel-workflow/evidence/phase0-intent.txt:
# Phase 0 Intent Evidence
# Project: <project-path>
# Date: [timestamp]
Intent document: .eiffel-workflow/intent-v2.md
AI review conducted: [yes/no]
AI used for review: [Ollama/Grok/Gemini/Claude/other]
Questions answered: [count]
User approved: [yes/no]
# Status: APPROVED
Completion
When user approves:
Phase 0 COMPLETE: Intent captured and approved.
Project: <project-path>
Next: Run /eiffel.contracts <project-path> to generate contract skeletons.
Context Management (RLM Pattern)
This skill focuses ONLY on: <project-path>
DO NOT:
- Read files outside this project directory
- Load entire ecosystem or multiple libraries into context
- Keep large file contents in working memory
DO:
- Use Task tool with Explore agent for ecosystem questions
- Ask targeted questions: "What does simple_mml provide?" not "Show me all files"
- Release context after getting answers
Example - Ecosystem Query:
Need to know about a dependency? Don't read all its files.
Instead: Task(subagent_type=Explore) → "What are simple_mml's main classes and key features?"
The sub-agent searches, summarizes, and returns ONLY what you need. Your context stays focused on this project.
Anti-Drift
- Prompt files are artifacts (can't claim review happened without them)
- Human manually submits to AI (forced engagement)
- Evidence file documents what AI was used
- MML decision is front-loaded - no "we'll add it later" drift
- simple_ first policy declared* - dependencies audited before Phase 1
- Gaps documented upfront - ISE/Gobo usage creates future simple_* recommendations
- Skill Version Lock: If you discover skill improvements during workflow, queue them in
<project-path>/.eiffel-workflow/skill-improvements.md- do NOT modify skills mid-workflow
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/eiffel-intent-capture-mmbizke7/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/eiffel-intent-capture-mmbizke7' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/eiffel-intent-capture-mmbizke7/download' --output '.skill-downloads/eiffel-intent-capture-mmbizke7/SKILL.md.part' && mv '.skill-downloads/eiffel-intent-capture-mmbizke7/SKILL.md.part' '.skill-downloads/eiffel-intent-capture-mmbizke7/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.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Grep, Glob, Edit, Write, Bash, Task
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/eiffel-intent-capture-mmbizke7/SKILL.md' && test -s '.skill-downloads/eiffel-intent-capture-mmbizke7/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/eiffel-intent' && cp -R '.skill-downloads/eiffel-intent-capture-mmbizke7' '.claude/skills/eiffel-intent'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/eiffel-intent-capture-mmbizke7'openskills read 'eiffel-intent-capture-mmbizke7'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/eiffel-intent-capture-mmbizke7/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.