{
  "package": {
    "name": "LegiPro Bureau demo pack",
    "generatedAt": "2026-06-04T03:20:00Z",
    "applicableDate": "2026-06-04",
    "displayApplicableDate": "04/06/2026"
  },
  "routes": {
    "clean": {
      "search": "bureau.html",
      "assistant": "bureau-assistant.html",
      "api": "bureau-api.html",
      "about": "bureau-about.html",
      "guide": "bureau-guide.html"
    }
  },
  "selectedScope": [
    "artifact",
    "sources",
    "memo",
    "temporal"
  ],
  "query": "TVA sur travaux mixtes dans un logement de plus de deux ans avec attestation incompl\u00e8te",
  "temporal": {
    "applicableDate": "2026-06-04",
    "display": "04/06/2026"
  },
  "artifact": {
    "id": "bofip-tva-btp-attestation",
    "title": "Attestation et ventilation des travaux BTP",
    "summary": "LegiPro rapproche les corpus TVA BTP et doctrine g\u00e9n\u00e9rale pour isoler les conditions utiles avant de pr\u00e9parer la r\u00e9ponse client.",
    "data": [
      "Contr\u00f4ler si les travaux entrent dans le champ r\u00e9novation, am\u00e9lioration ou entretien.",
      "Relier chaque ligne de facture au taux appliqu\u00e9 et aux exclusions possibles.",
      "Conserver l'attestation ou la mention requise avec le dossier de travail."
    ],
    "checks": [
      "Demander une facture d\u00e9taill\u00e9e si le libell\u00e9 global ne permet pas la ventilation.",
      "Comparer les travaux exclus au devis et aux \u00e9quipements fournis.",
      "Isoler les lignes mixtes dans le dossier de travail."
    ]
  },
  "passages": [
    {
      "passageId": "summary",
      "label": "Résumé",
      "text": "LegiPro rapproche les corpus TVA BTP et doctrine générale pour isoler les conditions utiles avant de préparer la réponse client.",
      "href": "https://legipro.fr/bureau.html?artifact=bofip-tva-btp-attestation&passage=summary&asOf=2026-06-04"
    },
    {
      "passageId": "data-1",
      "label": "Donnée 2",
      "text": "Relier chaque ligne de facture au taux appliqué et aux exclusions possibles.",
      "href": "https://legipro.fr/bureau.html?artifact=bofip-tva-btp-attestation&passage=data-1&asOf=2026-06-04"
    },
    {
      "passageId": "check-0",
      "label": "Point clé 1",
      "text": "Demander une facture détaillée si le libellé global ne permet pas la ventilation.",
      "href": "https://legipro.fr/bureau.html?artifact=bofip-tva-btp-attestation&passage=check-0&asOf=2026-06-04"
    }
  ],
  "source": {
    "title": "BOFiP TVA BTP",
    "hierarchyType": "Doctrine administrative",
    "officialUrl": "https://bofip.impots.gouv.fr/"
  },
  "matchedTerms": [
    "tva",
    "travaux",
    "attestation",
    "logement"
  ],
  "conversation": {
    "question": "Pr\u00e9pare une r\u00e9ponse TVA sur des travaux mixtes dans un logement de plus de deux ans avec attestation incompl\u00e8te.",
    "response": "R\u00e9ponse pr\u00e9par\u00e9e \u00e0 partir de BOFiP TVA BTP. LegiPro rapproche les corpus TVA BTP et doctrine g\u00e9n\u00e9rale pour isoler les conditions utiles avant de pr\u00e9parer la r\u00e9ponse client."
  },
  "memo": {
    "title": "NOTE DE TRAVAIL PREPARATOIRE",
    "text": "Point de contrôle prioritaire : demander une facture détaillée si le libellé global ne permet pas la ventilation."
  },
  "reviewBoundary": "Support de verification et de revue, pas un avis comptable; repere REST / GraphQL / MCP conserve.",
  "glossaryTerms": [
    {
      "term": "CGI",
      "definition": "Code g\u00e9n\u00e9ral des imp\u00f4ts."
    },
    {
      "term": "BOFiP",
      "definition": "Base officielle des finances publiques."
    },
    {
      "term": "BOSS",
      "definition": "Bulletin officiel de la s\u00e9curit\u00e9 sociale."
    },
    {
      "term": "ANC",
      "definition": "Autorit\u00e9 des normes comptables."
    },
    {
      "term": "PCG",
      "definition": "Plan comptable g\u00e9n\u00e9ral."
    },
    {
      "term": "PPF",
      "definition": "Portail public de facturation, rep\u00e8re \u00e0 v\u00e9rifier selon calendrier actif."
    },
    {
      "term": "PDP",
      "definition": "Plateforme de d\u00e9mat\u00e9rialisation partenaire, rep\u00e8re \u00e0 v\u00e9rifier."
    },
    {
      "term": "MCP",
      "definition": "Connecteur agent LegiPro born\u00e9 par les m\u00eames droits que REST et GraphQL."
    },
    {
      "term": "FEC",
      "definition": "Fichier des \u00e9critures comptables ; import pr\u00e9vu, non activ\u00e9 ici."
    },
    {
      "term": "Factur-X",
      "definition": "Format de facture \u00e9lectronique hybride ; import pr\u00e9vu, non activ\u00e9 ici."
    },
    {
      "term": "CA3",
      "definition": "D\u00e9claration de TVA ; correspondance affich\u00e9e \u00e0 titre indicatif."
    },
    {
      "term": "DSCG",
      "definition": "Dipl\u00f4me sup\u00e9rieur de comptabilit\u00e9 et de gestion."
    },
    {
      "term": "DEC",
      "definition": "Dipl\u00f4me d'expertise comptable."
    },
    {
      "term": "RCP",
      "definition": "Responsabilit\u00e9 civile professionnelle."
    }
  ],
  "trainingMarkers": [
    {
      "context": "DSCG UE4 / fiscalit\u00e9",
      "examples": [
        "TVA travaux",
        "CA3",
        "facturation \u00e9lectronique"
      ]
    },
    {
      "context": "Master CCA / comptabilit\u00e9 approfondie",
      "examples": [
        "PCG / ANC",
        "charge ou immobilisation",
        "documentation de dossier"
      ]
    },
    {
      "context": "Stage DEC / revue cabinet",
      "examples": [
        "historique de validation",
        "position cabinet",
        "checklist avant export"
      ]
    }
  ],
  "uiPrototypeFields": [
    {
      "feature": "Passages cités et liens directs",
      "field": "artifactId + passageId + asOf + passages[].href",
      "status": "Prototype UI"
    },
    {
      "feature": "Historique de validation",
      "field": "dossierNotes.validationHistory[]",
      "status": "Prototype UI"
    },
    {
      "feature": "Checklist m\u00e9thodologique avant export",
      "field": "exportChecklist[]",
      "status": "Prototype UI"
    },
    {
      "feature": "Brouillon de rescrit",
      "field": "rescritDraft",
      "status": "Prototype UI"
    },
    {
      "feature": "Correspondance CA3 / liasse",
      "field": "declarationMapping[]",
      "status": "Prototype UI"
    }
  ],
  "backendCorpus": [
    "PCG / ANC",
    "URSSAF",
    "BOFiP TVA g\u00e9n\u00e9rale",
    "BOFiP TVA BTP",
    "BOFiP TVA immobilier",
    "BOFiP CHR / restauration",
    "BOFiP IS/BIC prioritaire",
    "CGI TVA",
    "CGI hors TVA",
    "Code de commerce",
    "R\u00e9f\u00e9rentiels sectoriels internes",
    "Facturation \u00e9lectronique / PPF-PDP",
    "Donn\u00e9es publiques de comparaison sectorielle",
    "Revue crois\u00e9e \u00e9picerie / commerce alimentaire"
  ],
  "changelogSinceLastPdfExport": [
    "Passages cit\u00e9s et liens directs termin\u00e9s : ancres stables, surlignage hover/focus/:target, liens profonds publics, bouton Copier le lien et reprise dans les exports dynamiques.",
    "Accueil legipro.fr simplifi\u00e9 en image plein \u00e9cran, avec bouton Acc\u00e9der vers Bureau.",
    "Routes propres publi\u00e9es pour Recherche, Assistant IA, API, Corpus et Guide.",
    "Interface Bureau consolid\u00e9e : shell sobre, citations vers passages d'artefact, mobile, export et FAQ.",
    "Exports PDF, Markdown, JSON et HTML harmonis\u00e9s sous le nom LegiPro-Bureau-demo-pack.",
    "REST, GraphQL et MCP document\u00e9s, actifs et test\u00e9s avec bearer, co\u00fbt/quota et int\u00e9gration produit.",
    "PDF mis \u00e0 jour : page d'accueil en premi\u00e8re page, puis captures Recherche, Assistant IA et API avant le dossier d\u00e9taill\u00e9.",
    "Copie fran\u00e7aise relue avec Mistral Large, puis corrig\u00e9e manuellement pour pr\u00e9server les termes techniques et les statuts v\u00e9rifi\u00e9s.",
    "Documentation longue ajout\u00e9e : r\u00e9f\u00e9rence REST, GraphQL, MCP, modes de recherche, erreurs, exports et exemples UI.",
    "R\u00e9f\u00e9rence API exhaustive ajout\u00e9e au PDF : jetons de d\u00e9monstration, en-t\u00eates, REST, GraphQL, MCP, Python, Node.js et gestion temporelle.",
    "Pages visuelles ajout\u00e9es au PDF pour montrer la pr\u00e9sentation question/r\u00e9ponse et la gestion temporelle directement sur un texte.",
    "Meilisearch actif sur 59 660 documents avec r\u00e9glages anti-mush et r\u00e9f\u00e9rences num\u00e9riques prot\u00e9g\u00e9es.",
    "Indexation plein corpus valid\u00e9e avec re\u00e7us, m\u00e9tadonn\u00e9es RAG/graphe/convoyeur et tests r\u00e9ussis.",
    "Watcher corpus dry-run ajout\u00e9 pour 14 corpus, changelog quotidien et \u00e9v\u00e9nements JSONL.",
    "Glossaire interactif termin\u00e9 : CGI, BOFiP, BOSS, ANC, PCG, PPF, PDP, MCP, FEC, Factur-X, CA3, DSCG, DEC et RCP sont visibles dans le Guide, Recherche et Assistant IA comme aide d'orientation.",
    "Rep\u00e8res formation termin\u00e9s : les exemples TVA, PCG/ANC, facturation \u00e9lectronique et revue de dossier sont reli\u00e9s aux contextes DSCG, Master CCA et stage DEC.",
    "Historique de validation termin\u00e9 : les \u00e9tats pr\u00e9par\u00e9, revu et valid\u00e9 avec personne et date sont visibles dans le document, l'Assistant IA et les exports dynamiques.",
    "Checklist m\u00e9thodologique avant export termin\u00e9e : six contr\u00f4les non bloquants guident la v\u00e9rification source, date, pi\u00e8ces, ventilation, position cabinet et visa/revue.",
    "Brouillon de rescrit termin\u00e9 : l'Assistant IA produit une trame de travail structur\u00e9e sans d\u00e9p\u00f4t automatique, sans transmission DGFiP et sans opinion finale.",
    "Correspondance CA3 / liasse termin\u00e9e : les dossiers TVA affichent un bloc d\u00e9claratif indicatif \u00e0 v\u00e9rifier avant report.",
    "Roadmap limit\u00e9e aux fonctions restant \u00e0 pr\u00e9parer : rescrits fiscaux, jurisprudence, widget de taux TVA, BOSS/URSSAF complet, mobile s\u00e9quentiel, contr\u00f4les SIREN/SIRET, synonymes m\u00e9tier et recherche vectorielle."
  ],
  "limitation": "Dossier de travail pr\u00e9paratoire \u00e0 rapprocher des pi\u00e8ces, des sources ouvertes et de la position finale retenue par le cabinet.",
  "uiExamples": [
    {
      "question": "TVA sur travaux d'isolation dans un logement de plus de deux ans",
      "expectedResponse": "\u00c9tudier le taux r\u00e9duit si le local est affect\u00e9 \u00e0 l'habitation, achev\u00e9 depuis plus de deux ans, et si les travaux ne rel\u00e8vent pas d'une exclusion. Demander l'attestation ou la mention client et v\u00e9rifier la ventilation de la facture.",
      "sourceOrAction": "BOFiP TVA BTP, CGI art. 279-0 bis, pr\u00e9parer avec l'assistant IA."
    },
    {
      "question": "Une r\u00e9paration de toiture doit-elle passer en charge ou en immobilisation ?",
      "expectedResponse": "Qualifier selon l'effet \u00e9conomique : entretien courant en charge, am\u00e9lioration ou prolongation significative de dur\u00e9e d'usage en immobilisation. Afficher un sch\u00e9ma d'imputation indicatif \u00e0 v\u00e9rifier.",
      "sourceOrAction": "PCG / ANC, comptes 615200 ou immobilisations selon le dossier."
    },
    {
      "question": "Facture \u00e9lectronique : quelles dates et quels contr\u00f4les pour une PME ?",
      "expectedResponse": "Restituer les jalons applicables et proposer les pi\u00e8ces \u00e0 v\u00e9rifier : statut de l'entreprise, flux concern\u00e9s, format et plateforme.",
      "sourceOrAction": "Corpus Facturation \u00e9lectronique / PPF-PDP, mode balanced."
    },
    {
      "question": "Frais professionnels URSSAF pour un salari\u00e9 en d\u00e9placement",
      "expectedResponse": "Demander le type de frais, le mode de remboursement, le lieu, les justificatifs et la p\u00e9riode si la requ\u00eate est incompl\u00e8te.",
      "sourceOrAction": "URSSAF / BOSS lorsque le connecteur amont est disponible, suggestions de d\u00e9tails manquants."
    },
    {
      "question": "TVA restauration sur vente \u00e0 emporter et consommation sur place",
      "expectedResponse": "Distinguer les lignes de vente, conserver les sources ouvertes et demander la ventilation si la facture agr\u00e8ge plusieurs natures de prestations.",
      "sourceOrAction": "BOFiP CHR / restauration, export du dossier avec sources li\u00e9es."
    }
  ],
  "apiReference": {
    "baseUrl": "https://legipro.fr",
    "auth": "Authorization: Bearer <token>",
    "interfaces": {
      "rest": {
        "status": "active",
        "basePath": "/v0"
      },
      "graphql": {
        "status": "active",
        "path": "/graphql"
      },
      "mcp": {
        "status": "active",
        "path": "/mcp"
      }
    },
    "search": {
      "engine": "meilisearch",
      "status": "active",
      "indexedDocumentCount": 59660,
      "semanticSearch": "planned",
      "modes": [
        "balanced",
        "exact",
        "explore"
      ],
      "strictReferencesDefault": true
    },
    "restEndpoints": [
      {
        "method": "GET",
        "path": "/v0/health",
        "usage": "Service status"
      },
      {
        "method": "GET",
        "path": "/v0/manifest",
        "usage": "Corpus versions and manifest date"
      },
      {
        "method": "GET",
        "path": "/v0/search",
        "usage": "Search full LegiPro index",
        "params": [
          "q",
          "limit",
          "mode",
          "strictReferences"
        ]
      },
      {
        "method": "GET",
        "path": "/v0/search/health",
        "usage": "Search adapter status"
      },
      {
        "method": "GET",
        "path": "/v0/accounts/2026/search",
        "usage": "Search PCG accounts"
      },
      {
        "method": "GET",
        "path": "/v0/accounts/2026/{compte}",
        "usage": "Open a PCG account"
      },
      {
        "method": "GET",
        "path": "/v0/me",
        "usage": "Active token context"
      },
      {
        "method": "GET",
        "path": "/v0/me/api-keys",
        "usage": "Visible key metadata without secrets"
      },
      {
        "method": "GET",
        "path": "/v0/usage",
        "usage": "Cost units for current window"
      }
    ],
    "graphqlExamples": [
      "manifest + search",
      "artifact + assistantPrepare"
    ],
    "mcpTools": [
      "list_corpus",
      "get_manifest",
      "search_sources",
      "get_artifact",
      "ask_assistant",
      "export_bundle"
    ],
    "uiPrototypeFields": [
      "artifactId + passageId + asOf + passages[].href",
      "dossierNotes.validationHistory[]",
      "exportChecklist[]",
      "rescritDraft",
      "declarationMapping[]"
    ],
    "exportFormats": [
      "PDF",
      "Markdown",
      "JSON",
      "HTML"
    ],
    "errorCodes": [
      401,
      403,
      404,
      413,
      429
    ],
    "demoTokens": [
      {
        "token": "lp_demo_public_read_2026_11_01",
        "usage": "Lecture de contexte, manifest et endpoints de d\u00e9couverte",
        "scope": "read-only"
      },
      {
        "token": "lp_demo_public_search_2026_11_01",
        "usage": "Recherche REST et GraphQL sur l'index de d\u00e9monstration",
        "scope": "search"
      },
      {
        "token": "lp_demo_public_assistant_2026_11_01",
        "usage": "Assistant, MCP et exports de d\u00e9monstration",
        "scope": "assistant+mcp"
      }
    ],
    "commonHeaders": [
      "Authorization",
      "X-LegiPro-Workspace",
      "X-LegiPro-Request-Id",
      "X-LegiPro-Cost-Units",
      "X-RateLimit-Limit",
      "X-RateLimit-Remaining"
    ],
    "quickstarts": {
      "restHealth": "curl -sS \"https://legipro.fr/v0/health\" -H \"Authorization: Bearer lp_demo_public_search_2026_11_01\"",
      "restManifest": "curl -sS \"https://legipro.fr/v0/manifest\" -H \"Authorization: Bearer lp_demo_public_search_2026_11_01\"",
      "restSearch": "curl -sS \"https://legipro.fr/v0/search?q=banque&limit=5&mode=balanced&strictReferences=true\" -H \"Authorization: Bearer lp_demo_public_search_2026_11_01\"",
      "restExactAccount": "curl -sS \"https://legipro.fr/v0/accounts/2026/search?q=615200&mode=exact&strictReferences=true\" -H \"Authorization: Bearer lp_demo_public_search_2026_11_01\"",
      "graphqlSearch": "POST /graphql with manifest + search(query, limit, mode, strictReferences) fields",
      "graphqlAssistant": "assistantPrepare(artifactId, question, facts) with answer, missingDetails and citations",
      "mcpInitialize": "POST /mcp JSON-RPC initialize with assistant demo token",
      "mcpSearchSources": "tools/call search_sources with query, mode, strictReferences and limit",
      "pythonGraphql": "requests.post(\"https://legipro.fr/graphql\", headers={Authorization, Content-Type}, json={query, variables})",
      "nodeAssistant": "fetch(\"https://legipro.fr/graphql\", {method:\"POST\", headers, body: JSON.stringify({query, variables})})"
    },
    "productEmbedding": {
      "rest": "Boutons, recherches simples et automatisations de logiciel m\u00e9tier.",
      "graphql": "Espaces de travail riches qui demandent r\u00e9sultats, artefacts, passages, citations et contexte temporel en une requ\u00eate.",
      "mcp": "Agents internes en lecture born\u00e9e sur les m\u00eames droits, quotas, sources et dates applicables."
    }
  },
  "temporalManagement": {
    "uiPrinciple": "La date applicable est visible dans l'interface et conserv\u00e9e dans chaque export.",
    "defaultApplicableDate": "2026-06-04",
    "locations": [
      {
        "surface": "Recherche",
        "behavior": "Mode avanc\u00e9 avec date applicable; version active du jour par d\u00e9faut.",
        "trace": [
          "asOf",
          "selected_corpus",
          "search_mode",
          "strictReferences",
          "opened_references"
        ]
      },
      {
        "surface": "Document ouvert",
        "behavior": "En-t\u00eate d'artefact avec version applicable au document consult\u00e9.",
        "trace": [
          "artifact_id",
          "source",
          "provenance_hash_or_receipt",
          "asOf"
        ]
      },
      {
        "surface": "Assistant IA",
        "behavior": "R\u00e9ponse pr\u00e9par\u00e9e \u00e0 partir de l'artefact ouvert et de sa date; d\u00e9tails manquants propos\u00e9s avant conclusion.",
        "trace": [
          "question",
          "facts",
          "missingDetails",
          "citations",
          "passage_ids"
        ]
      },
      {
        "surface": "Export",
        "behavior": "PDF, Markdown, JSON et HTML conservent date, sources, citations et p\u00e9rim\u00e8tre choisi.",
        "trace": [
          "bundle_scope",
          "asOf",
          "sources",
          "memo",
          "selected_conversation"
        ]
      },
      {
        "surface": "API",
        "behavior": "REST, GraphQL et MCP acceptent le contexte temporel via asOf lorsque le client veut rejouer une recherche.",
        "trace": [
          "manifest",
          "source_watch_events",
          "index_receipts",
          "corpus_changelog"
        ]
      }
    ],
    "example": "GET /v0/search?q=279-0%20bis&asOf=2026-06-04&mode=exact&strictReferences=true"
  },
  "stakeholderRoadmap": {
    "completedItemsMovedToChangelog": [
      "Passages cit\u00e9s et liens directs",
      "Glossaire interactif",
      "Rep\u00e8res DSCG / DEC",
      "Historique de validation",
      "Checklist m\u00e9thodologique avant export",
      "Assistant de brouillon de rescrit",
      "Correspondance CA3 / liasse"
    ],
    "remainingRoadmapItems": [
      "Import FEC / Factur-X",
      "Diff r\u00e9glementaire et risque",
      "BOSS / URSSAF complet",
      "Rescrits fiscaux",
      "Jurisprudence et pr\u00e9c\u00e9dents",
      "Widget de taux TVA",
      "Flux mobile s\u00e9quentiel complet",
      "SIREN / SIRET non-confondus",
      "Synonymes m\u00e9tier CGI / BOFiP",
      "Recherche s\u00e9mantique/vectorielle"
    ],
    "claimBoundary": "La Roadmap ne liste plus les items impl\u00e9ment\u00e9s ; elle conserve seulement les connecteurs, contr\u00f4les ou automatisations restant \u00e0 pr\u00e9parer ou \u00e0 v\u00e9rifier."
  },
  "visualPdfPages": [
    {
      "title": "Pr\u00e9sentation visuelle des questions / r\u00e9ponses",
      "shows": [
        "question utilisateur en bloc inset",
        "r\u00e9ponse assistant \u00e9ditoriale",
        "liens de sources",
        "actions copier/exporter/voir les sources"
      ],
      "purpose": "Rendre visible la mani\u00e8re dont l'assistant pr\u00e9sente une r\u00e9ponse sourc\u00e9e dans le PDF."
    },
    {
      "title": "Gestion temporelle visible sur un texte",
      "shows": [
        "contr\u00f4le de date applicable",
        "Version applicable au 04/06/2026 dans l\u2019en-t\u00eate du texte",
        "r\u00e9f\u00e9rence stricte 279-0 bis",
        "propagation asOf vers REST/GraphQL/MCP et exports"
      ],
      "purpose": "Montrer que la temporalit\u00e9 est visible pour l'utilisateur et pas seulement dans l'API."
    }
  ]
}
