commit

A workflow for committing changes in Git repositories that may contain submodules, which are repositories nested inside another repository. It supports committing all repositories, only the main repository, or one selected submodule.

In plain words
What is it for?
Use it to commit a project and its submodules, create detailed structured commit messages, and handle push conflicts.
Why use it?
It avoids incomplete commits and vague messages by requiring each changed repository to be analyzed and described consistently. It also defines how to reconcile rejected pushes.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/markmhendrickson/neotoma/commit
Any agent
npx skills add markmhendrickson/neotoma --skill commit
Clone the repo
git clone --depth 1 https://github.com/markmhendrickson/neotoma

Made for: Claude Code, Codex.

Per session 3 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 7,896 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00003 $0.07896
Opus 5 $0.00002 $0.03948
Sonnet 5 $0.00001 $0.01579
Haiku 4.5 $0.00000 $0.00790

Measured yesterday against content hash 7bc30e5a240d, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

commit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

Copies of this mod

2 near-identical copies found in the catalogue:

  • commit — 100% identical, 15 lines differ
  • commit — 91% identical, 289 lines differ
.claude/skills/commit/SKILL.md · 790 lines

How it starts

The opening of the file, as written. The whole thing — 790 lines — stays where its author put it; the contents beside it link to each section on GitHub.


name: commit description: Commit submodules and/or main repo with structured messages; supports /commit repo, /commit . triggers:

  • commit
  • commit repo
  • commit foundation
  • submodule commit
  • /commit

commit

CRITICAL REQUIREMENT: All submodule commits MUST use the same comprehensive change analysis and detailed commit message format as the main repository. Generic commit messages like "Update submodule changes" are FORBIDDEN. Each submodule commit must analyze changes, categorize by type/area, and generate structured commit messages with detailed sections.

PARAMETER MODES:

  1. No parameter (default): Commit ALL submodules first, then the main repository
  2. "repo" parameter (e.g., /commit repo): Commit ONLY the main repository, skip all submodules
  3. Submodule name parameter (e.g., /commit foundation): Commit ONLY that specific submodule, skip main repository

PUSH RECONCILIATION: Whenever a push is rejected because the remote has commits you do not have, always: (1) pull to reconcile: git pull --rebase origin <branch> or git pull origin <branch> --no-rebase --no-edit, (2) resolve any merge/rebase conflicts, (3) push again: git push origin HEAD. Do not report push failure without attempting reconciliation.


Parameter Detection and Routing

STEP 1: Detect parameter and route to appropriate workflow:

# Check if parameter provided
if [ -n "$1" ]; then
  PARAM="$1"

  # Case 1: "repo" parameter - commit main repository only
  if [ "$PARAM" = "repo" ]; then
    echo "📦 REPO-ONLY MODE: Committing main repository only (skipping submodules)"
    # Proceed to main repository commit workflow (skip to line after submodule processing)

  # Case 2: Submodule name parameter - commit that submodule only
  else
    echo "📦 SUBMODULE MODE: Checking for submodule '$PARAM'"
    # Verify submodule exists
    if ! git submodule status "$PARAM" >/dev/null 2>&1; then
      echo "❌ Submodule not found: $PARAM"
      exit 1
    fi
    # Proceed to single submodule commit workflow (see "Single Submodule Commit" section)
  fi
else
  # Case 3: No parameter - commit all submodules then main repository
  echo "📦 ALL MODE: Committing all submodules and main repository"
  # Proceed to all submodules commit workflow (see "All Submodules Commit" section)
fi

Read the full file on GitHub · 790 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 790 lines · 3 tokens per session scan A 7bc30e5a240d

Subscribe to this mod's changes

commit is a skill published in the GitHub repository markmhendrickson/neotoma (29 stars, last pushed 4d ago), licensed MIT. It adds 3 tokens to every session and 7,896 once invoked, about $0.0000 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.