Language: English | 한국어
Use this checklist before publishing oslab on GitHub for the first time.
- Position
README.mdaround a generic OS/VM integration test platform rather than a private product. - Present
docs/oslab-platform-plan.mdas the public, generic platform plan. - Use the generic demo suite for the first-run example.
- Keep product-specific content in product-owned or private documentation.
- Preserve the previous product-specific platform plan in private or product-owned documentation.
- Complete a final audit to remove local lab run IDs, real Proxmox IP addresses, and real node names from public Markdown and media.
- Provide the initial installation commands.
- Explain how to copy
config/oslab.local.example.yamlandconfig/oslab.local.example.env. - Explain where to create a Proxmox API token and how its token ID is formatted.
- State that the Proxmox token guidance is intended for a lab demo and requires a least-privilege review before use on a production or shared cluster.
- Provide the staged preflight flow.
- Provide PowerShell, Python, and C demo commands and a demo catalog.
- Explain how to inspect results under
runs/<run-id>/. - Explain the purposes of the JUnit, JSON, and HTML reports.
- Provide a manual recovery runbook for stale VMs and VMID ranges.
- Explain the CI pattern that preserves
runs/**artifacts even when a job fails. - Organize the README as a 30-second overview, overview animation, one step-by-step video covering Dashboard → 10-step workflow → real Proxmox and Windows footage → cleanup → Results, quick start, current support, and detailed documentation.
- Keep the key message, commands, and supported scope aligned between the English and Korean READMEs.
- Validate the README links, language switches, and all 14 English/Korean public document pairs with
scripts/check-doc-links.ps1.
- Ignore
config/oslab.local.yamlandconfig/oslab.local.env. - Ignore
runs/. - Do not ignore demo artifact files under
validation/artifacts/. - Keep real secrets out of example environment files.
- Ignore timestamped dummy outputs produced by development, browser, and authoring smoke tests.
- Separate product-specific overlays that must not be included in the public repository under
private/,*.local.*, or*.private.yamlconventions. - Track README media under
docs/media/and document its regeneration procedure indocs/media/DEMO_SCRIPT.md. - Use only deterministic fixtures for the overview, workflow, and Dashboard demos.
- Verify in a fresh Chromium/Playwright capture that Dashboard recording blocks service workers and blocks HTTP and WebSocket traffic using an allowlist.
- Record real lab footage only during a dedicated run, crop the resource tree, node, account, IP address, and unrelated task history, and clean up the recording VM afterward.
- Revalidate the SHA-256 hashes of the four real-lab source images and two run-evidence records, along with
sameRun,guestPowerShellMatchesRun,sensitiveRegionsReviewed,cleanupVerified, and cleanupresourceAbsent, againstsource-approval.json. - Compare the final real-lab MP4, GIF, and poster hashes, private run-evidence hashes, execution summary,
cleanup.resourceAbsent, andprivacy.manualPublicFrameReviewagainst the public attestation. - Mark the boundaries between the Dashboard fixture, explainer fixture, separately recorded real footage, and fixture Results in the single step-by-step video with source badges; record its title and lower-third, source and output hashes, 11-segment EDL, 10 transitions, inherited cleanup status, and independent visual review in a separate attestation.
- Add internal product markers and private domain markers to
config/public-release-blocklist.local.txt. - Run
scripts/check-public-release.ps1 -IncludeUntrackedto check tracked and untracked files for the default public-blocking markers and dummy outputs. (Adding the local private-marker blocklist remains incomplete.) - Exclude the modified
apps/api/prisma/prisma/dev.dbfrom the public commit and replace it with a distribution fixture database that contains no session tokens, password hashes, or execution metadata. - Run one more secret scan before the final commit.
- Demo scenario schema validation passes.
- Rerun the local unit test suite successfully against the public candidate. (Tests that reference removed product-specific scenarios still need cleanup.)
- Pass the public release audit script with the local private-marker blocklist.
- Add a GitHub Actions workflow.
- Add a CI badge to the README.
- The Windows/Proxmox/QEMU Guest Agent path is the implemented path.
- Linux support is documented as a target, but not the first complete implementation path.
- WinRM/SSH credentials in config are reserved for future guest channels.
- Proxmox least-privilege role guidance should be tightened before production cluster use.