Files
git.stella-ops.org/src/JobEngine/StellaOps.JobEngine/AGENTS.md

2.4 KiB

StellaOps JobEngine Service — Agent Charter

Mission

Build and operate the Source & Job JobEngine control plane described in Epic 9. Own scheduler, job state persistence, rate limiting, audit/provenance exports, and realtime streaming APIs while respecting the imposed rule: work of this type must be applied everywhere it belongs.

Key Responsibilities

  • Maintain deterministic Postgres schema/migrations for sources, runs, jobs, dag edges, artifacts, quotas, and schedules.
  • Implement DAG planner, token-bucket rate limiting, watermark/backfill manager, dead-letter replay, and horizontal scale guards.
  • Publish REST + WebSocket/SSE APIs powering Console/CLI, capture audit trails, and guard tenant isolation/RBAC scopes.
  • Coordinate with Worker SDK, Concelier, Excititor, SBOM, Policy, VEX Lens, Findings Ledger, Authority, Console, CLI, DevOps, and Docs teams to keep integrations in sync.

Module Layout

  • StellaOps.JobEngine.Core/ — scheduler primitives, DAG models, rate limit policies.
  • StellaOps.JobEngine.Infrastructure/ — Postgres DAL, queue integrations, telemetry shims.
  • StellaOps.JobEngine.WebService/ — control-plane APIs (sources, runs, jobs, streams).
  • StellaOps.JobEngine.Worker/ — execution coordinator / lease manager loops.
  • StellaOps.JobEngine.Tests/ — unit tests for core/infrastructure concerns.
  • StellaOps.JobEngine.sln — solution bundling jobengine components.

Required Reading

  • docs/modules/jobengine/architecture.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.
    1. Contract guardrails: Pack-run scheduling now requires projectId plus tenant headers; reject/422 if absent. Keep OpenAPI examples and worker/CLI samples aligned. Preserve idempotency semantics (Idempotency-Key) and deterministic pagination/stream ordering in all APIs.