cogitate: default to google + drop tier:3 hardcodes on 9 talents
Flip TYPE_DEFAULTS["cogitate"]["provider"] in think/models.py from
"openai" to "google". tier (TIER_FLASH) and backup ("anthropic") are
unchanged. After this and the per-talent strips below, every cogitate
talent inherits a single uniform default surface: gemini-3-flash-preview
with anthropic failover.
Stripped "tier": 3, from 9 cogitate talent frontmatters so they inherit
the system tier instead of pinning PRO:
- talent/digest.md
- talent/exec.md
- talent/reflection.md
- talent/awareness_tender.md
- talent/pulse.md
- apps/activities/talent/activities_review.md
- apps/entities/talent/entities.md
- apps/skills/talent/skill_observer.md
- apps/todos/talent/todo.md
Amended 3 tests that hardcoded the old default (over-asserting on a
soon-to-be-default value; per task, amend > restore the tier):
- tests/test_models.py::test_type_defaults — provider assertion flipped
to "google".
- tests/test_models.py::test_resolve_provider_no_config — cogitate
branch flipped to ("google", GEMINI_FLASH).
- tests/test_app_sol.py::test_digest_talent_discovery_and_schedule_exclusion
— dropped the tier-equality assertion (test name is about schedule
exclusion; the tier check was unrelated baggage).
Verified resolve_provider("talent.system.digest", "cogitate") returns
('google', 'gemini-3-flash-preview') against an empty journal.
Out of scope, deliberately untouched:
- tests/fixtures/journal/config/journal.json — the cogitate→openai
override is intentional fixture coverage of the override-resolution
path.
- apps/todos/talent/daily.md and talent/facet_newsletter.md still
hardcode tier: 3; CPO is tracking these in a separate lode.
- tests/baselines/api/settings/providers.json — snapshots the 9
talents with tier: 3 and will diff on tier when make verify-api
runs. Refresh via make update-api-baselines in a follow-up.
Future per-talent tier needs go through journal-config override or a
per-talent runtime hint, not by reintroducing tier in frontmatter.
Note: make ci was blocked locally by an unrelated env drift (uv sync
evicted onnxruntime, which observe/transcribe/overlap.py imports at
module top). Verified the constituent gates directly: ruff check,
ruff format --check, scripts/check_layer_hygiene.py, and pytest on
tests/test_models.py + tests/test_app_sol.py (82/82 green).