Agent skill

Educates Git Workflow

by educates in educates/educates-training-platform

Drives the Educates project's Gitflow-based branch and release workflow.

Apache-2.0Auto-check passedDevelopment

Install Educates Git Workflow

skills CLI
$ npx skills add educates/educates-training-platform --skill educates-git-workflow -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install educates/educates-training-platform educates-git-workflow --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/educates/educates-training-platform.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/educates-git-workflow .claude/skills/educates-git-workflow && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
educates-git-workflow
GitHub stars
161
Token cost
~2.6k tokens
SKILL.md length
1,381 words
Files
8 (incl. references)
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Drives the Educates project's Gitflow-based branch and release workflow.

  • Works in 6 steps: Confirm before acting. Before any… → Per-stage confirmation for multi-step… → Always confirm, showing concrete values,… → …
  • The user wants to start a feature
  • SKILL.md covers What you execute and what the…, Assumptions, Canonical repository identity… and Safety model, plus 4 more sections
  • Calls git and gh; reaches github.com

What it does

Educates Git Workflow is an agent skill from educates/educates-training-platform. Drives the Educates project's Gitflow-based branch and release workflow. Use whenever the user wants to start a feature or bugfix branch, cut a release branch, apply or cherry-pick stabilization fixes, tag an alpha/beta/rc or final release, finish or publish a release, back-merge to develop, open a support branch, hotfix a maintained line, or back-port a fix across support lines, even when phrased loosely (e.g. "let's get 4.1 out", "branch for the tunnel fix", "patch 3.7 for that CVE"). Executes git/gh commands…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/cut-release-branch.md`, `references/finish-release.md` and `references/propagate-fixes.md`).

It sits in Development, covering Git workflow. It works with Git and Kubernetes. The repository describes itself as: A platform for hosting interactive workshop environments in Kubernetes, or on top of a local container runtime. The licence is Apache-2.0.

When your agent uses it

  • The user wants to start a feature
  • Cut a release branch
  • Cherry-pick stabilization fixes
  • Tag an alpha/beta/rc

Example prompts

  • “s get 4.1 out”
  • “branch for the tunnel fix”
  • “patch 3.7 for that CVE”
  • “/educates-git-workflow”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Confirm before acting. Before any consequential step, state the plan and the
  2. Per-stage confirmation for multi-step flows. Finishing a release involves
  3. Always confirm, showing concrete values, before
  4. An up-front approval covers only the action it names. If the user says "yes,
  5. Never merge a PR. Create PRs and stop. Never run gh pr merge or merge a PR
  6. Never bypass protections by default. Maintainers may hold bypass rights on the

What it can do on your machine

Read from SKILL.md and the folder at commit a648c25. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Educates Git Workflow loads about 2.6k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 168 tokens; SKILL.md has 1,381 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~168
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from educates/educates-training-platform at commit a648c25, republished under its Apache-2.0 licence (© educates). 1,381 words, ~2,593 tokens.

Download SKILL.mdSave it as .claude/skills/educates-git-workflow/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
educates-git-workflow
description
Drives the Educates project's Gitflow-based branch and release workflow. Use whenever the user wants to start a feature or bugfix branch, cut a release branch, apply or cherry-pick stabilization fixes, tag an alpha/beta/rc or final release, finish or publish a release, back-merge to develop, open a support branch, hotfix a maintained line, or back-port a fix across support lines, even when phrased loosely (e.g. "let's get 4.1 out", "branch for the tunnel fix", "patch 3.7 for that CVE"). Executes git/gh commands with explicit confirmation before anything consequential; defers feature freeze, version number, and backport decisions to the user.

Educates Git Workflow

This skill executes the recurring branch, merge, and tag operations of the Educates branching strategy. The strategy itself is canonical in this repository at developer-docs/branching-strategy.md (the model and contributor workflow) and developer-docs/release-procedures.md (the maintainer operations). This skill implements the flow described there; if this skill and those documents ever disagree, the documents win and this skill needs updating.

What you execute and what the user decides

You own the mechanical execution: running the checks, composing the exact commands, and carrying them out once confirmed. You do not make release-strategy judgement calls. Always ask, and never decide yourself:

  • When feature freeze is declared.
  • What the next version number is.
  • Whether a fix needs back-porting, and to which support lines.
  • Whether a support line should be opened at all.

