Implement remediation-aware health checks across all Doctor plugin modules (Agent, Attestor, Auth, BinaryAnalysis, Compliance, Crypto, Environment, EvidenceLocker, Notify, Observability, Operations, Policy, Postgres, Release, Scanner, Storage, Vex) and their backing library counterparts (AI, Attestation, Authority, Core, Cryptography, Database, Docker, Integration, Notify, Observability, Security, ServiceGraph, Sources, Verification). Each check now emits structured remediation metadata (severity, category, runbook links, and fix suggestions) consumed by the Doctor dashboard remediation panel. Also adds: - docs/doctor/articles/ knowledge base for check explanations - Advisory AI search seed and allowlist updates for doctor content - Sprint plan for doctor checks documentation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.2 KiB
checkId, plugin, severity, tags
| checkId | plugin | severity | tags | ||||
|---|---|---|---|---|---|---|---|
| check.release.schedule | stellaops.doctor.release | info |
|
Release Schedule Health
What It Checks
Queries the Release Orchestrator at /api/v1/releases/scheduled and evaluates the health of scheduled releases:
- Missed schedules: fail if any scheduled release with status "pending" has a scheduled time in the past.
- Schedule conflicts: warn if two pending releases target the same environment within 1 hour of each other.
- Upcoming releases: informational -- reports releases scheduled within the next 24 hours.
Evidence collected: scheduled_release_count, upcoming_24h_count, missed_schedule_count, conflict_count, missed_releases, conflicts, upcoming_releases.
The check requires ReleaseOrchestrator:Url or Release:Orchestrator:Url to be configured.
Why It Matters
Missed scheduled releases indicate that the release scheduler is not functioning or that prerequisites were not met at the scheduled time. This can delay time-critical deployments such as security patches or compliance deadlines. Schedule conflicts can cause deployment failures when two releases compete for the same environment simultaneously, potentially leaving the environment in an inconsistent state.
Common Causes
- Release scheduler service not running or crashed
- Prerequisite conditions (policy gates, approvals) not met at scheduled time
- Target environment was unavailable when the schedule triggered
- Multiple teams scheduling releases to the same environment without coordination
- Manual schedule override without checking for existing schedules
- Clock skew between scheduler and orchestrator services
How to Fix
Docker Compose
# View missed schedules
stella release schedule list --missed
# Run a missed release immediately
stella release schedule run <schedule-id>
# View schedule conflicts
stella release schedule list --conflicts
# Reschedule a conflicting release
stella release schedule update <schedule-id> --time "2026-03-27T14:00:00Z"
# Check scheduler service
docker compose -f docker-compose.stella-ops.yml logs --tail 100 orchestrator | grep -i schedule
Bare Metal / systemd
# Check scheduler status
stella release schedule status
# List missed and conflicting schedules
stella release schedule list --missed
stella release schedule list --conflicts
# Reschedule
stella release schedule update <schedule-id> --time "2026-03-27T14:00:00Z"
# Check system clock synchronization
timedatectl status
Kubernetes / Helm
# Check orchestrator pod time synchronization
kubectl exec -it <orchestrator-pod> -- date -u
# View scheduled releases
kubectl exec -it <orchestrator-pod> -- stella release schedule list
# Check for CronJob issues
kubectl get cronjobs -l app=stellaops-release-scheduler
kubectl describe cronjob stellaops-release-scheduler
Verification
stella doctor run --check check.release.schedule
Related Checks
check.release.active-- missed schedules may result in delayed active releasescheck.release.environment.readiness-- environment availability affects schedule executioncheck.operations.scheduler-- platform scheduler health affects release scheduling