ワンクリックで
git
mokata · Git workflow & versioning — atomic commits + change-sizing riding the WriteGate, not habits.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
mokata · Git workflow & versioning — atomic commits + change-sizing riding the WriteGate, not habits.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | git |
| description | mokata · Git workflow & versioning — atomic commits + change-sizing riding the WriteGate, not habits. |
| when_to_use | Engage when an approach touches the git workflow, a branching or merge strategy, commit structure, versioning or release tagging, or a `.gitignore`/`.gitattributes` policy, when the spec's `domains` constraint names `git`, or when a change is about HOW work lands (how commits are shaped, sized, or branched) rather than what the code does. Do NOT engage for ordinary in-file code changes with no versioning or landing-strategy decision, or for a CI pipeline change which is the ci-cd domain. |
mokata Agent Skill. This is mokata's
gitdomain knowledge, attached to the pipeline so Claude engages it automatically when work touches how a change LANDS — the commit, the branch, the tag. It is NOT a parallel advisory: it enriches ship (landing), and every git action that persists a durable record rides the existing WriteGate (secret-scan → human approval → audit) — it adds no new gate. mokata's non-negotiables still hold — durable writes are human-gated, and the commit history is treated as the audit trail it is.
⛭ mokata git active — gate: every durable write is secret-scanned, human-approved, and audited
Version control is mokata's audit trail, not a save button. A commit is the atomic unit of change history — the thing you revert, bisect, cherry-pick, and read a year later to learn why. How work lands (one coherent commit vs. a grab-bag, a short-lived branch vs. a long divergence, an honest message vs. "wip") decides whether that history stays legible and whether a bad change can be undone cleanly. This skill encodes the landing discipline as named principles and rides the WriteGate that already governs mokata's durable writes: a git action that records something durable is secret-scanned, human-approved, and audited.
A commit should be one logically self-contained change — it does exactly one thing, it builds and
passes tests on its own, and it can be reverted without dragging unrelated work with it. Pro Git's
commit guidelines state this directly: try to make each commit a logically separate changeset, keep
it digestible, and don't mix unrelated changes into the same commit
(https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project). The payoff is mechanical:
git revert undoes exactly one concern, git bisect lands on a commit small enough to understand,
and a reviewer reads one intent at a time. A commit that mixes a bug fix, a rename, and a feature is
un-revertable and un-reviewable — split it.
The message is the durable explanation the diff cannot give. Pro Git recommends a short imperative
summary line (~50 chars), a blank line, then a body explaining the motivation and contrasting
with prior behaviour — the why, because the what is already in the diff
(https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project). A message that records the
reason turns the history into memory a future reader (or a bisect) can actually use; "wip" or "fix"
throws that away. For machine-readable intent, the Conventional Commits convention adds a structured
type(scope): summary prefix (https://www.conventionalcommits.org/) — useful where release tooling
derives changelogs/versions from it, but the exact tooling behaviour is UNVERIFIED here; confirm
against the setup in use.
Prefer a single shared mainline (trunk) that everyone integrates into continuously, with short-lived branches merged back in days, not weeks — the opposite of long-running feature branches that diverge until the merge is a project of its own. Trunk-based development names this as its core practice (https://trunkbaseddevelopment.com/): small, frequent merges to trunk keep integration cheap and the mainline releasable, which is exactly what the CI/CD domain's "keep the build green" depends on. The specific branching variants (release branches, scaled TBD) are described at the cited source; treat any specific team-size guidance as UNVERIFIED until confirmed there.
Prefer the smallest change that lands the intent. A small, single-concern change is easier to review correctly, safer to revert, and less likely to hide a defect than a large one — this pairs with mokata's change-sizing advisory (SK.S3): the blast-radius of the change informs how it should be split. This is guidance, not a hard gate this release — mokata surfaces an oversized/multi-concern change and advises splitting it, but does not block on size. Use the blast-radius already computed at brainstorm/develop to decide the split, and record the reasoning rather than landing a sprawling commit on a hunch.
A release tag pins a human version to an exact commit, so "v1.4.2" resolves to a revision you can check out, diff, and roll back to. Semantic Versioning encodes what a version number promises — MAJOR for a breaking change, MINOR for a compatible addition, PATCH for a fix (https://semver.org/) — so the tag communicates the compatibility contract, not just an increment. Tag from a clean, tested mainline revision (this composes with the CI/CD domain's reproducible release build), never from an ad-hoc local state.
.gitignore/.gitattributes, release tagging), the domain classifier puts
git in the spec's domains, so the landing strategy is a first-class, human-approved constraint.context entry through the human gate and written
to the audit ledger, so it is walkable later (P7). Record it with mokata's domain-decision path —
never as loose prose.This skill rides write-gate — a BACKED mokata gate: every durable write is secret-scanned, human-approved, and audited. A git action that persists a durable record (a recorded decision, and — where mokata drives it — a commit that would carry a secret) goes through it; approval cannot override a secret block. This skill adds no new gate: it attaches the landing discipline to the WriteGate that already governs mokata's durable writes. Change-sizing stays advisory this release (mokata advises a split, it does not block on size), and any change to an approved spec's landing scope routes through the deviation gate.
Decide from the repository state and the primary sources, not from assumption. Before asserting a commit is atomic, a branch is short-lived, a tag maps to the right revision, or a message explains the why, VERIFY it against the actual repo (read the diff, the log, the tags) and the cited source. Prefer the primary source (Pro Git, trunk-based development, Semantic Versioning) over memory or a blog, and CITE the URL. Flag anything you could not verify as UNVERIFIED rather than stating it as fact.
| Excuse | Reality |
|---|---|
| "I'll bundle the fix, the rename, and the feature into one commit — it's faster." | A mixed commit is un-revertable and un-reviewable; make each commit one logically self-contained change (Pro Git). |
"wip is fine, I'll write the real message later." | The message is the durable why the diff can't give; an honest summary + motivation is what a future reader and bisect rely on. |
| "I'll keep this feature branch going for a few weeks." | Long-lived branches diverge until the merge is its own project; integrate to trunk with short-lived branches (trunk-based development). |
| "The change is big but it's all one feature — land it whole." | Prefer the smallest change that lands the intent; use the blast-radius to split it (change-sizing advisory) — a big commit hides defects. |
| "I'll tag the release from my local working state." | A tag must map a version to a clean, tested revision; tag from mainline, not ad-hoc local state, or the version means nothing. |
Evidence, not "seems right" — check every box or say which is unmet and why:
references/git-workflow.md — atomic commits, commit-message discipline, trunk-based development, change-sizing, and SemVer tagging in full, each with its primary-source URLCAN
context entry to memory + the ledger (human-gated)MUST NOT
DEPENDS ON
git domain (classified at brainstorm; amend-in if reached late) (advisory)Grounding:
(gate: …)boundaries are enforced by that gate in code;(advisory)ones are protocol discipline this skill follows, not a hard block.
mokata · Socratic pre-spec exploration — explore approaches WITH the user, one question at a time, and HARD-GATE the spec behind explicit approval. Runs standalone or as the front of mokata's pipeline.
mokata · Author a new mokata skill test-first (RED-GREEN-for-docs); the write is human-gated.
mokata · Implement the minimum to turn a failing test green.
mokata · Turn the problem into testable acceptance criteria; map each to a test.
mokata · API & interface design — contract-first, blast-radius on every change.
mokata · Browser testing (DevTools) — live runtime captured via the existing MCP surface, fed to the test gate.