336 lines
11 KiB
Markdown
336 lines
11 KiB
Markdown
# TYPO3 Documentation Skill
|
|
|
|
A comprehensive Claude Code skill for creating and maintaining TYPO3 extension documentation following official TYPO3 documentation standards.
|
|
|
|
## Overview
|
|
|
|
This skill provides guidance for working with TYPO3 extension documentation in reStructuredText (RST) format, including TYPO3-specific directives, local rendering with Docker, validation procedures, and automated deployment through TYPO3 Intercept.
|
|
|
|
## Features
|
|
|
|
- **Documentation Extraction** - Automated extraction from code, configs, and repository metadata
|
|
- **Gap Analysis** - Identify missing and outdated documentation
|
|
- **RST Syntax Reference** - Complete reStructuredText formatting guide
|
|
- **TYPO3-Specific Directives** - confval, versionadded, php:method, card-grid
|
|
- **Local Rendering** - Docker-based documentation rendering scripts
|
|
- **Validation Tools** - RST syntax and quality check scripts
|
|
- **Quality Standards** - Pre-commit checklists and best practices
|
|
- **TYPO3 Intercept** - Automated deployment guidance
|
|
- **AI Assistant Context** - AGENTS.md templates for Documentation/ folders
|
|
|
|
## Installation
|
|
|
|
### Download the Skill
|
|
|
|
Download the latest release from the [releases page](https://github.com/netresearch/typo3-docs-skill/releases) or install directly:
|
|
|
|
```bash
|
|
# Using curl
|
|
curl -L https://github.com/netresearch/typo3-docs-skill/archive/refs/heads/main.zip -o typo3-docs.zip
|
|
unzip typo3-docs.zip -d ~/.claude/skills/
|
|
mv ~/.claude/skills/typo3-docs-skill-main ~/.claude/skills/typo3-docs
|
|
|
|
# Or using git
|
|
git clone https://github.com/netresearch/typo3-docs-skill.git ~/.claude/skills/typo3-docs
|
|
```
|
|
|
|
### Verify Installation
|
|
|
|
The skill will automatically activate when working with TYPO3 documentation:
|
|
|
|
- Creating/updating `Documentation/*.rst` files
|
|
- Using TYPO3-specific directives
|
|
- Rendering documentation locally
|
|
- Following TYPO3 documentation guidelines
|
|
|
|
## Contents
|
|
|
|
### SKILL.md
|
|
|
|
Main skill file with comprehensive instructions for:
|
|
- Documentation structure and workflow
|
|
- Configuration documentation with confval
|
|
- Version documentation with versionadded/versionchanged
|
|
- PHP API documentation with php:method
|
|
- Card grid navigation with stretched links
|
|
- Cross-references and quality standards
|
|
|
|
### references/
|
|
|
|
**rst-syntax.md** - Complete RST syntax reference:
|
|
- Headings, code blocks, lists, links
|
|
- Tables, admonitions, images
|
|
- Whitespace rules and common mistakes
|
|
|
|
**typo3-directives.md** - TYPO3-specific directives:
|
|
- confval for configuration values
|
|
- Version directives (added/changed/deprecated)
|
|
- PHP domain (class/method/property)
|
|
- Card grids with stretched links
|
|
- Intersphinx references
|
|
- Quality checklists
|
|
|
|
**extraction-patterns.md** - Documentation extraction guide:
|
|
- Multi-source extraction patterns (PHP, configs, repository)
|
|
- Data-to-RST mapping strategies
|
|
- Gap analysis workflow
|
|
- Template generation approaches
|
|
- Quality standards for extraction
|
|
|
|
**typo3-extension-architecture.md** - TYPO3 official file structure reference:
|
|
- File structure hierarchy with priority weights
|
|
- Directory structure weights (Classes/, Configuration/, Resources/)
|
|
- Extraction weight matrix (Priority 1-5)
|
|
- Quality weighting algorithm
|
|
- Gap analysis priority calculation
|
|
- Documentation mapping strategies
|
|
|
|
### templates/
|
|
|
|
**AGENTS.md** - AI assistant context template:
|
|
- Documentation strategy and audience
|
|
- TYPO3 RST syntax patterns
|
|
- Directive usage examples
|
|
- Cross-reference patterns
|
|
- Validation and rendering procedures
|
|
|
|
### scripts/
|
|
|
|
**add-agents-md.sh** - Add AI context to Documentation/:
|
|
- Creates AGENTS.md from template
|
|
- Provides documentation context for AI assistants
|
|
- Helps AI understand project documentation structure
|
|
|
|
**validate_docs.sh** - Validation script:
|
|
- Checks RST syntax
|
|
- Validates Settings.cfg and Index.rst
|
|
- Detects encoding issues
|
|
- Identifies trailing whitespace
|
|
|
|
**render_docs.sh** - Rendering script:
|
|
- Renders documentation locally with Docker
|
|
- Uses official TYPO3 render-guides image
|
|
- Outputs to Documentation-GENERATED-temp/
|
|
|
|
**extract-all.sh** - Documentation extraction orchestrator:
|
|
- Extracts data from PHP code, extension configs, composer.json
|
|
- Optional: build configs (.github/workflows, phpunit.xml)
|
|
- Optional: repository metadata (GitHub/GitLab API)
|
|
- Outputs to .claude/docs-extraction/data/*.json
|
|
|
|
**analyze-docs.sh** - Documentation coverage analysis:
|
|
- Compares extracted data with existing Documentation/
|
|
- Identifies missing and outdated documentation
|
|
- Generates Documentation/ANALYSIS.md with recommendations
|
|
- Prioritizes action items for systematic documentation
|
|
|
|
**extract-php.sh** - PHP code extraction:
|
|
- Parses Classes/**/*.php for docblocks and signatures
|
|
- Extracts class descriptions, methods, constants
|
|
- Outputs to .claude/docs-extraction/data/php_apis.json
|
|
|
|
**extract-extension-config.sh** - Extension configuration extraction:
|
|
- Parses ext_emconf.php for extension metadata
|
|
- Parses ext_conf_template.txt for configuration options
|
|
- Identifies security warnings in config comments
|
|
- Outputs to extension_meta.json and config_options.json
|
|
|
|
**extract-composer.sh** - Composer dependency extraction:
|
|
- Extracts requirements and dev-requirements
|
|
- Outputs to .claude/docs-extraction/data/dependencies.json
|
|
|
|
**extract-project-files.sh** - Project file extraction:
|
|
- Extracts content from README.md, CHANGELOG.md
|
|
- Outputs to .claude/docs-extraction/data/project_files.json
|
|
|
|
**extract-build-configs.sh** - Build configuration extraction (optional):
|
|
- Extracts CI/CD configurations, PHPUnit settings
|
|
- Outputs to .claude/docs-extraction/data/build_configs.json
|
|
|
|
**extract-repo-metadata.sh** - Repository metadata extraction (optional):
|
|
- Fetches GitHub/GitLab repository information
|
|
- Requires gh or glab CLI tools
|
|
- Outputs to .claude/docs-extraction/data/repo_metadata.json
|
|
- Cached for 24 hours
|
|
|
|
## Usage
|
|
|
|
The skill automatically activates for TYPO3 documentation tasks. You can also manually invoke it:
|
|
|
|
```
|
|
/skill typo3-docs
|
|
```
|
|
|
|
### Quick Examples
|
|
|
|
**Add AI Assistant Context:**
|
|
```bash
|
|
cd /path/to/your-extension
|
|
~/.claude/skills/typo3-docs/scripts/add-agents-md.sh
|
|
# Creates Documentation/AGENTS.md with TYPO3 documentation patterns
|
|
```
|
|
|
|
**Extract and Analyze Documentation:**
|
|
```bash
|
|
cd /path/to/your-extension
|
|
|
|
# Extract data from code and configs
|
|
~/.claude/skills/typo3-docs/scripts/extract-all.sh
|
|
|
|
# Analyze documentation coverage
|
|
~/.claude/skills/typo3-docs/scripts/analyze-docs.sh
|
|
|
|
# Review the analysis report
|
|
cat Documentation/ANALYSIS.md
|
|
|
|
# Extract with optional sources
|
|
~/.claude/skills/typo3-docs/scripts/extract-all.sh --all # Include build configs & repo metadata
|
|
```
|
|
|
|
**Document Configuration:**
|
|
```rst
|
|
.. confval:: fetchExternalImages
|
|
|
|
:type: boolean
|
|
:Default: true
|
|
:Path: $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['ext_key']['setting']
|
|
|
|
Controls whether external image URLs are automatically fetched.
|
|
```
|
|
|
|
**Document Version Changes:**
|
|
```rst
|
|
.. versionadded:: 13.0.0
|
|
The CKEditor plugin now requires ``StyleUtils`` and ``GeneralHtmlSupport``
|
|
dependencies for style functionality.
|
|
```
|
|
|
|
**Create Card Grid Navigation:**
|
|
```rst
|
|
.. card-grid::
|
|
:columns: 1
|
|
:columns-md: 2
|
|
|
|
.. card:: 📘 Introduction
|
|
|
|
Extension overview and features
|
|
|
|
.. card-footer:: :ref:`Read more <introduction>`
|
|
:button-style: btn btn-primary stretched-link
|
|
```
|
|
|
|
**Validate Documentation:**
|
|
```bash
|
|
~/.claude/skills/typo3-docs/scripts/validate_docs.sh /path/to/project
|
|
```
|
|
|
|
**Render Documentation:**
|
|
```bash
|
|
~/.claude/skills/typo3-docs/scripts/render_docs.sh /path/to/project
|
|
```
|
|
|
|
## Deployment Setup
|
|
|
|
**Enable automatic documentation publishing to docs.typo3.org:**
|
|
|
|
### Prerequisites
|
|
1. Extension published in [TYPO3 Extension Repository (TER)](https://extensions.typo3.org/)
|
|
2. Git repository URL referenced on TER detail page
|
|
3. Valid Documentation/ structure with Index.rst and Settings.cfg
|
|
|
|
### Quick Webhook Setup
|
|
|
|
**GitHub:**
|
|
```
|
|
Settings → Webhooks → Add webhook
|
|
Payload URL: https://docs-hook.typo3.org
|
|
Content type: application/json
|
|
SSL: Enabled
|
|
Events: Just the push event
|
|
Active: ✓
|
|
```
|
|
|
|
**GitLab:**
|
|
```
|
|
Settings → Webhooks
|
|
URL: https://docs-hook.typo3.org
|
|
Triggers: Push events + Tag push events
|
|
SSL: Enabled
|
|
```
|
|
|
|
### Verification
|
|
|
|
After first push, check:
|
|
- **Webhook delivery**: GitHub/GitLab webhook recent deliveries (expect `200`)
|
|
- **Build status**: [Intercept Dashboard](https://intercept.typo3.com/admin/docs/deployments)
|
|
- **Published docs**: `https://docs.typo3.org/p/{vendor}/{extension}/main/en-us/`
|
|
|
|
**First build requires approval** by TYPO3 Documentation Team (1-3 business days). Future builds are automatic.
|
|
|
|
**Full webhook setup guide:** [references/intercept-deployment.md](references/intercept-deployment.md)
|
|
|
|
## Quality Standards
|
|
|
|
Before committing documentation changes, ensure:
|
|
|
|
- ✅ No rendering warnings
|
|
- ✅ No broken cross-references
|
|
- ✅ All confval directives complete
|
|
- ✅ Version information for new features
|
|
- ✅ Card grids use stretched-link
|
|
- ✅ UTF-8 emoji icons in card titles
|
|
- ✅ Code blocks specify language
|
|
- ✅ Proper heading hierarchy
|
|
- ✅ No trailing whitespace
|
|
|
|
## Resources
|
|
|
|
**Official Documentation:**
|
|
- [TYPO3 Documentation Guide](https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/)
|
|
- [RST Reference](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html)
|
|
- [Rendering with Docker](https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/Howto/RenderingDocs/Index.html)
|
|
|
|
**Example Projects:**
|
|
- [TYPO3 Best Practice Extension](https://github.com/TYPO3BestPractices/tea)
|
|
- [RTE CKEditor Image](https://docs.typo3.org/p/netresearch/rte-ckeditor-image/main/en-us/)
|
|
|
|
**TYPO3 Intercept:**
|
|
- [Deployment Dashboard](https://intercept.typo3.com/admin/docs/deployments)
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please follow these guidelines:
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch (`git checkout -b feature/improvement`)
|
|
3. Make your changes
|
|
4. Test the skill thoroughly
|
|
5. Commit your changes (`git commit -m 'Add improvement'`)
|
|
6. Push to the branch (`git push origin feature/improvement`)
|
|
7. Create a Pull Request
|
|
|
|
## License
|
|
|
|
This skill is licensed under the same license as the [TYPO3 RTE CKEditor Image extension](https://github.com/netresearch/t3x-rte_ckeditor_image) - GPL-2.0-or-later.
|
|
|
|
## Support
|
|
|
|
**Issues and Questions:**
|
|
- GitHub Issues: [Report issues](https://github.com/netresearch/typo3-docs-skill/issues)
|
|
- TYPO3 Slack: [#typo3-cms](https://typo3.slack.com/archives/typo3-cms)
|
|
|
|
## Credits
|
|
|
|
Created by Netresearch DTT GmbH for the TYPO3 community.
|
|
|
|
Based on:
|
|
- [TYPO3 Official Documentation Standards](https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/)
|
|
- [Anthropic Skill Creator](https://github.com/anthropics/skills/tree/main/skill-creator)
|
|
- Real-world usage in [RTE CKEditor Image Extension](https://github.com/netresearch/t3x-rte_ckeditor_image)
|
|
|
|
---
|
|
|
|
**Version:** 1.0.0
|
|
**Maintained By:** Netresearch DTT GmbH
|
|
**Last Updated:** 2025-10-18
|