AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Drupal Debugging

skill-edutrul-drupal-ai-drupal-debugging · by edutrul

Drupal debugging techniques — Devel module, Drush watchdog, Twig debug, XDebug, error logging, and common troubleshooting patterns.

No reviews yet
0 installs
45 views
0.0% view→install

Install

$ agentstack add skill-edutrul-drupal-ai-drupal-debugging

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-edutrul-drupal-ai-drupal-debugging)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Drupal Debugging? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Drupal Debugging

Drush Log Watching

# Watch all errors
ddev drush ws --severity=error

# Last 20 entries
ddev drush ws --severity=error --count=20

# Watch all log levels
ddev drush ws --count=50

# Specific type
ddev drush ws --type=php --count=20

PHP Inline Debugging

# Run PHP in Drupal context
ddev drush php:eval "var_dump(\Drupal::config('my_module.settings')->getRawData());"

# Check if service exists
ddev drush php:eval "var_dump(\Drupal::hasService('my_module.my_service'));"

# Check class autoloading
ddev drush php:eval "class_exists('Drupal\my_module\Service\MyService') ? print 'Found' : print 'Not found';"

# Inspect an entity
ddev drush php:eval "
\$node = \Drupal::entityTypeManager()->getStorage('node')->load(1);
print_r(\$node->toArray());
"

Twig Debugging

Enable in sites/default/services.yml:

parameters:
  twig.config:
    debug: true
    auto_reload: true
    cache: false

Then in templates:

{{ dump(content) }}
{{ dump(node) }}
{{ dump(_context|keys) }}

HTML comments in source will show template suggestions:

Devel Module

# Install devel
composer require drupal/devel
ddev drush en devel -y

In PHP:

// Dump and die
dpm($variable);        // Krumo output in message area
ksm($variable);        // Krumo output (devel module)
dvm($variable);        // Var dump

// Krumo (in Twig via Devel)
// {{ devel_dump(node) }}

Cache Debugging

# Clear all caches
ddev drush cr

# Rebuild theme registry only
ddev drush php:eval "\Drupal::service('theme.registry')->reset();"

# Check cache hit for a page (Drupal page cache)
# Look for X-Drupal-Cache: HIT in response headers
curl -I https://my-project.ddev.site/

# Check Big Pipe and render cache
ddev drush state:get drupal.maintenance_mode

Service Container Debugging

# List all services matching a pattern
ddev drush devel:services | grep my_module

# List all services
ddev drush devel:services

# Check container definition
ddev drush php:eval "
\$def = \Drupal::getContainer()->getDefinition('my_module.my_service');
var_dump(\$def);
"

Module/Hook Debugging

# List all enabled modules
ddev drush pm:list --status=enabled

# Check which modules implement a hook
ddev drush php:eval "
\$modules = \Drupal::moduleHandler()->getImplementations('form_alter');
print implode(', ', \$modules);
"

# Check module info
ddev drush pm:info my_module

Common Problems and Solutions

| Problem | Solution | |---|---| | Class not found | Check namespace, PSR-4 in .info.yml, run composer dump-autoload | | Service not found | Check services.yml syntax, run ddev drush cr | | Template not used | Enable Twig debug, check template suggestions in HTML comments | | Hook not firing | Check class is registered in services.yml, verify Hook attribute | | Config not saving | Check config schema exists in config/schema/ | | Migration failing | ddev drush ws for details, check field mappings |

XDebug with DDEV

# Enable XDebug
ddev xdebug on

# Disable XDebug (performance)
ddev xdebug off

# Check XDebug status
ddev xdebug status

Configure IDE (PHPStorm) to listen on port 9003.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.