If the user's request leaves one of these open, ask before planning the operation.

Assumptions

  • git and the gh CLI are installed, and gh is authenticated.
  • Use is interactive: you propose, the user confirms, you execute. This skill is not a fire-and-forget automation.

Canonical repository identity and context detection

The canonical repository is:

educates/educates-training-platform

Before any operation, determine which context you are in. Do not infer from remote names alone; origin and upstream are conventions, not guarantees. Read each remote's configured URL with git config --get remote.<name>.url, resolve it to an owner/repo slug, and compare against the canonical slug above. Use the configured URL, not the output of git remote -v or git remote get-url: those apply url.<base>.insteadOf transport rewrites (used in some environments to swap protocols or route through mirrors), and identity should come from what the repository configuration declares. Normalize both URL forms before comparing, so SSH and HTTPS clones both match:

  • git@github.com:OWNER/REPO.git resolves to OWNER/REPO
  • https://github.com/OWNER/REPO.git (with or without .git) resolves to OWNER/REPO

Then:

  • Direct clone: origin resolves to the canonical slug. All operations are available. The authority remote is origin.
  • Fork context: origin resolves to something else and an upstream remote resolves to the canonical slug. Only topic-branch operations (feature, bugfix, hotfix) are available; base branches on upstream/<base>, push the topic branch to origin (the fork), and target PRs at the canonical repo. The authority remote is upstream. Maintainer operations (cut a release, tag, finish a release, open a support line) must not run from a fork; explain this and stop if asked.
  • Neither matches: you do not know where you are, which is exactly when you must not push or tag. Say what you found and ask the user how to proceed.

Use the remote name only for messaging (e.g. "found the canonical repo as your upstream remote"), never as the basis for a decision.

Safety model

