agentsclimarketplace

Gca

Skill yokeloop/yoke/skills/gca

Git staging and commit with smart file grouping. Activated when the user writes "commit", "gca", "make a commit", "commit changes".From its SKILL.md

Install
npx -y skills add yokeloop/yoke --skill gca

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • skips confirmationTells the agent to proceed without asking first, 5 times: "Standalone mode runs autonomously — no confirmation prompts" and 4 more.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 3 commands, including `git branch --show-current; echo "==="; git status --porcelain; echo "==="; git diff HEAD --stat` and 2 more.

SKILL.md

5.7 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

Git Commit with smart grouping

Commit orchestrator: determines context, classifies files, groups them into atomic commits, writes messages. Standalone mode runs autonomously — no confirmation prompts.


Step 1 — Context

One call:

git branch --show-current; echo "==="; git status --porcelain; echo "==="; git diff HEAD --stat

git status --porcelain already lists untracked files (??). No changes — tell the user and stop.


Step 2 — Mode

  • yoke-flow$ARGUMENTS is a path under .yoke/ai/ (or a slug), or recent artifacts exist in .yoke/ai/*/. SLUG = path or directory name.
  • standalone — otherwise. SLUG = current branch without prefix (feature/, fix/, hotfix/, bugfix/, release/). On main/master/develop — no slug.

Step 3 — Ticket ID (no questions)

Cascade, first match wins. If none matches — commit without a ticket; never ask.

  1. $ARGUMENTS86/#86#86; R2-50R2-50; issue URL → #86; YouTrack /issue/PROJ-123PROJ-123.
  2. slug (yoke-flow) — leading \d+#NN; leading R\d+-\d+ → as-is.
  3. branch (standalone) — ^(\d+)- or \/(\d+)-#NN; (R\d+-\d+) → as-is; ([A-Z]+-\d+) → as-is.

Edge cases (anti-patterns, URL forms): reference/commit-convention.md.


Step 4 — Staging

yoke-flow

Stage only the artifact of the just-completed stage under .yoke/ai/<SLUG>/, matched by filename suffix. Leave non-artifact changes (code, configs) uncommitted — they are out of scope here. If no matching artifact changed, say so and stop.

StageArtifact suffixMessage
/do*-plan.md#86 docs(86-black-jack-page): add implementation plan
/do*-report.md#86 docs(86-black-jack-page): add execution report
/review*-review.md#86 docs(86-black-jack-page): add review report

standalone (autonomous)

gca commits the entire working tree — every modified and untracked entry from git status --porcelain, no matter who produced the change (this session, another session, or the user editing by hand). Git tracks working-tree state, not per-session authorship; never exclude a file because "it wasn't my edit" or "I don't know the context." Filtering by provenance forces the user to re-run gca.

Classify each file by path, then group into atomic commits — no confirmation:

GroupPath patternType
featuresrc/, app/, lib/, pages/, components/feat/fix/refactor
test*.test.*, *.spec.*, __tests__/, *.cy.*test
docs*.md, docs/, README, CHANGELOGdocs
styleformatter-only output, no logic changestyle
chorepackage.json, *.config.*, .eslintrc, CIchore
yoke-artifacts.yoke/ai/**docs

Precedence when a file matches several rows: yoke-artifacts > test > style > chore > docs > feature. perf and style are content-judgement types, not path-derivable — apply them only when the diff clearly warrants it.

Grouping: feature + test of one feature → one commit; chore, style, yoke-artifacts → separate. Order: chore → feature → style → docs → yoke-artifacts. Full algorithm: reference/staging-strategy.md.

Exclusions are narrow and apply only to untracked (??) files: a new .env/.env.*, a raw key or credential file (*.pem, *.key, *.p12, id_rsa, files plainly named as credentials), or a binary over 1MB. Tracked files are always committed — git-crypt-managed files included, since the clean filter encrypts them on commit. Don't ask; commit everything else and list any excluded file in the final report.


Step 5 — Messages

Format TICKET type(SLUG): description — NO colon after the ticket; omit the ticket or slug when absent. English, imperative mood, one sentence: what, not how. Types: feat, fix, refactor, docs, test, chore, style, perf.


Step 6 — Commit

For each planned commit, in one turn:

  1. git add <files by name> — never git add -A or git add .
  2. git commit -m "<message>" — no trailers, no Co-Authored-By
  3. Report: hash, message, files. Note any excluded files.

Rules

  • Commit-message language defaults to English per ${CLAUDE_PLUGIN_ROOT}/skills/gca/reference/commit-convention.md ("Git initiative and defaults"); a commit language override may come from the project's .yoke/flow.md (Conventions section).
  • One commit — one logical change.
  • Ticket first when present; never a colon after it.
  • Stage files by name.
  • Standalone commits the whole working tree; never skip a file because another session or the user changed it.
  • Exclude only untracked secrets, credentials, and >1MB binaries; always commit tracked files, git-crypt included.
  • Avoid wip, temp, misc.
  • No Co-Authored-By, Signed-off-by, or trailer lines.
  • Standalone commits run without confirmation.

Reference

  • reference/commit-convention.md — format edge cases, ticket forms, type table, yoke-artifact messages.
  • reference/staging-strategy.md — full classification and grouping algorithm, order, safeguards (standalone).

What ships with it: 3 files

15.8 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.