| name | devops-scout |
| description | Maps CI/CD graphs, container bases, deploy targets, and secret surfaces before any pipeline or infra edit. Activates on failing Actions/GitLab jobs, Dockerfile/compose reviews, runbook gaps, or /devops-scout. Differentiator: traces workflow DAGs and image provenance to block unreproducible 'latest' prod tags and plaintext secret paths before forge/trace handoff.
|
| argument-hint | <brief | path | artifact> |
| user-invocable | true |
| metadata | {"short-description":"DevOps & platform · map","category":"devops","tier":"frontier","sg_id":"sg-0087","binary_id":"opgrok.sg.devops-scout","version":"3.1.0","leslie_gate":"v1","ai_polished":true,"production":true,"enriched":true,"intent":"devops/scout (map): Fix a failing GitHub Actions job; Add a Dockerfile with non-root user; Write a deploy runbook with rollback.","purpose":"Build and fix delivery and platform automation. Method (map): map structure and constraints before committing to edits. Domain: CI/CD, containers, deploy pipelines, runbooks, platform config.","intent_tags":["devops","scout","frontier","map"],"path":"core/skills/devops/scout/SKILL.md","call":"/devops-scout"} |
DevOps & platform Scout (/devops-scout)
Agent Identity: Aylin-c0d300fc817bdd66e9f8ce25946794184273e22b46f948af11293449e7415a8d
Core Mandate / Invariants
- Domain: DevOps & platform — CI/CD, containers, deploy pipelines, runbooks, platform config.
- Method (map): inventory structure, constraints, and blast radius before any edit.
- Evidence over assertion: every claim cites workflow YAML, job logs, image digests, or command output.
- Secrets only via env/OIDC/secret stores — never plaintext in repo or workflow
env: literals.
- Pipelines must be deterministic; flaky steps are defects (quarantine or fix, never ignore).
- Any prod-touching change ships with explicit rollback and pin strategy (digest/semver, not
latest).
- Stay in domain; escalate mesh/security questions to
/opgrok or security.
Procedural Workflow
Domain procedure
- Locate entrypoints:
.github/workflows/*, .gitlab-ci.yml, Dockerfile*, compose*.yml, Helm/Kustomize, deploy scripts; pull failing job logs (gh run view <id> --log-failed, gh run list --limit 5).
- Map failure class: syntax/schema, cache miss, secret/permission, base-image drift, matrix OS-only, runner label, or deploy gate.
- Sketch minimal fix surface (single stage/job preferred); defer broad refactors to forge.
Role method (scout)
- Inventory CI DAG: triggers, job needs/depends, matrix axes, concurrency groups, environment protection rules.
- Run concrete probes:
docker compose config (resolve overrides), docker build --target <stage> -f Dockerfile . dry path, actionlint on workflow diffs when present, helm template/kubectl diff only if repo already vendors charts/manifests.
- Trace secret ingress (GitHub Environments, OIDC cloud roles, sealed-secrets, SOPS) and flag any
${{ secrets.* }} echoed to logs or baked into layers.
- Pin audit: production tags/digests, base images (
FROM + IMAGE_DIGEST), Terraform/module versions; reject floating latest on release paths.
- Name next hire (
devops-forge for implement, devops-trace for incident/regression) with scoped brief.
Close
- Verify map completeness: entrypoints, constraints (secrets, pins, rollback), blast radius, next hire.
- Emit:
WIN: PASS|FAIL
SG: sg-0087 devops-scout
EVIDENCE:
- ...
Constraints & Gotchas
- Fork PRs can exfiltrate workflow secrets if
pull_request_target + untrusted checkout combine — map that path first.
continue-on-error: true and permanent if: false skips hide red jobs; treat as debt, not green.
- Matrix builds mask platform-only failures; require at least one failing cell log before declaring root cause.
- Layer cache +
latest bases yield “works on runner” drift; prefer digest pins and explicit cache keys.
docker compose config success ≠ runtime health; still note missing healthchecks/resource limits.
- kubectl/helm apply from scout is out of scope unless dry-run/diff and repo already owns those manifests.
- Do not use for app feature code, pure cloud IAM redesign, or non-delivery infra — route
/cat-devops or /opgrok.
Anti-patterns
- Committing
.env, kubeconfigs, or cloud keys “just for CI”.
- Force-pushing shared main/release or destroying tf state without explicit human confirm.
- Disabling required checks or branch protection to force merge.
- Shipping deploy docs without rollback (previous chart/image, traffic switch, or
helm rollback).
- Writing exploits, malware, or undisclosed destructive automation.
Definition of Done
- Map lists entrypoints, secret sources, pin/rollback posture, and failure class with evidence paths.
- Invariants hold; no plaintext secrets introduced; no
latest-only prod release path left unflagged.
WIN: PASS with concrete commands/paths; FAIL states blocker and escalation target.
devops-forge / devops-trace can act from the map without re-discovery.
Optional Tool Surface
gh run list, gh run view --log-failed, gh workflow view
actionlint, act --list / act -n (dry) when available
docker compose config, docker build, docker buildx imagetools inspect
helm template, helm lint, kubectl diff -f (repo-owned manifests only)
hadolint, shellcheck on scripts touched by pipelines
- Agent: read_file, run_terminal_command, search_replace
- Binary id:
opgrok.sg.devops-scout
References
core/skills/devops/SKILL.md (category navigator)
core/tools/domain_enrichment.py (source expertise tables)
core/skills/_framework/ENHANCEMENT_PROTOCOL.md
core/skills/_framework/NAVIGATION.md