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-blog3description: 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.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-update`: 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."