Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
release-manifest-verify / verify (push) Has been cancelled
- Implement comprehensive tests for PackRunAttestationService, covering attestation generation, verification, and event emission. - Add tests for SealedInstallEnforcer to validate sealed install requirements and enforcement logic. - Introduce a MonacoLoaderService stub for testing purposes to prevent Monaco workers/styles from loading during Karma runs.
12 KiB
12 KiB
Stella Ops Router - Sprint Index
BLOCKED Tasks: Before working on BLOCKED tasks, review ../implplan/BLOCKED_DEPENDENCY_TREE.md for root blockers and dependencies.
This document provides an overview of all sprints for implementing the StellaOps Router infrastructure. Sprints are organized for maximum agent independence while respecting dependencies.
Key Documents
| Document | Purpose |
|---|---|
| specs.md | Canonical specification - READ FIRST |
| implplan.md | High-level implementation plan |
| Step files (01-29) | Detailed task breakdowns per phase |
Sprint Epochs
All router sprints use Epoch 7000 to maintain isolation from existing StellaOps work.
| Batch | Focus Area | Sprints |
|---|---|---|
| 0001 | Foundation | Skeleton, Common library |
| 0002 | InMemory Transport | Prove the design before real transports |
| 0003 | Microservice SDK | Core infrastructure, request handling |
| 0004 | Gateway | Core, middleware, connection handling |
| 0005 | Protocol Features | Heartbeat, routing, cancellation, streaming, limits |
| 0006 | Real Transports | TCP, TLS, UDP, RabbitMQ |
| 0007 | Configuration | Router config, microservice YAML |
| 0008 | Integration | Authority, source generator |
| 0009 | Examples | Reference implementation |
| 0010 | Migration | WebService → Microservice |
Sprint Dependency Graph
┌─────────────────────────────────────┐
│ SPRINT_7000_0001_0001 │
│ Router Skeleton │
└───────────────┬─────────────────────┘
│
┌───────────────▼─────────────────────┐
│ SPRINT_7000_0001_0002 │
│ Common Library Models │
└───────────────┬─────────────────────┘
│
┌───────────────▼─────────────────────┐
│ SPRINT_7000_0002_0001 │
│ InMemory Transport │
└───────────────┬─────────────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ │ │
▼ │ ▼
┌─────────────────────┐ │ ┌─────────────────────┐
│ SPRINT_7000_0003_* │ │ │ SPRINT_7000_0004_* │
│ Microservice SDK │ │ │ Gateway │
│ (2 sprints) │◄────────────┼────────────►│ (3 sprints) │
└─────────┬───────────┘ │ └─────────┬───────────┘
│ │ │
└─────────────────────────┼───────────────────────┘
│
┌───────────────▼─────────────────────┐
│ SPRINT_7000_0005_0001-0005 │
│ Protocol Features (sequential) │
│ Heartbeat → Routing → Cancel │
│ → Streaming → Payload Limits │
└───────────────┬─────────────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ TCP Transport │ │ UDP Transport │ │ RabbitMQ │
│ 7000_0006_0001 │ │ 7000_0006_0003 │ │ 7000_0006_0004 │
└────────┬────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ TLS Transport │
│ 7000_0006_0002 │
└────────┬────────┘
│
└──────────────────────────┬──────────────────────────┘
│
┌───────────────▼─────────────────────┐
│ SPRINT_7000_0007_0001-0002 │
│ Configuration (sequential) │
└───────────────┬─────────────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ │ │
▼ │ ▼
┌─────────────────────┐ │ ┌─────────────────────┐
│ Authority Integration│ │ │ Source Generator │
│ 7000_0008_0001 │◄────────────┼────────────►│ 7000_0008_0002 │
└─────────────────────┘ │ └─────────────────────┘
│
┌───────────────▼─────────────────────┐
│ SPRINT_7000_0009_0001 │
│ Reference Example │
└───────────────┬─────────────────────┘
│
┌───────────────▼─────────────────────┐
│ SPRINT_7000_0010_0001 │
│ Migration │
│ (Connects to rest of StellaOps) │
└─────────────────────────────────────┘
Parallel Execution Opportunities
These sprints can run in parallel:
| Phase | Parallel Track A | Parallel Track B | Parallel Track C |
|---|---|---|---|
| After InMemory | SDK Core (0003_0001) | Gateway Core (0004_0001) | - |
| After Protocol | TCP (0006_0001) | UDP (0006_0003) | RabbitMQ (0006_0004) |
| After TCP | TLS (0006_0002) | (continues above) | (continues above) |
| After Config | Authority (0008_0001) | Source Gen (0008_0002) | - |
Sprint Status Overview
| Sprint | Name | Status | Working Directory |
|---|---|---|---|
| 7000-0001-0001 | Router Skeleton | TODO | Multiple (see sprint) |
| 7000-0001-0002 | Common Library | TODO | src/__Libraries/StellaOps.Router.Common/ |
| 7000-0002-0001 | InMemory Transport | TODO | src/__Libraries/StellaOps.Router.Transport.InMemory/ |
| 7000-0003-0001 | SDK Core | TODO | src/__Libraries/StellaOps.Microservice/ |
| 7000-0003-0002 | SDK Handlers | TODO | src/__Libraries/StellaOps.Microservice/ |
| 7000-0004-0001 | Gateway Core | TODO | src/Gateway/StellaOps.Gateway.WebService/ |
| 7000-0004-0002 | Gateway Middleware | TODO | src/Gateway/StellaOps.Gateway.WebService/ |
| 7000-0004-0003 | Gateway Connections | TODO | src/Gateway/StellaOps.Gateway.WebService/ |
| 7000-0005-0001 | Heartbeat & Health | TODO | SDK + Gateway |
| 7000-0005-0002 | Routing Algorithm | TODO | src/Gateway/StellaOps.Gateway.WebService/ |
| 7000-0005-0003 | Cancellation | TODO | SDK + Gateway |
| 7000-0005-0004 | Streaming | TODO | SDK + Gateway + InMemory |
| 7000-0005-0005 | Payload Limits | TODO | src/Gateway/StellaOps.Gateway.WebService/ |
| 7000-0006-0001 | TCP Transport | TODO | src/__Libraries/StellaOps.Router.Transport.Tcp/ |
| 7000-0006-0002 | TLS Transport | TODO | src/__Libraries/StellaOps.Router.Transport.Tls/ |
| 7000-0006-0003 | UDP Transport | TODO | src/__Libraries/StellaOps.Router.Transport.Udp/ |
| 7000-0006-0004 | RabbitMQ Transport | TODO | src/__Libraries/StellaOps.Router.Transport.RabbitMq/ |
| 7000-0007-0001 | Router Config | TODO | src/__Libraries/StellaOps.Router.Config/ |
| 7000-0007-0002 | Microservice YAML | TODO | src/__Libraries/StellaOps.Microservice/ |
| 7000-0008-0001 | Authority Integration | TODO | Gateway + Authority |
| 7000-0008-0002 | Source Generator | TODO | src/__Libraries/StellaOps.Microservice.SourceGen/ |
| 7000-0009-0001 | Reference Example | TODO | examples/router/ |
| 7000-0010-0001 | Migration | TODO | Multiple (final integration) |
Critical Path
The minimum path to a working router:
- 7000-0001-0001 → Skeleton
- 7000-0001-0002 → Common models
- 7000-0002-0001 → InMemory transport
- 7000-0003-0001 → SDK core
- 7000-0003-0002 → SDK handlers
- 7000-0004-0001 → Gateway core
- 7000-0004-0002 → Gateway middleware
- 7000-0004-0003 → Gateway connections
After these 8 sprints, you have a working router with InMemory transport for testing.
Isolation Strategy
The router is developed in isolation using:
- Separate solution file:
StellaOps.Router.sln - Dedicated directories: All router code in new directories
- No changes to existing modules: Until migration sprint
- InMemory transport first: No network dependencies during core development
This ensures:
- Router development doesn't impact existing StellaOps builds
- Agents can work independently on router without merge conflicts
- Full testing possible without real infrastructure
- Migration is a conscious, controlled step
Agent Assignment Guidance
For maximum parallelization:
- Foundation Agent: Sprints 7000-0001-0001, 7000-0001-0002
- SDK Agent: Sprints 7000-0003-0001, 7000-0003-0002
- Gateway Agent: Sprints 7000-0004-0001, 7000-0004-0002, 7000-0004-0003
- Transport Agent: Sprints 7000-0002-0001, 7000-0006-*
- Protocol Agent: Sprints 7000-0005-*
- Config Agent: Sprints 7000-0007-*
- Integration Agent: Sprints 7000-0008-*, 7000-0010-0001
- Documentation Agent: Sprint 7000-0009-0001
Invariants (Never Violate)
From specs.md, these are non-negotiable:
- Method + Path is the endpoint identity
- Strict semver for version matching
- Region from GatewayNodeConfig.Region (never from headers/host)
- No HTTP transport between gateway and microservices
- RequiringClaims (not AllowedRoles) for authorization
- Opaque body handling (router doesn't interpret payloads)
Any change to these invariants requires updating specs.md first.