Version 1.2.0
November 8, 2026
Added
- Craft's MCP server (Craft 5.12+): read-only tools
component-map.overview,component-map.show,component-map.impactandcomponent-map.unused, two checks incontent-model.audit(component-map-broken-references,component-map-blocks-without-template), and this project's dispatchers ininfo.get. Only whereallowAdminChangesis on; the newmcpsetting turns it off. Nothing changes on Craft 5.11 and earlier. ignore missing/ignore_missing = true, and a fallback list with an entry that exists, mark a missing template as intended.
Changed
- The console commands and the MCP tools share one report, so
--jsonand an agent see the same shape. - CI also runs weekly and on demand, against the newest Craft and MCP SDK.
Version 1.1.0
October 5, 2026
Added
component-map/unused— blocks no entry contains, templates nothing reaches (including whole dead chains), entry types in no section or Matrix field, and Matrix fields on no entry type. Warns when a reached template includes something chosen at runtime.entryPointssetting — templates rendered from PHP,config/routes.phpor a plugin setting, sounuseddoes not report them.
Changed
- A shorter package description.
Version 1.0.0
September 29, 2026
First release.
Added
- Template references read with Twig's own lexer:
include,embed,extends,import,from,use,include(),source()— including arrays of fallbacks, conditionals,??, and dynamic patterns such as'_adapters/' ~ block.type.handle ~ '.twig', resolved against the files that exist. Files the lexer rejects still yield their static references. - Which entries contain which blocks, at any depth, from Craft's ownership
table (canonical content only;
readEntriesturns it off).impactlists the entries to check with their URLs;showlists where a block is used. - The content model's schema: sections and their templates, entry types, Matrix fields and the block types they allow, category groups.
- Dispatcher detection: a dynamic include resolving to a file named after an entry type links that entry type to its template.
component-map/build— the whole map as Markdown (--stdout) or JSON (--json); otherwise a local snapshot instorage/component-map/. Nothing is written into the repository: the plugin runs where you develop andshow/impactbuild the map from the current templates on every call.component-map/show— where a template, entry type, section or field is used, what it uses, which blocks and pages a change affects.component-map/impact— what changing files affects;--gitfor uncommitted changes,--since=<branch>for the whole branch (commits since it left that branch, plus uncommitted changes). Deleted templates count through the templates that still reference them. Project config changes (entry types, Matrix fields, sections, category groups) count through the content model: a nested block affects the blocks it sits in and their pages. Templates excluded byignoreare listed separately. Suggestscomponent-check/testfor the affected blocks when Component Check is installed.component-map/agents— the note that points a coding agent to the commands;--file=AGENTS.md/CLAUDE.mdadds or updates it between markers. Usesddev craftin DDEV projects.--jsonon every command; stable exit codes.