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-update: 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"3description: "Evaluates external ideas for TYPO3 extension potential, builds the extension, and drafts the companion German webconsulting.at MDX article. Use when the user shares a link, product, article, paper, or concept and asks whether it can become a TYPO3 extension, wants a GitHub-ready implementation, or needs a publication-ready TYPO3 blog post."4compatibility: "TYPO3 14.x preferred with TYPO3 13.4 fallback; PHP 8.2+; Git; network access for verification and push"5metadata:6 version: "1.0.0"7 related_skills: "grill-me, firecrawl, typo3-update, typo3-testing, webconsulting-create-documentation"8 origin: "webconsulting"9license: "MIT / CC-BY-SA-4.0"10---1112# Idea -> TYPO3 Extension -> Blog Post Pipeline1314> Source: https://github.com/dirnbauer/webconsulting-skills1516Turn an external idea into a complete TYPO3 outcome: research, honest assessment, build, Git push, and German MDX publication draft.1718## Non-Negotiables1920- Do not skip source verification. Read the original source, not only summaries.21- Do not oversell. Say plainly when something is hype, vaporware, duplicated, or a poor TYPO3 fit.22- Do not rebuild TYPO3 features that already exist in Core or a mature extension ecosystem.23- Do not ask endless questions. Ask at most 10 focused questions, then move.24- Do not build before the user confirms the concept assessment.25- Do not leave credentials behind after a Git push.2627## Recommended Skill Stack2829Load adjacent skills when they materially improve the result:3031- `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 time32- `firecrawl`: fetching the source page, repo pages, and independent coverage33- `typo3-update`: TYPO3 v14-first architecture and API choices34- `typo3-testing`: unit tests and verification structure35- `webconsulting-create-documentation`: help when shaping the MDX deliverable3637## Workflow3839### Phase 1: Research & Verify (Do Not Skip)40411. Fetch the full article, announcement, or product page with the available web-fetch tooling.422. Verify legitimacy through independent coverage. Search for discussion on news and community sites such as Hacker News, Slashdot, and Phoronix when relevant.433. 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.444. Check whether TYPO3 already solves the problem through Core, a maintained extension, or a proven adjacent pattern.455. Summarize the source for the user in 3-5 sentences before asking anything else.4647If the idea is a hoax, April Fools post, abandoned repo, or obvious vaporware, say so immediately and pivot to alternatives.4849### Phase 2: Clarify What We Actually Want5051Start the scoping conversation with `grill-me` style discipline:5253- walk the design tree branch by branch54- ask only one question at a time55- provide a recommended answer with each question56- stop after the scope is clear, not after an arbitrary maximum5758Still 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.5960Good questions:6162- Which ideas are actually worth transferring to TYPO3?63- Should the output include an extension, a blog post, or both?64- Should the extension target headless mode, traditional TYPO3 frontend, or both?65- Should the repo be private or public?66- Is the blog language German? Default to German for webconsulting.at.6768Do not ask questions whose answers are already obvious from the user request or local context.6970### Phase 3: Concept Assessment7172Write a concise assessment before building. Cover these five areas:7374| Area | What to cover |75|------|----------------|76| What TYPO3 already does better | Core features, mature extensions, existing APIs, reasons not to reinvent |77| What is genuinely new | Transferable ideas, UX patterns, workflow gains, technical differentiators |78| What is needed first | Dependencies, APIs, legal review, infrastructure, third-party services |79| Honest risks | Regulatory, adoption, maintenance, performance, ecosystem mismatch |80| Recommended architecture | TYPO3 mapping such as PSR-15 middleware, PSR-14 events, TCA, Extbase, CLI commands, site sets |8182Present this as a short table or tightly written prose. Then stop and get explicit user confirmation before implementation.8384### Phase 4: Build the TYPO3 Extension8586Build a complete, push-ready TYPO3 extension when the concept passes review.8788#### Repository Shape8990Use this structure unless the project clearly needs a smaller variant:9192```text93extension-name/94├── composer.json95├── README.md96├── LICENSE97├── .gitignore98├── Configuration/99│ ├── Services.yaml100│ ├── RequestMiddlewares.php101│ ├── TCA/Overrides/102│ └── Sets/103├── Classes/104│ ├── Middleware/105│ ├── Service/106│ ├── Configuration/107│ ├── Event/108│ ├── Command/109│ └── Domain/Model/110├── Resources/Private/Language/111├── ext_tables.sql112├── Tests/Unit/113├── phpunit.xml.dist114└── phpstan.neon115```116117#### Implementation Rules118119- Target TYPO3 v14 first, with TYPO3 13.4 fallback where reasonable.120- Use `declare(strict_types=1);` everywhere.121- Require PHP 8.2+.122- Use Composer type `typo3-cms-extension`.123- Use PSR-4 autoloading under `Webconsulting\{ExtensionName}\`.124- Prefer Symfony DI in `Configuration/Services.yaml`.125- Use PSR-15 for middleware and PSR-14 for events.126- Avoid legacy patterns such as `$GLOBALS['TYPO3_DB']`, hard dependencies on `ext_emconf.php`, and old signal-slot patterns.127- Keep `composer.json` metadata honest (description, constraints, dependencies).128- Add unit tests for value objects, configuration parsing, and core decision logic.129130#### Architecture Choices131132Choose the lightest TYPO3-native shape that solves the problem:133134- use middleware for request/response concerns, headers, gateways, and protocol adapters135- use Extbase only when you truly benefit from controller and domain modeling136- use TCA overrides and site sets when the main value is editor-facing configuration137- use CLI commands with `#[AsCommand]` for imports, sync jobs, and batch tasks138- prefer existing TYPO3 APIs before inventing custom persistence or routing layers139140### Phase 5: Push to GitHub141142If the user wants the extension pushed:1431441. Confirm the user already created the empty repository manually when API-based repo creation is blocked.1452. Configure git remote and authentication only for the duration needed.1463. Commit with a descriptive message.1474. Push to `main`.1485. Remove stored credentials immediately after the push.149150Never leave tokens in shell history, committed files, examples, or config templates.151152### Phase 6: Write the Blog Post153154Create a publication-ready MDX post for webconsulting.at.155156#### Writing Rules157158- Language: German by default159- Tone: factual, professional, technically honest160- Gender-neutral language: use colon format such as `Nutzer:innen`161- Translate features into practical benefits162- Avoid marketing filler and empty superlatives163164#### Required Frontmatter165166Include:167168- `date`169- `title`170- `description`171- `author` set to `Kurt Dirnbauer`172- `status`173- `categories`174- `lang`175176#### Required Sections1771781. `Auf einen Blick` with 4-6 bullets1792. Introduction with 2-3 short paragraphs1803. Technical explanation1814. TYPO3 implementation1825. Honest assessment with a warning-style callout1836. Installation and usage with copy-paste-ready commands1847. Roadmap using a timeline component1858. `Fazit` with a CTA to `/kontakt`186187#### MDX Components188189Use components only where they clarify the article:190191- `Tabs` and `Tab`192- `DataTable`193- `ComparisonTable`194- `Callout`195- `Accordion`196- `Timeline`197- `TechResourceCallout`198- fenced code blocks with language labels199- Mermaid diagrams for architecture and flow200201Always include a `TechResourceCallout` pointing to the GitHub repository when one exists.202203### Phase 7: Deliver204205At the end:2062071. Push the extension when requested.2082. Present or save the MDX file in a way the user can open directly.2093. Confirm credentials were cleaned up.2104. Provide a 5-line summary of what was delivered.211212## Decision Framework213214| Signal | Action |215|--------|--------|216| Real idea, verified, good TYPO3 mapping | Build extension and blog post |217| Real idea, useful analysis, weak TYPO3 mapping | Write blog post only |218| Hoax, April Fools, or empty hype | Say so and suggest alternatives |219| Already solved well in TYPO3 | Point to the existing solution instead of rebuilding |220| Requires language/runtime changes TYPO3 cannot realistically absorb | Document concept only, no extension build |221222## Quality Checklist223224Before delivering, verify:225226- extension installs via Composer without obvious constraint errors227- all PHP files use strict types228- `Services.yaml` wires the real services229- at least 5 unit tests cover core logic230- `README.md` explains install, config, usage, and architecture231- `composer.json` metadata is honest232- the blog post includes `Auf einen Blick`, honest assessment, `TechResourceCallout`, and `Timeline`233- German copy uses gender-neutral colon format234- no credentials remain on disk after push235- no hardcoded tokens, API keys, or sensitive values remain in the repo236237## Example Prompts238239- "Evaluate this product launch for TYPO3, build the extension if it makes sense, and draft the German blog post."240- "Read this article, tell me honestly whether it is relevant for TYPO3, and turn the good parts into a prototype extension."241- "Adapt this startup idea to TYPO3 and prepare both the repo and the webconsulting.at MDX article."