Coverage for src / moai_adk / core / git / commit.py: 28.57%
7 statements
« prev ^ index » next coverage.py v7.12.0, created at 2025-11-20 20:52 +0900
« prev ^ index » next coverage.py v7.12.0, created at 2025-11-20 20:52 +0900
1"""
2Commit message formatting utilities.
4SPEC: .moai/specs/SPEC-CORE-GIT-001/spec.md
5"""
7from typing import Literal
10def format_commit_message(
11 stage: Literal["red", "green", "refactor", "docs"],
12 description: str,
13 locale: str = "ko",
14) -> str:
15 """
16 Generate a commit message for each TDD stage.
18 Args:
19 stage: TDD stage (red, green, refactor, docs).
20 description: Commit description text.
21 locale: Language code (ko, en, ja, zh).
23 Returns:
24 Formatted commit message.
26 Examples:
27 >>> format_commit_message("red", "Add failing authentication test", "ko")
28 '🔴 RED: Add failing authentication test'
30 >>> format_commit_message("green", "Implement authentication", "en")
31 '🟢 GREEN: Implement authentication'
33 >>> format_commit_message("refactor", "Improve code structure", "ko")
34 '♻️ REFACTOR: Improve code structure'
35 """
36 templates = {
37 "ko": {
38 "red": "🔴 RED: {desc}",
39 "green": "🟢 GREEN: {desc}",
40 "refactor": "♻️ REFACTOR: {desc}",
41 "docs": "📝 DOCS: {desc}",
42 },
43 "en": {
44 "red": "🔴 RED: {desc}",
45 "green": "🟢 GREEN: {desc}",
46 "refactor": "♻️ REFACTOR: {desc}",
47 "docs": "📝 DOCS: {desc}",
48 },
49 "ja": {
50 "red": "🔴 RED: {desc}",
51 "green": "🟢 GREEN: {desc}",
52 "refactor": "♻️ REFACTOR: {desc}",
53 "docs": "📝 DOCS: {desc}",
54 },
55 "zh": {
56 "red": "🔴 RED: {desc}",
57 "green": "🟢 GREEN: {desc}",
58 "refactor": "♻️ REFACTOR: {desc}",
59 "docs": "📝 DOCS: {desc}",
60 },
61 }
63 template = templates.get(locale, templates["en"]).get(stage.lower())
64 if not template:
65 raise ValueError(f"Invalid stage: {stage}")
67 return template.format(desc=description)