=== QA #68 — MatchingAgent scorer Agile taxonomy === Date: jeu. 11 juin 2026 22:33:19 UTC Branch: feat/redmine-68-scorer-agile HEAD: 03ccec9 PR: MatchingAgent #20 (base dev) Changed files vs origin/dev: src/agents/role_alignment_agent.py src/services/role_scorer.py src/services/technology_database.py tests/unit/test_agents.py tests/unit/test_role_scorer.py tests/unit/test_technology_matching.py Python 3.10.12 ================================================================ === 1) SUITES UNITAIRES TOUCHÉES (pytest -v) === ================================================================ Commande: ./venv/bin/python -m pytest tests/unit/test_role_scorer.py \ tests/unit/test_agents.py tests/unit/test_technology_matching.py -v Résultat: 217 passed, 13 warnings in 0.19s -> OK Tests Agile clés (extrait): test_coach_agile_is_distinct_from_scrum_master PASSED test_agile_coach_english_is_coach_agile PASSED test_scrum_master_safe_is_distinct PASSED test_release_train_engineer_is_distinct PASSED test_rte_acronym_resolves_to_release_train_engineer PASSED test_generic_scrum_master_still_resolves PASSED (non-régression) test_coach_agile_resolves_to_coach_agile_category PASSED test_scrum_master_safe_resolves_to_its_own_category PASSED test_rte_resolves_to_rte_category PASSED test_coach_agile_vs_scrum_master_is_adjacent_not_exact PASSED TestAgileSkillsAndTools::test_safe_alias_resolves_to_scaled_agile PASSED ...test_large_scale_scrum_resolves_to_scaled_agile PASSED ...test_agilite_a_l_echelle_resolves_to_scaled_agile PASSED ...test_coaching_agile_is_recognized PASSED ...test_amelioration_continue_resolves PASSED ...test_kaizen_alias_resolves / test_lean_alias_resolves PASSED ...test_miro_is_recognized / test_jira_still_recognized / test_confluence_still_recognized PASSED ================================================================ === 2) LANE UNITAIRE ÉLARGIE (make test-unit) === ================================================================ Résultat: 1 failed, 867 passed, 32 warnings in 9.80s Seul échec: tests/unit/api/test_eval_endpoint.py:: TestCalibrationEndpoint::test_histogram_query_returns_distribution -> NON lié à #68. Fichier NON touché par la PR #20. -> PRÉ-EXISTANT: échoue à l'identique sur la base origin/dev (1 failed), donc PAS une régression introduite par cette PR (taxonomie scorer). ================================================================ === 3) VÉRIFS DE RÉSOLUTION (checks indépendants QA) === ================================================================ (voir détail dans redmine-68-resolution-checks.txt joint) AC1 — 3 nouveaux rôles -> catégories DISTINCTES (longest-match-wins): 'Coach Agile' -> 'coach agile' OK 'Agile Coach' -> 'coach agile' OK 'Scrum Master SAFe' -> 'scrum master safe' OK 'Release Train Engineer' -> 'release train engineer' OK 'RTE' -> 'release train engineer' OK 'Scrum Master' (nu) -> 'scrum master' (générique) OK (non-régression) RESULT_AC1_DISTINCT_ROLES: PASS AC2 — skills/outils Agile reconnus par la couche tech-matching: Agilité à l'échelle / SAFe / large scale scrum -> 'Scaled Agile' OK Coaching Agile -> 'Agile Coaching' OK Amélioration continue / Kaizen / Lean -> 'Continuous Improvement' OK Confluence -> 'Confluence' | Miro -> 'Miro' | Jira -> 'Jira' OK ('LeSS' nu -> 'Less' CSS : volontairement non aliasé pour éviter la collision avec le préprocesseur CSS Less ; couvert sémantiquement par 'large scale scrum'. Documenté dans le code.) RESULT_AC2_SKILLS: PASS ================================================================ === 4) RUFF (fichiers modifiés) — pas de NOUVELLE erreur === ================================================================ Comparaison branche PR vs base origin/dev sur les MÊMES fichiers: origin/dev (base): 366 findings feat/redmine-68 (PR): 364 findings -> -2 (aucune nouvelle erreur) Toutes les occurrences restantes (W291/W293/I001/F601/N802/F401) sont une dette de style PRÉ-EXISTANTE repo-wide, identique sur origin/dev, hors périmètre de #68. La PR n'introduit AUCUNE nouvelle erreur ruff (elle en retire 2 trailing-whitespace). ================================================================ === VERDICT QA: PASS — tous les critères d'acceptation OK === ================================================================ Note secrets: aucun secret/token/clé/URL DB présent dans cette preuve (suites unitaires pures, aucune connexion réseau/DB requise).