AI-powered QA orchestrator with structured memory and MCP server
Project description
👁️ Argus — QA Orchestrator Persona
"Celui aux cent yeux qui voit ce que d'autres ne voient pas"
Argus est un système de persona IA spécialisé en test et qualité logicielle, construit sur le framework CRAFT/TOON. Il orchestre une constellation d'agents spécialisés et maintient une mémoire structurée à 5 niveaux.
Architecture
argus.persona.yaml # Persona CRAFT/TOON (v0.10.0)
mcp_server/ # Serveur MCP — expose Argus aux clients IA
├── server.py # 11 tools MCP (query, risk, strategy, record, cycle…)
├── memory_reader.py # Accès lecture à la mémoire YAML + validation schema
├── data_dir.py # Résolution du répertoire de données
├── engines/ # Moteurs cognitifs (consolidation, decay, reflection)
│ ├── config.py # Constantes partagées
│ ├── consolidation.py # Épisodes → connaissances sémantiques
│ ├── decay.py # Oubli progressif
│ ├── reflection.py # 12 health checks
│ └── cognitive_cycle.py # Orchestrateur du cycle complet
└── defaults/ # Données par défaut (base de connaissances)
├── semantic/ # 46 patterns, 62 heuristiques, 8 profils
└── deliverables/ # Templates (test plan, matrice, charte)
memory/ # Système de mémoire à 5 niveaux
├── working/ # Mémoire de travail (session)
├── episodic/ # Historique (analyses, décisions, incidents, exécutions)
├── semantic/ # Connaissances apprises (patterns, heuristiques, ISTQB)
├── projects/ # Profils par projet
└── relational/ # Graphe d'associations
schemas/ # JSON Schemas (Draft-07) pour validation
scripts/ # Scripts d'installation (hooks Git)
tests/ # Suite de validation & tests (476 tests)
Installation
Option 1 — Via pip (recommandé)
pip install argus-qa
Au premier lancement, Argus crée automatiquement ~/.argus/ avec la base de connaissances par défaut (46 patterns de défauts, 62 heuristiques de test, 8 profils de contexte).
Option 2 — Depuis les sources (développement)
git clone https://github.com/argus-qa/argus.git
cd argus
pip install -e ".[dev]"
Répertoire de données
| Priorité | Source | Usage |
|---|---|---|
| 1 | ARGUS_DATA_DIR (env var) |
Tests, setups custom |
| 2 | ./memory/ dans le CWD |
Mode dev (clone git) |
| 3 | ~/.argus/memory/ |
Installation pip (défaut) |
Prérequis
- Python 3.11+
- Dépendances :
pip install -r requirements.txt
Démarrage rapide
# Installer les dépendances
pip install -r requirements.txt
# Installer le hook pre-commit (5 validations automatiques)
.\scripts\install-hooks.ps1
# Lancer la suite de tests complète
python -m pytest tests/ -v
# Exécuter le cycle cognitif (scan mémoire)
python tests/cognitive_cycle.py
Validation
Le projet dispose d'un pipeline de validation à 5 couches, exécuté automatiquement via le hook pre-commit :
| Étape | Script | Description |
|---|---|---|
| 1 | tests/validate_yaml.py |
Syntaxe YAML |
| 2 | tests/sync_counters.py |
Synchronisation index/compteurs |
| 3 | tests/validate_references.py |
Références croisées inter-fichiers |
| 4 | tests/validate_encoding.py |
Détection BOM/mojibake |
| 5 | tests/sync_schemas.py |
Cohérence enums JSON Schema |
Scripts additionnels :
tests/validate_schemas.py— Validation YAML contre JSON Schemastests/validate_risk_scoring.py— Validation du scoring de risque
Cycle cognitif
Le système maintient sa mémoire via un cycle en 3 phases :
- Consolidation — Transforme les épisodes récurrents en connaissances sémantiques
- Decay — Applique un oubli progressif aux connaissances non utilisées (grâce : 60j, taux : 0.05/mois, seuil : 0.2)
- Reflection — 12 health checks (cohérence, complétude, fraîcheur, équilibre)
python tests/cognitive_cycle.py # Scan (dry-run)
python tests/cognitive_cycle.py --apply # Appliquer les corrections
python tests/cognitive_cycle.py --phase decay # Une seule phase
CI/CD
GitHub Actions (.github/workflows/validate.yml) exécute la validation complète sur chaque push/PR :
- Branches :
main,develop - Matrice Python : 3.11, 3.12, 3.13
- 6 étapes de validation + suite pytest complète
Mémoire
Voir memory/README.md pour la documentation détaillée du système de mémoire.
Serveur MCP
Argus expose ses capacités via le Model Context Protocol (MCP). N'importe quel client compatible (VS Code, Claude Desktop, Cursor…) peut s'y connecter.
Tools disponibles
| Tool | L/É | Description |
|---|---|---|
query_memory |
L | Interrogation de la mémoire (patterns, heuristiques, analyses, stats…) |
get_risk_analysis |
L | Analyse de risque sur un extrait de code ou diff |
get_testing_strategy |
L | Recommandation de stratégie de test selon le contexte |
get_memory_health |
L | Diagnostic de santé mémoire (12 health checks) |
record_analysis |
É | Enregistrement d'une analyse en mémoire épisodique |
record_pattern |
É | Ajout d'un defect pattern en mémoire sémantique |
record_heuristic |
É | Ajout d'une heuristique de test en mémoire sémantique |
record_decision |
É | Enregistrement d'une décision en mémoire épisodique |
record_incident |
É | Enregistrement d'un incident en mémoire épisodique |
record_execution |
É | Enregistrement d'une exécution de tests en mémoire épisodique |
run_cognitive_cycle |
L/É | Exécution du cycle cognitif (consolidation → decay → reflection) |
Lancement
# Via la commande installée par pip
argus-mcp
# Ou via le module Python
python -m mcp_server
Configuration VS Code
Ajouter dans le fichier .vscode/mcp.json de n'importe quel projet :
{
"servers": {
"argus": {
"type": "stdio",
"command": "argus-mcp"
}
}
}
Configuration Claude Desktop
Ajouter dans claude_desktop_config.json :
{
"mcpServers": {
"argus": {
"command": "python",
"args": ["-m", "mcp_server"],
"cwd": "C:/chemin/vers/Argus"
}
}
}
Configuration Cursor
Ajouter dans .cursor/mcp.json du projet :
{
"mcpServers": {
"argus": {
"command": "argus-mcp",
"transportType": "stdio"
}
}
}
Sécurité
- Les données utilisateur sont stockées localement dans
~/.argus/et ne sont jamais transmises - Le serveur MCP fonctionne en transport stdio (local uniquement)
- Les entrées sont validées (taille, rate limiting, path traversal)
- Les dépendances sont plafonnées pour prévenir les attaques supply chain
Avertissement
Argus est un outil d’aide à l’analyse qualité. Il ne remplace pas un audit de sécurité professionnel et ne garantit pas la détection exhaustive des défauts. Utilisez-le comme couche complémentaire dans votre processus de test, jamais comme unique source de vérité.
Contribuer
Voir CONTRIBUTING.md pour ajouter des patterns, heuristiques ou profils de contexte.
Voir DEVELOPMENT.md pour le guide technique (architecture, tests, cycle cognitif, CI/CD).
Licence
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file argus_qa-0.10.0.tar.gz.
File metadata
- Download URL: argus_qa-0.10.0.tar.gz
- Upload date:
- Size: 319.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4264c3430ad2e353838712831acf72f018b82f36d4961f18e82c1696c664bd3
|
|
| MD5 |
7a996df791dcb8f081df6c0bf095d4f0
|
|
| BLAKE2b-256 |
67b1fdd8b1dd003a8f1a163a54bc496bf5b835e82fd589ae49ce60cb0b7784af
|
File details
Details for the file argus_qa-0.10.0-py3-none-any.whl.
File metadata
- Download URL: argus_qa-0.10.0-py3-none-any.whl
- Upload date:
- Size: 258.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86438714c5b64353b26bbf7d3b524bcf63900969bee97f8ce6d16d6f36a7dccb
|
|
| MD5 |
1a9318fa3e7da632a7e0806964a3e387
|
|
| BLAKE2b-256 |
642b16c0d7c5e96b502b2cc2cef2dd05e1a71682f77f34c12d7f433c8428afb0
|