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

## Chapter 19 — A routine is not a sixth check

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

Lesson 19. Map, example, EX065.

```mermaid
flowchart TD
  C["Five keys in checks"] --> L["Five bracket lines"]
  R["Weekly, monthly, yearly routines"] --> P["Prose owners and notes"]
  P --> Q{"Do those routines add keys?"}
  L --> Q
  Q -->|No| K["The dictionary stays five keys"]
```

The routines repeat work. They are not new Booleans.

### Logical drawing

```text
keys: official source, hash, backup, staging, MFA
not keys: weekly update check, monthly account review,
  yearly maintenance review, automatic updates,
  the second volunteer, the director's notice
```
<!-- open-cyber-academy:lesson-figures:end ch-19 -->

### Learning outcomes

After this chapter, you should be able to:

1. List the five keys and stop.
2. Place the three routines in prose.
3. Refuse a sixth bracket for a person or a schedule.

### 19.1 The dictionary's length is five. The calendar of routines is a paragraph.

Weekly work, in the prose, is to check for plugin updates and to apply security updates after staging. Monthly work is to review the component list and the administrator accounts. Yearly work is to review maintenance and the restore test. Each routine is said to have an owner and a note. Owen owns the weekly check. A second volunteer, still unnamed, is the backup the director agreed to ask. None of those sentences is a key in `checks`. `len(checks)` is 5.

Automatic security updates, turned on where the host supports them, are also prose. The host is unnamed, and the dictionary does not store whether that feature exists. The second volunteer is not one of the three administrator accounts merely because both are people. The unfinished volunteer administrator and the second volunteer are different unnamed roles. The script does not store either role.

A sixth key would change the bracket count and, if false, the NOT READY line. The published file has five keys and one false value. SAMM is a maturity model cited for larger practice. It is not scored against these five bits. Shostack (2014) is the threat-modeling reference already in the source list. This checklist is not a threat model, and no data-flow diagram is generated by the script.

| Item | In `checks`? |
|---|---|
| The five release questions | yes |
| Weekly, monthly, and yearly routines | no |
| Automatic updates | no |
| Second volunteer | no |
| Director's notice | no |

### 19.2 Worked example

| Proposed sixth line | Why it is not a key | Decision |
|---|---|---|
| Five brackets remain the print | Five pairs were written | Keep |
| Routines stay in the lesson's prose | They have owners in sentences | Keep |
| "Add a tick for the second volunteer." | No such key | Refuse |
| "Automatic updates are the sixth Boolean." | They are a host feature in prose | Refuse |

> **Synthetic case.** Both volunteers stay unnamed, and they are not merged.

### Errors and limits

Do not lengthen the dictionary to make the routines look measured.

### Apply

- **EX065 — Five keys.** A classmate adds checklist lines for the weekly routine, automatic updates, and the second volunteer, then says the script measured six things. How many keys does `checks` contain, and where do those three items live? *Rubric:* 3 = five keys; one of them is false; the weekly routine, automatic updates, and the second volunteer stay prose; do not add a sixth key;; 2 = the five lines stay and the additions stay prose;; 1 = one key;; 0 = none.

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

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

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

## Worked answers

<a id="answer-ex065"></a>
**EX065.** `checks` has five keys, and one value is false. The weekly routine, automatic updates, and the second volunteer are prose. They are not a sixth key.
