A collection of Python audit, governance, and evaluation modules for engineering portfolio evidence tracking. Includes audit chain management, scope guards, regression gates, and anti-invention verification.
This server exhibits severe definition quality issues across nearly all 18 tools. Most tool descriptions are either missing, trivially short (<20 chars), or written in French without English translations, violating LLM-optimization baselines. Input schemas are present but lack proper type definitions for complex parameters (e.g., 'payload' typed as 'dict' without field documentation). No output schemas are documented. Parameter descriptions are sparse or absent. Error handling is minimal. The codebase shows sophisticated cryptographic and audit logic, but the MCP tool interface fails to expose this complexity in a way LLMs can reason about. Average tool description length is ~80 chars (well below the 194-char baseline for A+ tools), and ~40% of tools have descriptions under 20 characters, triggering hard scoring caps.
Append event JSONL chained — retourne hmac hex (event_hash) schema du journal.
Refuse a G9 comparison whose two sides disagree on the scoring regime (S31).
SHA-256 over the canonical JSON of `payload` minus `integrity_hash`. Returns a `sha256:<hex>` string.
Enumerate all metric records in Python source files, checking for regime markers.
Contenu de l'unique bloc <scope>...</scope>. Leve si le prompt en porte plusieurs.
Check if a mapping is a metrics record according to tie_policy rules.
Determine if current metrics represent a regression against baseline according to policy.
Descriptions in French without English translation; many under 20 characters, triggering hard scoring cap. Examples: 'Jetons numeriques...' (nombres), 'Noms propres...' (noms), 'Retire la ligne...' (sans_titre). LLMs trained on English cannot reason about French descriptions.
Complex parameters typed as generic 'dict' without field documentation. E.g., 'payload' in append_event, 'policy' in is_regression, 'record' in write_run_record. LLMs cannot infer required fields or structure.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract return values. E.g., verify_chain returns (ok, message) but this is not formally specified.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Jetons numeriques, une cle par valeur. Normalizes numbers for comparison.
Noms propres, comparés en minuscules : une capitale de début de puce n'est pas un fait.
Chemins d'une section a puces. Une ligne sans `/` ni `.` n'est pas un chemin.
The metric fields that make ``keys`` a metrics record — empty when it is not one.
Resolve the tie_policy regime of a metrics record, raising on unstated regime.
Retire la ligne de titre de poste : c'est la zone variable Z1, elle diffère par nature.
Check that a lock has the fields a gate needs, independently of its hash.
Verify the integrity and tamper-evidence of an audit chain by checking HMAC signatures and prev_hash chaining.
Verify the stored `integrity_hash` of a baseline lock without re-running. Returns (ok, message).
Extract visible text from markdown, removing HTML comments.
Write a run record with regime marker to JSON, raising on unmarked metrics.
Parameter descriptions missing or trivial for ~60% of parameters. E.g., 'payload' in append_event has description 'Event payload data' (too generic); 'section' in parse_path_patterns lacks guidance on format or expected content.
No error handling guidance. Tools like verify_chain and is_regression can fail (corrupt chain, mismatched regimes) but descriptions do not explain recovery steps or error categories (retryable vs fatal).