Module 7 · Lesson 7.5 · Capstone freeze

Extension hygiene, sharing, and the register freeze.

An extension installed today is not the same thing as an extension running in your life in nine months. Three kinds of drift — tool drift, work drift, ecosystem drift — operate quietly, and the register alone does not stop them. The hygiene ritual is the practice that does. Five steps, one sitting, quarterly. This lesson walks you through it, names the five retirement signals, states the module’s sharing posture, and freezes the seventh capstone artifact: extension-register-v1.md alongside your frozen skill and plugin.

Stage 1 of 3

Read & Understand

4 concept blocks

Why hygiene is continuous, not one-time CORE

An extension installed today is not the same thing as an extension running in your life in nine months. Three things drift, each on its own timescale:

The underlying tool drifts. The model the skill was written against gets retired; a newer version handles phrasing differently. The MCP connector’s API changes between minor versions. The folder layout the extension reads is reorganized by a different tool. None of these fire a loud alarm. The extension continues to run — it just slowly does worse, or produces outputs that look right but drift from the contract.

Your work drifts. The research pattern your research-sweep skill was tuned for was specific to one kind of academic project. A year later, most of your research is on a different topic with different source types. The skill still fires, but it is tuned for a world you no longer live in. A skill that was high-leverage at authoring time can become low-leverage or worse without the student noticing.

The ecosystem drifts. A community plugin was the best option at install time. Six months later, a more mature option with a tighter permission surface has landed in the Cowork marketplace. Your registered plugin still works, but a student who is paying attention would retire it in favor of the newer option. The old plugin did nothing wrong; it simply got out-matured.

Against all three kinds of drift, the register row is not an automatic fix. The register is a surfacing tool — it puts drift in front of you at a predictable cadence so you can decide what to do. The hygiene ritual is the practice that turns the register from a document into a habit.

The ritual is quarterly. Ninety days is not a magic number; it is a practical one. Faster than 90 days and the ritual becomes a recurring interruption to real work. Slower than 90 days and drift accumulates past the point where individual decisions are easy to make. Every capstone register row carries a next review date ≤ 90 days out. In a well-run register, the hygiene ritual touches every row at least once per quarter.

The hygiene ritual: five steps CORE

One sitting, quarterly. Every step is done for every row before moving to the next step; the steps surface different kinds of drift, and you want to see the full pattern before deciding any individual row’s fate.

Figure 7.5 — The hygiene ritual as a 90-day cycle
Five-step hygiene ritual A pentagonal flow of five labeled cards arranged around a central ember circle. Card 1 (top): Read descriptions aloud. Card 2 (upper-right): Check permissions vs audit. Card 3 (lower-right): Check review dates. Card 4 (lower-left): Look for collisions. Card 5 (upper-left, ember-accented): Decide — keep / refactor / replace / retire. Solid arrows flow clockwise from 1 through 5. A dashed ember arrow loops from Card 5 back into the center labeled Quarterly — 90-day cycle. Quarterly sweep every 90 days, every row Step 1 Read descriptions aloud. Does this describe the work I actually do? Step 2 Check permissions vs audit. Has the surface widened since install? Step 3 Check review dates. Any row past its date auto-flags. Step 4 Look for collisions. Do two rows share trigger phrases? Step 5 — decision Keep / refactor / replace / retire. One decision per row, with today’s date. Per-row outcomes Keep — new review date. Refactor — tighten now, review in 30d. Replace — install new, retire old. Retire — uninstall, revoke credentials, mark retired with reason. The row stays in the register as history.
Each quarter, every row gets all five steps before any decisions are made. Doing the full pass before deciding is what surfaces pattern — a collision in Step 4 may change the Step 5 call on a row whose description passed Step 1 cleanly.

Step 1 — Read descriptions aloud. For each row, read the what it does column and the extension’s live description aloud. Two questions: “Does this describe the work I actually do?” and “If a smart classmate read only this description, would they pick this extension for that work?” A description that reads clearly at install time frequently reads vaguely nine months later — your work has moved. Flag any row where either question gets a weak yes.

Step 2 — Check permissions against the row’s audit. Open each authored row’s SECURITY.md. Open each installed row’s manifest and changelog. Compare the current permission surface to what the row recorded at audit time. Any widening — a new read scope, a new write capability, a new outbound verb — is a surfacing event. Even if the widening is benign, it is a conscious decision point.

