govard-magento · git:20260823.2a32205 · 2026-08-23 · sha256 a8f3781dd12e517a
govard-magento git:20260823.2a32205A
Immutable. This exact content is served forever at /api/v1/blob/a8f3781dd12e517a.
---
name: govard-magento
description: |
This skill should be used when the user asks to "clear Magento cache", "flush redis cache",
"run Magento CLI", "run bin/magento commands", "deploy static content", "setup:di:compile",
"reindex catalog", "run indexer commands", "enable/disable modules", "start frontend sync",
"run browser-sync", "set up live reload for Hyva/Luma", or "govard frontend". Provides
Magento-specific Govard shortcuts and commands. DEPENDENT on govard-toolbox for base commands.
compatibility: claude, codex, opencode, copilot, dsh
depends: [govard-toolbox]
metadata:
audience: developers
workflow: magento
---
# Govard Magento Commands
Magento-specific shortcuts and commands for Govard environments.
## Related Skills
**REQUIRED BACKGROUND:** Load `govard-toolbox` first — this skill only covers Magento-specific shortcuts layered on top of Govard's base environment commands.
This skill covers only container/CLI shortcuts. For module architecture, DI, and security patterns, see `magento2-dev-core` and `magento2-backend-dev`; for code quality and performance checks, see `magento2-linter`, `magento2-security-scan`, and `magento2-performance-audit`.
## Code Quality Audit
`govard audit run --checks lint` is the native, persistent lint gate for this
project — target-mode resolution, the PHP matrix, provider rules, and
caching/rerun identity are all covered in `magento2-linter`'s
"Govard-Native Lint Audit Is the Real Gate" section; this skill doesn't
duplicate that policy. To re-check the exact same session (e.g. after a
fix) instead of starting a fresh, non-comparable run:
```bash
govard audit rerun --session SESSION_ID
```
To also capture a page-profile artifact in the same run (Govard v1.64.0+):
```bash
govard audit run --checks lint,profiler --url 'https://<domain>/'
```
The profiler CSV lands under the run's `artifacts/profiler/` with its SHA-256 recorded in the
result — open it in a spreadsheet to read per-timer costs. Policy details live in
`magento2-linter`.
## Magento CLI
```bash
# Cache management
govard tool magento cache:flush
govard tool magento cache:clean full_page
# Specific cache types
govard tool magento cache:enable layout block_html
govard tool magento cache:disable config
# Module management
govard tool magento module:enable Vendor_Module
govard tool magento module:disable Vendor_Module
govard tool magento module:status
# Setup commands
govard tool magento setup:di:compile
govard tool magento setup:static-content:deploy -f
govard tool magento setup:upgrade --keep-generated
# Deploy mode
govard tool magento deploy:mode:set developer
govard tool magento deploy:mode:set production
govard tool magento deploy:mode:show
```
## Code Generation
```bash
# Generate plugin
govard tool magento generate:plugin Vendor Module
# Generate observer
govard tool magento generate:observer Vendor Module Event
# Create admin grid
govard tool magento admin:user:create
```
## Indexer Commands
```bash
# Check status
govard tool magento indexer:status
# Reindex all
govard tool magento indexer:reindex
# Single indexer
govard tool magento indexer:reindex catalog_product_price
# Change mode
govard tool magento indexer:set-mode schedule
govard tool magento indexer:set-mode realtime
```
## Cron Commands
```bash
# Run cron manually
govard tool magento cron:run
govard tool magento cron:run --group=default
# Install crontab
govard tool magento cron:install
# Remove crontab
govard tool magento cron:remove
```
## Development Tools
```bash
# Template hints (dev only)
govard tool magento dev:template-hints:enable
govard tool magento dev:template-hints:disable
# Query logging
govard tool magento dev:query-log:enable
govard tool magento dev:query-log:disable
# JS/CSS bundling
govard tool magento dev:js:enable_js_bundling
govard tool magento dev:css:minify_files
```
## Frontend Development (BrowserSync / LiveReload)
Requires `stack.features.frontend_sync: true` in `.govard.yml` (Magento 2 / Mage-OS only). `govard env up` never starts this — it's a separate, explicit, on-demand lifecycle:
```bash
govard env up # app/db/etc. up — no frontend services yet
govard frontend start # renders + starts BrowserSync/LiveReload + watchers
govard frontend logs -f # sync/injector container
govard frontend logs watch-<theme> -f
govard frontend stop # removes only frontend services, keeps their volumes
```
**Prerequisites (Govard never creates or edits these files):**
- **Hyva:** exactly one `scripts.browser-sync` owner under `app/design/frontend/<Vendor>/<Theme>/web/tailwind`, with a committed `package-lock.json`. The theme's own `browser-sync.config.js` must read `GOVARD_FRONTEND_SYNC_TARGET`/`_PORT` from the environment and set `changeOrigin: false`, `cookies.stripDomain: false`, `open: false`, and `socket.path: '/browser-sync/socket.io'`.
- **Luma:** root `Gruntfile.js`, `package.json`, `package-lock.json` (copy Magento's `.sample` files, then `npm install`). No BrowserSync config needed.
- Hyva and Luma discovery are mutually exclusive project-wide — only one setup may be valid at a time.
**Switching the active Hyva theme:** move the `scripts.browser-sync` entry (plus its `browser-sync.config.js` and `package-lock.json`) from the old theme's `web/tailwind/package.json` to the new theme, then run `govard frontend start` again — it re-discovers whichever theme is now the sole owner.
| Symptom | Fix |
|---|---|
| `frontend start` reports success but the page redirects to a different host or drops the session | Theme's `browser-sync.config.js` has `changeOrigin`/`cookies.stripDomain` wrong — both must be `false` |
| Discovery fails ("no owner found" / conflicting setups) | Confirm exactly one theme owns `scripts.browser-sync`, and that Hyva and Luma prerequisites aren't both satisfied at once |
## Database Operations
```bash
# Direct MySQL
govard db connect
# Run SQL -- table names here have no prefix; if this project uses one (db.table_prefix in
# app/etc/env.php), prepend it, e.g. `m2_core_config_data` instead of `core_config_data`
govard db query "SELECT * FROM core_config_data WHERE path LIKE '%template%'
# Import with streaming (fast)
govard db import --stream-db -e staging --drop
# Export from remote
govard db dump -e staging --no-noise --no-pii --local
```
## Configuration
```bash
# Show config
govard tool magento config:show system/smtp/host
# Set config
govard tool magento config:set web/secure/base_url https://local.test/
govard tool magento config:set design/theme/theme_id 0
# Import/export config
govard tool magento app:config:dump
govard tool magento app:config:import
# Show a config value in every scope it's set (default/website/store) in one
# call -- bin/magento config:show only reads a single scope at a time
govard tool magerun config:store:get web/secure/base_url
```
## Diagnostics
```bash
# Environment health check -- missing files/folders, base URL & cookie
# domain settings, required PHP extensions, MySQL InnoDB
govard tool magerun sys:check
# System snapshot (Magento version/edition, app mode, cache backend,
# search engine, module count)
govard tool magerun sys:info
```
## Multi-Website / Multi-Store Setup
Register additional store domains in `.govard.yml` under `store_domains`, then let Govard wire up the vhost/DNS side:
```yaml
domain: "primary.test
store_domains:
brand-b.test:
code: base
type: website
```
```bash
govard domain add brand-b.test
govard config auto
govard tool magento cache:flush
```
Store codes are also selectable via URL path (`/fr/`, `/admin/`) without a separate domain — reserve `store_domains` for genuinely separate hostnames/websites.
## Redis Cache
```bash
# Flush Redis cache only
govard redis flush
# Redis CLI
govard redis cli
# Check cache info
govard redis info
```
## Varnish (if configured)
```bash
# Purge all
govard varnish purge
# Purge by tag
govard tool magento cache:clean cache_tag_frontend
# Varnish status
govard varnish status
```
## Logging
```bash
# View system log
govard sh -c "tail -f var/log/system.log
# View exception log
govard sh -c "tail -f var/log/exception.log
# View debug log
govard sh -c "tail -f var/log/debug.log
# Custom module log
govard sh -c "tail -f var/log/my-module.log
```
## Common Issues & Solutions
| Symptom | Fix |
|---|---|
| "There are no commands defined" after pulling code | `govard tool magento setup:di:compile"` |
| Static assets not updating | `govard tool magento setup:static-content:deploy -f"` + `cache:flush`, then hard-refresh the browser |
| Database connection refused | `govard ps` (is the DB container up?), `govard logs db`, then `govard down && govard up` if needed |
| Container won't start | `govard doctor`, then `govard logs` |
| Xdebug not connecting | `govard debug on`, confirm the IDE is listening on port 9003, check the `XDEBUG_SESSION` cookie matches `.govard.yml` — see `govard-toolbox` for the full IDE setup |
Template-only changes don't need `setup:di:compile` — only `setup:static-content:deploy`. Recompiling DI on every template edit wastes time for no benefit.
## Common Workflows
### After Pulling Code
```bash
govard tool magento setup:upgrade --keep-generated
govard tool magento setup:static-content:deploy -f
govard tool magento cache:flush
```
### After Database Sync
```bash
govard config auto # Rebuild env.php
govard tool magento cache:flush
```
### Production Deployment Prep
```bash
govard tool magento maintenance:enable
govard tool magento setup:upgrade
govard tool magento setup:di:compile
govard tool magento setup:static-content:deploy -f --theme=Vendor/Theme
govard tool magento cache:flush
govard tool magento maintenance:disable
```