MCPInstall

gitlab stack validator

Validates GitLab stack projects before deployment, ensuring proper architecture patterns, directory structure, secrets management, .env configuration, and Docker best practices. Use when users ask to validate a stack, check stack configuration, verify stack architecture, audit stack setup, or ensure stack deployment readiness.

Installs
284
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/rknall/claude-skills --skill gitlab-stack-validator
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads gitlab stack validator automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

GitLab Stack Validator

This skill validates GitLab stack projects to ensure they follow proper architecture patterns and are ready for deployment. It focuses on detection and reporting of issues, working alongside companion skills (stack-creator, secrets-manager) for remediation.

When to Use This Skill

Activate this skill when the user requests:

  • Validate a GitLab stack project
  • Check stack configuration before deployment
  • Verify stack architecture and structure
  • Audit stack for best practices compliance
  • Ensure stack follows proper patterns
  • Pre-deployment validation checks
  • Stack health check or readiness verification

Core Validation Principles

This skill validates stacks that follow these architecture principles:

  1. Configuration Management: All configuration through docker-compose.yml and ./config directory
  2. Secrets Management: Secrets stored in ./secrets and referenced via Docker secrets
  3. Environment Variables: .env file with matching .env.example template
  4. Minimal Custom Scripts: docker-entrypoint.sh only when containers don't support native secrets
  5. Proper Ownership: No root-owned files (all files owned by Docker user)
  6. Temporary Files: _temporary directory for transient files that are cleaned up after use
  7. Docker Best Practices: Leverage docker-validation skill for Docker-specific checks

Validation Workflow

When a user requests stack validation, follow this comprehensive workflow:

Phase 1: Pre-flight Checks

Step 1: Verify Stack Project

  1. Check if current directory appears to be a stack project
  2. Look for key indicators:
    • docker-compose.yml exists
    • Presence of ./config, ./secrets, or ./_temporary directories
    • .env file exists
  3. If not a stack project, report findings and ask if user wants to initialize one

Step 2: Gather Context

  1. Ask user for validation scope (if needed):
    • Full validation or targeted checks?
    • Strict mode or permissive mode?
    • Output format preference (text report vs JSON)?
  2. Check if .stack-validator.yml exists for custom rules
  3. Note the working directory for reporting

Phase 2: Directory Structure Validation

Step 1: Required Directories

  1. Check for required directories:
    • ./config - Configuration files directory
    • ./secrets - Secrets storage directory
    • ./_temporary - Temporary files directory
  2. For each missing directory, record:
    • Directory name
    • Purpose and why it's required
    • Impact on stack functionality

Step 2: Directory Permissions

  1. Check ./secrets has restricted permissions (700 or 600)
  2. Verify other directories have appropriate permissions
  3. Report any permission issues with security implications

Step 3: Directory Ownership

  1. Scan all project directories for ownership
  2. Flag any root-owned directories:
    • Directory path
    • Current owner
    • Expected owner (current user or docker user)
  3. Flag any files with unexpected ownership

