refactor(events): retire occurrence/timeline/flow/knowledge_graph producer talents and think/hooks.py
Sprint 4 Lode A for parent req_ouq77ho6.
Retire the occurrence/event producer side by deleting talent/timeline.md,
talent/flow.md, talent/knowledge_graph.md, talent/occurrence.md, and
talent/occurrence.py.
Scrub the occurrence-producing frontmatter from talent/meetings.md,
talent/decisions.md, talent/followups.md, and talent/messaging.md by
removing the occurrences metadata and hook.post=occurrence contract.
Create think/_extraction_utils.py with only log_extraction_failure,
move think/talents.py to import it from there, and delete think/hooks.py.
Trim tests/test_output_hooks.py per triage:
- Kept the generic post-hook, pre-hook, and template-var coverage
(~lines 50-306 and ~594-end).
- Deleted the 3 occurrence post-process tests
(drop-26-participants / keep-25 / keep-non-meeting-large).
- Deleted the 5 write_events_jsonl tests because they depended on the
deleted talent/occurrence.py or think/hooks.write_events_jsonl.
Remove the stale think/hooks.py stealth-writes row from
docs/coding-standards.md.
Refresh the API baselines and 5 collateral tests to reflect the deleted
talents and the scrubbed frontmatter on the surviving activity talents.
talent/schedule.md and talent/schedule.py were verified untouched,
correcting the CPO spec error called out in section 3.
make ci now passes at 3249 passed / 1 skipped, which is -8 from the
Sprint 3 baseline of 3257 tests.
Out-of-scope followups for the remaining lodes:
- Lode B: think/events.py rename and formatters registry cleanup.
- Lode C: read-side cleanup in apps/, stats, and briefing surfaces.
- Lode D: remaining docs/baselines scrub.