Agent skill
typo3-ckeditor5
Agent Skill: CKEditor 5 development for TYPO3 v12+. Use when developing custom plugins, configuring RTE presets, or migrating from CKEditor 4. By Netresearch.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/typo3-ckeditor5
SKILL.md
TYPO3 CKEditor 5 Skill
CKEditor 5 integration patterns for TYPO3: custom plugins, configuration, and migration.
Expertise Areas
- Architecture: Plugin system, schema/conversion, commands, UI components
- TYPO3 Integration: YAML configuration, plugin registration, content elements
- Migration: CKEditor 4→5, plugin conversion, data migration
Reference Files
references/ckeditor5-architecture.md- Core conceptsreferences/typo3-integration.md- TYPO3-specific patternsreferences/plugin-development.md- Custom plugin guidereferences/migration-guide.md- CKEditor 4→5 migration
Quick Reference
Plugin Registration (ext_localconf.php)
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['my_preset'] = 'EXT:my_ext/Configuration/RTE/MyPreset.yaml';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['ckeditor5']['plugins']['my-plugin'] = [
'entryPoint' => 'EXT:my_ext/Resources/Public/JavaScript/Ckeditor/my-plugin.js',
];
Plugin Structure
packages/my-plugin/src/
├── myplugin.js # Main plugin (requires Editing + UI)
├── mypluginediting.js # Schema, converters, commands
├── mypluginui.js # Toolbar buttons, dropdowns
└── myplugincommand.js # Command implementation
Backend Integration (nr-llm)
When integrating CKEditor plugins with TYPO3 backend services (like nr-llm for AI features):
Response Property Names
CRITICAL: Frontend JavaScript must use the exact property names returned by the backend.
// Backend returns: { content: "...", model: "...", usage: {...} }
// WRONG - will be undefined
const text = result.completion; // Backend doesn't return 'completion'
// CORRECT - matches backend response
const text = result.content;
Real-world bug from t3x-cowriter:
- Backend
CompleteResponse::success()returnedcontentproperty - Frontend used
result.completion(wrong property name) - Fix: Changed to
result.content
Verification Pattern
// Log response structure during development
console.log('Backend response:', JSON.stringify(result, null, 2));
// Then use correct property
const content = result.content || '';
Migration Checklist
- Audit existing CKEditor 4 plugins
- Map features to CKEditor 5 equivalents
- Convert to class-based architecture
- Update YAML config from PageTSConfig
- Test content rendering
- Verify JS property names match backend response (if using AJAX)
Verification
./scripts/verify-ckeditor5.sh /path/to/extension
Contributing: https://github.com/netresearch/typo3-ckeditor5-skill
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?