# 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 (): ``` Optional body: ```text (): Refs: ``` Breaking change format: ```text ()!: BREAKING CHANGE: ``` ## 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 / ``` 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. |