The Night Sail workflow has one non-negotiable delivery condition: a task cannot be delivered unless every self-test passes.
This constraint extends AI-assisted coding into a development process that can operate without supervision. I call the cycle of overnight execution and next-day review Night Sail.
Components of the Night Sail workflow
Night Sail is an autonomous development loop. Before execution, I provide a task brief containing objectives and priorities. AI then follows the steps below until the work is complete, a decision requires human intervention, or a stop instruction is issued:
- Task intake: read the brief and claim one specific task;
- Implementation: write code or modify a system;
- L1 test gate: run hundreds of assertions; if any fail, return the work automatically and correct it;
- L2 adversarial review: after the tests pass, another AI examines the change with the explicit goal of falsifying it;
- Integration and report: integrate the change, ensure that new content can be tested directly in the playable build, and send a delivery report;
- Next cycle: continue with the next item in the task brief.
The central role of the test gate
The main risk in unattended development is that a new change may violate an existing rule without being noticed.
The test gate provides continuous supervision. Hundreds of assertions preserve critical game behaviour, including stance-break windows, bonfire saves, and upgrade formulas. If any assertion fails, the task is returned automatically and cannot enter delivery. The gate does not improve the model’s judgment; it prevents unverified results from entering the main workflow.
Adversarial review beyond automated tests
Tests alone cannot guarantee that the observed behaviour is correct, because a passing assertion does not necessarily mean that the problem has disappeared. The project once had a test that remained green while the visible defect persisted. Further inspection showed that the assertion only verified that no event occurred, even though that absence was itself the incorrect result.
An adversarial review layer therefore follows the tests. Before integration, another AI assumes that the proposal is incorrect and actively searches for a counterexample that can overturn it. Low-risk tasks use one reviewer; high-risk tasks use two independent reviewers. A change proceeds only after the issue can no longer be reproduced or the proposal can no longer be reasonably falsified.
Results delivered by an overnight task
The next day’s Night Sail report lists the tasks completed overnight, the number of tests run, the changes integrated, and any questions awaiting human judgment. My work then concentrates on reviewing the result, resolving the open decisions, and preparing the next brief.
Conclusion
“Able to run automatically” and “suitable for unattended operation” are different standards. The latter depends not on abstract trust, but on explicit task boundaries, test gates, and adversarial review. Automated tests control regression risk; adversarial review addresses gaps in judgment. Unattended development is stable only when both are present.