Automated summary
Generates an intent.md document to capture WHAT users need and WHY before any code is written, including AI-assisted review with probing questions.
Strengths
- Clear structure with mandatory sections (acceptance criteria, dependencies, MML decision)
- Built-in simple_* policy to guide library selection
- Generates an external review prompt to clarify vague requirements
Limitations
- Requires manual project path input
- AI review is external, not integrated into the workflow
- Eiffel-specific ecosystem
Use this skill at the start of any new Eiffel project to formalize intent before writing any code.
Do not use for minor fixes or ongoing projects where intent is already clear and documented.
Security analysis
SafeThe 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.
No concerns found
How this analysis is madeExamples
/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
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/eiffel-intent-capture-mmbizke7/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
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. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Read, Grep, Glob, Edit, Write, Bash, Task
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
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 must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/eiffel-intent-capture-mmbizke7'openskills read 'eiffel-intent-capture-mmbizke7'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/eiffel-intent-capture-mmbizke7/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.