A tiny MCP server that exposes read-only project checks
Instead of giving an agent a shell, give it three safe tools. A small MCP server in TypeScript that runs composer validate, PHPStan and a frontend smoke check, registered in .mcp.json.
Instead of giving an agent a shell, give it three safe tools. A small MCP server in TypeScript that runs composer validate, PHPStan and a frontend smoke check, registered in .mcp.json.
Copied .claude folders drift fast. How I package skills, agents and a guard hook as a Claude Code plugin with a marketplace, versions and a self-test.
A small cleanup command for TYPO3 v14: #[AsCommand] with autoconfiguration, ConnectionPool injected, SymfonyStyle output, scheduler support and a functional test with CommandTester.
During my TYPO3 migration the agent could run commands that change the database. A PreToolUse hook makes it take a dump first. The script, the registration and how I test it.
One big Rector run over an extension gives a diff nobody can review. My workflow: one target version, one set per run, one commit per set, and a clear list of manual work.
AI-written PHP looks plausible, which is the problem. One Composer script runs lint, PHP-CS-Fixer, PHPStan and PHPUnit, and a Stop hook keeps the agent working while it is red.
Stop repeating your TYPO3 conventions in every prompt. A SKILL.md with a description that triggers, short rules and reference files that load only when needed.