refactor(cli): invert default polarity on four write-verb CLI surfaces
Swap "run with no flags" from destructive to preview across four CLI
surfaces, so defaults are safe per docs/coding-standards.md §L4/§L5.
- apps/speakers/call.py: bootstrap, resolve-names, attribute-segment,
backfill, seed-from-imports now take --commit (default False) instead
of --dry-run. Wrappers translate to dry_run=not commit. For
attribute-segment, --save/--no-save and --accumulate/--no-accumulate
only fire when --commit is also passed.
- apps/settings/call.py: keys validate is read-only by default; pass
--cache-result to persist providers.key_validation. Stdout shape is
unchanged.
- apps/todos/call.py: remove check-nudges; add list-nudges-due (pure
read, supports --json) and dispatch-nudges (old write path intact).
Shared _due_nudges() enumerates due-and-unnotified items.
- apps/import/call.py: rename resolve-facet -> resolve-staged-facet,
replace positional action with mutually-exclusive --apply / --skip.
Python fn renamed to apply_staged_facet (no read-verb segments).
Layer-hygiene ALLOWLIST is now empty; the import-resolve-facet entry
and its TODO comment are gone. docs/SOLCLI.md and talent docs
(review.md, review_facets.md) updated to new command names and flags.
Python API signatures unchanged. No shims/aliases. No changes to
confirm-owner, talent/speaker_attribution.py, apps/settings/routes.py,
keys_set/keys_clear, or resolve-entity/config/config-all.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>