Dispose of an Item with Bob University
Dispose of an Item with Bob University
Section titled “Dispose of an Item with Bob University”Bob University (BobU, #2898)
gives every BoB item a disposition: certified, needs-work,
not-applicable or retire. The decisions live in registry/dispositions.json
(Dispositions). bob u is the command for
working through them. bob learn is an alias and runs the same command.
Terminal only. bob u reads and writes the BoB source checkout ($BOB_SOURCE, else the checkout it runs from, else ~/projects/bigbrain), never the deployed ~/.claude. dispose --apply refuses when only the deployed copy can be found.
1. See what is undisposed
Section titled “1. See what is undisposed”bob u statusbob u status — Bob University dispositions (#2898) 0 certified · 0 needs-work · 0 not-applicable · 0 retire · 155/155 undisposed usage: 61 fleet event(s) from 1 machine(s) — missing macbook-air, macbook-pro-16
RE-EXAMINE (0) none
UNDISPOSED (155) skills:api-designing applicable-unused · 0 event(s) skills:cloudflare-dev applicable-unused · 0 event(s) skills:agent-builder unscoped · 0 event(s) · metadata fix skills:commit universalEach undisposed item shows:
- its applicability bucket from
bob tour --applicability(Applicability).universalmeans a universal item, which that grading does not cover. - its fleet usage: how many invocation events it has across every machine.
When a machine is listed as missing on the usage: line, “0 events” does not
yet prove the item is unused.
The re-examine list names certified items that now run on a model they
were not certified against (model-change), or on a newer id in the same family
(model-replaced). Each line names both models. An agent’s model comes from
its model: frontmatter. A skill, a command or an inheriting agent runs on the
session default ($ANTHROPIC_MODEL, else model in ~/.claude/settings.json).
See Re-examination for the
rules. To re-examine an item, run steps 3 and 4 again against the new model.
The earlier certification stays in the record’s history.
For the same report as one bob-u-status/1 document, add --json.
The command exits 1 when registry/dispositions.json fails its own gate. The
violations are listed first; fix them before recording anything new.
2. Decide what the item needs
Section titled “2. Decide what the item needs”Pick one item from the list. The evidence tells you which route to take:
What status shows |
Route |
|---|---|
not-applicable-anywhere |
No portfolio project uses its stack. Record not-applicable, or retire when that stack is not coming back. |
applicable-unused, and the usage line names no missing machine |
A project could use it but nobody does. Record needs-work or retire. |
| The item is used, and you want to know whether it helps | Examine it (step 3) before you record certified or needs-work. |
Only examine an item when applicability and usage cannot decide it.
3. Examine it (optional)
Section titled “3. Examine it (optional)”bob u exam runs the item’s eval suite from evals/<name>/
(#2390). The suite runs with
and without the item loaded, and under a realistic kit overlay.
bob u exam tdd-flow --kit bugfix --model claude-opus-5-5 --out /tmp/tdd-flow-exam.jsonbob u exam skills:tdd-flow — evals/tdd-flow on claude-opus-5-5 under kit bugfix, restored with 0.82 · without 0.61 · delta 0.21 → improved · trigger rate 1 supports: certified next: bob u dispose skills:tdd-flow certified --exam /tmp/tdd-flow-exam.json --baseline evals/tdd-flow/baseline.json --reason "…"- An overlay that is already active is used as is. Without
--kit, the machine’s default kit is applied. Either way, an overlay the exam applied is restored afterwards. To run bare, pass--no-overlay. - A
no-signalorregressedresult supportsneeds-work, nevercertified, and the command exits1. - An item with no suite is refused (exit
2), and the message names where to author one: Skill evals. - The exam is a paid run: each case runs a full
claudechild on both arms, under the cost ceiling_workflow.eval_max_cost_usd(default $2). If the runner cannot run at all (noclaude, the platform failed),examexits3with the cause.
4. Record the disposition
Section titled “4. Record the disposition”Run dispose without --apply first. It prints the record it would write,
filled with today’s applicability bucket and fleet usage, and checks the record
against the same rules as make check-dispositions:
bob u dispose drupal-security not-applicable \ --reason "No Drupal project ships in the portfolio this quarter; the skill itself is sound."If the record looks right, add --apply to write it to
registry/dispositions.json. Then commit it:
bob u dispose drupal-security not-applicable \ --reason "No Drupal project ships in the portfolio this quarter; the skill itself is sound." --applymake check-dispositions- A record that would fail the gate is refused (exit
1) and nothing is written. For example,certifiedwithout an improving exam is refused. - Disposing an item again replaces its record. The output names the record it replaced.
- For
certified, pass the exam result with--exam. The model comes from the exam, and the baseline defaults toevals/<name>/baseline.json.
Retiring an item
Section titled “Retiring an item”retire needs the issue or commit that retires the item:
bob u dispose strapi-dev retire --retired-by '#2902' \ --reason "No Strapi project exists or is planned." --applyIt also prints a draft entry for scripts/lib/retired-items.json and the
steps that finish the retirement in the same change:
git rmthe item.- Add the draft entry to
scripts/lib/retired-items.json. - Run
make check-retired-items check-dispositions.
bob u never writes retired-items.json while the item still exists.
Check an edit to a skill
Section titled “Check an edit to a skill”When you change a skill that has a suite, check that the edit helps before you merge it. Run the suite on the edited skill, then gate the result against the best score recorded for that model:
bob eval run commit --model claude-sonnet-5-5 --out /tmp/commit.jsonbob eval gate commit /tmp/commit.jsongate commit on claude-sonnet-5-5: ACCEPT — 0.83 is strictly above the recorded best for claude-sonnet-5-5 (0.67) nothing written — add --record --pr <#N> --pages <slug,…> to record itbob eval gateexits0to accept and1to reject. An equal score is a reject, because only a strict improvement passes.- To keep the outcome, rerun the gate with
--record --pr '#N' --pages <slug>, giving the pull request and the wiki pages the edit was built on. An accepted result raises the best inevals/commit/baseline.json. Either way, one row goes intowiki/skill-impact.md. - Authoring a suite, the trigger cases and the cost ceilings are covered in Skill evals.
Related
Section titled “Related”- Dispositions: the record and its rules.
- Applicability: the buckets.
- Retired Items: where a retirement is completed.
- Tour What Is Provisioned: the per-project view
bob ubuilds on. - Skill evals: suites,
bob eval runandbob eval gate. - bob CLI reference: every flag and exit code.