commit

A change-commit workflow that checks the current project state, reviews the diff, optionally updates planning documents, and prepares a Conventional Commits message. Conventional Commits are a standard format for describing code changes.

In plain words
What is it for?
Use it to prepare a commit, check declared specification changes against the diff, backfill documentation drift when allowed, and request confirmation before committing.
Why use it?
It helps ensure the recorded commit matches the actual changes and project rules before anything is staged or committed.

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/howar31/magi-workflow/commit
Any agent
npx skills add howar31/magi-workflow --skill commit
Clone the repo
git clone --depth 1 https://github.com/howar31/magi-workflow

Made for: Claude Code, Codex.

Per session 116 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,521 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.00116 $0.04521
Opus 5 $0.00058 $0.02261
Sonnet 5 $0.00023 $0.00904
Haiku 4.5 $0.00012 $0.00452

Measured yesterday against content hash b042f3c16863, 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.

skills/commit/SKILL.md · 436 lines

How it starts

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

/magi:commit — sprint-aware commit (dual-mode)

You are the coordinator. Stage the change set, optionally backfill drift into PLAN/SPEC, optionally sync root docs, generate a Conventional Commits message, then ask the user to confirm. Never commit without explicit confirmation.

0. Preflight

PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-}"
[[ -z "$PLUGIN_ROOT" ]] && PLUGIN_ROOT="$(cd "$(dirname "$BASH_SOURCE[0]")/../.." 2>/dev/null && pwd)"
USER_CONFIG="$HOME/.config/magi-workflow/config.json"

If config missing → tell user to run /magi:setup.

Confirm we are inside a git repo:

git rev-parse --git-dir >/dev/null 2>&1 || { echo "not a git repo"; exit 1; }

0.5. State preflight (auto-refuse if not allowed)

STATE_JSON=$(bash "$PLUGIN_ROOT/scripts/shared/detect-state.sh")
blocked=$(jq -r '.disallowed_skills["commit"] // empty' <<<"$STATE_JSON")
if [[ -n "$blocked" ]]; then
  reason=$(jq -r '.disallowed_skills["commit"].reason' <<<"$STATE_JSON")
  suggest=$(jq -r '.disallowed_skills["commit"].suggest' <<<"$STATE_JSON")
  echo "Cannot run /magi:commit: $reason"
  echo "Suggested: $suggest"
  exit 1
fi

After preflight passes, surface the stale_drift warning if present — warn the user that the DRIFT.md is older than current code changes; recommend re-running /magi:review-code first or pass --skip-review to proceed anyway.

--force skips preflight (advanced/recovery only).

1. Mode selection (preflight)

Decide between Sprint mode and Standalone mode by inspecting:

# Find the most recent sprint folder
sprint_dir=$(ls -d magi/[0-9]*-*/ 2>/dev/null | sort -r | head -1)
[[ -n "$sprint_dir" ]] && sprint_dir="${sprint_dir%/}"

# Capture changed files
changed_files=$(git diff --name-only HEAD; git diff --staged --name-only)

Apply rules:

Condition Mode
--mode sprint flag force Sprint mode
--mode standalone flag force Standalone mode
--sprint <num>-<slug> flag force Sprint mode against that sprint
sprint folder exists + <sprint_dir>/DRIFT.md exists Sprint mode
sprint folder exists but no DRIFT.md warn the user: "DRIFT.md not found in <sprint_dir>/ — recommend /magi:review-code first. Add --skip-review to bypass."; abort unless --skip-review provided
no sprint folder anywhere Standalone mode
sprint folder exists but changed_files are all outside it (e.g., .github/workflows/* or root files only) ask user: "Sprint <sprint_dir> exists but your changes don't touch it. Use Sprint mode anyway, or Standalone?"

Read the full file on GitHub · 436 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 · 436 lines · 116 tokens per session scan A b042f3c16863

Subscribe to this mod's changes

commit is a skill published in the GitHub repository howar31/magi-workflow (2 stars, last pushed 2d ago), licensed MIT. It adds 116 tokens to every session and 4,521 once invoked, about $0.0006 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-31.

Related

Other skills, from other repositories

triage

Apply a formal state machine to issues — assign category (bug/enhancement/question/spike) and state (needs-triage → needs-info → ready-for-agent → ready-for-human → wontfix). Issues marked ready-for-agent become inputs to supergraph:plan. Use when processing a backlog, reviewing new issues, or preparing work for…

datit309/supergraph · 73 tokens

user-story-generator

Transforms requirements into user stories with Given/When/Then acceptance criteria ready for sprint planning and Jira. Use when user needs to write user stories, create Jira tickets, define acceptance criteria, or says "user stories", "acceptance criteria", "sprint backlog", "Jira tickets", "as a user I want"…

lenar-amirov/product-pipeline-public · 76 tokens

rook-triage

Use when triaging rook (github.com/rook/) issues or PRs — grooming or clearing the backlog, labeling or categorizing issues, finding duplicate issues, cross-linking an issue to a PR (or a PR to the issue it fixes), checking what info a bug report is missing, deciding who should review a PR or requesting reviewers, or…

jhoblitt/rook-claude · 118 tokens

plan-orchestrator

This skill should be used when the user asks to "generate an ORCHESTRATE file", "turn a spec into a plan", "scaffold a feature breakdown", "scaffold a sprint backlog", "plan a sprint" (when a committed backlog/artifact is wanted, not just strategy advice), "generate roadmap artifacts", "create an implementation plan…

Data-Wise/craft · 138 tokens

jira

Work with Jira over its REST API (no MCP) — read/search (JQL), look up tickets, my board/sprint, create/comment/@mention/transition/link/worklog, MR investigation, clone the ticket's repo. Use for any read/search/create/update/transition on Jira issues, or references to a remembered board, project, epic, or person.

Alexander-Tyagunov/magician · 75 tokens

add-phase

เพิ่ม development phase ใหม่เข้าโปรเจค พร้อมสร้าง phase plan, backlog file และ archive section ใช้ skill นี้เมื่อต้องการแบ่งโปรเจคเป็นช่วงๆ เช่น "เพิ่ม phase ใหม่", "เริ่ม phase ถัดไป".

natthasath/natthasath-marketplace · 51 tokens