TSEP /
Document autonome · hors ligne

Rapport de preuves

Des observations aux décisions, chaque résultat conserve ses preuves.

Evidence-bound supplied review / Revue fournie liée aux preuves | TS04 — client HTTP observé / observed HTTP client: ["TSEP-Public-Demo/2"]; accès réel Googlebot non observé / actual Googlebot access unobserved

0.3.0-draft.8Protocole expérimental2026-10-25T19:08:00.227309+00:00
Décision dans le périmètre

GO_WITH_RESERVATIONS

Attendus satisfaits, réserves conservées

TS04 · 1 cibles déclarées

La décision concerne uniquement les contrôles et les cibles déclarés.

Contrôles sélectionnés

1 / 44

43 contrôles hors sélection

Cibles déclarées

1

7 pièces liées au rapport

Structure et empreintes vérifiées à la générationCette vérification établit la cohérence du rapport et l’intégrité des fichiers lus. Elle ne prouve ni leur authenticité, ni la justesse des jugements, ni l’indexation ou le classement.

Exécutions présentées : celles fournies dans ce paquet. L’absence d’autres essais ou une campagne exhaustive ne sont pas établies.

Preuves synthétiques présentesAu moins une pièce est déclarée synthétique. Ce rapport ne doit pas être présenté comme un constat entièrement issu d’un site réel.

Couverture déclarée par l’outil

Résultats

TS04

La politique robots effective correspond à l’intention déclarée.

C · Conforme dans le périmètre

Computed supplied-capture outcomes: pass=2, fail=0, not-applicable=0, inconclusive=0; omitted pairs=0; declared scope only. TS04 — client HTTP observé / observed HTTP client: ["TSEP-Public-Demo/2"]; accès réel Googlebot non observé / actual Googlebot access unobserved.

Procédure déclarée

TSEP offline capture adapter 50; bounded reference interpretation, supplied reviews retained; no collection.

TS04-A01 · Politique par origine, robot et ressource

pass · Réussi

https://atelier.example/

pass — https://atelier.example/assets/app.js: attendu=allow, observé=allow; Longest normalized pattern; Allow wins equal specificity; profil=google-robotstxt-fields-v2; lignes=[[3, "allow", "/assets/"]]; champs relevés hors portée accès / fields outside access scope=[]; champs supplémentaires / additional fields=0; valeurs intégrales / complete values: retained robots response; registre / registry=google/robotstxt@22b355ff855419e6a3ff8ff09c0ad7fdb17116f9/reporting_robots.cc; directive_crawler=googlebot; policy applied only to HTTP client=TSEP-Public-Demo/2; actual Googlebot representation unobserved

Attendu de la règle
Attendu de la règle
Chaque politique observée correspond à l’intention déclarée. Une permission inattendue comme une interdiction inattendue est une contradiction. Une absence volontaire peut convenir selon le profil ; aucun statut 200 universel.
Automatisation
semiAuto
Types de preuve requis
http, robots, intent
Limites de la règle
semiAuto : matrice et pertinence du profil restent déclarées. La référence est bornée à une origine, des profils documentés et des captures fournies ; aucune visite, ingestion ou indexation du moteur n’est démontrée. En mode explicite, toute conclusion robots concerne le produit déclaré sur les octets reçus par le client, sans prouver la représentation reçue par Googlebot. Un statut HTTP contraire au plan (dont 401/403/429/5xx quand 200 est attendu) reste fail pour ce client, jamais une preuve de refus à Googlebot. Les champs du registre et sitemap sont relevés, sans évaluer leurs préférences d’usage, TS42 ou l’indexation ; ils ne délimitent pas les groupes. Autres champs et tolérances restent hors couverture. Numéros et valeurs intégrales sont conservés ; les aperçus de motifs signalent leur troncature.

TS04-A02 · Accès aux ressources nécessaires

pass · Réussi

https://atelier.example/

pass — https://atelier.example/assets/app.js: pass — Longest normalized pattern; Allow wins equal specificity; profil=google-robotstxt-fields-v2; lignes=[[3, "allow", "/assets/"]]; champs relevés hors portée accès / fields outside access scope=[]; champs supplémentaires / additional fields=0; valeurs intégrales / complete values: retained robots response; registre / registry=google/robotstxt@22b355ff855419e6a3ff8ff09c0ad7fdb17116f9/reporting_robots.cc; directive_crawler=googlebot; policy applied only to HTTP client=TSEP-Public-Demo/2; actual Googlebot representation unobserved; pass — Synthetic exercise: public JavaScript source, status 200; no login, CAPTCHA or interstitial in the retained response.; HTTP observations refer to declared client=TSEP-Public-Demo/2; actual Googlebot HTTP access unobserved

Attendu de la règle
Attendu de la règle
Toutes les ressources nécessaires et leurs sauts observés sont autorisés sous le profil, atteignent la réponse prévue et ne présentent aucun obstacle selon la revue fournie. Blocage robots, réponse contradictoire ou obstacle étayé donne fail même avec une autre preuve manquante.
Automatisation
semiAuto
Types de preuve requis
http, robots, intent
Limites de la règle
La suffisance de l’inventaire et le jugement humain restent hors automatisation complète. La référence couvre une origine et les trajectoires attribuables ; elle n’exécute pas le rendu et n’établit pas l’accès réel du moteur. En mode explicite, toute conclusion robots concerne le produit déclaré sur les octets reçus par le client, sans prouver la représentation reçue par Googlebot. Un statut HTTP contraire au plan (dont 401/403/429/5xx quand 200 est attendu) reste fail pour ce client, jamais une preuve de refus à Googlebot. Les champs du registre et sitemap sont relevés, sans évaluer leurs préférences d’usage, TS42 ou l’indexation ; ils ne délimitent pas les groupes. Autres champs et tolérances restent hors couverture. Numéros et valeurs intégrales sont conservés ; les aperçus de motifs signalent leur troncature.

Captures et intention

Lecture des champs de l’entrée conservée, sans requête réseau ni nouvelle interprétation. Un statut visible dans une trace ne suffit pas à valider une règle.

https://atelier.example/

Intention préalable fournie
Date de déclaration
2026-10-25T08:50:00Z
URL finale attendue
Non fourni
Empreinte du corps attendue
Non fourni
Politique de représentation
Non fourni
{
  "declared_at": "2026-10-25T08:50:00Z",
  "crawler": "TSEP-Public-Demo/2",
  "directive_crawler": "googlebot",
  "robots_policy": {
    "profile": "google-robotstxt-fields-v2",
    "product_token": "Googlebot"
  },
  "robots_plan": {
    "origin": "https://atelier.example/",
    "required_resources_basis": "The authored page loads /assets/app.js.",
    "resources": [
      {
        "url": "https://atelier.example/assets/app.js",
        "expected": "allow",
        "required": true,
        "expected_final_url": "https://atelier.example/assets/app.js",
        "terminal_statuses": [
          200
        ]
      }
    ]
  }
}

