skills/mentor/SKILL.md
Coaching workflow orchestrator. Guides the developer through implementation without writing code.
npx skillsauth add nicolas-codemate/claudecodeconfig mentorInstall 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.
The mentor NEVER writes or modifies code files. It reads, analyzes, questions, and guides. </context>
Arguments passed from command: $ARGUMENTS
This workflow does not support --auto, --pr, --draft, --skip-simplify, or --skip-review. Mentoring is interactive by nature — the dev manages their own commits and PRs.
</instructions>
<mode_detection>
| Flag | Mode | Starting Step |
|------|------|---------------|
| --free "..." | FREE | 03-exploration (with description as context) |
| --init | INIT | 00-initialization (config only) |
| --continue | CONTINUE | 06-coach |
| --refine-plan | REFINE | 05-plan-validation |
| --plan-only | PLAN-ONLY | 00-initialization → ... → 05-plan-validation → STOP |
| (default) | INTERACTIVE | 00-initialization |
</mode_detection>
<free_mode>
If --free flag is present:
Generate a slug from the description (e.g., "ajouter un endpoint API" → free-endpoint-api):
mkdir -p .claude-work/{slug}
Create .claude-work/{slug}/status.json:
{
"ticket_id": "{slug}",
"mode": "INTERACTIVE",
"workflow_type": "mentor",
"free_mode": true,
"free_description": "{user's description}",
"state": "initialized",
"started_at": "{ISO timestamp}",
"phases": {
"initialization": "completed",
"fetch": "skipped",
"analysis": "skipped"
},
"options": {
"base_branch": "{auto-detected or ask user}"
}
}
Save .claude-work/{slug}/ticket.md:
# Free Mode: {description}
## Description
{user's full description}
## Source
Free mode - no ticket
Same logic as step 00-initialization (detect from git or ask user).
Jump directly to exploration with the free description as context. </free_mode>
<critical_paths>
Feature directory structure — all workflow files are stored in .claude-work/{ticket-id}/:
status.json - Workflow state (must include workflow_type: "mentor")ticket.md - Ticket content (or free mode description)plan.md - Implementation planfinal-review.md - Pedagogical reviewretrospective.md - Learning summaryDo not use docs/ for workflow files — always .claude-work/{ticket-id}/.
</critical_paths>
<read_only_rule> Read-only mode — the mentor workflow does not create or modify code files. Allowed file operations:
.claude-work/{ticket-id}/ (status, plan, review, retro)Do not use Write or Edit on any file outside .claude-work/ — the dev writes the code, you guide.
</read_only_rule>
<base_branch_rule>
Base branch usage — all git diff operations should use the base branch from status.json.
See resolve SKILL.md for full base_branch_rule documentation.
</base_branch_rule>
<step_flow>
00-initialization → 01-fetch-ticket → 02-analyze-complexity → 03-exploration
→ 04-create-plan → 05-plan-validation → STOP or /compact → 06-coach
→ 07-final-review → 08-retrospective
| ^
+-- /mentor --continue +
(free setup) → 03-exploration → 04-create-plan → 05-plan-validation
→ STOP or /compact → 06-coach → 07-final-review → 08-retrospective
(verify status, load context) → 06-coach → 07-final-review → 08-retrospective
(load context) → 05-plan-validation → STOP or /compact → 06-coach → ...
00-initialization → STOP
00-initialization → ... → 05-plan-validation → STOP
</step_flow>
When initializing or updating status.json, add mentor-specific fields:
{
"workflow_type": "mentor",
"coaching": {
"objective": null,
"current_phase": 0,
"current_task": 0,
"hint_levels": {},
"completed_tasks": [],
"skipped_tasks": []
}
}
| Step | Location | Description | |------|----------|-------------| | 00 | resolve/steps/ | Setup, config, feature directory | | 01 | resolve/steps/ | Retrieve ticket, Figma URLs | | 02 | resolve/steps/ | Score complexity | | 03 | resolve/steps/ | Explore codebase | | 04 | resolve/steps/ | Generate implementation plan | | 05 | mentor/steps/ | Ask objective + validate/refine plan | | 06 | mentor/steps/ | Coaching loop (CORE) | | 07 | mentor/steps/ | Final pedagogical review | | 08 | mentor/steps/ | Retrospective and learning summary |
Load the mentor persona from ~/.claude/agents/mentor-agent.md before step 06.
This defines the coaching tone, principles, and adaptation rules.
All user communication in French. Technical output (git, code, files) in English.
Begin workflow for: $ARGUMENTS
tools
--- name: deep-review description: Performs deep code review via an isolated fresh agent (triple perspective, anti-bias). Use when the user asks for an in-depth review of current branch changes, or when invoked by /resolve step 08. Do NOT use for reviewing PRs from GitHub (use review-pr skill instead) or for a quick correctness scan with effort levels (use bundled /code-review instead). argument-hint: [--ticket <id>] [--base <branch>] [--fix] [--severity <level>] allowed-tools: Read, Glob, Grep,
tools
Resolve git rebase conflicts methodically. Classifies each conflict (imports/namespace cleanup vs real logic clash), analyzes the commit introducing the change against the current ticket context, auto-fixes only trivial cases with a per-file summary, and asks the user when ambiguous. Verifies static analysis tools pass at the end and optionally runs functional tests. Use after `git rebase` triggers conflicts, or when the user asks to "resolve conflicts", "fix rebase", "j'ai des conflits", "aide-moi sur ce rebase".
development
Synchronize the markdown test plan in docs/qa/ with the current state of the codebase. Use after adding or modifying features to keep the plan up to date, or to bootstrap a test plan for the first time. Do NOT use to execute tests (use /qa-run instead) and do NOT use to design product specs (use /express-need instead).
tools
Execute the markdown test plan in docs/qa/ via Playwright MCP and create a ticket on each failing scenario. Use after /qa-sync, before a release, or to validate a feature end-to-end. Do NOT use to design or update scenarios (use /qa-sync instead) and do NOT use for visual regression (use visual-verify agent instead).