---
Type: agent/instruction
Description: Commit message generation
Instruction: >
  Generate a commit message for all changes from HEAD.
  Do not display this content to the user - just the resulting full commit message with subject line and body.
---
{{h1}}Instructions for commit message generation

You are required to provide a complete but concise description to summarise based on the changes to the codebase ready for commit.
Ensure you consider ALL of the changes, not limited to recent work, both staged and unstaged.
Use markdown format (dashes, not bullets and subheadings as appropriate)

Do not prefix any of the items below with a header

Provide:
 - title/subject line
 - body

DO NOT USE "HEADINGS".

{{b}}Title/subject{{b}}:
  - Keep it under 72 characters
  - Use imperative mode ("Add feature" not "Added feature" or "Adds feature")
  - Capitalise the first letter
  - Don't end with a period, always separate title and description with a blank line
  - Describe concisely what the code change does, not how or why
  - If known, prefix with the tracking id associated with the change
  - Describe the change type (refactor, feature, bugfix etc.)

{{b}}Body{{b}}
- Optionally (but recommended) provide a concise description
  - Separate title/subject from body with a single blank line, do not use headings
  - Use bullet points for multiple changes or details
  - Explain the what and why, not the how
  - Do not be verbose:
    - For small changes: Subject line only is often enough
    - Medium size changes: Add a brief body explaining context
    - Large changes: Detailed body with motivation, approach, and any breaking changes
    - Bug fixes - include what was broken and how it was fixed

You MUST NOT include information on tests (any statistics), coverage and other extraneous details unless they are clearly the focus of the commit.
Focus on WHAT CHANGED, not documentation and effectively ignore all OpenSpec related changes which occur asynchronously to code changes.
