The cd_tools module (originally "Clarodist Tools" by zolhorvath) is being renamed to theming_tools ("Theming tools") to better reflect its purpose as a general admin-theme testing suite — not tied to Claro specifically. This module targets multiple Drupal versions (not just D12). Two submodules with cd_ prefixes are also being renamed: cd_node → tt_node, cd_navigation → tt_navigation. All Claro/Clarodist-specific references throughout the codebase are also being made theme-neutral.
- ~90+ files need content changes (expanded from ~60 due to Claro rename)
- 9 files need renaming (7 root module files + 2 submodule directories)
- 1 root directory rename:
cd_tools/→theming_tools/ - 2 submodule directories rename:
cd_node/→tt_node/,cd_navigation/→tt_navigation/
| Old | New |
|---|---|
cd_tools (module name) |
theming_tools |
cd_node (submodule) |
tt_node |
cd_navigation (submodule) |
tt_navigation |
CD Tools (human-readable) |
Theming tools |
Clarodist Tools (human-readable) |
Theming Tools |
Clarodist (layout category) |
Theming Tools |
claro_test: true (info.yml flag) |
theming_test: true |
$claroTestModules (PHP property) |
$themingTestModules |
claro_components (form key) |
theming_components |
/admin/modules/claro-tools (route path) |
/admin/modules/theming-tools |
claro-autocomplete-country (CSS ID prefix) |
theming-autocomplete-country |
| Old | New |
|---|---|
"@tags": ["claro"] |
"@tags": ["theming-tools"] |
installProfile: "clarodist" |
installProfile: "theming_tools" |
| Old | New |
|---|---|
'Claro Tools Dashboard' |
'Theming Tools Dashboard' |
'Claro Dashboard' |
'Theming Tools Dashboard' |
'Dashboard of Claro test modules' |
'Dashboard of theming test modules' |
'Claro Test Modules' (table caption) |
'Theming Test Modules' |
'Every Claro test module is installed.' |
'Every theming test module is installed.' |
'Claro test modules are uninstalled.' |
'Theming test modules are uninstalled.' |
'Claro test node' (cd_node name) |
'Theming test node' |
'Test node for claro development' |
'Test node for theme development' |
'Test node type for Claro development' |
'Test node type for theme development' |
'To uninstall Claro test node...' |
'To uninstall theming test node...' |
'Claro Checkboxes and Radios' (contact form label) |
'Theming Checkboxes and Radios' |
'Claro textarea test form' (contact form label) |
'Theming textarea test form' |
"Claro's pager on Figma" |
"Pager on Figma" (or keep as-is if it's a real link) |
"Claro theme's development" (module description) |
"admin theme development" |
-
Rename
modules/cd_node/→modules/tt_node/- Rename all files:
cd_node.*→tt_node.* - Update contents: machine name, function prefixes (
cd_node_→tt_node_), namespace (Drupal\cd_node→Drupal\tt_node), Claro strings - Key files:
tt_node.info.yml,tt_node.module,src/CdNodeUninstallValidator.php→src/TtNodeUninstallValidator.php,src/ProxyClass/CdNodeUninstallValidator.php→src/ProxyClass/TtNodeUninstallValidator.php,config/install/node.type.cd.yml
- Rename all files:
-
Rename
modules/cd_navigation/→modules/tt_navigation/- Rename all files:
cd_navigation.*→tt_navigation.* - Update contents similarly, plus Nightwatch test file
- Rename all files:
-
Rename 7 root files:
cd_tools.*→theming_tools.* -
Update root module file contents:
theming_tools.info.yml: name →'Theming Tools', description → theme-neutral, package →'Theming tools'theming_tools.module: function namescd_tools_*→theming_tools_*,claro_testflag checks →theming_test, docblock, string literalstheming_tools.routing.yml: routecd_tools.dashboard→theming_tools.dashboard, path →/admin/modules/theming-tools, title →'Theming Tools Dashboard', namespacetheming_tools.permissions.yml: namespacetheming_tools.links.menu.yml: link ID, route_name, title, descriptiontheming_tools.links.task.yml: route_name, base_route, titletheming_tools.layouts.yml: library key, category →'Theming Tools'
-
Root PHP files (4 files in
src/):src/ContactFormAccessControlHandler.php— namespaceDrupal\cd_tools→Drupal\theming_toolssrc/ContactFormPermissions.php— samesrc/Form/DashboardForm.php— namespace,$claroTestModules→$themingTestModules,claro_components→theming_components,claro_test→theming_test, all Claro user-facing stringssrc/Plugin/Condition/ToolbarAccess.php— namespace only
-
Test PHP files:
tests/src/Functional/CdToolsLoadTest.php→ rename toThemingToolsLoadTest.php, update class name, namespace,@group/#[Group],$modules, docblocktests/src/Functional/ContactFormPermissionTest.php— namespace
-
Submodule PHP files:
modules/toolbartest/src/Routing/RouteSubscriber.php— route referencemodules/lang_hebrew/lang_hebrew.module+.install— dependency referencesmodules/devhelp/tests/src/Functional/InstallUninstallTest.php— module referencemodules/pager/src/Controller/PagerController.php— Claro pager stringmodules/message/src/Controller/MessageController.php— Claro commentmodules/autocomplete/src/Form/AutocompleteForm.php—claro-autocomplete-countryCSS ID prefix
- Every submodule
.info.yml:package: 'CD Tools'→package: 'Theming tools'claro_test: true→theming_test: true- Any
cd_tools:dependency prefix →theming_tools: - Any
cd_nodereferences →tt_node - Any
cd_navigationreferences →tt_navigation
- ~7+ config/install/*.yml files — update module dependencies, labels containing "Claro"
checkboxradio/config/install/contact.form.checkbox_radio.yml— labeltextarea/config/install/contact.form.textarea.yml— labelcd_node/config/install/node.type.cd.yml— description- All files with
cd_tools/cd_nodedependency declarations
- Every
tests/Nightwatch/Tests/*.jsfile across submodules:"@tags": ["claro"]→"@tags": ["theming-tools"]installProfile: "clarodist"→installProfile: "theming_tools"modules/autocomplete/tests/:claro-autocomplete-countryCSS selectors →theming-autocomplete-country
- All 5+ markdown files — find-and-replace with contextual review:
cd_tools→theming_toolsCD Tools→Theming toolsClarodist→Theming Tools(where appropriate)Claro→ theme-neutral language (contextual)cd_node→tt_nodecd_navigation→tt_navigationclaro_test→theming_test- Files:
CLAUDE.md,README.md,CONSOLIDATION_PLAN.md,D12_UPGRADE_PLAN.md,D12_UPGRADE_HANDOFF.md
- Rename directory:
modules/cd_tools/→modules/theming_tools/- Done last since all file edits reference the old path
- User handles via
git mvto preserve history
| Category | Files | Changes |
|---|---|---|
| Root YAML | 7 files | Rename + content + Claro strings |
| Root PHP | 4 src/ files | Namespace + Claro strings/variables |
| Test PHP | 2-3 test files | Namespace, class name, group |
| Submodule info.yml | 35 files | package + dependencies + claro_test flag |
| Submodule PHP | 5-6 files | References + Claro strings |
| Config YAML | ~7+ files | Module deps + Claro labels |
| Nightwatch JS | ~25 files | Tags + installProfile + CSS selectors |
| Documentation | 5 .md files | All references |
| Submodule dirs | cd_node, cd_navigation | Rename dirs + files + contents |
- Plugin ID
toolbar_access(not module-prefixed) - Test theme directories/names (no cd_tools or Claro references)
- Layout directory name
layouts/side_by_side/(just the library key changes) - Other submodule directory names besides cd_node and cd_navigation
grep -ri "cd_tools" modules/theming_tools/— should return 0 resultsgrep -ri "cd_node" modules/theming_tools/— should return 0 resultsgrep -ri "cd_navigation" modules/theming_tools/— should return 0 resultsgrep -ri "CD Tools" modules/theming_tools/— should return 0 resultsgrep -ri "claro" modules/theming_tools/— should return 0 results (verify no stray Claro references remain)grep -ri "clarodist" modules/theming_tools/— should return 0 results- Run PHPStan:
ddev exec vendor/bin/phpstan analyse modules/theming_tools --level=2 --configuration=core/phpstan.neon.dist --no-progress - Enable the module:
ddev drush en theming_toolsand verify the dashboard loads at/admin/modules/theming-tools
Per project conventions, the user handles all git operations. Claude will make the file changes and provide a summary for staging/committing. The directory renames (cd_tools/ → theming_tools/, cd_node/ → tt_node/, cd_navigation/ → tt_navigation/) are best done via git mv to preserve history.