# Excititor Worker Charter ## Mission Run Excititor background jobs (ingestion, linkset extraction, dedup/idempotency enforcement) under the Aggregation-Only Contract; orchestrate Core + Storage without applying consensus or severity. ## Scope - Working directory: `src/Excititor/StellaOps.Excititor.Worker` - Job runners, pipelines, scheduling, DI wiring, health checks, telemetry for background tasks. ## Required Reading - `docs/modules/excititor/architecture.md` - `docs/modules/excititor/vex_observations.md` - `docs/ingestion/aggregation-only-contract.md` - `docs/modules/excititor/implementation_plan.md` ## Roles - Backend/worker engineer (.NET 10). - QA automation (background job + integration tests). ## Working Agreements 1. Track task status in sprint files; log notable operational decisions in Execution Log. 2. Respect tenant isolation on all job inputs/outputs; never process cross-tenant data. 3. Idempotent processing only: guard against duplicate bundles and repeated messages. 4. Offline-first; no external fetches during jobs. 5. Observability: structured logs, counters, and optional OTEL traces behind config flags. ## Testing & Determinism - Provide deterministic job fixtures with seeded clocks/IDs; assert stable ordering of outputs and retries. - Simulate failure/retry paths; ensure idempotent writes in Storage. - Keep timestamps UTC ISO-8601; inject clock/GUID providers for tests. ## Boundaries - Delegate domain logic to Core and persistence to Storage.Postgres; avoid embedding policy or UI concerns. - Configuration via appsettings/environment; no hard-coded secrets. ## Ready-to-Start Checklist - Required docs reviewed. - Test harness prepared for background jobs (including retry/backoff settings). - Feature flags defined for new pipelines before enabling in production runs.