Step 3 — Check review dates. Any row whose next review date has passed gets flagged. A row more than 30 days past review is automatically moved to refactor-or-retire in Step 5. A row within 30 days of passing gets re-reviewed now; no point in deferring another 90 days on a row that is already sliding.

Step 4 — Look for collisions. Read every row’s invocation phrases side by side. Do any two rows share trigger phrases? Do any two rows describe overlapping work? Collisions are the most common cause of silent misfires — the agent picks the wrong tool because two descriptions looked equally applicable. Mark each collision for a Step 5 decision.

Step 5 — Decide per row: keep, refactor, replace, retire.

  • Keep. The row still earns its place. Description still matches your work. Permission surface unchanged or consciously approved. No collisions. Set a new next review date and move on.
  • Refactor. The row still earns its place, but the description has drifted, or the body needs tightening, or a collision with another row needs disambiguation. Schedule the refactor work — short for a description tightening, longer for a body rewrite. Set a next review sooner than the standard cadence so the refactor actually happens.
  • Replace. A better option has matured in the ecosystem, or a more specific version of the same capability is now available. Install the replacement, smoke-test it, and retire the old row. Write a superseded by note in the retired row’s final entry.
  • Retire. The row no longer earns its place. Uninstall, remove the credentials, update the register to show the row as retired with a date and a reason. A retired row is not deleted from the register — it is marked retired. The history is useful; you will see this extension again and will want the record of why you passed.

The ritual is a small practice that prevents a large failure mode. A student who runs it honestly, twice, finishes their first year with a register that still serves them. A student who skips it finishes their first year with the pile-up that Lesson 7.1 warned about.

The five retirement signals CORE

Retirement is the harder half of hygiene. Students hoard extensions the way they hoard browser tabs — the cost of keeping is invisible, the cost of retiring is a small but real decision. The five retirement signals make the decision explicit. Any one of the five is a reason to retire; two or more and the decision is nearly automatic.

Signal 1 — Use has stopped. The extension has not been invoked in the last 30–60 days. This is the quietest signal and the strongest. An extension you have not reached for in two months is not earning its keep. Exception: seasonal extensions (a tax-prep plugin invoked once a year, a college-app-deadline watcher used only in autumn) have legitimate long gaps; tag those in the register so the ritual does not flag them incorrectly.

Signal 2 — The underlying tool has changed. The model family was deprecated. The MCP connector’s API moved. The source data format shifted. Something the extension depends on is no longer the same shape. An extension running on a drifted foundation produces drifted output without saying so. Retire, or refactor to the current tool.

Signal 3 — The description no longer matches your work. Step 1 of the ritual surfaces this. A research-sweep skill tuned for academic triangulation, used by a student who has moved to industry-focused competitive research, is not doing what its description claims. Either refactor the description (and probably the body) to match the current work, or retire.

Signal 4 — The permission surface has widened. A community plugin added a new outbound capability in the last version; your authored plugin needed a broader read scope in the last revision; an MCP connector now grants verbs you did not approve. Widenings are the signal you most need to act on quickly because the trust you gave the extension was trust in the narrower version.

Signal 5 — A better option has matured. A new off-the-shelf option has landed that covers the same job with a tighter permission surface, better documentation, or active maintenance. Retiring in favor of a better option is a feature of ecosystem health, not a failure of your work.

Retiring is a first-class move

Students sometimes feel that retiring an extension they authored or carefully installed is “wasting the effort that went into it.” The framing is wrong. The effort produced the leverage the extension gave you while it was useful. Retiring it, when it stops being useful, protects the next extension from being lost in the pile. A clean register is a register in which retirement is a normal move.

Sharing posture: when and how CORE

You will end Module 7 with at least one custom skill and one custom plugin. At some point you will ask: should I share these? The module’s answer is narrow. Most students should not share in Module 7. The reasons are stable across first-year extension authors:

  • Your first custom skill is tuned for your work. Its description fires reliably on your requests because it is written in your voice and trained against your phrasing. Another person reading it will get misfires you did not see.
  • Your SECURITY.md is honest about the v1.0 permission surface. If someone else installs it and you later ship v1.1 that widens the surface, you have created an obligation you may not be ready to keep. Module 9 will go deeper into the supply-chain discipline this requires; Module 7 is honest about the cost.
  • Sharing is not a rite of passage. You can complete Module 7 — including the capstone — by building extensions that only you use. Sharing is a separate decision with its own discipline.

That said, there are cases where sharing is reasonable, and the module does not forbid it. Three postures, from most to least common for a Module 7 graduate:

Posture A — Do not share. The common and recommended default. Your extensions are yours. Revisit the question when you have authored three or four that have survived multiple hygiene cycles without refactoring. First-year extensions are usually not ready.

Posture B — Private share with a named, small audience. A family member, a co-op classmate, a peer group. The audience is small enough that you know their setup, their skill level, and their risk posture. Ship with the full SECURITY.md, a README.md that names them as the intended audience, and a commitment to notify them manually when you ship an update. No marketplace listing. Audience-only-you extends: the bundle delivers only to the named recipient, in the same narrow way your original bundle delivers only to you.

Posture C — Public share. A marketplace listing, an open repo, an unknown audience. The bar is much higher: your plugin must survive a full quarter of your own use without refactoring, ship with a maintained changelog and a commitment to respond to permission-expansion questions, and answer Module 9’s supply-chain discipline. Few Module 7 students should publish in their first year; those who do should do so with eyes open, and should treat the plugin’s maintenance as a recurring commitment, not a one-time ship.

The sharing decision does not have to be made during Module 7. The frozen v1 of your skill and plugin are artifacts of your own learning and work. If, six months from now, your hygiene ritual surfaces that your skill has survived three quarterly reviews without needing refactoring, reconsider the question. In the meantime, the posture is: you are the audience.

Stage 2 of 3

Try & Build

1 recipe + activity

Freezing the register and the retrospective RECIPE

Recipe Book entry — verified 2026-04-18 / next review 2026-07-18

Full ritual worksheet lives at /resources/module-07/hygiene-ritual.md. Freeze-path scripts and file-layout validation live in /recipe-book/module-07-freeze.md.

Lesson 7.5’s deliverable is the seventh capstone freeze. This section is the how-to, short and concrete.

Step 1 — Run the hygiene ritual across every row. Use /resources/module-07/hygiene-ritual.md as the worksheet. Every row gets the five-step treatment. For each row, the ritual ends with one of keep, refactor, replace, retire, written into the row’s status column with today’s date.

Step 2 — Apply refactors and retires immediately. Refactors happen now — tighten the description, fix the collision, adjust the body. If a refactor is more than a small in-place fix, set a next review date soon and block time for it; do not defer it by a quarter. Retires happen now — uninstall, revoke credentials, mark the row retired.

Step 3 — Verify the final register has between 5 and 7 active rows. A register with fewer than 5 rows is under-populated for a Module 7 graduate (you need at least two installed, two declined, the custom skill, and the custom plugin; that is 6 rows). More than 7 rows at the end of Module 7 is probably too many — some of them likely should be retired. The 5–7 target is approximate; the honest answer is more important than the count.

Step 4 — Copy extension-register-v1-draft.md to extension-register-v1.md. This is the freeze. From this point, the register-v1 file is immutable; future changes go into register-v2 when you are ready.

Step 5 — Verify /capstone/custom-skill-v1/ and /capstone/custom-plugin-v1/ contents. Everything listed in the Lesson 7.3 and 7.4 freezes is present. CHANGELOG.md has dated entries. traces/ has two real-use runs each.

Step 6 — Write the Module 7 retrospective. Add a new section to my-first-loop.md: Module 7 retrospective. 300–500 words, four questions in order:

  • What did I ship? Name the register, the skill, the plugin. One or two sentences each.
  • What surprised me? The most surprising thing you learned. Often this is a description-tuning discovery or an install-time audit discovery.
  • What would I build next? If Module 7 had six more lessons, what would you want the next extension to be? This is the honest forecast of where your authoring is headed.
  • One concrete thing I learned about description-as-classifier. The module’s headline insight; the retrospective asks you to name a specific refinement it caused in your practice.

Step 7 — Update the Extension Posture. Return to the Extension Posture block in my-first-loop.md (written in Lesson 7.1) and revise it to reflect the rules you now actually follow. Your pre-module rule was a guess; your post-module rule is informed. Keep both visible so future-you can see the delta.

Try it — Run the hygiene ritual and freeze the seventh capstone artifact RECIPE

Deliverables: a fully-hygiene-ritual-ed and frozen register, applied refactors, written Module 7 retrospective, updated Extension Posture in my-first-loop.md.

Part 1 — The ritual across every row.

Use /resources/module-07/hygiene-ritual.md as the sheet. For each row — all 5 to 7 of them — do Steps 1 through 5 of the ritual. Write the per-row decision (keep / refactor / replace / retire) in the row’s status column.

Part 2 — Apply refactors and retires.

Any row tagged refactor gets its refactor now. Any row tagged retire gets its retirement — uninstall, revoke credentials, mark the register row retired. Any row tagged replace gets the replacement installed, the old row marked retired with a superseded by note.

Part 3 — Freeze the register.

Copy extension-register-v1-draft.mdextension-register-v1.md. This is the capstone freeze. From this point, the file is immutable for Module 7 purposes.

Part 4 — Retrospective and posture update.

Write the Module 7 retrospective in my-first-loop.md (300–500 words, four questions from Content Block 5). Revise the Extension Posture section so it reflects what you now do, not what you guessed at in Lesson 7.1. Keep the pre-module posture visible as a historical record.

Part 5 — Verify the full capstone.

Confirm the /capstone/ folder contains the three artifacts from Module 7:

  • /capstone/extension-register-v1.md — 5–7 rows, all audited, all with dated next-review, status columns filled.
  • /capstone/custom-skill-v1/SKILL.md, README.md, CHANGELOG.md, traces/.
  • /capstone/custom-plugin-v1/ — manifest, skills/, README.md, SECURITY.md, CHANGELOG.md, traces/.

A missing piece is not a freeze; it is a gap. Close gaps before declaring Module 7 complete.

The retrospective is for future-you

The retrospective is not for the parent signing off on credit, and it is not for a grader. It is for the student reading it six months from now, wondering whether their current extension work is on the same trajectory as their Module 7 work. Written honestly, the retrospective is one of the most useful documents in the capstone portfolio. Written as a performance, it is worth nothing.

Done with the hands-on?

When the recipe steps and any activity above are complete, mark this stage to unlock the assessment, reflection, and project checkpoint.

Stage 3 of 3

Check & Reflect

key concepts, quick check, quiz, reflection, checkpoint, instructor note

Quick check

  1. Name the three kinds of drift that the hygiene ritual exists to surface.
  2. You notice during the ritual that two register rows — one installed community plugin, one skill you authored — share a triggering phrase and the agent has been silently picking the plugin when you wanted the skill. Which ritual step did that discovery come from, and which of the four decisions (keep / refactor / replace / retire) is the right response?
  3. Why does the module recommend Posture A — do not share as the default for first-year extension authors?
Check your thinking

(1) Tool drift (the underlying model, MCP, or data source has changed); work drift (your work has moved and the description no longer matches); ecosystem drift (a better option has matured in the ecosystem).

(2) Step 4, the collision-check step, surfaced it. The right response is refactor one or both rows — tighten the descriptions so they do not collide. If one row is barely earning its keep, retire that one instead; if the other one has a better off-the-shelf alternative, replace.

(3) First-year extensions are tuned to one student’s voice and work; the SECURITY.md is honest about v1.0 only; sharing creates a maintenance commitment most first-year authors are not ready for. The answer is not “never share” — it is “share only when the extension has survived multiple hygiene cycles and you are ready for the commitment.”

Quiz

Five questions. Click to reveal the answer and reasoning.

Q1. Which of the following is not one of the five retirement signals?
  • (A) Use has stopped.
  • (B) The description no longer matches your work.
  • (C) The extension is older than six months.
  • (D) A better option has matured in the ecosystem.
Show explanation

Answer: C. Age alone is not a retirement signal; plenty of old extensions remain useful. The five signals are use-stopped, tool-changed, description-drifted, permission-widened, and better-option-matured. (C) is a plausible-sounding distractor that students sometimes default to.

Q2. You run the ritual and find a row whose permission surface has quietly widened (a new outbound verb in the latest version) that you did not previously approve. What is the right decision?
  • (A) Keep — it is a small change.
  • (B) Refactor (re-audit) — treat the widening as a fresh audit point; if the widened surface passes a new audit, document the approval; if it does not, retire.
  • (C) Replace — find another extension.
  • (D) Retire immediately without evaluation.
Show explanation

Answer: B. Widenings deserve a fresh audit, not a reflex reaction. If the new audit passes, document the approval so the register records your decision; if it fails, move to retire or replace. (A) is the pile-up pattern. (C) and (D) are reflexive and often wasteful — the widened surface might be perfectly acceptable once audited.

Q3. The Module 7 recommended default for sharing your custom skill and plugin at the end of the module is:
  • (A) Publish to the marketplace immediately; sharing is the point.
  • (B) Private-share to a named, small audience.
  • (C) Do not share; revisit the question after the extensions survive multiple hygiene cycles.
  • (D) Archive them as private.
Show explanation

Answer: C. First-year extensions are usually tuned to one student’s work; sharing creates a maintenance commitment that most Module 7 graduates are not ready to meet. (B) is acceptable in the right context but is not the recommended default. (A) is the posture most likely to produce regret. (D) misreads the question — the skill and plugin are in active use by the student; they are not archived.

Q4. You freeze the register with 4 active rows: one installed plugin, two declined candidates, and your custom skill. Your authored plugin is missing. Is this a legitimate Module 7 freeze?
  • (A) Yes — four rows covers the audit, the skill, and the declines; the plugin is optional.
  • (B) No — the capstone is a triplet (register + custom skill + custom plugin). The plugin is not optional.
  • (C) Yes — as long as the retrospective explains the missing plugin.
  • (D) No — there must be at least 7 rows.
Show explanation

Answer: B. The Module 7 capstone freeze is register + skill + plugin as a triplet. A missing plugin is a gap, not a rounding error. Close the gap (Lesson 7.4 work) before declaring Module 7 complete. (A) and (C) lower the bar incorrectly. (D) is a row-count distractor — 5–7 is the approximate target, not a strict minimum.

Q5. The hygiene ritual recommends reading each row’s description aloud. Why specifically aloud?
  • (A) It is faster.
  • (B) Reading aloud forces you to slow down and hear the phrasing from an outside perspective; descriptions that read clearly silently often sound hollow or drifted when spoken.
  • (C) The agent records audio.
  • (D) It makes the ritual more formal.
Show explanation

Answer: B. Reading aloud is a calibration trick — you hear the description as a reader would. Vague or drifted descriptions that look acceptable silently often sound off when spoken. (A), (C), and (D) miss the pedagogy.

Reflection

You have now shipped seven capstone artifacts across Modules 1–7. Write a short paragraph in my-first-loop.md:

Which artifact — across all seven — has most changed the way you work? Which has been the most demanding to keep maintained? If a friend in a similar situation asked you “where do I start?”, which Module 7 artifact would you show them first, and why? (This is the end-of-module reflection; it is short on purpose.)

Project checkpoint — Module 7 capstone triplet

By the end of this lesson — and the end of Module 7 — you should have:

1. /capstone/extension-register-v1.md — frozen, 5–7 rows, every row with current audit + next-review + status.

2. /capstone/custom-skill-v1/ — frozen, with SKILL.md, README.md, CHANGELOG.md (3+ entries), traces/ (2 real-use).

3. /capstone/custom-plugin-v1/ — frozen, with manifest, skills/, README.md, SECURITY.md, CHANGELOG.md, traces/ (2 real-use).

4. my-first-loop.md updated: Extension Posture revised, Module 7 retrospective added (300–500 words).

A missing piece is not a freeze; it is a gap. Close gaps before moving to the end-of-module check.

Next — Module 7 assessment

End-of-module check.

Ten questions, one sitting. Six multiple-choice, two short-answer, two applied. The applied section draws on your frozen register and custom-skill changelog — have both open while you answer. Passing standard is 11.5 / 15 with full credit on at least one applied question.

Then Module 8: Agent Orchestration. Module 8 layers multiple agents, multiple skills, and handoffs on top of the extension library you now have. A clean Module 7 register makes Module 8 possible; a messy one makes Module 8 miserable. The work you did in Lesson 7.5 is the foundation Module 8 builds on.

Take the end-of-module check →