Receber por email
← Voltar para o catálogo

ci-commit

Create git commits autonomously for CI/automation (no user interaction). Non-interactive variant of /commit for use in CI pipelines, automated workflows, and background tasks. Never prompts the user.

18estrelas
Atualizado há 3 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add coalesce-labs/catalyst

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/ci-commit/svg)](https://www.skillteca.com.br/skills/ci-commit)

Skills relacionadas

Ver todas de Pesquisa e Web →

Alerta por categoria

Receba novas skills de Pesquisa e Web toda segunda

1 email curto, só com as skills novas de Pesquisa e Web. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

CI Commit

Create git commits autonomously without user interaction. Designed for CI pipelines, automated workflows, and non-interactive contexts.

Key Differences from /commit

  • No user confirmation — commits immediately
  • No interactive prompts — fully autonomous
  • Conventional commit format — maintained for consistency
  • Safety checks — never commits sensitive files or thoughts/

Session Tracking

SESSION_SCRIPT="${CLAUDE_PLUGIN_ROOT}/scripts/catalyst-session.sh"
if [[ -x "$SESSION_SCRIPT" ]]; then
  CATALYST_SESSION_ID=$("$SESSION_SCRIPT" start --skill "ci-commit" \
    --ticket "${TICKET_ID:-}" \
    --workflow "${CATALYST_SESSION_ID:-}")
  export CATALYST_SESSION_ID
fi

Process

1. Analyze Changes

# Check for changes
git status --porcelain
git diff --cached --name-only
git diff --name-only

If no changes exist, end the session and exit silently:

if [[ -n "${CATALYST_SESSION_ID:-}" && -x "$SESSION_SCRIPT" ]]; then
  "$SESSION_SCRIPT" end "$CATALYST_SESSION_ID" --status done
fi
No changes to commit.

2. Safety Filters

NEVER commit these files:

  • thoughts/ directory (persistent context, managed separately)
  • .env, .env.* files (secrets)
  • .secret, .key, *.pem files
  • .claude/ configuration files
  • Files matching patterns in .gitignore

NEVER commit dummy or test artifacts:

  • Files named test_*, dummy_*, temp_* in non-test directories
  • Empty placeholder files

3. Auto-detect Commit Components

Type detection:

  • Only *.md files in docs/ → docs
  • Only test files → test
  • Only package.json, *.lock → build
  • Only .github/workflows/ → ci
  • Bug fix context → fix
  • Otherwise → feat or chore based on context

Scope detection:

  • Parse changed file paths to determine scope
  • Use directory-based scoping (e.g., agents, commands, scripts)
  • Cross-cutting changes → empty scope

Ticket extraction:

  • Extract from branch name: {PREFIX}-{NUMBER}
  • Add as Refs: TICKET-123 in footer

4. Generate and Execute Commit

# Stage only safe files
git add [specific files, never -A or .]

# Create commit with conventional format
git commit -m "$(cat <<'EOF'
<type>(<scope>): <summary>

<body explaining what changed and why>

Refs: TICKET-123
EOF
)"

5. Report Result

git log --oneline -n 1
git show --stat HEAD

6. End Session

if [[ -n "${CATALYST_SESSION_ID:-}" && -x "$SESSION_SCRIPT" ]]; then
  "$SESSION_SCRIPT" end "$CATALYST_SESSION_ID" --status done
fi

Important

  • NEVER add co-author information or Claude attribution
  • NEVER commit thoughts/ directory
  • NEVER use git add -A or git add .
  • NEVER prompt the user — this is fully autonomous
  • Keep commits atomic and focused
  • Use conventional commit format for changelog generation
Compartilhar X LinkedIn