À propos du projet

ClaudeMark est un kit de forensic local-first, sans exfiltration, pour examiner et nettoyer les filigranes IA et les données de provenance dans les textes et fichiers que vous possédez. Il est implémenté en Python (3.10+, utilisant la bibliothèque standard), fonctionne hors ligne, et ses opérations principales ne font aucun appel réseau sortant. Il est distribué sous licence MIT. La détection et la sanitisation sont organisées en couches. La couche A est le travail textuel déterministe : elle scanne pour des porteurs Unicode invisibles tels que l'espace de largeur zéro (ZWSP), le ZWNJ, le ZWJ, le word joiner, le BOM, le séparateur de voyelles mongol, les balises Unicode, les sélectionneurs de variation, les overrides bidirectionnels, les espaces exotiques et les homoglyphes, et peut rendre les marqueurs cachés sous forme de balises lisibles (par exemple ZWSP, BOM, RLO) pour inspection. La couche B est statistique : le README décrit des détecteurs pour une heuristique de recherche Claude, un biais de liste rouge/verte de type Kirchenbauer, un détecteur de style SynthID et un détecteur générique, ainsi qu'une passe de réécriture ou de perturbation au mieux avec évaluation avant/après et un rapport de différence HTML côte à côte. Pour les fichiers et conteneurs, il inspecte et supprime les manifestes C2PA/JUMBF, EXIF, XMP, IPTC, les métadonnées XML de document et les signatures de générateur. La couverture de formats documentée inclut PNG, JPEG, WebP, SVG, AVIF, HEIC, PDF, DOCX, ODT, HTML et Markdown, avec prise en charge des tags MP4/MOV/M4A et MP3 également répertoriée dans le tableau des formats. Le nettoyage écrit la sortie de manière atomique. Les outils hôte optionnels — c2patool pour la vérification C2PA, exiftool pour l'inspection secondaire des métadonnées, et qpdf pour la reconstruction structurale des objets PDF — sont utilisés lorsqu'ils sont présents. Un scanner de sécurité défensif est inclus, couvrant les bombes de décompression (un plafond de rapport de compression 100x et un plafond de 100 Mo non compressés), les actions PDF malveillantes telles que /JavaScript, /JS, /Launch, /EmbeddedFiles et /SubmitForm, les projets de macros VBA intégrés, et la traversée de chemin ainsi que les protections de noms de périphériques réservés Windows. Les commandes orientées texte vérifient les signatures de fichier et les distributions d'octets de contrôle pour refuser les entrées binaires plutôt que de corrompre les fichiers. Le kit expose plusieurs interfaces. L'interface CLI offre les sous-commandes analyze, unicode inspect/visualize/clean, rewrite, evaluate, diff, inspect, clean, audit, evidence, schema, c2pa inspect, security scan, agent list/exec, serve, doctor et benchmark, y compris un mode dry-run pour le nettoyage de répertoire. Un service HTTP de bibliothèque standard sert un tableau de bord web et une API REST documentée (health, capabilities, OpenAPI spec, inspect, clean, analyze, unicode analyze/visualize, rewrite, evaluate, diff, security scan, agent tools/exec), avec authentification par jeton porteur optionnelle via une variable d'environnement. Un serveur stdio MCP (claudemark-mcp) expose les mêmes outils locaux via initialize, tools/list et tools/call. Des fichiers de compétences et de règles peuvent être installés pour Claude, Cursor, Antigravity, Grok et Codex via un script d'installation. Les intégrations d'automatisation incluent la génération de sortie OASIS SARIF 2.1.0 pour l'analyse de code GitHub (avec une option --fail-on), des hooks pre-commit officiels pour le nettoyage Unicode et l'audit de dépôt, et un packaging Docker Compose qui s'exécute avec un système de fichiers racine en lecture seule et un utilisateur non-root. Les paquets de preuve sont des fichiers ZIP contenant un rapport JSON canonique et un manifeste SHA-256 ; l'inclusion du fichier original est optionnelle, et un mode de vérification contrôle le hachage du rapport et, le cas échéant, le hachage de l'original intégré. La documentation indique qu'un paquet prouve l'intégrité de son contenu mais n'est pas une signature cryptographique ni une affirmation de paternité. Les limites du périmètre sont explicitement énoncées. Les signaux statistiques ne prouvent pas la paternité IA ; le projet ne revendique aucun accès aux poids de modèles propriétaires, aux clés de filigrane privées des éditeurs ou aux API de détection non documentées des éditeurs ; la perturbation statistique est au mieux et un score plus bas ne garantit pas l'effacement ou une classification différente ailleurs ; et l'absence de métadonnées ne prouve pas que le contenu est créé par un humain ou sans provenance. Les adaptateurs de filigrane dans le domaine des pixels (SynthID-Image, CtrlRegen, MarkDiffusion, Tree-Ring, Stable Signature, StegaStamp) sont des interfaces de recherche plutôt que des modèles regroupés, et signalent leur indisponibilité jusqu'à ce que des points de contrôle soient configurés. Des points d'intégration pour le harnais d'évaluation MarkLLM sont également décrits pour des expériences contrôlées.