Step 4: .gitignore Validation

  1. Check if .gitignore exists
  2. Verify it excludes:
    • ./secrets or ./secrets/*
    • ./_temporary or ./_temporary/*
    • .env (should not be in git)
  3. Report missing exclusions with security implications

Phase 3: Environment Variables Validation

Step 1: .env File Validation

  1. Check if .env file exists
  2. Parse .env file for:
    • Syntax errors
    • Duplicate variable definitions
    • Empty values that might be required
  3. Record all environment variable names found

Step 2: .env.example Validation

  1. Check if .env.example exists
  2. If missing, this is a critical issue - document why it's needed
  3. Parse .env.example for variable names

Step 3: .env Synchronization Check

  1. Compare variables in .env with .env.example:
    • Variables in .env but NOT in .env.example
    • Variables in .env.example but NOT in .env
  2. This is a critical validation point - they must match
  3. Report any mismatches with specific variable names

Step 4: Environment Variable Security

  1. Scan .env for potential secrets:
    • Variables with names containing: password, secret, key, token, api
    • Base64-encoded looking values
    • Long random strings
  2. If secrets detected in .env, flag as security issue
  3. Suggest moving to ./secrets and Docker secrets instead

Phase 4: Docker Configuration Validation

Step 1: Invoke docker-validation Skill

  1. Use the docker-validation skill to validate:
    • docker-compose.yml syntax and best practices
    • Dockerfile(s) if present
    • Multi-stage builds
    • Security configurations
  2. Collect all findings from docker-validation
  3. Integrate into overall stack validation report

Step 2: Stack-Specific Docker Checks

  1. Review docker-compose.yml for stack patterns:
    • Secrets are defined in top-level secrets: section
    • Services reference secrets via secrets: key (not environment variables)
    • Volume mounts follow patterns (./config, ./secrets, ./_temporary)
    • Networks are properly defined if multi-service
    • Service dependencies use depends_on correctly

Step 3: Version Check

  1. Ensure docker-compose.yml does NOT have version field at top
  2. This follows modern Docker Compose specification
  3. If version field present, flag for removal

Phase 5: Secrets Management Validation

Step 1: Secrets Directory Check

  1. Verify ./secrets directory exists
  2. Check permissions are restrictive (700)
  3. Verify it's excluded from git

Step 2: Docker Secrets Validation

  1. Parse docker-compose.yml for secrets definitions
  2. For each secret definition:
    • Verify the secret file exists in ./secrets
    • Check file permissions (600 or 400)
    • Verify not tracked by git
  3. Report missing secret files

Step 3: Secret References Validation

  1. Check each service's secrets: section
  2. Verify referenced secrets are defined in top-level secrets
  3. Flag any undefined secret references

Step 4: Environment Variables vs Secrets

  1. Scan service environment variables for potential secrets
  2. Look for patterns like:
    • *_PASSWORD
    • *_SECRET
    • *_KEY
    • *_TOKEN
    • API_*
  3. If sensitive data in environment, suggest using secrets instead

Step 5: Secret Exposure Check

  1. Check for secrets in:
    • docker-compose.yml (hardcoded values)
    • .env file (should be in ./secrets instead)
    • Configuration files in ./config
    • Any shell scripts
  2. Report any exposed secrets as critical security issues

Phase 6: Configuration Files Validation

Step 1: Config Directory Structure

  1. List all files in ./config directory
  2. Organize by service (if applicable)
  3. Check for proper organization

Step 2: Config File Validation

  1. For common config file types, validate syntax:
    • YAML files (.yml, .yaml)
    • JSON files (.json)
    • INI files (.ini, .conf)
    • TOML files (.toml)
  2. Report any syntax errors

Step 3: Config vs Secrets Separation

  1. Scan config files for potential secrets
  2. Look for hardcoded passwords, tokens, keys
  3. Flag any secrets that should be in ./secrets instead

Step 4: Config Ownership

  1. Check all config files for ownership
  2. Flag any root-owned config files
  3. Report expected ownership (current user)

Phase 7: Script Validation

Step 1: docker-entrypoint.sh Detection

  1. Search for docker-entrypoint.sh files
  2. For each found:
    • Document location
    • Check if truly necessary
  3. Validate it's only used when container doesn't support native secrets

Step 2: Script Permissions

  1. Check docker-entrypoint.sh is executable (chmod +x)
  2. Verify ownership (should not be root)
  3. Report permission issues

Step 3: Script Content Validation

  1. Scan script for:
    • Hardcoded secrets (critical issue)
    • Proper secret handling from /run/secrets/
    • Error handling
    • Syntax errors (if bash/sh)
  2. Report any issues found

Step 4: Necessity Check

  1. Review if docker-entrypoint.sh is truly needed
  2. Check if service supports native Docker secrets
  3. Suggest removal if unnecessary

Phase 8: Temporary Directory Validation

Step 1: Directory Check

  1. Verify ./_temporary exists
  2. Check it's in .gitignore
  3. Verify permissions

Step 2: Content Check

  1. List contents of ./_temporary
  2. Check for:
    • Leftover files that should be cleaned
    • Large files consuming space
    • Old files (> 7 days old)
  3. Report if not empty with details

Step 3: Usage Validation

  1. Check if ./_temporary is properly mounted in docker-compose.yml
  2. Verify services use it for temporary files
  3. Flag if not being utilized

Phase 9: File Ownership Audit

Step 1: Comprehensive Ownership Scan

  1. Use find . -type f -user root 2>/dev/null to find root-owned files
  2. Exclude expected directories (.git, node_modules, vendor)
  3. List all root-owned files found

Step 2: Categorize Issues

  1. Group by directory:
    • ./config files owned by root
    • ./secrets files owned by root
    • Application files owned by root
  2. Report with specific paths

Step 3: Impact Assessment

  1. For each root-owned file:
    • Explain why this is problematic
    • Impact on stack operations
    • Potential errors that may occur

Phase 10: Report Generation

Step 1: Compile All Findings

  1. Organize findings by category:
    • Directory Structure
    • Environment Variables (.env sync)
    • Docker Configuration
    • Secrets Management
    • Configuration Files
    • Scripts (docker-entrypoint.sh)
    • Temporary Directory
    • File Ownership
  2. Assign severity levels:
    • ❌ CRITICAL: Security issues, missing required components, .env mismatch
    • ⚠️ WARNING: Best practice violations, potential issues
    • ✅ PASS: No issues found

Step 2: Generate Validation Report

Create a comprehensive report with this structure:

🔍 GitLab Stack Validation Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Stack: [directory name]
Date: [timestamp]
Mode: [strict/permissive]

📊 SUMMARY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Passed: [count]
⚠️  Warnings: [count]
❌ Critical: [count]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 DETAILED FINDINGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[For each validation category]

[Category Icon] [Category Name]: [STATUS]
[If issues found:]
   ❌ [Issue description]
      Location: [file/directory path]
      Impact: [what this affects]
      Details: [specific information]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🎯 OVERALL STATUS: [PASSED/FAILED/WARNINGS]

[If failures or warnings:]
🔧 RECOMMENDED ACTIONS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Prioritized list of actions needed]
1. [Most critical action]
2. [Next action]
...

💡 NEXT STEPS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Use stack-creator skill to fix structural issues
- Use secrets-manager skill to properly configure secrets
- Re-run validation after fixes

Step 3: Provide Actionable Guidance

  1. For each issue, provide:
    • Clear description of the problem
    • Why it matters
    • Which companion skill can help fix it
    • General guidance (but not actual fix commands)
  2. Prioritize issues by severity
  3. Group related issues together

Step 4: Export Options

  1. If user requested JSON output, export as:
    {
      "stack": "directory-name",
      "timestamp": "ISO-8601",
      "summary": {
        "passed": 5,
        "warnings": 2,
        "critical": 1,
        "status": "failed"
      },
      "findings": [
        {
          "category": "environment-variables",
          "status": "critical",
          "issues": [...]
        }
      ]
    }
    

Validation Categories Reference

1. Directory Structure

  • Required directories exist
  • Proper permissions
  • .gitignore coverage
  • Ownership correctness

2. Environment Variables

  • .env file exists and valid
  • .env.example exists
  • CRITICAL: .env and .env.example are synchronized
  • No secrets in .env

3. Docker Configuration

  • docker-compose.yml valid (via docker-validation skill)
  • No version field
  • Secrets properly defined
  • Volumes follow patterns
  • Service dependencies correct

4. Secrets Management

  • ./secrets directory secure
  • All referenced secrets exist
  • Proper permissions
  • No exposed secrets
  • Environment variables don't contain secrets

5. Configuration Files

  • Proper organization
  • Valid syntax
  • No embedded secrets
  • Correct ownership

6. Scripts

  • docker-entrypoint.sh only when necessary
  • Executable permissions
  • No hardcoded secrets
  • Proper secret handling

7. Temporary Directory

  • Exists and in .gitignore
  • Empty or contains only expected transient files
  • Properly utilized in compose file

8. File Ownership

  • No root-owned files
  • Consistent ownership
  • Proper user/group

Integration with Companion Skills

stack-creator

  • Recommend for: Creating missing directories, initializing structure
  • Handles: Setting up new stacks, fixing structural issues

secrets-manager

  • Recommend for: Secrets configuration, secret file management
  • Handles: Creating/updating secrets, proper secret setup

docker-validation

  • Used directly during validation for Docker-specific checks
  • Provides: Docker Compose and Dockerfile validation
  • Integrated into stack validation report

Validation Modes

Standard Mode (Default)

  • Report all issues as warnings or errors
  • Provide comprehensive findings
  • Suggest improvements

Strict Mode

  • Fail on warnings
  • Require all best practices
  • Zero tolerance for deviations

Permissive Mode

  • Only fail on critical issues
  • Allow warnings
  • More lenient on best practices

Configuration Support

If .stack-validator.yml exists in project root, respect these settings:

# Validation mode
strict_mode: false

# Whether warnings should fail validation
fail_on_warnings: false

# Paths to exclude from validation
exclude_paths:
  - ./vendor
  - ./node_modules
  - ./_temporary/cache

# Custom validation scripts to run
custom_checks:
  - ./scripts/custom-validation.sh

# Specific checks to skip
skip_checks:
  - temporary-directory-empty

Communication Style

When reporting validation results:

  1. Be Clear and Direct: State issues plainly without hedging
  2. Be Specific: Include exact file paths, line numbers, variable names
  3. Be Actionable: Explain what needs to be done (without doing it)
  4. Be Helpful: Point to companion skills that can fix issues
  5. Be Organized: Group related issues, prioritize by severity
  6. Be Educational: Explain why something is an issue
  7. Be Concise: Don't overwhelm with details, but be thorough

Critical Validation Points

These are must-pass criteria for production stacks:

  1. ✅ .env and .env.example are fully synchronized
  2. ✅ No secrets in docker-compose.yml environment variables
  3. ✅ ./secrets directory exists and has restrictive permissions
  4. ✅ All referenced secrets exist
  5. ✅ ./secrets and ./_temporary are in .gitignore
  6. ✅ No root-owned files
  7. ✅ docker-compose.yml passes docker-validation
  8. ✅ No secrets exposed in git
  9. ✅ .env file is not tracked by git

Important Notes

  • Read-Only: This skill NEVER modifies files - validation only
  • Detection-Focused: Report issues, don't fix them
  • Comprehensive: Check all aspects systematically
  • Fast: Complete validation in seconds
  • Integrative: Use docker-validation skill for Docker checks
  • Companion-Aware: Direct users to appropriate skills for fixes

Example Validation Flow

User: "Validate my stack"

1. Check if docker-compose.yml exists ✅
2. Verify directory structure
   - ./config ✅
   - ./secrets ✅
   - ./_temporary ⚠️ (not in .gitignore)
3. Validate .env configuration
   - .env exists ✅
   - .env.example exists ❌ CRITICAL
4. Run docker-validation skill
   - docker-compose.yml syntax ✅
   - Secrets configuration ⚠️ (using environment vars)
5. Check secrets management
   - ./secrets permissions ✅
   - Secret files exist ✅
6. Scan for ownership issues
   - Found 3 root-owned files in ./config ❌
7. Generate report with findings
8. Suggest: Use stack-creator to add .env.example and fix .gitignore

This skill ensures stack quality, security, and deployment readiness through comprehensive validation.

FAQ

What does the gitlab stack validator skill do?

Validates GitLab stack projects before deployment, ensuring proper architecture patterns, directory structure, secrets management, .env configuration, and Docker best practices. Use when users ask to validate a stack, check stack configuration, verify stack architecture, audit stack setup, or ensure stack deployment readiness.

How do I install gitlab stack validator?

Run npx skills add https://github.com/rknall/claude-skills --skill gitlab-stack-validator in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/gitlab-stack-validator/ (personal) or .claude/skills/gitlab-stack-validator/ (project).

Which AI agents can use gitlab stack validator?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is gitlab stack validator safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains gitlab stack validator?

It is published by rknall in rknall/claude-skills. It has 284 recorded installs.

More from rknall/claude-skills

View all →

svg logo designer

rknall/claude-skills

Create professional SVG logos from descriptions and design specifications. Generates multiple logo variations with different layouts, styles, and concepts. Produces scalable vector graphics that can be used directly or exported to PNG. Use this skill when users ask to create logos, brand identities, icons, or visual marks for their designs.

Frontend & Design8.2K installs

ui/ux design review

rknall/claude-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design535 installs

Comprehensive design architecture review for Python backend applications. Use this skill when users ask you to review, analyze, or provide feedback on backend architecture designs, system design documents, or Python application architecture. Covers scalability, security, performance, database design, API design, microservices patterns, deployment architecture, and best practices.

web design builder

rknall/claude-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design417 installs

docker configuration validator

rknall/claude-skills

Open the skill to read its SKILL.md instructions.

DevOps & Cloud338 installs

gitlab stack config generator

rknall/claude-skills

Open the skill to read its SKILL.md instructions.

291 installs

Popular devops & cloud skills

View category →

microsoft-foundry

microsoft/azure-skills

Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure

OfficialDevOps & Cloud579.1K installs

azure-diagnostics

microsoft/azure-skills

Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.

OfficialDevOps & Cloud569.8K installs

azure-prepare

microsoft/azure-skills

Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.

OfficialDevOps & Cloud569K installs

azure-ai

microsoft/azure-skills

Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.

OfficialDevOps & Cloud568.8K installs

azure-deploy

microsoft/azure-skills

Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.

OfficialDevOps & Cloud568.6K installs

azure-validate

microsoft/azure-skills

Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.

OfficialDevOps & Cloud568K installs