🤖 Answered, by Paul, 2026-09-05 — recording it here because #13 says to settle this before building the passkey half.
Items in the vault, stored as items; a view of their own, not a badge in the list.
The question as written was items-in-the-vault or a separate migration screen, and the answer is that those are two different axes wearing one name. One is where the checklist is stored; the other is where it is shown. Splitting them gets both halves of the trade-off instead of trading one away.
Stored as items, with a distinct type. A list of the sites you hold passkeys for is content in an A1 product — it names services you have accounts with — so it has to be sealed wherever it lives. Reusing the item store means it is sealed by the same path as everything else, covered by the same merciless greps, and needs no new table and no new migration. A separate sealed surface would have been a whole storage surface, with its own canary obligation, for a list people delete once they are done with it.
Shown on its own view, filtered out of the vault list. That answers the real objection in the original question — non-secrets landing in the surface people curate — without paying for a second store. It also means the checklist survives the import session, which a toast does not, because it is a row rather than a notification.
The cost, stated: every path that walks items (search, sharing, the agent surface) now has to know about a row that is not a credential. That is a filter each of them owes, and it is cheaper than a parallel store.