Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

typo3-batch错别字 3 批次

Agent Skill

typo3-batch 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

576

周安装

24

GitHub Stars

26

下载量

192
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:typo3-batch(错别字 3 批次)
来源仓库:https://github.com/dirnbauer/webconsulting-skills
仓库路径:skills/typo3-batch
安装命令:
npx skills add https://github.com/dirnbauer/webconsulting-skills --skill typo3-batch
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dirnbauer/webconsulting-skills --skill typo3-batch

简介

提供信息检索与筛选功能,支持基于关键词查找相关内容。

  • 适合在需要快速定位技术资料或解决方案时使用。
  • 通过 GitHub 仓库安装,使用标准 npx skills add 命令集成。
  • 使用前应核实仓库维护状态及是否涉及敏感数据处理。
  • typo3-batch 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

TYPO3 Batch Operations

Adapted from Boris Cherny's (Anthropic) Claude Code /batch skill for TYPO3 contexts. Target: TYPO3 v14.x only.

Orchestrate large-scale, parallelizable changes across a TYPO3 codebase. Decompose work into 5–30 independent units, present a plan, then execute each unit with verification.

Process

  1. Research: Scan codebase to find all affected files
  2. Decompose: Split work into independent, non-conflicting units
  3. Plan: Present numbered plan to user for approval
  4. Execute: Apply each unit, run verification after each
  5. Report: Summarize changes, list any failures

Execution Rules

  • Each unit must be independently verifiable
  • Never modify the same file in two different units
  • Run composer normalize / php -l / PHPStan after PHP changes
  • Run tests if available (vendor/bin/phpunit)
  • Commit each unit separately with descriptive message
  • Stop and report if a unit breaks tests

Common TYPO3 Batch Operations

1. Hook → PSR-14 Event Migration

Research: Find all entries in $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] and $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'].

Decompose: One unit per hook class.

Per unit:

1. Identify the hook interface/method
2. Find the corresponding PSR-14 event (see mapping below)
3. Create new event listener class with #[AsEventListener]
4. Move logic from hook method to __invoke()
5. Remove hook registration from ext_localconf.php
6. If **not** using `#[AsEventListener]`: register the listener in `Services.yaml`. With the attribute and `autoconfigure: true` (default), no extra `tags:` entry is required.
7. Run php -l on new file

Hook → event mapping (verify in Core event lists):

DataHandler (t3lib/class.t3lib_tcemain.php): TYPO3 Core does not expose generic PSR-14 events named like BeforeRecordOperationEvent / AfterRecordOperationEvent under TYPO3\CMS\Core\DataHandling\Event. For datamap/cmdmap reactions, use SC_OPTIONS hook classes (see typo3-datahandler §9). Do not “migrate” those hooks to non-existent events.
Hook / legacy APITypical direction
processDatamap_afterDatabaseOperations / related SC_OPTIONSKeep processDatamapClass hook methods (no 1:1 Core event)
processDatamap_preProcessFieldArrayKeep hook or narrow Core events for your table/field if documented
processCmdmap_postProcessKeep processCmdmapClass hook methods
drawHeaderHookModifyButtonBarEvent
drawFooterHookModifyButtonBarEvent
checkFlexFormValueStill often a hook; AfterFlexFormDataStructureParsedEvent is for DS parsing, not a drop-in for validation — confirm in Core for your case
PageRenderer render hooks (render-preProcess, render-postProcess)No 1:1 PSR-14 replacement; prefer PSR-15 middleware for render-pipeline manipulation
tslib_fe->contentPostProc (cached)AfterCacheableContentIsGeneratedEvent
tslib_fe->contentPostProc (output)AfterCachedPageIsPersistedEvent — verify name in Core for your TYPO3 version
tslib_fe->contentPostProc (all)No single PSR-14 replacement — split by what the hook actually does
BackendUtility->getPagesTSconfigModifyLoadedPageTsConfigEvent
generatePageTSconfigModifyLoadedPageTsConfigEvent

Not 1:1 replacements (verify before batch-rewriting):

  • drawHeaderHook / drawFooterHook — Legacy backend doc-header integration points. ModifyButtonBarEvent covers the button bar only; full header/footer chrome may need a different Core event or a documented alternative for your module type.
  • tslib_fe->contentPostProc — Sub-hooks (all, cached, output) run at different FE pipeline stages. Map cachedAfterCacheableContentIsGeneratedEvent, outputAfterCachedPageIsPersistedEvent where applicable; all has no drop-in event — re-check Core docs.

