Skip to main content

ACCID Git

🟢 Stable

ACCID Git (Atomic Conventional Consistent Immutable Durable) is a comprehensive Git workflow standard that elevates developer experience through structured commit practices, rich contextual information, and AI-powered automation.

What is ACCID Git?

ACCID Git combines the best practices of Conventional Commits and Atomic Commits into a unified workflow that makes your Git history more valuable, searchable, and maintainable.

Core Principles

Principle Description Benefit
Atomic Each commit represents a single logical change Clean git bisect, easy reverts, clear history
Conventional Follows structured format with standard types Automated changelogs, semantic versioning
Consistent Uniform format across all commits Predictable structure, easier parsing
Immutable Commits describe completed work Stable history, reliable archaeology
Durable Rich context (URIs, issue IDs, tags) Long-term maintainability, better debugging

Key Features

1. Structured Commit Messages

ACCID uses a powerful commit message format that captures not just what changed, but where and why:

#123 [auth::services] feat: implement OAuth 2.0 login

- [auth::services::AuthService] add OAuth provider integration
- [auth::controllers] add /oauth/callback endpoint
- [auth::models::User] add oauth_provider field

Implements standard OAuth 2.0 authorization code flow with PKCE.

2. Resource URIs

Instead of vague file paths, ACCID uses logical resource identifiers that pinpoint exactly what changed in your codebase:

  • [auth::services::AuthService] - Clear module path
  • [apps::gate::middleware] - Monorepo support
  • [libs::pixel::components] - Library changes

3. AI-Powered Automation

Nanx can automatically generate ACCID-compliant commit messages by analyzing your code changes using AI:

# Stage your changes
nanx r a .

# Generate ACCID commit message
nanx r cgm

# AI analyzes diff and creates proper commit message

4. Issue Tracking Integration

Link commits directly to issues for complete traceability:

#JIRA-123 [api] fix: resolve rate limit edge case
#456 [auth] feat: add multi-factor authentication

Why ACCID Git?

For Developers

  • Less cognitive load - AI generates messages, you just review
  • Better context - URIs make it clear what changed
  • Easier debugging - Rich commit history helps track down issues
  • Cleaner rebases - Atomic commits make rebasing painless

For Teams

  • Consistent style - Everyone follows the same format
  • Better code review - Clear commit messages aid reviews
  • Automated workflows - Enable changelog generation, release notes
  • Knowledge preservation - Context survives long after code is written

For Projects

  • Professional history - Commit log is documentation
  • Easier onboarding - New contributors understand changes
  • Better analytics - Track what changes, where, and when
  • Compliance ready - Full traceability for audits

ACCID Git Workflow

Basic Daily Workflow

# 1. Make changes to your code
# ... edit files ...

# 2. Check what changed
nanx r st

# 3. Stage changes
nanx r a .

# 4. Generate ACCID commit
nanx r cgm

# 5. Review generated message and commit
# 6. Push to remote
nanx r pu

With Context Hints

# Provide context to AI for better messages
nanx r cgm "fixing race condition in session cleanup"

# AI uses your hint to generate detailed ACCID message

Quick One-Liner

# Stage, commit with AI, and push in one command
nanx r acgmp

# With context
nanx r acgmp "implement dark mode toggle"

Comparison with Other Standards

Feature Conventional Commits ACCID Git
Structure type(scope): message type: message with URIs
Scope granularity Module name Full resource URI path
Body format Free-form text Structured bullets with URIs
Issue linking In footer In header (#id)
Monorepo support Good Excellent (app:: prefix)
AI generation Limited Native support
Context preservation Good Excellent (URIs + tags)

Getting Started

  1. Configure AI provider
    nanx config edit
    # Add your provider:
    providers:
      - type: anthropic
        api_key: sk-ant-...
        models:
          - claude-3-5-sonnet-20241022
  2. Enable ACCID format
    # .repo.yml
    commit:
      template: accid
      generate_message:
        enabled: true
        format: accid
  3. Start committing
    nanx r acgm "your first ACCID commit"

Learn More