Style Profiles

Choose from Default, Blueprint, Conventional, Ticket-prefixed, or Kernel styles.

Hunknote supports multiple commit message formats.

Default

Standard format with title and bullet points.

Add user authentication feature

- Implement login and logout endpoints
- Add session management middleware

Usage: hunknote or hunknote --style default


Blueprint

Comprehensive format with structured sections.

feat(auth): Add user authentication

Implement secure user authentication with JWT tokens
and session management for the API.

Changes:
- Add login and logout endpoints
- Implement JWT token validation

Implementation:
- Create auth middleware in hunknote/auth.py

Testing:
- Add unit tests for auth flow

Notes:
- Requires REDIS_URL for production

Allowed sections: Changes, Implementation, Testing, Documentation, Notes, Performance, Security, Config, API

Usage: hunknote --style blueprint


Conventional

Conventional Commits specification.

feat(auth): Add user authentication

- Implement login and logout endpoints
- Add session management middleware

Refs: PROJ-123

Valid types: feat, fix, docs, refactor, perf, test, build, ci, chore, style, revert

Usage: hunknote --style conventional


Ticket

Ticket-prefixed format for issue tracking.

PROJ-123 Add user authentication

- Implement login endpoint
- Add session management

Formats:

  • Prefix (default): PROJ-123 subject
  • Prefix with scope: PROJ-123 (auth) subject
  • Suffix: subject (PROJ-123)

Usage: hunknote --style ticket --ticket PROJ-123

Tip: Hunknote can extract tickets from branch names automatically.


Kernel

Linux kernel commit style.

auth: Add user authentication

- Implement login endpoint

Usage: hunknote --style kernel --scope auth


Style Configuration

Configure in ~/.hunknote/config.yaml:

style:
  profile: conventional
  include_body: true
  max_bullets: 6
  wrap_width: 72

  # Blueprint options
  blueprint:
    section_titles: [Changes, Implementation, Testing]

  # Conventional options
  conventional:
    types: [feat, fix, docs, refactor, test]

  # Ticket options
  ticket:
    key_regex: "([A-Z][A-Z0-9]+-\\d+)"
    placement: prefix