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.
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.
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
| Table | Purpose |
|---|---|
tx_structuredcontent_relation | Content 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
- PHP 8.3+
- TYPO3 14.0
Optional dependencies
| Package | Type | Purpose |
|---|---|---|
moselwal/content-provenance | Optional | Content integrity verification |
moselwal/business-agent | Optional | AI agent content access |
moselwal/dev | Dev | Shared 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.
GitLab (source of truth)
Primary repository including CI/CD and Composer package registry.
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.
Oder direkt schreiben: kontakt@moselwal.de