diff --git a/skills/sdlc/SKILL.md b/skills/sdlc/SKILL.md index 8ceee5e..e12cf97 100644 --- a/skills/sdlc/SKILL.md +++ b/skills/sdlc/SKILL.md @@ -103,6 +103,9 @@ CEO creates daily automated report of SLA status and escalates immediately when ## Pipeline +**Two pipelines based on change type:** + +### Pipeline A: Plugin/Feature Changes (User-Facing Code) ``` CI: Engineer opens PR → CI runs (lint, types, unit tests) UAT: Pixel Patty validates E2E in headlamp-dev @@ -111,17 +114,34 @@ CTO: Null Pointer Nancy reviews architecture and security Merge: Countess von Containerheim merges after all approvals ``` +**Applies to:** Changes in `headlamp-*-plugin/` repos (plugin code, features, bug fixes) + +### Pipeline B: Infrastructure Changes (No UI Impact) +``` +CI: Engineer opens PR → CI runs (lint, types, unit tests) +QA: Regression Regina reviews code and correctness (no E2E needed) +CTO: Null Pointer Nancy reviews architecture and security +Merge: Countess von Containerheim merges after all approvals +``` + +**Applies to:** Changes in `.github/workflows/`, `infra/`, `org/` repos, and template repos (CI workflows, kustomize configs, RBAC manifests, deployment scripts) + +**Rule:** If the PR contains ONLY infrastructure changes (no plugin code changes), use Pipeline B and skip UAT. Patty's time is reserved for user-facing feature testing. + +**Detection:** If `git diff` shows changes only in `.github/`, `infra/`, `org/`, or deployment files → Pipeline B. If any `headlamp-*-plugin/` code changed → Pipeline A. + ### Stage 1 — Engineer Opens PR 1. Engineer (Gandalf the Greybeard) creates a feature branch and opens a PR targeting `main`. 2. CI runs automatically: lint, type checks, unit tests. 3. CI must pass before any reviewer spends tokens. If CI fails, the engineer fixes it. -### Stage 2 — UAT Review +### Stage 2 — UAT Review (Pipeline A Only) -4. Pixel Patty picks up PRs with passing CI. -5. Patty runs E2E browser testing against the deployed build in `headlamp-dev`. -6. Pass → hands off to QA. Fail → goes directly to engineer. +4. **Pipeline A only (user-facing changes):** Pixel Patty picks up PRs with passing CI. +5. **Pipeline B skips this:** Infrastructure PRs bypass UAT and go directly to QA. +6. Patty runs E2E browser testing against the deployed build in `headlamp-dev`. +7. Pass → hands off to QA. Fail → goes directly to engineer. ### Stage 3 — QA Review