> ## 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.

# Ingest your own norm

> Add a norm you are licensed for to your private Stratta workspace — agentically, from your own Claude.

Stratta doesn't ship a shared library of norms. Instead, **you bring the norms your organization
is licensed for** and ingest them into your private workspace. Ingestion runs from your own
Claude using the `ingest_*` tools — your subscription, your PDF, your workspace.

<Warning>
  **Licensing is your responsibility.** Only ingest norms your organization holds a valid licence
  for. SIA standards and Eurocodes are copyrighted. See the [Terms](https://stratta.ch/legal/terms).
</Warning>

## How it works

The `@stratta/mcp` package ships an **`ingest-norm` skill** — a guided workflow that turns a norm
PDF into a navigable tree inside your workspace. When you ask Claude to ingest a norm, it:

1. Reads the PDF.
2. Builds the table-of-contents tree (chapters, sections, annexes).
3. Extracts formulas (as LaTeX), tables, figures, and cross-references.
4. Writes everything to your workspace via the `ingest_*` tools.
5. Publishes the norm so the [read tools](/en/mcp/read-tools) can query it.

Because the agent does the heavy lifting, ingestion is reproducible without a manual data
pipeline. It runs on your Claude subscription's session tokens — no separate API billing.

## Prerequisites

* The Stratta MCP server is installed and authenticated (see [Install in Claude Code](/en/guides/install-claude-code)).
* The norm **PDF is available locally** on your machine.
* Optional, for extracting figures: the [`poppler`](https://poppler.freedesktop.org/) tools
  (`pdftoppm`, `pdfimages`).

## Ingest a norm

In Claude Code, from a context where the PDF is reachable, simply ask:

```text theme={null}
Ingest the norm at C:\norms\SIA_263_2013.pdf into my Stratta workspace.
```

Claude loads the `ingest-norm` skill and walks through the workflow below. A full norm takes a
while — it reads every page and enriches each section.

## The ingestion workflow

This is what the skill does, step by step. You don't run these tools by hand — Claude calls them
— but understanding the flow helps you review the result.

<Steps>
  <Step title="Check for an existing copy">
    `ingest_status { code }` reports whether the norm already exists in your workspace. To
    re-ingest, the old copy is removed first with `ingest_delete`.
  </Step>

  <Step title="Plan the tree">
    Claude reads the PDF and builds a PageIndex-style hierarchy: chapters (depth 0), sections,
    sub-sections, and annexes. Each node gets a stable id, a human path (e.g. `4.2.1`,
    `Annexe B.1`), a short summary, and a page range. Annexes are never skipped — they hold key
    numeric values.
  </Step>

  <Step title="Create the document">
    `ingest_create_document { code, year, title, language, totalPages }` returns a `documentId`
    used by every following call.
  </Step>

  <Step title="Insert sections in batches">
    `ingest_create_sections` bulk-inserts the tree (30–50 sections per call) and returns a map
    from each node id to its stored section id.
  </Step>

  <Step title="Enrich each section">
    `ingest_attach_formula` (LaTeX), `ingest_attach_table` (headers + rows), and
    `ingest_attach_cross_ref` (links to other norms) add the technical content.
  </Step>

  <Step title="Upload figures">
    `ingest_upload_figure` stores each diagram (PNG, JPEG, or WebP, up to 8 MB) and links it to
    its section.
  </Step>

  <Step title="Normalize cross-references (optional)">
    `ingest_normalize_cross_refs` scans the text for references to other norms (SIA, SN EN, EN,
    ISO, DIN…) and rebuilds the cross-reference index.
  </Step>

  <Step title="Publish">
    `ingest_publish` makes the norm queryable via the read tools in your workspace.
  </Step>
</Steps>

See the [ingestion tools reference](/en/mcp/ingestion-tools) for every parameter.

## Quality matters

The accuracy of future citations depends on the ingestion:

* **Paths and page ranges** must be correct — they *are* the citation.
* **Summaries** drive how Claude navigates the tree, so they should be specific (mention key
  formulas or values).
* **Content** must stay faithful to the source — never invented.

After ingestion, spot-check a few sections by asking Claude questions you already know the answer
to, and confirm the citations land on the right pages.

## Next steps

<CardGroup cols={2}>
  <Card title="Ingestion tools" icon="wrench" href="/en/mcp/ingestion-tools">
    The 10 `ingest_*` tools in detail.
  </Card>

  <Card title="Supported norms" icon="book" href="/en/resources/supported-norms">
    What's already available as a demo.
  </Card>
</CardGroup>
