Internal audit: six inconsistencies corrected in our public signals
In July 2026, Alchimiste IA compared its public statements with the resources actually served to search engines, crawlers and agentic tools: the sitemap, machine-discovery files, identity profile and deployment pipeline. These resources are not all universally adopted standards; their consistency remains verifiable and contributes to an honest, documented public architecture with no fictitious capabilities.
Internal audit results
- 6 contradictions detected
- 6 contradictions corrected
- 7 URLs in the sitemap, generated from the route registry (versus 5, FR only, before)
- 0 fictitious agentic capability declared in the current public files
- 1 coherent generation pipeline, fed by two source contracts: the route registry for URLs, the YAML contract for identity
The last-modified dates of the generated resources checked in this audit are derived from their Git history; they are not entered manually.
Verification method
The verification compared four levels of the system:
- the source contracts present in the repository;
- the files produced by the generator;
- the artefacts selected for deployment;
- the HTTP responses actually served in production.
For each resource, the checks covered the HTTP status code, MIME type, content, last-modified date and consistency with the capabilities actually available. The production check was run from the local environment against the public URLs with check-discovery.ps1 -Live, supplemented by an inspection of the artefact deployed on the server.
Standards and experimental conventions
Not all resources cited in this audit have the same status. This page distinguishes them instead of presenting them as equivalent.
| Resource | Status | Role |
|---|---|---|
robots.txt | Standardized protocol | Crawling policy |
sitemap.xml | Widely used standard | URL discovery |
JSON-LD Schema.org | Widely adopted vocabulary | Entity description |
llms.txt | Emerging convention | Potential summary for some tools |
ai.txt | Non-universal convention | Informational statement, linking to llms.txt and llms-full.txt |
ait.txt | Non-universal convention | Content currently identical to ai.txt; distinction not yet established |
agents.json | Format dependent on a specification | Possible description of capabilities |
Carte A2A | Useful only with a real A2A service | Agentic discovery and interaction |
The ai.txt / ait.txt duplicate is deliberately flagged here rather than hidden: its clarification (merger or distinct roles) remains to be decided, following the same principle that led to removing manifest.webmanifest, a duplicate of manifest.json.
Six findings and their technical traceability
-
The public sitemap covered only French
- Finding
- The sitemap contained only five French URLs (/, /consultant-ia/, /mentions-legales, /confidentialite, /accessibilite), without the English and Italian pages even though they were published and returned HTTP 200.
- Fix
- URLs are now generated from the route registry (contracts/url-policy/routes.csv), the common source of truth for the site and sitemap.
- State after fix
- Seven canonical URLs (fr, en, it, legal pages), regenerated automatically whenever the route registry changes.
- Commit
350f817
-
Inherited files announced capabilities that were absent
- Finding
- In production, agents.json, ai.txt and llms-sitemap.xml returned 200 with content inherited from an earlier site version, describing interfaces (API, A2A) that did not actually exist (observation documented on 25 July 2026).
- Fix
- Replaced with honest declarations: an empty agent catalogue, an A2A card with zero skills and an OpenAPI contract with no routes.
- State after fix
- agents.json explicitly declares an empty agent list; openapi.json declares "paths": {}; both state this instead of implying otherwise.
- Commit
350f817, eabf1c0
-
llms.txt contradicted itself
- Finding
- The file stated “No public REST or A2A API is currently exposed on alchimiste-ia.com”, immediately after publishing an A2A card for transparency — the card existed, even empty, so the statement had become false.
- Fix
- The text was rewritten to describe what is actually published rather than deny it.
- State after fix
- “An A2A card (...) and an OpenAPI contract (...) are published for transparency: they explicitly declare zero skills and zero routes, confirming that no active interface is exposed.”
- Commit
ff8c404
-
The identity profile was no longer synchronized
- Finding
- The identity YAML contract had been enriched (adding “AI-First Architecture”) without regenerating the derived public files (humans.txt, the person Schema.org record) — a three-day gap between source and public projection.
- Fix
- Regenerated from the YAML contract, the single source of truth, using the existing synchronization tool.
- State after fix
- humans.txt and the Schema.org record now contain exactly the same skills as the YAML contract, without duplicate entry.
- Commit
24f5501
-
The deployment pipeline ignored the new public files
- Finding
- The required deployment paths did not list the new public files (llms-full.txt, llms-sitemap.xml, agents.json, agent-card.json, openapi.json, ai.txt, ait.txt).
- Fix
- The required paths list was updated to explicitly include each of these files.
- State after fix
- Each newly created public file now appears in the deployment checklist.
- Commit
9465fd6
-
A displayed date did not match a real commit.
- Finding
- The llms.txt footer displayed “20 July 2026”, while the latest commit that modified the file was dated 21 July — a one-day gap between the displayed date and reality.
- Fix
- The generator now derives each date from the actual Git history of the relevant file, and displays no date when no commit exists yet.
- State after fix
- The displayed date exactly matches the latest commit date for the file, verifiable by anyone with access to the history.
- Commit
85bedee, 364e0c9
What each inconsistency changed for an external reader
| Problem | Consequence for an external reader |
|---|---|
| Sitemap incomplet | English and Italian pages absent from the sitemap discovery channel |
| Déclarations héritées devenues inexactes | Integration impossible based on capabilities that do not exist |
| llms.txt contradictoire | An agent following the text could ignore a resource that was nevertheless published |
| Profil désynchronisé | Ambiguity about the entity capabilities actually declared |
| Déploiement incomplet | Risk that a code fix remains absent in production |
| Dates improvisées | Impossible to verify the actual freshness of a statement |
Limits of this verification
- A public file presence does not guarantee use by a search engine or agent.
- Manifest compliance does not guarantee site citation.
- These observations describe the domain state on the indicated date; rerun them after each deployment.
- This page points to commit hashes in repository history; it does not yet provide a public evidence register with direct links, requiring a separate decision about repository accessibility.
- Explicitly allowing a crawler (OAI-SearchBot, GPTBot...) in robots.txt permits crawling when the system chooses to access the page; it guarantees neither indexing, display nor citation.
This audit invokes no third-party score. Findings rely on source contracts, Git history, generated artefacts and reproducible HTTP tests against production. Repository access limitations are stated above.