Files
git.stella-ops.org/docs/operations/devops/AGENTS.md
2026-02-01 21:37:40 +02:00

3.5 KiB

DevOps agent guide

Mission

The DevOps module captures release, deployment, and migration playbooks that keep StellaOps deterministic across environments.

Advisory Handling

  • Any new/updated advisory triggers immediate doc + sprint updates (no approval).
  • Update high-level + detailed docs; inline only short snippets; put runnable/long code in docs/benchmarks/** or tests/** (deterministic/offline) and link.
  • Add tasks + Execution Log entries in relevant SPRINT_*.md with doc paths/owners; add risks if schema/feed/transparency caps apply.
  • Check archived advisories; mark supersedes/extends if overlapping.
  • Defaults: hybrid reachability, deterministic/frozen feeds; act first, report after.

Key docs

How to get started

  1. Open sprint file /docs/implplan/SPRINT_*.md and locate the stories referencing this module.
  2. Review ./TASKS.md for local follow-ups and confirm status transitions (TODO → DOING → DONE/BLOCKED).
  3. Read the architecture and README for domain context before editing code or docs.
  4. Coordinate cross-module changes in the main /AGENTS.md description and through the sprint plan.

Known Quirks (CI/Test Runner Infrastructure)

  • Q1 — PowerShell exit code capture: Start-Process -Wait -RedirectStandardOutput returns null ExitCode for dotnet test. Use System.Diagnostics.Process with ProcessStartInfo and WaitForExit(timeout) instead.
  • Q2 — xUnit v3 output format: Test output is Failed: 0, Passed: 8, Skipped: 0, Total: 8. Parse with Passed:\s+(\d+) regex, not the older Tests succeeded: format.
  • Q3 — xUnit v3 empty projects: Projects with no [Fact]/[Theory] methods return exit code 1 (NO_TESTS), not 0. Account for this in CI scripts.
  • Q6 — MSBuild OOM at high parallelism: Running >3 concurrent dotnet test processes causes out-of-memory (0x5aa). Limit to max 3 concurrent processes. RestoreDisableParallel=true is set in Directory.Build.props.
  • Q7 — Windows Git Bash Docker socket path: MSYS converts /var/run/docker.sock to C:/var/run/docker.sock. Use MSYS_NO_PATHCONV=1 and double-slash //var/run/docker.sock.

Guardrails

  • Honour the Aggregation-Only Contract where applicable (see ../../aoc/aggregation-only-contract.md).
  • Preserve determinism: sort outputs, normalise timestamps (UTC ISO-8601), and avoid machine-specific artefacts.
  • Keep Offline Kit parity in mind—document air-gapped workflows for any new feature.
  • Update runbooks/observability assets when operational characteristics change.

Required Reading

  • docs/operations/devops/README.md
  • docs/operations/devops/architecture.md
  • docs/operations/devops/implementation_plan.md
  • docs/modules/platform/architecture-overview.md

Working Agreement

    1. Update task status to DOING/DONE in both correspoding sprint file /docs/implplan/SPRINT_*.md and the local TASKS.md when you start or finish work.
    1. Review this charter and the Required Reading documents before coding; confirm prerequisites are met.
    1. Keep changes deterministic (stable ordering, timestamps, hashes) and align with offline/air-gap expectations.
    1. Coordinate doc updates, tests, and cross-guild communication whenever contracts or workflows change.
    1. Revert to TODO if you pause the task without shipping changes; leave notes in commit/PR descriptions for context.