Sam approved updating the Attorney Hub workup skill so future agents do not swap plausible but mismatched reports into attorney-hub drilldowns.
Updated the active Codex skill at:
/Users/samaguiar/.codex/skills/attorney-hub-workup/SKILL.md
Promoted and registered a canonical Projects skill copy at:
/Users/samaguiar/Documents/Projects/Skills/attorney-hub-workup/SKILL.md
Updated the Projects skill registry at:
/Users/samaguiar/Documents/Projects/Skills/SKILL-INDEX.md
The new rule says every metric card drilldown must verify that the displayed count and destination row count are produced by the same predicate. A saved report cannot be accepted just because its name looks right. If a report or list count does not match the tile, the skill now directs agents to use an exact report, exact list view, or an in-component source table backed by the same Apex query as the tile.
The QA section now requires agents to record the displayed count, destination row count, destination type, and verification method for each changed metric. Mismatches are blockers unless the card clearly labels the difference.
Validated that skill_registry_check.py --list returns attorney-hub-workup from Skills/attorney-hub-workup/SKILL.md.
Validated that the canonical Projects skill and the active Codex mirror are byte-identical using diff -u.
Validated that the new text is present in both skill copies and the registry using rg for count-to-drilldown, same predicate, and destination row count.
Complete. The active Codex skill is updated, and the canonical Projects copy is registered. No live Salesforce metadata was changed in this follow-up.
Future attorney-hub work should load attorney-hub-workup before wiring report/list/source links. The key behavior to preserve is: count first, destination count second, same predicate or explicitly labeled mismatch.