| name | civiccast-tester |
| description | Use when Scott says "check the repo for latest test directive", "check the repo for test directive", "run the latest CivicCast test directive", or asks this tester machine to run the CivicCast proof from the tester branch. |
CivicCast Tester Machine Operating Note
This machine is a CivicCast tester machine. When Scott says
check the repo for latest test directive, do the following.
Source Of Truth
- Repository:
https://github.com/scottconverse/civiccast.git
- Branch:
tester/v1.3.0-pullable-proof-kit
- Latest directive:
tester-handoff/v1.3.0/LATEST-TEST-DIRECTIVE.md
Non-Negotiable Rules
- Do not use OneDrive for repos, scratch files, artifacts, or proof output.
- Do not use Git LFS for tester artifact transport. Do not invoke LFS artifact
download commands. On Windows, use
C:\CivicCastTester\artifact-cache\v1.3.0 for large artifacts. If required
artifacts are missing, report LFS_DISABLED_ARTIFACT_MISSING instead of
downloading LFS payloads.
- Pull the tester branch before each proof.
- Clean prior CivicCast tester/install state before each proof as the platform
prompt instructs.
- On Windows, treat the MSI as the dedicated clean proof machine. The runner
resets prior
Ubuntu* WSL proof state before each run because stale
first-admin state survived under /root/.local/share/civiccast while Ubuntu
was preserved.
- Do not edit product code, artifacts, prompts, or directives from a tester
machine.
- Do not fabricate pass/fail status.
- If the repo cannot be cloned, stop and report the exact blocker.
- If anything fails after the repo is cloned, write and push a result file
before stopping.
- The platform prompts include failure traps/transcripts. Run the full platform
prompt; do not bypass it with partial hand-entered snippets.
- Commit and push only the new tester result file.
- After pushing a result file, do not stop and wait for Scott. Keep this Codex
task alive in a repo-watch loop. Every 10 minutes, fetch the tester branch,
find the newest non-result commit, and rerun the platform prompt only when
that non-result commit differs from the commit just tested. Result commits
start with
test: add windows proof result, test: add macos proof result,
or test: add mac full e2e result; do not rerun because of those alone.
- Do not paste secrets, tokens, passwords, private keys, subscriber data, or
provider credentials into result files.
Platform Prompts
After pulling the branch, read LATEST-TEST-DIRECTIVE.md, then run the platform
prompt named there exactly:
- Windows:
tester-handoff/v1.3.0/PROMPT-WINDOWS-CODEX.md
- macOS:
tester-handoff/v1.3.0/PROMPT-MACOS-CODEX.md
First identify the host OS and compartmentalize the instructions. If this is
macOS, run only PROMPT-MACOS-CODEX.md and ignore all Windows runner,
installer, UAC, WSL, Playwright, artifact-cache, and C:\... instructions in
the directive or this skill. If this is Windows, run only
PROMPT-WINDOWS-CODEX.md and ignore macOS source-build commands.
On Windows, the prompt must invoke the repo script
tester-handoff/v1.3.0/Run-WindowsTesterDirective.ps1. The runner prints a
version string such as windows-runner-2026-05-27-11; record it in the result.
Do not stop solely because prompt text and runner version text differ, as long
as the runner is from the checked-out repo and can start. Do not paste older
inline Windows cleanup snippets. Approve Windows UAC prompts; if they are
canceled, WSL setup or elevated stale-process cleanup cannot complete from the
tester Codex process.
The Windows runner installs Node.js and Playwright Chromium before the packaged
installer proof starts. Do not manually click installer screens. Use
Codex/Playwright automation through C:\CivicCastTester\Use-CivicCastPlaywright.ps1
to operate the UI; only approve Windows UAC prompts. Do not restart Windows
during the overnight cycle unless Scott explicitly returns and asks for it.
On Windows, use collect-and-continue behavior. Do not stop for recoverable
mismatches such as prompt/runner version text, minor label differences, or
expected filename/path mismatches when an equivalent actual file can be found.
Record those as findings and continue. Stop only for blockers that prevent safe
continuation: artifact hash mismatch, installer cannot launch, UAC canceled
when elevation is required, destructive cleanup risk, no equivalent required
proof artifact, dashboard unreachable after retry, or unsafe secret exposure.
If the Windows runner reports REBOOT REQUIRED, do not restart automatically.
Record the exact reboot requirement as the blocker, push the result, and stay in
the watch loop for the next repo directive.
On Windows, do not stop after bootstrap. Execute
C:\CivicCastProof\proof-directive.md end-to-end unless a real blocker is
reached, then record and push the exact result.
After the runner has prepared WSL2 Ubuntu 24.04, the installer should show
WSL2 Ubuntu 24.04 ready and a Broadcast engine step. The installer may
start the broadcast engine automatically; if it does not, choose Continue for
the broadcast engine/runtime step. Wait up to 10 minutes for the dashboard
service handoff, polling C:\Users\civic\AppData\Local\CivicCast\installer-state.json,
http://127.0.0.1:8000/health, and http://127.0.0.1:8000/operator/. Record
intermediate running state and WSL logs instead of stopping after a short UI
wait. Only use Open operator console after the installer reports the whole
package is ready. For first-admin setup, open the nonce-bearing
operator_console_url from
C:\Users\civic\AppData\Local\CivicCast\installer-state.json, and redact the
nonce in reports and screenshots. If setup still reports already complete after
that clean nonce-bearing handoff, record FIRST_ADMIN_ALREADY_COMPLETE_AFTER_CLEANUP
with redacted setup-state and path-only storage diagnostics.
Result Locations
Write one Markdown result file per proof attempt:
- Windows:
tester-handoff/v1.3.0/test-results/windows/
- macOS:
tester-handoff/v1.3.0/test-results/macos/
The result file must include platform, machine name, OS version/build,
architecture, exact commit tested, commands run, output summary, pass/fail,
exact blocker text, relevant local report/log/screenshot paths, and confirmation
that secrets were not included.
Watch Loop
After a result push succeeds, keep the tester session running. The loop is:
fetch branch, identify newest non-result commit, sleep 10 minutes if unchanged,
and rerun the appropriate platform prompt from the top when it changes. Stop
only for lost GitHub auth, a Codex crash, or an explicit Scott stop command.