Idea -> TYPO3 Extension -> Blog Post Pipeline
Source: https://github.com/dirnbauer/webconsulting-skills
Turn an external idea into a complete TYPO3 outcome: research, honest assessment, build, Git push, and German MDX publication draft.
Non-Negotiables
- Do not skip source verification. Read the original source, not only summaries.
- Do not oversell. Say plainly when something is hype, vaporware, duplicated, or a poor TYPO3 fit.
- Do not rebuild TYPO3 features that already exist in Core or a mature extension ecosystem.
- Do not ask endless questions. Ask at most 10 focused questions, then move.
- Do not build before the user confirms the concept assessment.
- Do not leave credentials behind after a Git push.
Recommended Skill Stack
Load adjacent skills when they materially improve the result:
grill-me: use this right after the initial source summary to interrogate what the user actually wants to transfer into TYPO3 and to resolve open product decisions one question at a time
firecrawl: fetching the source page, repo pages, and independent coverage
typo3-v14-reference: TYPO3 v14-first architecture and API choices
typo3-testing: unit tests and verification structure
webconsulting-create-documentation: help when shaping the MDX deliverable
Workflow
Phase 1: Research & Verify (Do Not Skip)
- Fetch the full article, announcement, or product page with the available web-fetch tooling.
- Verify legitimacy through independent coverage. Search for discussion on news and community sites such as Hacker News, Slashdot, and Phoronix when relevant.
- Check whether the project has a real public codebase. If it claims to be open source, verify that the GitHub or GitLab repository contains actual code and recent activity, not just a README.
- Check whether TYPO3 already solves the problem through Core, a maintained extension, or a proven adjacent pattern.
- Summarize the source for the user in 3-5 sentences before asking anything else.
If the idea is a hoax, April Fools post, abandoned repo, or obvious vaporware, say so immediately and pivot to alternatives.
Phase 2: Clarify What We Actually Want
Start the scoping conversation with grill-me style discipline:
- walk the design tree branch by branch
- ask only one question at a time
- provide a recommended answer with each question
- stop after the scope is clear, not after an arbitrary maximum
Still keep the total question count lean. Ask at most 10 focused questions. Prefer a structured input tool if the client supports it; otherwise ask concise plain-text questions.
Good questions:
- Which ideas are actually worth transferring to TYPO3?
- Should the output include an extension, a blog post, or both?
- Should the extension target headless mode, traditional TYPO3 frontend, or both?
- Should the repo be private or public?
- Is the blog language German? Default to German for webconsulting.at.
Do not ask questions whose answers are already obvious from the user request or local context.
Phase 3: Concept Assessment
Write a concise assessment before building. Cover these five areas:
| Area |
What to cover |
| What TYPO3 already does better |
Core features, mature extensions, existing APIs, reasons not to reinvent |
| What is genuinely new |
Transferable ideas, UX patterns, workflow gains, technical differentiators |
| What is needed first |
Dependencies, APIs, legal review, infrastructure, third-party services |
| Honest risks |
Regulatory, adoption, maintenance, performance, ecosystem mismatch |
| Recommended architecture |
TYPO3 mapping such as PSR-15 middleware, PSR-14 events, TCA, Extbase, CLI commands, site sets |
Present this as a short table or tightly written prose. Then stop and get explicit user confirmation before implementation.
Phase 4: Build the TYPO3 Extension
Build a complete, push-ready TYPO3 extension when the concept passes review.
Repository Shape
Use this structure unless the project clearly needs a smaller variant:
extension-name/
├── composer.json
├── README.md
├── LICENSE
├── .gitignore
├── Configuration/
│ ├── Services.yaml
│ ├── RequestMiddlewares.php
│ ├── TCA/Overrides/
│ └── Sets/
├── Classes/
│ ├── Middleware/
│ ├── Service/
│ ├── Configuration/
│ ├── Event/
│ ├── Command/
│ └── Domain/Model/
├── Resources/Private/Language/
├── ext_tables.sql
├── Tests/Unit/
├── phpunit.xml.dist
└── phpstan.neon
Implementation Rules
- Target TYPO3 v14 first, with TYPO3 13.4 fallback where reasonable.
- Use
declare(strict_types=1); everywhere.
- Require PHP 8.2+.
- Use Composer type
typo3-cms-extension.
- Use PSR-4 autoloading under
Webconsulting\{ExtensionName}\.
- Prefer Symfony DI in
Configuration/Services.yaml.
- Use PSR-15 for middleware and PSR-14 for events.
- Avoid legacy patterns such as
$GLOBALS['TYPO3_DB'], hard dependencies on ext_emconf.php, and old signal-slot patterns.
- Keep
composer.json metadata honest (description, constraints, dependencies).
- Add unit tests for value objects, configuration parsing, and core decision logic.
Architecture Choices
Choose the lightest TYPO3-native shape that solves the problem:
- use middleware for request/response concerns, headers, gateways, and protocol adapters
- use Extbase only when you truly benefit from controller and domain modeling
- use TCA overrides and site sets when the main value is editor-facing configuration
- use CLI commands with
#[AsCommand] for imports, sync jobs, and batch tasks
- prefer existing TYPO3 APIs before inventing custom persistence or routing layers
Phase 5: Push to GitHub
If the user wants the extension pushed:
- Confirm the user already created the empty repository manually when API-based repo creation is blocked.
- Configure git remote and authentication only for the duration needed.
- Commit with a descriptive message.
- Push to
main.
- Remove stored credentials immediately after the push.
Never leave tokens in shell history, committed files, examples, or config templates.
Phase 6: Write the Blog Post
Create a publication-ready MDX post for webconsulting.at.
Writing Rules
- Language: German by default
- Tone: factual, professional, technically honest
- Gender-neutral language: use colon format such as
Nutzer:innen
- Translate features into practical benefits
- Avoid marketing filler and empty superlatives
Required Frontmatter
Include:
date
title
description
author set to Kurt Dirnbauer
status
categories
lang
Required Sections
Auf einen Blick with 4-6 bullets
- Introduction with 2-3 short paragraphs
- Technical explanation
- TYPO3 implementation
- Honest assessment with a warning-style callout
- Installation and usage with copy-paste-ready commands
- Roadmap using a timeline component
Fazit with a CTA to /kontakt
MDX Components
Use components only where they clarify the article:
Tabs and Tab
DataTable
ComparisonTable
Callout
Accordion
Timeline
TechResourceCallout
- fenced code blocks with language labels
- Mermaid diagrams for architecture and flow
Always include a TechResourceCallout pointing to the GitHub repository when one exists.
Phase 7: Deliver
At the end:
- Push the extension when requested.
- Present or save the MDX file in a way the user can open directly.
- Confirm credentials were cleaned up.
- Provide a 5-line summary of what was delivered.
Decision Framework
| Signal |
Action |
| Real idea, verified, good TYPO3 mapping |
Build extension and blog post |
| Real idea, useful analysis, weak TYPO3 mapping |
Write blog post only |
| Hoax, April Fools, or empty hype |
Say so and suggest alternatives |
| Already solved well in TYPO3 |
Point to the existing solution instead of rebuilding |
| Requires language/runtime changes TYPO3 cannot realistically absorb |
Document concept only, no extension build |
Quality Checklist
Before delivering, verify:
- extension installs via Composer without obvious constraint errors
- all PHP files use strict types
Services.yaml wires the real services
- at least 5 unit tests cover core logic
README.md explains install, config, usage, and architecture
composer.json metadata is honest
- the blog post includes
Auf einen Blick, honest assessment, TechResourceCallout, and Timeline
- German copy uses gender-neutral colon format
- no credentials remain on disk after push
- no hardcoded tokens, API keys, or sensitive values remain in the repo
Example Prompts
- "Evaluate this product launch for TYPO3, build the extension if it makes sense, and draft the German blog post."
- "Read this article, tell me honestly whether it is relevant for TYPO3, and turn the good parts into a prototype extension."
- "Adapt this startup idea to TYPO3 and prepare both the repo and the webconsulting.at MDX article."
1---2name: typo3-idea-extension-blog-33description: Evaluates whether an outside idea is worth building as a TYPO3 extension, checks whether someone has already done it, builds the extension, and writes it up as the companion German webconsulting.at MDX article for our site. Use when the user shares a link, product, article, paper or concept and asks whether it could become a TYPO3 extension, whether it is worth doing at all, or whether prior art exists - and when they want a GitHub-ready implementation plus a publication-ready blog post.4license: MIT / CC-BY-SA-4.05---67# Idea -> TYPO3 Extension -> Blog Post Pipeline89> Source: https://github.com/dirnbauer/webconsulting-skills1011Turn an external idea into a complete TYPO3 outcome: research, honest assessment, build, Git push, and German MDX publication draft.1213## Non-Negotiables1415- Do not skip source verification. Read the original source, not only summaries.16- Do not oversell. Say plainly when something is hype, vaporware, duplicated, or a poor TYPO3 fit.17- Do not rebuild TYPO3 features that already exist in Core or a mature extension ecosystem.18- Do not ask endless questions. Ask at most 10 focused questions, then move.19- Do not build before the user confirms the concept assessment.20- Do not leave credentials behind after a Git push.2122## Recommended Skill Stack2324Load adjacent skills when they materially improve the result:2526- `grill-me`: use this right after the initial source summary to interrogate what the user actually wants to transfer into TYPO3 and to resolve open product decisions one question at a time27- `firecrawl`: fetching the source page, repo pages, and independent coverage28- `typo3-v14-reference`: TYPO3 v14-first architecture and API choices29- `typo3-testing`: unit tests and verification structure30- `webconsulting-create-documentation`: help when shaping the MDX deliverable3132## Workflow3334### Phase 1: Research & Verify (Do Not Skip)35361. Fetch the full article, announcement, or product page with the available web-fetch tooling.372. Verify legitimacy through independent coverage. Search for discussion on news and community sites such as Hacker News, Slashdot, and Phoronix when relevant.383. Check whether the project has a real public codebase. If it claims to be open source, verify that the GitHub or GitLab repository contains actual code and recent activity, not just a README.394. Check whether TYPO3 already solves the problem through Core, a maintained extension, or a proven adjacent pattern.405. Summarize the source for the user in 3-5 sentences before asking anything else.4142If the idea is a hoax, April Fools post, abandoned repo, or obvious vaporware, say so immediately and pivot to alternatives.4344### Phase 2: Clarify What We Actually Want4546Start the scoping conversation with `grill-me` style discipline:4748- walk the design tree branch by branch49- ask only one question at a time50- provide a recommended answer with each question51- stop after the scope is clear, not after an arbitrary maximum5253Still keep the total question count lean. Ask at most 10 focused questions. Prefer a structured input tool if the client supports it; otherwise ask concise plain-text questions.5455Good questions:5657- Which ideas are actually worth transferring to TYPO3?58- Should the output include an extension, a blog post, or both?59- Should the extension target headless mode, traditional TYPO3 frontend, or both?60- Should the repo be private or public?61- Is the blog language German? Default to German for webconsulting.at.6263Do not ask questions whose answers are already obvious from the user request or local context.6465### Phase 3: Concept Assessment6667Write a concise assessment before building. Cover these five areas:6869| Area | What to cover |70|------|----------------|71| What TYPO3 already does better | Core features, mature extensions, existing APIs, reasons not to reinvent |72| What is genuinely new | Transferable ideas, UX patterns, workflow gains, technical differentiators |73| What is needed first | Dependencies, APIs, legal review, infrastructure, third-party services |74| Honest risks | Regulatory, adoption, maintenance, performance, ecosystem mismatch |75| Recommended architecture | TYPO3 mapping such as PSR-15 middleware, PSR-14 events, TCA, Extbase, CLI commands, site sets |7677Present this as a short table or tightly written prose. Then stop and get explicit user confirmation before implementation.7879### Phase 4: Build the TYPO3 Extension8081Build a complete, push-ready TYPO3 extension when the concept passes review.8283#### Repository Shape8485Use this structure unless the project clearly needs a smaller variant:8687```text88extension-name/89├── composer.json90├── README.md91├── LICENSE92├── .gitignore93├── Configuration/94│ ├── Services.yaml95│ ├── RequestMiddlewares.php96│ ├── TCA/Overrides/97│ └── Sets/98├── Classes/99│ ├── Middleware/100│ ├── Service/101│ ├── Configuration/102│ ├── Event/103│ ├── Command/104│ └── Domain/Model/105├── Resources/Private/Language/106├── ext_tables.sql107├── Tests/Unit/108├── phpunit.xml.dist109└── phpstan.neon110```111112#### Implementation Rules113114- Target TYPO3 v14 first, with TYPO3 13.4 fallback where reasonable.115- Use `declare(strict_types=1);` everywhere.116- Require PHP 8.2+.117- Use Composer type `typo3-cms-extension`.118- Use PSR-4 autoloading under `Webconsulting\{ExtensionName}\`.119- Prefer Symfony DI in `Configuration/Services.yaml`.120- Use PSR-15 for middleware and PSR-14 for events.121- Avoid legacy patterns such as `$GLOBALS['TYPO3_DB']`, hard dependencies on `ext_emconf.php`, and old signal-slot patterns.122- Keep `composer.json` metadata honest (description, constraints, dependencies).123- Add unit tests for value objects, configuration parsing, and core decision logic.124125#### Architecture Choices126127Choose the lightest TYPO3-native shape that solves the problem:128129- use middleware for request/response concerns, headers, gateways, and protocol adapters130- use Extbase only when you truly benefit from controller and domain modeling131- use TCA overrides and site sets when the main value is editor-facing configuration132- use CLI commands with `#[AsCommand]` for imports, sync jobs, and batch tasks133- prefer existing TYPO3 APIs before inventing custom persistence or routing layers134135### Phase 5: Push to GitHub136137If the user wants the extension pushed:1381391. Confirm the user already created the empty repository manually when API-based repo creation is blocked.1402. Configure git remote and authentication only for the duration needed.1413. Commit with a descriptive message.1424. Push to `main`.1435. Remove stored credentials immediately after the push.144145Never leave tokens in shell history, committed files, examples, or config templates.146147### Phase 6: Write the Blog Post148149Create a publication-ready MDX post for webconsulting.at.150151#### Writing Rules152153- Language: German by default154- Tone: factual, professional, technically honest155- Gender-neutral language: use colon format such as `Nutzer:innen`156- Translate features into practical benefits157- Avoid marketing filler and empty superlatives158159#### Required Frontmatter160161Include:162163- `date`164- `title`165- `description`166- `author` set to `Kurt Dirnbauer`167- `status`168- `categories`169- `lang`170171#### Required Sections1721731. `Auf einen Blick` with 4-6 bullets1742. Introduction with 2-3 short paragraphs1753. Technical explanation1764. TYPO3 implementation1775. Honest assessment with a warning-style callout1786. Installation and usage with copy-paste-ready commands1797. Roadmap using a timeline component1808. `Fazit` with a CTA to `/kontakt`181182#### MDX Components183184Use components only where they clarify the article:185186- `Tabs` and `Tab`187- `DataTable`188- `ComparisonTable`189- `Callout`190- `Accordion`191- `Timeline`192- `TechResourceCallout`193- fenced code blocks with language labels194- Mermaid diagrams for architecture and flow195196Always include a `TechResourceCallout` pointing to the GitHub repository when one exists.197198### Phase 7: Deliver199200At the end:2012021. Push the extension when requested.2032. Present or save the MDX file in a way the user can open directly.2043. Confirm credentials were cleaned up.2054. Provide a 5-line summary of what was delivered.206207## Decision Framework208209| Signal | Action |210|--------|--------|211| Real idea, verified, good TYPO3 mapping | Build extension and blog post |212| Real idea, useful analysis, weak TYPO3 mapping | Write blog post only |213| Hoax, April Fools, or empty hype | Say so and suggest alternatives |214| Already solved well in TYPO3 | Point to the existing solution instead of rebuilding |215| Requires language/runtime changes TYPO3 cannot realistically absorb | Document concept only, no extension build |216217## Quality Checklist218219Before delivering, verify:220221- extension installs via Composer without obvious constraint errors222- all PHP files use strict types223- `Services.yaml` wires the real services224- at least 5 unit tests cover core logic225- `README.md` explains install, config, usage, and architecture226- `composer.json` metadata is honest227- the blog post includes `Auf einen Blick`, honest assessment, `TechResourceCallout`, and `Timeline`228- German copy uses gender-neutral colon format229- no credentials remain on disk after push230- no hardcoded tokens, API keys, or sensitive values remain in the repo231232## Example Prompts233234- "Evaluate this product launch for TYPO3, build the extension if it makes sense, and draft the German blog post."235- "Read this article, tell me honestly whether it is relevant for TYPO3, and turn the good parts into a prototype extension."236- "Adapt this startup idea to TYPO3 and prepare both the repo and the webconsulting.at MDX article."