agentsclimarketplace

Devops analyze

Skill sirius-zuo/devops-skills/skills/devops-analyze

Use when called by the devops dispatcher to analyze a project and gather DevOps configuration choices through guided questions before generating configsFrom its SKILL.md

Install
npx -y skills add sirius-zuo/devops-skills --skill devops-analyze

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.6 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it

DevOps Analysis & Guided Questions

Overview

Reads project sources, detects the tech stack, then asks 6 guided questions with smart defaults. Produces devops/report/analysis.json consumed by all downstream sub-skills.

Step 1: Determine Scenario

Scan the working directory to determine which scenario applies:

SignalScenario
Source code files present + devops/ folder with config filesreview
Source code files present, no devops/ foldercodebase
Only .md docs/design files, no source codedesign

Source code signals: .py, .ts, .tsx, .js, .mjs, .go, .java, .rb, .rs, .cs files outside of docs/.

If devops/report/analysis.json already exists and contains a scenario field, use that value without re-deriving.

Step 2: What to Read Per Scenario

ScenarioRead These
designAll .md files in docs/, design/, spec/; ADRs; any package.json, requirements.txt, go.mod, pom.xml for dependency hints
codebaseSource file extensions for language; import statements for framework; ORM config files (database.yml, alembic.ini, prisma/schema.prisma); .env.example; existing Dockerfile or docker-compose.yml if present
reviewEverything above + .github/workflows/*.yml; .gitlab-ci.yml; .circleci/config.yml; terraform/ or pulumi/ directories; existing docker-compose*.yml

Step 3: Stack Detection Rules

Apply these when reading source files:

Language detection (by file extension):

  • .py → Python
  • .ts or .tsx → TypeScript
  • .js or .mjs → JavaScript
  • .go → Go
  • .java → Java
  • .rb → Ruby
  • .rs → Rust
  • .cs → C#

Framework detection (by imports/dependencies):

  • express or fastify → Node.js web
  • react or next → React/Next.js
  • fastapi or django or flask → Python web
  • gin or echo or fiber → Go web
  • spring → Java Spring
  • rails → Ruby on Rails

Database detection (by ORM/driver imports or compose services):

For prisma: read prisma/schema.prisma and look for provider = "postgresql" → PostgreSQL, provider = "mysql" → MySQL. If not found, default to PostgreSQL.

For sequelize or typeorm: look for database URL patterns in .env.example or config files (postgresql:// → PostgreSQL, mysql:// → MySQL). Default to PostgreSQL if not found.

For sqlalchemy or django.db: look for DATABASE_URL in .env.example or settings.py (postgresql:// → PostgreSQL, mysql:// → MySQL). Default to PostgreSQL if not found.

For mongoose: MongoDB.

For redis package import: Redis.

Cloud detection (by SDK imports):

  • boto3, @aws-sdk → AWS
  • google-cloud, @google-cloud → GCP
  • @azure → Azure

CI/CD detection (by directory/file presence):

  • .github/workflows/ → GitHub Actions
  • .gitlab-ci.yml → GitLab CI
  • .circleci/ → CircleCI

Container/K8s detection:

  • Dockerfile present → set has_dockerfile: true
  • k8s/ or kubernetes/ directory → set has_k8s_manifests: true
  • docker-compose.yml or docker-compose*.yml present → set has_existing_compose: true
  • devops/ directory exists with at least one config file inside → set has_existing_devops_folder: true

External services detection (by import names):

  • stripe → Stripe
  • twilio → Twilio
  • sendgrid or @sendgrid → SendGrid
  • mailgun → Mailgun
  • sentry → Sentry
  • datadog → Datadog

Project name resolution (in priority order):

  1. package.jsonname field
  2. pyproject.toml[project].name field
  3. go.mod → last segment of the module path
  4. pom.xml<artifactId> field
  5. *.gemspecspec.name field
  6. Fallback: current directory name

Step 4: Guided Questions

Ask these one at a time, in order. Show the detected default in [brackets]. Wait for the user's answer before asking the next question.

If the user says "skip", "unsure", "doesn't matter", or gives no clear answer: use the detected default. If no default was detected, use the first listed option as the fallback. Do not ask again. Exception: for Q5 (secrets management), if a cloud-provider-derived default exists from the mapping below, use that instead of the first listed option.

Q1: Cloud provider

"Cloud provider [detected: X | none detected]: AWS / GCP / Azure / Multi-cloud / Self-hosted"

Q2: CI/CD platform

"CI/CD platform [detected: X | none detected — GitHub Actions recommended if new]: GitHub Actions / GitLab CI / CircleCI"

Q3: Deployment target

"Deployment target [detected: X | none detected]: Containers (ECS/Cloud Run/ACA) / Kubernetes / Serverless (Lambda/Cloud Functions/Azure Functions) / VMs"

Q4: Database and stateful services

"Confirmed stateful services [detected: postgres, redis | none detected]: (confirm the list or add/remove services)"

Q5: Secrets management

First resolve the suggested default using this mapping: AWS → AWS Secrets Manager, GCP → GCP Secret Manager, Azure → Azure Key Vault, none → env files (.env.local gitignored).

Then ask:

"Secrets management [suggested: X]: AWS Secrets Manager / GCP Secret Manager / HashiCorp Vault / Azure Key Vault / env files (.env.local gitignored)"

Q6: Team size

"Team size (affects pipeline complexity): Solo (<5 devs) / Small team (5-20 devs, daily deploys) / Large team (20+ devs, CI on every PR)"

Step 5: Write Output

Create devops/report/ directory if it doesn't exist, then write devops/report/analysis.json:

{
  "scenario": "design | codebase | review",
  "project_name": "detected via resolution chain above",
  "stack": {
    "language": "TypeScript",
    "framework": "Express",
    "database": ["PostgreSQL", "Redis"],
    "external_services": ["Stripe"]
  },
  "choices": {
    "cloud_provider": "AWS",
    "ci_cd_platform": "GitHub Actions",
    "deployment_target": "Containers",
    "secrets_management": "AWS Secrets Manager",
    "team_size": "Small team"
  },
  "detected": {
    "has_dockerfile": false,
    "has_k8s_manifests": false,
    "has_existing_ci": false,
    "has_existing_compose": false,
    "has_existing_devops_folder": false,
    "existing_ci_platform": null
  }
}

Substitute all values from actual detection and user answers. Do not leave template placeholder values.

Set has_existing_ci: true and existing_ci_platform: "GitHub Actions" (or whichever was detected) when a CI config file was found.

Confirm to the user: "Analysis complete. Saved to devops/report/analysis.json."

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.