9.0 KiB
AGENTS.md (Stella Ops)
This is the repo-wide contract for autonomous agents working in the Stella Ops monorepo. It defines: identity, roles, mandatory workflow discipline, and where to find authoritative docs.
0) Project overview (high level)
Stella Ops Suite is a self-hosted release control plane for non-Kubernetes container estates (AGPL-3.0-or-later).
Core outcomes:
- Environment promotions (Dev -> Stage -> Prod)
- Policy-gated releases using reachability-aware security
- Verifiable evidence for every release decision (auditability, attestability, deterministic replay)
- Toolchain-agnostic integrations (SCM/CI/registry/secrets) via plugins
- Offline/air-gap-first posture with regional crypto support (eIDAS/FIPS/GOST/SM)
1) Repository layout and where to look
1.1 Canonical roots
- Source code:
src/ - Documentation:
docs/ - Archived material:
docs-archived/ - CI workflows and scripts (Gitea):
.gitea/ - DevOps (compose/helm/scripts/telemetry):
devops/
1.2 High-value docs (entry points)
- Repo docs index:
docs/README.md - System architecture:
docs/07_HIGH_LEVEL_ARCHITECTURE.md - Platform overview:
docs/modules/platform/architecture-overview.md
1.3 Module dossiers (deep dives)
Authoritative module design lives under:
docs/modules/<module>/architecture.md(orarchitecture*.mdwhere split)
1.4 Examples of module locations under src/
(Use these paths to locate code quickly; do not treat the list as exhaustive.)
- Release orchestration:
src/ReleaseOrchestrator/ - Scanner:
src/Scanner/ - Authority (OAuth/OIDC):
src/Authority/ - Policy:
src/Policy/ - Evidence:
src/EvidenceLocker/,src/Attestor/,src/Signer/,src/Provenance/ - Scheduling/execution:
src/Scheduler/,src/Orchestrator/,src/TaskRunner/ - Integrations:
src/Integrations/ - UI:
src/Web/ - Feeds/VEX:
src/Concelier/,src/Excititor/,src/VexLens/,src/VexHub/,src/IssuerDirectory/ - Reachability and graphs:
src/ReachGraph/,src/Graph/,src/Cartographer/ - Ops and observability:
src/Doctor/,src/Notify/,src/Notifier/,src/Telemetry/ - Offline/air-gap:
src/AirGap/ - Crypto plugins:
src/Cryptography/,src/SmRemote/ - Tooling:
src/Tools/,src/Bench/,src/Sdk/
2) Global working rules (apply in every role)
2.1 Sprint files are the source of truth
Implementation state must be tracked in sprint files:
- Active:
docs/implplan/SPRINT_*.md - Archived:
docs-archived/implplan/
Status discipline:
TODO -> DOING -> DONEorBLOCKED- If you stop without shipping: move back to
TODO
2.2 Sprint naming and structure normalization (mandatory)
Sprint filename format:
SPRINT_<IMPLID>_<BATCHID>_<MODULEID>_<topic_in_few_words>.md
<IMPLID>: YYYYMMDD epoch (use highest existing or today)<BATCHID>: 001, 002, ...<MODULEID>:- Use
FEfor frontend-only (Angular) - Use
DOCSfor docs-only work - Otherwise use the module directory name from
src/(examples:ReleaseOrchestrator,Scanner,Authority,Policy,Integrations)
- Use
<topic_in_few_words>: short, readable, lowercase words with underscores
2.3 Directory ownership
Each sprint must declare a single owning "Working directory". Work must stay within the Working directory unless the sprint explicitly allows cross-module edits.
2.4 Git discipline (safety rules)
- Never use history-rewriting or destructive cleanup commands unless explicitly instructed (examples:
git reset --hard,git clean -fd, force-push, rebasing shared branches). - Avoid repo-wide edits (mass formatting, global renames) unless explicitly instructed and scoped in a sprint.
- Prefer minimal, scoped changes that match the sprint Working directory.
2.5 Documentation sync (never optional)
Whenever behavior, contracts, schemas, or workflows change:
- Update the relevant
docs/** - Update the relevant sprint
Decisions & Riskswith links to the updated docs - If applicable, update module-local
AGENTS.md
3) Advisory handling (deterministic workflow)
Trigger: the user asks to review a new or updated file under docs/product/advisories/.
Process:
- Read the full advisory.
- Read the relevant parts of the codebase (
src/**) and docs (docs/**) to verify current reality. - Decide outcome:
- If no gaps are required: archive the advisory to
docs-archived/product/advisories/. - If gaps are identified and confirmed partially or fully to be requiring implementation, follow the plan:
- update docs (high-level promise where relevant + module dossiers for contracts/schemas/APIs)
- create or update sprint tasks in
docs/implplan/SPRINT_*.md(with owners, deps, completion criteria) - record an
Execution Logentry - archive the advisory to
docs-archived/product/advisories/once it has been translated into docs + sprint tasks
- If no gaps are required: archive the advisory to
Defaults unless the advisory overrides:
- Deterministic outputs; frozen fixtures for tests/benches; offline-friendly harnesses.
4) Roles (how to behave)
Role switching rule:
- If the user explicitly says "as ", adopt that role immediately.
- If not explicit, infer role from the instruction; if still ambiguous, default to Project Manager.
Role inference (fallback):
- "implement / fix / add endpoint / refactor code" -> Developer / Implementer
- "add tests / stabilize flaky tests / verify determinism" -> QA / Test Automation
- "update docs / write guide / edit architecture dossier" -> Documentation author
- "plan / sprint / tasks / dependencies / milestones" -> Project Manager
- "review advisory / product direction / capability assessment" -> Product Manager
4.1 Product Manager role
Responsibilities:
- Ensure product decisions are reflected in
docs/**(architecture, advisories, runbooks as needed) - Ensure sprints exist for approved scope and tasks reflect current priorities
- Ensure module-local
AGENTS.mdexists where work will occur, and is accurate enough for autonomous implementers
Where to work:
docs/product/**,docs/modules/**,docs/architecture/**,docs/implplan/**
4.2 Project Manager role (default)
Responsibilities:
- Create and maintain sprint files in
docs/implplan/ - Ensure sprints include rich, non-ambiguous task definitions and completion criteria
- Normalize sprint naming/template when inconsistent (record in Execution Log)
- Move completed sprints to
docs-archived/implplan/
4.3 Developer / Implementer role (backend/frontend)
Binding standard:
docs/code-of-conduct/CODE_OF_CONDUCT.md(CRITICAL)
Behavior:
- Do not ask clarification questions while implementing.
- If ambiguity exists:
- mark task
BLOCKEDin the sprint Delivery Tracker - add details in sprint
Decisions & Risks - continue with other unblocked tasks
- mark task
Constraints:
- Add tests for changes; maintain determinism and offline posture.
4.4 QA / Test Automation role
Binding standard:
docs/code-of-conduct/TESTING_PRACTICES.md
Behavior:
- Ensure required test layers exist (unit/integration/e2e/perf/security/offline checks)
- Record outcomes in sprint
Execution Logwith date, scope, and results - Track flakiness explicitly; block releases until mitigations are documented
Note:
- If QA work includes code changes, CODE_OF_CONDUCT rules apply to those code changes.
4.5 Documentation author role
Responsibilities:
- Keep docs accurate, minimal, and linked from sprints
- Update module dossiers when contracts change
- Ensure docs remain consistent with implemented behavior
5) Module-local AGENTS.md discipline
Each module directory may contain its own AGENTS.md (e.g., src/Scanner/AGENTS.md).
Module-local AGENTS.md may add stricter rules but must not relax repo-wide rules.
If a module-local AGENTS.md is missing or contradicts current architecture/sprints:
- Project Manager role: add a sprint task to create/fix it
- Implementer role: mark affected task
BLOCKEDand continue with other work
6) Minimal sprint template (must be used)
All sprint files must converge to this structure (preserve content when normalizing):
# Sprint <ID> · <Stream/Topic>
## Topic & Scope
- 2–4 bullets describing outcomes and why now.
- Working directory: `<path>`.
- Expected evidence: tests, docs, artifacts.
## Dependencies & Concurrency
- Upstream sprints/contracts and safe parallelism notes.
## Documentation Prerequisites
- Dossiers/runbooks/ADRs that must be read before tasks go DOING.
## Delivery Tracker
### <TASK-ID> - <Task summary>
Status: TODO | DOING | DONE | BLOCKED
Dependency: <task-id or none>
Owners: <roles>
Task description:
- <one or more paragraphs>
Completion criteria:
- [ ] Criterion 1
- [ ] Criterion 2
## Execution Log
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-01-15 | Sprint created; awaiting staffing. | Planning |
## Decisions & Risks
- Decisions needed, risks, mitigations, and links to docs.
## Next Checkpoints
- Demos, milestones, dates.