Hygiene Ritual Worksheet
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
The five ritual steps (reference)
- 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?
- 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.
- Check review dates. Any row past its next-review date gets flagged. More than 30 days past = automatic refactor-or-retire.
- 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.
- 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 name: Category:
☐ Clear yes ☐ Weak yes (flag) ☐ No (refactor or retire)
☐ Match ☐ Widened (name what widened) ☐ Narrowed (benign, note it)
☐ On time ☐ Within 30 days past ☐ More than 30 days past (auto-flag)
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.
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).
Tool has changed. An underlying tool was deprecated, rewrote its API, or changed defaults in a way that breaks the row's fit.
☐ Triggers
Description no longer matches your work. Surfaced by Step 1. Either refactor description + body to current work, or retire.
☐ Triggers
Permission surface has widened. Surfaced by Step 2. The trust you gave was trust in the narrower version. Act quickly.
☐ Triggers
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
- Every row block filled. Every decision written into extension-register-v1.md with today's date.
- Every refactor applied, every retire executed (uninstall + revoke credentials + status mark), every replace shipped.
- Aggregate sweep filled. Pattern-level findings noted.
- Next ritual date written on the header (today + 90 days). Add to calendar.
- 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).