ワンクリックで
lutece-migration-v8-agent-teams
Migration v7 → v8 via Agent Teams. Parallel teammates, script-heavy, JSON-driven task decomposition.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Migration v7 → v8 via Agent Teams. Parallel teammates, script-heavy, JSON-driven task decomposition.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Met à jour un template Lutèce FO (Front Office) en remplaçant le HTML brut par les macros FreeMarker FO de lutece-core. Utiliser quand l'utilisateur demande de migrer, convertir ou mettre à jour un template skin/FO avec les macros Lutèce.
Met à jour un template Lutèce BO (Back Office / admin) en remplaçant le HTML brut par les macros FreeMarker BO de lutece-core (thème Tabler). Utiliser quand l'utilisateur demande de migrer, convertir ou mettre à jour un template admin/BO avec les macros Lutèce.
Rules and patterns for creating/modifying Lutece 8 workflow modules. Tasks, CDI producers, components, templates.
Deep review of any Lutece plugin via Agent Teams. Traces the complete request lifecycle — template to bean to service to DAO to SQL — and cross-references layers to find guaranteed bugs (disconnects that will crash at runtime). Use when user says 'deep review', 'flow review', 'cross-layer review', or 'trace bugs'.
Lutece 8 DAO and Home layer patterns: DAOUtil lifecycle, SQL constants, Home static facade, CDI lookup, collection types, interface conventions. MUST be consulted before creating or modifying DAO/Home classes.
Rules and patterns for implementing an Elasticsearch DataSource module in Lutece 8. DataSource/DataObject interfaces, CDI auto-discovery, @ConfigProperty injection, batch processing, two-daemon indexing, incremental updates via CDI events. Based on the elasticdata-forms module pattern.
| name | lutece-migration-v8-agent-teams |
| description | Migration v7 → v8 via Agent Teams. Parallel teammates, script-heavy, JSON-driven task decomposition. |
| user-invocable | true |
Migrates any Lutece plugin/module/library from v7 to v8 using Agent Teams (Swarm Mode). The Team Lead (you) orchestrates, specialized teammates execute in parallel, and bash scripts handle all mechanical work.
Prerequisites: Agent Teams must be enabled (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1).
Confirm the current directory is a Lutece project (pom.xml with lutece-plugin/module/library packaging).
mkdir -p .migration
bash ${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/scripts/scan-project.sh . > .migration/scan.json
Read .migration/scan.json and show the user:
For every Lutece dependency in scan.json:
v8Status: "available" → OK (already cloned in ~/.lutece-references/)v8Status: "unknown" → Search GitHub orgs lutece-platform and lutece-secteur-public for v8 branchdevelop_core8 > develop8 > develop8.x > develop~/.lutece-references/:
git clone -q --branch <v8_branch> --single-branch https://github.com/<org>/<artifactId>.git ~/.lutece-references/<artifactId>
This ensures teammates can search reference sources for ALL dependencies, not just the 21 pre-cloned repos.bash ${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/scripts/task-splitter.sh .migration/scan.json .migration
Read the output to know how many teammates to spawn.
Switch to Delegate Mode (Shift+Tab). From this point, you orchestrate only — never implement.
Config Migrator (1 teammate)
${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/teammates/config-migrator.md.migration/tasks-config.jsonVerifier (1 teammate)
${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/teammates/verifier.mdJava Migrator(s) (1-3, based on scan.json recommendation)
${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/teammates/java-migrator.md.migration/tasks-java-0.json, .migration/tasks-java-1.json, .migration/tasks-java-2.jsonTemplate Migrator (0-1, if templates/JSP exist)
${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/teammates/template-migrator.md.migration/tasks-template.jsonTest Migrator (0-1, if test files exist)
${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/teammates/test-migrator.md.migration/tasks-test.jsonWhen spawning each teammate, provide:
Read your instruction file at [path to teammates/*.md].
Read your task assignment at [path to .migration/tasks-*.json].
Execute all steps in your instructions. Use scripts from ${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/scripts/.
Pattern files are at ${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/patterns/ — load only when needed.
Reference implementations: always search ~/.lutece-references/ before writing any new pattern.
Migration samples with real before/after diffs: ${CLAUDE_PLUGIN_ROOT}/migrations-samples/ — consult when stuck on a specific migration pattern.
Run verify-file.sh after each file you complete.
Wire the dependency graph:
Config Migrator ──────────────────────────────────────── (no blockers, runs first)
│
├──→ Java Migrator 0 ─┐
├──→ Java Migrator 1 ─┤ (blocked by Config Migrator)
└──→ Java Migrator 2 ─┘
│
├──→ Template Migrator ─┐ (blocked by ALL Java Migrators)
└──→ Test Migrator ─────┤ (blocked by Config + at least 1 Java Migrator)
│
└──→ Verifier: Final Build (blocked by ALL above)
While teammates work:
bash ${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/scripts/progress-report.sh .
When the Verifier reports BUILD SUCCESS (compile + tests) and verify-migration.sh: 0 FAIL, spawn a Reviewer teammate:
Read your instruction file at ${CLAUDE_PLUGIN_ROOT}/agents/lutece-v8-reviewer.md.
Review this project for v8 compliance. Do NOT modify any files.
Reference implementations: ~/.lutece-references/
Migration samples: ${CLAUDE_PLUGIN_ROOT}/migrations-samples/
Why a teammate? In Delegate Mode, the Lead can only spawn teammates — the Task tool is not available. The reviewer runs as a read-only teammate that reports findings without modifying files.
Process the reviewer's findings:
When ALL of the following are true:
Then:
verify-migration.sh results (PASS/FAIL/WARN counts)mvn clean install — compile + tests)~/.lutece-references/ before writing new patternsverify-file.sh after each file, not just at the endAll in ${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/scripts/:
| Script | Purpose | Used by |
|---|---|---|
scan-project.sh | Full project scan → JSON | Lead (Phase A) |
task-splitter.sh | JSON scan → per-teammate task files | Lead (Phase B) |
migrate-java-mechanical.sh | javax→jakarta + Spring→CDI + net.sf.json imports | Java Migrators |
migrate-template-mechanical.sh | BO macros + null-safety + namespace | Template Migrator |
extract-context-beans.sh | Spring context XML → JSON catalog | Config Migrator |
verify-migration.sh | 70+ checks, optional --json mode | Verifier |
verify-file.sh | Per-file verification subset | All teammates |
add-liquibase-headers.sh | Liquibase headers on SQL files | Config Migrator |
progress-report.sh | Migration progress display | Lead (Phase E) |
All in ${CLAUDE_PLUGIN_ROOT}/skills/lutece-migration-v8-agent-teams/patterns/:
| File | Content | Loaded by |
|---|---|---|
cdi-patterns.md | CDI scopes, injection, producers, singleton, Models, Pager, Key Imports | Java Migrators (always) |
events-patterns.md | Event/listener migration | Java Migrators (if events) |
cache-patterns.md | EhCache→JCache | Java Migrators (if cache) |
rest-patterns.md | Jersey→JAX-RS, filters, providers | Java Migrators (if REST) |
mvc-patterns.md | @RequestParam, CSRF auto-filter, @ModelAttribute | Java Migrators (if JspBean/XPage) |
template-macros.md | v8 Freemarker macros, jQuery→vanilla JS | Template Migrator |
fileupload-patterns.md | FileItem→MultipartItem | Java Migrators (if fileupload) |