This repository publishes a portable SKILL.md package plus a small dependency-free installer.
npm test # node tests, the Python leg, and the manifest check
npm pack --dry-run # prepack re-verifies every shipped add-on payload
npm run build:portable:current
node bin/parley-deck-skill.js install --target all --dry-run
node bin/parley-deck-skill.js doctor --target all --jsonnpm test requires python3 (3.10 or newer) and fails without it: the parley-bidding
add-on ships seven Python tools that would otherwise be released untested.
If an add-on's payload changed, regenerate its manifest before packing — npm test and
prepack both refuse a stale one:
npm run manifest:addonsAsk a second model to review the final diff before publishing. Use this checklist:
- cross-platform path handling
- safe overwrite, update, and uninstall behavior
- Codex, Claude, Antigravity, Hermes, and legacy Gemini target correctness
- npm package file whitelist
- portable binary build and asset upload
- Homebrew formula correctness
- README install clarity
npm publish --access publicThe package name is parley-deck-skill. The primary user command is:
npx -y parley-deck-skill@latest installVERSION="x.y.z" # package version without the leading v
git tag "v${VERSION}"
git push origin main "v${VERSION}"Portable Windows executables are built with @yao-pkg/pkg and uploaded to each GitHub release by .github/workflows/release-portable.yml.
Manual build:
npm ci
npm run build:portable:windowsExpected artifacts:
dist/parley-deck-skill-vX.Y.Z-windows-x64.exe
dist/parley-deck-skill-vX.Y.Z-windows-arm64.exe
After release publication, verify the assets are attached and that the workflow passed. These .exe files are the inputs for WinGet manifests.
WinGet uses the Windows executables from the GitHub release. The draft manifest lives under:
packaging/winget/manifests/f/Feci/ParleyDeckSkill/X.Y.Z/
After the release assets exist, update the manifest hashes from the final GitHub release assets. Do not use hashes from a local build if the release workflow uploaded or clobbered assets.
gh release view "v${VERSION}" --json assets --jq '.assets[] | [.name, .digest] | @tsv'Then copy the manifest directory into a fork of microsoft/winget-pkgs, validate on Windows, and open a pull request.
winget validate .\manifests\f\Feci\ParleyDeckSkill\X.Y.Z
winget install --manifest .\manifests\f\Feci\ParleyDeckSkill\X.Y.ZThe canonical Homebrew formula lives only in the separate tap repository:
https://github.com/feci/homebrew-parley
Do not keep a copy of the formula in this repository. Update the tap directly so the release metadata cannot drift between repositories.
Generate the release tarball checksum:
VERSION="x.y.z" # package version without the leading v
curl -fsSL -o "/tmp/parley-deck-skill-v${VERSION}.tar.gz" \
"https://github.com/feci/parley-deck-skill/archive/refs/tags/v${VERSION}.tar.gz"
shasum -a 256 "/tmp/parley-deck-skill-v${VERSION}.tar.gz"Then edit the tap formula:
feci/homebrew-parley/Formula/parley-deck-skill.rb
Set url and sha256 to the new release values. The formula install block should stay minimal:
def install
libexec.install Dir["*"]
bin.install_symlink libexec/"bin/parley-deck-skill.js" => "parley-deck-skill"
endRun where Homebrew is available:
brew style Formula/parley-deck-skill.rb
brew audit --strict --online feci/parley/parley-deck-skill
brew upgrade parley-deck-skill
brew test feci/parley/parley-deck-skill
parley-deck-skill --version