=== 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).
