From lutecepowers-v8
Collaborative brainstorming for Lutece 8 features — explores intent, requirements and design before any implementation. MUST be used before creative work.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lutecepowers-v8:lutece-brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Mandatory trigger:** You MUST use this skill before any creative work — creating features, building components, adding functionality, or modifying behavior. Explore user intent, requirements and design **before** implementation.
Mandatory trigger: You MUST use this skill before any creative work — creating features, building components, adding functionality, or modifying behavior. Explore user intent, requirements and design before implementation.
Phase 1: Context → understand project state
Phase 2: Discovery → ask questions one at a time to refine the idea
Phase 3: Reuse scan → check if existing Lutece modules/plugins already cover the need
Phase 4: Explore → propose 2-3 approaches with trade-offs
Phase 5: Design → present design in small validated sections
Phase 6: Document → write the validated design to docs/plans/
Phase 7: Handoff → set up for implementation (optional)
| Situation | Tool |
|---|---|
| Yes/No, pick one, pick many | AskUserQuestion (multiple choice) |
| Open-ended input (names, descriptions, context) | Text prompt in conversation |
| Design section validation ("looks right so far?") | AskUserQuestion with Approve / Needs changes / Go back |
Rule: Only ONE question per message. If a topic needs more exploration, break it into multiple questions.
Before asking anything, silently gather context:
pom.xml, webapp/WEB-INF/conf/plugins/, existing Java packagesgit log --oneline -10 to understand current momentumStore findings internally. Do NOT dump them on the user — use them to ask smarter questions.
Ask questions to understand purpose, constraints, and success criteria.
Message 1:
AskUserQuestion:
question: "What type of component are you building?"
options:
- "New plugin from scratch"
- "New feature in an existing plugin"
- "Module extending another plugin"
- "XPage (front-office functionality)"
Message 2 (adapts based on answer):
AskUserQuestion:
question: "Who will use this feature?"
options:
- "Back-office administrators only"
- "Front-office visitors only"
- "Both back-office and front-office"
- "REST API consumers"
Message 3 (open-ended when needed):
Can you describe in a few words what this feature should do?
What problem does it solve for users?
Continue until you have enough clarity to propose approaches. Typically 4-8 questions.
Before building anything, check if Lutece already has it. Many features exist as plugins or modules on lutece-platform or lutece-secteur-public. Reusing or extending an existing module is always preferable to building from scratch.
| Source | What to look for | How |
|---|---|---|
| Lutece Platform GitHub | Official plugins and modules | WebSearch for site:github.com/lutece-platform [feature keywords] |
| Lutece Secteur Public GitHub | Public-sector-specific modules | WebSearch for site:github.com/lutece-secteur-public [feature keywords] |
| Local references | Already-cloned v8 repos | Grep / Glob in ~/.lutece-references/ |
| Lutece dev wiki | Architecture notes, existing module docs | WebSearch for site:dev.lutece.paris.fr [feature keywords] |
| Maven artifacts | Published Lutece modules | Search for fr.paris.lutece.plugins + keywords |
lutece-platform and lutece-secteur-public:
WebSearch: site:github.com/lutece-platform [keyword] plugin OR module
WebSearch: site:github.com/lutece-secteur-public [keyword] module
~/.lutece-references/ for related codeIf matches are found, present them:
## Existing Modules Found
### module-xyz (lutece-platform)
- **Repo:** github.com/lutece-platform/lutece-xyz-module-abc
- **What it does:** [1-2 sentences]
- **Covers your need?** Fully / Partially / Tangentially
- **Lutece 8 ready?** Yes / Needs migration
### plugin-abc (lutece-secteur-public)
- **Repo:** github.com/lutece-secteur-public/lutece-abc-plugin-def
- **What it does:** [1-2 sentences]
- **Covers your need?** Fully / Partially / Tangentially
- **Lutece 8 ready?** Yes / Needs migration
Then ask:
AskUserQuestion:
question: "How do you want to proceed?"
options:
- "Use [module-xyz] as-is (just integrate it)"
- "Extend [module-xyz] to add what's missing"
- "Build from scratch (none of these fit)"
- "I need more details on one of these modules"
If "Use as-is" → skip to Phase 6 (Document) with an integration plan instead of a full design. If "Extend" → Phase 4 & 5 focus on the extension only, not a full build. If "Build from scratch" → continue normally to Phase 4. If "More details" → fetch the module's README, plugin descriptor, and key source files, then re-ask.
Briefly inform the user:
No existing Lutece plugin or module found for this need on lutece-platform or lutece-secteur-public. We'll design it from scratch.
Then proceed to Phase 4.
Propose 2-3 different approaches with trade-offs. Lead with your recommendation.
## Approach A — [Name] (Recommended)
**How it works:** [2-3 sentences]
**Pros:** [bullet list]
**Cons:** [bullet list]
**Fits Lutece patterns:** [which existing patterns this follows]
## Approach B — [Name]
**How it works:** [2-3 sentences]
**Pros:** [bullet list]
**Cons:** [bullet list]
## Approach C — [Name] (if applicable)
**How it works:** [2-3 sentences]
**Pros:** [bullet list]
**Cons:** [bullet list]
Then ask:
AskUserQuestion:
question: "Which approach do you prefer?"
options:
- "Approach A — [Name] (Recommended)"
- "Approach B — [Name]"
- "Approach C — [Name]"
If the user picks "Other", explore their alternative before continuing.
When proposing approaches, evaluate against:
~/.lutece-references/ for real implementations@ApplicationScoped vs @Dependent vs @RequestScoped/lutece-dao skillOnce the approach is chosen, present the design in sections of 200-300 words. After each section, validate with the user.
messages.properties keysSkip sections that don't apply. Not every feature needs all 10 sections.
AskUserQuestion:
question: "Does this section look right?"
options:
- "Looks good, continue"
- "Needs changes (I'll explain)"
- "Go back to a previous section"
If "Needs changes", ask what to change, revise, and re-validate before moving on.
Once all sections are validated:
Create the design document:
docs/plans/YYYY-MM-DD-<topic>-design.md
Structure:
# Design: [Feature Name]
**Date:** YYYY-MM-DD
**Status:** Draft | Approved
**Plugin:** [plugin-name]
**Lutece version:** 8.x
## Context
[Problem statement, 2-3 sentences]
## Decision
[Chosen approach and rationale]
## Design
[All validated sections from Phase 4]
## Files to Create/Modify
[Checklist of files with what each one needs]
## Out of Scope
[Explicitly excluded items]
Commit the design:
git add docs/plans/YYYY-MM-DD-<topic>-design.md
git commit -m "docs: add design for [feature-name]"
AskUserQuestion:
question: "Ready to set up for implementation?"
options:
- "Yes, let's start implementing"
- "Not yet, I want to review the design first"
- "No, just the design for now"
If yes:
/lutece-scaffold/lutece-dao for DAO/Home layer/lutece-patterns for architecture patterns/lutece-workflow if workflow integration is needed/lutece-rbac if RBAC is needed/lutece-cache if caching is neededTodoWrite to break the design into implementation tasks| Principle | Rule |
|---|---|
| One question at a time | Never overwhelm with multiple questions in one message |
| Multiple choice preferred | Easier to answer than open-ended when possible |
| YAGNI ruthlessly | Remove unnecessary features from all designs |
| Explore alternatives | Always propose 2-3 approaches before settling |
| Incremental validation | Present design in sections, validate each one |
| Be flexible | Go back and clarify when something doesn't make sense |
| Reuse-first | Search lutece-platform and lutece-secteur-public for existing modules before building |
| Lutece-first | Always check ~/.lutece-references/ for existing patterns before inventing |
| Context before questions | Read the project state silently before asking anything |
npx claudepluginhub lutece-platform/lutece-dev-plugin-claude --plugin lutecepowers-v8Guides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.