Date d’observation déclarée · 2026-10-25T09:10:00Z

Contexte de la capture
{
  "id": "fictional-demo",
  "network": "none; authored synthetic evidence",
  "bounds": "declared example only; no network or browser execution",
  "tool": "authored-fixture",
  "tool_version": "2"
}

Pièces de preuve

Ouvrir une pièce pour lire son contenu et vérifier son empreinte.

supplied-input operator-docsinput.json
Description conservée
Original supplied bytes. Artifact date is import time; source dates are retained inside, not verified.
Cibles déclarées
https://atelier.example/
SHA-256
cc21336b7a5bbc72427427c1ee358371db4994b00686a79337a6299f1641b861
Date d’observation déclarée
2026-10-25T19:08:00.227309+00:00
Accès déclaré
synthetic
Télécharger les octets d’origine ↓
Aperçu texte échappé
{
  "input_version": "2",
  "rules": [
    "TS04-A01",
    "TS04-A02"
  ],
  "targets": [
    {
      "url": "https://atelier.example/",
      "observed_at": "2026-10-25T09:10:00Z",
      "context": {
        "id": "fictional-demo",
        "network": "none; authored synthetic evidence",
        "bounds": "declared example only; no network or browser execution",
        "tool": "authored-fixture",
        "tool_version": "2"
      },
      "intent": {
        "declared_at": "2026-10-25T08:50:00Z",
        "crawler": "TSEP-Public-Demo/2",
        "directive_crawler": "googlebot",
        "robots_policy": {
          "profile": "google-robotstxt-fields-v2",
          "product_token": "Googlebot"
        },
        "robots_plan": {
          "origin": "https://atelier.example/",
          "required_resources_basis": "The authored page loads /assets/app.js.",
          "resources": [
            {
              "url": "https://atelier.example/assets/app.js",
              "expected": "allow",
              "required": true,
              "expected_final_url": "https://atelier.example/assets/app.js",
              "terminal_statuses": [
                200
              ]
            }
          ]
        }
      },
      "robots": {
        "observed_at": "2026-10-25T09:10:00Z",
        "http": [
          {
            "url": "https://atelier.example/robots.txt",
            "complete": true,
            "request": "GET /robots.txt HTTP/1.1\r\nHost: atelier.example\r\nUser-Agent: TSEP-Public-Demo/2\r\n\r\n",
            "response": "HTTP/1.1 200 Synthetic\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Length: 56\r\n\r\nUser-agent: Googlebot\nDisallow: /admin/\nAllow: /assets/\n"
          }
        ]
      },
      "documents": [
        {
          "url": "https://atelier.example/assets/app.js",
          "observed_at": "2026-10-25T09:10:00Z",
          "http": [
            {
              "url": "https://atelier.example/assets/app.js",
              "complete": true,
              "request": "GET /assets/app.js HTTP/1.1\r\nHost: atelier.example\r\nUser-Agent: TSEP-Public-Demo/2\r\n\r\n",
              "response": "HTTP/1.1 200 Synthetic\r\nContent-Type: application/javascript; charset=utf-8\r\nContent-Length: 51\r\n\r\ndocument.documentElement.dataset.atelier = \"ready\";"
            }
          ],
          "access_review": {
            "reviewer": "Atelier — fictional resource reviewer; no human reviewer",
            "observed_at": "2026-10-25T09:12:00Z",
            "reason": "Synthetic exercise: public JavaScript source, status 200; no login, CAPTCHA or interstitial in the retained response.",
            "provenance": "synthetic-exercise",
            "assistance": "Authored public demo; automated synthetic response",
            "examined_evidence": [
              {
                "path": "evidence/target-1-TS04-A02.json",
                "sha256": "35157bdb20644981c164facd82ab66a44146873f01535c60a6ad57777c89ebdd"
              }
            ],
            "workflow_input_sha256": "43567146dab80673a2784faedfc42352349b3377e3366f64805db45dd649e411",
            "outcome": "no-obstacle",
            "source_sha256": "16ebae55f4075719b8b3f50b19e819a602ff49c7f91a0f78fd3d981d940ef371"
          }
        }
      ]
    }
  ]
}
import-record operator-docsimport.json
Description conservée
Import context, source-code fingerprints and omitted-rule coverage; import time is not capture time.
Cibles déclarées
https://atelier.example/
SHA-256
0161ecef90b5ab720f2b3ea2394a70806c8992628c2074fdfe860c5002380068
Date d’observation déclarée
2026-10-25T19:08:00.227309+00:00
Accès déclaré
synthetic
Télécharger les octets d’origine ↓
Aperçu texte échappé
{
  "adapter": {
    "name": "TSEP offline capture adapter",
    "version": "50"
  },
  "protocol": {
    "name": "TSEP",
    "version": "0.3.0-draft.8",
    "sha256": "298399d8f3ab8ca513be85b7d6905d03e8be7b521bac1376d2a4a037a51e4ce8"
  },
  "interpreter": {
    "name": "TSEP bounded reference interpreter",
    "version": "54"
  },
  "imported_at": "2026-10-25T19:08:00.227309+00:00",
  "python": "3.9.6",
  "source_files": {
    "adapters/captures.py": "0d9472dabe007e53b7a90595a01b2620b01c222adfda3bee064b6d89517d0ad5",
    "tsep.py": "b2d62d6961a9ea9bcd51ba07ae7bc6b9f0221ddde1468493987d5fd060c34121",
    "conformance/google_directives.py": "727dfef6404a54db6cfacbccb2b5753d940e564f95e56c323fdd1a36e01fa706",
    "conformance/exclusion_observation.py": "8c95437e3ef7426b4019bf754603bf6f138a1c2b13ed222687ee75076c336d9f",
    "conformance/http_canonical.py": "8f10e3b652e73bc90b4ec90c608f9b9dcc736240348b1f585570526956b90459",
    "conformance/preview_intent.py": "748b6f27f3f75b37a78ac131f3d813dba57f3f5d5a181c4c42e048a9afa91d33",
    "conformance/performance.py": "51ef1674edb82fdba72841543c38f661f455dc95adbee577aca9e66c8b70a8fa",
    "conformance/agent_policy.py": "4d5dd82393d9e01de7402c53ec8d45db319c34bb51d4ccb40611e9d4ca45544f",
    "conformance/agent_access.py": "e0cb627852270bdbc15cb5a550e830bb451ebab758ce7dc31171b0e4f88d1c23",
    "conformance/critical_content.py": "102d9175c9e4e78356502ad9ef723ec6d3e17c6500803bb02c89e55cc84c3752",
    "conformance/release_monitoring.py": "c869383e419f2cc2e2262fc1a2805aedc6562ed7c772d261cfcda712349ae922",
    "conformance/essential_links.py": "0e927b5221739e3b71632de82b4bdb65698bf4064adcd4992ca8d21456887b40",
    "conformance/essential_links_source.py": "fb9561767cfb512a42ecd098131bfad7cc6e747453910a139bfd8d84603bfcf1",
    "conformance/essential_links_dom.py": "96698ff3d5ececd14d6b4d1ca844e4d31c8ee1e2cab074565ff9c780c9a5a6a5",
    "conformance/graph_bounds.py": "d7ff8db2206617b9bf735b15d3d5edbb33635b66350a970d05078382ad891256",
    "conformance/graph_inventories.py": "e8df8ba76ac74b049eadc650176603c77a1f655d1a41bc51f2eb02d0feb73b2a",
    "conformance/graph_documents.py": "d278eb961d36b1437c221449610d543b6081c9d88b5f4e723b263606256b0d0b",
    "conformance/graph_reviews.py": "5ccd17a2115d3bc99028b653e9a61a209b0bc96a9ea82d121e85073cf75c5d01",
    "conformance/graph_reconciliation.py": "73672ac5fa23230bb20a5e6fd7bea1b69c92db0788546cddd526f6fae34b1397",
    "conformance/hreflang_native.py": "b2b9b8e33021e164bb9230270cb6305e7c21275bcdc9fccd546278080bd70796",
    "conformance/hreflang_reciprocity.py": "737fe1d0d006f6e8d0baf6c490d9892e53fbe46a33da74886e2cbcbf556411d8",
    "conformance/xdefault_role.py": "a46091da1a42b41f5d9446dbc096e4aa9e12c7942c20dbcf76ecc175e77a1b34",
    "conformance/critical_presence.py": "933198fc8a0a8fa9ff0bbbd9baf9b87e4d27211acac9763f8f90f43a52f7d95c",
    "adapters/hreflang_intake.py": "2c6e6ddf31bf6ef7670bf56723f814c7130be201dfb953e3268bf4d8d6c799de",
    "adapters/graph_intake.py": "64787d95bd4209535ceaada1a71d17984af9ac8d7e71dc0b0a328d3b9871138a",
    "conformance/incoming_links.py": "e226e919009980f1b2f6baacb2bfc5cd699a6f1f5649b30d6f293409e080f271",
    "adapters/incoming_links_intake.py": "29c67558b2f8a9ece101cff65e95acd7a26c94957e62a4c8dfd0d9f14b45920f",
    "conformance/sitemap_files.py": "8915e1eae3bdb6529efe639ff73d818e2639e0f964392d8f2be28ab7de497a72",
    "conformance/evidence_dossier.py": "bbb66d2685e042222d7ae264221394cc23d073031a95da812591f3f1d8d16512",
    "conformance/url_policy.py": "881be117db736abf9bfa1db9b29ddb507bb13be691f9201fd680f616ea9f7d5d",
    "conformance/indexing_locale.py": "0c1ae53aaa1f038bf056151fae6097a6a262849411ba0f39b4eaa9c3ba820ed0",
    "conformance/render_transport.py": "863c353fabca7c5f1e0f85a293bcf7af7d54480d4512fb796e82a954f334fe98",
    "conformance/sitemap_quality.py": "43b017d17e96a8365acdc70862038ab40a9fa519ee89684d74c8053fc4a90a66",
    "conformance/sitemap_set.py": "dec8eb9661f510c16390ddd05c4d744b6bcf50a41f0acb9109dc5cfdc8e86f2b",
    "conformance/structured_validation.py": "1561bd5ccb38e39539f090f473798ab35fc8d4deb60b397c273bee88c2f2d8d5",
    "conformance/structured_identity.py": "c9b7cf10512a9c84c674d6f7a7fe4190597d4fc6b502c3404193d4f462d069bf",
    "conformance/structured_content.py": "129301e2153e5c63ffe9c5b22fabc894f135b23b48016ac6a4936f85134f856e",
    "conformance/canonical_comparison.py": "e5d735591266c4c5a9eb480deede6dc6bdc7d2b83371b5b97d26dd2bfa894b96",
    "conformance/inspection.py": "96b0c1d762ea6981d5b8fce46c7bf80fc782648507a9747a993b3ca396197a01",
    "diagnostics/search_console.py": "97236df65baece46f0268cca284149be57e94c32a76f4ec04ba208b648298a24",
    "conformance/delivery.py": "7d9460bb0728d1167ceae9f84cbf4c7ce6e90ad3782f2de15f324f5d7b789743",
    "experiments/delivery_variants.py": "e804f14756282375e98d30465d1aabcd766cb4c33f96a5898fa0727e1b61b828",
    "conformance/release_invariants.py": "797794e7f621233b770b17aa67494e88bcf023ceb8a14da8ac216f3fac202991",
    "experiments/source_content.py": "fc4f4fa08e0f232fec3bc1e13b7a7ddde3a4bf755f10f26d663d2d232b297ff4",
    "conformance/source_markers.py": "c53930d73a46f5e6336793ef4c8de4487431c3207d05fd810eac2b60273a1b49",
    "experiments/source_markers.py": "9dca806e1249498ed0468b36c8e3cf782cef7ef65a7a11f359a5501c330f5514",
    "conformance/evaluate.py": "1b5e332958a46b98a8b75f732c1128399c24108d7a7303a925696f557ba8c115",
    "conformance/ts06_access.py": "6b2eb24da344fb1b95dc34f17edfaf351bd7d1aba06c39859c4c4597b717240c",
    "conformance/http.py": "4fdaf8eda589461979d0e05e5fb7fd2041b017d13b9b61c8540c6e677b3c3e56",
    "conformance/canonical.py": "16344897cbd4095615a99b538dea9640aca454097324e2e6b16b6736f3a06f31",
    "conformance/sitemap_locations.py": "5f9108eda0e8f309c2b3aa6c5895c3e80d8f61c391d89ba35f8c3f903bef2b77",
    "conformance/canonical_attributes.py": "ccc0d4917c4a349964bcb7c7a4a28b81b17acca71231adaeca92b9cf77068544",
    "conformance/source_text.py": "ce2a519368049ab5da3e0c9e542f8b29a6de0e4ed9ce66c27a59c36b0ac8b343",
    "conformance/redirects.py": "13724a328672cabf824a377af5b9b9d01e8d13142a01a49e5d36396c95c568d2",
    "conformance/robots.py": "b8c0385bf77cb253e6d0ad2ac50537c3b39739ad505d52707a409bf4e992337d",
    "conformance/robots_control.py": "dce351a194692b6713793bdf31d04f9e6d0c2c695276597b28c2be63066164a4",
    "conformance/structured_dom.py": "1cc8f48106e16dabbb1635260b8c8d26bb86c974d9ba3298a27056ac9f2044d6",
    "experiments/rendered_metadata.py": "6020756b55332d1b126cb44cb563a50ce6d1083939d11231ce6fde525a6fea08",
    "experiments/rendered_canonical.py": "46095e01906adebab50d4b1f55cc3fc28ec6d5286724228d62a0cb2840fb07fe",
    "provenance/runtime.py": "5480de2ede016b64e9cb6ab692c59250a84eda2a68bc1474131494187a4b4be0",
    "conformance/source_directives.py": "c59543dce84cba0b8d4e36940202f8368dd9f52a8d25d08b56e92d4dc644100a",
    "conformance/source_canonical.py": "ae5183b31b0fd48e46e026b8457cb42ab85d8eae49aa1740c2fa0d51e95dd062",
    "experiments/source_head.py": "d68671ef5eebdc07472b903bc2cb1edecd29e1d0e6a84b222c6c6bad1d7c824c",
    "experiments/source_http.py": "2fd3d17815d00bf50716676ee7e45148a6b723276d13dd55512aea69df2c8924",
    "experiments/source_tree.py": "3ae30f859dfe71925c1ff02905175c2de9991ffe9525da4fb73c9c9f63d0c30b",
    "third_party/schemaorg/schemaorg-all-https-30.1.jsonld": "07e7c663dbc12a0937581745e59a98ed12b8698f38e8e3b03650287d9df88ae5",
    "conformance/data/locale-code-facts-v1.json": "88dcbd178d0bf5faee8433a0976bc1dea0820f7a311e14a12c31674f5f10f6a7",
    "conformance/data/locale-code-facts-v1.sha256": "8d089856f00c538080407e57afcda9927a943626c776cc5a4cdfd30e85b1f92b",
    "collectors/rendered_metadata.js": "a0cef846495ed630a89149aafc017ed817f1632b6902402564a24b74d18ba206",
    "experiments/source_tree.mjs": "0d0a5dc94237b37ee6ba9b65435598d923a2b6aa217cb4a33abe5ab96a711422",
    "experiments/source_tree_network_guard.mjs": "68f439f3dceeef85e11a84bc3f78c72df3897cca53aafb8918dec16727fbe0c7",
    "third_party/source-tree/packages.json": "32757186a1ceda70ee76295042b6f0d812ee7dc36bd0506fd82ceebe0f5e8099",
    "third_party/source-tree/parse5-8.0.1.tgz": "d94ec8606e3cef24b8ec001ac121df5d7938f015be69615da27b53a082f86832",
    "third_party/source-tree/entities-8.0.0.tgz": "8e8b16388e19c12fc80f9f75f518a0f83d99428be6765a38f04c264a078cc25b",
    "experiments/source_http.mjs": "cbc87a6d0a27f25b26970d78290b38e4bf9f2cd83f4d5897eda3080f35714586",
    "experiments/source_head.mjs": "1cea8e2e138bd01276ae5739be7790ba57935de0ed63ec10604fbc9847d3b5d0",
    "experiments/source_content.mjs": "cd11892ed619f60f8b1d29bdfc9d298d04168f15267bf463be0695afbe1e19e2",
    "experiments/source_scripts.py": "d0bb74b4a5b70191195578ccd7d85abbf3e6166f27530b2d00622b510fa623db",
    "experiments/source_scripts.mjs": "417aef0ddb89d9006231e4c2165b67d53ae3d87d3dc61e57b75817278cbf288a",
    "experiments/jsonld_processing.py": "e0f80ea10a82a646c02ff2d78247d3fc08b41f01b7bd05872eaabc87d28bf6cc",
    "experiments/jsonld_processing.mjs": "17486529e5c3a744cffbc926ceb0ca8bd586535ec454de047e866f4650185c06",
    "third_party/jsonld/packages.json": "ec0b586921a31ef90751c1822d040f845360a8be48fe99f446159440cefb0ee1",
    "third_party/jsonld/jsonld-9.0.0.tgz": "3628c8df4ceaf4da1f0b55dc7a006287dc4362ed78f6f7c85e83bd99b9328627",
    "third_party/jsonld/LICENSE": "0707101bd4a2fc564788b1ba03c53615e35388dad33879663db263e724a6bd4a",
    "experiments/jsonld_html.py": "448c20e9359d274041552a588afe5f290b38e125513fa8584129e3df4ad54a00",
    "experiments/jsonld_rendered.py": "523c3a4ef41d2df9c9bf90da977b4a0a6c136e32b1d75c9abb56a815e6e832af",
    "conformance/source_link_policy.py": "3b7365b2994a171a70598ef234288a1f6a8ecb6ebff44b5cf677f5faa0ae58c7",
    "experiments/link_elements.py": "ad50dc41da8b76a5d24d4068021595f8c24df40126a4d37ccf432c055e8fa438",
    "experiments/url_resolution.py": "b7c393aa5f0cf0986da2a2db4c729c803e283489afee8da1a5261897dde4e2c2",
    "experiments/link_elements.mjs": "7da25bb82714282d9d49c65081f43edab0e032d91337439b10c47a402027214e",
    "experiments/url_resolution.mjs": "6a28ee91a806a7f871c63a6d5d28bc0d0b0842af570e96b4b57239429c533d8c",
    "experiments/source_metadata.mjs": "d0b4ae3247251b31a209d6de6ba2d962b5c606b1e4d4869f2fe504ff628f32f6"
  },
  "runtime": {
    "implementation": "CPython",
    "python": "3.9.6",
    "build": "3.9.6 (default, May 22 2026, 11:13:45) \n[Clang 21.0.0 (clang-2100.1.1.101)]",
    "stdlib_source_sha256": {
      "html": "8d69aeb50f77de6d84c51b9d01e08497983bafe9297cdd1620bf75aa1b1dba1c",
      "html.entities": "fbe69b7c04e3e75eb7b33fefd2d5ad730bff35c4a7b865a8ecfc041075f6f93c",
      "html.parser": "038bd4c85fc9d814f39f70a03733fddec2c3d3364b75bca4c276178488afae2e"
    },
    "scope": "Selected HTML runtime dependencies; null means source unavailable. Not complete environment authentication."
  },
  "source_verification": "Loaded module file/spec origins match this tool root; on-disk hashes checked before and after interpretation. Not execution authentication.",
  "input_sha256": "cc21336b7a5bbc72427427c1ee358371db4994b00686a79337a6299f1641b861",
  "access": "synthetic",
  "coverage_inventory": [
    {
      "state": "implemented",
      "fr": "TS26–30/37 : sources, états et revues fournis, TLS hors ligne sur racines déclarées ; 44 contrôles possèdent des règles bornées, aucun audit global implicite.",
      "en": "TS26–30/37: supplied sources, states and reviews, offline TLS with declared roots;44 controls have bounded rules, no implicit global audit."
    },
    {
      "state": "implemented",
      "fr": "TS09/11/19/20/38 : politiques, contenus et variantes sur pièces sources bornées et revues liées ; aucune qualification globale.",
      "en": "TS09/11/19/20/38: policy, content and variants on bounded source evidence and bound reviews; no global qualification."
    },
    {
      "state": "implemented",
      "fr": "TS21/22/40 : diagnostics de familles, codes/destinations et méthodes hreflang fournis ; aucune causalité, indexation réelle ou localisation authentifiée.",
      "en": "TS21/22/40: supplied family investigations, locale codes/destinations and hreflang methods; no causal, actual-indexing or authenticated-localization claim."
    },
    {
      "state": "implemented",
      "fr": "TS06-A01 : matrice fournie de routes `.invalid`, rôles synthétiques, canaris et triplets étiquetés ; aucune identité, aucun cache réel ni domaine live.",
      "en": "TS06-A01: supplied `.invalid` route matrix, synthetic roles, canaries and labelled triplets; no real identity, real cache or live domain."
    },
    {
      "state": "implemented",
      "fr": "TS25 : cinq rôles déclarés, présence source/rendu et revues fournies ; aucune exécution ou visibilité authentifiée.",
      "en": "TS25: five declared roles, source/render presence and supplied reviews; no authenticated execution or visibility."
    },
    {
      "state": "implemented",
      "fr": "TS24 : politique x-default, contexte motivé et revue de rôle fournis ; aucune neutralité ni approbation humaine inférée.",
      "en": "TS24: supplied x-default policy, motivated context and role review; no inferred neutrality or human approval."
    },
    {
      "state": "implemented",
      "fr": "TS23 : réciprocité et auto-référence natives dans le groupe préalable ; aucune validité linguistique, indexabilité ou sélection Google déduite.",
      "en": "TS23: native reciprocal/self annotations in the prior cluster; no inferred language validity, indexability or Google selection."
    },
    {
      "state": "implemented",
      "fr": "TS18 : inventaires, graphe borné et revues fournis ; aucune exhaustivité, identité de relecteur ou collecte authentifiée.",
      "en": "TS18: supplied inventories, bounded graph and reviews; no completeness, authenticated reviewer or acquisition."
    },
    {
      "state": "implemented",
      "fr": "TS16 : liens entrants dans la population préalable fournie ; aucune exhaustivité du site ni importance authentifiée.",
      "en": "TS16: incoming links within a prior supplied population; no site completeness or authenticated importance."
    },
    {
      "state": "implemented",
      "fr": "TS17 : liens essentiels a/href dans les source et états fournis ; stratégie préalable, scénarios et association HTTP/DOM déclarés, aucune interaction ou acquisition authentifiée.",
      "en": "TS17: essential a/href links in supplied source/states; prior strategy, declared scenarios and HTTP/DOM association, no authenticated interaction/acquisition."
    },
    {
      "state": "implemented",
      "fr": "TS15 : population déclarée de fichiers fournis, limites natives et structure minimale ; aucun constat du serveur ni exhaustivité du site.",
      "en": "TS15: declared population of supplied files, native bounds and minimal structure; no server observation or site completeness."
    },
    {
      "state": "implemented",
      "fr": "TS33 : syntaxe et noms de vocabulaire sur les captures liées, messages API indexés séparés ; erreurs bloquantes conservées, aucune éligibilité actuelle garantie.",
      "en": "TS33: syntax/vocabulary names on bound captures, separate indexed API messages; blocking errors retained, no current eligibility guarantee."
    },
    {
      "state": "implemented",
      "fr": "TS32 : identifiants et références des exports JSON-LD fournis, registre préalable et revues liées ; cohérence du corpus, sans stabilité temporelle ni identité authentifiée.",
      "en": "TS32: IDs/references from supplied JSON-LD exports, prior registry and bound reviews; corpus coherence, no temporal stability or authenticated identity."
    },
    {
      "state": "implemented",
      "fr": "TS31 : source et DOM JSON-LD fournis recalculés, périmètre et contenu revus avec liaison aux graphes ; visibilité, faits et résultats enrichis non authentifiés.",
      "en": "TS31: recomputed supplied source/DOM JSON-LD, graph-bound scope/content reviews; visibility, facts and rich results are not authenticated."
    },
    {
      "state": "implemented",
      "fr": "TS36 : suivi documentaire baseline/J+1/J+7/J+30, API et logs fournis ; échéances futures NT, causalité et identité Google non établies.",
      "en": "TS36: supplied baseline/D+1/D+7/D+30 API/log follow-up; future stages inconclusive, causality and Google identity unestablished."
    },
    {
      "state": "implemented",
      "fr": "TS12 : comparaisons littérales API/HTTP/HTML/DOM prévus et revues fournies ; C documentaire, jamais canonical correcte, TS10 ou indexation. Rendu absent : NT sauf contradiction indépendante.",
      "en": "TS12: literal API/HTTP/HTML/planned DOM comparisons and supplied reviews; documentary C, never correct canonical, TS10 or indexing. Missing rendering: NT unless independent contradiction."
    },
    {
      "state": "implemented",
      "fr": "TS08 : sélection et objectifs préalables, JSON API natifs et revues/décisions fournies ; dossier qualifié seulement, aucun état live ou verdict TS12.",
      "en": "TS08: prior selection/objectives, native API JSON and supplied reviews/decisions; documentation only, no live state or TS12 verdict."
    },
    {
      "state": "implemented",
      "fr": "TS01-A02 : identity_reader html-tree-markers-v1 préalable, segments parsés attribués et deux hypothèses globales. CRLF/CR bruts deviennent LF ; critères littéraux inchangés. Ni visibilité ni navigateur observés. Ancien lecteur et priorités URL/empreinte/stabilité conservés ; Node 24 requis pour cette seule branche, sans repli.",
      "en": "TS01-A02: prior html-tree-markers-v1 identity_reader, attributed parsed segments and two whole-document hypotheses. Raw CRLF/CR become LF; literal criteria unchanged. No visibility or browser observation. Historical reader and URL/hash/stability precedence retained; Node 24 required for this branch, without fallback."
    },
    {
      "state": "implemented",
      "fr": "TS39 : matrice/configuration revues, signaux natifs TS07/TS10 et revues sémantiques, contextes et cache liés aux preuves fournies. Aucune région, visite Googlebot ou production authentifiée.",
      "en": "TS39: reviewed matrix/configuration, native TS07/TS10 signals and semantic reviews, context/cache tied to supplied evidence. No authenticated geography, Googlebot visit or production."
    },
    {
      "state": "implemented",
      "fr": "TS41 : plan préalable, sorties natives recalculées, journal et réaction aux échecs/inconnues. C qualifie le dispositif déclaré ; les défauts SEO restent visibles. Aucune commande fournie exécutée ni CI distante authentifiée.",
      "en": "TS41: prior plan, recalculated native outputs, journal and failure/unknown response. C qualifies the declared process; SEO defects stay visible. No supplied command executed or remote CI authenticated."
    },
    {
      "state": "implemented",
      "fr": "TS43 : client de test documenté, réponse prévue, journaux JSONL natifs et corrélation revue. Un refus prévu peut être cohérent ; aucune identité, visite ou accessibilité réelle de l’opérateur établie.",
      "en": "TS43: documented test client, planned response, native JSONL logs and reviewed correlation. An expected denial can conform; no actual operator identity, visit or access established."
    },
    {
      "state": "implemented",
      "fr": "TS42 : usages documentés, décisions du responsable et arbitrages fournis ; comparaison robots bornée sur la représentation du client. Aucun agent réel ni respect des règles par un opérateur établi.",
      "en": "TS42: documented purposes, supplied owner decisions and tradeoffs; bounded robots comparison on the client representation. No actual agent or operator compliance established."
    },
    {
      "state": "implemented",
      "fr": "TS34/TS35 : imports CrUX et Lighthouse distincts, valeurs et classes conservées ; C décrit la documentation, jamais une garantie de bonnes performances. Revues fournies sans authentification ; aucune collecte.",
      "en": "TS34/TS35: separate CrUX and Lighthouse imports with retained values/classes; C describes documentation, never a guarantee of good performance. Supplied reviews are not authenticated; no collection."
    },
    {
      "state": "implemented",
      "fr": "TS07-A01/A03 : profil préalable google-preview-intent-v1, intervalles de permission texte/image/vidéo, contradictions et inconnues conservées. Aucun affichage Google ou usage de contenu déduit.",
      "en": "TS07-A01/A03: prior google-preview-intent-v1, text/image/video permission intervals, retained contradictions and unknowns. No inferred Google display or content usage."
    },
    {
      "state": "implemented",
      "fr": "TS10-A01/A02 : http-link-context-v1 préalable, premier rel, contexte anchor attribué et inconnues conservées ; destination comparée littéralement. Ancien lecteur inchangé ; aucun choix Google déduit.",
      "en": "TS10-A01/A02: prior http-link-context-v1, first rel, attributed anchor context and retained unknowns; literal destination comparison. Historical reader unchanged; no inferred Google choice."
    },
    {
      "state": "implemented",
      "fr": "TS10-A04 : profils source préalables html-tree-links-v1/v2, liens HTML a/area attribués, base conditionnelle et URL sérialisées. Convergence dans une famille déclarée, pas présence ou suffisance du maillage ; v2 rend les href dépendants indéterminés sous première base non analysable ; rendu antérieur inchangé.",
      "en": "TS10-A04: prior html-tree-links-v1/v2 source profiles, attributed HTML a/area, conditional base and serialized URLs. Declared-family convergence, not link presence or sufficiency; v2 keeps dependent hrefs unknown under an unparseable first base; earlier rendered readers unchanged."
    },
    {
      "state": "implemented",
      "fr": "TS10-A01/A02 : lecteur source canonical préalable, positions et hypothèses attribuées ; rendu/revue toujours nécessaires.",
      "en": "TS10-A01/A02: prior canonical source reader with attributed positions/hypotheses; rendering/reviews remain required."
    },
    {
      "state": "implemented",
      "fr": "TS07 : source_reader html-tree-directives-v1 préalable, deux hypothèses statiques et métadonnées attribuées aux octets ; Node 24 facultatif requis pour ce profil, aucun repli. Rendu et revues distincts.",
      "en": "TS07: prior html-tree-directives-v1 source_reader, two static hypotheses with byte-attributed metadata; optional Node 24 required for this profile, no fallback. Rendering and reviews remain separate."
    },
    {
      "state": "implemented",
      "fr": "TS10-A03 : lecteur sitemap-locations-v1 préalable ; loc de pages distincts des annotations langues/images conservées sans évaluation. Profil historique inchangé, extensions inconnues indéterminées.",
      "en": "TS10-A03: prior sitemap-locations-v1 reader; page loc distinct from retained, unassessed language/image annotations. Legacy profile unchanged; unknown extensions inconclusive."
    },
    {
      "state": "implemented",
      "fr": "Profil robots google-robotstxt-fields-v2 : registre fermé de champs hors portée accès, valeurs conservées ; anciens profils inchangés, autres champs indéterminés.",
      "en": "Robots profile google-robotstxt-fields-v2: closed registry of fields outside access scope, retained values; old profiles unchanged, other fields inconclusive."
    },
    {
      "state": "implemented",
      "fr": "TS04 : directive_crawler préalable distingue le groupe Googlebot et le client HTTP réel ; les refus HTTP restent propres au client observé, sans accès Googlebot déduit.",
      "en": "TS04: prior directive_crawler separates the Googlebot group from the actual HTTP client; HTTP denials concern the observed client, without inferring Googlebot access."
    },
    {
      "state": "implemented",
      "fr": "TS10 : attributs ordinaires source et DOM structurés classés en commun ; modificateurs, namespaces et attributs inconnus indéterminés. DOM sérialisé historique inchangé.",
      "en": "TS10: shared source/structured canonical attribute classification; modifiers, namespaces and unknown attributes inconclusive. Historical serialized DOM unchanged."
    },
    {
      "state": "implemented",
      "fr": "TS07/TS10 : lecteur DOM structuré préalable, arbre complet, provenance fournie, sans authentification de navigation. Limites source et revues conservées.",
      "en": "TS07/TS10: predeclared structured DOM reader, complete tree and supplied attribution, without navigation authentication. Source limits and reviews retained."
    },
    {
      "state": "implemented",
      "fr": "TS04 : matrice robots préalable, ressources nécessaires, revues fournies et lecteur partagé TS07. Profils bornés explicites ; anciennes entrées TS07 sous profil historique fixe.",
      "en": "TS04: prior robots matrix, required resources, supplied reviews and shared TS07 reader. Explicit bounded profiles; legacy TS07 inputs use a fixed historical profile."
    },
    {
      "state": "implemented",
      "fr": "Octets HTTP exacts en entrée v2 ; lecture des anciennes entrées UTF-8 v1.",
      "en": "Exact HTTP bytes in input v2; legacy UTF-8 input v1 retained."
    },
    {
      "state": "implemented",
      "fr": "HTTP/1.1 chunked borné, gzip simple et deflate enveloppé zlib ; SHA-256 après décodage, sans normalisation.",
      "en": "Bounded HTTP/1.1 chunked, single gzip member and zlib-wrapped deflate; SHA-256 after decoding, without normalization."
    },
    {
      "state": "implemented",
      "fr": "Rapport hors ligne, preuves originales et comparaison ; inconnues et échecs conservés.",
      "en": "Offline report, original evidence and comparison; unknowns and failures retained."
    },
    {
      "state": "implemented",
      "fr": "TS01 : extracteur de texte source distinct de TS07 ; éléments ordinaires équilibrés, références de caractères, titre RCDATA et icônes SVG bornées sans texte.",
      "en": "TS01: source-text extractor separate from TS07; balanced ordinary elements, character references, RCDATA title and bounded text-free SVG icons."
    },
    {
      "state": "deferred",
      "fr": "Brotli, gzip multimembre, extensions/trailers chunked, HTTP/2 brut : indéterminés.",
      "en": "Brotli, multi-member gzip, chunk extensions/trailers and raw HTTP/2: inconclusive."
    },
    {
      "state": "deferred",
      "fr": "Marqueurs : UTF-8 explicite et HTML borné seulement. Octets non UTF-8 conservés et empreintes comparables, sans extraction de texte implicite.",
      "en": "Markers: explicit UTF-8 and bounded HTML only. Non-UTF-8 bytes retained and hashes comparable, without implicit text extraction."
    },
    {
      "state": "implemented",
      "fr": "TS01 : select/option/optgroup et tableaux explicitement structurés ; aucune fermeture implicite ni réparation.",
      "en": "TS01: explicitly structured select/option/optgroup and tables; no implied closure or repair."
    },
    {
      "state": "deferred",
      "fr": "TS01 sans identity_reader : noscript/template/textarea non vides, texte SVG, MathML, select/table hors sous-ensemble, script échappé et HTML ambigu : extraction entière indéterminée. Le profil parsé distinct garde les erreurs rapportées, texte étranger non blanc, frames et intervalles non attribuables indéterminés.",
      "en": "TS01 without identity_reader: nonempty noscript/template/textarea, SVG text, MathML, unsupported select/table, escaped script and ambiguous HTML: whole extraction inconclusive. The distinct parsed profile keeps reported errors, nonblank foreign text, frames and unattributable spans inconclusive."
    },
    {
      "state": "out-of-scope",
      "fr": "Cet adaptateur ne collecte pas, ne rend pas JavaScript et ne produit aucune revue humaine manquante.",
      "en": "This adapter does not collect, render JavaScript or supply missing human reviews."
    },
    {
      "state": "out-of-scope",
      "fr": "Pas de preuve de Googlebot réel, indexation, classement ou conformité globale.",
      "en": "No evidence of actual Googlebot behavior, indexing, ranking or global conformity."
    }
  ],
  "network_requests_by_adapter": 0,
  "coverage": {
    "TS04": {
      "requested_rules": [
        "TS04-A01",
        "TS04-A02"
      ],
      "omitted_rules": [],
      "requested_pairs": 2,
      "required_pairs": 2
    }
  },
  "limitations": "Reference interpreter only. Supplied intent/reviews are not authenticated; no collection, JS execution, engine observation or global conformity."
}
computed-results validator-outputassessment.json
Description conservée
Computed reference outcomes, not normative conformance expectations; assessment performed at import time.
Cibles déclarées
https://atelier.example/
SHA-256
801f34c408582f077f218500cd49acfad2a3bde889a8aee1c580833a13251998
Date d’observation déclarée
2026-10-25T19:08:00.227309+00:00
Accès déclaré
synthetic
Télécharger les octets d’origine ↓
Aperçu texte échappé
[
  {
    "rule_id": "TS04-A01",
    "target": "https://atelier.example/",
    "outcome": "pass",
    "reason": "pass — https://atelier.example/assets/app.js: attendu=allow, observé=allow; Longest normalized pattern; Allow wins equal specificity; profil=google-robotstxt-fields-v2; lignes=[[3, \"allow\", \"/assets/\"]]; champs relevés hors portée accès / fields outside access scope=[]; champs supplémentaires / additional fields=0; valeurs intégrales / complete values: retained robots response; registre / registry=google/robotstxt@22b355ff855419e6a3ff8ff09c0ad7fdb17116f9/reporting_robots.cc; directive_crawler=googlebot; policy applied only to HTTP client=TSEP-Public-Demo/2; actual Googlebot representation unobserved"
  },
  {
    "rule_id": "TS04-A02",
    "target": "https://atelier.example/",
    "outcome": "pass",
    "reason": "pass — https://atelier.example/assets/app.js: pass — Longest normalized pattern; Allow wins equal specificity; profil=google-robotstxt-fields-v2; lignes=[[3, \"allow\", \"/assets/\"]]; champs relevés hors portée accès / fields outside access scope=[]; champs supplémentaires / additional fields=0; valeurs intégrales / complete values: retained robots response; registre / registry=google/robotstxt@22b355ff855419e6a3ff8ff09c0ad7fdb17116f9/reporting_robots.cc; directive_crawler=googlebot; policy applied only to HTTP client=TSEP-Public-Demo/2; actual Googlebot representation unobserved; pass — Synthetic exercise: public JavaScript source, status 200; no login, CAPTCHA or interstitial in the retained response.; HTTP observations refer to declared client=TSEP-Public-Demo/2; actual Googlebot HTTP access unobserved"
  }
]
target-1-intent intentevidence/target-1-intent.json
Description conservée
Derived supplied record; latest-supplied-date; target observation date used for undated derived fields. Original fields unchanged; no missing evidence inferred.
Cibles déclarées
https://atelier.example/
SHA-256
ca4dbd63e8726529601e81518a4b94bd22fc326eb27a5c9c1da5718f85c16c04
Date d’observation déclarée
2026-10-25T09:10:00Z
Accès déclaré
synthetic
Télécharger les octets d’origine ↓
Aperçu texte échappé
{
  "target": "https://atelier.example/",
  "date_basis": "latest-supplied-date; target observation date used for undated derived fields",
  "record": {
    "intent": {
      "declared_at": "2026-10-25T08:50:00Z",
      "crawler": "TSEP-Public-Demo/2",
      "directive_crawler": "googlebot",
      "robots_policy": {
        "profile": "google-robotstxt-fields-v2",
        "product_token": "Googlebot"
      },
      "robots_plan": {
        "origin": "https://atelier.example/",
        "required_resources_basis": "The authored page loads /assets/app.js.",
        "resources": [
          {
            "url": "https://atelier.example/assets/app.js",
            "expected": "allow",
            "required": true,
            "expected_final_url": "https://atelier.example/assets/app.js",
            "terminal_statuses": [
              200
            ]
          }
        ]
      }
    },
    "context": {
      "id": "fictional-demo",
      "network": "none; authored synthetic evidence",
      "bounds": "declared example only; no network or browser execution",
      "tool": "authored-fixture",
      "tool_version": "2"
    }
  }
}
target-1-http httpevidence/target-1-http.json
Description conservée
Derived supplied record; latest-supplied-date; target observation date used for undated derived fields. Original fields unchanged; no missing evidence inferred.
Cibles déclarées
https://atelier.example/
SHA-256
620e76172ca7ceb7052821106f8923b8d2aa63d6d369dd7c99b8a6d13cc2fa48
Date d’observation déclarée
2026-10-25T09:12:00Z
Accès déclaré
synthetic
Télécharger les octets d’origine ↓
Aperçu texte échappé
{
  "target": "https://atelier.example/",
  "date_basis": "latest-supplied-date; target observation date used for undated derived fields",
  "record": {
    "documents": [
      {
        "url": "https://atelier.example/assets/app.js",
        "observed_at": "2026-10-25T09:10:00Z",
        "http": [
          {
            "url": "https://atelier.example/assets/app.js",
            "complete": true,
            "request": "GET /assets/app.js HTTP/1.1\r\nHost: atelier.example\r\nUser-Agent: TSEP-Public-Demo/2\r\n\r\n",
            "response": "HTTP/1.1 200 Synthetic\r\nContent-Type: application/javascript; charset=utf-8\r\nContent-Length: 51\r\n\r\ndocument.documentElement.dataset.atelier = \"ready\";"
          }
        ],
        "access_review": {
          "reviewer": "Atelier — fictional resource reviewer; no human reviewer",
          "observed_at": "2026-10-25T09:12:00Z",
          "reason": "Synthetic exercise: public JavaScript source, status 200; no login, CAPTCHA or interstitial in the retained response.",
          "provenance": "synthetic-exercise",
          "assistance": "Authored public demo; automated synthetic response",
          "examined_evidence": [
            {
              "path": "evidence/target-1-TS04-A02.json",
              "sha256": "35157bdb20644981c164facd82ab66a44146873f01535c60a6ad57777c89ebdd"
            }
          ],
          "workflow_input_sha256": "43567146dab80673a2784faedfc42352349b3377e3366f64805db45dd649e411",
          "outcome": "no-obstacle",
          "source_sha256": "16ebae55f4075719b8b3f50b19e819a602ff49c7f91a0f78fd3d981d940ef371"
        }
      }
    ],
    "robots": {
      "observed_at": "2026-10-25T09:10:00Z",
      "http": [
        {
          "url": "https://atelier.example/robots.txt",
          "complete": true,
          "request": "GET /robots.txt HTTP/1.1\r\nHost: atelier.example\r\nUser-Agent: TSEP-Public-Demo/2\r\n\r\n",
          "response": "HTTP/1.1 200 Synthetic\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Length: 56\r\n\r\nUser-agent: Googlebot\nDisallow: /admin/\nAllow: /assets/\n"
        }
      ]
    }
  }
}
target-1-html htmlevidence/target-1-html.json
Description conservée
Derived supplied record; latest-supplied-date; target observation date used for undated derived fields. Original fields unchanged; no missing evidence inferred.
Cibles déclarées
https://atelier.example/
SHA-256
35bab09332725be6e421afc0d81e22f2181db1e85f79ef3155b6618e2ca75cc7
Date d’observation déclarée
2026-10-25T09:10:00Z
Accès déclaré
synthetic
Télécharger les octets d’origine ↓
Aperçu texte échappé
{
  "target": "https://atelier.example/",
  "date_basis": "latest-supplied-date; target observation date used for undated derived fields",
  "record": {
    "source_responses": [
      {
        "url": "https://atelier.example/assets/app.js",
        "complete": true,
        "response": "HTTP/1.1 200 Synthetic\r\nContent-Type: application/javascript; charset=utf-8\r\nContent-Length: 51\r\n\r\ndocument.documentElement.dataset.atelier = \"ready\";"
      }
    ],
    "interpretation": "Supplied source responses with media types and bodies; no DOM or HTML inferred."
  }
}
target-1-robots robotsevidence/target-1-robots.json
Description conservée
Derived supplied record; latest-supplied-date; target observation date used for undated derived fields. Original fields unchanged; no missing evidence inferred.
Cibles déclarées
https://atelier.example/
SHA-256
71153da7cbbc98b754bed4f334413638a7955e53a4aef9ba7092d997381f4b4c
Date d’observation déclarée
2026-10-25T09:10:00Z
Accès déclaré
synthetic
Télécharger les octets d’origine ↓
Aperçu texte échappé
{
  "target": "https://atelier.example/",
  "date_basis": "latest-supplied-date; target observation date used for undated derived fields",
  "record": {
    "observed_at": "2026-10-25T09:10:00Z",
    "http": [
      {
        "url": "https://atelier.example/robots.txt",
        "complete": true,
        "request": "GET /robots.txt HTTP/1.1\r\nHost: atelier.example\r\nUser-Agent: TSEP-Public-Demo/2\r\n\r\n",
        "response": "HTTP/1.1 200 Synthetic\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Length: 56\r\n\r\nUser-agent: Googlebot\nDisallow: /admin/\nAllow: /assets/\n"
      }
    ]
  }
}

Périmètre et méthode

Méthode de sélection

Same explicit input population; new supplied review, not a new capture

Profil
custom
Exclusions déclarées
No authentication of reviewer identity or truth; unsupported/missing evidence remains unresolved

Évaluateur déclaré

Évaluateur déclaré
Atelier — fictional resource reviewer; no human reviewer
Mode d’évaluation
semiAuto
Contrôles sélectionnés
TS04

Identité du rapport

Outil déclaré
TSEP offline capture adapter 50
Émission du rapport
2026-10-25T19:08:00.227309+00:00
Protocole
0.3.0-draft.8
SHA-256 du rapport JSON
b647726ec9e6a9a303177e7a253a40cd762463174d63713c94b132edaffff3fe
Télécharger le rapport JSON original ↓