---
title: "typo3_snapshot_scope"
description: "Report the component contract source"
canonical: typo3_snapshot_scope.html
---

<a id="typo3_snapshot_scope"></a>

- [Takes](#takes)
- [Answers with](#answers-with)
- [Answered](#answered)
  - [catalog scope](#catalog-scope)

<a id="typo3-snapshot-scope"></a>

# `typo3_snapshot_scope`

*Report the component contract source*

Report whether component contracts come from the active installation or the
bundled fallback. It says which TYPO3 core revision the fallback catalogs come
from, what they cover, and how to re-check them. Call this to judge whether a
typo3\_component\_lookup miss is authoritative: even with installed sources,
component names remain a curated index rather than every backend class. Answers
from: packages, knowledge.

`readOnlyHint: true` · `destructiveHint: false` · `idempotentHint: true` · `openWorldHint: false`

Answers from [packages](../answer-sources.md#answer-sources-packages),
[knowledge](../answer-sources.md#answer-sources-knowledge).

<a id="takes"></a>

## Takes

```yaml
# The TYPO3 version to report the catalog's coverage for, for example "13.4" or
# "14". Defaults to the version of the installation this server started in.
targetVersion: string  # optional
```

<a id="answers-with"></a>

## Answers with

```yaml
# The core revision behind catalog answers, and how it relates to the
# installation the server reads. A miss means "not in this snapshot".
catalog:
  repository: string  # optional
  branch: string
  # TYPO3 version of the snapshot.
  version: string
  # The core revision the catalogs come from.
  commit: string
  verifiedAt: string
  # The command that re-checks the snapshot against a core checkout.
  verifyCommand: string  # optional
  # TYPO3 version of the installation this server started in, where there is
  # one. Null means nothing to compare the snapshot with.
  installedVersion: string or null  # optional
  # What to do when that installation and the snapshot are different TYPO3
  # majors. Null when they agree or the server knows nothing.
  skew: string or null  # optional
verifyCommand: string
# One entry per catalog that says what it contains.
scope: object
# One entry per catalog with its number of entries.
counts: object
# The TYPO3 major the coverage report is for, stated by the caller or read from
# the installation. Null means the whole catalog answers.
targetVersion: integer or null  # optional
# How many components somebody verified on that version.
verifiedCount: integer
# One of: installation, catalog.
componentSource: string
# Components this catalog has and nobody verified on the target version. The
# answer leaves them out of components. An empty answer here means "not verified
# where you are", not "does not exist".
withheld:
  - name: string
    title: string
    # What to verify the entry against on the target version.
    sassPaths: [string]  # optional
    demoPath: string or null  # optional
    # The first TYPO3 major this entry holds on, or null when it holds on every
    # covered version.
    since: integer or null  # optional
    # The last TYPO3 major this entry holds on, or null when nothing has
    # replaced it.
    until: integer or null  # optional
    # The same range as a sentence, empty when the entry holds on every covered
    # version.
    verifiedOn: string
```

<a id="answered"></a>

## Answered

Recorded on 2026-09-23 by `bin/cli tools:record`. Answered against
core-checkout, TYPO3 14.3.8-dev, the 14.3 core checkout below .checkouts/. Its
console is out of reach: \<installation\> has no TYPO3 console — none of
bin/typo3, vendor/bin/typo3 exists. Its dependencies are not installed —
vendor/autoload.php is not there either, and composer install writes both.
Nothing checks what is below this heading; everything above it is derived from
the class that answers the call, and `bin/cli tools:check` holds it.

<a id="catalog-scope"></a>

### catalog scope

Called with:

```json
{}
```

Text:

```text
Installed component contract
For TYPO3 v14, 22 of the 22 curated component entries were found in the installed backend CSS or JavaScript. Their class and custom-property contracts were read from those packages.
The bundled catalog remains the curated search index and markup fallback; it does not override installed classes.

Bundled fallback source checkout
- Source: https://github.com/TYPO3/typo3
- Checkout branch: main (TYPO3 15.0)
- Commit: 4c8b38b2dd07856c3e2666fbdfd77beead87ffe0
- Verified: 2026-07-28
- Re-check with: `bin/cli components:paths /path/to/typo3-core-checkout`

Scope
- components: The bundled fallback and curated search index for backend UI components, with markup, Sass source paths, the TYPO3 majors each entry was verified on, and the styleguide actions that demonstrate it. When the target is the active installation, its backend CSS and JavaScript replace the class and custom-property contract, and an installed styleguide example replaces fallback markup where available. What is indexed is what the styleguide lists, which is the boundary of what a package may use: a component it does not demonstrate is not here, and a miss means the core keeps that surface to itself rather than that the subject is uncovered. Where each class sits and the majors it holds on are derived rather than curated, by bin/cli components:derive.
- systemExtensions: Every system extension of every covered TYPO3 line, read off one checkout per version: the extension key, the Composer package name to require it by, what it is for, and the majors that ship it. Complete rather than curated — `bin/cli system-extensions:check` re-derives it, so a release that adds or drops one is reported. The tracker area an extension's issues are filed under is carried beside that, for the keys that reach no area by their own spelling — curated rather than derived, and `bin/cli forge-categories:check` reads every one of them against the areas the project publishes.

Counts
- components: 22
- systemExtensions: 38

A lookup miss means the component is not in the curated search index. The installed backend CSS may still contain an uncatalogued class, so inspect it before concluding the class does not exist.
```

Data:

```json
{
    "catalog": {
        "repository": "https://github.com/TYPO3/typo3",
        "branch": "main",
        "version": "15.0",
        "commit": "4c8b38b2dd07856c3e2666fbdfd77beead87ffe0",
        "verifiedAt": "2026-07-28",
        "verifyCommand": "bin/cli components:paths /path/to/typo3-core-checkout",
        "installedVersion": "14.3.8-dev",
        "skew": null
    },
    "verifyCommand": "bin/cli components:paths /path/to/typo3-core-checkout",
    "scope": {
        "components": "The bundled fallback and curated search index for backend UI components, with markup, Sass source paths, the TYPO3 majors each entry was verified on, and the styleguide actions that demonstrate it. When the target is the active installation, its backend CSS and JavaScript replace the class and custom-property contract, and an installed styleguide example replaces fallback markup where available. What is indexed is what the styleguide lists, which is the boundary of what a package may use: a component it does not demonstrate is not here, and a miss means the core keeps that surface to itself rather than that the subject is uncovered. Where each class sits and the majors it holds on are derived rather than curated, by bin/cli components:derive.",
        "systemExtensions": "Every system extension of every covered TYPO3 line, read off one checkout per version: the extension key, the Composer package name to require it by, what it is for, and the majors that ship it. Complete rather than curated — `bin/cli system-extensions:check` re-derives it, so a release that adds or drops one is reported. The tracker area an extension's issues are filed under is carried beside that, for the keys that reach no area by their own spelling — curated rather than derived, and `bin/cli forge-categories:check` reads every one of them against the areas the project publishes."
    },
    "counts": {
        "components": 22,
        "systemExtensions": 38
    },
    "targetVersion": 14,
    "verifiedCount": 22,
    "componentSource": "installation",
    "withheld": []
}
```
