docs/skills/release/SKILL.md
Release npm packages and create git tags. Handles @alps-asd/app-state-diagram, @alps-asd/mcp, and Homebrew formula updates.
npx skillsauth add alps-asd/app-state-diagram releaseInstall 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.
Release npm packages for app-state-diagram monorepo.
| Package | npm Name | Description | |---------|----------|-------------| | packages/app-state-diagram | @alps-asd/app-state-diagram | Core library and CLI | | packages/mcp | @alps-asd/mcp | MCP Server for AI integration | | packages/crawler | (private) | Not published |
Update version in all package.json files:
# Root
package.json
# Packages
packages/app-state-diagram/package.json
packages/mcp/package.json
For alpha releases, use format: 2.0.0-alpha.1
In packages/mcp/package.json, use workspace reference:
{
"dependencies": {
"@alps-asd/app-state-diagram": "workspace:*"
}
}
pnpm build
pnpm test
git tag -a v2.0.0-alpha.1 -m "v2.0.0-alpha.1: Description"
git push upstream v2.0.0-alpha.1
Publish in dependency order:
# Core package first
cd packages/app-state-diagram
pnpm publish --access public --no-git-checks --tag alpha
# Then dependent packages
cd ../mcp
pnpm publish --access public --no-git-checks --tag alpha
For stable releases, omit --tag alpha:
pnpm publish --access public --no-git-checks
npm view @alps-asd/[email protected] version
npm view @alps-asd/[email protected] version
Location: /Users/akihito/git/homebrew-asd
Formula/asd.rb for v2 (Node.js/TypeScript):
class Asd < Formula
desc "Generates state diagrams and documentation from ALPS profiles"
homepage "https://alps-asd.github.io/"
url "https://github.com/alps-asd/app-state-diagram.git", branch: "2.x"
version "2.0.0-alpha.1"
license "MIT"
depends_on "node@20"
depends_on "pnpm"
depends_on "graphviz" => :optional
def install
ENV.prepend_path "PATH", Formula["pnpm"].opt_bin
inreplace "package.json", /,?\s*"packageManager":\s*"[^"]*"/, ""
system "pnpm", "install", "--package-import-method", "copy"
system "pnpm", "run", "build"
libexec.install Dir["*"]
(bin/"asd").write <<~EOS
#!/bin/bash
exec "#{Formula["node@20"].opt_bin}/node" "#{libexec}/packages/app-state-diagram/dist/asd.js" "$@"
EOS
end
test do
system "#{bin}/asd", "--version"
end
end
cd /Users/akihito/git/homebrew-asd
# Edit Formula/asd.rb with new version
git add Formula/asd.rb
git commit -m "Update to version 2.0.0-alpha.1"
git push origin v2-node
git push upstream v2-node
pnpm test)pnpm build)npm view @alps-asd/app-state-diagram| Branch | Purpose | |--------|---------| | 2.x | TypeScript v2 (main development) | | 1.x | PHP v1 (legacy, maintenance only) |
| Tag | Purpose | |-----|---------| | latest | Stable releases | | alpha | Pre-release versions |
development
Generate OpenAPI specification from ALPS profile. Converts ALPS semantic descriptors to RESTful API definitions with automatic validation.
development
Generate multi-fidelity HTML mock from ALPS profile. Creates semantic HTML pages, three CSS fidelity levels, mock API responses, and i18n labels — all from a single ALPS profile.
testing
Create, validate, and improve ALPS profiles. Generate from natural language descriptions, validate existing profiles, and get improvement suggestions.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.