<a id="ch-18"></a>

## Chapter 18 — The morning release is not this print

<!-- open-cyber-academy:lesson-figures:start ch-18 -->
### Lesson map

Lesson 18. Map, example, EX064.

```mermaid
flowchart TD
  F["MFA Boolean is False"] --> N["NOT READY line"]
  M["Next morning, in prose"] --> H["Volunteer finishes setup"]
  H --> Q{"Does the published file change the Boolean?"}
  N --> Q
  Q -->|No| K["The print stays NOT READY"]
```

A later rerun is a sentence. This output is the file as published.

### Logical drawing

```text
published missing list: not empty
published decision word: NOT READY
READY would require an empty missing list
that edit is not in the file
```
<!-- open-cyber-academy:lesson-figures:end ch-18 -->

### Learning outcomes

After this chapter, you should be able to:

1. Keep the published checklist on the NOT READY branch.
2. Place the next morning in prose.
3. Refuse a second script that prints READY.

### 18.1 Holding the release does not assign `True`.

The lesson says Owen held the release until the volunteer finished setup the next morning, then reran the checklist and released. The published dictionary still maps `admin accounts use MFA` to `False`. The `missing` list therefore still has one key, and the last line is still `NOT READY: admin accounts use MFA`. A morning rerun that printed `READY` would be a second program, or an edit of this one. Neither is in the book.

The director had already asked to be told before a donor-visible change, and the update was treated as such a change. That notice is prose. It is not a sixth key, and it does not flip the fifth Boolean. The cost of waiting overnight is also prose. The script has no clock besides the dates in the other lab, and those dates are not read by `lab_release.py`.

Replacing `False` with `True` so the sample looks finished would teach a different file from the one whose output was embedded. The hold, the morning, and the release stay in the narrative beside the unchanged print.

| Event | In the published `checks`? |
|---|---|
| MFA Boolean false | yes |
| NOT READY line | yes, as the print |
| Volunteer finishes the next morning | prose only |
| A later print of READY | not in this file |

### 18.2 Worked example

| Sentence about the release | Effect on this file | Decision |
|---|---|---|
| The embedded print says NOT READY | `missing` is not empty | Keep |
| Owen waited, then released | Narrative beside the file | Keep as prose |
| "The published output now says READY." | The Boolean is still false | Refuse |
| "The director's notice is a checklist key." | It is an email condition | Refuse |

> **Synthetic case.** The morning is part of the story, not a second embedded output.

### Errors and limits

Do not rewrite the false bit because the story moved past it.

### Apply

- **EX064 — Unpublished rerun.** A classmate replaces the last line with `READY` because Owen released the update the next morning. What does the published file still print, and where does the morning belong? *Rubric:* 3 = the file still prints `NOT READY: admin accounts use MFA`; the morning rerun stays prose; `READY` would need an empty `missing` list, which this file does not have;; 2 = NOT READY stays and the morning stays prose;; 1 = one word;; 0 = none.

<!-- open-cyber-academy:chapter-navigation:start ch-18 -->
### Continue studying — lesson 18 (chapter 18 of 20)

[← Chapter 17](#ch-17) · [Course chapter index](../SUBJECTS.md) · [Chapter 19 →](#ch-19)

Continue to the next authored lesson.
<!-- open-cyber-academy:chapter-navigation:end -->

## Worked answers

<a id="answer-ex064"></a>
**EX064.** The published file still prints `NOT READY: admin accounts use MFA`. The next morning stays prose. `READY` would require an empty missing list.
