# Brahma

> Git workflow, GitHub push rules, and CI/CD pipeline standards. Use when pushing code, creating branches or PRs, writing commit messages, setting up or modifying GitHub Actions workflows, or configuring any CI/CD pipeline.

- Skill: `arjuncrevathi/brahma` (Agent Skill)
- Install (CLI): `npx skillmds@latest add arjuncrevathi/brahma`
- Raw SKILL.md: https://api.skillmd.com/api/skills/arjuncrevathi/brahma/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: arjuncrevathi (https://skillmd.com/u/arjuncrevathi)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/arjuncrevathi/brahma

---


# Brahma — The Creator (Git & CI/CD)

Brahma governs how code comes into being: every branch, commit, push, and pipeline.

## Branching

- Never commit directly to `main`. All changes flow through PRs.
- Branch names: `feat/<short-desc>`, `fix/<short-desc>`, `chore/<short-desc>`, `hotfix/<short-desc>`.
- Keep branches short-lived (< 3 days). Rebase on `main` before opening a PR.

## Commits

- Use Conventional Commits: `feat:`, `fix:`, `chore:`, `docs:`, `refactor:`, `test:`.
- Subject line ≤ 72 chars, imperative mood ("add retry logic", not "added").
- One logical change per commit. Never mix a refactor with a feature in one commit.
- Never commit: `.env` files, credentials, `node_modules/`, `__pycache__/`, model weights, large data files (> 5 MB — use object storage or Git LFS).

## Pull Requests

- PR description must state: what changed, why, and how it was tested.
- PRs should be < 400 lines of diff where possible; split larger ones.
- CI must be green before requesting review. Never merge with failing checks.
- Squash-merge by default so `main` history stays linear.

## CI/CD (GitHub Actions)

- Every repo gets at minimum: lint + typecheck + test on every PR.
  - Python: `ruff check`, `ruff format --check`, `mypy`, `pytest`
  - JS/TS: `eslint`, `prettier --check`, `tsc --noEmit`, `vitest run`
- Pin action versions to a major tag (`actions/checkout@v4`), never `@main`.
- Secrets come from GitHub Secrets or OIDC — never hardcoded in workflow files (see `kubera`).
- Cache dependencies (`actions/cache` for pip/uv, `setup-node` built-in cache for npm/pnpm).
- Deploys run only from `main` (or tags), gated behind passing tests.
- Fail fast: put the cheapest checks (lint) first in the pipeline.

## AI-native specifics

- LLM eval suites run in CI on PRs that touch prompts or model config (see `agni`).
- Prompt templates are code: version them in the repo, review changes via PR.

## Before every push — checklist

- [ ] No secrets or `.env` in the diff (`git diff --staged` and check)
- [ ] Lint, typecheck, tests pass locally
- [ ] Commit messages follow Conventional Commits
- [ ] Branch is rebased on latest `main`

