Faro

Routage déterministe des revues pour les équipes d’ingénierie. Backend Kotlin/Spring, Slack + GitHub en surface.

← Retour au portfolio
Routage des PR · relecteurs classés avec raisonnement explicable
Vue d’ensemble de l’expertise · signaux multi-dimensionnels pondérés
Intégration Slack · aperçu de lien proactif avec relecteurs classés

Vue d’ensemble

Faro transforme le travail que fait déjà une organisation d’ingénierie (PR fusionnées, astreintes prises, services touchés) en une vision vivante de qui sait quoi, qui est responsable et qui est le bon relecteur, maintenant. Collez un lien de PR : Faro renvoie une liste de relecteurs classée, avec un raisonnement explicable enraciné dans l’historique réel des contributions. La même intelligence est exposée via les commandes Slack et des aperçus de liens proactifs, dans les conversations où les décisions se prennent.

À qui ça s’adresse

Les organisations d’ingénierie qui ont dépassé CODEOWNERS et les pings Slack « qui possède ça ? ». Équipes trop grandes pour se connaître toutes, systèmes trop imbriqués pour des fichiers d’ownership statiques, où router les revues à la connaissance tribale est devenu une taxe que tout le monde paie.

Pourquoi c’est techniquement profond

  • Déterministe par conception. Pas de ML, pas d’embeddings, pas de LLM dans le chemin de scoring. Les scores d’expertise multi-dimensionnels (CODING + OPS, pertinence du code, confiance, activité 90 jours) sont dérivés d’un journal d’événements canonique immuable, et chaque recommandation reste explicable jusqu’aux signaux sous-jacents.
  • Backend Kotlin/Spring modulaire. Spring Boot 3.2, WebFlux + R2DBC + Kotlin Coroutines sur PostgreSQL 16. Huit modules avec frontières imposées ; accès inter-modules uniquement via des ports, invariants d’architecture vérifiés par des tests ArchUnit en CI.
  • Modèle d’ownership à six états qui réconcilie l’ownership déclaré (CODEOWNERS) avec les signaux calculés au moment de la requête, pour qu’il ne devienne jamais obsolète.
  • Intégrations production-grade. Webhooks et polling GitHub + PagerDuty, OAuth Slack avec contrôles kill-switch et mode shadow, jetons de bot chiffrés au repos (AES-GCM).
  • Livraison spec-driven via OpenSpec. Chaque capacité ship avec un spec stable ; chaque changement porte des artefacts proposal / design / tasks qui ancrent les contributeurs humains et IA dans une architecture réelle, pas dans la conjecture.

Résultats & échelle

  • Huit modules backend, frontières inter-modules vérifiées par ArchUnit en CI.
  • Dix-neuf specs de capacités couvrant la découverte d’expertise, le routage des PR, l’insight d’accountability, l’intégration Slack et l’outillage admin.
  • Chaque recommandation traçable jusqu’aux signaux qui l’ont produite. Zéro scoring boîte noire.

Statut

En développement actif. La surface produit couvre aujourd’hui la découverte d’expertise, le routage des PR, l’insight d’accountability, l’intégration Slack et l’outillage admin.