# <type>(<scope>): <subject>
# Types: feat, fix, docs, style, refactor, perf, test, chore
# Scope: module name (plasma, fitfunctions, plotting, core, etc.)
# Subject: imperative mood, no period, <50 chars

# Body (optional - explain WHAT and WHY, not HOW):
# Wrap at 72 characters

# Footer (optional - breaking changes, issue references):
# BREAKING CHANGE: describe breaking change
# Closes #123
# See also #456

# ============================================
# CHECKLIST (complete before committing):
# ============================================
# [ ] Tests added/updated (coverage at or above the pre-commit hook's floor)
# [ ] Physics validation passed (if applicable)
# [ ] Documentation updated (docstrings, README)
# [ ] Code formatted (ruff format) and linted (ruff check)
# [ ] External code attributed (if applicable)
# [ ] Algorithm citations added (if applicable)
# [ ] Backward compatibility maintained

# ============================================
# ATTRIBUTION (required for AI-assisted code):
# ============================================
# End the message with a `Co-Authored-By: Claude …` trailer naming the model.

# ============================================
# ATTRIBUTION QUICK REFERENCE:
# ============================================
# - AI code: Include the Co-Authored-By trailer above in the commit message
# - External code: Add source comments in code file
# - Algorithms: Cite papers in docstrings
# - Uncertain provenance? Reimplement rather than copy (CLAUDE.md, Conventions)
