xiaohongshu
xiaohongshu
Build and release manager for ARW CLI package. Handles local development, testing, building, documentation, version tagging, and publishing to npm and crates.io. Use when developing locally, running tests, building packages, releasing new versions, or publishing packages.
Full skill instructions
Build, test, and release orchestration for the ARW (Agent-Ready Web) CLI package supporting multiple build targets and publishing to npm and crates.io.
The ARW CLI supports three distinct build targets:
| Target | Command | Output | Use Case |
|---|---|---|---|
| napi-rs | npm run build | arw-cli.darwin-arm64.node | Node.js native addon (require in JS) |
| Standalone CLI | cargo build --release --features native | target/release/arw | Executable binary |
| WASM | npm run build:wasm | wasm-pkg/ | Browser/bundler usage |
cargo install wasm-packFor publishing only:
# Build napi-rs native addon (Node.js bindings)
npm install && npm run build
# Build standalone CLI binary
cargo build --release --features native
./target/release/arw --version
# Run tests
npm test && npm run test:wasm && cargo test
# 1. Verify, test, and build (dry run)
./scripts/quick-publish.sh --dry-run
# 2. If checks pass, publish
./scripts/quick-publish.sh
This builds a native Node.js addon using napi-rs. The result is a .node file that can be require()'d from JavaScript.
npm run build # Release build
npm run build:debug # Debug build (faster)
# Test the module
node -e "const cli = require('./index.js'); console.log(cli.getVersionInfo());"
Exports: validateManifest, checkCompatibility, generateManifest, getVersionInfo
This builds a standalone executable that can be run directly from the command line.
cargo build --release --features native
# Run directly
./target/release/arw --version
./target/release/arw --help
./target/release/arw validate path/to/manifest.json
./target/release/arw init
./target/release/arw generate
CLI Commands: init, generate, sitemap, validate, serve, scan, policy, robots, watch, actions, build
For browser and bundler usage.
npm run build:wasm # Node.js target
npm run build:wasm:web # Browser target
npm run build:wasm:bundler # Bundler target
# Test WASM
npm run test:wasm
# Install dependencies
npm install
# Build native addon (napi-rs)
npm run build # Release
npm run build:debug # Debug (faster iteration)
# Test module loading
node -e "const {validateManifest, getVersionInfo} = require('./index.js'); console.log(getVersionInfo());"
# Link for testing in other projects
npm link
# Debug build (fast compilation)
cargo build --features native
# Run without installing
cargo run --features native -- --version
cargo run --features native -- --help
cargo run --features native -- validate ./test-manifest.json
# Release build
cargo build --release --features native
./target/release/arw --version
# Install globally
cargo install --path . --features native
arw --version
# Watch mode (requires cargo-watch)
cargo install cargo-watch
cargo watch -x "run --features native -- --help"
# Build WASM
npm run build:wasm
# Run WASM tests
npm run test:wasm
src/cargo test / npm run test:wasmnpm run buildcargo build --release --features nativenpm run build:wasm# Run Node.js native tests
npm test
# Run WASM-specific tests
npm run test:wasm
# Format check
cargo fmt --check
# Linting with clippy
cargo clippy -- -D warnings
# Run all tests
cargo test
# Run with output visible
cargo test -- --nocapture
# All checks
cargo fmt --check && cargo clippy -- -D warnings && cargo test
# Release build (optimized)
npm run build
# Debug build (faster compilation)
npm run build:debug
Output: arw-cli.<platform>.node + index.js + index.d.ts
# Debug build
cargo build --features native
# Release build (optimized)
cargo build --release --features native
Output: target/release/arw or target/debug/arw
# Node.js WASM
npm run build:wasm
# Browser WASM
npm run build:wasm:web
# Bundler WASM
npm run build:wasm:bundler
Output: wasm-pkg/nodejs/, wasm-pkg/web/, wasm-pkg/bundler/
cargo build --release --features native --target x86_64-unknown-linux-gnu
cargo build --release --features native --target x86_64-apple-darwin
cargo build --release --features native --target aarch64-apple-darwin
cargo build --release --features native --target x86_64-pc-windows-msvc
Run before any release:
./scripts/verify-package.sh
This checks:
| Change Type | Version Bump | Example |
|---|---|---|
| Breaking changes | MAJOR | 1.0.0 → 2.0.0 |
| New features (backwards compatible) | MINOR | 1.0.0 → 1.1.0 |
| Bug fixes | PATCH | 1.0.0 → 1.0.1 |
# TypeScript - auto-bump in package.json
npm version patch --no-git-tag-version # or minor/major
# Rust - manual edit Cargo.toml
# Change: version = "x.y.z"
Use Keep a Changelog format. See resources/templates/CHANGELOG.template.md.
# Generate commit log since last tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline
# Check login
npm whoami
# Preview package contents
npm pack --dry-run
# Dry run publish
npm publish --dry-run --access public
# Publish for real
npm publish --access public
# Verify
npm view arw-cli
# Login (one-time setup)
cargo login
# Dry run
cargo publish --dry-run
# Publish
cargo publish
# Verify
cargo search arw-cli
| Script | Purpose |
|---|---|
scripts/build-all.sh | Build all packages |
scripts/build-all.sh --dev | Development build only |
scripts/build-all.sh --release | Production release build |
scripts/verify-package.sh | Pre-release validation |
scripts/quick-publish.sh --dry-run | Preview release |
scripts/quick-publish.sh | Full release workflow |
scripts/quick-publish.sh --skip-tests | Release without tests |
scripts/quick-publish.sh --npm-only | Publish to npm only |
scripts/quick-publish.sh --cargo-only | Publish to crates.io only |
npm whoami - must be logged in--access public for scoped packagesnpm config set prefix ~/.npm-globalsudo (not recommended)cargo login with API token from crates.io~/.cargo/credentials.tomlgit stash or git add -A && git commitgit tag -d v1.0.0 && git tag v1.0.0See docs/ADVANCED.md for:
resources/templates/docs/ADVANCED.mdxiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience