Extension · moselwal/structured-content

structured-content — semantic metadata that is inherited.

AI context annotations (audience, tone, channels) at page and content level that cascade through the page hierarchy — with typed content relationships, confidence scoring and JSON-LD generation as output. The foundation for semantically clean TYPO3 platforms.

Das Problem

Without context, content is only half there for AI.

With structured-content

  • AI context fields directly in the page and content element backend
  • Inheritance through the hierarchy — setting on a parent page cascades down
  • Typed content relationships with confidence score
  • JSON-LD generation automatic in the frontend
  • Channel-aware field restrictions
  • CLI tools for bulk annotation

Until now

  • Audience and tone live in brand guidelines, not in the CMS
  • JSON-LD is sprinkled into templates by hand
  • Channel awareness is missing — the same content goes unfiltered into every channel
  • Content relationships only via loose linking

Four building blocks

JSON-LD in the frontend

Schema.org markup is generated automatically from the annotations — nothing has to be sprinkled into the template.

Typed content relationships

Relationships between content elements are typed (e.g. "explains", "extends", "contradicts") with a confidence score — AI systems use this for more coherent answers.

Hierarchical inheritance

An annotation on a parent page applies automatically to all children unless overridden there. The effort per piece of content drops drastically.

AI context fields

Audience (Customer/Partner/Internal/Developer), Tone (Informational/Promotional/Technical/Legal), Channels (Web/AI-Agent/Voice/Social) — as standard TCA fields.

Installation: composer require moselwal/structured-content

TYPO3: 14.0+ · PHP: 8.3+ · Optional: moselwal/content-provenance, moselwal/business-agent

Add the Composer repository at gitlab.moselwal.io, then run composer require moselwal/structured-content.

Architecture

Classes/
├── Domain/          # Annotation models, relationship types, contracts
├── Application/     # Context resolution, relationship services
├── Infrastructure/  # Repositories, JSON-LD builders, context resolvers
└── Presentation/    # Controllers, event listeners

 

Database tables

TablePurpose
tx_structuredcontent_relationContent relationships
pages (extended)ai_context_* fields for audience, tone, channels
tt_content (extended)ai_context_* fields for element-level metadata

CLI commands

vendor/bin/typo3 structured-content:missing-context   # Find pages missing AI context
vendor/bin/typo3 structured-content:export-relations   # Export relationships as JSON
vendor/bin/typo3 structured-content:validate-channels  # Validate channel configurations

 

Configuration

AI context fields are added to the TYPO3 page and content element forms. Configure default context values and inheritance behaviour through site settings.

Requirements

Optional dependencies

PackageTypePurpose
moselwal/content-provenanceOptionalContent integrity verification
moselwal/business-agentOptionalAI agent content access
moselwal/devDevShared QA tooling

The codebase follows a strict DDD 4-layer separation; layer violations are blocked in CI via deptrac.

Source code & docs

TYPO3 Extension Repository

Not in the official TER — install via Composer only.

Composer package

moselwal/structured-content via the Moselwal Composer repo.

Open the Composer repo

GitLab (source of truth)

Primary repository including CI/CD and Composer package registry.

gitlab.moselwal.io

GitHub

GitHub mirror (placeholder — verify before publish).

github.com/moselwal/structured-content
Nächster Schritt

Help with the integration?

structured-content is open source and intended for self-integrators. For AI readiness as an end-to-end package, take a look at our AI-Ready CMS as a Service.

AI-Readiness besprechen

Oder direkt schreiben: kontakt@moselwal.de