Release Manager
ukorvl/lightweight-charts-react-components
Prepare or finalize semver releases for this repository. An agent skill from ukorvl/lightweight-charts-react-components.
A skill your agent uses when modifying public API in packages/core (types/global.ts, types/default.ts, index.ts, or package.json exports field), adding/renaming/removing props, changing default…
$ npx skills add Caldis/react-zmage --skill sync-public-docs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Caldis/react-zmage sync-public-docs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Caldis/react-zmage.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/sync-public-docs .claude/skills/sync-public-docs && rm -rf skills-srcUse ~/.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/
Install the "sync-public-docs" agent skill from https://github.com/Caldis/react-zmage/tree/master/.agents/skills/sync-public-docs into .claude/skills/sync-public-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-public-docs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Caldis/react-zmage/tree/master/.agents/skills/sync-public-docsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Caldis/react-zmage --skill sync-public-docs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Caldis/react-zmage sync-public-docs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Caldis/react-zmage.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/sync-public-docs .agents/skills/sync-public-docs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sync-public-docs" agent skill from https://github.com/Caldis/react-zmage/tree/master/.agents/skills/sync-public-docs into .agents/skills/sync-public-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-public-docs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Caldis/react-zmage --skill sync-public-docs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Caldis/react-zmage sync-public-docs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Caldis/react-zmage.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/sync-public-docs .cursor/skills/sync-public-docs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sync-public-docs" agent skill from https://github.com/Caldis/react-zmage/tree/master/.agents/skills/sync-public-docs into .cursor/skills/sync-public-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-public-docs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Caldis/react-zmage.git --path .agents/skills/sync-public-docs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Caldis/react-zmage --skill sync-public-docs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Caldis/react-zmage sync-public-docs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Caldis/react-zmage.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/sync-public-docs .gemini/skills/sync-public-docs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sync-public-docs" agent skill from https://github.com/Caldis/react-zmage/tree/master/.agents/skills/sync-public-docs into .gemini/skills/sync-public-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-public-docs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Caldis/react-zmage sync-public-docsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Caldis/react-zmage --skill sync-public-docs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Caldis/react-zmage.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/sync-public-docs .github/skills/sync-public-docs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sync-public-docs" agent skill from https://github.com/Caldis/react-zmage/tree/master/.agents/skills/sync-public-docs into .github/skills/sync-public-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-public-docs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Caldis/react-zmage --skill sync-public-docs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Caldis/react-zmage sync-public-docs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Caldis/react-zmage.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/sync-public-docs .opencode/skills/sync-public-docs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sync-public-docs" agent skill from https://github.com/Caldis/react-zmage/tree/master/.agents/skills/sync-public-docs into .opencode/skills/sync-public-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sync-public-docs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sync-public-docsA skill your agent uses when modifying public API in packages/core (types/global.ts, types/default.ts, index.ts, or package.json exports field), adding/renaming/removing props, changing default…
Sync Public Docs is an agent skill from Caldis/react-zmage. Use when modifying public API in packages/core (types/global.ts, types/default.ts, index.ts, or package.json exports field), adding/renaming/removing props, changing default values, before publishing a new react-zmage version, or when the user says "sync docs" / "update public docs" / "propagate this change" / "同步文档" / "更新对外文档" / "准备发版". This skill coordinates four documentation destinations that drift independently — packages/core types & defaults, packages/home docs sections + schema, docs/llms.txt, and…
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering AI search optimization, Technical documentation and Agent instruction files. It works with React, npm and JavaScript. The repository describes itself as: Turn any <img into an origin-expand fullscreen React image viewer. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit bd9b97d. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pnpmgitnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sync Public Docs loads about 3.3k tokens when it runs. Until then it costs about 228 tokens; SKILL.md has 1,544 words of instructions outside code blocks.
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.
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.
The full file from Caldis/react-zmage at commit bd9b97d, republished under its MIT licence (© Caldis). 1,544 words, ~3,284 tokens.
.claude/skills/sync-public-docs/SKILL.md (or your agent's skills folder).The repo has four "outward-facing" documentation surfaces and only two of them are guarded automatically:
| Destination | Source of truth | Auto-guard? |
|---|---|---|
packages/core/src/types/ | itself | — (this IS the source) |
packages/home/src/schema/param-schema.ts | imports BaseType from react-zmage (typed) but defaults are hand-copied | ✅ types only; ❌ default values |
packages/home/src/docs/sections/*.tsx + i18n keys | hand-written prose | ❌ |
packages/home/src/playground/* + routes/playground/* | hand-written examples | ❌ |
docs/llms.txt | checked-in file served as /llms.txt | ✅ static contract tests, ❌ content is still hand-written |
packages/llms-eval/eval.test.mjs (11-item contract) | llms.txt ↔ core | ✅ but manual run only |
README.md / AGENTS.md | hand-written | ❌ |
When core's public API changes, drift across these surfaces is silent — TS will flag a renamed type symbol but won't flag a stale default value, an outdated prop description in Props.tsx, or a removed prop still mentioned in README.md.
The cost of drift is real: README is what npm shows; llms.txt is what AI agents read; home/docs is what the live site renders. They can each go wrong independently.
Strong triggers (just do it):
packages/core/src/types/global.ts, types/default.ts, or index.tspackages/core/package.json exports field, peerDependencies, or version<Zmage>defProp or defPresetZmage (e.g. adding a new Zmage.X)react-zmage/ssr exportsWeak triggers (consider, then judge):
exports, peerDeps, or what consumers seeThese steps are deliberately separated so each one can be paused for human review. The reason for splitting "draft" from "write" is that drafts are cheap to throw away; writes touch many files and are expensive to revert.
Read the diff. List every change to public API surface, grouped by category:
packages/core/src/types/global.tspackages/core/src/types/default.ts (defProp, defPreset.desktop, defPreset.mobile)packages/core/src/index.ts (default export, static methods, named exports)exports field / subpaths / peerDeps in packages/core/package.jsonUse git diff against master (the default branch is master, not main). If the user is mid-refactor and the change is uncommitted, use the working tree.
If nothing on this list moved, stop here. Tell the user the change doesn't affect public surface, no sync needed.
For each change, identify which destinations need updating. Use this map. Each cell = "yes" unless marked –.
| Change category | home/schema (ParamDef + i18n) | home/docs/sections | home/playground | docs/llms.txt | README.md | AGENTS.md | llms-eval/eval.test.mjs |
|---|---|---|---|---|---|---|---|
| Add prop | ✓ ParamDef + i18n keys in all 7 home/src/i18n/*.ts | ✓ Props.tsx table row + Examples.tsx if non-trivial usage | ✓ ParamPanel.tsx + new control under playground/controls/ if user-tunable | ✓ API table | ✓ "API > 基础/功能/界面 Props" section + 示例 | ✓ if it changes the public-API contract | ✓ add an assertion proving the prop is documented |
| Rename prop | ✓ ParamDef name + all i18n key referrers | ✓ all sections (Props, Examples, Theming, Migration, FAQ) — grep the old name | ✓ all playground/** and routes/playground/** — grep the old name | ✓ | ✓ grep the old name everywhere | ✓ | ✓ |
| Remove prop | ✓ delete ParamDef + i18n keys | ✓ delete from Props.tsx; add entry to Migration.tsx | ✓ delete control; remove from ParamPanel.tsx | ✓ | ✓ delete + Migration note if breaking | ✓ | ✓ delete the assertion |
| Default value changed | ✓ defProp (or defPreset) hand-copy — see comment at top of param-schema.ts | ✓ Props.tsx "默认" column; Theming.tsx if it's backdrop-class; FAQ.tsx if a common-pitfall default flips | ✓ initial state in playground/seed/* (the WYSIWYG seed reflects defaults) | ✓ API table Default column | ✓ "默认" column in API tables | – usually | ✓ if there's a default-value assertion (e.g. backdrop hex) |
Add static method on Zmage | – | ✓ ThreeModes.tsx if it's a new mode; otherwise the most relevant section | ✓ if it can be exercised from playground UI | ✓ Quick start + Choosing a usage mode | ✓ Quick Contract table + 使用 section | ✓ | ✓ runtime assertion that the static exists |
Add subpath in exports | – | ✓ Installation.tsx and/or TypeScript.tsx | – | ✓ | ✓ Quick Contract | – usually | ✓ VALID_SUBPATHS set |
| peerDep range change | – | – | – | ✓ "Supports React X through Y" line | ✓ "React 版本兼容" table + badge | – | ✓ peer-range assertion bounds |
| Behavior/visual change (no API change) | – | ✓ Theming.tsx / FAQ.tsx if user-visible; Migration.tsx if behaviorally breaking | ✓ playground hint copy if behavior was demoed there | – usually | – usually | – | – |
Any prose change in home/src/docs/sections/*.tsx or any user-visible label in home/src/playground/ MUST land in all 7 home/src/i18n/*.ts files: en, de, es, fr, ja, ko, zh-CN. Divergent key sets break useT() lookups silently — there is no compiler error for a missing key. Untranslated entries may use the English source verbatim as a placeholder (better) or omit the value (worse, but acceptable temporarily) — but the key itself must exist in every file.
Verify before committing:
for lang in en de es fr ja ko zh-CN; do
count=$(grep -cE "^[[:space:]]+'[^']+':" "packages/home/src/i18n/$lang.ts")
echo "$lang: $count keys"
doneAll 7 numbers must match. If they diverge, find the missing key with diff <(grep ... en.ts) <(grep ... <other>.ts) and add the placeholder.
packages/llms-eval/eval.test.mjs so future drift is caught.Zmage: source defines both Zmage.wrapper / Zmage.Wrapper and Zmage.browsing / Zmage.Browsing. Pick one casing per document and stay consistent within that document — mixed casing in the same file confuses readers. Cross-document, the recommended convention is PascalCase for the component-shaped wrapper (<Zmage.Wrapper>, since JSX wants PascalCase for components) and camelCase for the imperative method (Zmage.browsing()).Write out — in your reply, not yet on disk — the exact intended diff for each destination. This is the human review checkpoint: it's much cheaper to revise prose at this stage than to revise after files are written.
Keep drafts terse: file path + before/after snippet, not full file content. The user should be able to skim and approve in one read.
If a destination needs more than ~30 lines of prose, flag it as "needs careful writing" rather than rushing through it.
Once drafts are approved, write the changes. Prefer parallelism — most destinations are independent.
Group rules:
home/schema/param-schema.ts, home/docs/sections/*.tsx, home/src/i18n/*.ts, README.md, AGENTS.md, packages/llms-eval/eval.test.mjs — these don't conflict.docs/llms.txt is one file; one writer.Dispatch one Agent per destination in Group A in a single tool-call message; do docs/llms.txt separately. Each subagent's prompt should include:
docs/llms.txt is the single source of truth served as /llms.txtTwo evaluation layers, both in packages/llms-eval/:
Static contract (always run after docs/llms.txt changes):
pnpm --filter llms-eval run testThis is the 11-item check that llms.txt's factual claims match core's reality. If any assertion fails, the sync is incomplete — go back to Step 3 for the affected destination.
Behavioral eval (run when public surface changed materially — new modes, props, subpaths, or anything an AI integrator would notice):
packages/llms-eval/agent-onboarding/output/ and report.json from the previous run.packages/llms-eval/agent-onboarding/prompt.md. The subagent must obey the META section's information-source constraints (only the deployed llms.txt URL, fall back to local docs/llms.txt if WebFetch fails, no other repo files, no GitHub).node packages/llms-eval/agent-onboarding/rubric.mjs to score the output (target ≥ 90/100).packages/llms-eval/agent-onboarding/output/SELF_CRITIQUE.md — this is the qualitative signal (rubric-100 doesn't mean docs are good; SELF_CRITIQUE shows what the integrator had to guess).Skip the behavioral eval for tiny changes (e.g., a typo fix, a peerDep bump from <20 to <21); the static contract suffices.
Compile a final report for the user with:
If anything is red, recommend a specific next action — don't just list problems.
Before claiming sync is done:
git diff shows changes only in destinations from the Step 2 mappnpm --filter llms-eval run test passes 11/11docs/llms.txt changed: pnpm --filter llms-eval run test passes and the file is committed (GitHub Pages serves this file directly)packages/llms-eval/eval.test.mjshome/schema/param-schema.ts defProp was edited: the hand-copy comment at the top of that file is still accurate (or removed if values now match core via a real import)llms.txt. GitHub Pages serves docs/llms.txt as /llms.txt, and packages/llms-eval reads that same file.home/schema/param-schema.ts without checking the comment at the top. That file deliberately re-declares defProp because core doesn't export it; if you can fix that root cause (export defProp from core) instead of re-syncing the copy, that's the better long-term fix — but it's a public-API addition, so it itself triggers this skill.© Caldis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/sync-public-docs of Caldis/react-zmage.
Open the folder on GitHubat commit bd9b97d
Sync Public Docs 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sync Public Docs this skillCaldis/react-zmage | 946 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Release Managerukorvl/lightweight-charts-react-components | 136 | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Writing Documentationhoneybadger-io/honeybadger-js | 116 | — | ~389 | Automated safety check: Pass | MIT | |
| Dev Serverlablup/backend.ai-webui | 133 | — | ~6.9k | Automated safety check: Notes | LGPL-3.0 | |
| Eslintmanagedcode/dotnet-skills | 486 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills | 21k | — | ~1.9k | Automated safety check: Pass | MIT |
ukorvl/lightweight-charts-react-components
Prepare or finalize semver releases for this repository. An agent skill from ukorvl/lightweight-charts-react-components.
honeybadger-io/honeybadger-js
Guides documentation changes for honeybadger-js. An agent skill from honeybadger-io/honeybadger-js.
lablup/backend.ai-webui
Start the project's development server (pnpm dev for backend.ai-webui; discovered from README/package.json elsewhere), deriving the header color, app name, default backend endpoint and login…
managedcode/dotnet-skills
Use ESLint in .NET repositories that ship JavaScript, TypeScript, React, or other Node-based frontend assets.
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
zhu1090093659/dsh-web
A skill your agent uses when adding or editing dsh-web README files, docs, AGENTS.md instructions, user-facing configuration text, or bilingual documentation pairs.
Caldis/react-zmage
A skill your agent uses when adding the react-zmage React image viewer to an existing React, Next.js, MDX, CMS, markdown, or rich text image surface.
Caldis/react-zmage
A skill your agent uses when the user wants to ship a new version of react-zmage to npm.
Works with
A skill your agent uses when modifying public API in packages/core (types/global.ts, types/default.ts, index.ts, or package.json exports field), adding/renaming/removing props, changing default…. Sync Public Docs is an agent skill from Caldis/react-zmage.json exports field), adding/renaming/removing props, changing default values, before publishing a new react-zmage version, or when the user says "sync docs" / "update public docs" / "propagate this change" / "同步文档" / "更新对外文档" / "准备发版".
Sync Public Docs fits situations like: modifying public API in packages/core (types/global.ts; types/default.ts; package.json exports field); adding/renaming/removing props.
Run `npx skills add Caldis/react-zmage --skill sync-public-docs -a claude-code`. Or copy the skill folder (.agents/skills/sync-public-docs in Caldis/react-zmage) into .claude/skills/sync-public-docs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Caldis/react-zmage --skill sync-public-docs -a codex`. Or copy the skill folder (.agents/skills/sync-public-docs in Caldis/react-zmage) into .agents/skills/sync-public-docs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Caldis/react-zmage --skill sync-public-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sync-public-docs, .gemini/skills/sync-public-docs, .github/skills/sync-public-docs and .opencode/skills/sync-public-docs in your project.
Going by SKILL.md and its folder, Sync Public Docs needs the command-line tools its instructions call (pnpm, git and node).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Sync Public Docs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Sync Public Docs: Release Manager (ukorvl/lightweight-charts-react-components, 136 stars), Writing Documentation (honeybadger-io/honeybadger-js, 116 stars), Dev Server (lablup/backend.ai-webui, 133 stars) and Eslint (managedcode/dotnet-skills, 486 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Caldis (a GitHub user) maintains it in Caldis/react-zmage, which has 946 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on May 18, 2026.
Source: Caldis/react-zmage on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.