agentleFS
Microsoft AzureKnown publisherAzure/agent-app-mcp/.github/skills/release/SKILL.md

release

Skill22 starsChanged 10 days agoMITView on GitHub

Prepare, version, validate, tag, document, or publish a GPT-RAG MCP release. Use for release preparation, SemVer decisions, release branches, version bumps, changelog updates, release notes, Git tags, GitHub releases, packages, container images, or deployments.

  • Commits and pushes

197 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use create-agent-adapter, changelog-style and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • MicrosoftSkill

    create-agent-adapter

    Technical guide for creating a new Paperclip agent adapter. Use when building a new adapter package, adding support for a new AI coding tool (e.g. a new CLI agent, API-based agent, or custom process), or when modifying the adapter system. Covers the required interfaces, module structure, registration points, and conventions derived from the existing claude-local and codex-local adapters.

    Also in 5 projects that use this

  • GrinvSkill

    changelog-style

    Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR or cutting a release, to write/fix the [Unreleased] section's entries — moving [Unreleased] under a new dated version heading is a separate, automated step (see the release skill / scripts/sync-version.ts), not this skill's job.

    Also in 4 projects that use this

  • GrinvSkill

    docs-consistency-check

    Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/*.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.

    Also in 4 projects that use this

  • rivet-devSkill

    launch-graphics

    Generate agentOS marketing/launch graphics (launch & social heroes, code-snippet cards) from the committed generators in docs-internal/graphics. Use when asked to make, update, or render an agentOS launch image, social image, "agentOS Apps" graphic, or technical code-snippet image.

    Also in 3 projects that use this

  • slopusSkill

    metrics-graphana

    Query and manage Grafana dashboards and Prometheus metrics for Happy infrastructure. Covers grafanactl CLI usage, direct Prometheus queries through Grafana proxy, and dashboard-as-code workflows. Use when user asks about metrics, dashboards, monitoring, Grafana, Prometheus, or wants to add/modify panels.

    Also in 3 projects that use this

  • rivet-devSkill

    publish-registry

    Publish @agentos-software/* registry packages from AgentOS. Use whenever the user asks to publish or release registry software/agent packages.

    Also in 3 projects that use this

  • +3 more from Grinv
  • +1 more from rivet-dev

The file

Show its rules and text

We split this skill into the rules it gives an agent

33 rules. 0 are common, 26 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 186 edited versions we read keep these.

  • 26

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this workflow for every release.

    line 8
  2. Distinctive:

    Never create, move, delete, or push a release tag.

    line 12
  3. Distinctive:

    Treat approval to prepare a release, open or merge a pull request, or run validation as insufficient approval to publish.

    line 13
  4. Distinctive:

    Never create or modify Azure resources while preparing a release.

    line 14
  5. Distinctive:

    Never expose secrets or private Azure or Microsoft identifiers in release notes, command output, commits, tags, or release metadata.

    line 15
  6. Very specific:

    Do not depend on a central release manifest.

    line 16
  7. Distinctive:

    Do not introduce a release custom agent.

    line 17
  8. Very specific:

    Start from a clean, current develop branch and fetch tags:

    line 21
  9. Distinctive:

    Read the complete contents of:

    line 30
  10. Distinctive:

    Stop and reconcile before continuing when:

    line 38
  11. Distinctive:

    Do not guess which source is correct.

    line 46
  12. Very specific:

    Create the release branch from the current remote develop, not from main or a local stale branch:

    line 62
  13. Distinctive:

    Update all repository-local version surfaces in one change:

    line 72
  14. Very specific:

    Leave a single empty ## [Unreleased] section at the top for future work.

    line 77
  15. Distinctive:

    Ensure changelog claims are supported by changes since the previous release.

    line 78
  16. Distinctive:

    remove subscription IDs, tenant IDs, resource-group names, private resource or host names, internal service names, private repository …

    line 85
  17. Distinctive:

    do not disclose embargoed vulnerabilities or private operational details.

    line 87
  18. Distinctive:

    Search the draft for sensitive-looking identifiers and manually review it before publication.

    line 89
  19. Very specific:

    Run every existing Copilot asset validation that covers .github/skills/.

    line 96
  20. Distinctive:

    Run the smallest existing unit, lint, type-check, and build commands that cover the changed release metadata and affected product code.

    line 97
  21. Distinctive:

    Do not add a new validator merely to make release preparation pass.

    line 98
  22. Distinctive:

    Always verify release consistency, even when no dedicated validator exists:

    line 100
  23. Distinctive:

    no published changelog heading is duplicated.

    line 105
  24. Very specific:

    Commit the release preparation on release/X.Y.Z, push that branch, and open a pull request targeting main.

    line 114
  25. Very specific:

    Do not target develop for the release pull request.

    line 126
  26. Distinctive:

    After the release pull request is approved and merged to main:

    line 130
  27. Distinctive:

    Ask for explicit human approval to publish.

    line 135
  28. Distinctive:

    Only after that approval may the approved commit be tagged and the approved destinations be published.

    line 137
  29. Distinctive:

    Prefer an annotated tag:

    line 139
  30. Distinctive:

    Run package, image, or deployment publication only when each destination was explicitly included in the approval.

    line 147
  31. Distinctive:

    Tag pushed, release not created: verify the tag points to the approved commit.

    line 152
  32. Distinctive:

    Wrong commit or version published: stop all publication. Do not force-move or delete tags or overwrite artifacts.

    line 154
  33. Distinctive:

    Deployment failure: stop; do not make ad hoc Azure changes.

    line 155

“Common” is measured: kept by at least 6 in 10 of the 186 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Release GPT-RAG MCP

Use this workflow for every release. Preparation may be automated, but publication is always a separate, human-approved phase.

Safety rules

  • Never create, move, delete, or push a release tag; create or edit a GitHub release; publish a package or container image; or deploy anything without explicit human approval for that publication action.
  • Treat approval to prepare a release, open or merge a pull request, or run validation as insufficient approval to publish.
  • Never create or modify Azure resources while preparing a release.
  • Never expose secrets or private Azure or Microsoft identifiers in release notes, command output, commits, tags, or release metadata.
  • Do not depend on a central release manifest. This repository's release sources are Git tags, GitHub releases, VERSION, pyproject.toml, and CHANGELOG.md.
  • Do not introduce a release custom agent. Use this skill directly.

1. Establish the release baseline

Start from a clean, current develop branch and fetch tags:

git fetch origin develop main --tags
git status --short
git tag --sort=-version:refname
gh release list --limit 100

Read the complete contents of:

  • VERSION
  • pyproject.toml (project.version)
  • CHANGELOG.md

Determine the latest published version from both reachable vX.Y.Z Git tags and GitHub releases. Tags and releases are the publication record; version files describe the checked-out source. Normalize only for comparison by removing one leading v.

Stop and reconcile before continuing when:

  • the highest SemVer tag and highest GitHub release differ;
  • a release title or tag is not exactly vX.Y.Z;
  • VERSION and project.version differ;
  • the version files do not match the latest published version on develop; or
  • a tag points to an unexpected commit or a release targets a different tag.

Do not guess which source is correct. Report each value and its source, inspect the relevant history, and obtain maintainer confirmation for the reconciliation.

2. Select the next SemVer

Choose X.Y.Z according to Semantic Versioning:

  • increment major for incompatible public behavior;
  • increment minor for backward-compatible functionality; or
  • increment patch for backward-compatible fixes, documentation, dependency maintenance, or operational corrections.

Pre-release identifiers are allowed only when the maintainer explicitly requests them. Never silently reuse or skip a published version.

Summarize the proposed version and rationale before changing files.

3. Create the release branch

Create the release branch from the current remote develop, not from main or a local stale branch:

git switch --create release/X.Y.Z origin/develop

The branch name must be exactly release/X.Y.Z.

4. Prepare release metadata

Update all repository-local version surfaces in one change:

  1. Set VERSION to exactly X.Y.Z with no v prefix.
  2. Set project.version in pyproject.toml to exactly X.Y.Z.
  3. Move the applicable entries under ## [Unreleased] in CHANGELOG.md into ## [vX.Y.Z] - YYYY-MM-DD.
  4. Leave a single empty ## [Unreleased] section at the top for future work.
  5. Ensure changelog claims are supported by changes since the previous release.

The release tag and GitHub release title must both be exactly vX.Y.Z. Do not use X.Y.Z, release-X.Y.Z, or any other variation.

Draft release notes from the versioned changelog entry. Keep them concise and public:

  • include user-visible additions, fixes, changes, known limitations, and public issue or pull-request links when useful;
  • remove subscription IDs, tenant IDs, resource-group names, private resource or host names, internal service names, private repository names, customer names, incident IDs, employee aliases, credentials, tokens, and non-public URLs;
  • replace environment-specific examples with neutral placeholders;
  • do not disclose embargoed vulnerabilities or private operational details.

Search the draft for sensitive-looking identifiers and manually review it before publication.

5. Validate the release candidate

Discover and run the validation already defined by the repository at the release commit:

  1. Inspect pyproject.toml, lock files, contribution instructions, test directories, and GitHub workflow files.
  2. Run every existing Copilot asset validation that covers .github/skills/**.
  3. Run the smallest existing unit, lint, type-check, and build commands that cover the changed release metadata and affected product code.
  4. Do not add a new validator merely to make release preparation pass.

Always verify release consistency, even when no dedicated validator exists:

  • VERSION equals project.version;
  • the version is valid SemVer;
  • the changelog has exactly one Unreleased heading and one vX.Y.Z heading;
  • no published changelog heading is duplicated;
  • the intended tag and title are exactly vX.Y.Z;
  • the release-note draft contains no private identifiers;
  • the working tree contains only intended release changes.

Record the exact commands and results in the pull-request description.

6. Open the release pull request

Commit the release preparation on release/X.Y.Z, push that branch, and open a pull request targeting main.

The pull request must include:

  • the previous and proposed versions;
  • the SemVer rationale;
  • the release-note draft;
  • version/changelog consistency confirmation;
  • validation commands and results;
  • any known limitations or publication dependencies; and
  • a clear statement that no tag, GitHub release, package, image, or deployment has been published.

Do not target develop for the release pull request. Do not publish from an unmerged pull request.

7. Publication approval gate

After the release pull request is approved and merged to main:

  1. Fetch main and verify the merge commit contains the exact approved version and changelog.
  2. Re-run the release consistency checks against that commit.
  3. Present the commit SHA, exact tag/title vX.Y.Z, sanitized notes, and every intended publication destination.
  4. Ask for explicit human approval to publish.

Only after that approval may the approved commit be tagged and the approved destinations be published. Approval is scoped to the listed version, commit, notes, and destinations; any change requires renewed approval.

Prefer an annotated tag:

git tag -a vX.Y.Z <approved-main-commit> -m "vX.Y.Z"
git push origin vX.Y.Z
gh release create vX.Y.Z --title vX.Y.Z --notes-file <sanitized-notes-file>

Run package, image, or deployment publication only when each destination was explicitly included in the approval. Never infer deployment approval from tag or GitHub release approval.

8. Reconcile failures and roll back safely

  • Before publication: correct the release branch or pull request, re-run validation, and obtain approval for material changes.
  • Tag pushed, release not created: verify the tag points to the approved commit. Do not recreate, move, or delete it. Fix the release failure and request approval to resume.
  • GitHub release created, downstream publication failed: preserve successful immutable artifacts, document the partial state, fix the failure, and request approval to resume only the missing destinations.
  • Wrong commit or version published: stop all publication. Do not force-move or delete tags or overwrite artifacts. Report the exact state and follow a maintainer-approved reconciliation, normally a new patch release.
  • Deployment failure: stop; do not make ad hoc Azure changes. Use the repository's established rollback procedure and require explicit approval before retrying or rolling back.

Finish by comparing the Git tag, GitHub release, version files, changelog, and any explicitly approved published artifacts. Report discrepancies rather than claiming success.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.