skills/jsr/SKILL.md
jsr release workflow for Deno projects. Use when publishing or releasing packages to JSR (JavaScript Registry) using Deno.
npx skillsauth add kuboon/dotfiles jsrInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
deno task release// scripts/release.ts
const denoJsonPath = new URL("../deno.json", import.meta.url);
const denoJson = JSON.parse(Deno.readTextFileSync(denoJsonPath));
const currentVersion = denoJson.version;
let newVersion = Deno.args[0];
if (!newVersion) {
console.log(`Current version: ${currentVersion}`);
const input = prompt("Enter new version:");
if (!input) {
console.error("Version is required");
Deno.exit(1);
}
newVersion = input;
}
if (newVersion.startsWith("v")) {
newVersion = newVersion.substring(1);
}
// Update deno.json
denoJson.version = newVersion;
Deno.writeTextFileSync(
denoJsonPath,
JSON.stringify(denoJson, null, 2) + "\n",
);
console.log(`Updated deno.json version to ${newVersion}`);
// Run git commands
async function run(cmd: string[]) {
console.log(`> ${cmd.join(" ")}`);
const command = new Deno.Command(cmd[0], {
args: cmd.slice(1),
stdout: "inherit",
stderr: "inherit",
});
const { code } = await command.output();
if (code !== 0) {
console.error(`Command failed with code ${code}`);
Deno.exit(code);
}
}
await run(["git", "add", "deno.json"]);
await run(["git", "commit", "-m", `chore: bump version to ${newVersion}`]);
console.log(
`\nSuccessfully bumped version to ${newVersion}. Please push to trigger release workflow.`,
);
.github/workflows/ci.ymlname: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup Deno
uses: denoland/setup-deno@v2
- run: deno lint
- run: deno check
- run: deno test -P
- run: deno fmt --check
release:
needs: test
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Check version
id: check
run: |
VERSION="v$(jq -r .version deno.json)"
echo "Version: $VERSION"
git fetch --tags
if git rev-parse "$VERSION" >/dev/null 2>&1; then
echo "Tag $VERSION already exists."
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "Tag $VERSION not found."
echo "exists=false" >> "$GITHUB_OUTPUT"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
fi
- name: Setup Deno
if: steps.check.outputs.exists == 'false'
uses: denoland/setup-deno@v2
- name: Create Tag and Publish
if: steps.check.outputs.exists == 'false'
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
VERSION="${{ steps.check.outputs.version }}"
git tag "$VERSION"
git push origin "$VERSION"
deno publish
tools
How to save & load skills from my gist
tools
Rules for using Deno
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.