personal memory agent

refactor(events): retire occurrence/timeline/flow/knowledge_graph producer talents and think/hooks.py master

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.