sdk-release

GitHub

管理多语言 SDK 从开发到发布的完整流水线,涵盖构建、测试、版本升级及向 npm/PyPI/crates.io/Go 等注册中心发布,确保开源仓库与源码精确同步。

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

触发场景

需要构建和测试 SDK 代码 执行 SDK 版本升级操作 将 SDK 发布到公共注册中心

安装

npx skills add Prismer-AI/PrismerCloud --skill sdk-release -g -y
更多选项

非标准路径

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

不安装直接使用

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) —

版本历史

  • f4c4a0c 当前 2026-10-19 02:37

同 Skill 集合

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/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
sdk/cloud/catalog/skills/prismer-email-inbox-triage/SKILL.md

元信息

文件数
0
版本
f83b859
Hash
63ee0f2a
收录时间
2026-10-19 02:37

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-03 18:44
浙ICP备14020137号-1