sdk-release

GitHub

管理多语言 SDK(TS/Py/Go/Rust)的构建、测试、版本升级及发布至 npm/PyPI/crates.io 等注册表的完整流水线。

sdk/apc/skills/sdk-release/SKILL.md Prismer-AI/PrismerCloud

Trigger Scenarios

需要发布或更新 SDK 包 执行多语言 SDK 的构建与验证流程

Install

npx skills add Prismer-AI/PrismerCloud --skill sdk-release -g -y
More Options

Non-standard path

npx skills add https://github.com/Prismer-AI/PrismerCloud/tree/main/sdk/apc/skills/sdk-release -g -y

Use without installing

npx skills use Prismer-AI/PrismerCloud@sdk-release

指定 Agent (Claude Code)

npx skills add Prismer-AI/PrismerCloud --skill sdk-release -a claude-code -g -y

安装 repo 全部 skill

npx skills add Prismer-AI/PrismerCloud --all -g -y

预览 repo 内 skill

npx skills add Prismer-AI/PrismerCloud --list

SKILL.md

Frontmatter
{
    "name": "sdk-release",
    "description": "SDK build, test, version bump, and release to open source repo + registries. Covers the full pipeline from development in prismer-cloud-next to publishing on npm\/PyPI\/crates.io\/Go.",
    "allowed-tools": "Bash, Read, Write, Edit"
}

SDK Release Workflow

Architecture

prismer-cloud-next/sdk/          ← Source of truth (active development)
├── prismer-cloud/               ← Main SDK suite (8 packages)
│   ├── typescript/              @prismer/sdk
│   ├── python/                  prismer (PyPI)
│   ├── golang/                  prismer-sdk-go
│   ├── rust/                    prismer-sdk (crates.io)
│   ├── mcp/                     @prismer/mcp-server
│   ├── claude-code-plugin/      @prismer/claude-code-plugin
│   ├── opencode-plugin/         @prismer/opencode-plugin
│   └── openclaw-channel/        @prismer/openclaw-channel
│
├── aip/                         ← AIP identity suite (4 packages)
│   ├── typescript/              @prismer/aip-sdk
│   ├── python/                  prismer-aip
│   ├── golang/                  prismer-aip-go
│   └── rust/                    prismer-aip
│
└── build/                       ← Build scripts (NOT in open source)
    ├── sync.sh                  Whole-directory sync to PrismerCloud
    ├── test.sh                  Run all tests against production
    ├── verify.sh                Pre-release checks
    ├── pack.sh                  Create publishable artifacts
    ├── version.sh               Bump version across all packages
    └── release.sh               Orchestrate full release

        │
        ▼  sync.sh (rsync --delete)

PrismerCloud/                    ← Open source repo (github.com/Prismer-AI/PrismerCloud)
├── sdk/                         ← EXACT mirror, no residual files
│   ├── prismer-cloud/           (flattened or nested — matches source)
│   ├── aip/
│   └── ...
├── build/                       ← Release tooling (stays in open source)
│   ├── pack.sh
│   ├── release.sh
│   └── ...
└── docs/

Key Principle: WHOLE-DIRECTORY REPLACE, NOT COPY

The sync step uses rsync --delete to ensure the open source repo is an exact mirror of the source. This prevents residual files from deleted features, renamed packages, or restructured directories from lingering in the open source repo.

# This is correct — --delete removes files not in source
rsync -av --delete --exclude='...' source/sdk/ target/sdk/

