Feat: outils MCP workspace Eclipse, bm-eclipse-doctor 2.1, skills et docs - #6
Open
psouquet wants to merge 2 commits into
Open
Feat: outils MCP workspace Eclipse, bm-eclipse-doctor 2.1, skills et docs#6psouquet wants to merge 2 commits into
psouquet wants to merge 2 commits into
Conversation
psouquet
force-pushed
the
feature/eclipse-workspace-sync
branch
from
August 6, 2026 20:15
bc4a359 to
6e79e60
Compare
…ipse-doctor 2.1 Serveur MCP côté plugin (BmMcpTools) et scripts bm-eclipse-* côté repo pour synchroniser le workspace Eclipse avec le disque, gérer l'ouverture/fermeture de projets (par nom, groupement gwt/closure, ou focus sur un bundle) et réparer mécaniquement les erreurs de compilation courantes (bundles fermés, projets non importés, métadonnées PDE, codegen manquant, état périmé). Vocabulaire canonique sync/orga/repair/prepare documenté dans les skills eclipse-sync et eclipse-doctor, README et CLAUDE_CODE_MCP.md alignés, ONBOARDING.md ajouté pour la prise en main.
psouquet
force-pushed
the
feature/eclipse-workspace-sync
branch
from
August 15, 2026 16:08
71b53e2 to
035a7d2
Compare
…à Require-Bundle) ; ajoute check_pom_sync plan_focus protège désormais net.bluemind.tests.feature (universelle, tout lancement de test MCP) et les eclipse-feature déclarées dans le pom.xml de chaque seed (ex. net.bluemind.exchange.mapi.feature) - une feature PDE n'est pas un bundle, la clôture Require-Bundle ne peut structurellement pas la voir. Incident du 01/09 : focus sur des projets de test mapi ayant fermé les deux, faisant passer un effet de bord pour une vraie régression (No connection factory found for dbtype PGSQL). « ouvre X » nu redevient --open simple (pas --focus) par défaut dans eclipse-sync - même incident, ouvrir sans qualifier n'a plus de raison de fermer le reste du workspace. check_pom_sync (nouveau tool MCP) expose en lecture seule la même comparaison que le menu BlueMind > Check POM Sync..., pour distinguer un test qui échoue à cause d'un désync JVM args/target platform d'une vraie régression - ajouté au réflexe de diagnostic d'eclipse-doctor.
alexandreprl
self-requested a review
September 4, 2026 14:04
alexandreprl
approved these changes
Sep 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ajoute ce qu'il faut pour pouvoir :
Tools MCP (net.bluemind.devtools) : sync_projects, list_projects, workspace_info, sync_working_sets, apply_workspace_batch (open/import/refresh/clean/delete en un seul IWorkspace.run + un seul build), remove_projects (coquilles non suivies par git, tout ou rien, exception documentee a deleteContent=false), doctor_snapshot (agrege workspace_info + get_problems + list_projects + get_bundle_state + unresolvedTypes), get_bundle_state, doctor_status, locate_type. Toute mutation passe par un gate de consentement (workspace.consent.*) et ne touche jamais le contenu disque hors l'exception remove_projects. Marqueurs JDT lus par problemId/problemKind/unresolvedName (IProblem/ARGUMENTS), jamais par le texte du message.
bm-eclipse-doctor : classe chaque projet en erreur par un fait du snapshot, pas par le symptome — metadataInvisible, ferme, absent du workspace, dossier source manquant, type introuvable (jdt-visible/disk-only/nowhere via TypeLocator), Import-Package resolu par l'index Export-Package, coquille non suivie par git. --apply boucle jusqu'au point fixe (4 passes max), un seul build par passe (Maven avant le batch, -am optionnel avec retry), memoire des no-effect, verdict progressed par identite de noms, garde clean sans modele PDE, open borne a 10 bundles transitifs (--open-wide), handoff publie sur le plan final, rattachement par nom, cohorte figee a l'entree de passe (revealed=/blind=/regressed). Codegen GWT et codegen orphelin detectes par emplacement + fraicheur, jamais par le nom du type.
Scripts .claude/scripts/eclipse (status, problems, projects, sync, call, classpath-check, rebuild-module) en wrappers unitaires sur ces tools.
Docs : CLAUDE_CODE_MCP.md §6 (reference des tools), SKILL.md eclipse-doctor / eclipse-sync, CLAUDE.md (un rebuild du plugin n'est pas un obstacle), README. docs/DEV-NOTES.md (contraintes de conception, invariants de surete, limites connues) volontairement pas versionne pour cette PR : gardees hors repo le temps de finir l'iteration, a rapatrier ou non apres retour des collegues.
Verifie : filet de tests a sec sur classify/report_outcomes/type_facts/ dependency_fact, verifications manuelles contre un Eclipse reel (batch-error, gain -am, seuil d'ouverture, index Export-Package, garde remove_projects), et smoke-test du plugin reinstalle (contrat de tools intact, aucune erreur).