Best for
- User says "ready to release", "create release", "publish release"
- User mentions a specific version number (e.g., "v0.3.14")
- User asks about release process or workflow
sunholo-data/ailang/.agents/skills/release-manager/SKILL.md
Create new AILANG releases with version bumps, changelog updates, git tags, and CI/CD verification. Use when user says "ready to release", "create release", mentions version numbers, or wants to publish a new version.
Decision brief
Create a complete AILANG release with version bump, changelog update, git tag, and CI/CD verification.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/sunholo-data/ailang --skill ".agents/skills/release-manager"Inspect the Agent Skill "release-manager" from https://github.com/sunholo-data/ailang/blob/9944e264e3b9043881978731dccd258f561082a3/.agents/skills/release-manager/SKILL.md at commit 9944e264e3b9043881978731dccd258f561082a3. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Review the “Quick Start” section in the pinned source before continuing.
Run checks BEFORE making any changes:
Run checks BEFORE making any changes:
Run checks AGAIN after documentation changes:
git push origin dev git push origin vX.X.X bash
Permission review
The documentation asks the agent to run terminal commands or scripts.
*Run the version update script:**The documentation asks the agent to run terminal commands or scripts.
make testThe documentation includes sending, uploading, or posting data to a remote service.
curl -s -X POST -H "Content-Type: application/json" -d '{}' \The documentation includes network, browsing, or remote request actions.
curl -s -X POST -H "Content-Type: application/json" -d '{}' \The documentation includes network, browsing, or remote request actions.
https://mcp.ailang.sunholo.com/api/mcp/ailang_versions | python3 -c \Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 33 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Create a complete AILANG release with version bump, changelog update, git tag, and CI/CD verification.
Use the data above first. Only re-run these commands manually if the injected context is empty or you need to refresh after making changes.
The changelog is split into themed files in changelogs/:
CHANGELOG.md is an index file with links to archiveschangelogs/v0.18-current.md)changelogs/vX.Y-<theme>.md fileailang docs searchTo find the active changelog file:
ls changelogs/ | grep current # Currently: v0.18-current.md
When writing changelog entries, write to the active changelogs/v*.*.current.md file, NOT root CHANGELOG.md.
Most common usage:
# User says: "Ready to release v0.3.14"
# This skill will:
# 1. Run pre-release checks (tests, lint, file sizes)
# 2. Update version in docs
# 3. Create git tag
# 4. Push to trigger CI/CD
# 5. Verify release artifacts
# 6. Broadcast release notification with changelog
Invoke this skill when:
scripts/pre_release_checks.shRun all pre-release verification checks before making any changes.
Usage:
.Codex/skills/release-manager/scripts/pre_release_checks.sh
What it checks:
make test)make lint)make check-file-sizes)Output:
Running pre-release checks...
1/3 Running test suite...
✓ Tests passed
2/3 Running linter...
✓ Linting passed
3/3 Checking file sizes...
✓ File sizes OK (all files ≤800 lines)
✓ All pre-release checks passed!
Ready to proceed with release.
Exit codes:
0 - All checks passed1 - One or more checks failed (see logs in /tmp/pre_release_*.log)scripts/check_implemented_docs.sh <version>Verify all implemented design docs are documented in CHANGELOG.
Usage:
.Codex/skills/release-manager/scripts/check_implemented_docs.sh 0.5.10
What it checks:
design_docs/implemented/vX_Y_Z/Exit codes:
0 - All feature docs are in CHANGELOG1 - Some docs are missing from CHANGELOGscripts/post_release_checks.sh <version>Verify release was created successfully on GitHub.
Usage:
.Codex/skills/release-manager/scripts/post_release_checks.sh 0.3.14
What it checks:
git tag -l v0.3.14)gh release view v0.3.14)scripts/update_version_constants.sh <version>Update website version constants to the new release version.
Usage:
.Codex/skills/release-manager/scripts/update_version_constants.sh 0.5.7
What it updates:
docs/src/constants/version.js - STABLE_RELEASE and ACTIVE_PROMPTOutput:
Updating docs/src/constants/version.js...
STABLE_RELEASE: v0.5.6 → v0.5.7
ACTIVE_PROMPT: v0.5.2 → v0.5.2
✓ Updated docs/src/constants/version.js
scripts/collect_closable_issues.sh <version> [--close] [--json]Find GitHub issues that can be closed with this release.
Uses ailang messages GitHub integration for efficient issue discovery.
Usage:
.Codex/skills/release-manager/scripts/collect_closable_issues.sh 0.5.9
.Codex/skills/release-manager/scripts/collect_closable_issues.sh 0.5.9 --close
.Codex/skills/release-manager/scripts/collect_closable_issues.sh 0.5.9 --json
What it scans:
ailang messages import-github to sync latest issuesdesign_docs/implemented/vX_Y_Z/ and design_docs/planned/vX_Y_Z/Options:
--close - Actually close the issues via gh issue close--json - Output JSON format for including in release notesFor output examples, see resources/script_examples.md.
Note: When closing issues (--close), the script also marks the corresponding ailang messages as read via ailang messages ack.
Deduplication: ailang messages import-github checks existing issues by number before importing - issues are never duplicated.
Alternative: Auto-close via commits - Instead of using --close, include Fixes #123 in the release commit message. GitHub will auto-close issues when the commit is merged to the default branch.
scripts/close_issues_with_references.sh <version> <issue> [section]Close a GitHub issue with proper release references (URLs, commits, design docs).
Usage:
.Codex/skills/release-manager/scripts/close_issues_with_references.sh 0.5.10 29
.Codex/skills/release-manager/scripts/close_issues_with_references.sh 0.5.10 29 'M-STRING-CONVERT'
What it does:
For more details: See resources/issue_closure_guide.md
scripts/broadcast_release.sh <version> [--include-issues]Broadcast release notification with changelog to all projects.
Usage:
.Codex/skills/release-manager/scripts/broadcast_release.sh 0.4.5
.Codex/skills/release-manager/scripts/broadcast_release.sh 0.4.5 --include-issues
Options:
--include-issues - Include list of closed/closable GitHub issues in the notificationWhat it does:
collect_closable_issues.sh)Run checks BEFORE making any changes:
.Codex/skills/release-manager/scripts/pre_release_checks.sh
If checks fail:
make fmt or fix issuescodebase-organizer agent to split large filesCheck that all implemented features are documented:
.Codex/skills/release-manager/scripts/check_implemented_docs.sh X.X.X
This checks design_docs/implemented/vX_Y_Z/ against CHANGELOG:
If docs are missing:
changelogs/v0.18-current.md under the version headerRun the version update script:
.Codex/skills/release-manager/scripts/update_version_constants.sh X.X.X
Also update these files manually:
## [Unreleased] to ## [vX.X.X] - YYYY-MM-DDCHANGELOG.md is now an index file linking to themed archives in changelogs/vX.X.X (used by stdlib resolver for version checking)The script automatically updates:
Run checks AGAIN after documentation changes:
make test
make lint
If either fails, fix before committing.
git add changelogs/ std/VERSION docs/src/constants/version.js
git commit -m "Release vX.X.X"
CRITICAL: Tag MUST be on the dev branch at HEAD. Never tag a divergent commit.
# 1. Create the tag on current HEAD
git tag -a vX.X.X -m "Release vX.X.X"
# 2. VERIFY tag is reachable from HEAD (prevents v0.9.0-style divergence)
git describe --tags --exact-match HEAD # Must output "vX.X.X"
# 3. VERIFY binary version matches BEFORE pushing
go install -ldflags "-X main.Version=$(git describe --tags --always) -X main.Commit=$(git rev-parse --short HEAD) -X main.BuildTime=$(date -u '+%Y-%m-%d_%H:%M:%S')" ./cmd/ailang/
ailang --version # Must show "AILANG vX.X.X"
# 4. Only push AFTER verification passes
git push origin dev
git push origin vX.X.X
If git describe doesn't show the expected version:
git tag -d vX.X.X then start step 5 againWhat went wrong with v0.9.0: The tag was placed on a commit not on dev (a WASM fix commit on a side branch). dev kept advancing, so git describe --tags couldn't find the tag as an ancestor — the binary reported v0.8.1.1 instead of v0.9.0.
# Check recent runs
gh run list --limit 3
# Watch for completion (typically 2-3 minutes)
gh run watch
After the tag pushes and CI publishes the release, refresh the brain corpora
that back micro-rag (μRAG). The indexer always resolves the active prompt
version at runtime — never pin a version anywhere — and --reset ensures
the new release replaces stale chunks rather than layering on top of them.
make brain-index-syntax-reset
Acceptance check:
ailang-syntax, ailang-builtins,
ailang-examples.ailang cache stats shows non-zero counts for all three namespaces.ailang cache search --namespace ailang-syntax --limit 1 "string interpolation"
returns a chunk whose [version:vX.Y.Z] tag matches the new release.If the indexer fails (e.g. "could not resolve active prompt version"), do not skip this step — investigate and fix before the release is considered complete. The post-release skill will re-verify.
The remote MCP docs server (mcp.ailang.sunholo.com) bakes a per-version docs +
versions snapshot at image-build time (from std/VERSION via
tools/build-snapshot). It is a separate deployment from the CLI release —
release.yml only builds CLI binaries and does nothing to the MCP. If you skip
this step, the public MCP keeps serving the previous version and agents get
unknown_version for the new release (this silently happened across v0.20–v0.24;
prod was frozen at 0.19.1 for ~3 weeks).
This is now automatic and gated (M-RELEASE-GATE, v0.25.0+): pushing the v* tag fires
the ailang-core-release Cloud Build trigger → cloudbuild-release.yaml:
build → deploy test → SMOKE GATE → (only on pass) crane copy test→prod → deploy prod.
The smoke gate requires the test MCP to serve the released version, so std/VERSION
must equal the tag (the gate fails the release otherwise — this is intentional: it catches
tagging without bumping std/VERSION).
Per-environment:
ailang-dev-mcp) — ailang-core-dev trigger on every dev push. No action.ailang-test-mcp) — deployed as step 2 of the gated release pipeline on each v*
tag. (The standalone ailang-core-test-release trigger is disabled — superseded.)ailang-mcp → mcp.ailang.sunholo.com) — deployed as the final step, only if
the smoke gate passes. No manual step in the happy path.Break-glass (gate/pipeline broken, need prod NOW): build+deploy prod directly with the
maintained cloudbuild-dev.yaml (core images only — NOT the docparse-coupled
cloudbuild-images.yaml):
SA="projects/ailang-multivac-deploy/serviceAccounts/[email protected]"
gcloud builds submit --project=ailang-multivac-deploy \
--config=cloudbuild-dev.yaml \
--service-account="$SA" \
--default-buckets-behavior=REGIONAL_USER_OWNED_BUCKET \
--substitutions=_TARGET_PROJECT=ailang-multivac,_REGION=europe-west1,_PREFIX=ailang \
.
Acceptance check (the one BlackMage's agents rely on):
curl -s -X POST -H "Content-Type: application/json" -d '{}' \
https://mcp.ailang.sunholo.com/api/mcp/ailang_versions | python3 -c \
"import sys,json; d=json.load(sys.stdin)['result']; print('latest:', d['latest'])"
# Must print the version you just released.
If latest is stale, the prod build/deploy didn't run or didn't roll the revision
(:latest tag moves don't auto-roll Cloud Run — cloudbuild-dev.yaml's
deploy-services step force-rolls via gcloud run services update).
Find issues that can be closed with this release:
.Codex/skills/release-manager/scripts/collect_closable_issues.sh X.X.X
Review the suggested issues, then close them:
.Codex/skills/release-manager/scripts/collect_closable_issues.sh X.X.X --close
The script scans commits, CHANGELOG, and design docs for issue references, and matches open issues against CHANGELOG keywords.
Use the verification script:
.Codex/skills/release-manager/scripts/post_release_checks.sh X.X.X
Or manually:
gh release view vX.X.X
Expected binaries:
Notify all projects about the new release:
.Codex/skills/release-manager/scripts/broadcast_release.sh X.X.X
This extracts the changelog entry for the version and broadcasts it to the user inbox. External projects will see the notification when they check their inbox.
What gets broadcast:
If CI fails after push:
# Check logs
gh run list --workflow=CI --limit 3
gh run view <run-id> --log-failed
# Fix issues
# Commit fixes
git commit -m "Fix CI: <issue>"
git push
Show user:
post-release skill to update benchmarks and dashboardSee resources/release_checklist.md for complete step-by-step checklist.
See resources/issue_closure_guide.md for how to properly close GitHub issues with:
dev or mainmake test)make lint)make check-file-sizes)Semantic versioning: MAJOR.MINOR.PATCH
0.0.9, 0.1.0, 1.0.0After release, verify both prompt registries are consistent:
prompts/versions.json — syntax teaching prompts (ailang prompt)prompts/devtools/versions.json — dev tools reference (ailang devtools-prompt)Both are embedded in the binary via //go:embed all:prompts. New toolchain features should be reflected in the devtools prompt.
The user-facing Codex marketplace lives in the sibling repo ailang_bootstrap (.Codex-plugin/marketplace.json). It mirrors a small set of LSP plugins from this repo so end users get them via their bootstrap install.
Plugins mirrored: ailang-lsp (sourced at ailang_bootstrap/plugins/ailang-lsp/).
On every release, verify the mirrored plugin is byte-identical to this repo's:
# Compare and resync if drift detected (typically only the version field bumps).
diff -q .Codex/plugins/ailang-lsp/.lsp.json \
../ailang_bootstrap/plugins/ailang-lsp/.lsp.json
diff -q .Codex/plugins/ailang-lsp/.Codex-plugin/plugin.json \
../ailang_bootstrap/plugins/ailang-lsp/.Codex-plugin/plugin.json
# If diff reports differences:
cp .Codex/plugins/ailang-lsp/.lsp.json \
../ailang_bootstrap/plugins/ailang-lsp/.lsp.json
cp .Codex/plugins/ailang-lsp/.Codex-plugin/plugin.json \
../ailang_bootstrap/plugins/ailang-lsp/.Codex-plugin/plugin.json
# Then commit in ailang_bootstrap.
The ailang-go-lsp plugin is NOT mirrored — it's developer-facing (only useful when working ON the AILANG Go implementation), so it stays in this repo's ailang-tools marketplace only.
Solution: Fix tests first, don't skip this step.
Solution: Run make fmt to auto-format, or fix manually.
Solution: Use codebase-organizer agent to split large files before releasing.
Solution: Check logs with gh run view <run-id> --log-failed, fix, commit, push again.
Solution: CI workflow may still be running. Wait 2-3 minutes and check again.
This skill loads information progressively:
scripts/ directory (validation, verification)resources/release_checklist.md (detailed checklist)Scripts execute without loading into context window, saving tokens while providing automation.
Frequently asked questions
Create a complete AILANG release with version bump, changelog update, git tag, and CI/CD verification.
The source record exposes this install command: npx skills add https://github.com/sunholo-data/ailang --skill ".agents/skills/release-manager". Inspect the command and pinned source before running it.
Static rules flagged exec-script, send-data, network in the source; the page lists the matching lines and excerpts.
Alternatives
sunholo-data/ailang
Create new AILANG releases with version bumps, changelog updates, git tags, and CI/CD verification. Use when user says "ready to release", "create release", mentions version numbers, or wants to publish a new version.
huggingface/skills
Build and publish a Gradio demo on Hugging Face Spaces for a user-provided LoRA. Use when someone asks to create, generate, ship, or publish a Space, demo, Gradio app, or playground for a LoRA — including LoRAs for Qwen-Image, Qwen-Image-Edit, LTX-Video, Wan, FLUX, SDXL, or other diffusion base models. Also triggers when someone describes a LoRA they trained or hosts on the Hub and wants to share it. Covers picking the right base pipeline and `diffusers` inference recipe, designing a UI tailored
open-edge-platform/edge-ai-libraries
Deploy Chat Question-and-Answer Core to Kubernetes using Helm (OpenVINO CPU, OpenVINO GPU, or Ollama), including values.yaml configuration, helm install/upgrade, deployment verification, uninstall, and translation from Docker Compose setup_env.sh variables into Helm override values. Use this skill when the user says "deploy chatqna core to kubernetes", "helm install chatqna-core", "configure values.yaml", "convert compose config to helm", or "translate setup_env.sh to chart values".
wshobson/agents
Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens —