typo3-conformance
Agent Skill: Evaluate TYPO3 extensions for conformance to v12/v13/v14 standards. Use when assessing quality, generating reports, or planning modernization. By Netresearch.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install netresearch-claude-code-marketplace-typo3-conformance
Repository
Skill path: skills/typo3-conformance/skills/typo3-conformance
Agent Skill: Evaluate TYPO3 extensions for conformance to v12/v13/v14 standards. Use when assessing quality, generating reports, or planning modernization. By Netresearch.
Open repositoryBest for
Primary workflow: Research & Ops.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: netresearch.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install typo3-conformance into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/netresearch/claude-code-marketplace before adding typo3-conformance to shared team environments
- Use typo3-conformance for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: typo3-conformance
description: "Agent Skill: Evaluate TYPO3 extensions for conformance to v12/v13/v14 standards. Use when assessing quality, generating reports, or planning modernization. By Netresearch."
file_triggers:
- "ext_emconf.php"
- "ext_localconf.php"
- "**/Configuration/TCA/**/*"
- "**/*.typoscript"
---
# TYPO3 Extension Conformance Checker
Evaluate TYPO3 extensions for standards compliance, architecture patterns, and best practices.
## Skill Delegation
| Skill | Use For |
|-------|---------|
| **typo3-tests** | PHPUnit config, test patterns, coverage |
| **typo3-docs** | RST validation, documentation rendering |
## Evaluation Workflow
1. **Initial Assessment** - Extension key, TYPO3 version, type
2. **File Structure** - composer.json, ext_emconf.php, required directories
3. **Coding Standards** - strict_types, types, PSR-12
4. **Prohibited Patterns** - No `$GLOBALS`, no `GeneralUtility::makeInstance()` for services
5. **PHP Architecture** - Constructor DI, Services.yaml, PSR-14 events, TcaSchemaFactory
6. **Backend Module v13** - ES6 modules, Modal API, CSRF
7. **Testing** - PHPUnit, Playwright E2E, coverage >70%
8. **Best Practices** - DDEV, runTests.sh, quality tools, CI/CD
## Scoring
**Base (0-100)**: Architecture 20 + Guidelines 20 + PHP 20 + Testing 20 + Practices 20
**Excellence (0-22 bonus)**: Optional features for exceptional quality
## Commands
```bash
scripts/check-conformance.sh /path/to/extension
```
## References
| File | Purpose |
|------|---------|
| `extension-architecture.md` | Directory structure |
| `coding-guidelines.md` | PSR-12, naming |
| `backend-module-v13.md` | Backend modernization |
| `php-architecture.md` | DI, events, services, PSR-17/18 |
| `testing-standards.md` | PHPUnit, Playwright |
| `excellence-indicators.md` | Bonus scoring |
| `multi-tier-configuration.md` | Provider → Model → Config architecture |
| `backend-wizard-patterns.md` | Setup wizard DTOs, AJAX, ES6 |
---
> **Contributing:** https://github.com/netresearch/typo3-conformance-skill
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### scripts/check-conformance.sh
```bash
#!/usr/bin/env bash
#
# TYPO3 Extension Conformance Checker
#
# Main script to orchestrate all conformance checks
#
set -e
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# Configuration
PROJECT_DIR="${1:-.}"
REPORT_DIR="${PROJECT_DIR}/.conformance-reports"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
REPORT_FILE="${REPORT_DIR}/conformance_${TIMESTAMP}.md"
# Script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo -e "${BLUE}╔════════════════════════════════════════════════════════════╗${NC}"
echo -e "${BLUE}║ TYPO3 Extension Conformance Checker ║${NC}"
echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "${BLUE}Standards Compliance Check:${NC}"
echo -e " • TYPO3 Version: ${YELLOW}12.4 LTS / 13.x${NC}"
echo -e " • PHP Version: ${YELLOW}8.1 / 8.2 / 8.3 / 8.4${NC}"
echo -e " • PSR Standard: ${YELLOW}PSR-12 (Extended Coding Style)${NC}"
echo -e " • Architecture: ${YELLOW}Dependency Injection, PSR-14 Events${NC}"
echo ""
# Create report directory
mkdir -p "${REPORT_DIR}"
# Check if directory exists
if [ ! -d "${PROJECT_DIR}" ]; then
echo -e "${RED}✗ Error: Directory ${PROJECT_DIR} not found${NC}"
exit 1
fi
cd "${PROJECT_DIR}"
# Check if this is a TYPO3 extension
if [ ! -f "composer.json" ] && [ ! -f "ext_emconf.php" ]; then
echo -e "${RED}✗ Error: Not a TYPO3 extension (composer.json or ext_emconf.php not found)${NC}"
exit 1
fi
echo -e "${GREEN}✓ TYPO3 Extension detected${NC}"
echo ""
# Initialize report
cat > "${REPORT_FILE}" <<'EOF'
# TYPO3 Extension Conformance Report
**Generated:** $(date -u +"%Y-%m-%d %H:%M:%S UTC")
**Project:** $(basename "$(pwd)")
## Standards Checked
This conformance check validates your extension against the following standards:
| Standard | Version/Specification |
|----------|----------------------|
| **TYPO3 Core** | 12.4 LTS / 13.x |
| **PHP** | 8.1 / 8.2 / 8.3 / 8.4 |
| **Coding Style** | PSR-12 (Extended Coding Style) |
| **Architecture** | Dependency Injection (PSR-11), PSR-14 Events, PSR-15 Middleware |
| **Testing** | PHPUnit 10+, TYPO3 Testing Framework |
| **Documentation** | reStructuredText (RST), TYPO3 Documentation Standards |
**Reference Documentation:**
- [TYPO3 Extension Architecture](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/)
- [TYPO3 Coding Guidelines](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/CodingGuidelines/)
- [PHP Architecture](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/PhpArchitecture/)
- [Testing Standards](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Testing/)
---
## Summary
| Category | Score | Status |
|----------|-------|--------|
EOF
# Initialize scores
total_score=0
max_score=100
echo -e "${YELLOW}Running conformance checks...${NC}"
echo ""
# 1. File Structure Check
echo -e "${BLUE}[1/5] Checking file structure...${NC}"
if bash "${SCRIPT_DIR}/check-file-structure.sh" "${PROJECT_DIR}" >> "${REPORT_FILE}"; then
echo -e "${GREEN} ✓ File structure check complete${NC}"
structure_score=18
else
echo -e "${YELLOW} ⚠ File structure issues found${NC}"
structure_score=10
fi
echo ""
# 2. Coding Standards Check
echo -e "${BLUE}[2/5] Checking coding standards...${NC}"
if bash "${SCRIPT_DIR}/check-coding-standards.sh" "${PROJECT_DIR}" >> "${REPORT_FILE}"; then
echo -e "${GREEN} ✓ Coding standards check complete${NC}"
coding_score=18
else
echo -e "${YELLOW} ⚠ Coding standards issues found${NC}"
coding_score=12
fi
echo ""
# 3. Architecture Check
echo -e "${BLUE}[3/5] Checking PHP architecture...${NC}"
if bash "${SCRIPT_DIR}/check-architecture.sh" "${PROJECT_DIR}" >> "${REPORT_FILE}"; then
echo -e "${GREEN} ✓ Architecture check complete${NC}"
arch_score=18
else
echo -e "${YELLOW} ⚠ Architecture issues found${NC}"
arch_score=10
fi
echo ""
# 4. Testing Check
echo -e "${BLUE}[4/6] Checking testing infrastructure...${NC}"
if bash "${SCRIPT_DIR}/check-testing.sh" "${PROJECT_DIR}" >> "${REPORT_FILE}"; then
echo -e "${GREEN} ✓ Testing check complete${NC}"
test_score=16
else
echo -e "${YELLOW} ⚠ Testing issues found${NC}"
test_score=8
fi
echo ""
# 5. PHPStan Baseline Check
echo -e "${BLUE}[5/6] Checking PHPStan baseline hygiene...${NC}"
if bash "${SCRIPT_DIR}/check-phpstan-baseline.sh" "${PROJECT_DIR}"; then
echo -e "${GREEN} ✓ PHPStan baseline hygiene check passed${NC}"
baseline_score=10
else
echo -e "${RED} ✗ PHPStan baseline violation detected${NC}"
baseline_score=0
fi
echo ""
# 6. Generate comprehensive report
echo -e "${BLUE}[6/6] Generating final report...${NC}"
bash "${SCRIPT_DIR}/generate-report.sh" "${PROJECT_DIR}" "${REPORT_FILE}" \
"${structure_score}" "${coding_score}" "${arch_score}" "${test_score}"
echo ""
# Calculate total (including baseline hygiene score)
total_score=$((structure_score + coding_score + arch_score + test_score + baseline_score))
# Display summary
echo -e "${BLUE}╔════════════════════════════════════════════════════════════╗${NC}"
echo -e "${BLUE}║ Conformance Results ║${NC}"
echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e " File Structure: ${structure_score}/20"
echo -e " Coding Standards: ${coding_score}/20"
echo -e " PHP Architecture: ${arch_score}/20"
echo -e " Testing Standards: ${test_score}/20"
echo -e " Baseline Hygiene: ${baseline_score}/10"
echo -e " Best Practices: 10/10"
echo ""
echo -e " ${BLUE}Total Score: ${total_score}/100${NC}"
echo ""
if [ ${total_score} -ge 80 ]; then
echo -e "${GREEN}✓ EXCELLENT conformance level${NC}"
elif [ ${total_score} -ge 60 ]; then
echo -e "${YELLOW}⚠ GOOD conformance level (some improvements recommended)${NC}"
elif [ ${total_score} -ge 40 ]; then
echo -e "${YELLOW}⚠ FAIR conformance level (several issues to address)${NC}"
else
echo -e "${RED}✗ POOR conformance level (major improvements needed)${NC}"
fi
echo ""
echo -e "${GREEN}Report saved to: ${REPORT_FILE}${NC}"
echo ""
# Exit with appropriate code
if [ ${total_score} -ge 60 ]; then
exit 0
else
exit 1
fi
```