---
description: 'Commit message format and conventions'
---

# Commit Message Guidelines

This document provides instructions for generating standardized commit messages.

## Format Requirements

* Use Conventional Commit Messages
* All changes MUST be in imperative mood

## Types

Types MUST be one of the following:

* `feat` - A new feature
* `fix` - A bug fix
* `refactor` - A code change that neither fixes a bug nor adds a feature
* `perf` - A code change that improves performance
* `style` - Changes that do not affect the meaning of the code
* `test` - Adding missing tests or correcting existing tests
* `docs` - Documentation only changes (excluding: `*.instructions.md`, `*.prompt.md`, `*.agent.md`, as these are prompts and instructions likely meaning the changes are `feat`, `chore`, etc)
* `build` - Changes that affect the build system or external dependencies
* `ops` - Changes to operational components
* `chore` - Other changes that don't modify src or test files

## Scopes

Derive the commit scope from the primary directory affected by the change. Use the directory name in lowercase as the scope. Common scopes include:

* `(docs)` - Documentation
* `(agents)` - Custom agent definitions
* `(prompts)` - Prompt templates
* `(instructions)` - Coding guidelines
* `(workflows)` - CI/CD workflows
* `(build)` - Build system and dependencies
* `(settings)` - Configuration files

Use additional scopes matching the repository's directory structure when changes target directories not listed above. If the repository defines a scope list in its project instructions, follow that list.

## Description

* Description MUST be short and LESS THAN 100 bytes
* Examples:

```txt
feat: update logic with new feature
chore: cleaned up and moved code from A to B
feat(iot-ops): add parameters to take name instead of id
```

## Body (Optional)

For larger changes only:

* Body starts with a blank line
* Contains a summarized bulleted list (0-5 items AT MOST)
* MUST be LESS THAN 300 bytes

## Footer

* Footer MUST start with a blank line
* Must include an emoji that represents the change
* Must end with `- Generated by Copilot`

## Example Complete Commit Message - Large

```txt
feat(cloud): add new authentication flow

- add commit message, markdown, C# along with C# test instructions
- introduce task planner and researcher, prompt builder, and adr creation agents
- configure markdownlint and VS Code workspace settings
- add ADO work items prompts for getting and preparing my work items
- add .gitignore and cleanup README newlines

🔒 - Generated by Copilot
```

## Example Complete Commit Message - Medium to Small

```txt
feat(prompts): update summarize-my-work-items.prompt.md to clarify json output, correct get-my-work-items.prompt.md to fallback to wit_my_work_items

🔒 - Generated by Copilot
```
