Installation: pip install ckanext-comments, add ‘comments’ to ckan.plugins, run ‘ckan db upgrade -p comments’. Dependencies: blinker, typing-extensions. Python >=3.8, CKAN >=2.9. Configuration: ckanext.comments.require_approval (default: true) for comment moderation, ckanext.comments.draft_edits (default: true) allows editor to edit drafts, ckanext.comments.draft_edits_by_author (default: true) allows author to edit own drafts, ckanext.comments.approved_edits (default: false) for editor editing approved comments, ckanext.comments.approved_edits_by_author (default: false) for author editing own approved comments, ckanext.comments.mobile_depth_threshold (default: 3) for mobile reply levels, ckanext.comments.enable_default_dataset_comments (default: false) to auto-include on dataset pages, ckanext.comments.subject.{subject_type}_getter for custom subject types (e.g., ckanext.comments.subject.question_getter=path.to.getter). Snippet usage: {% snippet ‘comments/snippets/thread.html’, subject_id=pkg.id, subject_type=’package’ %}. API: comments_thread_create/show/delete, comments_comment_create/show/approve/delete/update. Thread options: init_missing, include_comments, include_author, combine_comments, after_date. Use cases: Dataset discussions, resource feedback, community engagement, moderated content, Q&A sections.