
# CHANORA_CFG_Git_Commit_Message_Convention_v0.9.2.2.1

**Document type:** Configuration / Engineering Convention  
**Version:** 0.9.2  
**Status:** Baseline Candidate  
**Language:** English  
**Product:** Chanora  
**Repo path:** `docs/governance/git-commit-message-convention.md`  ---

## 1. Purpose

This document defines the Git commit message convention for Chanora.

Chanora shall use a Conventional Commits style format with project-specific scopes.

## 2. Commit Format

```text
<type>(<scope>): <summary>
```

Optional body:

```text
<type>(<scope>): <summary>

<body>

Refs: <issue or requirement IDs>
```

Breaking change format:

```text
<type>(<scope>)!: <summary>

BREAKING CHANGE: <description>
```

## 3. Commit Types

| Type | Meaning |
|---|---|
| `feat` | New user-visible or system-visible capability |
| `fix` | Bug fix |
| `docs` | Documentation-only change |
| `style` | Formatting change without behavior change |
| `refactor` | Code restructuring without intended behavior change |
| `perf` | Performance improvement |
| `test` | Test addition or test update |
| `build` | Build system, dependency, packaging, CI artifact change |
| `ci` | CI/CD pipeline change |
| `chore` | Maintenance task |
| `revert` | Revert a previous commit |
| `release` | Release preparation, version bump, release metadata |
| `sec` | Security-specific change |
| `i18n` | Localization, internationalization, Unicode, locale behavior |
| `ux` | UI/UX behavior or interaction change |

## 4. Recommended Scopes

| Scope | Area |
|---|---|
| `flutter` | Flutter app in general |
| `ui` | UI components and screens |
| `theme` | Material 3, design tokens, theme extensions |
| `adaptive` | Adaptive layout and window classes |
| `voice` | Voice UI or voice control behavior |
| `audio` | Audio capture, playback, processing, DSP |
| `core` | Rust Core orchestration |
| `protocol` | `tsclientlib` integration and protocol adapter |
| `bridge` | Flutter/Rust bridge and DTOs |
| `state` | State synchronization, reducers, snapshots, events |
| `storage` | Local database or non-secret persistence |
| `secure-storage` | Keychain/Keystore/secret storage |
| `diagnostics` | Logs, redaction, diagnostic export |
| `i18n` | Localization, Unicode, locale formatting, RTL |
| `android` | Android-specific behavior |
| `ios` | iOS-specific behavior |
| `windows` | Windows-specific behavior |
| `macos` | macOS-specific behavior |
| `linux` | Linux-specific behavior |
| `build` | Build tooling |
| `ci` | CI pipeline |
| `release` | Release packaging and release metadata |
| `docs` | Documentation |
| `req` | Requirements documents |
| `sysdes` | System architectural design |
| `srs` | Software requirements |
| `sad` | Software architecture |
| `sdd` | Software detailed design |
| `ver` | Verification documents |

## 5. Examples

```text
feat(voice): add push-to-talk state handling
```

```text
fix(protocol): recover channel tree after reconnect snapshot
```

```text
docs(sad): add interface catalog and performance view
```

```text
i18n(ui): add fallback behavior for missing localization keys
```

```text
sec(diagnostics): redact server password from export bundle
```

```text
test(audio): add unit tests for audio meter level clamping
```

```text
release(android): prepare internal alpha build metadata
```

## 6. Requirement and Document References

When relevant, the commit body should reference affected IDs.

Allowed examples:

```text
Refs: SRS-156, SAD-013, SDD-017
```

```text
Refs: SWE4-UV-011
```

Do not force every commit to reference a requirement. Use references when the change affects requirements, architecture, detailed design, verification, release, security, or traceability.

## 7. Pull Request Title Rule

Pull request titles should follow the same format as commit messages when possible:

```text
feat(voice): add persistent VoiceBar controls
```

## 8. Branch Naming

Recommended branch format:

```text
<type>/<short-topic>
```

Examples:

```text
feature/voicebar-controls
fix/reconnect-state-sync
docs/baseline-candidate-v09
release/internal-alpha-001
hotfix/diagnostic-redaction
```

## 9. Change History

| Version | Date | Description |
|---|---|---|
| 0.9.0 | 2026-05-14 | Initial Git commit message convention for Chanora. |


## Baseline Candidate 0.9.1 Update

| Version | Date | Description |
|---|---|---|
| 0.9.1 | 2026-05-14 | Updated baseline after product decision closure: Apple App Store SDK gate uses Xcode 26+ and iOS 26 / iPadOS 26 SDK+ since 2026-04-28, platform baselines and decision traceability propagated across the document set. |


## Baseline Candidate 0.9.2 Update

| Version | Date | Description |
|---|---|---|
| 0.9.2 | 2026-05-14 | Corrected Apple App Store Connect upload gate to 2026-04-28 and checked full-package naming, references, and coverage. |
