👁️ 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
Metadata
Release files for argus-qa 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| argus_qa-0.10.0.tar.gz | 319.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| argus_qa-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 578.1 kB
Release files / argus_qa-0.10.0.tar.gz
| Download URL | argus_qa-0.10.0.tar.gz |
|---|---|
| Size | 319.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4264c3430ad2e353838712831acf72f018b82f36d4961f18e82c1696c664bd3
|
|
BLAKE2b-256 checksum How to use checksums |
67b1fdd8b1dd003a8f1a163a54bc496bf5b835e82fd589ae49ce60cb0b7784af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / argus_qa-0.10.0-py3-none-any.whl
| Download URL | argus_qa-0.10.0-py3-none-any.whl |
|---|---|
| Size | 258.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
86438714c5b64353b26bbf7d3b524bcf63900969bee97f8ce6d16d6f36a7dccb
|
|
BLAKE2b-256 checksum How to use checksums |
642b16c0d7c5e96b502b2cc2cef2dd05e1a71682f77f34c12d7f433c8428afb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Security for argus-qa 0.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.