Golden Readiness¶
Golden readiness is a participant-equivalent claim. A golden pack must be playable and provable from the intended participant role, not merely observable from Terraform, SSM, cloud console, root, SYSTEM, or a test harness shortcut.
Network Isolation¶
Live golden builds and rehearsals stand up real cloud infrastructure. That infrastructure MUST be isolated from any shared or long-lived environment so a range can never disrupt another workload.
Deploy each range into a dedicated VPC and subnet. Never build or test in the account’s default VPC — it is shared with other long-lived infrastructure (for example, CI runners), and range resources can interfere with it.
Never set
private_dns_enabled = trueon an interface VPC endpoint in a VPC shared with anything else. Private DNS overrides the service hostname for the entire VPC, so a range’sssm/sts/ec2(etc.) endpoint hijacks that AWS API for every other host in the VPC and black-holes their traffic. Range service endpoints belong only in the range’s own VPC.If isolation cannot be guaranteed in the default region, build and test in a separate region whose default VPC is empty of shared infrastructure.
These are not optional. A full-build range that created private-DNS ssm
interface endpoints in a shared default VPC once silently wedged unrelated CI for
over an hour, until the range was torn down.
Milestone Structure¶
Structure new scenario milestones so the final proof is planned:
[ ] Scenario contract and pack skeleton.
[ ] Topology, assets, and reference-triangle design.
[ ] Attacker behavior is specified in ACES participant semantics.
[ ] Flag, challenge, and reference CTFd layer, when the scenario has flags.
[ ] Delivery profile bundles, when the scenario has multiple audiences.
[ ] Golden build implementation in the declared live infrastructure.
[ ] Automated live rehearsal for the golden build.
[ ] Final manual participant walkthrough.
[ ] Final docs, status, evidence, and teardown reconciliation.
The final manual participant walkthrough is its own slice. It is not implied by passing tests or a successful Terraform apply.
Definition Of Done¶
Every pack carries this checklist at
scenarios/<name>/docs/golden-readiness-checklist.md.
[ ] The range applies from a clean checkout using committed pack content.
[ ] No hidden repo-root
.env, external file fetch, or undocumented manual setup is required, except approved cloud/operator credentials.[ ] The declared golden build profile creates the participant start state.
[ ] The participant entry surface exists, is documented, and is reachable.
[ ] The full happy path is executed manually from the participant surface, command by command.
[ ] Operator channels such as SSM, Terraform, cloud consoles, generated passwords, root/SYSTEM shells, and database consoles are used only for provisioning, diagnostics, reset, observation, or teardown.
[ ] Every required ACES objective, flag, and success condition is reached from the intended participant privilege context.
[ ] Negative gates prove objectives/flags are not trivially reachable before the required action or privilege.
[ ] Reset, persistence, survival, or cleanup behavior works where claimed.
[ ] Automated rehearsal passes against the same golden build profile.
[ ] The human walkthrough and automated rehearsal exercise the same declared ACES behavior and objectives.
[ ] Durable evidence is committed as a rehearsal report.
[ ] Teardown is run and verified; no live range resources remain.
[ ]
pack.yaml.status: goldenis set only after the above proof exists.
Manual Participant Walkthrough Protocol¶
[ ] Stand up the golden range from the documented build entrypoint.
[ ] Enter the range only through the participant execution surface.
[ ] Work the intended happy path manually, command by command.
[ ] Do not substitute scripts, SSM, Terraform output, generated passwords, or test harness internals for participant actions.
[ ] When a defect is found, fix it on the branch as a bug.
[ ] Use one commit per distinct problem when the walkthrough exposes multiple defects.
[ ] Re-run the affected manual step after each fix.
[ ] Complete the entire path after the last fix.
[ ] Run automated rehearsal and relevant static/unit checks after the manual path works.
[ ] Tear down the range and verify cleanup.
[ ] Report exactly what was manually proven, what was automated, and what remains out of scope.
Last-Pass Issues¶
Use umbrella last-pass issues for broad final review work. Slice PRs should use
Refs #<issue> until the whole last pass is complete. Close the umbrella issue
only after the final manual walkthrough checklist and evidence reconciliation
are complete.