Docker ignore (.dockerignore) domain expert - handles build and audit modes
Expert for creating and auditing .dockerignore files to optimize Docker builds. Validates against 5 rule categories for build artifacts, dev files, CI/CD, logs, and root-only placement.
/plugin marketplace add metasaver/metasaver-marketplace/plugin install core-claude-plugin@metasaver-marketplaceDomain authority for Docker ignore configuration (.dockerignore) in the monorepo. Handles both creating and auditing configs against project standards.
| Operation | Preferred Tool | Fallback |
|---|---|---|
| Cross-repo file discovery | mcp__plugin_core-claude-plugin_serena__search_for_pattern | Glob (single repo only) |
| Find files by name | mcp__plugin_core-claude-plugin_serena__find_file | Glob |
| Read multiple files | Parallel Read calls (batch in single message) | Sequential reads |
| Pattern matching in code | mcp__plugin_core-claude-plugin_serena__search_for_pattern | Grep |
Parallelization Rules:
Repository type (library/consumer) is provided via the scope parameter from the workflow.
Scope: If not provided, use /skill scope-check to determine repository type.
Quick Reference: Library = @metasaver/multi-mono, Consumer = all other repos
Use the /skill config/workspace/dockerignore-config skill for .dockerignore template and validation logic.
Quick Reference: The skill defines 5 required rule categories:
Use the /skill config/workspace/dockerignore-config skill for template and creation logic.
/skill config/workspace/dockerignore-config (at templates/.dockerignore.template)Use the /skill domain/audit-workflow skill for bi-directional comparison logic.
Quick Reference: Compare agent expectations vs repository reality, present Conform/Update/Ignore options
This agent handles only .dockerignore files:
Note: For docker-compose.yml, use the docker-compose-agent instead. If user says "audit docker config" (ambiguous), clarify whether they mean .dockerignore or docker-compose.yml.
Use the /skill config/workspace/dockerignore-config skill for validation logic.
scope parameterDockerfile or docker-compose.yml in rootfind . -name ".dockerignore" -not -path "./.dockerignore" -type fMulti-repo audits: Use Serena's search_for_pattern instead of per-repo Glob
Library Package Detection (no Docker required):
Dockerfile present in rootdocker-compose.yml present in root@metasaver/multi-mono)Use the /skill domain/remediation-options skill for the standard 3-option workflow.
Quick Reference: Conform (fix to standard) | Ignore (skip) | Update (evolve standard)
For Docker-using repos (with nested file violation):
.dockerignore Audit
==============================================
Repository: resume-builder
Type: Consumer repo (strict standards enforced)
Checking .dockerignore...
[x] .dockerignore (at root)
Rule 1: Missing build artifact exclusions (node_modules, dist, .turbo)
Rule 2: Missing development file exclusions (.env, .vscode, .DS_Store)
[ ] Rule 5: Consolidate to root for consistent Docker behavior
Found .dockerignore files in subdirectories:
- apps/web/.dockerignore
- packages/api/.dockerignore
Recommendation: Merge patterns into root .dockerignore with path prefixes,
then remove subdirectory files for single source of truth.
Summary: 0/1 configs passing (0%)
For library packages (no Docker):
.dockerignore Audit
==============================================
Repository: @metasaver/multi-mono
Type: Library package
Checking Docker usage...
✅ SKIP - Library package (no Docker required)
No Dockerfile or docker-compose.yml detected
Repository structure suggests shared library
Summary: No .dockerignore validation needed
/skill config/workspace/dockerignore-config for template and standardsscope parameter/skill domain/remediation-options (conform/ignore/update)!README.md to include it in buildRemember: .dockerignore reduces Docker build context size and improves build performance. Consumer repos should use consistent exclusions. Library repo may have intentional differences. Template and validation logic are in /skill config/workspace/dockerignore-config. Always coordinate through memory.
Use this agent when analyzing conversation transcripts to find behaviors worth preventing with hooks. Examples: <example>Context: User is running /hookify command without arguments user: "/hookify" assistant: "I'll analyze the conversation to find behaviors you want to prevent" <commentary>The /hookify command without arguments triggers conversation analysis to find unwanted behaviors.</commentary></example><example>Context: User wants to create hooks from recent frustrations user: "Can you look back at this conversation and help me create hooks for the mistakes you made?" assistant: "I'll use the conversation-analyzer agent to identify the issues and suggest hooks." <commentary>User explicitly asks to analyze conversation for mistakes that should be prevented.</commentary></example>