Audit launch content readiness
Verified replay · recorded execution
New repository automation, written for this site and run locally under controlled conditions. It isn't work from my job, and it doesn't claim any real-world impact.
Recorded at: 2026-10-03T05:19:48.507Z
Verified script SHA-256: e98fe257493aec9bb09c0a4ca2ef7e69a79151b9998908cbdeaf46945181d240
Input SHA-256: 905d110900ec81808489351424a624a28823198f196601cb657dd03ffad24017
Exit code: 0
Purpose
Replace a repetitive launch-content check with one read-only PowerShell audit.
Before
Check each required field by hand, then count the cases, incidents, knowledge articles and recordings.
After
The script reads one input file, checks the required fields and counts, and writes a structured log that never prints the evidence itself.
Decisions
It flags a missing identity, contact or resume, and too little content. It never signs off on accuracy or privacy.
Output & consequence
A list of structured events and a readiness result. In this recording it correctly reports that content is still missing.
Validation
Recorded from a real, controlled run that exited with code 0. The script and input SHA-256 hashes have to match the recording, and every replayed line has to exist in the actual source.
Failures
A missing path, invalid JSON or unexpected properties stop the script. It doesn't change any device, upload evidence or approve anything for publishing.
Human intervention
A person still has to check where everything came from, that it's sanitized, that nothing confidential from my employer slipped in, that it's accurate, and that it's good enough. A complete inventory on its own doesn't mean it's ready to launch.
Input
{
"status": "draft",
"identity": null,
"resume": null,
"contact": null,
"tickets": [],
"incidents": [],
"knowledge": [],
"automations": []
}
PowerShell source
param([string]$ContentPath = (Join-Path $PSScriptRoot '../content/owner.json'))
$ErrorActionPreference = 'Stop'
Set-StrictMode -Version Latest
function Write-Step([string]$Message) {
[pscustomobject]@{ sourceLine = $MyInvocation.ScriptLineNumber; timestamp = [DateTime]::UtcNow.ToString('o'); message = $Message } | ConvertTo-Json -Compress
}
$ResolvedContent = (Resolve-Path -LiteralPath $ContentPath).Path
Write-Step 'Resolved the launch content input. No evidence text is printed.'
$Content = Get-Content -LiteralPath $ResolvedContent -Raw | ConvertFrom-Json
Write-Step ('Read publication status: ' + $Content.status)
$Missing = [System.Collections.Generic.List[string]]::new()
foreach ($Field in @('identity', 'resume', 'contact')) {
if ($null -eq $Content.$Field) { $Missing.Add($Field) }
}
Write-Step ('Checked identity, resume and contact. Missing: ' + ($Missing -join ', '))
foreach ($Field in @('tickets', 'incidents', 'knowledge', 'automations')) {
Write-Step ($Field + ' supplied: ' + @($Content.$Field).Count)
}
$Ready = $Content.status -eq 'published' -and $Missing.Count -eq 0 -and @($Content.tickets).Count -ge 3 -and @($Content.incidents).Count -ge 1 -and @($Content.knowledge).Count -ge 1 -and @($Content.automations).Count -ge 1
Write-Step ('Content inventory readiness: ' + $Ready + '. Human accuracy, privacy and craft review remain required even if the inventory is complete.')
Recorded transcript
- Line 8 · 2026-10-03T05:19:48.4600723Z
Resolved the launch content input. No evidence text is printed.
- Line 10 · 2026-10-03T05:19:48.4823774Z
Read publication status: draft
- Line 15 · 2026-10-03T05:19:48.4887176Z
Checked identity, resume and contact. Missing: identity, resume, contact
- Line 17 · 2026-10-03T05:19:48.4919791Z
tickets supplied: 0
- Line 17 · 2026-10-03T05:19:48.4929807Z
incidents supplied: 0
- Line 17 · 2026-10-03T05:19:48.4937939Z
knowledge supplied: 0
- Line 17 · 2026-10-03T05:19:48.4952320Z
automations supplied: 0
- Line 20 · 2026-10-03T05:19:48.4962794Z
Content inventory readiness: False. Human accuracy, privacy and craft review remain required even if the inventory is complete.
A script written for this site, recorded in a controlled run.