> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stratta.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Outils de lecture

> Les 8 outils que Claude utilise pour naviguer et lire les normes dans votre espace de travail.

Ces outils permettent à Claude d'interroger les normes de votre espace de travail. Vous ne les
appelez pas à la main — c'est Claude qui le fait, en réponse à vos questions — mais les connaître
vous aide à comprendre et vérifier les réponses. Chacun renvoie du JSON (sauf `get_figure`, qui
renvoie aussi une image inline).

<Note>
  `get_methodology` est le **premier appel obligatoire**. Les autres suivent le flux de
  navigation : `list_norms` → `get_toc` → `get_subtree` → `get_section`, avec `search_in_norm`,
  `get_cross_refs` et `get_figure` utilisés au besoin.
</Note>

***

## get\_methodology

Premier appel obligatoire pour répondre à toute question technique sur les normes suisses. Renvoie
la persona canonique, le workflow de navigation, les indices de méta-routage (quelles normes SIA
couvrent quels sujets), les règles de navigation dans l'arbre, le format de citation et les règles
de réponse. Claude adopte ces règles pour le reste de la consultation.

<ParamField path="norm" type="string">
  Optionnel. Le code de la norme sur laquelle porte la question de l'utilisateur, s'il est déjà
  connu. Utilisé pour cadrer les indices de méthodologie (actuellement informatif).
</ParamField>

<ResponseField name="result" type="object">
  Persona, workflow, indices de routage et règles de citation pour la session.
</ResponseField>

***

## list\_norms

Liste toutes les normes actuellement disponibles dans votre espace de travail.

<ResponseField name="norms" type="array">
  Chaque entrée possède `code`, `year`, `title` et `language`.
</ResponseField>

```text Example question theme={null}
Quelles normes sont disponibles dans Stratta ?
```

***

## get\_toc

Renvoie la table des matières d'une norme. Par défaut, seuls les chapitres de premier niveau
(`depth = 1`) sont renvoyés afin de garder la réponse légère ; utilisez `get_subtree` pour
explorer un chapitre.

<ParamField path="norm" type="string" required>
  Code de norme, p. ex. `"SIA 261"`, `"SIA 263"`, `"EN 1992-1-1"`.
</ParamField>

<ParamField path="maxDepth" type="number" default="1">
  Profondeur d'imbrication maximale. `1` = chapitres uniquement, `2` = sections `X.Y`, `3` =
  sous-sous-sections `X.Y.Z`. Des profondeurs plus élevées font rapidement grossir la réponse sur
  les grandes normes.
</ParamField>

<ResponseField name="tree" type="array">
  Nœuds hiérarchiques, chacun avec `nodeId`, `path`, `title`, `summary`, `pageStart`, `pageEnd`,
  `depth` et `children` (vide à la limite de profondeur).
</ResponseField>

***

## get\_subtree

Explore un chapitre ou une section spécifique. Renvoie le sous-arbre enraciné à `path`, afin que
Claude puisse explorer un chapitre en détail sans récupérer toute la table des matières.

<ParamField path="norm" type="string" required>
  Code de norme, p. ex. `"SIA 261-1"`.
</ParamField>

<ParamField path="path" type="string" required>
  Chemin de section à utiliser comme racine du sous-arbre, p. ex. `"14"` ou `"14.2"`.
</ParamField>

<ParamField path="maxDepth" type="number" default="illimité">
  Profondeur d'imbrication maximale relative à la racine. `1` renvoie la racine plus ses enfants
  directs uniquement.
</ParamField>

<ResponseField name="tree" type="array">
  Le sous-arbre enraciné à `path`, avec la même forme de nœud que `get_toc`.
</ResponseField>

***

## get\_section

Récupère le contenu enrichi complet d'une section : texte markdown avec les formules en LaTeX et
les tableaux inline, la plage de pages, les figures, les tableaux et formules attachés, et les
références croisées vers d'autres normes.

<ParamField path="norm" type="string" required>
  Code de norme, p. ex. `"SIA 261"`.
</ParamField>

<ParamField path="path" type="string" required>
  Chemin de section tel qu'il apparaît dans le document, p. ex. `"4.2.1"` ou `"Annexe A"`.
</ParamField>

<ResponseField name="section" type="object">
  Inclut le contenu de la section (markdown), `pageStart`/`pageEnd`, un tableau `figures` (utilisez
  l'`id` avec `get_figure`), les tableaux et formules attachés, et `crossRefs`.
</ResponseField>

<Tip>
  Chaque affirmation technique de Claude doit citer une section qu'il a récupérée via `get_section`
  — p. ex. `[SIA 261, 4.2.1, p. 22]` — jamais de mémoire.
</Tip>

***

## search\_in\_norm

Recherche des sections au sein d'une norme par mot-clé (insensible à la casse), en faisant
correspondre à la fois les titres et le contenu. Utilisez-le lorsque le chemin de section n'est
pas encore connu.

<ParamField path="norm" type="string" required>
  Code de norme, p. ex. `"SIA 261"`.
</ParamField>

<ParamField path="keyword" type="string" required>
  Terme de recherche, p. ex. `"charges variables"` ou `"béton armé"`.
</ParamField>

<ParamField path="limit" type="number" default="20">
  Nombre maximal de résultats à renvoyer.
</ParamField>

<ResponseField name="hits" type="array">
  Jusqu'à `limit` correspondances, chacune avec `path`, `title` et un extrait du contenu
  correspondant.
</ResponseField>

***

## get\_figure

Récupère une figure (image) référencée dans une section. Renvoie l'image **inline** (base64) afin
que Claude puisse raisonner sur le schéma, plus une `url` publique pour un affichage en taille
réelle.

<ParamField path="norm" type="string" required>
  Code de norme, p. ex. `"SIA 261"`.
</ParamField>

<ParamField path="figureId" type="string" required>
  Identifiant de figure issu d'une réponse `get_section` (`figures[].id`).
</ParamField>

<ResponseField name="image" type="ImageContent">
  L'image inline (base64 + mimeType).
</ResponseField>

<ResponseField name="caption" type="string">
  La légende de la figure.
</ResponseField>

<ResponseField name="figureNumber" type="string">
  Le numéro/label de la figure.
</ResponseField>

<ResponseField name="url" type="string">
  Une URL publique pour afficher la figure en taille réelle.
</ResponseField>

<Note>
  Certains clients (p. ex. Claude Desktop) n'affichent pas les images distantes inline — voir
  [Dépannage](/fr/resources/troubleshooting).
</Note>

***

## get\_cross\_refs

Liste les références croisées sortantes d'une section vers d'autres normes (p. ex. SIA 261 §4.2 →
SIA 263). Pour les questions composées, Claude doit les suivre et lire chaque cible avec
`get_section`.

<ParamField path="norm" type="string" required>
  Code de norme, p. ex. `"SIA 261"`.
</ParamField>

<ParamField path="path" type="string" required>
  Chemin de section, p. ex. `"4.2.1"`.
</ParamField>

<ResponseField name="crossRefs" type="array">
  Références sortantes, chacune pointant vers une norme cible (et optionnellement un chemin de
  section) avec le texte de la référence et le type (`explicit` ou `implicit`).
</ResponseField>

***

## Liens connexes

<CardGroup cols={2}>
  <Card title="Outils d'ingestion" icon="file-arrow-up" href="/fr/mcp/ingestion-tools">
    Les 10 outils `ingest_*` qui écrivent les normes.
  </Card>

  <Card title="TreeRAG" icon="tree" href="/fr/concepts/treerag">
    Le modèle de navigation que ces outils mettent en œuvre.
  </Card>
</CardGroup>
