Hygiene Ritual Worksheet

Module 7, Lesson 7.5 · quarterly (every 90 days) · five steps per row, one aggregate sweep

How to use: Print one copy per quarter. Fill one row block per register row, then fill the aggregate sweep. File the completed sheet alongside extension-register-v1.md (or the active register file) dated with the ritual date.

Order matters: Run Steps 1–4 across every row first. Only then decide in Step 5. A collision found in Step 4 may change the Step 5 call on a row that passed Steps 1–3 cleanly.

Hygiene is not maintenance. It is the practice that makes the register true.

A ritual where every row is marked "keep" with no refactors, no retires, and no notes is a ritual that did not happen.

Header

Ritual date:
Next ritual due (+90 days):
Rows reviewed: of
Time spent: min (target: 60–90)

The five ritual steps (reference)

  1. Read descriptions aloud. Does the row's "what it does" column describe the work you actually do? Would a smart classmate pick this extension for that work based on the description alone?
  2. Check permissions against the row's audit. Compare current permission surface vs what you recorded at audit time. Any widening is a surfacing event even if benign.
  3. Check review dates. Any row past its next-review date gets flagged. More than 30 days past = automatic refactor-or-retire.
  4. Look for collisions. Read every row's invocation phrases side by side. Do any two share triggers? Overlap silently causes the wrong tool to fire.
  5. Decide per row: keep / refactor / replace / retire. Write the decision into the row's status column with today's date.

Per-row block (make a copy for every row)

Row

Row name:    Category:

1
Read description aloud. Does it describe my actual work? Would a stranger pick it for that work?
☐ Clear yes   ☐ Weak yes (flag)   ☐ No (refactor or retire)
2
Permissions vs audit. Current surface matches audit-time surface?
☐ Match   ☐ Widened (name what widened)   ☐ Narrowed (benign, note it)
3
Review date. Next-review date on file:   Today's date:
☐ On time   ☐ Within 30 days past   ☐ More than 30 days past (auto-flag)
4
Collisions. Does this row share trigger phrases or overlap in work with another row? If yes, which?
5
Decision. Circle one:
○ KEEP ○ REFACTOR ○ REPLACE ○ RETIRE
One-sentence reason (and, if refactor, what you will change):

After deciding, write the decision and today's date into the row's status column in extension-register-v1.md. Refactors and retires execute immediately (see Lesson 7.5, Step 2 of the freeze walkthrough).

The per-row decision tree

Use when Step 5 is ambiguous. Walk the tree from the top; the first yes picks the decision.

├ Is the row invoked in the last 30–60 days?
│    no  → candidate for RETIRE (confirm via signal check below)
│    yes → continue
├ Did Step 1 read aloud cleanly AND Step 2 show no widening?
│    no  → candidate for REFACTOR (tighten description or re-audit)
│    yes → continue
├ Did Step 4 find no collisions?
│    no  → REFACTOR one or both rows (tighten descriptions) OR RETIRE the weaker row
│    yes → continue
├ Has a meaningfully better alternative matured since install?
│    yes → REPLACE (install new, mark old row retired with "superseded by")
│    no  → KEEP

The five retirement signals

Any one of the five is a reason to retire. Two or more and the decision is nearly automatic. Check the box for any signal that applies to the row in the current block.

Signal 1

Use has stopped. Not invoked in the last 30–60 days. Quietest signal, strongest evidence.

☐ Triggers   Exception: seasonal rows (tag them so future rituals skip this check).

Signal 2

Tool has changed. An underlying tool was deprecated, rewrote its API, or changed defaults in a way that breaks the row's fit.

☐ Triggers

Signal 3

Description no longer matches your work. Surfaced by Step 1. Either refactor description + body to current work, or retire.

☐ Triggers

Signal 4

Permission surface has widened. Surfaced by Step 2. The trust you gave was trust in the narrower version. Act quickly.

☐ Triggers

Signal 5

A better option has matured. A different extension now does the job more narrowly, more reliably, or with a smaller permission surface. Retire the older row and install the replacement (or use the Replace decision).

☐ Triggers

Aggregate sweep (once per ritual, across all rows)

After the per-row blocks, walk the whole register once more to catch pattern-level issues no single row surfaces. Complete this sheet before freezing the ritual.

Aggregate check Finding (one line) and action
Collisions surfaced in Step 4. List every pair that shared triggers. Which rows are you refactoring or retiring?
Widenings surfaced in Step 2. Any permission surface that grew since audit time. What did you do with each?
Overdue reviews surfaced in Step 3. Rows past their next-review date. Which are re-reviewed now vs queued?
Row count check. Final active-row count after this ritual. Target at end of Module 7: 5–7 active rows. Outside range?
Retired rows this ritual. List with one-line reasons (for the next ritual's memory).
Refactors applied this ritual. List, with what changed on each.
Sharing-posture check. Any row that has now survived enough cycles to move from Posture A to Posture B? Name it and note the candidate audience.

Closeout

  1. Every row block filled. Every decision written into extension-register-v1.md with today's date.
  2. Every refactor applied, every retire executed (uninstall + revoke credentials + status mark), every replace shipped.
  3. Aggregate sweep filled. Pattern-level findings noted.
  4. Next ritual date written on the header (today + 90 days). Add to calendar.
  5. Completed sheet filed alongside the register.

Retirement is the harder half of hygiene.

If every row reads "keep" with no refactors and no retires, read the descriptions aloud again. There is always at least one row whose description no longer fits the work. The ritual's job is to surface it.

This worksheet accompanies Lesson 7.5 of AI Architect Academy. The five steps, four decisions, five retirement signals, and aggregate sweep are concept. Freeze-path scripts and file-layout validation live in the Recipe Book (/recipe-book/module-07-freeze.md).