2. TCA modernization (cumulative toward v14 target)

Research: Scan all Configuration/TCA/ and Configuration/TCA/Overrides/ files.

Decompose: One unit per TCA file.

Per unit:

1. Replace 'eval' => 'required' → 'required' => true
2. Replace 'eval' => 'trim' → keep where trimming is desired (trim is NOT applied by default)
3. Replace 'eval' => 'null' → 'nullable' => true
4. Replace 'eval' => 'int' → 'type' => 'number'
5. Replace 'renderType' => 'inputDateTime' → 'type' => 'datetime'
6. Replace 'renderType' => 'inputLink' → 'type' => 'link'
7. Replace 'renderType' => 'colorPicker' → 'type' => 'color'
8. Replace 'type' => 'input', 'eval' => 'email' → 'type' => 'email'
9. Convert items arrays: [0] => label, [1] => value → ['label' => ..., 'value' => ...]
10. Remove boilerplate columns auto-created from `ctrl` on TYPO3 v14: hidden, starttime, endtime, fe_group, language fields
11. Use palettes for enablecolumns: visibility → hidden, access → starttime, endtime
12. Remove convention fields from ext_tables.sql (auto-added to database)
13. Run php -l to verify syntax

3. GeneralUtility::makeInstance → DI

Research: Find all GeneralUtility::makeInstance() calls in Classes/.

Decompose: One unit per class file.

Per unit:

1. Identify all makeInstance calls in the class
2. For each: add constructor parameter with type
3. Replace makeInstance calls with $this->propertyName
4. Add/update Services.yaml if needed
5. Use readonly promoted properties
6. Verify with php -l

4. Fluid Template Refactoring

Research: Scan Resources/Private/Templates/, Partials/, Layouts/.

Decompose: One unit per template directory or logical group.

Per unit:

1. Replace hardcoded strings with <f:translate> keys
2. Add missing XLIFF entries to locallang.xlf
3. Replace <a href="..."> with <f:link.page> or <f:link.typolink>
4. Replace <img> with <f:image>
5. Extract repeated blocks to Partials
6. Add accessibility attributes (alt, aria-label, role)

5. Namespace Rename / Extension Key Change

Research: Find all files containing old namespace/extension key.

Decompose: Group by file type (PHP, Fluid, YAML, TypoScript, SQL).

Per unit:

PHP files:
  1. Replace namespace declarations
  2. Replace use statements
  3. Replace class references in strings (DI, TCA)

Fluid files:
  1. Replace {namespace} declarations
  2. Replace ViewHelper references

Configuration files:
  1. Update composer.json autoload
  2. Update ext_emconf.php
  3. Update Services.yaml service names
  4. Update TCA table prefixes
  5. Update TypoScript paths (EXT:old → EXT:new)

Database:
  1. Generate SQL rename migration
  2. Update ext_tables.sql

6. ext_localconf / ext_tables Cleanup

Research: Scan ext_localconf.php and ext_tables.php for movable code.

Decompose: One unit per concern (TSconfig, TypoScript, icons, modules, plugins).

Per unit:

Page TSconfig:
  1. Extract addPageTSConfig() calls
  2. Create Configuration/page.tsconfig
  3. Remove from ext_localconf.php

User TSconfig:
  1. Extract addUserTSConfig() calls
  2. Create Configuration/user.tsconfig
  3. Remove from ext_localconf.php

Icons:
  1. Extract icon registry calls
  2. Move to Configuration/Icons.php (v14)
  3. Remove from ext_localconf.php

Backend modules:
  1. Extract registerModule() calls
  2. Move to Configuration/Backend/Modules.php
  3. Remove from ext_tables.php

7. Test Infrastructure Setup

Research: Check if Tests/ directory exists, find testable classes.

Decompose: One unit per test type.

Per unit:

Unit tests:
  1. Create Tests/Unit/ structure
  2. Generate test class per service/utility class
  3. Add phpunit.xml.dist configuration

Functional tests:
  1. Create Tests/Functional/ structure
  2. Add fixture files
  3. Generate test for repository/DataHandler usage

CI pipeline:
  1. Create .github/workflows/ci.yml
  2. Configure PHP matrix (8.2, 8.3, 8.4, 8.5)
  3. Configure CI matrix (TYPO3 v14, PHP 8.2+)

8. PHP 8.4 Migration

Research: Scan Classes/ for PHP 8.4 migration candidates.

Decompose: One unit per class file.

Per unit:

