Appearance
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
bash
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
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)
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.
bash
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
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:
bash
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:
bash
bob u dispose drupal-security not-applicable \
--reason "No Drupal project ships in the portfolio this quarter; the skill itself is sound." --apply
make 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
retire needs the issue or commit that retires the item:
bash
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
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:
bash
bob eval run commit --model claude-sonnet-5-5 --out /tmp/commit.json
bob 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
- 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.