Combine counts and status text into a final publishable summary line.

final status A final report usually combines earlier counts with a release decision.
summary string The summary stays deterministic and scalar so it can be replayed safely.

Publish Summary

fail_count
publish_summary.lua
Replay: real traced execution (multi-file project)
local fail_count = 1
local total = 4
local status = "publish"

if fail_count > 0 then
  status = "hold"
end

local summary = status .. ":" .. (total - fail_count) .. "/" .. total

print("fail_count=" .. fail_count)
print("status=" .. status)
print("summary=" .. summary)
local fail_count = 0
local total = 4
local status = "publish"

if fail_count > 0 then
  status = "hold"
end

local summary = status .. ":" .. (total - fail_count) .. "/" .. total

print("fail_count=" .. fail_count)
print("status=" .. status)
print("summary=" .. summary)
local fail_count = 3
local total = 4
local status = "publish"

if fail_count > 0 then
  status = "hold"
end

local summary = status .. ":" .. (total - fail_count) .. "/" .. total

print("fail_count=" .. fail_count)
print("status=" .. status)
print("summary=" .. summary)
  1. fail_count ← 1, total ← 4, status ← publish

    1local fail_count→ 1 = 1 --@fail_count=0, 32local total→ 4 = 43local status→ publish = "publish"
  2. status ← hold

    5if fail_count1 > 0 then6  status→ hold = "hold"7end
  3. summary ← hold:3/4

    9local summary→ hold:3/4 = statushold .. ":" .. (total4 - fail_count1) .. "/" .. total1011print("fail_count=" .. fail_count1)12print("status=" .. statushold)13print("summary=" .. summaryhold:3/4)
    outputfail_count=1
    status=hold
    summary=hold:3/4
  1. fail_count ← 0, total ← 4, status ← publish, summary ← publish:4/4

    1local fail_count→ 0 = 02local total→ 4 = 43local status→ publish = "publish"45if fail_count > 0 then6  status = "hold"7end89local summary→ publish:4/4 = statuspublish .. ":" .. (total4 - fail_count0) .. "/" .. total1011print("fail_count=" .. fail_count0)12print("status=" .. statuspublish)13print("summary=" .. summarypublish:4/4)
    outputfail_count=0
    status=publish
    summary=publish:4/4
  1. fail_count ← 3, total ← 4, status ← publish

    1local fail_count→ 3 = 32local total→ 4 = 43local status→ publish = "publish"
  2. status ← hold

    5if fail_count3 > 0 then6  status→ hold = "hold"7end
  3. summary ← hold:1/4

    9local summary→ hold:1/4 = statushold .. ":" .. (total4 - fail_count3) .. "/" .. total1011print("fail_count=" .. fail_count3)12print("status=" .. statushold)13print("summary=" .. summaryhold:1/4)
    outputfail_count=3
    status=hold
    summary=hold:1/4