1. Add property hooks where getter/setter pattern exists
2. Use asymmetric visibility (public private(set)) on DTOs
3. Replace array_search + if with array_find() **only after checking semantics** — `array_search()` returns a **key** for a given value; `array_find()` takes a **callback** and returns the first matching **value** (or null). Not drop-in replacements.
4. Replace array_filter + reset with array_find() where a callback-based “first match” is what you need
5. Replace `foreach` + conditional checks with `array_any()` / `array_all()` for value-based logic. These do **not** replace `array_key_exists()` (key-based checks).
6. Add #[\Deprecated] attribute to legacy methods
7. Run php -l to verify syntax

9. Content Blocks Migration

Research: Scan TCA, ext_tables.sql, and Fluid templates for classic content elements.

Decompose: One unit per content element / record type.

Per unit:

1. Create ContentBlocks/ContentElements/<name>/config.yaml
2. Map TCA columns to YAML fields
3. Move Fluid template to `ContentBlocks/ContentElements/<name>/templates/` (not `Source/`)
4. Align field definitions in `config.yaml` with TCA columns (no separate `EditorInterface.yaml` in Content Blocks)
5. Remove old TCA override file
6. Remove SQL from ext_tables.sql (columns become automatic)
7. Test rendering in frontend

10. Localization / XLIFF Batch

Research: Find all hardcoded strings in Fluid, PHP flash messages, TCA labels.

Decompose: One unit per language file scope (frontend, backend, TCA).

Per unit:

1. Extract strings from templates/PHP
2. Generate XLIFF keys following convention
3. Add entries to Resources/Private/Language/locallang.xlf
4. Replace hardcoded strings with LLL: references
5. Create de.locallang.xlf with German translations (if applicable)

Plan Template

Present to user before executing:

## Batch Plan: [Description]

Target: EXT:my_extension (TYPO3 v14)
Files affected: 23
Units: 8

| # | Unit | Files | Risk |
|---|------|-------|------|
| 1 | TCA/Overrides/tt_content.php | 1 | Low |
| 2 | TCA/Overrides/pages.php | 1 | Low |
| 3 | Classes/Controller/ListController.php | 1 | Medium |
| 4 | Classes/Service/ImportService.php | 1 | Medium |
| 5 | Resources/Private/Templates/ (6 files) | 6 | Low |
| 6 | ext_localconf.php → Configuration/ | 4 | Medium |
| 7 | Tests/Unit/ (new) | 5 | Low |
| 8 | locallang.xlf updates | 3 | Low |

Estimated: ~15 minutes

Proceed? [y/n]

Verification Checklist (per unit)

  • php -l passes on all modified PHP files
  • composer normalize passes (if composer.json touched)
  • PHPStan passes (if configured)
  • Unit tests pass (if available)
  • Functional tests pass (if available)
  • Frontend rendering unchanged (manual spot check)
  • Backend forms still work (manual spot check)

Abort Conditions

Stop the batch and report if:

  • A unit breaks existing tests
  • PHP syntax error in generated code
  • Two units unexpectedly need the same file
  • User requests stop

v14-Only Batch Migration Targets

The following batch migration patterns are v14-specific.

Common v14 Batch Operations [v14 only]

Batch OperationWhat to Migrate
Remove $GLOBALS['TSFE']All PHP files referencing TypoScriptFrontendController
Annotations → AttributesAll @validate, @ignorevalidation in Extbase controllers
MailMessage->send() removed (#108097) → inject TYPO3\CMS\Core\Mail\MailerInterface and call $this->mailer->send($email)All email-sending code (Breaking #108097)
ctrl.searchFields removed (v14) → per-field searchable in field configSee Breaking: #106972
TCA interface removalAll TCA files with interface key
Backend module parent IDsAll Modules.php with web, file, tools parents
Fluid 5.0 typesAll Fluid templates with incorrect ViewHelper argument types
FlexForm pointer fieldsAll FlexForm XML with pointer configurations
Asset external propertyAll TypoScript with external = 1
Remove legacy switchableControllerActionsRemoved in v12 — not a v14-only migration
Remove legacy plugin subtypes / list_type wiringRemoved in v14 (Important #105538)

Credits & Attribution

Adapted from Boris Cherny's (Anthropic) Claude Code bundled /batch skill for TYPO3 contexts.

Copyright (c) Anthropic — Batch operation patterns (MIT License)

Source: https://github.com/dirnbauer/webconsulting-skills

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.15%
按下载量换算66

Claude

31%
按下载量换算60

Cursor

20.27%
按下载量换算39

Gemini CLI

9.39%
按下载量换算18

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills