Get the FREE Ultimate OpenClaw Setup Guide →

ln-115-devops-docs-creator

npx machina-cli add skill levnikolaevich/claude-code-skills/ln-115-devops-docs-creator --openclaw
Files (1)
SKILL.md
4.5 KB

Paths: File paths (shared/, references/, ../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.

DevOps Documentation Creator

L3 Worker that creates runbook.md. CONDITIONAL - only invoked when project has Docker or deployment config.

Purpose & Scope

  • Creates runbook.md (if hasDocker)
  • Receives Context Store from ln-110-project-docs-coordinator
  • Step-by-step setup and deployment instructions
  • Troubleshooting guide
  • Never gathers context itself; uses coordinator input

Invocation (who/when)

  • ln-110-project-docs-coordinator: CONDITIONALLY invoked when:
    • hasDocker=true (Dockerfile or docker-compose.yml detected)
  • Never called directly by users

Inputs

From coordinator:

  • contextStore: Context Store with DevOps-specific data
    • DOCKER_COMPOSE_DEV (development setup)
    • DOCKER_COMPOSE_PROD (production setup)
    • ENV_VARIABLES (from .env.example)
    • STARTUP_SEQUENCE (services order)
    • DEPLOYMENT_TARGET (AWS, Vercel, Heroku)
    • CI_CD_PIPELINE (from .github/workflows)
    • DOCKER_SERVICES (parsed from docker-compose.yml services)
    • DEPLOYMENT_SCALE ("single" | "multi" | "auto-scaling" | "gpu-based")
    • DEVOPS_CONTACTS (from CODEOWNERS, package.json author, git log)
    • HAS_GPU (detected from docker-compose nvidia runtime)
  • targetDir: Project root directory
  • flags: { hasDocker }

Documents Created (1, conditional)

FileConditionQuestionsAuto-Discovery
docs/project/runbook.mdhasDockerQ46-Q51High

Workflow

Phase 1: Check Conditions

  1. Parse flags from coordinator
  2. If !hasDocker: return early with empty result

Phase 2: Create Document

  1. Check if file exists (idempotent)
  2. If exists: skip with log
  3. If not exists:
    • Copy template
    • Replace placeholders with Context Store values
    • Populate setup steps from package.json scripts
    • Extract env vars from .env.example
    • Mark [TBD: X] for missing data
  4. Conditional Section Pruning:
    • If DEPLOYMENT_SCALE != "multi" or "auto-scaling": Remove scaling/load balancer sections
    • If !HAS_GPU: Remove GPU-related sections (nvidia runtime, CUDA)
    • If service not in DOCKER_SERVICES: Remove that service's examples (e.g., no Redis = no Redis commands)
    • If DEVOPS_CONTACTS empty: Mark {{KEY_CONTACTS}} as [TBD: Provide DevOps team contacts via Q50]
    • Populate {{SERVICE_DEPENDENCIES}} ONLY from DOCKER_SERVICES (no generic examples)
    • Populate {{PORT_MAPPING}} ONLY from docker-compose.yml ports section

Phase 3: Self-Validate

  1. Check SCOPE tag
  2. Validate sections:
    • Local Development Setup (prerequisites, install, run)
    • Deployment (platform, build, deploy steps)
    • Troubleshooting (common errors, debugging)
  3. Check env vars documented
  4. Check Maintenance section

Phase 4: Return Status

{
  "created": ["docs/project/runbook.md"],
  "skipped": [],
  "tbd_count": 0,
  "validation": "OK"
}

Critical Notes

Core Rules

  • Conditional: Skip entirely if no Docker detected
  • Heavy auto-discovery: Most data from docker-compose.yml, .env.example, package.json
  • Reproducible: Setup steps must be testable and repeatable
  • Idempotent: Never overwrite existing files

NO_CODE_EXAMPLES Rule (MANDATORY)

Runbook documents procedures, NOT implementations:

  • FORBIDDEN: Full Docker configs, CI/CD pipelines (>5 lines)
  • ALLOWED: Command examples (1-3 lines), env var tables, step lists
  • INSTEAD OF CODE: "See docker-compose.yml"

Stack Adaptation Rule (MANDATORY)

  • Commands must match project stack (npm vs pip vs go)
  • Link to correct cloud provider docs (AWS/Azure/GCP)
  • Never mix stack references (no npm commands in Python project)

Format Priority (MANDATORY)

Tables (env vars, ports, services) > Lists (setup steps) > Text

Definition of Done

  • Condition checked (hasDocker)
  • Document created if applicable
  • Setup steps, deployment, troubleshooting documented
  • All env vars from .env.example included
  • Actuality verified: all document facts match current code (paths, functions, APIs, configs exist and are accurate)
  • Status returned to coordinator

Reference Files

  • Templates: references/templates/runbook_template.md
  • Questions: references/questions_devops.md (Q46-Q51)

Version: 1.1.0 Last Updated: 2025-01-12

Source

git clone https://github.com/levnikolaevich/claude-code-skills/blob/master/ln-115-devops-docs-creator/SKILL.mdView on GitHub

Overview

DevOps Documentation Creator automatically generates a runbook.md for Docker-based projects. It is invoked only when a Docker or deployment config is detected and relies on input from the ln-110-project-docs-coordinator. The result is a structured, deployment-ready guide covering setup, deployment steps, and troubleshooting.

How This Skill Works

When hasDocker is true, Phase 2 copies a template for docs/project/runbook.md, fills placeholders with contextStore values (DOCKER_COMPOSE_DEV/PROD, ENV_VARIABLES, STARTUP_SEQUENCE, DEPLOYMENT_TARGET, CI_CD_PIPELINE, DOCKER_SERVICES, DEPLOYMENT_SCALE, DEVOPS_CONTACTS, HAS_GPU), and populates steps from package.json scripts. It extracts env vars from .env.example and maps ports from docker-compose.yml, then prunes sections based on deployment_scale, GPU availability, and present services. Phase 3 validates sections and Phase 4 returns a status object, ensuring idempotence and non-overwriting behavior.

When to Use It

  • You have a Docker-based project and need an official runbook.md generated
  • You want deployment/setup steps auto-filled from package.json and .env.example
  • You target specific deployment environments (AWS, Vercel, Heroku) via contextStore
  • You need conditional content pruning based on scaling, GPU use, or missing services
  • You require idempotent document creation with safe handling of existing runbooks

Quick Start

  1. Step 1: Ensure hasDocker flag is true and provide targetDir at project root
  2. Step 2: Supply contextStore from ln-110-project-docs-coordinator (including DOCKER_SERVICES, DEPLOYMENT_TARGET, etc.)
  3. Step 3: Run ln-115-devops-docs-creator and review docs/project/runbook.md for accuracy

Best Practices

  • Always verify hasDocker is true before invoking to avoid unnecessary work
  • Keep generated docs idempotent; do not overwrite existing runbooks
  • Accurately populate DOCKER_SERVICES and PORT_MAPPING from docker-compose.yml
  • Use actual environment data from .env.example and package.json scripts
  • Review and validate Local Development, Deployment, and Troubleshooting sections after generation

Example Use Cases

  • A multi-service app using docker-compose with Redis and PostgreSQL, generating full runbook.md with service-specific steps
  • Production deployment to AWS where DOCKER_SERVICES include ECS tasks and a multi-region setup
  • GPU-enabled workload leveraging NVIDIA runtime and CUDA sections in the runbook
  • Repository with an npm-based stack where setup scripts are pulled from package.json
  • Existing runbook.md present; the tool detects and preserves it, logging a skip instead of overwriting

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers