askill
typo3-docs

typo3-docsSafety 100Repository

Create and maintain TYPO3 extension documentation following official docs.typo3.org standards. Use when creating/editing Documentation/*.rst files or README.md, using TYPO3 directives (confval, versionadded, card-grid, accordion, tabs, admonitions), creating/adding screenshots, rendering/testing/viewing docs locally, or deploying to docs.typo3.org. By Netresearch.

1 stars
1.2k downloads
Updated 2/15/2026

Package Files

Loading files...
SKILL.md

TYPO3 Documentation

When to Use

  • Creating documentation from scratch (no Documentation/ exists) → Use init command
  • Creating new Documentation/ directory structure
  • Editing Documentation/**/*.rst files
  • Creating Documentation/guides.xml or updating Settings.cfg
  • Using TYPO3 directives: confval, versionadded, card-grid, accordion, tabs
  • Using text roles: :php:, :file:, :guilabel:, :ref:
  • Creating/adding screenshots: Docker container, image guidelines
  • Rendering documentation: scripts/render_docs.sh, Docker container
  • Live-viewing documentation: Watch mode with auto-rebuild (--watch)
  • Testing/validating documentation: scripts/validate_docs.sh
  • Viewing/showing documentation: Render and open in browser
  • Deploying to docs.typo3.org

Core Workflow

  1. Read reference files for the task at hand (see table below)
  2. Use TYPO3 directives, not plain text equivalents
  3. Validate: scripts/validate_docs.sh
  4. Render: scripts/render_docs.sh
  5. Verify rendered output visually (open in browser)
  6. Keep README.md and Documentation/ synchronized
  7. Commit together atomically

Critical: When user asks to "show docs", render and display the HTML output, not raw RST.

Creating Documentation from Scratch

When asked to create documentation and no Documentation/ directory exists, always use the init command first:

docker run --rm --pull always -v $(pwd):/project -it \
  ghcr.io/typo3-documentation/render-guides:latest init

Interactive prompts:

  1. Format: Choose rst (ReStructuredText) for full TYPO3 theme features
  2. Site Set: Enter name/path if extension defines a Site set (auto-generates config docs)

After init, enhance the generated files:

  1. Create .editorconfig in Documentation/ folder (see Critical Rules)
  2. Update guides.xml with GitHub integration (see guides.xml section)
  3. Expand Index.rst with proper toctree
  4. Create section directories with Index.rst files
  5. Add content based on extension features

Prerequisites:

  • composer.json must exist in project root
  • Docker must be running

See references/rendering.md for complete init documentation.

Quick Reference Table

TaskReference File
File structure and naming conventionsreferences/file-structure.md
guides.xml configurationreferences/guides-xml.md
Coding guidelines and .editorconfigreferences/coding-guidelines.md
Code blocks, confval, PHP domainreferences/code-structure-elements.md
Content directives (accordion, tabs, cards)references/content-directives.md
Rendering, testing, viewing documentationreferences/rendering.md
Screenshots and imagesreferences/screenshots.md
Text roles (:php:, :file:, :guilabel:)references/text-roles-inline-code.md
RST syntax (headings, lists, code blocks)references/rst-syntax.md
TYPO3 directives (confval, card-grid, PlantUML)references/typo3-directives.md
Documentation extraction and analysisreferences/extraction-patterns.md
Coverage methodologyreferences/documentation-coverage-analysis.md
Webhook setup and deploymentreferences/intercept-deployment.md
Extension architecture contextreferences/typo3-extension-architecture.md
Architecture Decision Records (ADRs)references/architecture-decision-records.md

Critical Rules (Always Apply)

  • .editorconfig required in Documentation/ folder (see template below)
  • UTF-8 encoding, 4-space indentation, no tabs
  • 80 characters max line length
  • LF line endings (Unix-style), no trailing whitespace
  • Sentence case headings (not Title Case)
  • CamelCase file/directory names
  • Index.rst required in every subdirectory
  • American English spelling (color, behavior, optimize)
  • PNG format for screenshots, always include :alt: text