# This is WRONG — leaves deleted files behind
cp -r source/sdk/* target/sdk/

Pipeline

Step 1: Develop in prismer-cloud-next

All development happens in prismer-cloud-next/sdk/. This includes:

  • Code changes
  • New packages
  • Directory restructuring
  • Version bumps
  • Build verification
  • Local testing

Step 2: Build & Test (in prismer-cloud-next)

# Build all packages
cd sdk/prismer-cloud/typescript && npm run build
cd sdk/prismer-cloud/mcp && npm run build
cd sdk/prismer-cloud/opencode-plugin && npm run build
cd sdk/prismer-cloud/python && pip install -e ".[dev]" && pytest
cd sdk/prismer-cloud/golang && go build ./... && go test ./...
cd sdk/prismer-cloud/rust && cargo build

# Build AIP packages
cd sdk/aip/typescript && npm run build
cd sdk/aip/python && pip install -e ".[dev]" && pytest
cd sdk/aip/golang && go build ./...
cd sdk/aip/rust && cargo build

# Integration tests against production
npx tsx scripts/test-all-apis.ts --env prod

Step 3: Version Bump (in prismer-cloud-next)

# Bump all packages to target version
# This updates all version files listed in the Version File Map
sdk/build/version.sh 1.7.4

# Or use semver shortcuts
sdk/build/version.sh --patch   # 1.7.3 → 1.7.4
sdk/build/version.sh --minor   # 1.7.3 → 1.8.0

Version File Map

prismer-cloud suite:

File Pattern
sdk/prismer-cloud/typescript/package.json "version": "X.Y.Z"
sdk/prismer-cloud/mcp/package.json "version": "X.Y.Z"
sdk/prismer-cloud/mcp/src/index.ts version: 'X.Y.Z'
sdk/prismer-cloud/opencode-plugin/package.json "version": "X.Y.Z"
sdk/prismer-cloud/claude-code-plugin/package.json "version": "X.Y.Z"
sdk/prismer-cloud/claude-code-plugin/.claude-plugin/plugin.json "version": "X.Y.Z"
sdk/prismer-cloud/openclaw-channel/package.json "version": "X.Y.Z"
sdk/prismer-cloud/python/pyproject.toml version = "X.Y.Z"
sdk/prismer-cloud/python/prismer/__init__.py __version__ = "X.Y.Z"
sdk/prismer-cloud/rust/Cargo.toml version = "X.Y.Z"
sdk/prismer-cloud/golang/README.md version reference

aip suite:

File Pattern
sdk/aip/typescript/package.json "version": "X.Y.Z"
sdk/aip/python/pyproject.toml version = "X.Y.Z"
sdk/aip/golang/go.mod module path
sdk/aip/rust/Cargo.toml version = "X.Y.Z"

Step 4: Sync to Open Source (WHOLE-DIRECTORY REPLACE)

sdk/build/sync.sh

This does:

  1. rm -rf PrismerCloud/sdk/ (clean slate)
  2. rsync -av --delete --exclude={node_modules,dist,target,...} sdk/ PrismerCloud/sdk/
  3. Verify file count and structure

CRITICAL: This is a whole-directory replace. Any files that existed in PrismerCloud/sdk/ but not in prismer-cloud-next/sdk/ will be deleted. This is intentional — it prevents residual files from accumulating.

Step 5: Pack & Release (in PrismerCloud)

cd /Users/prismer/workspace/PrismerCloud

# Verify everything
build/verify.sh

# Package artifacts
build/pack.sh --clean

# Release to all registries
build/release.sh --version 1.7.4

This publishes to:

  • npm: @prismer/sdk, @prismer/mcp-server, @prismer/opencode-plugin, @prismer/claude-code-plugin, @prismer/openclaw-channel
  • PyPI: prismer
  • crates.io: prismer-sdk
  • Go Proxy: triggered by git tag sdk/golang/vX.Y.Z
  • GitHub Release: with all artifacts attached

Quick Reference

What Where Command
Develop prismer-cloud-next (normal development)
Build prismer-cloud-next sdk/build/test.sh
Version bump prismer-cloud-next sdk/build/version.sh X.Y.Z
Sync prismer-cloud-next sdk/build/sync.sh
Verify PrismerCloud build/verify.sh
Pack PrismerCloud build/pack.sh --clean
Release PrismerCloud build/release.sh

What NOT to Do

  • Do NOT edit code in PrismerCloud/sdk/ — it will be overwritten on next sync
  • Do NOT copy files instead of rsync --delete — residual files will accumulate
  • Do NOT publish from prismer-cloud-next — always sync to PrismerCloud first
  • Do NOT skip version bump — version mismatches break verify.sh
  • Do NOT publish without verify.sh passing — it catches version mismatches, missing builds, and auth issues

Registries & Credentials

Registry Credential Check
npm npm login --scope=@prismer npm whoami
PyPI ~/.pypirc or TWINE_USERNAME/TWINE_PASSWORD twine check dist/*
crates.io CARGO_REGISTRY_TOKEN cargo login
GitHub gh auth login gh auth status
Go Proxy Automatic (git tag push) —

Version History

  • f4c4a0c Current 2026-10-19 02:37

Same Skill Collection

sdk/apc/skills/bug-reproduce/SKILL.md
sdk/apc/skills/code-review/SKILL.md
sdk/apc/skills/design-review/SKILL.md
sdk/apc/skills/doc-sync/SKILL.md
sdk/apc/skills/env-doctor/SKILL.md
sdk/apc/skills/git-ops/SKILL.md
sdk/apc/skills/impact-trace/SKILL.md
sdk/apc/skills/observability/SKILL.md
sdk/apc/skills/release-db-config-sync/SKILL.md
sdk/apc/skills/release-ota-promote/SKILL.md
sdk/apc/skills/release-preflight/SKILL.md
sdk/apc/skills/release-rollback/SKILL.md
sdk/apc/skills/release-tag/SKILL.md
sdk/apc/skills/releasing-prod/SKILL.md
sdk/apc/skills/releasing-test/SKILL.md
sdk/apc/skills/spec-intake/SKILL.md
sdk/apc/skills/test-result-feedback/SKILL.md
sdk/apc/skills/test-runner/SKILL.md
sdk/apc/skills/ui-canvas/SKILL.md
sdk/cloud/catalog/skills/agent-meta/SKILL.md
sdk/cloud/catalog/skills/assets/SKILL.md
sdk/cloud/catalog/skills/browser-use/SKILL.md
sdk/cloud/catalog/skills/canvas-design/SKILL.md
sdk/cloud/catalog/skills/claim-agent-ownership/SKILL.md
sdk/cloud/catalog/skills/codebase-design/SKILL.md
sdk/cloud/catalog/skills/competitor-intelligence/SKILL.md
sdk/cloud/catalog/skills/diagnosing-bugs/SKILL.md
sdk/cloud/catalog/skills/doc-coauthoring/SKILL.md
sdk/cloud/catalog/skills/document-actions/SKILL.md
sdk/cloud/catalog/skills/domain-modeling/SKILL.md
sdk/cloud/catalog/skills/evidence-citations/SKILL.md
sdk/cloud/catalog/skills/frontend-design/SKILL.md
sdk/cloud/catalog/skills/image-generate/SKILL.md
sdk/cloud/catalog/skills/ingest/SKILL.md
sdk/cloud/catalog/skills/internal-comms/SKILL.md
sdk/cloud/catalog/skills/mcp-builder/SKILL.md
sdk/cloud/catalog/skills/meeting-actions/SKILL.md
sdk/cloud/catalog/skills/office-artifacts/SKILL.md
sdk/cloud/catalog/skills/okr/SKILL.md
sdk/cloud/catalog/skills/pkf-svg/SKILL.md
sdk/cloud/catalog/skills/pkf-writing/SKILL.md
sdk/cloud/catalog/skills/prismer-apple-notes/SKILL.md
sdk/cloud/catalog/skills/prismer-apple-reminders/SKILL.md
sdk/cloud/catalog/skills/prismer-ascii-video/SKILL.md
sdk/cloud/catalog/skills/prismer-blocked-page-recovery/SKILL.md
sdk/cloud/catalog/skills/prismer-box/SKILL.md
sdk/cloud/catalog/skills/prismer-codebase-inspection/SKILL.md
sdk/cloud/catalog/skills/prismer-computer-use/SKILL.md
sdk/cloud/catalog/skills/prismer-design-md/SKILL.md

Metadata

Files
0
Version
f4c4a0c
Hash
63ee0f2a
Indexed
2026-10-19 02:37

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-19 16:43
浙ICP备14020137号-1