release-docs-sync
Skill4 starsChanged 3 months agoApache-2.0View on GitHub
Sync every version-dependent doc/content reference to a new agent-assembly release version (alpha / beta / rc / official). Use right before or as part of cutting a release — after release-tag-cut bumps the Cargo version literals but before/while the docs are published — to update the compatibility matrix, install examples, sample CLI output, and the SDK version files + docs-site/README version refs (incl. new-feature example pins) so docs never go stale. Version-type-agnostic: the same checklist applies to any pre-release or official version.
- Installs packages
2 other projects use a version of this.
Adopted by
Most recently taken up by
- opencrvs/opencrvs-coretheir own version, first seen Oct 9, 2026
- maksutovic/joycrafttheir own version, first seen Sep 23, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- opencrvs/opencrvs-core★ 122same name
- maksutovic/joycraft★ 15same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository21 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- adr-governanceSkill
- credential-operationsSkill
- documentation-experienceSkill
- engineering-loopSkill
- governance-doctorSkill
- homebrew-tap-mergeSkill
- jira-deliverySkill
- product-validationSkill
- public-release-reconcileSkill
- release-assuranceSkill
- release-evidence-finalizeSkill
- release-qa-gateSkill
- release-security-gateSkill
- release-tag-cutSkill
- release-validate-channelsSkill
- repo-bootstrapSkill
- repo-scaffoldSkill
- rust-developmentSkill
- shell-developmentSkill
- terraform-developmentSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 237
Easy to miss, and NOT covered by
check-docs-versions.sh: When a release adds new SDK features/adapters, their example docs must pin the … - Distinctive: line 313
Every new-feature example pin points at the release that ships it (Step 3.5), verified absent from the prior published tag — not downgraded …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
release-docs-sync
release-tag-cut bumps every workspace Cargo version literal, regenerates
Cargo.lock, and pushes the tag. It does not touch documentation /
content version references. Those are a separate, manual, easily-forgotten
step — and forgetting it is exactly the drift bug
AAASM-3372 found
(compatibility matrix stuck at alpha.5, install examples on a stale version,
hub badges wrong).
This skill is the can't-forget checklist: given a new version X (any of
alpha / beta / rc / official), it lists exactly which files in which repos to
update, and how. The mechanical backstop is
scripts/check-docs-versions.sh,
which fails if the agent-assembly live install examples + compat-matrix row are
not on X.
Automated first pass —
scripts/propagate_versions.py(AAASM-4910 / ADR 0013). Before working the checklist by hand, run the propagation tool: it stamps every hand-maintained agent-assembly-local version-bearing site from its source of truth (theCargo.toml[workspace.package].versioncore anchor + themetadata/docs.yamlmdBook / mdbook-mermaid tool pins) in one pass, and ships a--checkdrift-gate that reports staleness without writing:python3 scripts/propagate_versions.py # stamp all consumers from the SoT python3 scripts/propagate_versions.py --check # drift-gate: exit 1 if any is staleConsumers it maintains (per ADR 0013 Appendix A, agent-assembly
[B]sites):
- Core-version tier (from the
Cargo.tomlanchor):
README.md— theAASM_VERSION=vXquick-install snippet and the Project Status "latest[vX]" release link (both the label and the tag URL).docs/src/quick-start/installation.md— the four live install examples:AASM_VERSION=vXpin,VERSION=vXmanual download,aasm <bare X>sample output, and the| cli | <bare X> |version-table row.- Tool-pin tier (from
metadata/docs.yaml):
.github/workflows/docs.yml— the mdBook / mdbook-mermaid--versionpins and the cache-key version segment.CONTRIBUTING.md— the mdBook / mdbook-mermaid install commands.- Generated-snippet tier —
docs/src/generated/*.md, refreshed viagenerate_docs_metadata.py(its sanctioned writer, reused) so one command syncs everything.What it deliberately does NOT touch (still your manual job below): the
docs/src/compatibility.mdmatrix rows (per-tag rows stay literal — ADR 0013 forbids templating historical values; you still add a new row, Step 1.1); the README Project Status maturity banner (channel word + "status as of" date are per-release judgement, Step 1.3); the SDK version files / docs-site pins (Step 3 — those live in other repos); anddocker/sdk-versions.json(Step 1.6). The tool changes the version anchor value; a channel promotion's prose is still yours to write.
This skill creates NO new release mechanics. The docs channel cut (latest / pre-release / stable labels, version dropdowns) is already fully release-workflow-driven (AAASM-2741 / AAASM-2744). Do NOT hand-edit channel labels or the channel dropdown — only update the in-content version references listed below. (For node-sdk,
website/versions.jsonandwebsite/versionChannels.jsonare that channel config — auto-managed by the release docs-snapshot step; do not hand-edit them.)
Principle — three kinds of version reference; only one gets bumped. Before changing any version string, classify it:
- Current / canonical — install snippets, sample CLI output, "captured against
vX" provenance, the latest-release link, the new compat-matrix row → bump toX.- Historical — CHANGELOG,
docs/release/*, older compat-matrix rows,versioned_docs/snapshots, a security "last full refresh" marker → leave. They record the past; bumping a refresh marker without an actual re-review is a lie.- Forward-reference — a dependency pin to the release that ships a feature (an example for an adapter/feature added after the last published tag, pinned
>=X) → correct, not stale; leave it / set toX. Do NOT downgrade it to the last published version. This is the AAASM-3695 trap — see Step 3.5.
Timing — consumer repos lag; the release repos lead. Repos that install from registries (
agent-assembly-examples, the docs-hub live badges) must reference the currently-published version. Do not bump them toXbeforeXis published —pip install/npm i/go getof an unpublishedXbreaks. Bump those after the publish step. The release repos' own docs (this skill) describe the upcoming release and may lead.
When to use
- Whenever a new agent-assembly version is being cut (pre-release or
official). Run it as part of the release, alongside
release-tag-cut. - It is version-type-agnostic: alpha → beta channel promotion, beta forward-roll,
rc, or the first official
v0.0.1all use the same procedure. The version string is the only input that changes.
Inputs
X— the new version, in tag form (e.g.v0.0.1-beta.3,v0.0.1). The per-registry forms you will also need:- bare core/CLI form:
0.0.1-beta.3(drop the leadingv) - PyPI / PEP 440 form:
0.0.1b3(alpha→aN, beta→bN, rc→rcN) - npm dist-tag: the channel name (
alpha/beta/rc/latest)
- bare core/CLI form:
Procedure
Work in a worktree off fresh remote/main (see the project worktree rules).
Edit each file below, then run the verifier. Granular GitEmoji commits.
Step 1 — agent-assembly docs/ + README (the verifier covers these)
These are the references that ship in the core docs site and the repo front page.
The verifier (scripts/check-docs-versions.sh X) asserts every one of them.
docs/src/compatibility.md— the live tables. Add a NEW row (never overwrite an old one) forXto each of:- Compatibility Matrix —
| vX | python… | node… | go… | protocol/v1 | - Minimum Supported Runtime Version per SDK — add the three SDK rows for
Xif the minimum changed (a channel promotion usually bumps it). - Supported Protocol Versions per Runtime —
| vX | protocol/v1 |. Older rows stay — this is a cumulative matrix, not a replace.
- Compatibility Matrix —
docs/src/quick-start/installation.md— bump the live examples:- the
AASM_VERSION=vXpin-a-version snippet, - the
VERSION=vXmanual pre-built-binaries snippet, - the
aasm <bare X>--versionsample output, - the
| cli | <bare X> |aasm versiontable sample.
- the
README.md(repo root):- the
AASM_VERSION=vXquick-install snippet, - the Project Status maturity banner — the
🚧 <maturity> —v0.0.1-<channel>seriesline and its_(status as of <date>)_marker. The maturity word + channel segment must match the channelXbelongs to (alpha / beta / rc / official). This is the AAASM-4636 drift: the banner still read "Alpha" while the release wasrc. On a channel promotion (alpha→beta→rc→official), bump both the maturity word and thev0.0.1-<channel>series label; on a same-channel forward-roll, just refresh the "status as of" date. - the Project Status "latest [
vX]" release line (and its date).
- the
docs/src/quick-start/configuration.mdanddocs/src/quick-start/first-run.md— these carry captured sample output that names a build version (e.g."version": "0.0.1-alpha.5", "captured from a realv0.0.1-alpha.5build"). Refresh the version string so samples don't advertise an ancient build. (Not gated by the verifier — these are illustrative captures, not install instructions; update them when re-capturing, but a stale sample here is cosmetic, not a broken instruction.)docs/release/vX.md— the per-tag release notes file.release-tag-cutowns creating this; confirm it exists forX(do not duplicate its work).docker/sdk-versions.json— the single source of truth for the SDK release pinned into each governed language base image (ghcr.io/…/{python, node,go});docker.ymlreads.sdk.<lang>and passes it as theSDK_VERSIONbuild-arg. Bump all three to the release's SDK versions forX(note the per-ecosystem forms: python PEP 4400.0.1rc6, node0.0.1-rc.6, gov0.0.1-rc.6). Forgetting this ships base images with a stale SDK — the AAASM-4761 drift, where the images stayed onbeta.5/beta.3while the core release wasrc.6, so a developer building an agentFROMthem got an old (and, for python, enforcement-broken) SDK. Keep in step withdocs/src/compatibility.mdrow forX. (Not yet gated bycheck-docs-versions.sh— until it is, this is a manual can't-forget item.)
agent-assembly.toml.examplecarries no version literal today — nothing to bump there. Re-check withgrep -nE 'version|0\.0\.1' agent-assembly.toml.examplein case that changes.
Step 2 — agent-assembly-docs hub (read-only sibling; separate PR/repo)
The hub docs/src/compatibility.md has the highest drift risk because it
uses static shields.io badges that do NOT self-update:
badge/core-vXcore badge andbadge/go--sdk-vXGo badge — these are hard-codedimg.shields.io/badge/...URLs. Bump the version segment toX.- The PyPI and npm badges are live (
shields.io/pypi/v/...,shields.io/npm/v/.../<dist-tag>) — they self-update; do not hand-edit them, but if the channel changed (alpha→beta), repoint the npm dist-tag. - Add a new matrix row for
Xto the hub compatibility table, same as the core file. Fix any "tested @<sha>(post-… unreleased)" line that is now superseded by a real published tag.
The hub lives in the sibling
agent-assembly-docsrepo. Make these edits in that repo's own PR — do not edit it from the agent-assembly worktree.
Step 3 — SDK repos: version files, READMEs, AND docs sites
⚠️ SDKs are NOT "nothing to bump." The README badges are mostly live, but every SDK in the release cycle also has (a) a checked-in version file and (b) a docs site with pinned install commands and per-example version lines. The beta.4 wave bumped all three across python and node. No SDK file is covered by
check-docs-versions.sh— these are all manual. "Badges are live" ≠ "the SDK needs no edits."
For each SDK being released this cycle, do all three of:
3a — canonical version file (the SDK release PR carries this; the published
version also comes from the release workflow_dispatch input — pypi_version /
npm_version — but keep the checked-in file in sync for repo honesty + badges):
- python-sdk —
pyproject.tomlversion+agent_assembly/__init__.py__version__→ PyPI form (e.g.0.0.1b5); regenerateuv.lock. - node-sdk — root
package.jsonversion→ e.g.0.0.1-beta.5. (The 4 runtime sub-packagepackage.jsonfiles stay at their tree value;release-node.ymlrewrites all 5 at publish fromnpm_version.pnpm-lock.yamlusually does not pin the root version — only touch if it does.) - go-sdk —
assembly/version.goVersionconst, if go-sdk is part of the cycle. go-sdk is tag-driven — skip it entirely when it has no new commits.
3b — README badges — pypi/v, npm/v/.../<tag>, GitHub-release and
docs-live badges are live; do not hand-edit them. Only on a channel
change (alpha→beta→rc→latest) repoint the npm dist-tag in node-sdk's badge URL +
the pnpm add @agent-assembly/sdk@<tag> snippet + the "current release line is
…" prose.
3c — SDK docs site (the easily-missed part) — these carry pinned version strings that are NOT live and NOT covered by the verifier:
- node-sdk
website/docs/— the quick-startnpm install @agent-assembly/sdk@<X>command IS pinned to an explicit version (not a bare@beta), and each09-examples/*.mdpage states "depends only on@agent-assembly/sdk(version<X>)". Bump every one toX. Leavewebsite/versions.json/versionChannels.json(auto-managed) andwebsite/versioned_docs/**snapshots. - python-sdk
docs/— example dependency tables pinagent-assembly>=<…>. Bump current-version pins toX, and run Step 3.5 for new-feature adapter examples (forward-ref pins — this is where the agno/haystack/smolagents/ ms-agent-framework misses happened). - go-sdk — library install is
go get …@vXwith no in-repo pinned version; nothing in-repo to bump. (Its examples live inagent-assembly-examplesand track the published go-sdk tag — bump them post-publish per the timing rule, not here. The org id is lowercaseai-agent-assembly; a mixed-casego getpath is a separate casing fix.)
Net for SDKs: a release that ships SDK changes touches the version file + docs-site pins in every SDK in the cycle. Only the badges are no-ops.
Step 3.5 — example dependency pins for newly-added features (forward-refs)
Easy to miss, and NOT covered by check-docs-versions.sh. When a release adds
new SDK features/adapters, their example docs must pin the release that ships
them — not the last published version. Pinning the older version means a reader
installs a build that lacks the feature (ImportError / missing export). This is
the AAASM-3695 class: the LlamaIndex example correctly pins >=0.0.1b5 while only
b4 was published, because the adapter is absent from b4.
- Grep every example/doc dependency pin:
- python:
git grep -nE 'agent-assembly\s*[<>=]' docs/ - node:
git grep -nE '@agent-assembly/sdk@' docs/
- python:
For each pinned feature, check whether it exists in the last published tag:
git cat-file -e <last-published-tag>:agent_assembly/adapters/<name>/__init__.py- errors (absent) → the feature is new in
X; the pin must be theXregistry form (>=0.0.1b5, etc.). - succeeds (present) → the existing lower pin is valid; leave it.
- errors (absent) → the feature is new in
- Fix any pin naming a version that does not actually contain its feature. (The
beta.4 wave found four the QA pass missed:
agnoat>=b4, andhaystack/microsoft-agent-framework/smolagentsat>=b2— all adapters that only ship inb5.)
Do this for every new feature's example, not just the canonical version files. A green
check-docs-versions.shdoes not catch these — it only checks the core install examples + the compat-matrix row.
Step 4 — verify
From the agent-assembly worktree:
python3 scripts/propagate_versions.py --check # ADR-0013 drift gate: every SoT-stamped consumer
bash scripts/check-docs-versions.sh X # e.g. v0.0.1-beta.3Both must exit 0. propagate_versions.py --check covers the automated
consumers (README + installation live examples, docs.yml / CONTRIBUTING tool
pins, generated snippets); check-docs-versions.sh additionally asserts the
compat-matrix row you added by hand. If either flags a ref, fix that file and
re-run. The check is
scoped to the live install examples + the new compat-matrix row — it
deliberately does not flag changelog/history rows that legitimately name
older versions.
Also run markdownlint on any edited .md and (if available) shellcheck if
you touched the script.
Cross-references
release-tag-cut— bumps Cargo literals + creates the tag anddocs/release/vX.md. Run this skill in the same release flow so docs land with the version bump. (Follow-up once PR #1169 / AAASM-3449 merges: add a one-line pointer torelease-docs-syncinrelease-tag-cut's flow index.)release-validate-channels— post-tag channel propagation check (separate).docs/release/RUNBOOK.md— canonical release prose; this skill is the docs-content slice of it.
Done when
scripts/propagate_versions.py --checkexits 0 in agent-assembly (every hand-maintained SoT-stamped consumer is onX).scripts/check-docs-versions.sh Xexits 0 in agent-assembly.- The README Project Status maturity banner names the channel
Xbelongs to (maturity word +v0.0.1-<channel>series label + refreshed "status as of" date) — not a stale channel (the AAASM-4636 "Alpha"-while-rcdrift). - A new compat-matrix row for
Xexists in both the core and hub compatibility files. - The hub's static core/Go badges read
X. - Every SDK in the cycle has its version file (pyproject +
__init__/ rootpackage.json/version.go) AND its docs-site pinned versions (node quick-start@Xinstall +09-examples"version" lines; python example dependency tables) bumped toX— none of which the verifier checks. - Every new-feature example pin points at the release that ships it (Step 3.5), verified absent from the prior published tag — not downgraded to the last published version.
- Consumer / registry-install repos were not bumped ahead of publish.
- Channel labels (incl. node-sdk
versions.json/versionChannels.json) were not hand-edited (they're workflow-driven).
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
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.

