_discourse.py: bootstrap an admin (recipe seeds none) + mint an ApiKey via rails runner in the app container (class-B run-scoped). test_create_topic.py: POST /posts.json (unique marker) -> GET /t/<id>.json title+cooked round-trip. test_site_basic.py: GET /site.json asserts discourse categories config. Meets P3 (>=2 functional beyond health).