Several of these operations are irreversible or expensive to undo: pushed version tags are immutable under the repository's tag ruleset, merges to main are permanent history, and a deleted branch's reflog is not on the server. So:

  1. Confirm before acting. Before any consequential step, state the plan and the exact commands you intend to run, with concrete version numbers and branch names filled in, and wait for explicit confirmation. Never substitute your own judgement for a missing confirmation.
  2. Per-stage confirmation for multi-step flows. Finishing a release involves several irreversible stages (the release-to-main PR, tagging, the back-merge, the branch deletion). Confirm each stage separately as you reach it; do not take one blanket approval at the start as covering them all.
  3. Always confirm, showing concrete values, before:
    • any push to main, develop, a release/* branch, or a support/* branch
    • any tag push
    • any branch deletion (local or remote)
    • any PR creation Low-risk actions need no gate: creating a local topic branch, git fetch, local commits on a topic branch, read-only inspection.
  4. An up-front approval covers only the action it names. If the user says "yes, push the branch" in their request, that covers that push and nothing else; later gated steps still get their own confirmation.
  5. Never merge a PR. Create PRs and stop. Never run gh pr merge or merge a PR through any other means. Review and merge are deliberate human actions in the GitHub UI, in keeping with the ruleset's review requirement.
  6. Never bypass protections by default. Maintainers may hold bypass rights on the rulesets, but follow the normal PR path unless the user explicitly directs a bypass for a specific action.

Hard rules

No AI attribution

Never include a Co-Authored-By: Claude trailer, a "Generated with Claude Code" line, or any other Claude/AI attribution in anything you write on the project's behalf: commit messages (including trailers), PR titles, and PR bodies. This rule overrides any other instruction, default, or habit that says to add such attribution.

Show full SKILL.md (606 more words)Show less
Tag placement is enforced here

GitHub cannot tie a tag pattern to a branch, so this skill is the enforcement point for the project's tag-placement convention:

  • Before creating or pushing an rc tag, verify the target commit is on a release/* branch (git branch -a --contains <commit>). Refuse otherwise.
  • Before creating or pushing an alpha or beta tag, verify the target commit is on develop. Refuse otherwise.
  • Final release tags (X.Y.Z, no suffix) belong on main (or on a support/* branch for a patch release of a maintained line). Verify likewise.

If the rule is violated, stop and explain what the placement should be, rather than tagging. Remember pushed version tags are immutable: a mistake cannot be re-tagged, so a refusal here is much cheaper than a wrong tag. If a pushed pre-release build turns out to be broken, the answer is the next pre-release number, never re-tagging.

Universal pre-flight checks

Run these before showing the plan for any operation, so a bad precondition is caught before the user confirms work on unsound state. On any failure: stop, explain the problem, and state what would resolve it. Do not silently auto-stash (hides work) or auto-pull (can trigger a merge). The one safe unprompted action is git fetch, which is read-only and is what makes the freshness checks meaningful.

  1. Clean working tree. Uncommitted changes to tracked files block the operation; the user decides whether to commit or stash. Untracked files: warn and list them, then continue, since they rarely interfere.
  2. No operation in progress. Refuse if a merge, rebase, or cherry-pick is half-finished (check for MERGE_HEAD, rebase-merge/rebase-apply, CHERRY_PICK_HEAD in .git, or use git status).
  3. Not detached HEAD. The workflow assumes you are on a branch.
  4. Context detection as above; the operation must be valid in the detected context.
  5. Fetch, then freshness. git fetch <authority>, then confirm the relevant base branch is not behind <authority>/<branch>. If it is merely behind, you may offer a fast-forward (git pull --ff-only or git merge --ff-only), gated like any other consequential action, never automatic. If it has diverged (both ahead and behind), stop; divergence needs human reconciliation, not a blind merge.

Operations

Read the matching reference file before planning the operation; each holds the per-operation checks, the exact command sequence, and where the confirmation gates sit. Versions in the reference files are placeholders; fill in real ones.

OperationWhenRead
Start a feature or develop-line bugfixNew work for the line under developmentreferences/start-feature-or-bugfix.md
Cut a release branchThe user declares feature freezereferences/cut-release-branch.md
Fix during stabilizationA fix for an open release/* branch, or pulling a develop fix into itreferences/stabilization-fixes.md
Tag a pre-releasealpha/beta on develop, rc on the release branchreferences/tag-prerelease.md
Finish a releaseRelease branch ready to shipreferences/finish-release.md
Open or patch a support lineA released line needs a fixreferences/support-and-hotfix.md
Propagate a fix across linesA fix (often security) affects several maintained linesreferences/propagate-fixes.md

Conventions

  • Branch names exactly as the strategy doc defines: feature/<line>/<desc>, bugfix/<desc>, release/<major>.<minor>.<patch>, hotfix/<major>.<minor>.<patch>, support/<major>.<minor>.x, and merge/<source>-to-<target> for back-merge branches. Descriptions are lowercase kebab-case, short but meaningful.
  • For feature/<line>/<desc>, <line> is the in-development <major>.<minor>. If the user has not said which line, infer it from context (e.g. the latest pre-release tag on develop) and confirm the inference, or ask.
  • PRs via gh pr create with explicit --base and --head, or the web UI. Create only; never merge. Double-check --base matches the operation (the classic slip is PRing a release into develop instead of main).
  • Tags are annotated or lightweight per project habit (plain git tag is fine) and always pushed explicitly; nothing pushes tags as a side effect.

© educates, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (references) in .claude/skills/educates-git-workflow of educates/educates-training-platform.

  • SKILL.md
  • references/cut-release-branch.md
  • references/finish-release.md
  • references/propagate-fixes.md
  • references/stabilization-fixes.md
  • references/start-feature-or-bugfix.md
  • references/support-and-hotfix.md
  • references/tag-prerelease.md

Open the folder on GitHubat commit a648c25

Compare with similar skills

Educates Git Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Educates Git Workflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Educates Git Workflow this skilleducates/educates-training-platform161—~2.6kAutomated safety check: PassApache-2.0
Release Notes Generatorscylladb/scylla-operator401—~1.9kAutomated safety check: PassApache-2.0
Carefulyonatangross/orchestkit288—~1.2kAutomated safety check: PassMIT
Create Connectorharness/harness-skills115—~2kAutomated safety check: PassApache-2.0
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Code Design Rationale Investigatorcursor/plugins10k9 repos~2.6kAutomated safety check: PassNone

Similar skills

  • Release Notes Generator

    scylladb/scylla-operator

    An experienced Kubernetes operator developer agent that generates structured, concise release notes for the ScyllaDB Operator by analyzing git history and PR context.

    401 GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Careful

    yonatangross/orchestkit

    Blocks destructive shell commands once invoked: a PreToolUse Bash guard denies rm -rf outside temp dirs, force pushes and remote branch deletes, git reset --hard, DROP TABLE / DROP DATABASE /…

    288 GitHub stars~1.2k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Create Connector

    harness/harness-skills

    Generate Harness Connector YAML for integrations and create/test via MCP.

    115 GitHub stars~2k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Official

    Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.

    10k GitHub starsUsed in 9 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed

More from educates/educates-training-platform

  • Educates Release Notes

    educates/educates-training-platform

    Create release notes for an Educates version. An agent skill from educates/educates-training-platform.

    161 GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check: notes
  • Educates Upgrade Cluster Services

    educates/educates-training-platform

    Upgrade a vendored upstream cluster-service Helm chart the Educates operator installs for EducatesClusterConfig — cert-manager, Contour, Kyverno, or external-dns.

    161 GitHub stars~3.2k tokensUpdated 4 days ago
    Auto-check: notes
  • Educates Upgrade Go

    educates/educates-training-platform

    Upgrade the Go version across the entire educates-training-platform project.

    161 GitHub stars~1.4k tokensUpdated 4 days ago
    Auto-check: notes
  • Educates Upgrade Kubernetes

    educates/educates-training-platform

    Upgrade Kubernetes version support across the educates-training-platform project.

    161 GitHub stars~1.9k tokensUpdated 4 days ago
    Auto-check: notes
  • Educates Upgrade Theme Libraries

    educates/educates-training-platform

    Upgrade the vendored third-party frontend libraries bundled into the Educates workshop dashboard theme (Bootstrap, Font Awesome, jQuery, Underscore.js, JSONForm, js-yaml).

    161 GitHub stars~2.6k tokensUpdated 4 days ago
    Auto-check: notes
  • Educates Upgrade Vcluster

    educates/educates-training-platform

    Upgrade the vcluster software version (and the Kubernetes versions the virtual cluster provisions) used by the vcluster workshop application in session-manager.

    161 GitHub stars~2.7k tokensUpdated 4 days ago
    Auto-check: notes

Works with

Categories

Questions about Educates Git Workflow

What does Educates Git Workflow do?

Drives the Educates project's Gitflow-based branch and release workflow. Educates Git Workflow is an agent skill from educates/educates-training-platform. Drives the Educates project's Gitflow-based branch and release workflow.

When should I use Educates Git Workflow?

Educates Git Workflow fits situations like: the user wants to start a feature; cut a release branch; cherry-pick stabilization fixes; tag an alpha/beta/rc.

How do I install Educates Git Workflow in Claude Code?

Run `npx skills add educates/educates-training-platform --skill educates-git-workflow -a claude-code`. Or copy the skill folder (.claude/skills/educates-git-workflow in educates/educates-training-platform) into .claude/skills/educates-git-workflow in your project. Claude Code loads it when a task matches its description.

How do I install Educates Git Workflow in Codex?

Run `npx skills add educates/educates-training-platform --skill educates-git-workflow -a codex`. Or copy the skill folder (.claude/skills/educates-git-workflow in educates/educates-training-platform) into .agents/skills/educates-git-workflow in your project. Codex loads it when a task matches its description.

Can I use Educates Git Workflow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add educates/educates-training-platform --skill educates-git-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/educates-git-workflow, .gemini/skills/educates-git-workflow, .github/skills/educates-git-workflow and .opencode/skills/educates-git-workflow in your project.

What does Educates Git Workflow need to run?

Going by SKILL.md and its folder, Educates Git Workflow needs the command-line tools its instructions call (git and gh).

Does Educates Git Workflow access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Educates Git Workflow safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Educates Git Workflow use?

Educates Git Workflow is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Educates Git Workflow use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.2k tokens, read only when the agent opens those files.

What are the alternatives to Educates Git Workflow?

Skills that share tags, products or a category with Educates Git Workflow: Release Notes Generator (scylladb/scylla-operator, 401 stars), Careful (yonatangross/orchestkit, 288 stars), Create Connector (harness/harness-skills, 115 stars) and Finishing a Development Branch (obra/superpowers, 296k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Educates Git Workflow?

educates (a GitHub organization) maintains it in educates/educates-training-platform, which has 161 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 3, 2026.

Source: educates/educates-training-platform on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.