Required .editorconfig

Create Documentation/.editorconfig:

root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 80

See references/coding-guidelines.md for complete formatting rules.

Text Roles (Must Use)

ContentRole
PHP code:php:\ClassName``
TypoScript:typoscript:\lib.parseFunc``
YAML:yaml:\imports``
Files:file:\ext_localconf.php``
Directories:path:\Configuration/``
UI elements:guilabel:\Save``
Keyboard shortcuts:kbd:\Ctrl+S``

See references/text-roles-inline-code.md for complete list.

Code Blocks and Structure Elements

Use the Right Element

Content TypeElement
Complete code examples (5+ lines).. literalinclude:: (preferred)
Short inline snippets (< 5 lines).. code-block:: <language>
Configuration options.. confval::
PHP API documentation.. php:class::, .. php:method::
Site settings.. typo3:site-set-settings::

literalinclude (Preferred for Code)

Store code as source files with underscore prefix, include via literalinclude:

..  literalinclude:: _TranslationService.php
    :language: php
    :caption: EXT:my_ext/Classes/Service/TranslationService.php

File naming: _ClassName.php, _config.yaml, _tca-table.php

Benefits: IDE support, syntax validation, reusability, maintainability.

code-block (Short Snippets Only)

Use only for very short examples (< 5 lines):

..  code-block:: php
    :caption: Quick example

    $vault->http()->withAuthentication($key, SecretPlacement::Bearer);

Always include:

  • :caption: with file path or description
  • Correct language identifier
  • Syntactically valid code (highlighting fails on errors)

confval for Configuration

Use confval for extension settings, TCA fields, TypoScript properties:

..  confval:: encryptionMethod
    :name: ext-vault-encryptionMethod
    :type: string
    :default: 'aes-256-gcm'

    Description of the configuration option.

See references/code-structure-elements.md for complete guide.

Content Directives

Use the right directive for structured content:

Content TypeDirectiveWhen to Use
Collapsible contentaccordionFAQ, optional details
Important noticesnote, tip, warningCallouts, caveats
Feature gridscard-gridOverview pages, navigation
Alternative examplestabsMulti-language code, variants
Version changesversionadded, deprecatedAPI changes

Admonitions (Use Appropriately)

..  note::
    Background information users should know.

..  tip::
    Helpful suggestion for better results.

..  warning::
    Potential issue or data loss risk.

Tabs (Synchronized)

..  tabs::

    ..  group-tab:: Composer

        Run :bash:`composer require vendor/package`

    ..  group-tab:: Classic

        Download and install manually.

Tabs with the same name synchronize across the page.

See references/content-directives.md for complete guide.

Required File Structure

Full documentation requires this structure (per TYPO3 File Structure):

project-root/
├── composer.json         # Required for rendering
├── README.md             # Project overview (synced with Documentation/)
└── Documentation/
    ├── guides.xml        # Metadata and rendering config (required)
    ├── Index.rst         # Entry point with toctree (required)
    ├── Sitemap.rst       # Auto-populated site structure (optional)
    ├── Includes.rst.txt  # Global includes for all pages (optional)
    └── SectionName/      # CamelCase directories
        └── Index.rst     # Required in every subdirectory

Naming Conventions:

  • CamelCase for directories and files: Configuration/Index.rst, Developer/TcaIntegration.rst
  • Index.rst required in every directory (fallback during version switching)
  • Included RST files use .rst.txt extension: Includes.rst.txt
  • Code snippet files start with underscore: _Services.yaml, _Example.php

Minimum Prerequisites:

  • Valid composer.json in project root
  • Entry point: Documentation/Index.rst (or README.md for single-file docs)

guides.xml Configuration

Extract project metadata from composer.json and GitHub to create a comprehensive guides.xml:

<guides theme="typo3docs">
    <project title="Extension Name" copyright="since 2024 by Vendor"/>
    <extension
        class="\T3Docs\Typo3DocsTheme\DependencyInjection\Typo3DocsThemeExtension"
        edit-on-github="owner/repo"
        edit-on-github-branch="main"
        project-repository="https://github.com/owner/repo"
        project-issues="https://github.com/owner/repo/issues"
        interlink-shortcode="vendor/package-name"
    />
    <inventory id="t3coreapi" url="https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/"/>
</guides>

Extract from sources:

  • composer.json: name → interlink-shortcode, authors → copyright, support → project-issues
  • GitHub: owner/repo → edit-on-github, default branch → edit-on-github-branch
  • Git remote: git remote get-url origin to determine owner/repo

See references/guides-xml.md for complete configuration options.

Scripts

ScriptPurpose
scripts/validate_docs.shValidate RST syntax
scripts/render_docs.shRender locally with Docker
scripts/watch_docs.shLive-view with auto-rebuild (watch mode)
scripts/extract-all.shExtract documentation data
scripts/analyze-docs.shGenerate coverage analysis

Screenshots

When writing or reviewing documentation, proactively suggest screenshots where they would help users:

Suggest Screenshots For

  • Backend module interfaces - Show where to find features
  • Configuration screens - Extension settings, site configuration
  • Complex UI workflows - Multi-step processes
  • Visual results - Frontend output demonstrating features

Do NOT Add Screenshots For

  • Simple button clicks (use :guilabel: role instead)
  • Information easily conveyed in text
  • Standard TYPO3 interfaces that rarely change

Creating Screenshots

Use the official Docker container for consistent screenshots:

docker run -d --name typo3-screenshots -p 8080:80 linawolf/typo3-screenshots

Requirements: PNG format, 1400x1050 or cropped, light mode, j.doe username.

See references/screenshots.md for complete guidelines.

Pre-Commit Checklist

  1. .editorconfig: Exists in Documentation/ with correct settings
  2. File structure: Every directory has Index.rst, CamelCase naming
  3. Formatting: 4-space indentation, no tabs, max 80 chars, LF line endings
  4. Code blocks: Have :caption:, correct language, valid syntax
  5. Configuration: Uses confval directive with :type:, :default:
  6. Text roles: Inline code uses proper roles (:php:, :file:, etc.)
  7. Content directives: Correct admonition type, synchronized tab names
  8. Version directives: Include version number, deprecations mention replacement
  9. guides.xml: Valid config with edit-on-github, project links, inventories
  10. Screenshots: PNG format, proper alt text, stored in Documentation/Images/
  11. scripts/validate_docs.sh passes
  12. scripts/render_docs.sh shows no warnings
  13. Visual verification: Open rendered HTML and confirm formatting
  14. README.md and Documentation/ are in sync (no contradictions)
  15. Documentation-GENERATED-temp/ is in .gitignore

README.md Synchronization

"In sync" means content parity and consistency, not duplication:

  • Parity: Topics in README.md should be covered in Documentation/.
  • Consistency: Shared topics must not contradict (CLI commands, code examples, configs).
  • Source of truth: Documentation/ is authoritative; update README.md to match.

See references/rst-syntax.md for detailed examples.

For detailed guidelines, read the appropriate reference file before starting work.


Contributing: Improvements to this skill should be submitted to the source repository: https://github.com/netresearch/typo3-docs-skill

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/18/2026

Excellent, comprehensive SKILL.md for TYPO3 extension documentation. Contains detailed guidance on when to use, core workflows, file structure requirements, TYPO3 directives (confval, card-grid, accordion, tabs), text roles, code blocks, rendering scripts, and deployment. Highly actionable with docker commands, code examples, templates (.editorconfig), and clear step-by-step instructions. Well-organized with tables, quick reference guide, and pre-commit checklist. Reference-style content that is accurate and structured - scores bonus on R11. No safety concerns. Slight internal signal from 'By Netresearch' attribution but content is general TYPO3 documentation standards."

100
95
90
95
95

Metadata

Licenseunknown
Version-
Updated2/15/2026
Publishermajiayu000

Tags

apigithubgithub-actions