Pipeline Panic

A node-connecting puzzle built to answer one question: how much complexity can a guided hint system absorb before it starts to feel like documentation? CI/CD is the backdrop — the tutorial engine is the real work.

Pipeline Panic preview
The board: typed nodes wired into a DAG that runs on a real DFS topological scheduler — each node blocks until every upstream input succeeds — with live CPU/memory budgets, objectives, and a terminal that logs each step.
The board: typed nodes wired into a DAG that runs on a real DFS topological scheduler — each node blocks until every upstream input succeeds — with live CPU/memory budgets, objectives, and a terminal that logs each step.
Security is no longer one node: each SecurityScan picks a type — SAST (Semgrep/CodeQL), SCA (Snyk/npm audit), Secret (Gitleaks), or Container (Trivy/Grype) — with its own findings and terminal output, and severity-tiered gates that block on CRITICAL/HIGH but only warn on the rest.
Security is no longer one node: each SecurityScan picks a type — SAST (Semgrep/CodeQL), SCA (Snyk/npm audit), Secret (Gitleaks), or Container (Trivy/Grype) — with its own findings and terminal output, and severity-tiered gates that block on CRITICAL/HIGH but only warn on the rest.
Deploy strategies are functional, not cosmetic: rolling, blue-green, and canary differ in timing, rollback speed, and blast radius, each with a configurable auto-rollback path.
Deploy strategies are functional, not cosmetic: rolling, blue-green, and canary differ in timing, rollback speed, and blast radius, each with a configurable auto-rollback path.
Honest failure: a deploy that fails with rollback enabled lands in a distinct rolled-back state — the run is recovered but no new version shipped, reported as PARTIAL rather than a fake success. Re-run for a clean deploy.
Honest failure: a deploy that fails with rollback enabled lands in a distinct rolled-back state — the run is recovered but no new version shipped, reported as PARTIAL rather than a fake success. Re-run for a clean deploy.

About this project

Game DevTutorial DesignDevSecOpsAngular Architecture
I built this primarily to practice designing guided tutorial systems for a complex UI. The hard part was the hint system: it has to detect where a player is stuck and surface guidance calibrated to the chosen difficulty, enough to unblock them and no more.
  • Real DFS topological scheduler: a downstream node blocks until every upstream input succeeds, the way GitHub Actions needs:/GitLab DAGs actually order work — not a metaphor for it
  • Topology-detecting progressive hint system: reads the live node/connection graph to find where a player is stuck and calibrates guidance to difficulty — enough to unblock, no more (the problem I built this to solve)
  • Shift-left security model: SecurityScan splits into SAST/SCA/Secret/Container with real tooling (semgrep, snyk, gitleaks, trivy), severity-tiered gates (CRITICAL/HIGH block, MEDIUM/LOW warn), enforced coverage thresholds, and a two-different-tools compliance gate
  • Honest simulation: a failed deploy rolls back to a recovered-but-not-shipped state (not a fake success), rolling/blue-green/canary differ in timing, rollback speed and blast radius, and flaky tests are mitigated with real retry config — every mechanic teaches a correct intuition
  • ~22 spec-covered services and 6 child components on signal-driven OnPush with component-scoped DI; WCAG 2.5.5, focus-trap modals, QuotaExceededError-aware save banner; exports a valid GitHub Actions YAML skeleton mapping the visual DAG to needs: chains
Pipeline Panic screenshot 1