OpsRoadmaps

Executive Summary — FlowForge Production Readiness Review

Executive Summary · FlowForge

Completed 2026-08-24 · Methodology /production-readiness-standard v1 · Scoring model v1

Generated 2026-08-24 · Report generator v1 · DTO schema v1

Overall score

50.7

Maturity

L3 Standardized

Operational risk

critical

score 92.16 · critical override applied

Confidence

70

0.50×100.00 + 0.30×0.00 + 0.20×100.00 = 70.00

Answer coverage

Applicable score-bearing30Scored30Not applicable1
user N/A 1 · rule N/A 0unanswered 0context-only 5 · unscored 0

Findings (29)

CRITICAL Critical control not implemented: If today's release broke the service, how would you get back? (rs_rollback_tested) risk 92.16 (critical) · control:production-readiness-standard:rs_rollback_tested · rs_rollback_tested

Answer recorded: "manual_steps" (evidence confidence 0/3). Scoring: option:manual_steps → normalized 0.15 (met = 1.00). Risk: impact 4 × likelihood 4 = 16 · control missing (gap ×1.00) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 92.16 (CRITICAL) · CRITICAL control not implemented — forces CRITICAL

Why it matters: critical control "rs_rollback_tested" is missing (impact 4, likelihood 4) — forces CRITICAL regardless of score or maturity

HIGH Control partially met: Is sensitive data encrypted at rest (databases, buckets, disks — and their backups)? (dp_encryption_at_rest) risk 41.47 (high) · control:production-readiness-standard:dp_encryption_at_rest · dp_encryption_at_rest

Answer recorded: "primary_only" (evidence confidence 0/3). Scoring: option:primary_only → normalized 0.40 (met = 1.00). Risk: impact 4 × likelihood 3 = 12 · control partial (gap ×0.60) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 41.47 (HIGH)

Why it matters: impact 4 × likelihood 3 = 12 · control partial (gap ×0.60) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 41.47 (HIGH)

HIGH Control partially met: Is there a written recovery plan for the service, and when was it last rehearsed? (dr_plan_rehearsed) risk 41.47 (high) · control:production-readiness-standard:dr_plan_rehearsed · dr_plan_rehearsed

Answer recorded: "plan_never_rehearsed" (evidence confidence 0/3). Scoring: option:plan_never_rehearsed → normalized 0.40 (met = 1.00). Risk: impact 4 × likelihood 3 = 12 · control partial (gap ×0.60) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 41.47 (HIGH)

Why it matters: impact 4 × likelihood 3 = 12 · control partial (gap ×0.60) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 41.47 (HIGH)

HIGH Control partially met: When did you last successfully restore this service's critical data from backup? (dr_restore_tested) risk 41.47 (high) · control:production-readiness-standard:dr_restore_tested · dr_restore_tested

Answer recorded: "verified_year" (evidence confidence 0/3). Scoring: option:verified_year → normalized 0.50 (met = 1.00). Risk: impact 4 × likelihood 3 = 12 · control partial (gap ×0.60) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 41.47 (HIGH)

Why it matters: impact 4 × likelihood 3 = 12 · control partial (gap ×0.60) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 41.47 (HIGH)

HIGH Control partially met: If the primary instance, zone, or node hosting the service failed right now, what would happen? (rel_redundancy) risk 41.47 (high) · control:production-readiness-standard:rel_redundancy · rel_redundancy

Answer recorded: "failover_untested" (evidence confidence 0/3). Scoring: option:failover_untested → normalized 0.40 (met = 1.00). Risk: impact 4 × likelihood 3 = 12 · control partial (gap ×0.60) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 41.47 (HIGH)

Why it matters: impact 4 × likelihood 3 = 12 · control partial (gap ×0.60) · production ×1.20 (confirmed) · internet_exposed ×1.20 (confirmed) → normalized 41.47 (HIGH)

Showing the 5 most severe findings of 29.

Recommended next steps

  1. Make rollback a tested pipeline stage P0 · score 69.95 · solves 1 finding
  2. Encrypt sensitive data at rest P2 · score 57.2 · solves 3 findings
  3. Run a recurring access review P2 · score 52.5 · solves 2 findings
  4. Write and rehearse the disaster recovery plan P2 · score 50.65 · solves 1 finding
  5. Move secrets out of code and config files P2 · score 48.3 · solves 1 finding
  6. Remove the next single point of failure P2 · score 47.85 · solves 1 finding
  7. Verify backups by restoring them P2 · score 47.3 · solves 1 finding
  8. Define SLOs and an error-budget policy P2 · score 42.1 · solves 2 findings