Implements deterministic feature lifecycle management for agent-driven
development. Agents use the CLI in pods; operators control via REST API.
Library (internal/sdlc/):
- Feature lifecycle with 10 phases (draft → released)
- Classifier engine with priority-ordered rules
- Artifact tracking with approval workflow
- Task management within features
- YAML-based state persistence
CLI (cmd/sdlc/):
- init, state, next, feature, artifact, task, query commands
- --json flag for machine-readable output
- Runs inside project pods
API (21 endpoints under /projects/{id}/sdlc/):
- State: GET /state, GET /next
- Features: CRUD + transition/block/unblock
- Artifacts: approve/reject per type
- Tasks: add/start/complete/block
- Queries: blocked/ready/needs-approval
Architecture:
- Port: SDLCExecutor interface (internal/port/)
- Adapter: kubectl exec into pods (internal/adapter/kubernetes/)
- Service: pod resolution + logging (internal/service/)
- Handlers: 5 files under 500-line limit (internal/handlers/)
Also includes template upgrades (chassis framework, UI components,
OpenAPI helpers, backend/frontend guides) and component improvements.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.6 KiB
3.6 KiB
SDLC Orchestration
Last Updated: 2026-02 Confidence: High (Steps 1-5 implemented, Step 6 pending)
Summary
Deterministic feature lifecycle management. Classifier engine evaluates priority-ordered rules to determine the next required action. State lives in .sdlc/ directory (git-tracked). Used by Claude agents in pods (CLI) and by rdev API (Go library + kubectl exec).
Key Facts:
- 10 phases: draft → specified → planned → ready → implementation → review → audit → qa → merge → released
- 24 classifier rules, first match wins, returns Classification with action + guidance
- 7 artifact types: spec, design, tasks, qa_plan, review, audit, qa_results
- rdev drives transitions on behalf of users (approve, reject, unblock, transition)
- Multi-project: scoped by projectID (pod name), each pod has its own
.sdlc/
File Pointers:
- Library:
internal/sdlc/(types, state, feature, classifier, rules, config) - CLI:
cmd/sdlc/(cobra commands, --json output for API consumption) - Port (planned):
internal/port/sdlc_executor.go - Adapter (planned):
internal/adapter/kubernetes/sdlc_adapter.go - Handler (planned):
internal/handlers/sdlc.go - Spec:
docs/specs/sdlc-orchestration-system.md - Guide:
.claude/guides/services/sdlc.md
Library Types
// internal/sdlc/classifier.go
type Classification struct {
Feature string `json:"feature"`
CurrentPhase FeaturePhase `json:"current_phase"`
RuleMatched string `json:"rule_matched"`
Action ActionType `json:"action"`
Message string `json:"message"`
NextCommand string `json:"next_command,omitempty"`
OutputPath string `json:"output_path,omitempty"`
TransitionTo FeaturePhase `json:"transition_to,omitempty"`
TaskID string `json:"task_id,omitempty"`
}
CLI Commands
sdlc init # Create .sdlc/ structure
sdlc state [--json] # Full state dump
sdlc feature create <slug> <title> # New feature
sdlc feature transition <slug> <phase> # Phase transition
sdlc feature block/unblock <slug> # Blocker management
sdlc artifact create/approve/reject # Artifact lifecycle
sdlc task add/start/complete/block # Task lifecycle
sdlc next [--for <feature>] [--json] # Classifier output
sdlc query blocked/ready/needs-approval # Queries
rdev API Endpoints (Planned - Step 6)
GET /projects/{id}/sdlc/state
GET /projects/{id}/sdlc/next
GET /projects/{id}/sdlc/features
GET /projects/{id}/sdlc/features/{slug}
POST /projects/{id}/sdlc/features/{slug}/transition
POST /projects/{id}/sdlc/features/{slug}/artifacts/{type}/approve
POST /projects/{id}/sdlc/features/{slug}/artifacts/{type}/reject
POST /projects/{id}/sdlc/features/{slug}/unblock
GET /projects/{id}/sdlc/query/blocked
GET /projects/{id}/sdlc/query/ready
GET /projects/{id}/sdlc/query/needs-approval
Feature Gaps (Step 6)
| Gap | Description | Effort |
|---|---|---|
| Port interface | SDLCExecutor port for pod operations |
Small |
| Pod adapter | kubectl exec wrapper for sdlc commands | Medium |
| Service layer | Business logic, validation, error mapping | Medium |
| HTTP handlers | REST endpoints under /projects/{id}/sdlc/ |
Medium |
| Cross-project view | Dashboard of all project SDLC states | Small |
| Webhook events | SDLC phase transitions as webhook events | Small |
Related Topics
- Kubernetes Adapter - Pod execution pattern (PodGitOperations)
- Work Queue - Task execution for agents
- Worker Pool - Agent pool management